@bldrs-ai/conway 1.418.1264 → 1.421.1270

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 (40) hide show
  1. package/compiled/examples/browser-bundled.cjs +34 -1
  2. package/compiled/examples/cli-bundled.cjs +34 -1
  3. package/compiled/examples/cli-step-bundled.cjs +34 -1
  4. package/compiled/examples/validator-bundled.cjs +34 -1
  5. package/compiled/src/compat/web-ifc/ifc_api.d.ts +12 -0
  6. package/compiled/src/compat/web-ifc/ifc_api.d.ts.map +1 -1
  7. package/compiled/src/compat/web-ifc/ifc_api.js +42 -1
  8. package/compiled/src/compat/web-ifc/ifc_api_proxy_ifc.d.ts +7 -6
  9. package/compiled/src/compat/web-ifc/ifc_api_proxy_ifc.d.ts.map +1 -1
  10. package/compiled/src/compat/web-ifc/ifc_api_proxy_ifc.js +11 -8
  11. package/compiled/src/compat/web-ifc/web_wasm_directory.test.d.ts +2 -0
  12. package/compiled/src/compat/web-ifc/web_wasm_directory.test.d.ts.map +1 -0
  13. package/compiled/src/compat/web-ifc/web_wasm_directory.test.js +22 -0
  14. package/compiled/src/demand/index.d.ts +23 -0
  15. package/compiled/src/demand/index.d.ts.map +1 -0
  16. package/compiled/src/demand/index.js +22 -0
  17. package/compiled/src/index.d.ts +2 -1
  18. package/compiled/src/index.d.ts.map +1 -1
  19. package/compiled/src/index.js +7 -1
  20. package/compiled/src/mem/index.d.ts +17 -0
  21. package/compiled/src/mem/index.d.ts.map +1 -0
  22. package/compiled/src/mem/index.js +16 -0
  23. package/compiled/src/namespace_surface.test.d.ts +2 -0
  24. package/compiled/src/namespace_surface.test.d.ts.map +1 -0
  25. package/compiled/src/namespace_surface.test.js +35 -0
  26. package/compiled/src/step/parsing/step_parser.d.ts +19 -0
  27. package/compiled/src/step/parsing/step_parser.d.ts.map +1 -1
  28. package/compiled/src/step/parsing/step_parser.js +33 -0
  29. package/compiled/src/step/parsing/streaming_index_builder.d.ts +36 -0
  30. package/compiled/src/step/parsing/streaming_index_builder.d.ts.map +1 -1
  31. package/compiled/src/step/parsing/streaming_index_builder.js +109 -0
  32. package/compiled/src/step/parsing/streaming_index_builder_async.test.d.ts +2 -0
  33. package/compiled/src/step/parsing/streaming_index_builder_async.test.d.ts.map +1 -0
  34. package/compiled/src/step/parsing/streaming_index_builder_async.test.js +97 -0
  35. package/compiled/src/stream/index.d.ts +26 -0
  36. package/compiled/src/stream/index.d.ts.map +1 -0
  37. package/compiled/src/stream/index.js +24 -0
  38. package/compiled/src/version/version.js +1 -1
  39. package/compiled/tsconfig.tsbuildinfo +1 -1
  40. package/package.json +16 -1
@@ -30,7 +30,7 @@ var import_node_process = require("node:process");
30
30
  var readline = __toESM(require("node:readline"), 1);
31
31
 
32
32
  // compiled/src/version/version.js
33
- var versionString = "Conway v1.418.1264";
33
+ var versionString = "Conway v1.421.1270";
34
34
 
35
35
  // compiled/dependencies/conway-geom/interface/conway_geometry.js
36
36
  var wasmType = "";
@@ -2597,6 +2597,39 @@ var StepParser = class extends StepHeaderParser {
2597
2597
  onProgress?.(next.value);
2598
2598
  }
2599
2599
  }
2600
+ /**
2601
+ * Cooperative variant of parseDataBlockStreamed: identical parse and
2602
+ * window-slide behaviour (same generator body, same boundary callback),
2603
+ * but periodically awaits a macrotask so the event loop can run —
2604
+ * browsers repaint progress UI during a large streamed parse instead of
2605
+ * flagging the tab as stalled. Issue #301 §2 for the streamed path.
2606
+ *
2607
+ * @param input The input parsing buffer, positioned at the data section.
2608
+ * @param onRecordBoundary Called at each top-level record boundary with the
2609
+ * buffer; the callback may rebase the buffer's window in place.
2610
+ * @param onRecordIndexed Called as each top-level record is indexed — see
2611
+ * parseDataBlockStreamed.
2612
+ * @param onProgress Optional byte-cursor progress callback.
2613
+ * @param sink Optional index sink (columnar builds).
2614
+ * @param yieldIntervalMs Minimum ms between event-loop yields.
2615
+ * @return {Promise<BlockParseResult>} The parsing result, including the
2616
+ * index and result enum.
2617
+ */
2618
+ async parseDataBlockStreamedAsync(input2, onRecordBoundary, onRecordIndexed, onProgress, sink, yieldIntervalMs = DEFAULT_PARSE_YIELD_INTERVAL_MS) {
2619
+ const parser211 = this.parseDataBlockIncremental(input2, onRecordBoundary, onRecordIndexed, sink);
2620
+ let lastYield = Date.now();
2621
+ while (true) {
2622
+ const next = parser211.next();
2623
+ if (next.done === true) {
2624
+ return next.value;
2625
+ }
2626
+ onProgress?.(next.value);
2627
+ if (Date.now() - lastYield >= yieldIntervalMs) {
2628
+ await yieldToEventLoop();
2629
+ lastYield = Date.now();
2630
+ }
2631
+ }
2632
+ }
2600
2633
  /**
2601
2634
  * Cooperative variant of parseDataBlock: identical parse (same generator
2602
2635
  * body), but periodically awaits a macrotask so the event loop can run —
@@ -14965,7 +14965,7 @@ ${t5.join("\n")}` : "";
14965
14965
  var import_process = require("process");
14966
14966
 
14967
14967
  // compiled/src/version/version.js
14968
- var versionString = "Conway v1.418.1264";
14968
+ var versionString = "Conway v1.421.1270";
14969
14969
 
14970
14970
  // compiled/dependencies/conway-geom/interface/conway_geometry.js
14971
14971
  function pThreadsAllowed() {
@@ -18411,6 +18411,39 @@ var StepParser = class extends StepHeaderParser {
18411
18411
  onProgress?.(next.value);
18412
18412
  }
18413
18413
  }
18414
+ /**
18415
+ * Cooperative variant of parseDataBlockStreamed: identical parse and
18416
+ * window-slide behaviour (same generator body, same boundary callback),
18417
+ * but periodically awaits a macrotask so the event loop can run —
18418
+ * browsers repaint progress UI during a large streamed parse instead of
18419
+ * flagging the tab as stalled. Issue #301 §2 for the streamed path.
18420
+ *
18421
+ * @param input The input parsing buffer, positioned at the data section.
18422
+ * @param onRecordBoundary Called at each top-level record boundary with the
18423
+ * buffer; the callback may rebase the buffer's window in place.
18424
+ * @param onRecordIndexed Called as each top-level record is indexed — see
18425
+ * parseDataBlockStreamed.
18426
+ * @param onProgress Optional byte-cursor progress callback.
18427
+ * @param sink Optional index sink (columnar builds).
18428
+ * @param yieldIntervalMs Minimum ms between event-loop yields.
18429
+ * @return {Promise<BlockParseResult>} The parsing result, including the
18430
+ * index and result enum.
18431
+ */
18432
+ async parseDataBlockStreamedAsync(input, onRecordBoundary, onRecordIndexed, onProgress, sink, yieldIntervalMs = DEFAULT_PARSE_YIELD_INTERVAL_MS) {
18433
+ const parser210 = this.parseDataBlockIncremental(input, onRecordBoundary, onRecordIndexed, sink);
18434
+ let lastYield = Date.now();
18435
+ while (true) {
18436
+ const next = parser210.next();
18437
+ if (next.done === true) {
18438
+ return next.value;
18439
+ }
18440
+ onProgress?.(next.value);
18441
+ if (Date.now() - lastYield >= yieldIntervalMs) {
18442
+ await yieldToEventLoop();
18443
+ lastYield = Date.now();
18444
+ }
18445
+ }
18446
+ }
18414
18447
  /**
18415
18448
  * Cooperative variant of parseDataBlock: identical parse (same generator
18416
18449
  * body), but periodically awaits a macrotask so the event loop can run —
@@ -15943,7 +15943,7 @@ var ParsingBuffer = class {
15943
15943
  };
15944
15944
 
15945
15945
  // compiled/src/version/version.js
15946
- var versionString = "Conway v1.418.1264";
15946
+ var versionString = "Conway v1.421.1270";
15947
15947
 
15948
15948
  // compiled/dependencies/conway-geom/interface/conway_geometry.js
15949
15949
  function pThreadsAllowed() {
@@ -18319,6 +18319,39 @@ var StepParser = class extends StepHeaderParser {
18319
18319
  onProgress?.(next.value);
18320
18320
  }
18321
18321
  }
18322
+ /**
18323
+ * Cooperative variant of parseDataBlockStreamed: identical parse and
18324
+ * window-slide behaviour (same generator body, same boundary callback),
18325
+ * but periodically awaits a macrotask so the event loop can run —
18326
+ * browsers repaint progress UI during a large streamed parse instead of
18327
+ * flagging the tab as stalled. Issue #301 §2 for the streamed path.
18328
+ *
18329
+ * @param input The input parsing buffer, positioned at the data section.
18330
+ * @param onRecordBoundary Called at each top-level record boundary with the
18331
+ * buffer; the callback may rebase the buffer's window in place.
18332
+ * @param onRecordIndexed Called as each top-level record is indexed — see
18333
+ * parseDataBlockStreamed.
18334
+ * @param onProgress Optional byte-cursor progress callback.
18335
+ * @param sink Optional index sink (columnar builds).
18336
+ * @param yieldIntervalMs Minimum ms between event-loop yields.
18337
+ * @return {Promise<BlockParseResult>} The parsing result, including the
18338
+ * index and result enum.
18339
+ */
18340
+ async parseDataBlockStreamedAsync(input, onRecordBoundary, onRecordIndexed, onProgress, sink, yieldIntervalMs = DEFAULT_PARSE_YIELD_INTERVAL_MS) {
18341
+ const parser28 = this.parseDataBlockIncremental(input, onRecordBoundary, onRecordIndexed, sink);
18342
+ let lastYield = Date.now();
18343
+ while (true) {
18344
+ const next = parser28.next();
18345
+ if (next.done === true) {
18346
+ return next.value;
18347
+ }
18348
+ onProgress?.(next.value);
18349
+ if (Date.now() - lastYield >= yieldIntervalMs) {
18350
+ await yieldToEventLoop();
18351
+ lastYield = Date.now();
18352
+ }
18353
+ }
18354
+ }
18322
18355
  /**
18323
18356
  * Cooperative variant of parseDataBlock: identical parse (same generator
18324
18357
  * body), but periodically awaits a macrotask so the event loop can run —
@@ -944,7 +944,7 @@ var EntityTypesIfcCount = 909;
944
944
  var entity_types_ifc_gen_default = EntityTypesIfc;
945
945
 
946
946
  // compiled/src/version/version.js
947
- var versionString = "Conway v1.418.1264";
947
+ var versionString = "Conway v1.421.1270";
948
948
 
949
949
  // compiled/dependencies/conway-geom/interface/conway_geometry.js
950
950
  var wasmType = "";
@@ -3511,6 +3511,39 @@ var StepParser = class extends StepHeaderParser {
3511
3511
  onProgress?.(next.value);
3512
3512
  }
3513
3513
  }
3514
+ /**
3515
+ * Cooperative variant of parseDataBlockStreamed: identical parse and
3516
+ * window-slide behaviour (same generator body, same boundary callback),
3517
+ * but periodically awaits a macrotask so the event loop can run —
3518
+ * browsers repaint progress UI during a large streamed parse instead of
3519
+ * flagging the tab as stalled. Issue #301 §2 for the streamed path.
3520
+ *
3521
+ * @param input The input parsing buffer, positioned at the data section.
3522
+ * @param onRecordBoundary Called at each top-level record boundary with the
3523
+ * buffer; the callback may rebase the buffer's window in place.
3524
+ * @param onRecordIndexed Called as each top-level record is indexed — see
3525
+ * parseDataBlockStreamed.
3526
+ * @param onProgress Optional byte-cursor progress callback.
3527
+ * @param sink Optional index sink (columnar builds).
3528
+ * @param yieldIntervalMs Minimum ms between event-loop yields.
3529
+ * @return {Promise<BlockParseResult>} The parsing result, including the
3530
+ * index and result enum.
3531
+ */
3532
+ async parseDataBlockStreamedAsync(input, onRecordBoundary, onRecordIndexed, onProgress, sink, yieldIntervalMs = DEFAULT_PARSE_YIELD_INTERVAL_MS) {
3533
+ const parser211 = this.parseDataBlockIncremental(input, onRecordBoundary, onRecordIndexed, sink);
3534
+ let lastYield = Date.now();
3535
+ while (true) {
3536
+ const next = parser211.next();
3537
+ if (next.done === true) {
3538
+ return next.value;
3539
+ }
3540
+ onProgress?.(next.value);
3541
+ if (Date.now() - lastYield >= yieldIntervalMs) {
3542
+ await yieldToEventLoop();
3543
+ lastYield = Date.now();
3544
+ }
3545
+ }
3546
+ }
3514
3547
  /**
3515
3548
  * Cooperative variant of parseDataBlock: identical parse (same generator
3516
3549
  * body), but periodically awaits a macrotask so the event loop can run —
@@ -50,6 +50,18 @@ export declare enum LogLevel {
50
50
  LOG_LEVEL_ERROR = 4,
51
51
  LOG_LEVEL_OFF = 5
52
52
  }
53
+ /**
54
+ * Normalize an embedder wasm directory (the SetWasmPath value) to the
55
+ * absolute site path the web engine modules are served from — the
56
+ * runtime module prefix isolated (multithreaded) contexts import the
57
+ * engine from. Web wasm paths are site-root-relative by convention
58
+ * ('./static/js/'); missing input falls back to the same '/static/js/'
59
+ * directory conway-geom's web init already uses to locate wasm.
60
+ *
61
+ * @param wasmPath The embedder-configured wasm directory, if any.
62
+ * @return {string} Absolute directory with a trailing slash.
63
+ */
64
+ export declare function webWasmDirectory(wasmPath: string | undefined): string;
53
65
  export interface Vector<T> {
54
66
  get(index: number): T;
55
67
  push(parameter: T): void;
@@ -1 +1 @@
1
- {"version":3,"file":"ifc_api.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/ifc_api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ifc_api.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/ifc_api.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ConwayGeometry, } from "../../index.js";
1
+ import { ConwayGeometry, setModulePrefix, } from "../../index.js";
2
2
  import { versionString } from "../../version/version.js";
3
3
  import Logger, { LogLevel as ConwayLogLevel } from "../../logging/logger.js";
4
4
  import Environment from "../../utilities/environment.js";
@@ -36,6 +36,34 @@ const CONWAY_LOG_LEVEL_BY_WEBIFC = {
36
36
  [LogLevel.LOG_LEVEL_ERROR]: ConwayLogLevel.ERROR,
37
37
  [LogLevel.LOG_LEVEL_OFF]: ConwayLogLevel.OFF,
38
38
  };
39
+ // The directory conway-geom's web init locates wasm from when no
40
+ // embedder path is configured — also the conventional serve location
41
+ // (Share copies Dist/* there at build time).
42
+ const DEFAULT_WEB_WASM_DIRECTORY = "/static/js/";
43
+ /**
44
+ * Normalize an embedder wasm directory (the SetWasmPath value) to the
45
+ * absolute site path the web engine modules are served from — the
46
+ * runtime module prefix isolated (multithreaded) contexts import the
47
+ * engine from. Web wasm paths are site-root-relative by convention
48
+ * ('./static/js/'); missing input falls back to the same '/static/js/'
49
+ * directory conway-geom's web init already uses to locate wasm.
50
+ *
51
+ * @param wasmPath The embedder-configured wasm directory, if any.
52
+ * @return {string} Absolute directory with a trailing slash.
53
+ */
54
+ export function webWasmDirectory(wasmPath) {
55
+ let directory = wasmPath ?? "";
56
+ if (directory === "") {
57
+ return DEFAULT_WEB_WASM_DIRECTORY;
58
+ }
59
+ if (directory.startsWith("./")) {
60
+ directory = directory.substring(1);
61
+ }
62
+ else if (!directory.startsWith("/")) {
63
+ directory = `/${directory}`;
64
+ }
65
+ return directory.endsWith("/") ? directory : `${directory}/`;
66
+ }
39
67
  /**
40
68
  * @return {number} current time in ms
41
69
  */
@@ -83,6 +111,19 @@ export class IfcAPI {
83
111
  Environment.checkEnvironment();
84
112
  Logger.initializeWasmCallbacks();
85
113
  Logger.info(versionString);
114
+ // Cross-origin-isolated web contexts select the multithreaded wasm,
115
+ // whose pthread workers resolve their worker script from the engine
116
+ // module's own import.meta.url. A bundler-inlined copy of the glue
117
+ // gives workers a wrong URL (the worker script 404s and MT init dies
118
+ // with a bare error Event — Share #1610). Setting a runtime module
119
+ // prefix makes conway-geom import the engine module from the
120
+ // directory it is actually served from, so import.meta.url — and
121
+ // therefore the worker script URL — is correct. Web wasm paths are
122
+ // site-root-relative by convention; no-op outside isolated windows.
123
+ if (typeof window !== "undefined" &&
124
+ window.crossOriginIsolated === true) {
125
+ setModulePrefix(webWasmDirectory(this.wasmPath));
126
+ }
86
127
  const locateFileHandler = (path, prefix) => {
87
128
  // when the wasm module requests the wasm file, we redirect to include the user specified path
88
129
  if (path.endsWith(".wasm")) {
@@ -138,12 +138,13 @@ export declare class IfcApiProxyIfc implements IfcApiModelPassthrough {
138
138
  * classic open, and `spillSourceToExternalStore` works afterwards as
139
139
  * usual.
140
140
  *
141
- * The columnar build is a single synchronous pass (no mid-parse
142
- * yields yet), so the 'dataParse' progress phase reports its
143
- * boundaries without intermediate ticks; extraction remains
144
- * cooperative. Throws when the streamed parse is anything but
145
- * COMPLETE the caller (OpenModelStreamed) falls back to the
146
- * classic path, which tolerates recoverable parses.
141
+ * The columnar build is cooperative (periodic event-loop yields, like
142
+ * the classic parseDataBlockAsync) with absolute byte-cursor progress
143
+ * ticks, and extraction is cooperative too — the streamed open keeps
144
+ * the repaint/no-stall property of OpenModelAsync (#301 §2). Throws
145
+ * when the streamed parse is anything but COMPLETE — the caller
146
+ * (OpenModelStreamed) falls back to the classic path, which tolerates
147
+ * recoverable parses.
147
148
  *
148
149
  * @param modelID The model ID being opened.
149
150
  * @param data The IFC data buffer.
@@ -1 +1 @@
1
- {"version":3,"file":"ifc_api_proxy_ifc.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/ifc_api_proxy_ifc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ifc_api_proxy_ifc.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/ifc_api_proxy_ifc.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,cAAc,EACf,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,YAAY,MAAM,0BAA0B,CAAA;AACnD,OAAO,EACL,QAAQ,EACR,WAAW,EACX,WAAW,EACX,cAAc,EACd,cAAc,EACd,WAAW,EACX,MAAM,EACP,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAWhD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAE3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAA;AAezE;;;;;GAKG;AACH,UAAU,iBAAiB;IACzB,UAAU,EAAE,cAAc,CAAA;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,UAAU,CAAA;IACtB,KAAK,EAAE,YAAY,CAAA;IACnB,KAAK,EAAE,eAAe,CAAA;IACtB,cAAc,EAAE,qBAAqB,CAAA;IACrC,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED;;GAEG;AACH,qBAAa,cAAe,YAAW,sBAAsB;aAoCvC,OAAO,EAAE,MAAM;IAE/B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IArC9B,EAAE,CAAC,EAAE,GAAG,CAAY;IAEpB,KAAK,EACH;QAAC,YAAY;QACX,eAAe;QACf,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC/C,GAAG,CAAC,MAAM,EAAE,CAAC,cAAc,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,CAAC;QAE1D,MAAM,CAAC,QAAQ,CAAC;QAAE,QAAQ,CAAC,IAAI;KAAC,CAAA;IACpC,UAAU,EAAE,cAAc,CAAA;IAC1B,cAAc,EAAE,OAAO,CAAQ;IAC/B,mBAAmB,EAAE,MAAM,CAAI;IAC/B,QAAQ,EAAE,MAAM,EAAE,CAAmD;IAGrE,YAAY,EAAE,QAAQ,CAAC,IAAI,CAK1B;IAED;;OAEG;IACH,UAAU,gBAA0B;IAEpC;;;;OAIG;gBAGiB,OAAO,EAAE,MAAM,EAC/B,IAAI,EAAE,UAAU,EACC,UAAU,EAAE,GAAG,EACf,QAAQ,CAAC,EAAE,cAAc,YAAA,EAC1C,WAAW,CAAC,EAAE,iBAAiB;IAuJnC;;;;;;;;;;OAUG;WACiB,WAAW,CAC3B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,GAAG,EACf,QAAQ,CAAC,EAAE,cAAc,GAAI,OAAO,CAAC,cAAc,CAAC;IAQxD;;;;;;;;;;;;;;;OAeG;WACiB,cAAc,CAC9B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,GAAG,EACf,QAAQ,CAAC,EAAE,cAAc,GAAI,OAAO,CAAC,cAAc,CAAC;IAQxD;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAwCtC;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAU1B;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAsF9B;;;;;;;;;OASG;mBACkB,oBAAoB;IAsFzC;;;;;;;;;;;;;;;;;;;;;;OAsBG;mBACkB,4BAA4B;IA8FjD;;;;OAIG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IA4BxC;;;;;OAKG;IACH,WAAW,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,MAAM;IAM9C;;;;OAIG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU;IAO5C;;;;;;OAMG;IACH,WAAW,CAAC,iBAAiB,EAAE,MAAM,GAAG,WAAW;IA8BnD;;;;;;OAMG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe;IA0BnD;;;;;;;;;;;;OAYG;IACH,qBAAqB,CAAC,SAAS,EAAE,MAAM,GACrC;QAAE,IAAI,CAAC,EAAE,eAAe,CAAC;QACvB,QAAQ,CAAC,EAAE,eAAe,CAAC;QAC3B,QAAQ,CAAC,EAAE,eAAe,CAAA;KAAE;IAoChC;;;;;;OAMG;IACH,kBAAkB,IAAI,IAAI;IAI1B;;;;;OAKG;IACH,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED;;;;;;;;;;OAUG;IACH,0BAA0B,CACtB,KAAK,EAAE,qBAAqB,EAC5B,UAAU,CAAC,EAAE,MAAM,EACnB,iBAAiB,CAAC,EAAE,MAAM,GAAI,IAAI;IAItC;;;;;;;;;;;OAWG;IACG,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1D;;;;;;;;;;;OAWG;IACH,cAAc,IAAI,gBAAgB,CAAC,MAAM,CAAC;IAI1C;;;;OAIG;IACH,iBAAiB,IAAI,MAAM,CAAC,WAAW,CAAC;IAoBxC;;;;OAIG;IACH,SAAS,CAAC,UAAU,EAAE,GAAG;IAIzB;;;;OAIG;IACH,WAAW,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IAkB5B;;;;;OAKG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW;IAgD9C;;;;OAIG;IACH,gBAAgB,CAAC,IAAI,EAAE,WAAW;IAIlC;;;;;OAKG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IA6ChD;;;;OAIG;IACH,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC;IA0C7B;;;;OAIG;IACH,yBAAyB,CAAC,oBAAoB,EAAE,KAAK,CAAC,MAAM,CAAC;IAU7D;;;;OAIG;IACH,qBAAqB,IAAI,KAAK,CAAC,MAAM,CAAC;IActC;;;;;OAKG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY;IAIvD;;;;;OAKG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW;IAIrD;;;;;;OAMG;IACH,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAC/E,YAAY,GAAG,WAAW;IAK5B;;;;OAIG;IACH,UAAU;IAIV;;;;OAIG;IACH,eAAe,CAAE,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI;IA2NvD;;;;;OAKG;IACH,wBAAwB,CACpB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EACpB,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI;IA+O1C;;;;OAIG;IACH,eAAe,IAAI,MAAM,CAAC,QAAQ,CAAC;IA0RnC;;;;;OAKG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ;IAqDxC;;;;;OAKG;IACH,4BAA4B,IAAI,IAAI;CAwBrC"}
@@ -9,7 +9,7 @@ import { extractModelInfo } from "../../loaders/loading_utilities.js";
9
9
  import IfcStepParser from "../../ifc/ifc_step_parser.js";
10
10
  import ParsingBuffer from "../../parsing/parsing_buffer.js";
11
11
  import { BufferByteSource } from "../../step/parsing/byte_source.js";
12
- import { buildColumnarIndexStreaming, } from "../../step/parsing/streaming_index_builder.js";
12
+ import { buildColumnarIndexStreamingAsync, } from "../../step/parsing/streaming_index_builder.js";
13
13
  import { ExtractResult } from "../../index.js";
14
14
  import { IfcGeometryExtraction } from "../../ifc/ifc_geometry_extraction.js";
15
15
  import { ParseResult } from "../../index.js";
@@ -379,12 +379,13 @@ export class IfcApiProxyIfc {
379
379
  * classic open, and `spillSourceToExternalStore` works afterwards as
380
380
  * usual.
381
381
  *
382
- * The columnar build is a single synchronous pass (no mid-parse
383
- * yields yet), so the 'dataParse' progress phase reports its
384
- * boundaries without intermediate ticks; extraction remains
385
- * cooperative. Throws when the streamed parse is anything but
386
- * COMPLETE the caller (OpenModelStreamed) falls back to the
387
- * classic path, which tolerates recoverable parses.
382
+ * The columnar build is cooperative (periodic event-loop yields, like
383
+ * the classic parseDataBlockAsync) with absolute byte-cursor progress
384
+ * ticks, and extraction is cooperative too — the streamed open keeps
385
+ * the repaint/no-stall property of OpenModelAsync (#301 §2). Throws
386
+ * when the streamed parse is anything but COMPLETE — the caller
387
+ * (OpenModelStreamed) falls back to the classic path, which tolerates
388
+ * recoverable parses.
388
389
  *
389
390
  * @param modelID The model ID being opened.
390
391
  * @param data The IFC data buffer.
@@ -409,8 +410,10 @@ export class IfcApiProxyIfc {
409
410
  Logger.info(formatModelLine(modelInfo));
410
411
  settings?.ON_MODEL_INFO?.(modelInfo);
411
412
  tracker?.beginPhase("dataParse", "bytes", data.length);
413
+ const parseTick = tracker !== void 0 ?
414
+ (cursorBytes) => tracker.update(cursorBytes) : void 0;
412
415
  const parseStartTime = Date.now();
413
- const { columns, result } = buildColumnarIndexStreaming(new BufferByteSource(data), parser, STREAMED_PARSE_POOL_BYTES);
416
+ const { columns, result } = await buildColumnarIndexStreamingAsync(new BufferByteSource(data), parser, STREAMED_PARSE_POOL_BYTES, void 0, parseTick);
414
417
  const parseEndTime = Date.now();
415
418
  tracker?.endPhase(data.length);
416
419
  if (result !== ParseResult.COMPLETE) {
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=web_wasm_directory.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web_wasm_directory.test.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/web_wasm_directory.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ // The wasm-directory normalization behind the isolated-context module
2
+ // prefix (Share #1610): embedder SetWasmPath values are site-root-
3
+ // relative by convention and must come out as absolute directories,
4
+ // since they become runtime dynamic-import prefixes whose resolution
5
+ // must not depend on the page or bundle URL (the pthread worker script
6
+ // URL derives from the imported module's import.meta.url).
7
+ import { describe, expect, test } from "@jest/globals";
8
+ import { webWasmDirectory } from "./ifc_api.js";
9
+ describe("webWasmDirectory", () => {
10
+ test("site-root-relative convention absolutizes", () => {
11
+ expect(webWasmDirectory("./static/js/")).toBe("/static/js/");
12
+ expect(webWasmDirectory("static/js/")).toBe("/static/js/");
13
+ });
14
+ test("absolute paths pass through with a trailing slash ensured", () => {
15
+ expect(webWasmDirectory("/static/js/")).toBe("/static/js/");
16
+ expect(webWasmDirectory("/wasm")).toBe("/wasm/");
17
+ });
18
+ test("missing input falls back to the conventional serve directory", () => {
19
+ expect(webWasmDirectory(undefined)).toBe("/static/js/");
20
+ expect(webWasmDirectory("")).toBe("/static/js/");
21
+ });
22
+ });
@@ -0,0 +1,23 @@
1
+ /**
2
+ * `@bldrs-ai/conway/demand` — demand-driven geometry residency (epic #390;
3
+ * design/new/streaming-federated-loader.md, "two regimes").
4
+ *
5
+ * The synchronous half: a priority {@link DemandGeometryQueue} admits
6
+ * instances under a byte budget against {@link GeometryTiles} — in
7
+ * production the wasm-backed {@link GeometryTilePool} composition created
8
+ * by {@link createWasmTileBackend}, extracting through
9
+ * {@link IfcTileAssetExtractor} into the conway-geom TilePool. The
10
+ * asynchronous half: {@link DemandResidencyPump} pages source-byte ranges
11
+ * in (via the stream plane's windowed provider) before forwarding demand,
12
+ * so a pump cycle never hits a non-resident range mid-extract.
13
+ *
14
+ * Conway-native namespace; see `@bldrs-ai/conway/stream` for the parse
15
+ * plane and `@bldrs-ai/conway/mem` for the general pool primitives this
16
+ * builds on.
17
+ */
18
+ export { DemandGeometryQueue, GeometryTiles, DemandQueueStats, } from "../core/demand_geometry_queue.js";
19
+ export { DemandResidencyPump, ResidencyPrefetcher, PumpResult, } from "../core/demand_residency_pump.js";
20
+ export { GeometryTilePool, InstanceAssetSource, GeometryAsset, } from "../core/geometry_tile_pool.js";
21
+ export { GeometryTilePoolBindings, TileAssetExtractor, WasmTileBackend, createWasmTileBackend, readGeometryTilePayload, GeometryTilePayload, } from "../core/geometry_tile_bindings.js";
22
+ export { IfcTileAssetExtractor, TileCommitBindings } from "../ifc/ifc_tile_extractor.js";
23
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/demand/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,gBAAgB,GACjB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,UAAU,GACX,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,GACd,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * `@bldrs-ai/conway/demand` — demand-driven geometry residency (epic #390;
3
+ * design/new/streaming-federated-loader.md, "two regimes").
4
+ *
5
+ * The synchronous half: a priority {@link DemandGeometryQueue} admits
6
+ * instances under a byte budget against {@link GeometryTiles} — in
7
+ * production the wasm-backed {@link GeometryTilePool} composition created
8
+ * by {@link createWasmTileBackend}, extracting through
9
+ * {@link IfcTileAssetExtractor} into the conway-geom TilePool. The
10
+ * asynchronous half: {@link DemandResidencyPump} pages source-byte ranges
11
+ * in (via the stream plane's windowed provider) before forwarding demand,
12
+ * so a pump cycle never hits a non-resident range mid-extract.
13
+ *
14
+ * Conway-native namespace; see `@bldrs-ai/conway/stream` for the parse
15
+ * plane and `@bldrs-ai/conway/mem` for the general pool primitives this
16
+ * builds on.
17
+ */
18
+ export { DemandGeometryQueue, } from "../core/demand_geometry_queue.js";
19
+ export { DemandResidencyPump, } from "../core/demand_residency_pump.js";
20
+ export { GeometryTilePool, } from "../core/geometry_tile_pool.js";
21
+ export { createWasmTileBackend, readGeometryTilePayload, } from "../core/geometry_tile_bindings.js";
22
+ export { IfcTileAssetExtractor } from "../ifc/ifc_tile_extractor.js";
@@ -1,7 +1,7 @@
1
1
  export { ParseResult } from "./step/parsing/step_parser.js";
2
2
  export { IfcGeometryExtraction } from "./ifc/ifc_geometry_extraction.js";
3
3
  export { IfcPropertyExtraction } from "./ifc/ifc_property_extraction.js";
4
- export { ConwayGeometry, GeometryObject, FileHandlerFunction } from "../dependencies/conway-geom/index.js";
4
+ export { ConwayGeometry, GeometryObject, FileHandlerFunction, setModulePrefix, } from "../dependencies/conway-geom/index.js";
5
5
  export { versionString } from "./version/version.js";
6
6
  export { default as Logger, LogLevel, LogEntry, LoggingProxy, LogSink } from "./logging/logger.js";
7
7
  export { product, shape_definition_representation } from "./AP214E3_2010/AP214E3_2010_gen/index.js";
@@ -12,6 +12,7 @@ export { ProgressEvent, ProgressCallback, ProgressPhase, ProgressUnit, ProgressT
12
12
  export { ModelLoadOptions } from "./loaders/conway_model_loader.js";
13
13
  export { LoadLogAccumulator, ModelInfo, ProgressEventLike, formatBar, formatMb, formatModelLine, formatSeconds, stageLabel, } from "./core/progress_log.js";
14
14
  export { openStreamedIfcModel, StreamedIfcOpen, StreamedIfcOpenOptions } from "./ifc/ifc_stream_open.js";
15
+ export { buildColumnarIndexStreaming, buildColumnarIndexStreamingAsync, } from "./step/parsing/streaming_index_builder.js";
15
16
  export { ByteSource, BufferByteSource } from "./step/parsing/byte_source.js";
16
17
  export { StepExternalByteStore, InMemoryStepByteStore, StepBufferProvider, WindowedStepBufferProvider, } from "./step/step_buffer_provider.js";
17
18
  export { StepIndexColumns } from "./step/parsing/columnar_index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AACrE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,mBAAmB,EAAC,MAAM,6BAA6B,CAAA;AAChG,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAE/F,OAAO,EAAE,OAAO,EAAE,+BAA+B,EAAE,MAAM,iCAAiC,CAAA;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,iBAAiB,EACjB,SAAS,EACT,QAAQ,EACR,eAAe,EACf,aAAa,EACb,UAAU,GACX,MAAM,qBAAqB,CAAA;AAK5B,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AACrG,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AACzE,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,0BAA0B,GAC3B,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EACL,gCAAgC,EAChC,gCAAgC,EAChC,oBAAoB,EACpB,UAAU,GACX,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAA;AACrG,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAC5E,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AACnG,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AACnG,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AACpF,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AACrE,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,eAAe,GAChB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAE/F,OAAO,EAAE,OAAO,EAAE,+BAA+B,EAAE,MAAM,iCAAiC,CAAA;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,iBAAiB,EACjB,SAAS,EACT,QAAQ,EACR,eAAe,EACf,aAAa,EACb,UAAU,GACX,MAAM,qBAAqB,CAAA;AAU5B,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AACrG,OAAO,EACL,2BAA2B,EAC3B,gCAAgC,GACjC,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AACzE,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,0BAA0B,GAC3B,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EACL,gCAAgC,EAChC,gCAAgC,EAChC,oBAAoB,EACpB,UAAU,GACX,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAA;AACrG,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAC5E,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AACnG,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AACnG,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AACpF,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA"}
@@ -1,7 +1,7 @@
1
1
  export { ParseResult } from "./step/parsing/step_parser.js";
2
2
  export { IfcGeometryExtraction } from "./ifc/ifc_geometry_extraction.js";
3
3
  export { IfcPropertyExtraction } from "./ifc/ifc_property_extraction.js";
4
- export { ConwayGeometry } from "../dependencies/conway-geom/index.js";
4
+ export { ConwayGeometry, setModulePrefix, } from "../dependencies/conway-geom/index.js";
5
5
  export { versionString } from "./version/version.js";
6
6
  // Replace your current Logger export with this
7
7
  export { default as Logger, LogLevel } from "./logging/logger.js";
@@ -13,7 +13,13 @@ export { LoadLogAccumulator, formatBar, formatMb, formatModelLine, formatSeconds
13
13
  // --- Streaming / demand-geometry surface (epic #390; design doc
14
14
  // design/new/streaming-federated-loader.md). The release-facing API for
15
15
  // fixed-memory opens and demand-driven residency.
16
+ //
17
+ // Canonical homes are the plane subpath modules — `@bldrs-ai/conway/stream`,
18
+ // `/demand`, and `/mem` — which is where new conway-native APIs land (the
19
+ // web-ifc compat shim stays an adapter and is headed for retirement). The
20
+ // flat re-exports below are kept for root-import compatibility.
16
21
  export { openStreamedIfcModel } from "./ifc/ifc_stream_open.js";
22
+ export { buildColumnarIndexStreaming, buildColumnarIndexStreamingAsync, } from "./step/parsing/streaming_index_builder.js";
17
23
  export { BufferByteSource } from "./step/parsing/byte_source.js";
18
24
  export { InMemoryStepByteStore, WindowedStepBufferProvider, } from "./step/step_buffer_provider.js";
19
25
  export { serializeIndexSidecarFromColumns, deserializeIndexSidecarToColumns, sidecarMatchesSource, hashSource, } from "./step/parsing/index_sidecar.js";
@@ -0,0 +1,17 @@
1
+ /**
2
+ * `@bldrs-ai/conway/mem` — the general memory system (src/core/mem;
3
+ * design/new/streaming-federated-loader.md, resident-memory design).
4
+ *
5
+ * Domain-neutral primitives for explicitly budgeted residency:
6
+ * {@link ChunkedPool} (accounting-only fixed-chunk freelist),
7
+ * {@link SharedAssetPool} (refcounted instance⇄asset sharing), and
8
+ * {@link SharedByteBudget} (a byte budget shareable across consumers).
9
+ * The geometry narrowing over these lives in `@bldrs-ai/conway/demand`
10
+ * ({@link import('../core/geometry_tile_pool').GeometryTilePool}); other
11
+ * asset domains (textures, property blocks) are expected to narrow the
12
+ * same way.
13
+ */
14
+ export { ChunkedPool, ChunkSpan } from "../core/mem/chunked_pool.js";
15
+ export { SharedAssetPool } from "../core/mem/shared_asset_pool.js";
16
+ export { SharedByteBudget } from "../core/shared_byte_budget.js";
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mem/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * `@bldrs-ai/conway/mem` — the general memory system (src/core/mem;
3
+ * design/new/streaming-federated-loader.md, resident-memory design).
4
+ *
5
+ * Domain-neutral primitives for explicitly budgeted residency:
6
+ * {@link ChunkedPool} (accounting-only fixed-chunk freelist),
7
+ * {@link SharedAssetPool} (refcounted instance⇄asset sharing), and
8
+ * {@link SharedByteBudget} (a byte budget shareable across consumers).
9
+ * The geometry narrowing over these lives in `@bldrs-ai/conway/demand`
10
+ * ({@link import('../core/geometry_tile_pool').GeometryTilePool}); other
11
+ * asset domains (textures, property blocks) are expected to narrow the
12
+ * same way.
13
+ */
14
+ export { ChunkedPool } from "../core/mem/chunked_pool.js";
15
+ export { SharedAssetPool } from "../core/mem/shared_asset_pool.js";
16
+ export { SharedByteBudget } from "../core/shared_byte_budget.js";
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=namespace_surface.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namespace_surface.test.d.ts","sourceRoot":"","sources":["../../src/namespace_surface.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
1
+ // Pins the conway-native plane namespaces (`@bldrs-ai/conway/stream`,
2
+ // `/demand`, `/mem`): each module must expose its plane's key runtime
3
+ // symbols. Guards the packaging contract — a refactor that moves or
4
+ // renames an export breaks embedders through these subpaths first.
5
+ import { describe, expect, test } from "@jest/globals";
6
+ import * as demand from "./demand/index.js";
7
+ import * as mem from "./mem/index.js";
8
+ import * as stream from "./stream/index.js";
9
+ describe("plane namespace surface", () => {
10
+ test("stream exposes the fixed-memory open plane", () => {
11
+ expect(typeof stream.openStreamedIfcModel).toBe("function");
12
+ expect(typeof stream.BufferByteSource).toBe("function");
13
+ expect(typeof stream.InMemoryStepByteStore).toBe("function");
14
+ expect(typeof stream.WindowedStepBufferProvider).toBe("function");
15
+ expect(typeof stream.serializeIndexSidecarFromColumns).toBe("function");
16
+ expect(typeof stream.deserializeIndexSidecarToColumns).toBe("function");
17
+ expect(typeof stream.sidecarMatchesSource).toBe("function");
18
+ expect(typeof stream.hashSource).toBe("function");
19
+ expect(typeof stream.StreamingRecordDispatcher).toBe("function");
20
+ expect(typeof stream.IncrementalTypeIndex).toBe("function");
21
+ });
22
+ test("demand exposes the residency/extraction plane", () => {
23
+ expect(typeof demand.DemandGeometryQueue).toBe("function");
24
+ expect(typeof demand.DemandResidencyPump).toBe("function");
25
+ expect(typeof demand.GeometryTilePool).toBe("function");
26
+ expect(typeof demand.createWasmTileBackend).toBe("function");
27
+ expect(typeof demand.readGeometryTilePayload).toBe("function");
28
+ expect(typeof demand.IfcTileAssetExtractor).toBe("function");
29
+ });
30
+ test("mem exposes the general pool primitives", () => {
31
+ expect(typeof mem.ChunkedPool).toBe("function");
32
+ expect(typeof mem.SharedAssetPool).toBe("function");
33
+ expect(typeof mem.SharedByteBudget).toBe("function");
34
+ });
35
+ });