@blokjs/runner 0.2.2 → 0.6.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 (213) hide show
  1. package/dist/Blok.js +32 -3
  2. package/dist/Blok.js.map +1 -1
  3. package/dist/Configuration.d.ts +59 -5
  4. package/dist/Configuration.js +366 -96
  5. package/dist/Configuration.js.map +1 -1
  6. package/dist/ForEachNode.d.ts +59 -0
  7. package/dist/ForEachNode.js +522 -0
  8. package/dist/ForEachNode.js.map +1 -0
  9. package/dist/LoopMaxIterationsError.d.ts +11 -0
  10. package/dist/LoopMaxIterationsError.js +18 -0
  11. package/dist/LoopMaxIterationsError.js.map +1 -0
  12. package/dist/LoopNode.d.ts +36 -0
  13. package/dist/LoopNode.js +182 -0
  14. package/dist/LoopNode.js.map +1 -0
  15. package/dist/PayloadTooLargeError.d.ts +19 -0
  16. package/dist/PayloadTooLargeError.js +29 -0
  17. package/dist/PayloadTooLargeError.js.map +1 -0
  18. package/dist/RunCancelledError.d.ts +17 -0
  19. package/dist/RunCancelledError.js +25 -0
  20. package/dist/RunCancelledError.js.map +1 -0
  21. package/dist/Runner.d.ts +11 -1
  22. package/dist/Runner.js +9 -2
  23. package/dist/Runner.js.map +1 -1
  24. package/dist/RunnerSteps.js +648 -44
  25. package/dist/RunnerSteps.js.map +1 -1
  26. package/dist/RuntimeAdapterNode.d.ts +2 -1
  27. package/dist/RuntimeAdapterNode.js +2 -2
  28. package/dist/RuntimeAdapterNode.js.map +1 -1
  29. package/dist/RuntimeRegistry.d.ts +23 -2
  30. package/dist/RuntimeRegistry.js +31 -2
  31. package/dist/RuntimeRegistry.js.map +1 -1
  32. package/dist/SubworkflowNode.d.ts +181 -0
  33. package/dist/SubworkflowNode.js +479 -0
  34. package/dist/SubworkflowNode.js.map +1 -0
  35. package/dist/SwitchNode.d.ts +37 -0
  36. package/dist/SwitchNode.js +153 -0
  37. package/dist/SwitchNode.js.map +1 -0
  38. package/dist/TriggerBase.d.ts +178 -0
  39. package/dist/TriggerBase.js +1032 -5
  40. package/dist/TriggerBase.js.map +1 -1
  41. package/dist/TryCatchNode.d.ts +32 -0
  42. package/dist/TryCatchNode.js +207 -0
  43. package/dist/TryCatchNode.js.map +1 -0
  44. package/dist/WaitDispatchRequest.d.ts +38 -0
  45. package/dist/WaitDispatchRequest.js +13 -0
  46. package/dist/WaitDispatchRequest.js.map +1 -0
  47. package/dist/WaitNode.d.ts +23 -0
  48. package/dist/WaitNode.js +26 -0
  49. package/dist/WaitNode.js.map +1 -0
  50. package/dist/adapters/grpc/GrpcCodec.js +2 -2
  51. package/dist/adapters/grpc/GrpcRuntimeAdapter.d.ts +6 -4
  52. package/dist/adapters/grpc/GrpcRuntimeAdapter.js +6 -4
  53. package/dist/adapters/grpc/GrpcRuntimeAdapter.js.map +1 -1
  54. package/dist/adapters/grpc/types.d.ts +7 -5
  55. package/dist/adapters/grpc/types.js.map +1 -1
  56. package/dist/adapters/transport.d.ts +12 -41
  57. package/dist/adapters/transport.js +21 -70
  58. package/dist/adapters/transport.js.map +1 -1
  59. package/dist/cache/NodeResultCache.js +7 -0
  60. package/dist/cache/NodeResultCache.js.map +1 -1
  61. package/dist/concurrency/ConcurrencyBackend.d.ts +61 -0
  62. package/dist/concurrency/ConcurrencyBackend.js +20 -0
  63. package/dist/concurrency/ConcurrencyBackend.js.map +1 -0
  64. package/dist/concurrency/ConcurrencyLimitError.d.ts +37 -0
  65. package/dist/concurrency/ConcurrencyLimitError.js +16 -0
  66. package/dist/concurrency/ConcurrencyLimitError.js.map +1 -0
  67. package/dist/concurrency/NatsKvConcurrencyBackend.d.ts +64 -0
  68. package/dist/concurrency/NatsKvConcurrencyBackend.js +310 -0
  69. package/dist/concurrency/NatsKvConcurrencyBackend.js.map +1 -0
  70. package/dist/concurrency/QueueExpiredError.d.ts +40 -0
  71. package/dist/concurrency/QueueExpiredError.js +15 -0
  72. package/dist/concurrency/QueueExpiredError.js.map +1 -0
  73. package/dist/concurrency/RedisConcurrencyBackend.d.ts +64 -0
  74. package/dist/concurrency/RedisConcurrencyBackend.js +374 -0
  75. package/dist/concurrency/RedisConcurrencyBackend.js.map +1 -0
  76. package/dist/concurrency/createConcurrencyBackend.d.ts +24 -0
  77. package/dist/concurrency/createConcurrencyBackend.js +38 -0
  78. package/dist/concurrency/createConcurrencyBackend.js.map +1 -0
  79. package/dist/concurrency/readConcurrencyConfig.d.ts +60 -0
  80. package/dist/concurrency/readConcurrencyConfig.js +60 -0
  81. package/dist/concurrency/readConcurrencyConfig.js.map +1 -0
  82. package/dist/defineNode.d.ts +8 -0
  83. package/dist/defineNode.js +25 -5
  84. package/dist/defineNode.js.map +1 -1
  85. package/dist/graphql/GraphQLSchemaGenerator.js +1 -1
  86. package/dist/graphql/GraphQLSchemaGenerator.js.map +1 -1
  87. package/dist/idempotency/resolveIdempotencyKey.d.ts +20 -0
  88. package/dist/idempotency/resolveIdempotencyKey.js +37 -0
  89. package/dist/idempotency/resolveIdempotencyKey.js.map +1 -0
  90. package/dist/index.d.ts +30 -6
  91. package/dist/index.js +55 -6
  92. package/dist/index.js.map +1 -1
  93. package/dist/marketplace/RuntimeCatalog.d.ts +6 -0
  94. package/dist/marketplace/RuntimeCatalog.js.map +1 -1
  95. package/dist/marketplace/RuntimeDiscovery.d.ts +2 -2
  96. package/dist/marketplace/RuntimeDiscovery.js +18 -6
  97. package/dist/marketplace/RuntimeDiscovery.js.map +1 -1
  98. package/dist/monitoring/ConcurrencyMetrics.d.ts +82 -0
  99. package/dist/monitoring/ConcurrencyMetrics.js +139 -0
  100. package/dist/monitoring/ConcurrencyMetrics.js.map +1 -0
  101. package/dist/monitoring/ForEachWaitMetrics.d.ts +22 -0
  102. package/dist/monitoring/ForEachWaitMetrics.js +36 -0
  103. package/dist/monitoring/ForEachWaitMetrics.js.map +1 -0
  104. package/dist/monitoring/JanitorMetrics.d.ts +27 -0
  105. package/dist/monitoring/JanitorMetrics.js +48 -0
  106. package/dist/monitoring/JanitorMetrics.js.map +1 -0
  107. package/dist/openapi/OpenAPIGenerator.js +7 -2
  108. package/dist/openapi/OpenAPIGenerator.js.map +1 -1
  109. package/dist/runtime/PrimitiveStack.d.ts +64 -0
  110. package/dist/runtime/PrimitiveStack.js +92 -0
  111. package/dist/runtime/PrimitiveStack.js.map +1 -0
  112. package/dist/scheduling/DebounceBackend.d.ts +108 -0
  113. package/dist/scheduling/DebounceBackend.js +23 -0
  114. package/dist/scheduling/DebounceBackend.js.map +1 -0
  115. package/dist/scheduling/DebounceCoordinator.d.ts +141 -0
  116. package/dist/scheduling/DebounceCoordinator.js +362 -0
  117. package/dist/scheduling/DebounceCoordinator.js.map +1 -0
  118. package/dist/scheduling/DeferredDispatchSignal.d.ts +50 -0
  119. package/dist/scheduling/DeferredDispatchSignal.js +14 -0
  120. package/dist/scheduling/DeferredDispatchSignal.js.map +1 -0
  121. package/dist/scheduling/DeferredRunScheduler.d.ts +96 -0
  122. package/dist/scheduling/DeferredRunScheduler.js +256 -0
  123. package/dist/scheduling/DeferredRunScheduler.js.map +1 -0
  124. package/dist/scheduling/NatsKvDebounceBackend.d.ts +53 -0
  125. package/dist/scheduling/NatsKvDebounceBackend.js +334 -0
  126. package/dist/scheduling/NatsKvDebounceBackend.js.map +1 -0
  127. package/dist/scheduling/RedisDebounceBackend.d.ts +49 -0
  128. package/dist/scheduling/RedisDebounceBackend.js +356 -0
  129. package/dist/scheduling/RedisDebounceBackend.js.map +1 -0
  130. package/dist/scheduling/createDebounceBackend.d.ts +25 -0
  131. package/dist/scheduling/createDebounceBackend.js +39 -0
  132. package/dist/scheduling/createDebounceBackend.js.map +1 -0
  133. package/dist/scheduling/readSchedulingConfig.d.ts +24 -0
  134. package/dist/scheduling/readSchedulingConfig.js +52 -0
  135. package/dist/scheduling/readSchedulingConfig.js.map +1 -0
  136. package/dist/security/AuditLogger.js +1 -1
  137. package/dist/security/AuditLogger.js.map +1 -1
  138. package/dist/security/AuthMiddleware.d.ts +19 -20
  139. package/dist/security/AuthMiddleware.js +35 -20
  140. package/dist/security/AuthMiddleware.js.map +1 -1
  141. package/dist/security/OAuthProvider.js +2 -2
  142. package/dist/security/OAuthProvider.js.map +1 -1
  143. package/dist/security/SecretManager.js +14 -13
  144. package/dist/security/SecretManager.js.map +1 -1
  145. package/dist/security/index.d.ts +3 -1
  146. package/dist/security/index.js +3 -1
  147. package/dist/security/index.js.map +1 -1
  148. package/dist/testing/TestHarness.d.ts +27 -12
  149. package/dist/testing/TestHarness.js +19 -3
  150. package/dist/testing/TestHarness.js.map +1 -1
  151. package/dist/testing/WorkflowTestRunner.js +0 -7
  152. package/dist/testing/WorkflowTestRunner.js.map +1 -1
  153. package/dist/timeouts/StepTimeoutError.d.ts +22 -0
  154. package/dist/timeouts/StepTimeoutError.js +31 -0
  155. package/dist/timeouts/StepTimeoutError.js.map +1 -0
  156. package/dist/tracing/InMemoryRunStore.d.ts +41 -1
  157. package/dist/tracing/InMemoryRunStore.js +239 -0
  158. package/dist/tracing/InMemoryRunStore.js.map +1 -1
  159. package/dist/tracing/Janitor.d.ts +70 -0
  160. package/dist/tracing/Janitor.js +150 -0
  161. package/dist/tracing/Janitor.js.map +1 -0
  162. package/dist/tracing/PostgresRunStore.d.ts +57 -1
  163. package/dist/tracing/PostgresRunStore.js +711 -6
  164. package/dist/tracing/PostgresRunStore.js.map +1 -1
  165. package/dist/tracing/RoutingDiagnostics.d.ts +55 -0
  166. package/dist/tracing/RoutingDiagnostics.js +50 -0
  167. package/dist/tracing/RoutingDiagnostics.js.map +1 -0
  168. package/dist/tracing/RunStore.d.ts +181 -1
  169. package/dist/tracing/RunTracker.d.ts +244 -9
  170. package/dist/tracing/RunTracker.js +594 -1
  171. package/dist/tracing/RunTracker.js.map +1 -1
  172. package/dist/tracing/SqliteRunStore.d.ts +79 -2
  173. package/dist/tracing/SqliteRunStore.js +775 -16
  174. package/dist/tracing/SqliteRunStore.js.map +1 -1
  175. package/dist/tracing/TraceRouter.d.ts +20 -2
  176. package/dist/tracing/TraceRouter.js +612 -6
  177. package/dist/tracing/TraceRouter.js.map +1 -1
  178. package/dist/tracing/createStore.js +14 -3
  179. package/dist/tracing/createStore.js.map +1 -1
  180. package/dist/tracing/metadataFilter.d.ts +63 -0
  181. package/dist/tracing/metadataFilter.js +224 -0
  182. package/dist/tracing/metadataFilter.js.map +1 -0
  183. package/dist/tracing/sanitize.d.ts +11 -0
  184. package/dist/tracing/sanitize.js +29 -0
  185. package/dist/tracing/sanitize.js.map +1 -1
  186. package/dist/tracing/types.d.ts +672 -2
  187. package/dist/utils/createChildContext.d.ts +32 -0
  188. package/dist/utils/createChildContext.js +113 -0
  189. package/dist/utils/createChildContext.js.map +1 -0
  190. package/dist/utils/envAllowlist.d.ts +35 -0
  191. package/dist/utils/envAllowlist.js +113 -0
  192. package/dist/utils/envAllowlist.js.map +1 -0
  193. package/dist/version/RuntimeVersionValidator.d.ts +38 -0
  194. package/dist/version/RuntimeVersionValidator.js +121 -0
  195. package/dist/version/RuntimeVersionValidator.js.map +1 -0
  196. package/dist/visualization/WorkflowVisualizer.js +4 -4
  197. package/dist/visualization/WorkflowVisualizer.js.map +1 -1
  198. package/dist/workflow/PersistenceHelper.d.ts +18 -10
  199. package/dist/workflow/PersistenceHelper.js +35 -9
  200. package/dist/workflow/PersistenceHelper.js.map +1 -1
  201. package/dist/workflow/WorkflowNormalizer.d.ts +48 -42
  202. package/dist/workflow/WorkflowNormalizer.js +650 -18
  203. package/dist/workflow/WorkflowNormalizer.js.map +1 -1
  204. package/dist/workflow/WorkflowRegistry.d.ts +186 -0
  205. package/dist/workflow/WorkflowRegistry.js +202 -0
  206. package/dist/workflow/WorkflowRegistry.js.map +1 -0
  207. package/dist/workflow/sampleBody.d.ts +54 -0
  208. package/dist/workflow/sampleBody.js +320 -0
  209. package/dist/workflow/sampleBody.js.map +1 -0
  210. package/package.json +3 -8
  211. package/dist/adapters/HttpRuntimeAdapter.d.ts +0 -79
  212. package/dist/adapters/HttpRuntimeAdapter.js +0 -233
  213. package/dist/adapters/HttpRuntimeAdapter.js.map +0 -1
@@ -0,0 +1,32 @@
1
+ import type { Context } from "@blokjs/shared";
2
+ /**
3
+ * Construct a fresh `Context` for a sub-workflow invocation.
4
+ *
5
+ * **Isolation contract**: the child gets fresh `state`, fresh `response`,
6
+ * fresh `error`, and a fresh `id`. The child cannot read or mutate the
7
+ * parent's state — sub-workflows are referentially transparent at the
8
+ * state-passing boundary. Parent passes data in via `request.body`
9
+ * (mirrors HTTP semantics), child returns data via `ctx.response`.
10
+ *
11
+ * **Shared by reference (intentional)**: the `logger`, `env`, and
12
+ * `eventLogger` are shared with the parent — log routing stays
13
+ * consistent and ENV is process-global anyway. The runner's tracing
14
+ * layer (`_traceRunId`, `_traceNodeId`) is set separately by
15
+ * `SubworkflowNode` after this function returns.
16
+ *
17
+ * Mirrors `TriggerBase.createContext` shape one-for-one (same `req`/
18
+ * `prev` getters, same `state`/`vars` aliasing, same `publish`
19
+ * default). Kept as a standalone helper rather than a TriggerBase
20
+ * method so sub-workflow dispatch doesn't depend on having a
21
+ * TriggerBase instance.
22
+ */
23
+ export declare function createChildContext(parent: Context, opts: {
24
+ /** The child workflow's `name:` field. */
25
+ workflowName: string;
26
+ /** Filesystem path or `"<inline>"` — used for trace + diagnostics. */
27
+ workflowPath: string;
28
+ /** Parent step's resolved inputs, becomes child's `request.body`. */
29
+ body: unknown;
30
+ /** Child's resolved `nodes` map (from child Configuration). Powers blueprint mapper. */
31
+ config: Context["config"];
32
+ }): Context;
@@ -0,0 +1,113 @@
1
+ import { v4 as uuid } from "uuid";
2
+ /**
3
+ * Construct a fresh `Context` for a sub-workflow invocation.
4
+ *
5
+ * **Isolation contract**: the child gets fresh `state`, fresh `response`,
6
+ * fresh `error`, and a fresh `id`. The child cannot read or mutate the
7
+ * parent's state — sub-workflows are referentially transparent at the
8
+ * state-passing boundary. Parent passes data in via `request.body`
9
+ * (mirrors HTTP semantics), child returns data via `ctx.response`.
10
+ *
11
+ * **Shared by reference (intentional)**: the `logger`, `env`, and
12
+ * `eventLogger` are shared with the parent — log routing stays
13
+ * consistent and ENV is process-global anyway. The runner's tracing
14
+ * layer (`_traceRunId`, `_traceNodeId`) is set separately by
15
+ * `SubworkflowNode` after this function returns.
16
+ *
17
+ * Mirrors `TriggerBase.createContext` shape one-for-one (same `req`/
18
+ * `prev` getters, same `state`/`vars` aliasing, same `publish`
19
+ * default). Kept as a standalone helper rather than a TriggerBase
20
+ * method so sub-workflow dispatch doesn't depend on having a
21
+ * TriggerBase instance.
22
+ */
23
+ export function createChildContext(parent, opts) {
24
+ const id = uuid();
25
+ const request = {
26
+ body: opts.body ?? {},
27
+ headers: {},
28
+ params: {},
29
+ query: {},
30
+ };
31
+ const response = {
32
+ data: "",
33
+ contentType: "",
34
+ success: true,
35
+ error: null,
36
+ };
37
+ const state = {};
38
+ // Tier 2 follow-up · cooperative cancellation. Child gets its own
39
+ // AbortController so it has independent lifecycle (cancellation of
40
+ // THIS sub-workflow doesn't propagate up to the parent). But we
41
+ // chain off the parent's signal: if the parent gets cancelled, the
42
+ // child should abort too — otherwise long-running sub-workflows
43
+ // would orphan when the parent exits.
44
+ //
45
+ // PR 1 follow-up · A3 fix. `addEventListener({once: true})` only
46
+ // auto-removes the listener when abort fires. If the parent never
47
+ // aborts AND the parent ctx outlives many child invocations, listeners
48
+ // accumulate and Node's MaxListenersExceededWarning fires at the 11th.
49
+ // Pass a child-scoped AbortSignal as the listener's `signal:` option
50
+ // so the listener auto-removes when the child completes (the
51
+ // SubworkflowNode dispatch path calls `listenerCleanup.abort()` in
52
+ // its finally block).
53
+ const childAbortController = new AbortController();
54
+ const listenerCleanup = new AbortController();
55
+ if (parent.signal) {
56
+ if (parent.signal.aborted) {
57
+ childAbortController.abort();
58
+ }
59
+ else {
60
+ parent.signal.addEventListener("abort", () => {
61
+ if (!childAbortController.signal.aborted)
62
+ childAbortController.abort();
63
+ }, { once: true, signal: listenerCleanup.signal });
64
+ }
65
+ }
66
+ const ctx = {
67
+ id,
68
+ workflow_name: opts.workflowName,
69
+ workflow_path: opts.workflowPath,
70
+ config: opts.config,
71
+ request,
72
+ response,
73
+ error: { message: [] },
74
+ logger: parent.logger,
75
+ eventLogger: parent.eventLogger ?? null,
76
+ // Fresh state map — child runs in isolation. Aliased as `vars`
77
+ // for v1 back-compat, same shape as `TriggerBase.createContext`.
78
+ state,
79
+ vars: state,
80
+ env: parent.env,
81
+ signal: childAbortController.signal,
82
+ // Stash the controller in a child-specific _PRIVATE_ slot so the
83
+ // tracker can fire it via abortRunningRun on direct sub-run cancel.
84
+ // Don't mutate the parent's _PRIVATE_ (intentional isolation).
85
+ // `listenerCleanup` is exposed so SubworkflowNode can abort it on
86
+ // child completion, which removes the parent.signal listener (PR 1
87
+ // A3 fix — prevents listener accumulation on long-lived parents).
88
+ _PRIVATE_: { abortController: childAbortController, listenerCleanup },
89
+ };
90
+ // V2 read-only aliases — same object reference, no copy. Mirrors
91
+ // `TriggerBase.createContext`.
92
+ Object.defineProperty(ctx, "req", {
93
+ get() {
94
+ return ctx.request;
95
+ },
96
+ enumerable: true,
97
+ });
98
+ Object.defineProperty(ctx, "prev", {
99
+ get() {
100
+ return ctx.response;
101
+ },
102
+ enumerable: true,
103
+ });
104
+ // Default `publish` — writes to state, no side-channel event. The
105
+ // triggers' production createContext also wires Studio trace
106
+ // events; for sub-workflows we omit that (the child has its own
107
+ // trace run, events fire there).
108
+ ctx.publish = (name, value) => {
109
+ ctx.state[name] = value;
110
+ };
111
+ return ctx;
112
+ }
113
+ //# sourceMappingURL=createChildContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createChildContext.js","sourceRoot":"","sources":["../../src/utils/createChildContext.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Operator-controlled allowlist for `ctx.env` exposed to user nodes.
3
+ *
4
+ * By default `ctx.env` mirrors `process.env` — every node sees every
5
+ * env var. Operators harden against accidental secret leakage by
6
+ * setting one or both of:
7
+ *
8
+ * - `BLOK_NODE_ENV_ALLOW` — comma-separated exact names. Example:
9
+ * `BLOK_NODE_ENV_ALLOW=DATABASE_URL,STRIPE_KEY`
10
+ * - `BLOK_NODE_ENV_ALLOW_PREFIX` — comma-separated prefixes. Example:
11
+ * `BLOK_NODE_ENV_ALLOW_PREFIX=PUBLIC_,SAFE_`
12
+ *
13
+ * When EITHER is set, `ctx.env` becomes a Proxy that returns
14
+ * `undefined` for keys not in the allowlist and excludes them from
15
+ * `Object.keys`/`for...in`/`hasOwnProperty`. When NEITHER is set,
16
+ * `ctx.env` is `process.env` directly (preserves v0.4.x semantics —
17
+ * no breaking change).
18
+ *
19
+ * Set `BLOK_SUPPRESS_ENV_ALLOW_WARNING=1` to silence the boot warning
20
+ * that fires when `BLOK_ENV=production` and no allowlist is configured.
21
+ *
22
+ * The allowlist is parsed on every `getEnvForCtx()` call (creating a
23
+ * Context). Cost is sub-microsecond — strings are small and the
24
+ * Proxy is allocated once per request. Tests can mutate
25
+ * `process.env.BLOK_NODE_ENV_ALLOW` between calls and see the change
26
+ * immediately (no module-load caching).
27
+ */
28
+ /**
29
+ * Returns the object to assign to `ctx.env`. When no allowlist is
30
+ * configured, returns `process.env` (default-allow). When configured,
31
+ * returns a filtering Proxy. Called by `TriggerBase.createContext`.
32
+ */
33
+ export declare function getEnvForCtx(): NodeJS.ProcessEnv;
34
+ /** Test-only — clears the once-per-process production warning flag. */
35
+ export declare function _resetEnvAllowlistForTests(): void;
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Operator-controlled allowlist for `ctx.env` exposed to user nodes.
3
+ *
4
+ * By default `ctx.env` mirrors `process.env` — every node sees every
5
+ * env var. Operators harden against accidental secret leakage by
6
+ * setting one or both of:
7
+ *
8
+ * - `BLOK_NODE_ENV_ALLOW` — comma-separated exact names. Example:
9
+ * `BLOK_NODE_ENV_ALLOW=DATABASE_URL,STRIPE_KEY`
10
+ * - `BLOK_NODE_ENV_ALLOW_PREFIX` — comma-separated prefixes. Example:
11
+ * `BLOK_NODE_ENV_ALLOW_PREFIX=PUBLIC_,SAFE_`
12
+ *
13
+ * When EITHER is set, `ctx.env` becomes a Proxy that returns
14
+ * `undefined` for keys not in the allowlist and excludes them from
15
+ * `Object.keys`/`for...in`/`hasOwnProperty`. When NEITHER is set,
16
+ * `ctx.env` is `process.env` directly (preserves v0.4.x semantics —
17
+ * no breaking change).
18
+ *
19
+ * Set `BLOK_SUPPRESS_ENV_ALLOW_WARNING=1` to silence the boot warning
20
+ * that fires when `BLOK_ENV=production` and no allowlist is configured.
21
+ *
22
+ * The allowlist is parsed on every `getEnvForCtx()` call (creating a
23
+ * Context). Cost is sub-microsecond — strings are small and the
24
+ * Proxy is allocated once per request. Tests can mutate
25
+ * `process.env.BLOK_NODE_ENV_ALLOW` between calls and see the change
26
+ * immediately (no module-load caching).
27
+ */
28
+ function parseList(raw) {
29
+ if (!raw)
30
+ return [];
31
+ return raw
32
+ .split(",")
33
+ .map((s) => s.trim())
34
+ .filter((s) => s.length > 0);
35
+ }
36
+ function loadConfig() {
37
+ const allow = parseList(process.env.BLOK_NODE_ENV_ALLOW);
38
+ const prefixes = parseList(process.env.BLOK_NODE_ENV_ALLOW_PREFIX);
39
+ if (allow.length === 0 && prefixes.length === 0)
40
+ return null;
41
+ return { allow, prefixes };
42
+ }
43
+ function isAllowed(key, config) {
44
+ if (config.allow.includes(key))
45
+ return true;
46
+ for (const p of config.prefixes) {
47
+ if (key.startsWith(p))
48
+ return true;
49
+ }
50
+ return false;
51
+ }
52
+ /**
53
+ * Build a Proxy around `process.env` that hides keys not in the
54
+ * allowlist. Reads of denied keys return `undefined`; iteration via
55
+ * `Object.keys` / `for...in` / `Object.entries` excludes them; `key
56
+ * in env` returns `false`. Writes pass through (operators don't lose
57
+ * the ability for nodes to mutate process.env if they want to — the
58
+ * filter is a read gate, not a sandbox).
59
+ */
60
+ function buildProxy(config) {
61
+ return new Proxy(process.env, {
62
+ get(target, key) {
63
+ if (typeof key !== "string")
64
+ return undefined;
65
+ return isAllowed(key, config) ? target[key] : undefined;
66
+ },
67
+ has(target, key) {
68
+ if (typeof key !== "string")
69
+ return false;
70
+ return isAllowed(key, config) && key in target;
71
+ },
72
+ ownKeys(target) {
73
+ return Object.keys(target).filter((k) => isAllowed(k, config));
74
+ },
75
+ getOwnPropertyDescriptor(target, key) {
76
+ if (typeof key !== "string" || !isAllowed(key, config))
77
+ return undefined;
78
+ return Object.getOwnPropertyDescriptor(target, key);
79
+ },
80
+ });
81
+ }
82
+ let productionWarningEmitted = false;
83
+ function emitProductionWarning() {
84
+ if (productionWarningEmitted)
85
+ return;
86
+ productionWarningEmitted = true;
87
+ if (process.env.BLOK_SUPPRESS_ENV_ALLOW_WARNING === "1")
88
+ return;
89
+ if (process.env.BLOK_ENV !== "production")
90
+ return;
91
+ console.warn("[blok] BLOK_ENV=production but neither BLOK_NODE_ENV_ALLOW nor BLOK_NODE_ENV_ALLOW_PREFIX is set. " +
92
+ "Every loaded node sees every env var, including secrets. " +
93
+ "Configure an allowlist to harden the surface, or set " +
94
+ "BLOK_SUPPRESS_ENV_ALLOW_WARNING=1 to silence.");
95
+ }
96
+ /**
97
+ * Returns the object to assign to `ctx.env`. When no allowlist is
98
+ * configured, returns `process.env` (default-allow). When configured,
99
+ * returns a filtering Proxy. Called by `TriggerBase.createContext`.
100
+ */
101
+ export function getEnvForCtx() {
102
+ const config = loadConfig();
103
+ if (!config) {
104
+ emitProductionWarning();
105
+ return process.env;
106
+ }
107
+ return buildProxy(config);
108
+ }
109
+ /** Test-only — clears the once-per-process production warning flag. */
110
+ export function _resetEnvAllowlistForTests() {
111
+ productionWarningEmitted = false;
112
+ }
113
+ //# sourceMappingURL=envAllowlist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"envAllowlist.js","sourceRoot":"","sources":["../../src/utils/envAllowlist.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * RuntimeVersionValidator — Validates node and workflow runtime version requirements.
3
+ *
4
+ * Used by the runner to check that nodes' `runtimeRequirements` are satisfied
5
+ * by the currently running runtime versions before executing workflows.
6
+ */
7
+ export interface VersionValidationResult {
8
+ valid: boolean;
9
+ node: string;
10
+ runtime: string;
11
+ required: string;
12
+ actual: string | undefined;
13
+ message: string;
14
+ }
15
+ export declare class RuntimeVersionValidator {
16
+ private runtimeVersions;
17
+ constructor(runtimeVersions?: Record<string, string>);
18
+ setRuntimeVersion(kind: string, version: string): void;
19
+ getRuntimeVersion(kind: string): string | undefined;
20
+ /**
21
+ * Validate a single node's runtime requirements against known runtime versions.
22
+ */
23
+ validateNode(node: {
24
+ name: string;
25
+ runtimeRequirements?: Partial<Record<string, string>>;
26
+ }): VersionValidationResult[];
27
+ /**
28
+ * Validate all nodes in a workflow against known runtime versions.
29
+ */
30
+ validateWorkflow(nodes: Array<{
31
+ name: string;
32
+ runtimeRequirements?: Partial<Record<string, string>>;
33
+ }>): VersionValidationResult[];
34
+ /**
35
+ * Format validation errors into a user-friendly multi-line string.
36
+ */
37
+ static formatErrors(results: VersionValidationResult[]): string;
38
+ }
@@ -0,0 +1,121 @@
1
+ /**
2
+ * RuntimeVersionValidator — Validates node and workflow runtime version requirements.
3
+ *
4
+ * Used by the runner to check that nodes' `runtimeRequirements` are satisfied
5
+ * by the currently running runtime versions before executing workflows.
6
+ */
7
+ function parseSemver(version) {
8
+ const parts = version.trim().split(".").map(Number);
9
+ return {
10
+ major: parts[0] || 0,
11
+ minor: parts[1] || 0,
12
+ patch: parts[2] || 0,
13
+ };
14
+ }
15
+ function semverGte(a, b) {
16
+ if (a.major !== b.major)
17
+ return a.major > b.major;
18
+ if (a.minor !== b.minor)
19
+ return a.minor > b.minor;
20
+ return a.patch >= b.patch;
21
+ }
22
+ function satisfiesConstraint(version, constraint) {
23
+ const actual = parseSemver(version);
24
+ const trimmed = constraint.trim();
25
+ if (trimmed.startsWith(">=")) {
26
+ return semverGte(actual, parseSemver(trimmed.slice(2)));
27
+ }
28
+ if (trimmed.startsWith("^")) {
29
+ const base = parseSemver(trimmed.slice(1));
30
+ if (base.major !== 0) {
31
+ return actual.major === base.major && semverGte(actual, base);
32
+ }
33
+ if (base.minor !== 0) {
34
+ return actual.major === 0 && actual.minor === base.minor && actual.patch >= base.patch;
35
+ }
36
+ return actual.major === 0 && actual.minor === 0 && actual.patch === base.patch;
37
+ }
38
+ if (trimmed.startsWith("~")) {
39
+ const base = parseSemver(trimmed.slice(1));
40
+ return actual.major === base.major && actual.minor === base.minor && actual.patch >= base.patch;
41
+ }
42
+ // Exact match
43
+ const base = parseSemver(trimmed.startsWith("=") ? trimmed.slice(1) : trimmed);
44
+ return actual.major === base.major && actual.minor === base.minor && actual.patch === base.patch;
45
+ }
46
+ export class RuntimeVersionValidator {
47
+ runtimeVersions;
48
+ constructor(runtimeVersions) {
49
+ this.runtimeVersions = new Map(Object.entries(runtimeVersions || {}));
50
+ }
51
+ setRuntimeVersion(kind, version) {
52
+ this.runtimeVersions.set(kind, version);
53
+ }
54
+ getRuntimeVersion(kind) {
55
+ return this.runtimeVersions.get(kind);
56
+ }
57
+ /**
58
+ * Validate a single node's runtime requirements against known runtime versions.
59
+ */
60
+ validateNode(node) {
61
+ if (!node.runtimeRequirements)
62
+ return [];
63
+ const results = [];
64
+ for (const [runtime, constraint] of Object.entries(node.runtimeRequirements)) {
65
+ if (!constraint)
66
+ continue;
67
+ const actual = this.runtimeVersions.get(runtime);
68
+ if (!actual) {
69
+ results.push({
70
+ valid: false,
71
+ node: node.name,
72
+ runtime,
73
+ required: constraint,
74
+ actual: undefined,
75
+ message: `Node "${node.name}" requires ${runtime} ${constraint}, ` + `but no ${runtime} runtime version is known.`,
76
+ });
77
+ continue;
78
+ }
79
+ const valid = satisfiesConstraint(actual, constraint);
80
+ results.push({
81
+ valid,
82
+ node: node.name,
83
+ runtime,
84
+ required: constraint,
85
+ actual,
86
+ message: valid
87
+ ? `Node "${node.name}" ${runtime} ${constraint} satisfied (${actual})`
88
+ : `Node "${node.name}" requires ${runtime} ${constraint}, but found ${actual}.`,
89
+ });
90
+ }
91
+ return results;
92
+ }
93
+ /**
94
+ * Validate all nodes in a workflow against known runtime versions.
95
+ */
96
+ validateWorkflow(nodes) {
97
+ const results = [];
98
+ for (const node of nodes) {
99
+ results.push(...this.validateNode(node));
100
+ }
101
+ return results;
102
+ }
103
+ /**
104
+ * Format validation errors into a user-friendly multi-line string.
105
+ */
106
+ static formatErrors(results) {
107
+ const failures = results.filter((r) => !r.valid);
108
+ if (failures.length === 0)
109
+ return "";
110
+ const lines = ["Runtime version requirements not met:"];
111
+ for (const f of failures) {
112
+ lines.push("");
113
+ lines.push(` Node: ${f.node}`);
114
+ lines.push(` Runtime: ${f.runtime}`);
115
+ lines.push(` Required: ${f.required}`);
116
+ lines.push(` Found: ${f.actual || "not available"}`);
117
+ }
118
+ return lines.join("\n");
119
+ }
120
+ }
121
+ //# sourceMappingURL=RuntimeVersionValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuntimeVersionValidator.js","sourceRoot":"","sources":["../../src/version/RuntimeVersionValidator.ts"],"names":[],"mappings":"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"}
@@ -143,7 +143,7 @@ export class WorkflowVisualizer {
143
143
  if (!adjacency.has(edge.from)) {
144
144
  adjacency.set(edge.from, []);
145
145
  }
146
- adjacency.get(edge.from).push(edge.to);
146
+ adjacency.get(edge.from)?.push(edge.to);
147
147
  }
148
148
  // Walk graph from first node
149
149
  const visited = new Set();
@@ -157,13 +157,13 @@ export class WorkflowVisualizer {
157
157
  if (!node)
158
158
  continue;
159
159
  const icon = this.asciiIcon(node.type);
160
- const label = node.label.length > 44 ? node.label.substring(0, 41) + "..." : node.label;
160
+ const label = node.label.length > 44 ? `${node.label.substring(0, 41)}...` : node.label;
161
161
  result.push(`║ ${icon} ${this.padRight(label, 46)}║`);
162
162
  const targets = adjacency.get(nodeId) || [];
163
163
  if (targets.length > 0) {
164
164
  if (targets.length === 1) {
165
- result.push(`║║`);
166
- result.push(`║║`);
165
+ result.push("║║");
166
+ result.push("║║");
167
167
  }
168
168
  else {
169
169
  result.push(`║ ├──┬──${this.padRight("", 42)}║`);
@@ -1 +1 @@
1
- {"version":3,"file":"WorkflowVisualizer.js","sourceRoot":"","sources":["../../src/visualization/WorkflowVisualizer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkflowVisualizer.js","sourceRoot":"","sources":["../../src/visualization/WorkflowVisualizer.ts"],"names":[],"mappings":"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"}
@@ -14,30 +14,38 @@ export interface PersistableStep {
14
14
  readonly spread?: boolean;
15
15
  /** When true, skip persistence entirely. */
16
16
  readonly ephemeral?: boolean;
17
- /**
18
- * Legacy v1 flag. `false` is interpreted as `ephemeral: true`. `true`
19
- * is a no-op (the new default already persists).
20
- */
21
- readonly set_var?: boolean;
22
17
  }
23
18
  /**
24
19
  * The shape of an execution result the helper needs to read. Both
25
- * `ResponseContext` and `ExecutionResult` carry `.data`.
20
+ * `ResponseContext` and `ExecutionResult` carry `.data`. Errors arrive
21
+ * via different field names depending on the source — `error` on
22
+ * `ResponseContext` / `BlokResponse`, `errors` on `ExecutionResult` from
23
+ * the runtime adapters. Both shapes are accepted and trigger the same
24
+ * "skip persistence" guard.
26
25
  */
27
26
  export interface PersistableResult {
28
27
  readonly data?: unknown;
29
28
  readonly success?: boolean;
29
+ readonly error?: unknown;
30
+ readonly errors?: unknown;
30
31
  }
31
32
  /**
32
33
  * Apply a step's output to `ctx.state` according to the step's persistence
33
34
  * knobs.
34
35
  *
35
- * **Rules** (in order):
36
+ * **Rules** (evaluated in order):
37
+ * 0. **Errored result → no-op.** A step that threw, returned `success:
38
+ * false`, or carries a non-null `error` / `errors` field does NOT write
39
+ * state. Authors can rely on `ctx.state[<step-id>] === undefined` as a
40
+ * truthful "did this step actually succeed?" check inside a
41
+ * `tryCatch.catch` arm. Without this guard, the framework's internal
42
+ * `BlokResponse.setError()` writes `data = {}` and the helper would
43
+ * persist that empty object — making the natural existence check
44
+ * meaningless. (See [tryCatch docs](../../../docs/c/devtools/tryCatch.mdx).)
36
45
  * 1. `ephemeral: true` → no-op. Output is only available via `ctx.prev`.
37
- * 2. Legacy `set_var: false` treated as `ephemeral: true` (back-compat).
38
- * 3. `spread: true` AND `data` is a plain object → shallow-merge data's
46
+ * 2. `spread: true` AND `data` is a plain object → shallow-merge data's
39
47
  * top-level keys into `ctx.state`.
40
- * 4. Default → `ctx.state[as ?? name] = data`.
48
+ * 3. Default → `ctx.state[as ?? name] = data`.
41
49
  *
42
50
  * Mutates `ctx.state` in place. Always safe to call (no-op on missing data
43
51
  * unless `spread` is set, which is an authoring-time error to combine with