@bldrs-ai/conway 1.511.1441 → 1.512.1444

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 (39) hide show
  1. package/compiled/examples/browser-bundled.cjs +39 -3
  2. package/compiled/examples/cli-bundled.cjs +55 -10
  3. package/compiled/examples/cli-step-bundled.cjs +39 -3
  4. package/compiled/examples/validator-bundled.cjs +39 -3
  5. package/compiled/src/compat/web-ifc/ifc_api_proxy_ifc.d.ts +3 -2
  6. package/compiled/src/compat/web-ifc/ifc_api_proxy_ifc.d.ts.map +1 -1
  7. package/compiled/src/compat/web-ifc/ifc_api_proxy_ifc.js +23 -6
  8. package/compiled/src/compat/web-ifc/parse_aabb_imposter.d.ts +41 -0
  9. package/compiled/src/compat/web-ifc/parse_aabb_imposter.d.ts.map +1 -0
  10. package/compiled/src/compat/web-ifc/parse_aabb_imposter.js +161 -0
  11. package/compiled/src/compat/web-ifc/parse_aabb_imposter.test.d.ts +2 -0
  12. package/compiled/src/compat/web-ifc/parse_aabb_imposter.test.d.ts.map +1 -0
  13. package/compiled/src/compat/web-ifc/parse_aabb_imposter.test.js +39 -0
  14. package/compiled/src/compat/web-ifc/streamed_preview_channel.d.ts +13 -0
  15. package/compiled/src/compat/web-ifc/streamed_preview_channel.d.ts.map +1 -1
  16. package/compiled/src/core/progress.d.ts +8 -1
  17. package/compiled/src/core/progress.d.ts.map +1 -1
  18. package/compiled/src/core/progress.js +9 -4
  19. package/compiled/src/core/progress_log.d.ts +1 -0
  20. package/compiled/src/core/progress_log.d.ts.map +1 -1
  21. package/compiled/src/core/progress_log.js +7 -2
  22. package/compiled/src/core/progress_log.test.js +21 -0
  23. package/compiled/src/ifc/ifc_stream_open.test.js +16 -0
  24. package/compiled/src/step/parsing/step_parser.d.ts +2 -2
  25. package/compiled/src/step/parsing/step_parser.d.ts.map +1 -1
  26. package/compiled/src/step/parsing/step_parser.js +8 -2
  27. package/compiled/src/step/parsing/streaming_index_builder.d.ts +4 -4
  28. package/compiled/src/step/parsing/streaming_index_builder.d.ts.map +1 -1
  29. package/compiled/src/step/step_buffer_provider.d.ts +4 -3
  30. package/compiled/src/step/step_buffer_provider.d.ts.map +1 -1
  31. package/compiled/src/step/step_buffer_provider.js +4 -3
  32. package/compiled/src/step/step_entity_base.d.ts.map +1 -1
  33. package/compiled/src/step/step_entity_base.js +1 -0
  34. package/compiled/src/step/step_model_base.d.ts +9 -0
  35. package/compiled/src/step/step_model_base.d.ts.map +1 -1
  36. package/compiled/src/step/step_model_base.js +29 -0
  37. package/compiled/src/version/version.js +1 -1
  38. package/compiled/tsconfig.tsbuildinfo +1 -1
  39. package/package.json +1 -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.511.1441";
33
+ var versionString = "Conway v1.512.1444";
34
34
 
35
35
  // compiled/dependencies/conway-geom/interface/conway_geometry.js
36
36
  var wasmType = "";
@@ -2910,7 +2910,10 @@ var StepParser = class extends StepHeaderParser {
2910
2910
  if (!charws(SEMICOLON)) {
2911
2911
  return syntaxError();
2912
2912
  }
2913
- onRecordIndexed?.(topLevelCount, expressID, 0);
2913
+ {
2914
+ const recordLen = input2.address - startElement2;
2915
+ onRecordIndexed?.(topLevelCount, expressID, 0, input2.buffer.subarray(input2.cursor - recordLen, input2.cursor));
2916
+ }
2914
2917
  ++topLevelCount;
2915
2918
  pushEntry({
2916
2919
  address: startElement2,
@@ -3000,7 +3003,10 @@ var StepParser = class extends StepHeaderParser {
3000
3003
  if (!charws(SEMICOLON)) {
3001
3004
  return syntaxError();
3002
3005
  }
3003
- onRecordIndexed?.(topLevelCount, expressID, foundItem);
3006
+ {
3007
+ const recordLen = input2.address - startElement;
3008
+ onRecordIndexed?.(topLevelCount, expressID, foundItem, input2.buffer.subarray(input2.cursor - recordLen, input2.cursor));
3009
+ }
3004
3010
  ++topLevelCount;
3005
3011
  pushEntry({
3006
3012
  address: startElement,
@@ -5767,6 +5773,35 @@ var StepModelBase = class {
5767
5773
  }
5768
5774
  this.bufferProvider_.unpinRange?.(this.address_[localID], this.length_[localID]);
5769
5775
  }
5776
+ /**
5777
+ * Drop captured source-window views on `localIDs` so the LRU can
5778
+ * evict those chunks. Vtables stay — `acquire` of the same
5779
+ * `(address, length)` is at a stable base. The next
5780
+ * `ensureResident` + field read rematerialises the view.
5781
+ *
5782
+ * @param localIDs Records whose `buffer` views to drop.
5783
+ */
5784
+ releaseSourceViews(localIDs) {
5785
+ if (!this.isSourceExternal) {
5786
+ return;
5787
+ }
5788
+ for (const localID of localIDs) {
5789
+ if (localID >= this.count_) {
5790
+ continue;
5791
+ }
5792
+ const item = this.complexEntries_?.get(localID) ?? this.descriptorCache_[localID];
5793
+ if (item === void 0) {
5794
+ continue;
5795
+ }
5796
+ item.buffer = void 0;
5797
+ if (item.multiMapping !== void 0) {
5798
+ for (const mapped of item.multiMapping) {
5799
+ mapped.buffer = void 0;
5800
+ }
5801
+ }
5802
+ }
5803
+ releaseScratchParsingBuffer();
5804
+ }
5770
5805
  /**
5771
5806
  * Unpin every local ID in `localIDs` (best-effort; missing IDs are
5772
5807
  * ignored). Use after {@link ensureResidentClosureByLocalID}, which
@@ -11342,6 +11377,7 @@ var StepEntityBase = class {
11342
11377
  * @return {Uint8Array} The buffer for this.
11343
11378
  */
11344
11379
  get buffer() {
11380
+ this.guaranteeBuffer();
11345
11381
  return this.internalReference_.buffer;
11346
11382
  }
11347
11383
  /**
@@ -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.511.1441";
14968
+ var versionString = "Conway v1.512.1444";
14969
14969
 
14970
14970
  // compiled/dependencies/conway-geom/interface/conway_geometry.js
14971
14971
  function pThreadsAllowed() {
@@ -16397,13 +16397,15 @@ var ProgressTracker = class {
16397
16397
  * Report progress within the current phase; throttled.
16398
16398
  *
16399
16399
  * @param completed Units completed so far.
16400
+ * @param extras Optional extras (window residency) merged into the event.
16400
16401
  */
16401
- update(completed) {
16402
+ update(completed, extras) {
16403
+ this.extras_ = extras;
16402
16404
  const now = Date.now();
16403
16405
  if (now - this.lastEmitTime < this.minIntervalMs) {
16404
16406
  return;
16405
16407
  }
16406
- this.emit(completed, now);
16408
+ this.emit(completed, now, extras);
16407
16409
  }
16408
16410
  /**
16409
16411
  * End the current phase, emitting an unthrottled final event with
@@ -16412,16 +16414,18 @@ var ProgressTracker = class {
16412
16414
  * @param completed Final completed units (defaults to the phase total).
16413
16415
  */
16414
16416
  endPhase(completed) {
16415
- this.emit(completed ?? this.total_ ?? 0);
16417
+ this.emit(completed ?? this.total_ ?? 0, Date.now(), this.extras_);
16416
16418
  this.phase_ = void 0;
16419
+ this.extras_ = void 0;
16417
16420
  }
16418
16421
  /**
16419
16422
  * Materialize and forward an event now, bypassing the throttle.
16420
16423
  *
16421
16424
  * @param completed Units completed so far.
16422
16425
  * @param now Current time in ms (defaults to Date.now()).
16426
+ * @param extras Optional extras merged into the event.
16423
16427
  */
16424
- emit(completed, now = Date.now()) {
16428
+ emit(completed, now = Date.now(), extras) {
16425
16429
  if (this.phase_ === void 0) {
16426
16430
  return;
16427
16431
  }
@@ -16433,7 +16437,8 @@ var ProgressTracker = class {
16433
16437
  total,
16434
16438
  unit: this.unit_,
16435
16439
  elapsedMs: now - this.startTime,
16436
- memoryMb: Memory.usedHeapMb()
16440
+ memoryMb: Memory.usedHeapMb(),
16441
+ residentSourceMb: extras?.residentSourceMb
16437
16442
  });
16438
16443
  }
16439
16444
  };
@@ -18741,7 +18746,10 @@ var StepParser = class extends StepHeaderParser {
18741
18746
  if (!charws(SEMICOLON)) {
18742
18747
  return syntaxError();
18743
18748
  }
18744
- onRecordIndexed?.(topLevelCount, expressID, 0);
18749
+ {
18750
+ const recordLen = input.address - startElement2;
18751
+ onRecordIndexed?.(topLevelCount, expressID, 0, input.buffer.subarray(input.cursor - recordLen, input.cursor));
18752
+ }
18745
18753
  ++topLevelCount;
18746
18754
  pushEntry({
18747
18755
  address: startElement2,
@@ -18831,7 +18839,10 @@ var StepParser = class extends StepHeaderParser {
18831
18839
  if (!charws(SEMICOLON)) {
18832
18840
  return syntaxError();
18833
18841
  }
18834
- onRecordIndexed?.(topLevelCount, expressID, foundItem);
18842
+ {
18843
+ const recordLen = input.address - startElement;
18844
+ onRecordIndexed?.(topLevelCount, expressID, foundItem, input.buffer.subarray(input.cursor - recordLen, input.cursor));
18845
+ }
18835
18846
  ++topLevelCount;
18836
18847
  pushEntry({
18837
18848
  address: startElement,
@@ -21645,6 +21656,35 @@ var StepModelBase = class {
21645
21656
  }
21646
21657
  this.bufferProvider_.unpinRange?.(this.address_[localID], this.length_[localID]);
21647
21658
  }
21659
+ /**
21660
+ * Drop captured source-window views on `localIDs` so the LRU can
21661
+ * evict those chunks. Vtables stay — `acquire` of the same
21662
+ * `(address, length)` is at a stable base. The next
21663
+ * `ensureResident` + field read rematerialises the view.
21664
+ *
21665
+ * @param localIDs Records whose `buffer` views to drop.
21666
+ */
21667
+ releaseSourceViews(localIDs) {
21668
+ if (!this.isSourceExternal) {
21669
+ return;
21670
+ }
21671
+ for (const localID of localIDs) {
21672
+ if (localID >= this.count_) {
21673
+ continue;
21674
+ }
21675
+ const item = this.complexEntries_?.get(localID) ?? this.descriptorCache_[localID];
21676
+ if (item === void 0) {
21677
+ continue;
21678
+ }
21679
+ item.buffer = void 0;
21680
+ if (item.multiMapping !== void 0) {
21681
+ for (const mapped of item.multiMapping) {
21682
+ mapped.buffer = void 0;
21683
+ }
21684
+ }
21685
+ }
21686
+ releaseScratchParsingBuffer();
21687
+ }
21648
21688
  /**
21649
21689
  * Unpin every local ID in `localIDs` (best-effort; missing IDs are
21650
21690
  * ignored). Use after {@link ensureResidentClosureByLocalID}, which
@@ -27220,6 +27260,7 @@ var StepEntityBase = class {
27220
27260
  * @return {Uint8Array} The buffer for this.
27221
27261
  */
27222
27262
  get buffer() {
27263
+ this.guaranteeBuffer();
27223
27264
  return this.internalReference_.buffer;
27224
27265
  }
27225
27266
  /**
@@ -93385,12 +93426,13 @@ function heapDeltaSuffix(state) {
93385
93426
  function formatStageLine(state, final) {
93386
93427
  const duration = state.lastElapsedMs - state.startElapsedMs;
93387
93428
  const heap = heapDeltaSuffix(state);
93429
+ const window2 = state.residentSourceMb !== void 0 ? `, window=${formatMb(state.residentSourceMb)} MB` : "";
93388
93430
  const determinate = state.percent !== void 0;
93389
93431
  if (final && !(determinate && state.percent < PERCENT)) {
93390
- return `${state.label}: ${formatSeconds(duration)}${heap}`;
93432
+ return `${state.label}: ${formatSeconds(duration)}${heap}${window2}`;
93391
93433
  }
93392
93434
  const bar = formatBar(determinate ? state.percent : void 0);
93393
- return `${state.label} ${bar} ${formatSeconds(duration)}${heap}`;
93435
+ return `${state.label} ${bar} ${formatSeconds(duration)}${heap}${window2}`;
93394
93436
  }
93395
93437
  var LoadLogAccumulator = class {
93396
93438
  constructor() {
@@ -93439,6 +93481,9 @@ var LoadLogAccumulator = class {
93439
93481
  current.startHeapMb ??= event.memoryMb;
93440
93482
  current.lastHeapMb = event.memoryMb;
93441
93483
  }
93484
+ if (event.residentSourceMb !== void 0) {
93485
+ current.residentSourceMb = event.residentSourceMb;
93486
+ }
93442
93487
  if (event.total !== void 0 && event.total > 0) {
93443
93488
  current.percent = event.completed / event.total * PERCENT;
93444
93489
  }
@@ -15943,7 +15943,7 @@ var ParsingBuffer = class {
15943
15943
  };
15944
15944
 
15945
15945
  // compiled/src/version/version.js
15946
- var versionString = "Conway v1.511.1441";
15946
+ var versionString = "Conway v1.512.1444";
15947
15947
 
15948
15948
  // compiled/dependencies/conway-geom/interface/conway_geometry.js
15949
15949
  function pThreadsAllowed() {
@@ -18649,7 +18649,10 @@ var StepParser = class extends StepHeaderParser {
18649
18649
  if (!charws(SEMICOLON)) {
18650
18650
  return syntaxError();
18651
18651
  }
18652
- onRecordIndexed?.(topLevelCount, expressID, 0);
18652
+ {
18653
+ const recordLen = input.address - startElement2;
18654
+ onRecordIndexed?.(topLevelCount, expressID, 0, input.buffer.subarray(input.cursor - recordLen, input.cursor));
18655
+ }
18653
18656
  ++topLevelCount;
18654
18657
  pushEntry({
18655
18658
  address: startElement2,
@@ -18739,7 +18742,10 @@ var StepParser = class extends StepHeaderParser {
18739
18742
  if (!charws(SEMICOLON)) {
18740
18743
  return syntaxError();
18741
18744
  }
18742
- onRecordIndexed?.(topLevelCount, expressID, foundItem);
18745
+ {
18746
+ const recordLen = input.address - startElement;
18747
+ onRecordIndexed?.(topLevelCount, expressID, foundItem, input.buffer.subarray(input.cursor - recordLen, input.cursor));
18748
+ }
18743
18749
  ++topLevelCount;
18744
18750
  pushEntry({
18745
18751
  address: startElement,
@@ -21389,6 +21395,35 @@ var StepModelBase = class {
21389
21395
  }
21390
21396
  this.bufferProvider_.unpinRange?.(this.address_[localID], this.length_[localID]);
21391
21397
  }
21398
+ /**
21399
+ * Drop captured source-window views on `localIDs` so the LRU can
21400
+ * evict those chunks. Vtables stay — `acquire` of the same
21401
+ * `(address, length)` is at a stable base. The next
21402
+ * `ensureResident` + field read rematerialises the view.
21403
+ *
21404
+ * @param localIDs Records whose `buffer` views to drop.
21405
+ */
21406
+ releaseSourceViews(localIDs) {
21407
+ if (!this.isSourceExternal) {
21408
+ return;
21409
+ }
21410
+ for (const localID of localIDs) {
21411
+ if (localID >= this.count_) {
21412
+ continue;
21413
+ }
21414
+ const item = this.complexEntries_?.get(localID) ?? this.descriptorCache_[localID];
21415
+ if (item === void 0) {
21416
+ continue;
21417
+ }
21418
+ item.buffer = void 0;
21419
+ if (item.multiMapping !== void 0) {
21420
+ for (const mapped of item.multiMapping) {
21421
+ mapped.buffer = void 0;
21422
+ }
21423
+ }
21424
+ }
21425
+ releaseScratchParsingBuffer();
21426
+ }
21392
21427
  /**
21393
21428
  * Unpin every local ID in `localIDs` (best-effort; missing IDs are
21394
21429
  * ignored). Use after {@link ensureResidentClosureByLocalID}, which
@@ -23147,6 +23182,7 @@ var StepEntityBase = class {
23147
23182
  * @return {Uint8Array} The buffer for this.
23148
23183
  */
23149
23184
  get buffer() {
23185
+ this.guaranteeBuffer();
23150
23186
  return this.internalReference_.buffer;
23151
23187
  }
23152
23188
  /**
@@ -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.511.1441";
947
+ var versionString = "Conway v1.512.1444";
948
948
 
949
949
  // compiled/dependencies/conway-geom/interface/conway_geometry.js
950
950
  var wasmType = "";
@@ -3824,7 +3824,10 @@ var StepParser = class extends StepHeaderParser {
3824
3824
  if (!charws(SEMICOLON)) {
3825
3825
  return syntaxError();
3826
3826
  }
3827
- onRecordIndexed?.(topLevelCount, expressID, 0);
3827
+ {
3828
+ const recordLen = input.address - startElement2;
3829
+ onRecordIndexed?.(topLevelCount, expressID, 0, input.buffer.subarray(input.cursor - recordLen, input.cursor));
3830
+ }
3828
3831
  ++topLevelCount;
3829
3832
  pushEntry({
3830
3833
  address: startElement2,
@@ -3914,7 +3917,10 @@ var StepParser = class extends StepHeaderParser {
3914
3917
  if (!charws(SEMICOLON)) {
3915
3918
  return syntaxError();
3916
3919
  }
3917
- onRecordIndexed?.(topLevelCount, expressID, foundItem);
3920
+ {
3921
+ const recordLen = input.address - startElement;
3922
+ onRecordIndexed?.(topLevelCount, expressID, foundItem, input.buffer.subarray(input.cursor - recordLen, input.cursor));
3923
+ }
3918
3924
  ++topLevelCount;
3919
3925
  pushEntry({
3920
3926
  address: startElement,
@@ -5765,6 +5771,35 @@ var StepModelBase = class {
5765
5771
  }
5766
5772
  this.bufferProvider_.unpinRange?.(this.address_[localID], this.length_[localID]);
5767
5773
  }
5774
+ /**
5775
+ * Drop captured source-window views on `localIDs` so the LRU can
5776
+ * evict those chunks. Vtables stay — `acquire` of the same
5777
+ * `(address, length)` is at a stable base. The next
5778
+ * `ensureResident` + field read rematerialises the view.
5779
+ *
5780
+ * @param localIDs Records whose `buffer` views to drop.
5781
+ */
5782
+ releaseSourceViews(localIDs) {
5783
+ if (!this.isSourceExternal) {
5784
+ return;
5785
+ }
5786
+ for (const localID of localIDs) {
5787
+ if (localID >= this.count_) {
5788
+ continue;
5789
+ }
5790
+ const item = this.complexEntries_?.get(localID) ?? this.descriptorCache_[localID];
5791
+ if (item === void 0) {
5792
+ continue;
5793
+ }
5794
+ item.buffer = void 0;
5795
+ if (item.multiMapping !== void 0) {
5796
+ for (const mapped of item.multiMapping) {
5797
+ mapped.buffer = void 0;
5798
+ }
5799
+ }
5800
+ }
5801
+ releaseScratchParsingBuffer();
5802
+ }
5768
5803
  /**
5769
5804
  * Unpin every local ID in `localIDs` (best-effort; missing IDs are
5770
5805
  * ignored). Use after {@link ensureResidentClosureByLocalID}, which
@@ -11340,6 +11375,7 @@ var StepEntityBase = class {
11340
11375
  * @return {Uint8Array} The buffer for this.
11341
11376
  */
11342
11377
  get buffer() {
11378
+ this.guaranteeBuffer();
11343
11379
  return this.internalReference_.buffer;
11344
11380
  }
11345
11381
  /**
@@ -253,8 +253,9 @@ export declare class IfcApiProxyIfc implements IfcApiModelPassthrough {
253
253
  /**
254
254
  * Windowed-from-birth twin of parseColumnarAndExtractAsync: the
255
255
  * source stays in `store`, parse windows are filled through it, and
256
- * the model never holds a resident copy. Preview-during-parse is
257
- * skipped (that channel needs a resident prefix). Deferred opens
256
+ * the model never holds a resident copy. The full prefix-extract
257
+ * preview channel is skipped (it needs a resident prefix); a sparse
258
+ * AABB imposter rides onRecordIndexed instead. Deferred opens
258
259
  * page prep closures before prepareDemandExtraction; non-deferred
259
260
  * opens drain the demand pump with per-product residency.
260
261
  *
@@ -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":"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,EAA8B,MAAM,iCAAiC,CAAA;AACnG,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAA;AAGrC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAgBrD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAE3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAA;AAyBzE;;;;;GAKG;AACH,UAAU,iBAAiB;IACzB,UAAU,EAAE,cAAc,CAAA;IAC1B,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;uEACmE;IACnE,yBAAyB,CAAC,EAAE,MAAM,EAAE,CAAA;IACpC,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;IACxB,wEAAwE;IACxE,OAAO,CAAC,EAAE,eAAe,CAAA;CAC1B;AAED;;GAEG;AACH,qBAAa,cAAe,YAAW,sBAAsB;aA2GvC,OAAO,EAAE,MAAM;IAE/B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IA5G9B,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;IAE1B,yEAAyE;IACzE,OAAO,CAAC,eAAe,CAAuB;IAE9C,iEAAiE;IACjE,OAAO,CAAC,aAAa,CAAiB;IAEtC,4EAA4E;IAC5E,OAAO,CAAC,gBAAgB,CAAC,CAAiB;IAE1C,yEAAyE;IACzE,OAAO,CAAC,qBAAqB,CAAiB;IAE9C,sEAAsE;IACtE,OAAO,CAAC,eAAe,CAAC,CAAU;IAElC;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA4B;IAElE,sEAAsE;IACtE,OAAO,CAAC,aAAa,CAAI;IAEzB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,iBAAiB,CAAC,CAAoB;IAE9C,qEAAqE;IACrE,OAAO,CAAC,uBAAuB,CAAI;IAEnC;;;;;;;;;OASG;IACH,OAAO,CAAC,mBAAmB,CAAC,CAAU;IAEtC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,8BAA8B,CAAiB;IAEvD,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;IAuKnC;;;;;;;;;;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;;;;;;;;;;;;;;;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;;;;;;;;;;;OAWG;WACiB,eAAe,CAC/B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,qBAAqB,EAC5B,UAAU,EAAE,GAAG,EACf,QAAQ,CAAC,EAAE,cAAc,GAAI,OAAO,CAAC,cAAc,CAAC;IASxD;;;;;;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;IAyJjD;;;;;;;;;;;;;;OAcG;mBACkB,sBAAsB;IA2J3C;;;;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;IAetC;;;;;;OAMG;IACH,sBAAsB,IAAI,KAAK,CAAC,MAAM,CAAC;IAIvC;;;;;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;;;;;;;;;;;;;OAaG;IACH,eAAe,IAAI,OAAO;IAoC1B;0EACsE;IACtE,OAAO,CAAC,SAAS,CAAQ;IAEzB;;;;;;;;;;;;;;;;;OAiBG;IACH,oBAAoB,CAChB,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,GAAI;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAC;IAmBrF;;;;;;;;;OASG;IACG,yBAAyB,CAC3B,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,GACvC,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAC,CAAC;IA2FnD;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAsC9B;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;IAwE1B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,gBAAgB;IAmLxB;;;;OAIG;IACH,eAAe,CAAE,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI;IAqLvD;;;;;OAKG;IACH,wBAAwB,CACpB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EACpB,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI;IAgK1C;;;;OAIG;IACH,eAAe,IAAI,MAAM,CAAC,QAAQ,CAAC;IA2MnC;;;;;OAKG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ;IAqDxC;;;;;OAKG;IACH,4BAA4B,IAAI,IAAI;CAwBrC"}
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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"}
@@ -14,6 +14,7 @@ import { BufferByteSource, StoreByteSource } from "../../step/parsing/byte_sourc
14
14
  import { buildIndexStreamingAsync, buildColumnarIndexStreamingAsync, } from "../../step/parsing/streaming_index_builder.js";
15
15
  import { ColumnarIndexSink } from "../../step/parsing/columnar_index.js";
16
16
  import { ifcPreviewAdapter, StreamedPreviewChannel, } from "./streamed_preview_channel.js";
17
+ import { makeParseAabbImposter } from "./parse_aabb_imposter.js";
17
18
  import { ExtractResult } from "../../index.js";
18
19
  import { IfcGeometryExtraction } from "../../ifc/ifc_geometry_extraction.js";
19
20
  import { ParseResult } from "../../index.js";
@@ -36,6 +37,8 @@ const STREAMED_PARSE_POOL_BYTES = 1024 * 1024;
36
37
  * is scratch — it does not stay resident after parse. */
37
38
  // eslint-disable-next-line no-magic-numbers
38
39
  const STORE_PARSE_POOL_BYTES = 16 * 1024 * 1024;
40
+ // eslint-disable-next-line no-magic-numbers
41
+ const BYTES_PER_MIB = 1024 * 1024;
39
42
  /**
40
43
  * The proxy for IFC from the shim.
41
44
  */
@@ -594,8 +597,9 @@ export class IfcApiProxyIfc {
594
597
  /**
595
598
  * Windowed-from-birth twin of parseColumnarAndExtractAsync: the
596
599
  * source stays in `store`, parse windows are filled through it, and
597
- * the model never holds a resident copy. Preview-during-parse is
598
- * skipped (that channel needs a resident prefix). Deferred opens
600
+ * the model never holds a resident copy. The full prefix-extract
601
+ * preview channel is skipped (it needs a resident prefix); a sparse
602
+ * AABB imposter rides onRecordIndexed instead. Deferred opens
599
603
  * page prep closures before prepareDemandExtraction; non-deferred
600
604
  * opens drain the demand pump with per-product residency.
601
605
  *
@@ -625,7 +629,9 @@ export class IfcApiProxyIfc {
625
629
  const parseTick = tracker !== void 0 ?
626
630
  (cursorBytes) => tracker.update(cursorBytes) : void 0;
627
631
  const parseStartTime = Date.now();
628
- const { result, columns } = await buildColumnarIndexStreamingAsync(new StoreByteSource(store), parser, STORE_PARSE_POOL_BYTES, void 0, parseTick);
632
+ const onRecordIndexed = settings?.ON_PREVIEW_MESH !== void 0 ?
633
+ makeParseAabbImposter(settings.ON_PREVIEW_MESH) : void 0;
634
+ const { result, columns } = await buildColumnarIndexStreamingAsync(new StoreByteSource(store), parser, STORE_PARSE_POOL_BYTES, onRecordIndexed, parseTick);
629
635
  const parseEndTime = Date.now();
630
636
  tracker?.endPhase(fileSize);
631
637
  if (result !== ParseResult.COMPLETE) {
@@ -642,6 +648,7 @@ export class IfcApiProxyIfc {
642
648
  conwayGeometry.prepareDemandExtraction();
643
649
  }
644
650
  finally {
651
+ model.releaseSourceViews(prepPins);
645
652
  model.unpinLocalIDs(prepPins);
646
653
  }
647
654
  if (deferGeometry) {
@@ -676,10 +683,13 @@ export class IfcApiProxyIfc {
676
683
  `${error instanceof Error ? error.message : String(error)}`);
677
684
  }
678
685
  finally {
686
+ model.releaseSourceViews(pins);
679
687
  model.unpinLocalIDs(pins);
680
688
  }
681
689
  ++completed;
682
- tracker?.update(completed);
690
+ tracker?.update(completed, {
691
+ residentSourceMb: model.residentSourceBytes / BYTES_PER_MIB,
692
+ });
683
693
  }
684
694
  for (const relAggregate of model.types(IfcRelAggregates)) {
685
695
  const pins = await conwayGeometry.ensureResidentForAggregateExtract(relAggregate);
@@ -691,10 +701,13 @@ export class IfcApiProxyIfc {
691
701
  `${error instanceof Error ? error.message : String(error)}`);
692
702
  }
693
703
  finally {
704
+ model.releaseSourceViews(pins);
694
705
  model.unpinLocalIDs(pins);
695
706
  }
696
707
  ++completed;
697
- tracker?.update(completed);
708
+ tracker?.update(completed, {
709
+ residentSourceMb: model.residentSourceBytes / BYTES_PER_MIB,
710
+ });
698
711
  }
699
712
  const endTime = Date.now();
700
713
  tracker?.endPhase();
@@ -1296,6 +1309,7 @@ export class IfcApiProxyIfc {
1296
1309
  `${error instanceof Error ? error.message : String(error)}`);
1297
1310
  }
1298
1311
  finally {
1312
+ this.model[0].releaseSourceViews(pins);
1299
1313
  this.model[0].unpinLocalIDs(pins);
1300
1314
  }
1301
1315
  }
@@ -1314,6 +1328,7 @@ export class IfcApiProxyIfc {
1314
1328
  `${error instanceof Error ? error.message : String(error)}`);
1315
1329
  }
1316
1330
  finally {
1331
+ this.model[0].releaseSourceViews(pins);
1317
1332
  this.model[0].unpinLocalIDs(pins);
1318
1333
  }
1319
1334
  }
@@ -1323,13 +1338,15 @@ export class IfcApiProxyIfc {
1323
1338
  }
1324
1339
  const remaining = (products.length - this.demandCursor_) +
1325
1340
  (aggregates.length - this.demandAggregatesCursor_);
1341
+ const windowMb = this.model[0].residentSourceBytes / BYTES_PER_MIB;
1326
1342
  if (this.progressTracker_ !== void 0) {
1327
1343
  const completed = totalWork - remaining;
1328
1344
  if (remaining === 0) {
1345
+ this.progressTracker_.update(completed, { residentSourceMb: windowMb });
1329
1346
  this.progressTracker_.endPhase(totalWork);
1330
1347
  }
1331
1348
  else {
1332
- this.progressTracker_.update(completed);
1349
+ this.progressTracker_.update(completed, { residentSourceMb: windowMb });
1333
1350
  }
1334
1351
  }
1335
1352
  return { extracted, remaining };
@@ -0,0 +1,41 @@
1
+ import type { PreviewMeshPayload } from "./streamed_preview_channel.js";
2
+ export interface Aabb3 {
3
+ min: [
4
+ number,
5
+ number,
6
+ number
7
+ ];
8
+ max: [
9
+ number,
10
+ number,
11
+ number
12
+ ];
13
+ }
14
+ /**
15
+ * Min/max of every STEP real triple in `bytes`. Used for
16
+ * IfcCartesianPointList3D bodies: the numbers live in the record, so a
17
+ * store-backed parse can emit an AABB without hydrating the entity or
18
+ * paging a closure.
19
+ *
20
+ * @param bytes The record's source bytes (window view; do not retain).
21
+ * @return {Aabb3 | null} Bounds, or null if fewer than MIN_POINTS triples.
22
+ */
23
+ export declare function aabbFromStepReals(bytes: Uint8Array): Aabb3 | null;
24
+ /**
25
+ * Column-major 4x4: IFC Z-up box → Y-up, translated to the box centre
26
+ * and scaled to its size. Share instances a shared unit cube with this.
27
+ *
28
+ * @param aabb The IFC-space bounds.
29
+ * @return {number[]} 16-element matrix.
30
+ */
31
+ export declare function aabbToPreviewMatrix(aabb: Aabb3): number[];
32
+ /**
33
+ * Stateful filter: every IMPOSTER_STRIDE-th IfcCartesianPointList3D
34
+ * becomes a tiny preview payload. The view `recordBytes` is into the
35
+ * sliding parse window; do not retain it.
36
+ *
37
+ * @param onMesh Preview consumer (Share's ON_PREVIEW_MESH).
38
+ * @return A callback matching onRecordIndexed.
39
+ */
40
+ export declare function makeParseAabbImposter(onMesh: (mesh: PreviewMeshPayload) => void): (localID: number, expressID: number, typeID: number | undefined, recordBytes?: Uint8Array) => void;
41
+ //# sourceMappingURL=parse_aabb_imposter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse_aabb_imposter.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/parse_aabb_imposter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAoBpE,MAAM,WAAW,KAAK;IACpB,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAC9B;AAGD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAE,KAAK,EAAE,UAAU,GAAI,KAAK,GAAG,IAAI,CA8EnE;AAGD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAE,IAAI,EAAE,KAAK,GAAI,MAAM,EAAE,CAgB3D;AAGD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACjC,MAAM,EAAE,CAAE,IAAI,EAAE,kBAAkB,KAAM,IAAI,GAC5C,CAAE,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,WAAW,CAAC,EAAE,UAAU,KAAM,IAAI,CAoCvC"}