@jitl/opentui-core 0.1.97 → 0.2.15

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 (132) hide show
  1. package/NativeSpanFeed.d.ts +2 -2
  2. package/README.md +2 -1
  3. package/Renderable.d.ts +12 -1
  4. package/audio.d.ts +89 -0
  5. package/buffer.d.ts +6 -5
  6. package/console.d.ts +3 -1
  7. package/edit-buffer.d.ts +1 -1
  8. package/editor-view.d.ts +1 -1
  9. package/{index-yxe6e14n.js → index-46f5e8m6.js} +1388 -1721
  10. package/index-46f5e8m6.js.map +36 -0
  11. package/index-5zwezmgj.js +639 -0
  12. package/index-5zwezmgj.js.map +11 -0
  13. package/index-axv7cw60.js +44 -0
  14. package/index-axv7cw60.js.map +10 -0
  15. package/{index-rhfjv9c1.js → index-g9agybj3.js} +4626 -984
  16. package/index-g9agybj3.js.map +82 -0
  17. package/index-k18nf2r7.js +21 -0
  18. package/{ffi-x3zvcksd.js.map → index-k18nf2r7.js.map} +1 -1
  19. package/{index-tkk6cmr2.js → index-rp7vz5rh.js} +125 -23
  20. package/index-rp7vz5rh.js.map +10 -0
  21. package/{index-kcpn1hka.js → index-xwsdfq5x.js} +16 -6
  22. package/index-xwsdfq5x.js.map +10 -0
  23. package/index.d.ts +1 -0
  24. package/index.js +37 -17
  25. package/index.js.map +1 -1
  26. package/lib/RGBA.d.ts +22 -6
  27. package/lib/clipboard.d.ts +1 -1
  28. package/lib/{keymapping.d.ts → keybinding.internal.d.ts} +10 -2
  29. package/lib/objects-in-viewport.d.ts +4 -4
  30. package/lib/parse.keypress-kitty.d.ts +1 -0
  31. package/lib/parse.keypress.d.ts +1 -0
  32. package/lib/render-geometry.d.ts +8 -0
  33. package/lib/stdin-parser.d.ts +4 -1
  34. package/lib/terminal-capability-detection.d.ts +2 -0
  35. package/lib/terminal-palette.d.ts +20 -5
  36. package/lib/tree-sitter/assets/update.d.ts +1 -0
  37. package/lib/tree-sitter/client.d.ts +2 -0
  38. package/lib/tree-sitter/default-parsers.d.ts +1 -1
  39. package/lib/tree-sitter/index.d.ts +0 -2
  40. package/lib/tree-sitter/update-assets.d.ts +3 -0
  41. package/lib/tree-sitter/update-assets.js +377 -0
  42. package/lib/tree-sitter/update-assets.js.map +12 -0
  43. package/lib/tree-sitter-styled-text.d.ts +6 -4
  44. package/node22-bun-ffi-structs-ha8fmzzb.js +396 -0
  45. package/node22-bun-ffi-structs-ha8fmzzb.js.map +10 -0
  46. package/package.json +23 -22
  47. package/parser.worker.js +161 -24
  48. package/parser.worker.js.map +12 -5
  49. package/platform/bun-ffi-structs.d.ts +2 -0
  50. package/platform/ffi.d.ts +126 -0
  51. package/platform/node22-bun-ffi-structs.d.ts +33 -0
  52. package/platform/node22-ffi.d.ts +33 -0
  53. package/{compat → platform}/runtime.d.ts +6 -0
  54. package/platform/worker.d.ts +4 -0
  55. package/renderables/Code.d.ts +4 -0
  56. package/renderables/Markdown.d.ts +62 -0
  57. package/renderables/ScrollBox.d.ts +1 -0
  58. package/renderables/Select.d.ts +3 -1
  59. package/renderables/TabSelect.d.ts +3 -1
  60. package/renderables/TextBufferRenderable.d.ts +1 -0
  61. package/renderables/TextTable.d.ts +15 -1
  62. package/renderables/Textarea.d.ts +5 -3
  63. package/renderables/markdown-parser.d.ts +1 -0
  64. package/renderer-theme-mode.d.ts +29 -0
  65. package/renderer.d.ts +142 -16
  66. package/runtime-plugin-support-configure.d.ts +4 -0
  67. package/runtime-plugin-support-configure.js +20 -0
  68. package/{index-re3ntm60.js.map → runtime-plugin-support-configure.js.map} +1 -1
  69. package/runtime-plugin-support.d.ts +3 -3
  70. package/runtime-plugin-support.js +9 -18
  71. package/runtime-plugin-support.js.map +3 -3
  72. package/runtime-plugin.d.ts +1 -4
  73. package/runtime-plugin.js +5 -5
  74. package/syntax-style.d.ts +11 -3
  75. package/testing/terminal-capabilities.d.ts +7 -0
  76. package/testing/test-recorder.d.ts +6 -6
  77. package/testing/test-renderer.d.ts +34 -2
  78. package/testing.d.ts +2 -0
  79. package/testing.js +329 -23
  80. package/testing.js.map +7 -5
  81. package/text-buffer-view.d.ts +2 -1
  82. package/text-buffer.d.ts +1 -1
  83. package/types.d.ts +33 -1
  84. package/zig-structs.d.ts +111 -20
  85. package/zig.d.ts +57 -7
  86. package/3d/SpriteResourceManager.d.ts +0 -74
  87. package/3d/SpriteUtils.d.ts +0 -13
  88. package/3d/TextureUtils.d.ts +0 -24
  89. package/3d/ThreeRenderable.d.ts +0 -40
  90. package/3d/WGPURenderer.d.ts +0 -61
  91. package/3d/animation/ExplodingSpriteEffect.d.ts +0 -71
  92. package/3d/animation/PhysicsExplodingSpriteEffect.d.ts +0 -76
  93. package/3d/animation/SpriteAnimator.d.ts +0 -124
  94. package/3d/animation/SpriteParticleGenerator.d.ts +0 -62
  95. package/3d/canvas.d.ts +0 -44
  96. package/3d/index.d.ts +0 -12
  97. package/3d/physics/PlanckPhysicsAdapter.d.ts +0 -19
  98. package/3d/physics/RapierPhysicsAdapter.d.ts +0 -19
  99. package/3d/physics/physics-interface.d.ts +0 -27
  100. package/3d.d.ts +0 -2
  101. package/3d.js +0 -33843
  102. package/3d.js.map +0 -155
  103. package/Worker-vajwjk0s.js +0 -94
  104. package/Worker-vajwjk0s.js.map +0 -10
  105. package/compat/FFIType.d.ts +0 -304
  106. package/compat/Worker.d.ts +0 -1
  107. package/compat/bun-ffi-structs.d.ts +0 -2
  108. package/compat/ffi.d.ts +0 -86
  109. package/compat/nodejs/Worker.d.ts +0 -16
  110. package/compat/nodejs/bun-ffi-structs/index.d.ts +0 -46
  111. package/compat/nodejs/ffi.d.ts +0 -21
  112. package/compat/nodejs/registerResolveJs.d.ts +0 -1
  113. package/compat/nodejs/runtime.d.ts +0 -7
  114. package/compat/nodejs/test.d.ts +0 -4
  115. package/compat/nodejs/trampoline.worker.d.ts +0 -1
  116. package/compat/test.d.ts +0 -1
  117. package/compat/testHelpers.d.ts +0 -18
  118. package/ffi-x3zvcksd.js +0 -25
  119. package/index-5yqvbmcz.js +0 -220
  120. package/index-5yqvbmcz.js.map +0 -10
  121. package/index-bnfz2g63.js +0 -654
  122. package/index-bnfz2g63.js.map +0 -10
  123. package/index-cbvybypy.js +0 -43
  124. package/index-cbvybypy.js.map +0 -10
  125. package/index-kcpn1hka.js.map +0 -10
  126. package/index-re3ntm60.js +0 -51
  127. package/index-rhfjv9c1.js.map +0 -70
  128. package/index-tkk6cmr2.js.map +0 -10
  129. package/index-yxe6e14n.js.map +0 -42
  130. package/runtime-hdpkc6qf.js +0 -220
  131. package/runtime-hdpkc6qf.js.map +0 -17
  132. /package/{compat/nodejs/registerBun.d.ts → native-event-worker-repro.worker.d.ts} +0 -0
@@ -0,0 +1,21 @@
1
+ // @bun
2
+ var __defProp = Object.defineProperty;
3
+ var __returnValue = (v) => v;
4
+ function __exportSetter(name, newValue) {
5
+ this[name] = __returnValue.bind(null, newValue);
6
+ }
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, {
10
+ get: all[name],
11
+ enumerable: true,
12
+ configurable: true,
13
+ set: __exportSetter.bind(all, name)
14
+ });
15
+ };
16
+ var __require = import.meta.require;
17
+
18
+ export { __export, __require };
19
+
20
+ //# debugId=EF5C2B2E590C45B964756E2164756E21
21
+ //# sourceMappingURL=index-k18nf2r7.js.map
@@ -4,6 +4,6 @@
4
4
  "sourcesContent": [
5
5
  ],
6
6
  "mappings": "",
7
- "debugId": "DDBA855A1CE9F93664756E2164756E21",
7
+ "debugId": "EF5C2B2E590C45B964756E2164756E21",
8
8
  "names": []
9
9
  }
@@ -1,14 +1,63 @@
1
1
  // @bun
2
- import"./index-re3ntm60.js";
2
+ import"./index-k18nf2r7.js";
3
3
 
4
- // ../../node_modules/.bun/bun-ffi-structs@0.1.2+1fb4c65d43e298b9/node_modules/bun-ffi-structs/index.js
5
- import { ptr, toArrayBuffer } from "bun:ffi";
4
+ // ../../node_modules/.bun/bun-ffi-structs@0.2.2+1fb4c65d43e298b9/node_modules/bun-ffi-structs/dist/index.js
5
+ var FFI_LOAD_ERROR = "bun-ffi-structs requires Bun or Node.js with node:ffi enabled (--experimental-ffi --allow-ffi).";
6
+ var backend = await loadBackend();
7
+ async function loadBackend() {
8
+ if (typeof process !== "undefined" && "bun" in process.versions) {
9
+ return createBunBackend(await importModule("bun:ffi"));
10
+ }
11
+ try {
12
+ return createNodeBackend(await importModule("node:ffi"));
13
+ } catch (error) {
14
+ throw new Error(FFI_LOAD_ERROR, {
15
+ cause: error instanceof Error ? error : undefined
16
+ });
17
+ }
18
+ }
19
+ function importModule(specifier) {
20
+ return import(specifier).then((module) => module.default ?? module);
21
+ }
22
+ function createBunBackend(bun) {
23
+ return {
24
+ ptr: bun.ptr,
25
+ toArrayBuffer(pointer, offset, length) {
26
+ return bun.toArrayBuffer(toBunPointer(pointer), offset, length);
27
+ }
28
+ };
29
+ }
30
+ function createNodeBackend(nodeFfi) {
31
+ return {
32
+ ptr(value) {
33
+ if (ArrayBuffer.isView(value)) {
34
+ return nodeFfi.getRawPointer(value.buffer) + BigInt(value.byteOffset);
35
+ }
36
+ if (value instanceof ArrayBuffer) {
37
+ return nodeFfi.getRawPointer(value);
38
+ }
39
+ throw new TypeError("node:ffi ptr() only supports ArrayBuffer and ArrayBufferView values.");
40
+ },
41
+ toArrayBuffer(pointer, offset, length) {
42
+ return nodeFfi.toArrayBuffer(toBigIntPointer(pointer) + BigInt(offset ?? 0), length, false);
43
+ }
44
+ };
45
+ }
46
+ function toBigIntPointer(pointer) {
47
+ return typeof pointer === "bigint" ? pointer : BigInt(pointer);
48
+ }
49
+ function toBunPointer(pointer) {
50
+ return typeof pointer === "bigint" ? Number(pointer) : pointer;
51
+ }
52
+ var ptr = backend.ptr;
53
+ var toArrayBuffer = backend.toArrayBuffer;
6
54
  function fatalError(...args) {
7
55
  const message = args.join(" ");
8
56
  console.error("FATAL ERROR:", message);
9
57
  throw new Error(message);
10
58
  }
11
59
  var pointerSize = process.arch === "x64" || process.arch === "arm64" ? 8 : 4;
60
+ var isBun = typeof process !== "undefined" && "bun" in process.versions;
12
61
  var typeSizes = {
13
62
  u8: 1,
14
63
  bool_u8: 1,
@@ -20,7 +69,8 @@ var typeSizes = {
20
69
  f32: 4,
21
70
  f64: 8,
22
71
  pointer: pointerSize,
23
- i32: 4
72
+ i32: 4,
73
+ i64: 8
24
74
  };
25
75
  var primitiveKeys = Object.keys(typeSizes);
26
76
  function isPrimitiveType(type) {
@@ -38,6 +88,7 @@ var typeGetters = {
38
88
  f32: (view, offset) => view.getFloat32(offset, true),
39
89
  f64: (view, offset) => view.getFloat64(offset, true),
40
90
  i32: (view, offset) => view.getInt32(offset, true),
91
+ i64: (view, offset) => view.getBigInt64(offset, true),
41
92
  pointer: (view, offset) => pointerSize === 8 ? view.getBigUint64(offset, true) : BigInt(view.getUint32(offset, true))
42
93
  };
43
94
  function objectPtr() {
@@ -64,6 +115,7 @@ function allocStruct(structDef, options) {
64
115
  subBuffers[arrayFieldName] = subBuffer;
65
116
  const pointer = length > 0 ? ptr(subBuffer) : null;
66
117
  pointerPacker(view, arrayMeta.arrayOffset, pointer);
118
+ retainPointerTarget(buffer, subBuffer);
67
119
  arrayMeta.lengthPack(view, arrayMeta.lengthOffset, length);
68
120
  }
69
121
  if (Object.keys(subBuffers).length > 0) {
@@ -130,6 +182,10 @@ function primitivePackers(type) {
130
182
  pack = (view, off, val) => view.setInt32(off, val, true);
131
183
  unpack = (view, off) => view.getInt32(off, true);
132
184
  break;
185
+ case "i64":
186
+ pack = (view, off, val) => view.setBigInt64(off, BigInt(val), true);
187
+ unpack = (view, off) => view.getBigInt64(off, true);
188
+ break;
133
189
  case "u64":
134
190
  pack = (view, off, val) => view.setBigUint64(off, BigInt(val), true);
135
191
  unpack = (view, off) => view.getBigUint64(off, true);
@@ -147,8 +203,11 @@ function primitivePackers(type) {
147
203
  pointerSize === 8 ? view.setBigUint64(off, val ? BigInt(val) : 0n, true) : view.setUint32(off, val ? Number(val) : 0, true);
148
204
  };
149
205
  unpack = (view, off) => {
150
- const bint = pointerSize === 8 ? view.getBigUint64(off, true) : BigInt(view.getUint32(off, true));
151
- return Number(bint);
206
+ if (pointerSize === 8) {
207
+ const value = view.getBigUint64(off, true);
208
+ return isBun ? Number(value) : value;
209
+ }
210
+ return view.getUint32(off, true);
152
211
  };
153
212
  break;
154
213
  default:
@@ -157,6 +216,26 @@ function primitivePackers(type) {
157
216
  return { pack, unpack };
158
217
  }
159
218
  var { pack: pointerPacker, unpack: pointerUnpacker } = primitivePackers("pointer");
219
+ var retainedPointerTargets = new WeakMap;
220
+ function retainPointerTarget(owner, target) {
221
+ const retained = retainedPointerTargets.get(owner);
222
+ if (retained) {
223
+ retained.push(target);
224
+ } else {
225
+ retainedPointerTargets.set(owner, [target]);
226
+ }
227
+ }
228
+ function retainIfPointerTargets(owner, target) {
229
+ if (retainedPointerTargets.has(target)) {
230
+ retainPointerTarget(owner, target);
231
+ }
232
+ }
233
+ function isNullPointer(pointer) {
234
+ return pointer == null || pointer === 0 || pointer === 0n;
235
+ }
236
+ function toItemCount(length) {
237
+ return typeof length === "bigint" ? Number(length) : length;
238
+ }
160
239
  function packObjectArray(val) {
161
240
  const buffer = new ArrayBuffer(val.length * pointerSize);
162
241
  const bufferView = new DataView(buffer);
@@ -193,8 +272,14 @@ function defineStruct(fields, structDefOptions) {
193
272
  size = pointerSize;
194
273
  align = pointerSize;
195
274
  pack = (view, off, val) => {
196
- const bufPtr = val ? ptr(encoder.encode(val + "\x00")) : null;
275
+ if (!val) {
276
+ pointerPacker(view, off, null);
277
+ return;
278
+ }
279
+ const bytes = encoder.encode(val + "\x00");
280
+ const bufPtr = ptr(bytes);
197
281
  pointerPacker(view, off, bufPtr);
282
+ retainPointerTarget(view.buffer, bytes);
198
283
  };
199
284
  unpack = (view, off) => {
200
285
  const ptrVal = pointerUnpacker(view, off);
@@ -204,8 +289,14 @@ function defineStruct(fields, structDefOptions) {
204
289
  size = pointerSize;
205
290
  align = pointerSize;
206
291
  pack = (view, off, val) => {
207
- const bufPtr = val ? ptr(encoder.encode(val)) : null;
292
+ if (!val) {
293
+ pointerPacker(view, off, null);
294
+ return;
295
+ }
296
+ const bytes = encoder.encode(val);
297
+ const bufPtr = ptr(bytes);
208
298
  pointerPacker(view, off, bufPtr);
299
+ retainPointerTarget(view.buffer, bytes);
209
300
  };
210
301
  unpack = (view, off) => {
211
302
  const ptrVal = pointerUnpacker(view, off);
@@ -236,6 +327,7 @@ function defineStruct(fields, structDefOptions) {
236
327
  }
237
328
  const nestedBuf = typeOrStruct.pack(val, options2);
238
329
  pointerPacker(view, off, ptr(nestedBuf));
330
+ retainPointerTarget(view.buffer, nestedBuf);
239
331
  };
240
332
  unpack = (view, off) => {
241
333
  throw new Error("Not implemented yet");
@@ -248,6 +340,7 @@ function defineStruct(fields, structDefOptions) {
248
340
  const nestedView = new Uint8Array(nestedBuf);
249
341
  const dView = new Uint8Array(view.buffer);
250
342
  dView.set(nestedView, off);
343
+ retainIfPointerTargets(view.buffer, nestedBuf);
251
344
  };
252
345
  unpack = (view, off) => {
253
346
  const slice = view.buffer.slice(off, off + size);
@@ -288,6 +381,7 @@ function defineStruct(fields, structDefOptions) {
288
381
  bufferView.setUint32(i * arrayElementSize, num, true);
289
382
  }
290
383
  pointerPacker(view, off, ptr(buffer));
384
+ retainPointerTarget(view.buffer, buffer);
291
385
  };
292
386
  unpack = null;
293
387
  needsLengthOf = true;
@@ -305,6 +399,7 @@ function defineStruct(fields, structDefOptions) {
305
399
  def.packInto(val[i], bufferView, i * arrayElementSize, options2);
306
400
  }
307
401
  pointerPacker(view, off, ptr(buffer));
402
+ retainPointerTarget(view.buffer, buffer);
308
403
  };
309
404
  unpack = (view, off) => {
310
405
  throw new Error("Not implemented yet");
@@ -323,6 +418,7 @@ function defineStruct(fields, structDefOptions) {
323
418
  primitivePack(bufferView, i * arrayElementSize, val[i]);
324
419
  }
325
420
  pointerPacker(view, off, ptr(buffer));
421
+ retainPointerTarget(view.buffer, buffer);
326
422
  };
327
423
  unpack = null;
328
424
  needsLengthOf = true;
@@ -336,6 +432,7 @@ function defineStruct(fields, structDefOptions) {
336
432
  }
337
433
  const packedView = packObjectArray(val);
338
434
  pointerPacker(view, off, ptr(packedView.buffer));
435
+ retainPointerTarget(view.buffer, packedView.buffer);
339
436
  };
340
437
  unpack = () => {
341
438
  throw new Error("not implemented yet");
@@ -431,13 +528,14 @@ function defineStruct(fields, structDefOptions) {
431
528
  throw new Error(`lengthOf field not found for array field ${requester.name}`);
432
529
  }
433
530
  if (def === "char*") {
531
+ const relativeOffset = lengthOfField.offset - requester.offset;
434
532
  requester.unpack = (view, off) => {
435
533
  const ptrAddress = pointerUnpacker(view, off);
436
- const length = lengthOfField.unpack(view, lengthOfField.offset);
437
- if (ptrAddress === 0) {
534
+ const length = lengthOfField.unpack(view, off + relativeOffset);
535
+ if (isNullPointer(ptrAddress)) {
438
536
  return null;
439
537
  }
440
- const byteLength = typeof length === "bigint" ? Number(length) : length;
538
+ const byteLength = toItemCount(length);
441
539
  if (byteLength === 0) {
442
540
  return "";
443
541
  }
@@ -447,38 +545,42 @@ function defineStruct(fields, structDefOptions) {
447
545
  } else if (isPrimitiveType(def)) {
448
546
  const elemSize = typeSizes[def];
449
547
  const { unpack: primitiveUnpack } = primitivePackers(def);
548
+ const relativeOffset = lengthOfField.offset - requester.offset;
450
549
  requester.unpack = (view, off) => {
451
550
  const result = [];
452
- const length = lengthOfField.unpack(view, lengthOfField.offset);
551
+ const length = lengthOfField.unpack(view, off + relativeOffset);
552
+ const itemCount = toItemCount(length);
453
553
  const ptrAddress = pointerUnpacker(view, off);
454
- if (ptrAddress === 0n && length > 0) {
554
+ if (isNullPointer(ptrAddress) && itemCount > 0) {
455
555
  throw new Error(`Array field ${requester.name} has null pointer but length ${length}.`);
456
556
  }
457
- if (ptrAddress === 0n || length === 0) {
557
+ if (isNullPointer(ptrAddress) || itemCount === 0) {
458
558
  return [];
459
559
  }
460
- const buffer = toArrayBuffer(ptrAddress, 0, length * elemSize);
560
+ const buffer = toArrayBuffer(ptrAddress, 0, itemCount * elemSize);
461
561
  const bufferView = new DataView(buffer);
462
- for (let i = 0;i < length; i++) {
562
+ for (let i = 0;i < itemCount; i++) {
463
563
  result.push(primitiveUnpack(bufferView, i * elemSize));
464
564
  }
465
565
  return result;
466
566
  };
467
567
  } else {
468
568
  const elemSize = def.type === "u32" ? 4 : 8;
569
+ const relativeOffset = lengthOfField.offset - requester.offset;
469
570
  requester.unpack = (view, off) => {
470
571
  const result = [];
471
- const length = lengthOfField.unpack(view, lengthOfField.offset);
572
+ const length = lengthOfField.unpack(view, off + relativeOffset);
573
+ const itemCount = toItemCount(length);
472
574
  const ptrAddress = pointerUnpacker(view, off);
473
- if (ptrAddress === 0n && length > 0) {
575
+ if (isNullPointer(ptrAddress) && itemCount > 0) {
474
576
  throw new Error(`Array field ${requester.name} has null pointer but length ${length}.`);
475
577
  }
476
- if (ptrAddress === 0n || length === 0) {
578
+ if (isNullPointer(ptrAddress) || itemCount === 0) {
477
579
  return [];
478
580
  }
479
- const buffer = toArrayBuffer(ptrAddress, 0, length * elemSize);
581
+ const buffer = toArrayBuffer(ptrAddress, 0, itemCount * elemSize);
480
582
  const bufferView = new DataView(buffer);
481
- for (let i = 0;i < length; i++) {
583
+ for (let i = 0;i < itemCount; i++) {
482
584
  result.push(def.from(bufferView.getUint32(i * elemSize, true)));
483
585
  }
484
586
  return result;
@@ -646,5 +748,5 @@ export {
646
748
  allocStruct
647
749
  };
648
750
 
649
- //# debugId=E25F830A52E9C00D64756E2164756E21
650
- //# sourceMappingURL=index-tkk6cmr2.js.map
751
+ //# debugId=FCA0C316CB810C8164756E2164756E21
752
+ //# sourceMappingURL=index-rp7vz5rh.js.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../node_modules/.bun/bun-ffi-structs@0.2.2+1fb4c65d43e298b9/node_modules/bun-ffi-structs/dist/index.js"],
4
+ "sourcesContent": [
5
+ "// src/ffi.ts\nvar FFI_LOAD_ERROR = \"bun-ffi-structs requires Bun or Node.js with node:ffi enabled (--experimental-ffi --allow-ffi).\";\nvar backend = await loadBackend();\nasync function loadBackend() {\n if (typeof process !== \"undefined\" && \"bun\" in process.versions) {\n return createBunBackend(await importModule(\"bun:ffi\"));\n }\n try {\n return createNodeBackend(await importModule(\"node:ffi\"));\n } catch (error) {\n throw new Error(FFI_LOAD_ERROR, {\n cause: error instanceof Error ? error : undefined\n });\n }\n}\nfunction importModule(specifier) {\n return import(specifier).then((module) => module.default ?? module);\n}\nfunction createBunBackend(bun) {\n return {\n ptr: bun.ptr,\n toArrayBuffer(pointer, offset, length) {\n return bun.toArrayBuffer(toBunPointer(pointer), offset, length);\n }\n };\n}\nfunction createNodeBackend(nodeFfi) {\n return {\n ptr(value) {\n if (ArrayBuffer.isView(value)) {\n return nodeFfi.getRawPointer(value.buffer) + BigInt(value.byteOffset);\n }\n if (value instanceof ArrayBuffer) {\n return nodeFfi.getRawPointer(value);\n }\n throw new TypeError(\"node:ffi ptr() only supports ArrayBuffer and ArrayBufferView values.\");\n },\n toArrayBuffer(pointer, offset, length) {\n return nodeFfi.toArrayBuffer(toBigIntPointer(pointer) + BigInt(offset ?? 0), length, false);\n }\n };\n}\nfunction toBigIntPointer(pointer) {\n return typeof pointer === \"bigint\" ? pointer : BigInt(pointer);\n}\nfunction toBunPointer(pointer) {\n return typeof pointer === \"bigint\" ? Number(pointer) : pointer;\n}\nvar ptr = backend.ptr;\nvar toArrayBuffer = backend.toArrayBuffer;\n\n// src/structs_ffi.ts\nfunction fatalError(...args) {\n const message = args.join(\" \");\n console.error(\"FATAL ERROR:\", message);\n throw new Error(message);\n}\nvar pointerSize = process.arch === \"x64\" || process.arch === \"arm64\" ? 8 : 4;\nvar isBun = typeof process !== \"undefined\" && \"bun\" in process.versions;\nvar typeSizes = {\n u8: 1,\n bool_u8: 1,\n bool_u32: 4,\n u16: 2,\n i16: 2,\n u32: 4,\n u64: 8,\n f32: 4,\n f64: 8,\n pointer: pointerSize,\n i32: 4,\n i64: 8\n};\nvar primitiveKeys = Object.keys(typeSizes);\nfunction isPrimitiveType(type) {\n return typeof type === \"string\" && primitiveKeys.includes(type);\n}\nvar typeAlignments = { ...typeSizes };\nvar typeGetters = {\n u8: (view, offset) => view.getUint8(offset),\n bool_u8: (view, offset) => Boolean(view.getUint8(offset)),\n bool_u32: (view, offset) => Boolean(view.getUint32(offset, true)),\n u16: (view, offset) => view.getUint16(offset, true),\n i16: (view, offset) => view.getInt16(offset, true),\n u32: (view, offset) => view.getUint32(offset, true),\n u64: (view, offset) => view.getBigUint64(offset, true),\n f32: (view, offset) => view.getFloat32(offset, true),\n f64: (view, offset) => view.getFloat64(offset, true),\n i32: (view, offset) => view.getInt32(offset, true),\n i64: (view, offset) => view.getBigInt64(offset, true),\n pointer: (view, offset) => pointerSize === 8 ? view.getBigUint64(offset, true) : BigInt(view.getUint32(offset, true))\n};\nfunction objectPtr() {\n return {\n __type: \"objectPointer\"\n };\n}\nfunction isObjectPointerDef(type) {\n return typeof type === \"object\" && type !== null && type.__type === \"objectPointer\";\n}\nfunction allocStruct(structDef, options) {\n const buffer = new ArrayBuffer(structDef.size);\n const view = new DataView(buffer);\n const result = { buffer, view };\n const { pack: pointerPacker } = primitivePackers(\"pointer\");\n if (options?.lengths) {\n const subBuffers = {};\n for (const [arrayFieldName, length] of Object.entries(options.lengths)) {\n const arrayMeta = structDef.arrayFields.get(arrayFieldName);\n if (!arrayMeta) {\n throw new Error(`Field '${arrayFieldName}' is not an array field with a lengthOf field`);\n }\n const subBuffer = new ArrayBuffer(length * arrayMeta.elementSize);\n subBuffers[arrayFieldName] = subBuffer;\n const pointer = length > 0 ? ptr(subBuffer) : null;\n pointerPacker(view, arrayMeta.arrayOffset, pointer);\n retainPointerTarget(buffer, subBuffer);\n arrayMeta.lengthPack(view, arrayMeta.lengthOffset, length);\n }\n if (Object.keys(subBuffers).length > 0) {\n result.subBuffers = subBuffers;\n }\n }\n return result;\n}\nfunction alignOffset(offset, align) {\n return offset + (align - 1) & ~(align - 1);\n}\nfunction enumTypeError(value) {\n throw new TypeError(`Invalid enum value: ${value}`);\n}\nfunction defineEnum(mapping, base = \"u32\") {\n const reverse = Object.fromEntries(Object.entries(mapping).map(([k, v]) => [v, k]));\n return {\n __type: \"enum\",\n type: base,\n to(value) {\n return typeof value === \"number\" ? value : mapping[value] ?? enumTypeError(String(value));\n },\n from(value) {\n return reverse[value] ?? enumTypeError(String(value));\n },\n enum: mapping\n };\n}\nfunction isEnum(type) {\n return typeof type === \"object\" && type.__type === \"enum\";\n}\nfunction isStruct(type) {\n return typeof type === \"object\" && type.__type === \"struct\";\n}\nfunction primitivePackers(type) {\n let pack;\n let unpack;\n switch (type) {\n case \"u8\":\n pack = (view, off, val) => view.setUint8(off, val);\n unpack = (view, off) => view.getUint8(off);\n break;\n case \"bool_u8\":\n pack = (view, off, val) => view.setUint8(off, val ? 1 : 0);\n unpack = (view, off) => Boolean(view.getUint8(off));\n break;\n case \"bool_u32\":\n pack = (view, off, val) => view.setUint32(off, val ? 1 : 0, true);\n unpack = (view, off) => Boolean(view.getUint32(off, true));\n break;\n case \"u16\":\n pack = (view, off, val) => view.setUint16(off, val, true);\n unpack = (view, off) => view.getUint16(off, true);\n break;\n case \"i16\":\n pack = (view, off, val) => view.setInt16(off, val, true);\n unpack = (view, off) => view.getInt16(off, true);\n break;\n case \"u32\":\n pack = (view, off, val) => view.setUint32(off, val, true);\n unpack = (view, off) => view.getUint32(off, true);\n break;\n case \"i32\":\n pack = (view, off, val) => view.setInt32(off, val, true);\n unpack = (view, off) => view.getInt32(off, true);\n break;\n case \"i64\":\n pack = (view, off, val) => view.setBigInt64(off, BigInt(val), true);\n unpack = (view, off) => view.getBigInt64(off, true);\n break;\n case \"u64\":\n pack = (view, off, val) => view.setBigUint64(off, BigInt(val), true);\n unpack = (view, off) => view.getBigUint64(off, true);\n break;\n case \"f32\":\n pack = (view, off, val) => view.setFloat32(off, val, true);\n unpack = (view, off) => view.getFloat32(off, true);\n break;\n case \"f64\":\n pack = (view, off, val) => view.setFloat64(off, val, true);\n unpack = (view, off) => view.getFloat64(off, true);\n break;\n case \"pointer\":\n pack = (view, off, val) => {\n pointerSize === 8 ? view.setBigUint64(off, val ? BigInt(val) : 0n, true) : view.setUint32(off, val ? Number(val) : 0, true);\n };\n unpack = (view, off) => {\n if (pointerSize === 8) {\n const value = view.getBigUint64(off, true);\n return isBun ? Number(value) : value;\n }\n return view.getUint32(off, true);\n };\n break;\n default:\n fatalError(`Unsupported primitive type: ${type}`);\n }\n return { pack, unpack };\n}\nvar { pack: pointerPacker, unpack: pointerUnpacker } = primitivePackers(\"pointer\");\nvar retainedPointerTargets = new WeakMap;\nfunction retainPointerTarget(owner, target) {\n const retained = retainedPointerTargets.get(owner);\n if (retained) {\n retained.push(target);\n } else {\n retainedPointerTargets.set(owner, [target]);\n }\n}\nfunction retainIfPointerTargets(owner, target) {\n if (retainedPointerTargets.has(target)) {\n retainPointerTarget(owner, target);\n }\n}\nfunction isNullPointer(pointer) {\n return pointer == null || pointer === 0 || pointer === 0n;\n}\nfunction toItemCount(length) {\n return typeof length === \"bigint\" ? Number(length) : length;\n}\nfunction packObjectArray(val) {\n const buffer = new ArrayBuffer(val.length * pointerSize);\n const bufferView = new DataView(buffer);\n for (let i = 0;i < val.length; i++) {\n const instance = val[i];\n const ptrValue = instance?.ptr ?? null;\n pointerPacker(bufferView, i * pointerSize, ptrValue);\n }\n return bufferView;\n}\nvar encoder = new TextEncoder;\nvar decoder = new TextDecoder;\nfunction defineStruct(fields, structDefOptions) {\n let offset = 0;\n let maxAlign = 1;\n const layout = [];\n const lengthOfFields = {};\n const lengthOfRequested = [];\n const arrayFieldsMetadata = {};\n for (const [name, typeOrStruct, options = {}] of fields) {\n if (options.condition && !options.condition()) {\n continue;\n }\n let size = 0, align = 0;\n let pack;\n let unpack;\n let needsLengthOf = false;\n let lengthOfDef = null;\n if (isPrimitiveType(typeOrStruct)) {\n size = typeSizes[typeOrStruct];\n align = typeAlignments[typeOrStruct];\n ({ pack, unpack } = primitivePackers(typeOrStruct));\n } else if (typeof typeOrStruct === \"string\" && typeOrStruct === \"cstring\") {\n size = pointerSize;\n align = pointerSize;\n pack = (view, off, val) => {\n if (!val) {\n pointerPacker(view, off, null);\n return;\n }\n const bytes = encoder.encode(val + \"\\x00\");\n const bufPtr = ptr(bytes);\n pointerPacker(view, off, bufPtr);\n retainPointerTarget(view.buffer, bytes);\n };\n unpack = (view, off) => {\n const ptrVal = pointerUnpacker(view, off);\n return ptrVal;\n };\n } else if (typeof typeOrStruct === \"string\" && typeOrStruct === \"char*\") {\n size = pointerSize;\n align = pointerSize;\n pack = (view, off, val) => {\n if (!val) {\n pointerPacker(view, off, null);\n return;\n }\n const bytes = encoder.encode(val);\n const bufPtr = ptr(bytes);\n pointerPacker(view, off, bufPtr);\n retainPointerTarget(view.buffer, bytes);\n };\n unpack = (view, off) => {\n const ptrVal = pointerUnpacker(view, off);\n return ptrVal;\n };\n needsLengthOf = true;\n } else if (isEnum(typeOrStruct)) {\n const base = typeOrStruct.type;\n size = typeSizes[base];\n align = typeAlignments[base];\n const { pack: packEnum } = primitivePackers(base);\n pack = (view, off, val) => {\n const num = typeOrStruct.to(val);\n packEnum(view, off, num);\n };\n unpack = (view, off) => {\n const raw = typeGetters[base](view, off);\n return typeOrStruct.from(raw);\n };\n } else if (isStruct(typeOrStruct)) {\n if (options.asPointer === true) {\n size = pointerSize;\n align = pointerSize;\n pack = (view, off, val, obj, options2) => {\n if (!val) {\n pointerPacker(view, off, null);\n return;\n }\n const nestedBuf = typeOrStruct.pack(val, options2);\n pointerPacker(view, off, ptr(nestedBuf));\n retainPointerTarget(view.buffer, nestedBuf);\n };\n unpack = (view, off) => {\n throw new Error(\"Not implemented yet\");\n };\n } else {\n size = typeOrStruct.size;\n align = typeOrStruct.align;\n pack = (view, off, val, obj, options2) => {\n const nestedBuf = typeOrStruct.pack(val, options2);\n const nestedView = new Uint8Array(nestedBuf);\n const dView = new Uint8Array(view.buffer);\n dView.set(nestedView, off);\n retainIfPointerTargets(view.buffer, nestedBuf);\n };\n unpack = (view, off) => {\n const slice = view.buffer.slice(off, off + size);\n return typeOrStruct.unpack(slice);\n };\n }\n } else if (isObjectPointerDef(typeOrStruct)) {\n size = pointerSize;\n align = pointerSize;\n pack = (view, off, value) => {\n const ptrValue = value?.ptr ?? null;\n if (ptrValue === undefined) {\n console.warn(`Field '${name}' expected object with '.ptr' property, but got undefined pointer value from:`, value);\n pointerPacker(view, off, null);\n } else {\n pointerPacker(view, off, ptrValue);\n }\n };\n unpack = (view, off) => {\n return pointerUnpacker(view, off);\n };\n } else if (Array.isArray(typeOrStruct) && typeOrStruct.length === 1 && typeOrStruct[0] !== undefined) {\n const [def] = typeOrStruct;\n size = pointerSize;\n align = pointerSize;\n let arrayElementSize;\n if (isEnum(def)) {\n arrayElementSize = typeSizes[def.type];\n pack = (view, off, val, obj) => {\n if (!val || val.length === 0) {\n pointerPacker(view, off, null);\n return;\n }\n const buffer = new ArrayBuffer(val.length * arrayElementSize);\n const bufferView = new DataView(buffer);\n for (let i = 0;i < val.length; i++) {\n const num = def.to(val[i]);\n bufferView.setUint32(i * arrayElementSize, num, true);\n }\n pointerPacker(view, off, ptr(buffer));\n retainPointerTarget(view.buffer, buffer);\n };\n unpack = null;\n needsLengthOf = true;\n lengthOfDef = def;\n } else if (isStruct(def)) {\n arrayElementSize = def.size;\n pack = (view, off, val, obj, options2) => {\n if (!val || val.length === 0) {\n pointerPacker(view, off, null);\n return;\n }\n const buffer = new ArrayBuffer(val.length * arrayElementSize);\n const bufferView = new DataView(buffer);\n for (let i = 0;i < val.length; i++) {\n def.packInto(val[i], bufferView, i * arrayElementSize, options2);\n }\n pointerPacker(view, off, ptr(buffer));\n retainPointerTarget(view.buffer, buffer);\n };\n unpack = (view, off) => {\n throw new Error(\"Not implemented yet\");\n };\n } else if (isPrimitiveType(def)) {\n arrayElementSize = typeSizes[def];\n const { pack: primitivePack } = primitivePackers(def);\n pack = (view, off, val) => {\n if (!val || val.length === 0) {\n pointerPacker(view, off, null);\n return;\n }\n const buffer = new ArrayBuffer(val.length * arrayElementSize);\n const bufferView = new DataView(buffer);\n for (let i = 0;i < val.length; i++) {\n primitivePack(bufferView, i * arrayElementSize, val[i]);\n }\n pointerPacker(view, off, ptr(buffer));\n retainPointerTarget(view.buffer, buffer);\n };\n unpack = null;\n needsLengthOf = true;\n lengthOfDef = def;\n } else if (isObjectPointerDef(def)) {\n arrayElementSize = pointerSize;\n pack = (view, off, val) => {\n if (!val || val.length === 0) {\n pointerPacker(view, off, null);\n return;\n }\n const packedView = packObjectArray(val);\n pointerPacker(view, off, ptr(packedView.buffer));\n retainPointerTarget(view.buffer, packedView.buffer);\n };\n unpack = () => {\n throw new Error(\"not implemented yet\");\n };\n } else {\n throw new Error(`Unsupported array element type for ${name}: ${JSON.stringify(def)}`);\n }\n const lengthOfField = Object.values(lengthOfFields).find((f) => f.lengthOf === name);\n if (lengthOfField && isPrimitiveType(lengthOfField.type)) {\n const { pack: lengthPack } = primitivePackers(lengthOfField.type);\n arrayFieldsMetadata[name] = {\n elementSize: arrayElementSize,\n arrayOffset: offset,\n lengthOffset: lengthOfField.offset,\n lengthPack\n };\n }\n } else {\n throw new Error(`Unsupported field type for ${name}: ${JSON.stringify(typeOrStruct)}`);\n }\n offset = alignOffset(offset, align);\n if (options.unpackTransform) {\n const originalUnpack = unpack;\n unpack = (view, off) => options.unpackTransform(originalUnpack(view, off));\n }\n if (options.packTransform) {\n const originalPack = pack;\n pack = (view, off, val, obj, packOptions) => originalPack(view, off, options.packTransform(val), obj, packOptions);\n }\n if (options.optional) {\n const originalPack = pack;\n if (isStruct(typeOrStruct) && !options.asPointer) {\n pack = (view, off, val, obj, packOptions) => {\n if (val || options.mapOptionalInline) {\n originalPack(view, off, val, obj, packOptions);\n }\n };\n } else {\n pack = (view, off, val, obj, packOptions) => originalPack(view, off, val ?? 0, obj, packOptions);\n }\n }\n if (options.lengthOf) {\n const originalPack = pack;\n pack = (view, off, val, obj, packOptions) => {\n const targetValue = obj[options.lengthOf];\n let length = 0;\n if (targetValue) {\n if (typeof targetValue === \"string\") {\n length = Buffer.byteLength(targetValue);\n } else {\n length = targetValue.length;\n }\n }\n return originalPack(view, off, length, obj, packOptions);\n };\n }\n let validateFunctions;\n if (options.validate) {\n validateFunctions = Array.isArray(options.validate) ? options.validate : [options.validate];\n }\n const layoutField = {\n name,\n offset,\n size,\n align,\n validate: validateFunctions,\n optional: !!options.optional || !!options.lengthOf || options.default !== undefined,\n default: options.default,\n pack,\n unpack,\n type: typeOrStruct,\n lengthOf: options.lengthOf\n };\n layout.push(layoutField);\n if (options.lengthOf) {\n lengthOfFields[options.lengthOf] = layoutField;\n }\n if (needsLengthOf) {\n const def = typeof typeOrStruct === \"string\" && typeOrStruct === \"char*\" ? \"char*\" : lengthOfDef;\n if (!def)\n fatalError(`Internal error: needsLengthOf=true but def is null for ${name}`);\n lengthOfRequested.push({ requester: layoutField, def });\n }\n offset += size;\n maxAlign = Math.max(maxAlign, align);\n }\n for (const { requester, def } of lengthOfRequested) {\n const lengthOfField = lengthOfFields[requester.name];\n if (!lengthOfField) {\n if (def === \"char*\") {\n continue;\n }\n throw new Error(`lengthOf field not found for array field ${requester.name}`);\n }\n if (def === \"char*\") {\n const relativeOffset = lengthOfField.offset - requester.offset;\n requester.unpack = (view, off) => {\n const ptrAddress = pointerUnpacker(view, off);\n const length = lengthOfField.unpack(view, off + relativeOffset);\n if (isNullPointer(ptrAddress)) {\n return null;\n }\n const byteLength = toItemCount(length);\n if (byteLength === 0) {\n return \"\";\n }\n const buffer = toArrayBuffer(ptrAddress, 0, byteLength);\n return decoder.decode(buffer);\n };\n } else if (isPrimitiveType(def)) {\n const elemSize = typeSizes[def];\n const { unpack: primitiveUnpack } = primitivePackers(def);\n const relativeOffset = lengthOfField.offset - requester.offset;\n requester.unpack = (view, off) => {\n const result = [];\n const length = lengthOfField.unpack(view, off + relativeOffset);\n const itemCount = toItemCount(length);\n const ptrAddress = pointerUnpacker(view, off);\n if (isNullPointer(ptrAddress) && itemCount > 0) {\n throw new Error(`Array field ${requester.name} has null pointer but length ${length}.`);\n }\n if (isNullPointer(ptrAddress) || itemCount === 0) {\n return [];\n }\n const buffer = toArrayBuffer(ptrAddress, 0, itemCount * elemSize);\n const bufferView = new DataView(buffer);\n for (let i = 0;i < itemCount; i++) {\n result.push(primitiveUnpack(bufferView, i * elemSize));\n }\n return result;\n };\n } else {\n const elemSize = def.type === \"u32\" ? 4 : 8;\n const relativeOffset = lengthOfField.offset - requester.offset;\n requester.unpack = (view, off) => {\n const result = [];\n const length = lengthOfField.unpack(view, off + relativeOffset);\n const itemCount = toItemCount(length);\n const ptrAddress = pointerUnpacker(view, off);\n if (isNullPointer(ptrAddress) && itemCount > 0) {\n throw new Error(`Array field ${requester.name} has null pointer but length ${length}.`);\n }\n if (isNullPointer(ptrAddress) || itemCount === 0) {\n return [];\n }\n const buffer = toArrayBuffer(ptrAddress, 0, itemCount * elemSize);\n const bufferView = new DataView(buffer);\n for (let i = 0;i < itemCount; i++) {\n result.push(def.from(bufferView.getUint32(i * elemSize, true)));\n }\n return result;\n };\n }\n }\n const totalSize = alignOffset(offset, maxAlign);\n const description = layout.map((f) => ({\n name: f.name,\n offset: f.offset,\n size: f.size,\n align: f.align,\n optional: f.optional,\n type: f.type,\n lengthOf: f.lengthOf\n }));\n const layoutByName = new Map(description.map((f) => [f.name, f]));\n const arrayFields = new Map(Object.entries(arrayFieldsMetadata));\n return {\n __type: \"struct\",\n size: totalSize,\n align: maxAlign,\n hasMapValue: !!structDefOptions?.mapValue,\n layoutByName,\n arrayFields,\n pack(obj, options) {\n const buf = new ArrayBuffer(totalSize);\n const view = new DataView(buf);\n let mappedObj = obj;\n if (structDefOptions?.mapValue) {\n mappedObj = structDefOptions.mapValue(obj);\n }\n for (const field of layout) {\n const value = mappedObj[field.name] ?? field.default;\n if (!field.optional && value === undefined) {\n fatalError(`Packing non-optional field '${field.name}' but value is undefined (and no default provided)`);\n }\n if (field.validate) {\n for (const validateFn of field.validate) {\n validateFn(value, field.name, {\n hints: options?.validationHints,\n input: mappedObj\n });\n }\n }\n field.pack(view, field.offset, value, mappedObj, options);\n }\n return view.buffer;\n },\n packInto(obj, view, offset2, options) {\n let mappedObj = obj;\n if (structDefOptions?.mapValue) {\n mappedObj = structDefOptions.mapValue(obj);\n }\n for (const field of layout) {\n const value = mappedObj[field.name] ?? field.default;\n if (!field.optional && value === undefined) {\n console.warn(`packInto missing value for non-optional field '${field.name}' at offset ${offset2 + field.offset}. Writing default or zero.`);\n }\n if (field.validate) {\n for (const validateFn of field.validate) {\n validateFn(value, field.name, {\n hints: options?.validationHints,\n input: mappedObj\n });\n }\n }\n field.pack(view, offset2 + field.offset, value, mappedObj, options);\n }\n },\n unpack(buf) {\n if (buf.byteLength < totalSize) {\n fatalError(`Buffer size (${buf.byteLength}) is smaller than struct size (${totalSize}) for unpacking.`);\n }\n const view = new DataView(buf);\n const result = structDefOptions?.default ? { ...structDefOptions.default } : {};\n for (const field of layout) {\n if (!field.unpack) {\n continue;\n }\n try {\n result[field.name] = field.unpack(view, field.offset);\n } catch (e) {\n console.error(`Error unpacking field '${field.name}' at offset ${field.offset}:`, e);\n throw e;\n }\n }\n if (structDefOptions?.reduceValue) {\n return structDefOptions.reduceValue(result);\n }\n return result;\n },\n packList(objects, options) {\n if (objects.length === 0) {\n return new ArrayBuffer(0);\n }\n const buffer = new ArrayBuffer(totalSize * objects.length);\n const view = new DataView(buffer);\n for (let i = 0;i < objects.length; i++) {\n let mappedObj = objects[i];\n if (structDefOptions?.mapValue) {\n mappedObj = structDefOptions.mapValue(objects[i]);\n }\n for (const field of layout) {\n const value = mappedObj[field.name] ?? field.default;\n if (!field.optional && value === undefined) {\n fatalError(`Packing non-optional field '${field.name}' at index ${i} but value is undefined (and no default provided)`);\n }\n if (field.validate) {\n for (const validateFn of field.validate) {\n validateFn(value, field.name, {\n hints: options?.validationHints,\n input: mappedObj\n });\n }\n }\n field.pack(view, i * totalSize + field.offset, value, mappedObj, options);\n }\n }\n return buffer;\n },\n unpackList(buf, count) {\n if (count === 0) {\n return [];\n }\n const expectedSize = totalSize * count;\n if (buf.byteLength < expectedSize) {\n fatalError(`Buffer size (${buf.byteLength}) is smaller than expected size (${expectedSize}) for unpacking ${count} structs.`);\n }\n const view = new DataView(buf);\n const results = [];\n for (let i = 0;i < count; i++) {\n const offset2 = i * totalSize;\n const result = structDefOptions?.default ? { ...structDefOptions.default } : {};\n for (const field of layout) {\n if (!field.unpack) {\n continue;\n }\n try {\n result[field.name] = field.unpack(view, offset2 + field.offset);\n } catch (e) {\n console.error(`Error unpacking field '${field.name}' at index ${i}, offset ${offset2 + field.offset}:`, e);\n throw e;\n }\n }\n if (structDefOptions?.reduceValue) {\n results.push(structDefOptions.reduceValue(result));\n } else {\n results.push(result);\n }\n }\n return results;\n },\n describe() {\n return description;\n }\n };\n}\nexport {\n pointerSize,\n packObjectArray,\n objectPtr,\n defineStruct,\n defineEnum,\n allocStruct\n};\n"
6
+ ],
7
+ "mappings": "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",
8
+ "debugId": "FCA0C316CB810C8164756E2164756E21",
9
+ "names": []
10
+ }
@@ -1,10 +1,10 @@
1
1
  // @bun
2
2
  import {
3
3
  exports_src
4
- } from "./index-yxe6e14n.js";
4
+ } from "./index-46f5e8m6.js";
5
5
  import {
6
6
  __require
7
- } from "./index-re3ntm60.js";
7
+ } from "./index-k18nf2r7.js";
8
8
 
9
9
  // src/runtime-plugin.ts
10
10
  import { existsSync, readFileSync, realpathSync } from "fs";
@@ -298,7 +298,7 @@ function createRuntimePlugin(input = {}) {
298
298
  if (!loader) {
299
299
  throw new Error(`Unable to determine runtime loader for path: ${args.path}`);
300
300
  }
301
- const contents = readFileSync(loadedPath, "utf8");
301
+ const contents = await Bun.file(loadedPath).text();
302
302
  const runtimeRewrittenContents = shouldRewriteRuntimeSpecifiers ? rewriteRuntimeSpecifiers(contents, runtimeModuleIdsBySpecifier) : contents;
303
303
  if (runtimeRewrittenContents !== contents && shouldRewriteBareSpecifiers) {
304
304
  registerResolveParent(resolveParentsByRecency, loadedPath);
@@ -316,7 +316,17 @@ function createRuntimePlugin(input = {}) {
316
316
  if (cachedAnalysis) {
317
317
  return cachedAnalysis;
318
318
  }
319
- const contents = readFileSync(normalizedPath, "utf8");
319
+ let contents;
320
+ try {
321
+ contents = readFileSync(normalizedPath, "utf8");
322
+ } catch (error) {
323
+ if (error && typeof error === "object" && "code" in error && error.code === "ENOENT") {
324
+ const analysis2 = { importSpecifiers: [], needsRuntimeSpecifierRewrite: false };
325
+ sourceAnalysisByPath.set(normalizedPath, analysis2);
326
+ return analysis2;
327
+ }
328
+ throw error;
329
+ }
320
330
  const importSpecifiers = collectImportSpecifiers(contents);
321
331
  const analysis = {
322
332
  importSpecifiers,
@@ -407,5 +417,5 @@ function createRuntimePlugin(input = {}) {
407
417
 
408
418
  export { isCoreRuntimeModuleSpecifier, runtimeModuleIdForSpecifier, createRuntimePlugin };
409
419
 
410
- //# debugId=130B9B273454000664756E2164756E21
411
- //# sourceMappingURL=index-kcpn1hka.js.map
420
+ //# debugId=4F4ECA92927B118964756E2164756E21
421
+ //# sourceMappingURL=index-xwsdfq5x.js.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/runtime-plugin.ts"],
4
+ "sourcesContent": [
5
+ "/*\n * Exposes runtime-only modules (for example `@jitl/opentui-core`, `@jitl/opentui-solid`,\n * `solid-js`) to externally loaded plugins by rewriting matching imports to\n * virtual `opentui:runtime-module:*` ids.\n *\n * Why this is exact-path + prescan instead of one broad `onLoad`:\n * - Bun can break CJS/UMD interop if a file is routed through plugin `onLoad`\n * (real repro: `jsonc-parser` resolving to `lib/umd/main.js`;\n * https://github.com/oven-sh/bun/issues/19279,\n * https://github.com/oven-sh/bun/issues/21369), so arbitrary `node_modules`\n * JS cannot be blanket-rewritten.\n * - runtime `onResolve` is sync-only, so package/type/source discovery here is\n * synchronous and cached.\n * - a matched `onLoad` cannot safely fall through, so loaders must be narrow.\n * - Bun may canonicalize paths before `onLoad`, so loaders are registered for\n * both the resolved path spelling and its realpath, then canonical-checked.\n * - Bun may native-load `node_modules` ESM without firing `onResolve` for\n * nested package imports, so `node_modules` ESM is recursively prescanned and\n * only files that actually need runtime rewriting get exact-path loaders.\n *\n * Behavior:\n * - non-`node_modules` source files get a dedicated rewrite loader immediately.\n * - `node_modules` files are rewritten only if they are ESM (`.mjs`, `.mts`,\n * `.ts`, `.tsx`, `.jsx`, or `.js` under `package.json#type=\"module\"`) and\n * directly or transitively need runtime-module rewriting; unrelated CJS stays\n * untouched.\n * - optional bare-specifier rewriting is preserved for sibling files in\n * packages already marked for runtime rewriting.\n *\n * Notes:\n * - import scanning is regex-based, not a full parser.\n * - CJS helper libraries that themselves import runtime modules are still not\n * supported.\n * - `package.json#type` caching is per plugin setup, not module-global, so a\n * later plugin instance in the same process can observe filesystem changes.\n */\nimport { existsSync, readFileSync, realpathSync } from \"node:fs\"\nimport { basename, dirname, isAbsolute, join } from \"node:path\"\nimport { fileURLToPath } from \"node:url\"\nimport { type BunPlugin } from \"bun\"\nimport * as coreRuntime from \"./index.js\"\n\nexport type RuntimeModuleExports = Record<string, unknown>\nexport type RuntimeModuleLoader = () => RuntimeModuleExports | Promise<RuntimeModuleExports>\nexport type RuntimeModuleEntry = RuntimeModuleExports | RuntimeModuleLoader\n\ninterface SourceAnalysis {\n importSpecifiers: string[]\n needsRuntimeSpecifierRewrite: boolean\n}\n\nexport interface RuntimePluginRewriteOptions {\n nodeModulesRuntimeSpecifiers?: boolean\n nodeModulesBareSpecifiers?: boolean\n}\n\nexport interface CreateRuntimePluginOptions {\n core?: RuntimeModuleEntry\n additional?: Record<string, RuntimeModuleEntry>\n rewrite?: RuntimePluginRewriteOptions\n}\n\nconst CORE_RUNTIME_SPECIFIER = \"@jitl/opentui-core\"\nconst CORE_TESTING_RUNTIME_SPECIFIER = \"@jitl/opentui-core/testing\"\nconst RUNTIME_MODULE_PREFIX = \"opentui:runtime-module:\"\nconst MAX_RUNTIME_RESOLVE_PARENTS = 64\nconst DEFAULT_RUNTIME_PLUGIN_REWRITE_OPTIONS: Required<RuntimePluginRewriteOptions> = {\n nodeModulesRuntimeSpecifiers: true,\n nodeModulesBareSpecifiers: false,\n}\n\nconst DEFAULT_CORE_RUNTIME_MODULE_SPECIFIERS = [CORE_RUNTIME_SPECIFIER, CORE_TESTING_RUNTIME_SPECIFIER] as const\n\nconst DEFAULT_CORE_RUNTIME_MODULE_SPECIFIER_SET = new Set<string>(DEFAULT_CORE_RUNTIME_MODULE_SPECIFIERS)\n\nexport const isCoreRuntimeModuleSpecifier = (specifier: string): boolean => {\n return DEFAULT_CORE_RUNTIME_MODULE_SPECIFIER_SET.has(specifier)\n}\n\nconst loadCoreTestingRuntimeModule = async (): Promise<RuntimeModuleExports> => {\n return (await import(\"./testing.js\")) as RuntimeModuleExports\n}\n\nconst escapeRegExp = (value: string): string => {\n return value.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")\n}\n\nconst exactSpecifierFilter = (specifier: string): RegExp => {\n return new RegExp(`^${escapeRegExp(specifier)}$`)\n}\n\nconst exactPathFilter = (paths: string[]): RegExp => {\n const candidates = [...new Set(paths.map(sourcePath))]\n return new RegExp(`^(?:${candidates.map(escapeRegExp).join(\"|\")})(?:[?#].*)?$`)\n}\n\nexport const runtimeModuleIdForSpecifier = (specifier: string): string => {\n return `${RUNTIME_MODULE_PREFIX}${encodeURIComponent(specifier)}`\n}\n\nconst resolveRuntimeModuleExports = async (moduleEntry: RuntimeModuleEntry): Promise<RuntimeModuleExports> => {\n if (typeof moduleEntry === \"function\") {\n return await moduleEntry()\n }\n\n return moduleEntry\n}\n\nconst sourcePath = (path: string): string => {\n const searchIndex = path.indexOf(\"?\")\n const hashIndex = path.indexOf(\"#\")\n const end = [searchIndex, hashIndex].filter((index) => index >= 0).sort((a, b) => a - b)[0]\n return end === undefined ? path : path.slice(0, end)\n}\n\nconst normalizedSourcePathByPath = new Map<string, string>()\n\nconst normalizeSourcePath = (path: string): string => {\n const cleanPath = sourcePath(path)\n const cachedPath = normalizedSourcePathByPath.get(cleanPath)\n if (cachedPath !== undefined) {\n return cachedPath\n }\n\n let normalizedPath = cleanPath\n\n try {\n normalizedPath = realpathSync(cleanPath)\n } catch {\n normalizedPath = cleanPath\n }\n\n normalizedSourcePathByPath.set(cleanPath, normalizedPath)\n return normalizedPath\n}\n\nconst isNodeModulesPath = (path: string): boolean => {\n return /(?:^|[/\\\\])node_modules(?:[/\\\\])/.test(path)\n}\n\nconst packageTypeForPath = (\n path: string,\n packageTypeByPackageJsonPath: Map<string, \"module\" | \"commonjs\">,\n): \"module\" | \"commonjs\" => {\n let currentDir = dirname(path)\n\n while (true) {\n const packageJsonPath = join(currentDir, \"package.json\")\n if (existsSync(packageJsonPath)) {\n const cachedPackageType = packageTypeByPackageJsonPath.get(packageJsonPath)\n if (cachedPackageType) {\n return cachedPackageType\n }\n\n let packageType: \"module\" | \"commonjs\" = \"commonjs\"\n\n try {\n const packageJson = JSON.parse(readFileSync(packageJsonPath, \"utf8\")) as { type?: string }\n if (packageJson.type === \"module\") {\n packageType = \"module\"\n }\n } catch {\n packageType = \"commonjs\"\n }\n\n packageTypeByPackageJsonPath.set(packageJsonPath, packageType)\n return packageType\n }\n\n const parentDir = dirname(currentDir)\n if (parentDir === currentDir) {\n return \"commonjs\"\n }\n\n currentDir = parentDir\n }\n}\n\nconst isNodeModulesEsmPath = (\n path: string,\n packageTypeByPackageJsonPath: Map<string, \"module\" | \"commonjs\">,\n): boolean => {\n const normalizedPath = normalizeSourcePath(path)\n\n if (!isNodeModulesPath(normalizedPath)) {\n return false\n }\n\n if (\n normalizedPath.endsWith(\".mjs\") ||\n normalizedPath.endsWith(\".mts\") ||\n normalizedPath.endsWith(\".ts\") ||\n normalizedPath.endsWith(\".tsx\") ||\n normalizedPath.endsWith(\".jsx\")\n ) {\n return true\n }\n\n if (normalizedPath.endsWith(\".cjs\") || normalizedPath.endsWith(\".cts\") || !normalizedPath.endsWith(\".js\")) {\n return false\n }\n\n return packageTypeForPath(normalizedPath, packageTypeByPackageJsonPath) === \"module\"\n}\n\nconst nodeModulesPackageRootForPath = (path: string): string | null => {\n let currentDir = dirname(path)\n\n while (true) {\n const parentDir = dirname(currentDir)\n if (parentDir === currentDir) {\n return null\n }\n\n if (basename(parentDir) === \"node_modules\") {\n return currentDir\n }\n\n if (basename(dirname(parentDir)) === \"node_modules\" && basename(parentDir).startsWith(\"@\")) {\n return currentDir\n }\n\n currentDir = parentDir\n }\n}\n\nconst resolveRuntimePluginRewriteOptions = (\n options: RuntimePluginRewriteOptions | undefined,\n): Required<RuntimePluginRewriteOptions> => {\n return {\n nodeModulesRuntimeSpecifiers:\n options?.nodeModulesRuntimeSpecifiers ?? DEFAULT_RUNTIME_PLUGIN_REWRITE_OPTIONS.nodeModulesRuntimeSpecifiers,\n nodeModulesBareSpecifiers:\n options?.nodeModulesBareSpecifiers ?? DEFAULT_RUNTIME_PLUGIN_REWRITE_OPTIONS.nodeModulesBareSpecifiers,\n }\n}\n\nconst runtimeLoaderForPath = (path: string): \"js\" | \"ts\" | \"jsx\" | \"tsx\" | null => {\n const cleanPath = sourcePath(path)\n\n if (cleanPath.endsWith(\".tsx\")) {\n return \"tsx\"\n }\n\n if (cleanPath.endsWith(\".jsx\")) {\n return \"jsx\"\n }\n\n if (cleanPath.endsWith(\".ts\") || cleanPath.endsWith(\".mts\") || cleanPath.endsWith(\".cts\")) {\n return \"ts\"\n }\n\n if (cleanPath.endsWith(\".js\") || cleanPath.endsWith(\".mjs\") || cleanPath.endsWith(\".cjs\")) {\n return \"js\"\n }\n\n return null\n}\n\nconst resolveImportSpecifierPatterns = [\n /(from\\s+[\"'])([^\"']+)([\"'])/g,\n /(import\\s+[\"'])([^\"']+)([\"'])/g,\n /(import\\s*\\(\\s*[\"'])([^\"']+)([\"']\\s*\\))/g,\n /(require\\s*\\(\\s*[\"'])([^\"']+)([\"']\\s*\\))/g,\n] as const\n\nconst isBareSpecifier = (specifier: string): boolean => {\n if (specifier.startsWith(\".\") || specifier.startsWith(\"/\") || specifier.startsWith(\"\\\\\")) {\n return false\n }\n\n if (\n specifier.startsWith(\"node:\") ||\n specifier.startsWith(\"bun:\") ||\n specifier.startsWith(\"http:\") ||\n specifier.startsWith(\"https:\") ||\n specifier.startsWith(\"file:\") ||\n specifier.startsWith(\"data:\")\n ) {\n return false\n }\n\n if (specifier.startsWith(RUNTIME_MODULE_PREFIX)) {\n return false\n }\n\n return true\n}\n\nconst registerResolveParent = (resolveParentsByRecency: string[], resolveParent: string): void => {\n const existingIndex = resolveParentsByRecency.indexOf(resolveParent)\n if (existingIndex >= 0) {\n resolveParentsByRecency.splice(existingIndex, 1)\n }\n\n resolveParentsByRecency.push(resolveParent)\n\n if (resolveParentsByRecency.length > MAX_RUNTIME_RESOLVE_PARENTS) {\n resolveParentsByRecency.shift()\n }\n}\n\nconst rewriteImportSpecifiers = (code: string, resolveReplacement: (specifier: string) => string | null): string => {\n let transformedCode = code\n\n for (const pattern of resolveImportSpecifierPatterns) {\n transformedCode = transformedCode.replace(pattern, (fullMatch, prefix, specifier, suffix) => {\n const replacement = resolveReplacement(specifier)\n if (!replacement || replacement === specifier) {\n return fullMatch\n }\n\n return `${prefix}${replacement}${suffix}`\n })\n }\n\n return transformedCode\n}\n\nconst collectImportSpecifiers = (code: string): string[] => {\n const specifiers = new Set<string>()\n\n for (const pattern of resolveImportSpecifierPatterns) {\n code.replace(pattern, (_fullMatch, _prefix, specifier) => {\n specifiers.add(specifier)\n return _fullMatch\n })\n }\n\n return [...specifiers]\n}\n\nconst resolveFromParent = (specifier: string, parent: string): string | null => {\n try {\n const resolvedSpecifier = import.meta.resolve(specifier, parent)\n if (\n resolvedSpecifier === specifier ||\n resolvedSpecifier.startsWith(\"node:\") ||\n resolvedSpecifier.startsWith(\"bun:\")\n ) {\n return null\n }\n\n return resolvedSpecifier\n } catch {\n return null\n }\n}\n\nconst resolveSourcePathFromSpecifier = (specifier: string, importer: string): string | null => {\n if (\n specifier.startsWith(\"node:\") ||\n specifier.startsWith(\"bun:\") ||\n specifier.startsWith(\"http:\") ||\n specifier.startsWith(\"https:\") ||\n specifier.startsWith(\"data:\") ||\n specifier.startsWith(RUNTIME_MODULE_PREFIX)\n ) {\n return null\n }\n\n if (specifier.startsWith(\"file:\")) {\n return sourcePath(fileURLToPath(specifier))\n }\n\n if (isAbsolute(specifier)) {\n return sourcePath(specifier)\n }\n\n const resolvedSpecifier = resolveFromParent(specifier, importer)\n if (!resolvedSpecifier) {\n return null\n }\n\n if (resolvedSpecifier.startsWith(\"file:\")) {\n return sourcePath(fileURLToPath(resolvedSpecifier))\n }\n\n if (isAbsolute(resolvedSpecifier)) {\n return sourcePath(resolvedSpecifier)\n }\n\n return null\n}\n\nconst rewriteImportsFromResolveParents = (code: string, resolveParentsByRecency: string[]): string => {\n if (resolveParentsByRecency.length === 0) {\n return code\n }\n\n const resolveFromParents = (specifier: string): string | null => {\n if (!isBareSpecifier(specifier)) {\n return null\n }\n\n for (let index = resolveParentsByRecency.length - 1; index >= 0; index -= 1) {\n const resolveParent = resolveParentsByRecency[index]\n const resolvedSpecifier = resolveFromParent(specifier, resolveParent)\n if (resolvedSpecifier) {\n return resolvedSpecifier\n }\n }\n\n return null\n }\n\n return rewriteImportSpecifiers(code, resolveFromParents)\n}\n\nconst rewriteRuntimeSpecifiers = (code: string, runtimeModuleIdsBySpecifier: Map<string, string>): string => {\n return rewriteImportSpecifiers(code, (specifier) => {\n const runtimeModuleId = runtimeModuleIdsBySpecifier.get(specifier)\n return runtimeModuleId ?? null\n })\n}\n\nexport function createRuntimePlugin(input: CreateRuntimePluginOptions = {}): BunPlugin {\n const runtimeModules = new Map<string, RuntimeModuleEntry>()\n runtimeModules.set(CORE_RUNTIME_SPECIFIER, input.core ?? (coreRuntime as RuntimeModuleExports))\n runtimeModules.set(CORE_TESTING_RUNTIME_SPECIFIER, loadCoreTestingRuntimeModule)\n const rewriteOptions = resolveRuntimePluginRewriteOptions(input.rewrite)\n\n for (const [specifier, moduleEntry] of Object.entries(input.additional ?? {})) {\n runtimeModules.set(specifier, moduleEntry)\n }\n\n const runtimeModuleIdsBySpecifier = new Map<string, string>()\n for (const specifier of runtimeModules.keys()) {\n runtimeModuleIdsBySpecifier.set(specifier, runtimeModuleIdForSpecifier(specifier))\n }\n\n return {\n name: \"bun-plugin-opentui-runtime-modules\",\n setup: (build) => {\n const resolveParentsByRecency: string[] = []\n const installedRewriteLoaders = new Set<string>()\n const nodeModulesBareRewritePackageRoots = new Set<string>()\n const packageTypeByPackageJsonPath = new Map<string, \"module\" | \"commonjs\">()\n const sourceAnalysisByPath = new Map<string, SourceAnalysis>()\n const nodeModulesRuntimeRewritePathsByPath = new Map<string, string[]>()\n\n const installRewriteLoader = (path: string): void => {\n const resolvedTargetPath = sourcePath(path)\n const canonicalTargetPath = normalizeSourcePath(resolvedTargetPath)\n\n if (installedRewriteLoaders.has(canonicalTargetPath)) {\n return\n }\n\n installedRewriteLoaders.add(canonicalTargetPath)\n\n // Register both the resolved path spelling and its canonical realpath so Bun\n // can reach the loader even if it reports the same file through a different alias.\n build.onLoad({ filter: exactPathFilter([resolvedTargetPath, canonicalTargetPath]) }, async (args) => {\n const loadedPath = normalizeSourcePath(args.path)\n if (loadedPath !== canonicalTargetPath) {\n return undefined\n }\n\n const nodeModulesPath = isNodeModulesPath(loadedPath)\n const shouldRewriteRuntimeSpecifiers = !nodeModulesPath || rewriteOptions.nodeModulesRuntimeSpecifiers\n const shouldRewriteBareSpecifiers = !nodeModulesPath || rewriteOptions.nodeModulesBareSpecifiers\n const loader = runtimeLoaderForPath(args.path)\n\n if (!loader) {\n throw new Error(`Unable to determine runtime loader for path: ${args.path}`)\n }\n\n const contents = await Bun.file(loadedPath).text()\n const runtimeRewrittenContents = shouldRewriteRuntimeSpecifiers\n ? rewriteRuntimeSpecifiers(contents, runtimeModuleIdsBySpecifier)\n : contents\n\n if (runtimeRewrittenContents !== contents && shouldRewriteBareSpecifiers) {\n registerResolveParent(resolveParentsByRecency, loadedPath)\n }\n\n const transformedContents = shouldRewriteBareSpecifiers\n ? rewriteImportsFromResolveParents(runtimeRewrittenContents, resolveParentsByRecency)\n : runtimeRewrittenContents\n\n return {\n contents: transformedContents,\n loader,\n }\n })\n }\n\n const analyzeSourcePath = (path: string): SourceAnalysis => {\n const normalizedPath = normalizeSourcePath(path)\n const cachedAnalysis = sourceAnalysisByPath.get(normalizedPath)\n if (cachedAnalysis) {\n return cachedAnalysis\n }\n\n let contents: string\n try {\n contents = readFileSync(normalizedPath, \"utf8\")\n } catch (error) {\n if (error && typeof error === \"object\" && \"code\" in error && error.code === \"ENOENT\") {\n const analysis = { importSpecifiers: [], needsRuntimeSpecifierRewrite: false }\n sourceAnalysisByPath.set(normalizedPath, analysis)\n return analysis\n }\n throw error\n }\n\n const importSpecifiers = collectImportSpecifiers(contents)\n const analysis = {\n importSpecifiers,\n needsRuntimeSpecifierRewrite: importSpecifiers.some((specifier) =>\n runtimeModuleIdsBySpecifier.has(specifier),\n ),\n }\n\n sourceAnalysisByPath.set(normalizedPath, analysis)\n return analysis\n }\n\n const collectNodeModulesRuntimeRewritePaths = (path: string, visiting = new Set<string>()): string[] => {\n const normalizedPath = normalizeSourcePath(path)\n\n if (!isNodeModulesEsmPath(normalizedPath, packageTypeByPackageJsonPath)) {\n return []\n }\n\n const cachedPaths = nodeModulesRuntimeRewritePathsByPath.get(normalizedPath)\n if (cachedPaths) {\n return cachedPaths\n }\n\n if (visiting.has(normalizedPath)) {\n return []\n }\n\n visiting.add(normalizedPath)\n\n const rewritePaths = new Set<string>()\n const analysis = analyzeSourcePath(normalizedPath)\n\n if (analysis.needsRuntimeSpecifierRewrite) {\n rewritePaths.add(normalizedPath)\n }\n\n for (const specifier of analysis.importSpecifiers) {\n const resolvedPath = resolveSourcePathFromSpecifier(specifier, normalizedPath)\n if (!resolvedPath || !isNodeModulesEsmPath(resolvedPath, packageTypeByPackageJsonPath)) {\n continue\n }\n\n for (const nestedPath of collectNodeModulesRuntimeRewritePaths(resolvedPath, visiting)) {\n rewritePaths.add(nestedPath)\n }\n }\n\n visiting.delete(normalizedPath)\n\n const resolvedRewritePaths = [...rewritePaths]\n nodeModulesRuntimeRewritePathsByPath.set(normalizedPath, resolvedRewritePaths)\n return resolvedRewritePaths\n }\n\n for (const [specifier, moduleEntry] of runtimeModules.entries()) {\n const moduleId = runtimeModuleIdsBySpecifier.get(specifier)\n\n if (!moduleId) {\n continue\n }\n\n build.module(moduleId, async () => ({\n exports: await resolveRuntimeModuleExports(moduleEntry),\n loader: \"object\",\n }))\n\n build.onResolve({ filter: exactSpecifierFilter(specifier) }, () => ({ path: moduleId }))\n }\n\n build.onResolve({ filter: /.*/ }, (args) => {\n if (runtimeModuleIdsBySpecifier.has(args.path) || args.path.startsWith(RUNTIME_MODULE_PREFIX)) {\n return undefined\n }\n\n const path = resolveSourcePathFromSpecifier(args.path, args.importer)\n if (!path || !runtimeLoaderForPath(path)) {\n return undefined\n }\n\n const nodeModulesPath = isNodeModulesPath(path)\n\n if (!nodeModulesPath) {\n installRewriteLoader(path)\n return undefined\n }\n\n if (!rewriteOptions.nodeModulesRuntimeSpecifiers && !rewriteOptions.nodeModulesBareSpecifiers) {\n return undefined\n }\n\n for (const rewritePath of collectNodeModulesRuntimeRewritePaths(path)) {\n installRewriteLoader(rewritePath)\n }\n\n const packageRoot = nodeModulesPackageRootForPath(path)\n if (\n rewriteOptions.nodeModulesBareSpecifiers &&\n packageRoot &&\n nodeModulesBareRewritePackageRoots.has(packageRoot)\n ) {\n installRewriteLoader(path)\n return undefined\n }\n\n if (!rewriteOptions.nodeModulesRuntimeSpecifiers || !analyzeSourcePath(path).needsRuntimeSpecifierRewrite) {\n return undefined\n }\n\n if (rewriteOptions.nodeModulesBareSpecifiers && packageRoot) {\n nodeModulesBareRewritePackageRoots.add(packageRoot)\n }\n\n installRewriteLoader(path)\n return undefined\n })\n },\n }\n}\n"
6
+ ],
7
+ "mappings": "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",
8
+ "debugId": "4F4ECA92927B118964756E2164756E21",
9
+ "names": []
10
+ }
package/index.d.ts CHANGED
@@ -17,6 +17,7 @@ export * from "./plugins/types.js";
17
17
  export * from "./plugins/registry.js";
18
18
  export * from "./plugins/core-slot.js";
19
19
  export * from "./NativeSpanFeed.js";
20
+ export * from "./audio.js";
20
21
  export * from "./renderables/index.js";
21
22
  export * from "./zig.js";
22
23
  export * from "./console.js";