@n8n/expression-runtime 0.30.0 → 0.31.1

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 (122) hide show
  1. package/README.md +4 -0
  2. package/dist/bundle/runtime.esm.js +17 -17
  3. package/dist/bundle/runtime.esm.js.map +4 -4
  4. package/dist/bundle/runtime.iife.js +17 -17
  5. package/dist/bundle/runtime.iife.js.map +4 -4
  6. package/dist/cjs/bridge/host-functions.d.ts +74 -0
  7. package/dist/cjs/bridge/host-functions.d.ts.map +1 -0
  8. package/dist/cjs/bridge/host-functions.js +336 -0
  9. package/dist/cjs/bridge/host-functions.js.map +1 -0
  10. package/dist/cjs/bridge/isolated-vm-bridge.d.ts +24 -150
  11. package/dist/cjs/bridge/isolated-vm-bridge.d.ts.map +1 -1
  12. package/dist/cjs/bridge/isolated-vm-bridge.js +130 -429
  13. package/dist/cjs/bridge/isolated-vm-bridge.js.map +1 -1
  14. package/dist/cjs/bridge/quickjs-bridge.d.ts +21 -6
  15. package/dist/cjs/bridge/quickjs-bridge.d.ts.map +1 -1
  16. package/dist/cjs/bridge/quickjs-bridge.js +377 -402
  17. package/dist/cjs/bridge/quickjs-bridge.js.map +1 -1
  18. package/dist/cjs/build.tsbuildinfo +1 -1
  19. package/dist/cjs/evaluator/expression-evaluator.d.ts +17 -0
  20. package/dist/cjs/evaluator/expression-evaluator.d.ts.map +1 -1
  21. package/dist/cjs/evaluator/expression-evaluator.js +61 -1
  22. package/dist/cjs/evaluator/expression-evaluator.js.map +1 -1
  23. package/dist/cjs/extensions/array-extensions.d.ts.map +1 -1
  24. package/dist/cjs/extensions/array-extensions.js +7 -15
  25. package/dist/cjs/extensions/array-extensions.js.map +1 -1
  26. package/dist/cjs/extensions/function-extensions.d.ts +2 -0
  27. package/dist/cjs/extensions/function-extensions.d.ts.map +1 -1
  28. package/dist/cjs/extensions/function-extensions.js +13 -10
  29. package/dist/cjs/extensions/function-extensions.js.map +1 -1
  30. package/dist/cjs/extensions/object-extensions.d.ts.map +1 -1
  31. package/dist/cjs/extensions/object-extensions.js +3 -11
  32. package/dist/cjs/extensions/object-extensions.js.map +1 -1
  33. package/dist/cjs/extensions/utils.d.ts +1 -0
  34. package/dist/cjs/extensions/utils.d.ts.map +1 -1
  35. package/dist/cjs/extensions/utils.js +10 -0
  36. package/dist/cjs/extensions/utils.js.map +1 -1
  37. package/dist/cjs/observability/metrics.d.ts +12 -0
  38. package/dist/cjs/observability/metrics.d.ts.map +1 -1
  39. package/dist/cjs/observability/metrics.js +12 -0
  40. package/dist/cjs/observability/metrics.js.map +1 -1
  41. package/dist/cjs/runtime/lazy-proxy.d.ts +2 -0
  42. package/dist/cjs/runtime/lazy-proxy.d.ts.map +1 -1
  43. package/dist/cjs/runtime/lazy-proxy.js +29 -15
  44. package/dist/cjs/runtime/lazy-proxy.js.map +1 -1
  45. package/dist/cjs/runtime/luxon-transfer.d.ts +62 -0
  46. package/dist/cjs/runtime/luxon-transfer.d.ts.map +1 -0
  47. package/dist/cjs/runtime/luxon-transfer.js +200 -0
  48. package/dist/cjs/runtime/luxon-transfer.js.map +1 -0
  49. package/dist/cjs/runtime/serialize.d.ts +7 -7
  50. package/dist/cjs/runtime/serialize.d.ts.map +1 -1
  51. package/dist/cjs/runtime/serialize.js +42 -30
  52. package/dist/cjs/runtime/serialize.js.map +1 -1
  53. package/dist/cjs/runtime/transfer.d.ts +77 -0
  54. package/dist/cjs/runtime/transfer.d.ts.map +1 -0
  55. package/dist/cjs/runtime/transfer.js +183 -0
  56. package/dist/cjs/runtime/transfer.js.map +1 -0
  57. package/dist/cjs/types/bridge.d.ts +16 -0
  58. package/dist/cjs/types/bridge.d.ts.map +1 -1
  59. package/dist/cjs/types/bridge.js +1 -0
  60. package/dist/cjs/types/bridge.js.map +1 -1
  61. package/dist/cjs/types/evaluator.d.ts +9 -0
  62. package/dist/cjs/types/evaluator.d.ts.map +1 -1
  63. package/dist/cjs/types/evaluator.js.map +1 -1
  64. package/dist/esm/bridge/host-functions.d.ts +74 -0
  65. package/dist/esm/bridge/host-functions.d.ts.map +1 -0
  66. package/dist/esm/bridge/host-functions.js +328 -0
  67. package/dist/esm/bridge/host-functions.js.map +1 -0
  68. package/dist/esm/bridge/isolated-vm-bridge.d.ts +24 -150
  69. package/dist/esm/bridge/isolated-vm-bridge.d.ts.map +1 -1
  70. package/dist/esm/bridge/isolated-vm-bridge.js +126 -425
  71. package/dist/esm/bridge/isolated-vm-bridge.js.map +1 -1
  72. package/dist/esm/bridge/quickjs-bridge.d.ts +21 -6
  73. package/dist/esm/bridge/quickjs-bridge.d.ts.map +1 -1
  74. package/dist/esm/bridge/quickjs-bridge.js +368 -393
  75. package/dist/esm/bridge/quickjs-bridge.js.map +1 -1
  76. package/dist/esm/build.tsbuildinfo +1 -1
  77. package/dist/esm/evaluator/expression-evaluator.d.ts +17 -0
  78. package/dist/esm/evaluator/expression-evaluator.d.ts.map +1 -1
  79. package/dist/esm/evaluator/expression-evaluator.js +61 -1
  80. package/dist/esm/evaluator/expression-evaluator.js.map +1 -1
  81. package/dist/esm/extensions/array-extensions.d.ts.map +1 -1
  82. package/dist/esm/extensions/array-extensions.js +1 -9
  83. package/dist/esm/extensions/array-extensions.js.map +1 -1
  84. package/dist/esm/extensions/function-extensions.d.ts +2 -0
  85. package/dist/esm/extensions/function-extensions.d.ts.map +1 -1
  86. package/dist/esm/extensions/function-extensions.js +12 -9
  87. package/dist/esm/extensions/function-extensions.js.map +1 -1
  88. package/dist/esm/extensions/object-extensions.d.ts.map +1 -1
  89. package/dist/esm/extensions/object-extensions.js +1 -9
  90. package/dist/esm/extensions/object-extensions.js.map +1 -1
  91. package/dist/esm/extensions/utils.d.ts +1 -0
  92. package/dist/esm/extensions/utils.d.ts.map +1 -1
  93. package/dist/esm/extensions/utils.js +9 -0
  94. package/dist/esm/extensions/utils.js.map +1 -1
  95. package/dist/esm/observability/metrics.d.ts +12 -0
  96. package/dist/esm/observability/metrics.d.ts.map +1 -1
  97. package/dist/esm/observability/metrics.js +12 -0
  98. package/dist/esm/observability/metrics.js.map +1 -1
  99. package/dist/esm/runtime/lazy-proxy.d.ts +2 -0
  100. package/dist/esm/runtime/lazy-proxy.d.ts.map +1 -1
  101. package/dist/esm/runtime/lazy-proxy.js +29 -15
  102. package/dist/esm/runtime/lazy-proxy.js.map +1 -1
  103. package/dist/esm/runtime/luxon-transfer.d.ts +62 -0
  104. package/dist/esm/runtime/luxon-transfer.d.ts.map +1 -0
  105. package/dist/esm/runtime/luxon-transfer.js +183 -0
  106. package/dist/esm/runtime/luxon-transfer.js.map +1 -0
  107. package/dist/esm/runtime/serialize.d.ts +7 -7
  108. package/dist/esm/runtime/serialize.d.ts.map +1 -1
  109. package/dist/esm/runtime/serialize.js +42 -30
  110. package/dist/esm/runtime/serialize.js.map +1 -1
  111. package/dist/esm/runtime/transfer.d.ts +77 -0
  112. package/dist/esm/runtime/transfer.d.ts.map +1 -0
  113. package/dist/esm/runtime/transfer.js +173 -0
  114. package/dist/esm/runtime/transfer.js.map +1 -0
  115. package/dist/esm/types/bridge.d.ts +16 -0
  116. package/dist/esm/types/bridge.d.ts.map +1 -1
  117. package/dist/esm/types/bridge.js +1 -0
  118. package/dist/esm/types/bridge.js.map +1 -1
  119. package/dist/esm/types/evaluator.d.ts +9 -0
  120. package/dist/esm/types/evaluator.d.ts.map +1 -1
  121. package/dist/esm/types/evaluator.js.map +1 -1
  122. package/package.json +6 -6
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Framing for values that cross the runtime boundary.
3
+ *
4
+ * Results cross by structured clone, which does not carry the prototype of a
5
+ * class instance. A type the host must get back as a real instance goes across
6
+ * as a structured-cloneable marker object instead: a plain object naming its
7
+ * type under `__n8nType`, which the host reads and rebuilds from.
8
+ *
9
+ * This module knows the framing and nothing about any single type. The encoders
10
+ * and the decoders live next to the type they carry, such as `luxon-transfer`.
11
+ *
12
+ * User data can hold the same keys. The escape wrapper below lets the host tell
13
+ * a marker from user data that looks like one.
14
+ */
15
+ /** Names the type a marker carries, and marks the object as one of ours. */
16
+ export declare const TRANSFER_TYPE_KEY = "__n8nType";
17
+ /** Marks a wrapper whose payload is user data, not a marker. */
18
+ export declare const TRANSFER_ESCAPED_KEY = "__n8nEscaped";
19
+ /** Marks an escaped payload the host must return without any walk. */
20
+ export declare const TRANSFER_OPAQUE_KEY = "__n8nOpaque";
21
+ /** Holds the payload of an escaped wrapper. */
22
+ export declare const TRANSFER_VALUE_KEY = "__value";
23
+ /**
24
+ * Keys that make an object look like our framing.
25
+ *
26
+ * An object with one of these own keys is escaped, so the host reads it as
27
+ * data. The opaque flag is in the set for the same reason. If it were not, user
28
+ * data that holds it would make the host return an object without a walk.
29
+ *
30
+ * One type key covers every marker, so a new type does not grow this set.
31
+ */
32
+ export declare const TRANSFER_FRAMING_KEYS: readonly string[];
33
+ export interface TransferSentinel {
34
+ [TRANSFER_TYPE_KEY]: string;
35
+ }
36
+ export interface EscapedTransferValue {
37
+ [TRANSFER_ESCAPED_KEY]: true;
38
+ [TRANSFER_OPAQUE_KEY]?: true;
39
+ [TRANSFER_VALUE_KEY]: unknown;
40
+ }
41
+ /**
42
+ * Rebuild a real instance from a marker.
43
+ *
44
+ * Only the guest walk writes the type key, and it escapes any user object that
45
+ * carries one, so a decoder only ever sees a type its own encoder wrote.
46
+ */
47
+ export type SentinelDecoder = (sentinel: TransferSentinel) => unknown;
48
+ /** Give back a sentinel for a value the decoder owns, or nothing for any other. */
49
+ export type SentinelEncoder = (value: object) => TransferSentinel | undefined;
50
+ /** The type a marker names, or nothing when the value is not a marker. */
51
+ export declare function transferTypeOf(value: unknown): string | undefined;
52
+ export declare function isTransferSentinel(value: unknown): value is TransferSentinel;
53
+ export declare function isEscapedTransferValue(value: unknown): value is EscapedTransferValue;
54
+ /**
55
+ * An escaped wrapper whose payload must be returned as data without any
56
+ * further inspection for markers.
57
+ */
58
+ export declare function isOpaqueTransferValue(value: unknown): boolean;
59
+ /** Type guard: plain object with Object.prototype or null prototype. */
60
+ export declare function isPlainObject(value: object): value is Record<string, unknown>;
61
+ /** Types that structured clone copies with the prototype intact. */
62
+ export declare function isStructuredCloneBuiltin(value: object): boolean;
63
+ /**
64
+ * Rebuild instances from the markers `__prepareForTransfer` emits.
65
+ *
66
+ * Walks the same shapes that function walks: a top-level value, arrays, and
67
+ * plain objects. Other structured-cloneable types are returned untouched.
68
+ * A payload marked opaque is returned as data, without any inspection.
69
+ * Objects already visited are reused, so a graph that repeats or contains
70
+ * itself is walked once.
71
+ *
72
+ * A value that holds no marker is given back as it is. The walk copies every
73
+ * plain object and array it enters, and most results carry no marker at all,
74
+ * so the copy would double what an expression allocates for nothing.
75
+ */
76
+ export declare function unwrapTransferSentinels(value: unknown, decode: SentinelDecoder): unknown;
77
+ //# sourceMappingURL=transfer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../../../src/runtime/transfer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,4EAA4E;AAC5E,eAAO,MAAM,iBAAiB,cAAc,CAAC;AAE7C,gEAAgE;AAChE,eAAO,MAAM,oBAAoB,iBAAiB,CAAC;AAEnD,sEAAsE;AACtE,eAAO,MAAM,mBAAmB,gBAAgB,CAAC;AAEjD,+CAA+C;AAC/C,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAE5C;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAIlD,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAChC,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACpC,CAAC,oBAAoB,CAAC,EAAE,IAAI,CAAC;IAC7B,CAAC,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAAC;IAC7B,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,QAAQ,EAAE,gBAAgB,KAAK,OAAO,CAAC;AAEtE,mFAAmF;AACnF,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,gBAAgB,GAAG,SAAS,CAAC;AAO9E,0EAA0E;AAC1E,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAGjE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAE5E;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,oBAAoB,CAEpF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE7D;AAED,wEAAwE;AACxE,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAG7E;AAED,oEAAoE;AACpE,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAW/D;AAyED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAGxF"}
@@ -0,0 +1,183 @@
1
+ "use strict";
2
+ /**
3
+ * Framing for values that cross the runtime boundary.
4
+ *
5
+ * Results cross by structured clone, which does not carry the prototype of a
6
+ * class instance. A type the host must get back as a real instance goes across
7
+ * as a structured-cloneable marker object instead: a plain object naming its
8
+ * type under `__n8nType`, which the host reads and rebuilds from.
9
+ *
10
+ * This module knows the framing and nothing about any single type. The encoders
11
+ * and the decoders live next to the type they carry, such as `luxon-transfer`.
12
+ *
13
+ * User data can hold the same keys. The escape wrapper below lets the host tell
14
+ * a marker from user data that looks like one.
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.TRANSFER_FRAMING_KEYS = exports.TRANSFER_VALUE_KEY = exports.TRANSFER_OPAQUE_KEY = exports.TRANSFER_ESCAPED_KEY = exports.TRANSFER_TYPE_KEY = void 0;
18
+ exports.transferTypeOf = transferTypeOf;
19
+ exports.isTransferSentinel = isTransferSentinel;
20
+ exports.isEscapedTransferValue = isEscapedTransferValue;
21
+ exports.isOpaqueTransferValue = isOpaqueTransferValue;
22
+ exports.isPlainObject = isPlainObject;
23
+ exports.isStructuredCloneBuiltin = isStructuredCloneBuiltin;
24
+ exports.unwrapTransferSentinels = unwrapTransferSentinels;
25
+ /** Names the type a marker carries, and marks the object as one of ours. */
26
+ exports.TRANSFER_TYPE_KEY = '__n8nType';
27
+ /** Marks a wrapper whose payload is user data, not a marker. */
28
+ exports.TRANSFER_ESCAPED_KEY = '__n8nEscaped';
29
+ /** Marks an escaped payload the host must return without any walk. */
30
+ exports.TRANSFER_OPAQUE_KEY = '__n8nOpaque';
31
+ /** Holds the payload of an escaped wrapper. */
32
+ exports.TRANSFER_VALUE_KEY = '__value';
33
+ /**
34
+ * Keys that make an object look like our framing.
35
+ *
36
+ * An object with one of these own keys is escaped, so the host reads it as
37
+ * data. The opaque flag is in the set for the same reason. If it were not, user
38
+ * data that holds it would make the host return an object without a walk.
39
+ *
40
+ * One type key covers every marker, so a new type does not grow this set.
41
+ */
42
+ exports.TRANSFER_FRAMING_KEYS = [
43
+ exports.TRANSFER_TYPE_KEY,
44
+ exports.TRANSFER_ESCAPED_KEY,
45
+ exports.TRANSFER_OPAQUE_KEY,
46
+ ];
47
+ function readKey(value, key) {
48
+ if (typeof value !== 'object' || value === null)
49
+ return undefined;
50
+ return Reflect.get(value, key);
51
+ }
52
+ /** The type a marker names, or nothing when the value is not a marker. */
53
+ function transferTypeOf(value) {
54
+ const type = readKey(value, exports.TRANSFER_TYPE_KEY);
55
+ return typeof type === 'string' ? type : undefined;
56
+ }
57
+ function isTransferSentinel(value) {
58
+ return transferTypeOf(value) !== undefined;
59
+ }
60
+ function isEscapedTransferValue(value) {
61
+ return readKey(value, exports.TRANSFER_ESCAPED_KEY) === true;
62
+ }
63
+ /**
64
+ * An escaped wrapper whose payload must be returned as data without any
65
+ * further inspection for markers.
66
+ */
67
+ function isOpaqueTransferValue(value) {
68
+ return readKey(value, exports.TRANSFER_OPAQUE_KEY) === true;
69
+ }
70
+ /** Type guard: plain object with Object.prototype or null prototype. */
71
+ function isPlainObject(value) {
72
+ const proto = Object.getPrototypeOf(value);
73
+ return proto === Object.prototype || proto === null;
74
+ }
75
+ /** Types that structured clone copies with the prototype intact. */
76
+ function isStructuredCloneBuiltin(value) {
77
+ return (value instanceof Date ||
78
+ value instanceof RegExp ||
79
+ value instanceof Map ||
80
+ value instanceof Set ||
81
+ value instanceof Error ||
82
+ value instanceof Promise ||
83
+ value instanceof ArrayBuffer ||
84
+ ArrayBuffer.isView(value));
85
+ }
86
+ function unwrapPlainObject(value, decode, seen) {
87
+ const result = {};
88
+ // Record the result before the walk. A value that refers to itself then
89
+ // resolves to the same object.
90
+ seen.set(value, result);
91
+ for (const key of Object.keys(value)) {
92
+ result[key] = unwrapValue(value[key], decode, seen);
93
+ }
94
+ return result;
95
+ }
96
+ function unwrapValue(value, decode, seen) {
97
+ if (value === null || value === undefined)
98
+ return value;
99
+ if (typeof value !== 'object')
100
+ return value;
101
+ if (seen.has(value))
102
+ return seen.get(value);
103
+ if (Array.isArray(value)) {
104
+ const result = new Array(value.length);
105
+ seen.set(value, result);
106
+ // `forEach` steps over the holes of a sparse array, which keeps it sparse.
107
+ value.forEach((item, index) => {
108
+ result[index] = unwrapValue(item, decode, seen);
109
+ });
110
+ return result;
111
+ }
112
+ if (!isPlainObject(value))
113
+ return value;
114
+ if (isTransferSentinel(value))
115
+ return decode(value);
116
+ if (isEscapedTransferValue(value)) {
117
+ const inner = value[exports.TRANSFER_VALUE_KEY];
118
+ // An opaque payload is a value the guest could not walk, so nothing in it
119
+ // is our framing. Give it back as it is. A walked payload only had its own
120
+ // keys collide, so the walk goes on below and rebuilds markers deeper in.
121
+ if (isOpaqueTransferValue(value))
122
+ return inner;
123
+ if (typeof inner !== 'object' || inner === null)
124
+ return inner;
125
+ // An array payload is walked as an array. Its own entries carry no framing,
126
+ // so reading it as a marker is never right.
127
+ if (Array.isArray(inner))
128
+ return unwrapValue(inner, decode, seen);
129
+ if (!isPlainObject(inner))
130
+ return inner;
131
+ return unwrapPlainObject(inner, decode, seen);
132
+ }
133
+ return unwrapPlainObject(value, decode, seen);
134
+ }
135
+ /**
136
+ * Say whether a value holds anything the walk would rebuild.
137
+ *
138
+ * Reads the same shapes the walk reads and builds nothing, so a result with no
139
+ * marker in it costs a read and no memory. `for...in` over a plain object and
140
+ * an index loop over an array both avoid the key array `Object.keys` returns.
141
+ */
142
+ function holdsSentinel(value, seen) {
143
+ if (value === null || typeof value !== 'object')
144
+ return false;
145
+ if (seen.has(value))
146
+ return false;
147
+ seen.add(value);
148
+ if (Array.isArray(value)) {
149
+ for (let index = 0; index < value.length; index++) {
150
+ if (holdsSentinel(value[index], seen))
151
+ return true;
152
+ }
153
+ return false;
154
+ }
155
+ if (!isPlainObject(value))
156
+ return false;
157
+ if (isTransferSentinel(value) || isEscapedTransferValue(value))
158
+ return true;
159
+ for (const key in value) {
160
+ if (holdsSentinel(value[key], seen))
161
+ return true;
162
+ }
163
+ return false;
164
+ }
165
+ /**
166
+ * Rebuild instances from the markers `__prepareForTransfer` emits.
167
+ *
168
+ * Walks the same shapes that function walks: a top-level value, arrays, and
169
+ * plain objects. Other structured-cloneable types are returned untouched.
170
+ * A payload marked opaque is returned as data, without any inspection.
171
+ * Objects already visited are reused, so a graph that repeats or contains
172
+ * itself is walked once.
173
+ *
174
+ * A value that holds no marker is given back as it is. The walk copies every
175
+ * plain object and array it enters, and most results carry no marker at all,
176
+ * so the copy would double what an expression allocates for nothing.
177
+ */
178
+ function unwrapTransferSentinels(value, decode) {
179
+ if (!holdsSentinel(value, new Set()))
180
+ return value;
181
+ return unwrapValue(value, decode, new Map());
182
+ }
183
+ //# sourceMappingURL=transfer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../../src/runtime/transfer.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;;;;;;;;AAEH,4EAA4E;AAC/D,QAAA,iBAAiB,GAAG,WAAW,CAAC;AAE7C,gEAAgE;AACnD,QAAA,oBAAoB,GAAG,cAAc,CAAC;AAEnD,sEAAsE;AACzD,QAAA,mBAAmB,GAAG,aAAa,CAAC;AAEjD,+CAA+C;AAClC,QAAA,kBAAkB,GAAG,SAAS,CAAC;AAE5C;;;;;;;;GAQG;AACU,QAAA,qBAAqB,GAAsB;IACvD,QAAA,iBAAiB;IACjB,QAAA,oBAAoB;IACpB,QAAA,mBAAmB;CACnB,CAAC;AAuBF,SAAS,OAAO,CAAC,KAAc,EAAE,GAAW;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAClE,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAChC,CAAC;AAED,0EAA0E;AAC1E,wBAA+B,KAAc;IAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,QAAA,iBAAiB,CAAC,CAAC;IAC/C,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACpD,CAAC;AAED,4BAAmC,KAAc;IAChD,OAAO,cAAc,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC;AAC5C,CAAC;AAED,gCAAuC,KAAc;IACpD,OAAO,OAAO,CAAC,KAAK,EAAE,QAAA,oBAAoB,CAAC,KAAK,IAAI,CAAC;AACtD,CAAC;AAED;;;GAGG;AACH,+BAAsC,KAAc;IACnD,OAAO,OAAO,CAAC,KAAK,EAAE,QAAA,mBAAmB,CAAC,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,wEAAwE;AACxE,uBAA8B,KAAa;IAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC3C,OAAO,KAAK,KAAK,MAAM,CAAC,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,oEAAoE;AACpE,kCAAyC,KAAa;IACrD,OAAO,CACN,KAAK,YAAY,IAAI;QACrB,KAAK,YAAY,MAAM;QACvB,KAAK,YAAY,GAAG;QACpB,KAAK,YAAY,GAAG;QACpB,KAAK,YAAY,KAAK;QACtB,KAAK,YAAY,OAAO;QACxB,KAAK,YAAY,WAAW;QAC5B,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CACzB,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CACzB,KAA8B,EAC9B,MAAuB,EACvB,IAA0B;IAE1B,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,wEAAwE;IACxE,+BAA+B;IAC/B,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACxB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,KAAc,EAAE,MAAuB,EAAE,IAA0B;IACvF,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACxD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAc,IAAI,KAAK,CAAU,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3D,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACxB,2EAA2E;QAC3E,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC7B,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IACf,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,kBAAkB,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACpD,IAAI,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,MAAM,KAAK,GAAY,KAAK,CAAC,QAAA,kBAAkB,CAAC,CAAC;QACjD,0EAA0E;QAC1E,2EAA2E;QAC3E,0EAA0E;QAC1E,IAAI,qBAAqB,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QAC9D,4EAA4E;QAC5E,4CAA4C;QAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAClE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACxC,OAAO,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,KAAc,EAAE,IAAiB;IACvD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9D,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAClC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YACnD,IAAI,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;QACpD,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,kBAAkB,CAAC,KAAK,CAAC,IAAI,sBAAsB,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5E,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;IAClD,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,iCAAwC,KAAc,EAAE,MAAuB;IAC9E,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,GAAG,EAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3D,OAAO,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAG,EAAmB,CAAC,CAAC;AAC/D,CAAC"}
@@ -14,6 +14,17 @@ export interface RuntimeBridge {
14
14
  * Must be called before any execute() calls.
15
15
  */
16
16
  initialize(): Promise<void>;
17
+ /**
18
+ * Synchronous variant of initialize(), for creating a bridge on demand
19
+ * from inside the synchronous evaluate() path (lazy acquisition with an
20
+ * exhausted pool). Optional: a bridge whose setup is inherently async can
21
+ * omit it, but then it can only enter service through pool warmup.
22
+ *
23
+ * May require one-time async preparation to have happened earlier in the
24
+ * process (e.g. QuickJS's WASM module load); implementations must throw a
25
+ * clear error when that preparation is missing.
26
+ */
27
+ initializeSync?(): void;
17
28
  /**
18
29
  * Execute JavaScript code in the isolated context.
19
30
  *
@@ -65,6 +76,11 @@ export interface BridgeConfig {
65
76
  timeout?: number;
66
77
  /** Optional logger. Falls back to no-op if not provided. */
67
78
  logger?: Logger;
79
+ /**
80
+ * Reuse V8 compile cache for the runtime bundle. isolated-vm only.
81
+ * Default: false
82
+ */
83
+ compileCache?: boolean;
68
84
  }
69
85
  /** Default values for BridgeConfig. Bridge implementations should use this as their baseline. */
70
86
  export declare const DEFAULT_BRIDGE_CONFIG: Required<BridgeConfig>;
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../../src/types/bridge.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC7B;;;OAGG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC;IAE7E;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;;OAGG;IACH,UAAU,IAAI,OAAO,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,MAAM;IACtB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACjE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAChE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAChE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACjE;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AASD,iGAAiG;AACjG,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,YAAY,CAIxD,CAAC;AAEF,2CAA2C;AAC3C,MAAM,WAAW,cAAc;IAC9B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB"}
1
+ {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../../src/types/bridge.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC7B;;;OAGG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;;;;;;;;OASG;IACH,cAAc,CAAC,IAAI,IAAI,CAAC;IAExB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC;IAE7E;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;;OAGG;IACH,UAAU,IAAI,OAAO,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,MAAM;IACtB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACjE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAChE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAChE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACjE;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB;AASD,iGAAiG;AACjG,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,YAAY,CAKxD,CAAC;AAEF,2CAA2C;AAC3C,MAAM,WAAW,cAAc;IAC9B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB"}
@@ -18,5 +18,6 @@ exports.DEFAULT_BRIDGE_CONFIG = {
18
18
  memoryLimit: 128,
19
19
  timeout: 5000,
20
20
  logger: NO_OP_LOGGER,
21
+ compileCache: false,
21
22
  };
22
23
  //# sourceMappingURL=bridge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../../src/types/bridge.ts"],"names":[],"mappings":";AAAA,+EAA+E;AAC/E,uDAAuD;AACvD,EAAE;AACF,8DAA8D;AAC9D,+EAA+E;AAC/E,+EAA+E;;;AA+E/E,MAAM,YAAY,GAAW;IAC5B,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;IACf,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;CACf,CAAC;AAEF,iGAAiG;AACpF,QAAA,qBAAqB,GAA2B;IAC5D,WAAW,EAAE,GAAG;IAChB,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,YAAY;CACpB,CAAC"}
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../../src/types/bridge.ts"],"names":[],"mappings":";AAAA,+EAA+E;AAC/E,uDAAuD;AACvD,EAAE;AACF,8DAA8D;AAC9D,+EAA+E;AAC/E,+EAA+E;;;AAiG/E,MAAM,YAAY,GAAW;IAC5B,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;IACf,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;CACf,CAAC;AAEF,iGAAiG;AACpF,QAAA,qBAAqB,GAA2B;IAC5D,WAAW,EAAE,GAAG;IAChB,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,YAAY;IACpB,YAAY,EAAE,KAAK;CACnB,CAAC"}
@@ -32,6 +32,15 @@ export interface EvaluatorConfig {
32
32
  poolSize?: number;
33
33
  /** If set, scale the pool to 0 warm bridges after this many ms with no isolate acquire. */
34
34
  idleTimeoutMs?: number;
35
+ /**
36
+ * Lazy acquisition mode (prototype): acquire() only opens a scope for the
37
+ * caller; the bridge is created synchronously on the first evaluate() that
38
+ * actually needs the engine. Callers whose expressions never reach the
39
+ * engine (e.g. handled by a host-side fast path) never consume a bridge.
40
+ * On pool exhaustion the bridge is cold-started synchronously via
41
+ * RuntimeBridge.initializeSync().
42
+ */
43
+ lazyAcquire?: boolean;
35
44
  /** Optional logger. Passed through to pool. Falls back to no-op. */
36
45
  logger?: Logger;
37
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../../src/types/evaluator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../../src/types/evaluator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../../src/types/evaluator.ts"],"names":[],"mappings":";;;AA+UA,+EAA+E;AAC/E,uDAAuD;AACvD,EAAE;AACF,0DAA0D;AAC1D,wDAAwD;AACxD,+EAA+E;AAE/E;;GAEG;AACH,qBAA6B,SAAQ,KAAK;IAGjC,OAAO;IAFf,YACC,OAAe,EACR,OAKN;QAED,KAAK,CAAC,OAAO,CAAC,CAAC;uBAPR,OAAO;QAQd,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAC/B,CAAC;CACD;;AAED;;GAEG;AACH,sBAA8B,SAAQ,eAAe;CAAG;;AACxD,kBAA0B,SAAQ,eAAe;CAAG;;AACpD,4BAAoC,SAAQ,eAAe;CAAG;;AAC9D,iBAAyB,SAAQ,eAAe;CAAG"}
1
+ {"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../../src/types/evaluator.ts"],"names":[],"mappings":";;;AAyVA,+EAA+E;AAC/E,uDAAuD;AACvD,EAAE;AACF,0DAA0D;AAC1D,wDAAwD;AACxD,+EAA+E;AAE/E;;GAEG;AACH,qBAA6B,SAAQ,KAAK;IAGjC,OAAO;IAFf,YACC,OAAe,EACR,OAKN;QAED,KAAK,CAAC,OAAO,CAAC,CAAC;uBAPR,OAAO;QAQd,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAC/B,CAAC;CACD;;AAED;;GAEG;AACH,sBAA8B,SAAQ,eAAe;CAAG;;AACxD,kBAA0B,SAAQ,eAAe;CAAG;;AACpD,4BAAoC,SAAQ,eAAe;CAAG;;AAC9D,iBAAyB,SAAQ,eAAe;CAAG"}
@@ -0,0 +1,74 @@
1
+ import type { WorkflowData } from '../types';
2
+ import type { ErrorSentinel } from '../runtime/lazy-proxy';
3
+ /** Check if a value is an error sentinel returned by serializeError. */
4
+ export declare function isErrorSentinel(value: unknown): value is ErrorSentinel;
5
+ /**
6
+ * Serialize an error into a transferable metadata object.
7
+ *
8
+ * Host-side callbacks (getValueAtPath, etc.) catch errors and return this
9
+ * sentinel instead of letting the error cross the boundary (which strips
10
+ * custom class identity and properties). The guest-side proxy detects
11
+ * __isError and throws the sentinel; the host reconstructs a real Error
12
+ * after it round-trips back (see reconstructError).
13
+ */
14
+ export declare function serializeError(err: unknown): ErrorSentinel;
15
+ /**
16
+ * Reconstruct an error from a serialized error sentinel.
17
+ *
18
+ * Restores the name, stack, and custom properties that would otherwise be
19
+ * lost crossing the guest boundary.
20
+ */
21
+ export declare function reconstructError(data: ErrorSentinel): Error;
22
+ /**
23
+ * Navigate the data object by path and return metadata or a primitive value.
24
+ *
25
+ * Used by createDeepLazyProxy when accessing properties. Returns metadata
26
+ * markers for arrays and objects, or the primitive value directly.
27
+ *
28
+ * Special-case: paths starting with ['$item', index] call data.$item(index)
29
+ * to get the sub-proxy for that item, then continue navigating the rest;
30
+ * likewise ['$', nodeName] calls data.$(nodeName).
31
+ *
32
+ * Function-typed values are returned as `undefined` — every callable on
33
+ * the host data surface (`$('Foo').first()`, `$items()`, `$fromAI()`,
34
+ * `$evaluateExpression()`, `$getPairedItem()`) is wired guest-side via
35
+ * the typed-RPC dispatcher (`callHost`). No expression form should
36
+ * reach a function through this path (invariant:
37
+ * __tests__/host-fn-shadowing.test.ts).
38
+ */
39
+ export declare function getValueAtPath(data: WorkflowData, pathArr: string[]): unknown;
40
+ /**
41
+ * Get an array element at an index, navigating to the array by path first
42
+ * (same `$`/`$item` special-casing as getValueAtPath).
43
+ *
44
+ * Used by the array proxy when accessing numeric indices.
45
+ */
46
+ export declare function getArrayElement(data: WorkflowData, pathArr: string[], index: number): unknown;
47
+ /**
48
+ * Host-side dispatcher for the typed-RPC `callHost` channel.
49
+ *
50
+ * The guest sends one envelope per typed RPC invocation:
51
+ * `callHost({ type: 'getNodeFirst', nodeName, branchIndex?, runIndex? })`
52
+ *
53
+ * Inputs cross a trust boundary, so the dispatcher parses every envelope
54
+ * with the host-side zod schema (`bridgeMessageSchema`) before any
55
+ * dispatch happens. Anything that deviates from the declared shape —
56
+ * unknown `type`, missing required fields, extra unexpected fields,
57
+ * wrong field types — fails the parse and throws; the calling bridge
58
+ * catches and returns an error sentinel to the guest.
59
+ *
60
+ * After parsing, `switch (msg.type)` dispatches with a fully narrowed
61
+ * message type. The operation set is exactly the cases in this switch;
62
+ * the `type` field selects a static branch in source, not a property
63
+ * lookup on a runtime object. Each case reads a fixed literal property
64
+ * name off the host-side data proxy — the guest cannot influence which
65
+ * property is dereferenced.
66
+ *
67
+ * Return-value note: cases must return plain, structured-clone-able,
68
+ * JSON-shaped data. Each bridge marshals the result across its own
69
+ * boundary (structured clone for isolated-vm, sentinel-wrapped JSON
70
+ * round-trip for QuickJS), so engine objects or other non-cloneable
71
+ * values must not be returned.
72
+ */
73
+ export declare function dispatchHostCall(rawMsg: unknown, data: WorkflowData): unknown;
74
+ //# sourceMappingURL=host-functions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-functions.d.ts","sourceRoot":"","sources":["../../../src/bridge/host-functions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAc3D,wEAAwE;AACxE,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAMtE;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAc1D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,KAAK,CAa3D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CA0D7E;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAmE7F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CA2G7E"}