@boundaryml/baml-bridge-web 0.0.0 → 0.15.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 (89) hide show
  1. package/dist/index.d.ts +3 -3
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +16 -14
  4. package/dist/index.js.map +1 -1
  5. package/dist/native.d.ts +50 -14
  6. package/dist/native.d.ts.map +1 -1
  7. package/dist/native.js +327 -70
  8. package/dist/native.js.map +1 -1
  9. package/dist/platform.d.ts +4 -0
  10. package/dist/platform.d.ts.map +1 -0
  11. package/dist/platform.js +5 -0
  12. package/dist/platform.js.map +1 -0
  13. package/dist/shared/call_context.d.ts +7 -0
  14. package/dist/shared/call_context.d.ts.map +1 -0
  15. package/dist/shared/call_context.js +11 -0
  16. package/dist/shared/call_context.js.map +1 -0
  17. package/dist/shared/define_function.d.ts.map +1 -1
  18. package/dist/shared/define_function.js +13 -24
  19. package/dist/shared/define_function.js.map +1 -1
  20. package/dist/shared/errors.d.ts +4 -4
  21. package/dist/shared/errors.d.ts.map +1 -1
  22. package/dist/shared/errors.js +16 -10
  23. package/dist/shared/errors.js.map +1 -1
  24. package/dist/shared/host_value_registry.d.ts +5 -3
  25. package/dist/shared/host_value_registry.d.ts.map +1 -1
  26. package/dist/shared/host_value_registry.js +10 -6
  27. package/dist/shared/host_value_registry.js.map +1 -1
  28. package/dist/shared/platform.d.ts +4 -0
  29. package/dist/shared/platform.d.ts.map +1 -0
  30. package/dist/shared/platform.js +5 -0
  31. package/dist/shared/platform.js.map +1 -0
  32. package/dist/shared/proto/baml_cffi.d.ts +35 -8
  33. package/dist/shared/proto/baml_cffi.js +138 -25
  34. package/dist/shared/proto.d.ts +9 -5
  35. package/dist/shared/proto.d.ts.map +1 -1
  36. package/dist/shared/proto.js +197 -104
  37. package/dist/shared/proto.js.map +1 -1
  38. package/dist/shared/stream.d.ts +3 -2
  39. package/dist/shared/stream.d.ts.map +1 -1
  40. package/dist/shared/stream.js +22 -15
  41. package/dist/shared/stream.js.map +1 -1
  42. package/dist/wasm/bridge_web_core.d.ts +99 -68
  43. package/dist/wasm/bridge_web_core.js +519 -492
  44. package/dist/wasm/bridge_web_core_bg.wasm +0 -0
  45. package/dist/wasm/bridge_web_core_bg.wasm.d.ts +41 -27
  46. package/dist/wasm/package.json +1 -1
  47. package/dist/workerd/index.d.ts +3 -3
  48. package/dist/workerd/index.d.ts.map +1 -1
  49. package/dist/workerd/index.js +21 -14
  50. package/dist/workerd/index.js.map +1 -1
  51. package/dist/workerd/native.d.ts +50 -14
  52. package/dist/workerd/native.d.ts.map +1 -1
  53. package/dist/workerd/native.js +327 -70
  54. package/dist/workerd/shared/call_context.d.ts +7 -0
  55. package/dist/workerd/shared/call_context.d.ts.map +1 -0
  56. package/dist/workerd/shared/call_context.js +11 -0
  57. package/dist/workerd/shared/call_context.js.map +1 -0
  58. package/dist/workerd/shared/define_function.d.ts.map +1 -1
  59. package/dist/workerd/shared/define_function.js +13 -24
  60. package/dist/workerd/shared/define_function.js.map +1 -1
  61. package/dist/workerd/shared/errors.d.ts +4 -4
  62. package/dist/workerd/shared/errors.d.ts.map +1 -1
  63. package/dist/workerd/shared/errors.js +16 -10
  64. package/dist/workerd/shared/errors.js.map +1 -1
  65. package/dist/workerd/shared/host_value_registry.d.ts +5 -3
  66. package/dist/workerd/shared/host_value_registry.d.ts.map +1 -1
  67. package/dist/workerd/shared/host_value_registry.js +10 -6
  68. package/dist/workerd/shared/host_value_registry.js.map +1 -1
  69. package/dist/workerd/shared/platform.d.ts +4 -0
  70. package/dist/workerd/shared/platform.d.ts.map +1 -0
  71. package/dist/workerd/shared/platform.js +5 -0
  72. package/dist/workerd/shared/platform.js.map +1 -0
  73. package/dist/workerd/shared/proto/baml_cffi.d.ts +35 -8
  74. package/dist/workerd/shared/proto/baml_cffi.js +140 -25
  75. package/dist/workerd/shared/proto.d.ts +9 -5
  76. package/dist/workerd/shared/proto.d.ts.map +1 -1
  77. package/dist/workerd/shared/proto.js +197 -104
  78. package/dist/workerd/shared/proto.js.map +1 -1
  79. package/dist/workerd/shared/stream.d.ts +3 -2
  80. package/dist/workerd/shared/stream.d.ts.map +1 -1
  81. package/dist/workerd/shared/stream.js +22 -15
  82. package/dist/workerd/shared/stream.js.map +1 -1
  83. package/dist/workerd-wasm/bridge_web_core.d.ts +62 -45
  84. package/dist/workerd-wasm/bridge_web_core.js +3 -5
  85. package/dist/workerd-wasm/bridge_web_core_bg.js +519 -493
  86. package/dist/workerd-wasm/bridge_web_core_bg.wasm +0 -0
  87. package/dist/workerd-wasm/bridge_web_core_bg.wasm.d.ts +41 -27
  88. package/dist/workerd-wasm/package.json +1 -1
  89. package/package.json +22 -5
package/dist/native.js CHANGED
@@ -1,88 +1,309 @@
1
- import initWasm, { callFunction as callWasmFunction, callFunctionSync as callWasmFunctionSync, cancelFunctionCall as cancelWasmFunctionCall, completeWebHostCall, mintWebHostValueKey, newFunctionCall as newWasmFunctionCall, registerWebHostCallable, registerWebHostValueReleaseCallback, releaseWebHostCallable, stageRuntimeBytecode, } from "./wasm/bridge_web_core.js";
1
+ import initWasm, { callFunction as callWasmFunction, callFunctionSync as callWasmFunctionSync, cancelFunctionCall as cancelWasmFunctionCall, cloneHandle as cloneWasmHandle, completeWebHostCall, configureWebSysops, flushEvents as flushWasmEvents, getBridgeRuntimeVersion as getWasmBridgeRuntimeVersion, getToolchainVersion as getWasmToolchainVersion, getVersion as getWasmVersion, mediaBase64 as mediaWasmBase64, mediaFile as mediaWasmFile, mediaFromBase64 as mediaWasmFromBase64, mediaFromFile as mediaWasmFromFile, mediaFromUrl as mediaWasmFromUrl, mediaMimeType as mediaWasmMimeType, mediaUrl as mediaWasmUrl, mintWebHostValueKey, newFunctionCall as newWasmFunctionCall, registerWebHostCallable, registerWebHostValueReleaseCallback, releaseHandle as releaseWasmHandle, releaseWebHostCallable, seedFunctionRefHandle as seedWasmFunctionRefHandle, seedGenericMediaHandle as seedWasmGenericMediaHandle, stageRuntimeBytecode, stageRuntimeSources, } from "./wasm/bridge_web_core.js";
2
+ import { BamlClientError, wrapNativeError } from "./shared/errors.js";
2
3
  await initWasm();
3
- async function browserFetch(_callId, method, url, headersJson, body) {
4
- const headers = JSON.parse(headersJson);
5
- const response = await fetch(url, {
6
- method,
7
- headers,
8
- body: body.length === 0 || method === "GET" || method === "HEAD" ? undefined : body,
9
- });
10
- const responseHeaders = {};
11
- response.headers.forEach((value, key) => { responseHeaders[key] = value; });
4
+ let readFileSyncImpl;
5
+ let hostCallableDispatchFactory;
6
+ let webSysopKeys;
7
+ export function installReadFileSync(impl) {
8
+ readFileSyncImpl = impl;
9
+ }
10
+ export function installHostCallableDispatchFactory(factory) {
11
+ hostCallableDispatchFactory = factory;
12
+ }
13
+ function errorMessage(error) {
14
+ return error instanceof Error ? error.message : String(error);
15
+ }
16
+ function parseFetchCall(value) {
17
+ if (value === null || typeof value !== "object")
18
+ throw new TypeError("fetch call must be an object");
19
+ const call = value;
20
+ if (typeof call.method !== "string")
21
+ throw new TypeError("fetch method must be a string");
22
+ if (typeof call.url !== "string")
23
+ throw new TypeError("fetch URL must be a string");
24
+ if (!(call.body instanceof Uint8Array))
25
+ throw new TypeError("fetch body must be bytes");
26
+ if (typeof call.timeoutNanos !== "bigint" || call.timeoutNanos < 0n)
27
+ throw new TypeError("fetch timeoutNanos must be a non-negative bigint");
28
+ if (!Array.isArray(call.headers) || !call.headers.every((pair) => Array.isArray(pair) && pair.length === 2 && typeof pair[0] === "string" && typeof pair[1] === "string")) {
29
+ throw new TypeError("fetch headers must be string pairs");
30
+ }
31
+ return call;
32
+ }
33
+ async function webFetch(value) {
34
+ let call;
35
+ try {
36
+ call = parseFetchCall(value);
37
+ }
38
+ catch (error) {
39
+ return { kind: "io", message: errorMessage(error) };
40
+ }
41
+ const controller = new AbortController();
42
+ let timedOut = false;
43
+ let timer;
44
+ if (call.timeoutNanos > 0n) {
45
+ const timeoutMillis = (call.timeoutNanos + 999999n) / 1000000n;
46
+ const maximumTimerMillis = 2147483647n;
47
+ timer = setTimeout(() => {
48
+ timedOut = true;
49
+ controller.abort();
50
+ }, Number(timeoutMillis > maximumTimerMillis ? maximumTimerMillis : timeoutMillis));
51
+ }
52
+ try {
53
+ const method = call.method.toUpperCase();
54
+ const requestBody = method === "GET" || method === "HEAD" || call.body.length === 0 ? undefined : new Uint8Array(call.body);
55
+ const response = await globalThis.fetch(call.url, {
56
+ method,
57
+ headers: new Headers(call.headers),
58
+ body: requestBody,
59
+ signal: controller.signal,
60
+ });
61
+ const body = new Uint8Array(await response.arrayBuffer());
62
+ return {
63
+ kind: "ok",
64
+ statusCode: response.status,
65
+ url: response.url || call.url,
66
+ headers: Array.from(response.headers.entries()),
67
+ body,
68
+ };
69
+ }
70
+ catch (error) {
71
+ return timedOut
72
+ ? { kind: "timeout", message: `HTTP request timed out: ${errorMessage(error)}` }
73
+ : { kind: "io", message: `HTTP request failed: ${errorMessage(error)}` };
74
+ }
75
+ finally {
76
+ if (timer !== undefined)
77
+ clearTimeout(timer);
78
+ }
79
+ }
80
+ function webReadFileSync(path) {
81
+ if (typeof path !== "string")
82
+ return { kind: "io", message: "readFileSync path must be a string" };
83
+ if (!readFileSyncImpl)
84
+ return { kind: "unavailable", message: "fs.readFileSync is not available in this JavaScript runtime" };
85
+ try {
86
+ const value = readFileSyncImpl(path);
87
+ const bytes = new Uint8Array(value.byteLength);
88
+ bytes.set(new Uint8Array(value.buffer, value.byteOffset, value.byteLength));
89
+ return { kind: "ok", bytes };
90
+ }
91
+ catch (error) {
92
+ return { kind: "io", message: `readFileSync failed for ${path}: ${errorMessage(error)}` };
93
+ }
94
+ }
95
+ function ensureWebSysopsConfigured() {
96
+ if (!hostCallableDispatchFactory)
97
+ throw new Error("Web HOST_VALUE_CALLABLE dispatch is not installed");
98
+ if (!webSysopKeys) {
99
+ webSysopKeys = {
100
+ fetch: registerWebHostCallable(hostCallableDispatchFactory(webFetch)),
101
+ readFileSync: registerWebHostCallable(hostCallableDispatchFactory(webReadFileSync)),
102
+ };
103
+ }
104
+ configureWebSysops(webSysopKeys.fetch, webSysopKeys.readFileSync);
105
+ }
106
+ function keyToBigint(key) {
107
+ if (!Number.isInteger(key.low) || !Number.isInteger(key.high)) {
108
+ throw new TypeError("BamlHandle key halves must be 32-bit integers");
109
+ }
110
+ return (BigInt(key.high >>> 0) << 32n) | BigInt(key.low >>> 0);
111
+ }
112
+ function keyFromBigint(value) {
113
+ const normalized = BigInt.asUintN(64, value);
12
114
  return {
13
- status: response.status,
14
- headersJson: JSON.stringify(responseHeaders),
15
- url: response.url,
16
- bodyPromise: response.text(),
115
+ low: Number(BigInt.asIntN(32, normalized)),
116
+ high: Number(BigInt.asIntN(32, normalized >> 32n)),
17
117
  };
18
118
  }
19
- const unsupportedProcess = async () => {
20
- throw new Error("process execution is not available in a browser");
21
- };
22
- const browserCallbacks = {
23
- fetch: browserFetch,
24
- env: (key) => globalThis.BAML_ENV?.[key],
25
- input: async (_requestId, promptText) => globalThis.prompt?.(promptText ?? "") ?? "",
26
- exec: unsupportedProcess,
27
- shell: unsupportedProcess,
28
- lsp_send_notification: () => { },
29
- lsp_send_response: () => { },
30
- lsp_make_request: () => { },
31
- playground_send_notification: () => { },
32
- host_dispatch: (key) => { throw new Error(`unknown browser host callable ${key}`); },
33
- };
34
- function keyFromBigint(value) {
35
- return { low: Number(BigInt.asIntN(32, value)), high: Number(BigInt.asIntN(32, value >> 32n)) };
119
+ // Keep in sync with baml_handle.proto and baml_outbound.proto.
120
+ const HANDLE_FUNCTION_REF = 5;
121
+ const HANDLE_MEDIA_IMAGE = 6;
122
+ const HANDLE_MEDIA_AUDIO = 7;
123
+ const HANDLE_MEDIA_VIDEO = 8;
124
+ const HANDLE_MEDIA_PDF = 9;
125
+ const HANDLE_MEDIA_GENERIC = 10;
126
+ const HANDLE_HOST_VALUE_CALLABLE = 15;
127
+ const HANDLE_HOST_VALUE_OPAQUE = 16;
128
+ const MEDIA_IMAGE = 1;
129
+ const MEDIA_AUDIO = 2;
130
+ const MEDIA_PDF = 3;
131
+ const MEDIA_VIDEO = 4;
132
+ function isHostValueHandleType(handleType) {
133
+ return handleType === HANDLE_HOST_VALUE_CALLABLE || handleType === HANDLE_HOST_VALUE_OPAQUE;
36
134
  }
135
+ const ordinaryHandleFinalizer = new FinalizationRegistry((key) => {
136
+ try {
137
+ releaseWasmHandle(key);
138
+ }
139
+ catch {
140
+ // Finalizers may run during isolate teardown. Eventual cleanup is best-effort.
141
+ }
142
+ });
37
143
  export class BamlHandle {
38
- key;
39
144
  handleType;
145
+ rawKey;
146
+ finalizerToken;
147
+ released = false;
40
148
  constructor(key, handleType) {
41
- this.key = key;
42
149
  this.handleType = handleType;
150
+ this.rawKey = keyToBigint(key);
151
+ if (isHostValueHandleType(handleType)) {
152
+ this.finalizerToken = undefined;
153
+ }
154
+ else {
155
+ this.finalizerToken = {};
156
+ ordinaryHandleFinalizer.register(this, this.rawKey, this.finalizerToken);
157
+ }
158
+ }
159
+ get key() {
160
+ this.assertLive();
161
+ return keyFromBigint(this.rawKey);
162
+ }
163
+ assertLive() {
164
+ if (this.released)
165
+ throw new Error("BamlHandle has been released");
166
+ }
167
+ _keyForBridge() {
168
+ this.assertLive();
169
+ return this.rawKey;
170
+ }
171
+ clone() {
172
+ this.assertLive();
173
+ if (isHostValueHandleType(this.handleType))
174
+ return new BamlHandle(this.key, this.handleType);
175
+ return new BamlHandle(keyFromBigint(cloneWasmHandle(this.rawKey)), this.handleType);
176
+ }
177
+ _cloneKeyForWire() {
178
+ this.assertLive();
179
+ if (isHostValueHandleType(this.handleType))
180
+ return keyFromBigint(this.rawKey);
181
+ return keyFromBigint(cloneWasmHandle(this.rawKey));
182
+ }
183
+ _releaseForTest() {
184
+ if (isHostValueHandleType(this.handleType) || this.released)
185
+ return false;
186
+ this.released = true;
187
+ if (this.finalizerToken)
188
+ ordinaryHandleFinalizer.unregister(this.finalizerToken);
189
+ return releaseWasmHandle(this.rawKey);
43
190
  }
44
- clone() { return new BamlHandle(this.key, this.handleType); }
45
- _cloneKeyForWire() { return this.key; }
46
191
  }
47
192
  class BamlMedia {
48
- handle;
49
- constructor(handle) {
50
- this.handle = handle;
51
- }
52
- static fromUrl(_url, _mimeType) { throw new Error("browser media construction is not implemented yet"); }
53
- static fromFile(_file, _mimeType) { throw new Error("browser media construction is not implemented yet"); }
54
- static fromBase64(_base64, _mimeType) { throw new Error("browser media construction is not implemented yet"); }
55
- static _fromHandle(handle) { return new this(handle); }
56
- _toHandle() { return this.handle.clone(); }
57
- url() { return null; }
58
- file() { return null; }
59
- base64() { throw new Error("browser media access is not implemented yet"); }
60
- mimeType() { return null; }
193
+ rawKey;
194
+ handleType;
195
+ finalizerToken = {};
196
+ released = false;
197
+ constructor(rawKey, handleType) {
198
+ this.rawKey = rawKey;
199
+ this.handleType = handleType;
200
+ ordinaryHandleFinalizer.register(this, rawKey, this.finalizerToken);
201
+ }
202
+ static cloneKeyFromHandle(handle, expectedHandleType, className) {
203
+ if (handle.handleType !== expectedHandleType) {
204
+ throw new TypeError(`${className} requires handle type ${expectedHandleType}, got ${handle.handleType}`);
205
+ }
206
+ return cloneWasmHandle(handle._keyForBridge());
207
+ }
208
+ assertLive() {
209
+ if (this.released)
210
+ throw new Error(`${this.constructor.name} has been released`);
211
+ }
212
+ _toHandle() {
213
+ this.assertLive();
214
+ return new BamlHandle(keyFromBigint(cloneWasmHandle(this.rawKey)), this.handleType);
215
+ }
216
+ url() {
217
+ this.assertLive();
218
+ return mediaWasmUrl(this.rawKey, this.handleType) ?? null;
219
+ }
220
+ file() {
221
+ this.assertLive();
222
+ return mediaWasmFile(this.rawKey, this.handleType) ?? null;
223
+ }
224
+ base64() {
225
+ this.assertLive();
226
+ return mediaWasmBase64(this.rawKey, this.handleType);
227
+ }
228
+ mimeType() {
229
+ this.assertLive();
230
+ return mediaWasmMimeType(this.rawKey, this.handleType) ?? null;
231
+ }
232
+ _releaseForTest() {
233
+ if (this.released)
234
+ return false;
235
+ this.released = true;
236
+ ordinaryHandleFinalizer.unregister(this.finalizerToken);
237
+ return releaseWasmHandle(this.rawKey);
238
+ }
61
239
  }
62
240
  export class BamlImage extends BamlMedia {
241
+ constructor(rawKey) { super(rawKey, HANDLE_MEDIA_IMAGE); }
242
+ static fromUrl(url, mimeType) { return new BamlImage(mediaWasmFromUrl(MEDIA_IMAGE, url, mimeType ?? undefined)); }
243
+ static fromFile(file, mimeType) { return new BamlImage(mediaWasmFromFile(MEDIA_IMAGE, file, mimeType ?? undefined)); }
244
+ static fromBase64(base64, mimeType) { return new BamlImage(mediaWasmFromBase64(MEDIA_IMAGE, base64, mimeType ?? undefined)); }
245
+ static _fromHandle(handle) { return new BamlImage(this.cloneKeyFromHandle(handle, HANDLE_MEDIA_IMAGE, "BamlImage")); }
63
246
  }
64
247
  export class BamlAudio extends BamlMedia {
248
+ constructor(rawKey) { super(rawKey, HANDLE_MEDIA_AUDIO); }
249
+ static fromUrl(url, mimeType) { return new BamlAudio(mediaWasmFromUrl(MEDIA_AUDIO, url, mimeType ?? undefined)); }
250
+ static fromFile(file, mimeType) { return new BamlAudio(mediaWasmFromFile(MEDIA_AUDIO, file, mimeType ?? undefined)); }
251
+ static fromBase64(base64, mimeType) { return new BamlAudio(mediaWasmFromBase64(MEDIA_AUDIO, base64, mimeType ?? undefined)); }
252
+ static _fromHandle(handle) { return new BamlAudio(this.cloneKeyFromHandle(handle, HANDLE_MEDIA_AUDIO, "BamlAudio")); }
65
253
  }
66
254
  export class BamlVideo extends BamlMedia {
255
+ constructor(rawKey) { super(rawKey, HANDLE_MEDIA_VIDEO); }
256
+ static fromUrl(url, mimeType) { return new BamlVideo(mediaWasmFromUrl(MEDIA_VIDEO, url, mimeType ?? undefined)); }
257
+ static fromFile(file, mimeType) { return new BamlVideo(mediaWasmFromFile(MEDIA_VIDEO, file, mimeType ?? undefined)); }
258
+ static fromBase64(base64, mimeType) { return new BamlVideo(mediaWasmFromBase64(MEDIA_VIDEO, base64, mimeType ?? undefined)); }
259
+ static _fromHandle(handle) { return new BamlVideo(this.cloneKeyFromHandle(handle, HANDLE_MEDIA_VIDEO, "BamlVideo")); }
67
260
  }
68
261
  export class BamlPdf extends BamlMedia {
262
+ constructor(rawKey) { super(rawKey, HANDLE_MEDIA_PDF); }
263
+ static fromUrl(url, mimeType) { return new BamlPdf(mediaWasmFromUrl(MEDIA_PDF, url, mimeType ?? undefined)); }
264
+ static fromFile(file, mimeType) { return new BamlPdf(mediaWasmFromFile(MEDIA_PDF, file, mimeType ?? undefined)); }
265
+ static fromBase64(base64, mimeType) { return new BamlPdf(mediaWasmFromBase64(MEDIA_PDF, base64, mimeType ?? undefined)); }
266
+ static _fromHandle(handle) { return new BamlPdf(this.cloneKeyFromHandle(handle, HANDLE_MEDIA_PDF, "BamlPdf")); }
267
+ }
268
+ const MAX_UINT64 = (1n << 64n) - 1n;
269
+ const DECIMAL_UINT64 = /^\+?[0-9]+$/;
270
+ let callCancellationObserver;
271
+ function parseCallId(callId) {
272
+ if (typeof callId !== "string" || !DECIMAL_UINT64.test(callId)) {
273
+ throw new TypeError("callId must be a decimal uint64 string");
274
+ }
275
+ const parsed = BigInt(callId);
276
+ if (parsed > MAX_UINT64)
277
+ throw new TypeError("callId must be a decimal uint64 string");
278
+ return parsed;
279
+ }
280
+ function cancelCallId(callId) {
281
+ callCancellationObserver?.(callId);
282
+ return cancelWasmFunctionCall(callId);
283
+ }
284
+ export function _setCallCancellationObserverForTest(observer) {
285
+ callCancellationObserver = observer;
69
286
  }
70
287
  export class BamlCallContext {
71
- callIds = new Set();
288
+ activeCallIds = new Set();
72
289
  isAborted = false;
73
290
  abort() {
291
+ if (this.isAborted)
292
+ return;
74
293
  this.isAborted = true;
75
- for (const callId of this.callIds)
76
- cancelWasmFunctionCall(callId);
294
+ for (const callId of [...this.activeCallIds])
295
+ cancelCallId(callId);
77
296
  }
78
297
  get aborted() { return this.isAborted; }
79
298
  _attachCallId(callId) {
80
- const id = BigInt(callId);
81
- this.callIds.add(id);
82
- if (this.isAborted)
83
- cancelWasmFunctionCall(id);
299
+ const id = parseCallId(callId);
300
+ const alreadyAttached = this.activeCallIds.has(id);
301
+ this.activeCallIds.add(id);
302
+ if (this.isAborted && !alreadyAttached)
303
+ cancelCallId(id);
84
304
  }
85
- _detachCallId(callId) { this.callIds.delete(BigInt(callId)); }
305
+ _detachCallId(callId) { this.activeCallIds.delete(parseCallId(callId)); }
306
+ _activeCallIdsForTest() { return [...this.activeCallIds]; }
86
307
  }
87
308
  export class HostSpanManager {
88
309
  enter(_name, _args) { }
@@ -105,32 +326,64 @@ export class Collector {
105
326
  constructor(_name) { }
106
327
  }
107
328
  export class BamlRuntime {
108
- static initializeRuntimeFromBytecode(bytecode) {
109
- stageRuntimeBytecode(bytecode, browserCallbacks);
329
+ static initializeRuntimeFromBytecode(bytecode, embeddedBamlToml) {
330
+ ensureWebSysopsConfigured();
331
+ try {
332
+ stageRuntimeBytecode(bytecode, embeddedBamlToml);
333
+ }
334
+ catch (error) {
335
+ throw wrapNativeError(error);
336
+ }
110
337
  runtime = new BamlRuntime();
111
338
  return runtime;
112
339
  }
113
- static initializeRuntime(_rootPath, _files) {
114
- throw new Error("browser source initialization is not implemented; use bytecode");
340
+ static initializeRuntime(rootPath, files) {
341
+ ensureWebSysopsConfigured();
342
+ try {
343
+ stageRuntimeSources(rootPath, files);
344
+ }
345
+ catch (error) {
346
+ throw wrapNativeError(error);
347
+ }
348
+ runtime = new BamlRuntime();
349
+ return runtime;
115
350
  }
116
- callFunctionSync(functionName, encodedArgs, _ctx, _collectors) {
117
- return callWasmFunctionSync(functionName, encodedArgs);
351
+ callFunctionSync(encodedArgs, _ctx, _collectors) {
352
+ try {
353
+ return callWasmFunctionSync(encodedArgs);
354
+ }
355
+ catch (error) {
356
+ throw wrapNativeError(error);
357
+ }
118
358
  }
119
- callFunction(functionName, encodedArgs, _ctx, _collectors) {
120
- return callWasmFunction(functionName, encodedArgs);
359
+ async callFunction(encodedArgs, _ctx, _collectors) {
360
+ try {
361
+ return await callWasmFunction(encodedArgs);
362
+ }
363
+ catch (error) {
364
+ throw wrapNativeError(error);
365
+ }
121
366
  }
122
367
  }
123
368
  let runtime;
124
369
  let hostRelease;
125
370
  export function getRuntime() {
126
371
  if (!runtime)
127
- throw new Error("BAML runtime has not been initialized");
372
+ throw new BamlClientError("BAML runtime has not been initialized");
128
373
  return runtime;
129
374
  }
130
375
  export function newFunctionCall() { return newWasmFunctionCall(); }
131
- export function cancelFunctionCall(callId) { return cancelWasmFunctionCall(BigInt(callId)); }
132
- export function flushEvents() { }
133
- export function getVersion() { return "0.0.0-web"; }
376
+ export function cancelFunctionCall(callId) {
377
+ const parsed = typeof callId === "bigint" ? callId : parseCallId(callId);
378
+ if (parsed < 0n || parsed > MAX_UINT64) {
379
+ throw new TypeError("callId must be a decimal uint64 string");
380
+ }
381
+ return cancelCallId(parsed);
382
+ }
383
+ export function flushEvents() { flushWasmEvents(); }
384
+ export function getVersion() { return getWasmVersion(); }
385
+ export function getToolchainVersion() { return getWasmToolchainVersion(); }
386
+ export function getBridgeRuntimeVersion() { return getWasmBridgeRuntimeVersion(); }
134
387
  export function mintHostValueKey() { return keyFromBigint(mintWebHostValueKey()); }
135
388
  export function registerHostValueReleaseCallback(callback) {
136
389
  hostRelease = callback;
@@ -143,6 +396,10 @@ export function releaseHostCallable(key) {
143
396
  hostRelease?.(key);
144
397
  }
145
398
  export function completeHostCall(callId, isError, content) { completeWebHostCall(callId, isError, content); }
146
- export function _seedFunctionRefHandle(_globalIndex) { throw new Error("test handle seeding is not implemented yet"); }
147
- export function _seedGenericMediaHandle() { throw new Error("test handle seeding is not implemented yet"); }
399
+ export function _seedFunctionRefHandle(globalIndex) {
400
+ return [keyFromBigint(seedWasmFunctionRefHandle(globalIndex)), HANDLE_FUNCTION_REF];
401
+ }
402
+ export function _seedGenericMediaHandle() {
403
+ return [keyFromBigint(seedWasmGenericMediaHandle()), HANDLE_MEDIA_GENERIC];
404
+ }
148
405
  //# sourceMappingURL=native.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"native.js","sourceRoot":"","sources":["../typescript_src/native.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"native.js","sourceRoot":"","sources":["../typescript_src/native.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { BamlPanic } from './shared/errors.js';
2
+ export declare const supportsSyncStreamPulls = false;
3
+ export declare function handleExitPanic(_code: number, fallbackPanic: BamlPanic): never;
4
+ //# sourceMappingURL=platform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../typescript_src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,eAAO,MAAM,uBAAuB,QAAQ,CAAC;AAE7C,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,GAAG,KAAK,CAE9E"}
@@ -0,0 +1,5 @@
1
+ export const supportsSyncStreamPulls = false;
2
+ export function handleExitPanic(_code, fallbackPanic) {
3
+ throw fallbackPanic;
4
+ }
5
+ //# sourceMappingURL=platform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../typescript_src/platform.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAE7C,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,aAAwB;IACrE,MAAM,aAAa,CAAC;AACtB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { BamlCallContext } from '../native.js';
2
+ export interface CallContextBinding {
3
+ detach(): void;
4
+ }
5
+ /** Attach one outer call ID and return its absent-safe lifecycle owner. */
6
+ export declare function attachCallContext(ctx: BamlCallContext | undefined, callId: bigint): CallContextBinding;
7
+ //# sourceMappingURL=call_context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call_context.d.ts","sourceRoot":"","sources":["../../typescript_src/shared/call_context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,WAAW,kBAAkB;IAC/B,MAAM,IAAI,IAAI,CAAC;CAClB;AAED,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAC7B,GAAG,EAAE,eAAe,GAAG,SAAS,EAChC,MAAM,EAAE,MAAM,GACf,kBAAkB,CAQpB"}
@@ -0,0 +1,11 @@
1
+ /** Attach one outer call ID and return its absent-safe lifecycle owner. */
2
+ export function attachCallContext(ctx, callId) {
3
+ const serialized = callId.toString();
4
+ ctx?._attachCallId(serialized);
5
+ return {
6
+ detach() {
7
+ ctx?._detachCallId(serialized);
8
+ },
9
+ };
10
+ }
11
+ //# sourceMappingURL=call_context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call_context.js","sourceRoot":"","sources":["../../typescript_src/shared/call_context.ts"],"names":[],"mappings":"AAMA,2EAA2E;AAC3E,MAAM,UAAU,iBAAiB,CAC7B,GAAgC,EAChC,MAAc;IAEd,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IACrC,GAAG,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC/B,OAAO;QACH,MAAM;YACF,GAAG,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;QACnC,CAAC;KACJ,CAAC;AACN,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"define_function.d.ts","sourceRoot":"","sources":["../../typescript_src/shared/define_function.ts"],"names":[],"mappings":"AAsBA,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC;AAEpC,8EAA8E;AAC9E,eAAO,MAAM,KAAK,EAAE,OAAO,MAA6B,CAAC;AAEzD;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC1B,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AAoLD;;;;GAIG;AACH,wBAAgB,cAAc,CAC1B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,IAAI,EACV,kBAAkB,EAAE,SAAS,MAAM,EAAE,EACrC,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,EAClD,QAAQ,CAAC,EAAE,aAAa,GAAG,SAAS,GACrC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CA8CjC;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAClC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,IAAI,EACV,kBAAkB,EAAE,SAAS,MAAM,EAAE,EACrC,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,EAClD,QAAQ,CAAC,EAAE,aAAa,GAAG,SAAS,GACrC;IAAE,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAA;CAAE,CA2D1D"}
1
+ {"version":3,"file":"define_function.d.ts","sourceRoot":"","sources":["../../typescript_src/shared/define_function.ts"],"names":[],"mappings":"AAuBA,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC;AAEpC,8EAA8E;AAC9E,eAAO,MAAM,KAAK,EAAE,OAAO,MAA6B,CAAC;AAEzD;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC1B,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AAuKD;;;;GAIG;AACH,wBAAgB,cAAc,CAC1B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,IAAI,EACV,kBAAkB,EAAE,SAAS,MAAM,EAAE,EACrC,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,EAClD,QAAQ,CAAC,EAAE,aAAa,GAAG,SAAS,GACrC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CA4CjC;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAClC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,IAAI,EACV,kBAAkB,EAAE,SAAS,MAAM,EAAE,EACrC,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,EAClD,QAAQ,CAAC,EAAE,aAAa,GAAG,SAAS,GACrC;IAAE,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAA;CAAE,CAyD1D"}