@bldrs-ai/conway 1.512.1444 → 1.513.1447

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.
@@ -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.512.1444";
33
+ var versionString = "Conway v1.513.1447";
34
34
 
35
35
  // compiled/dependencies/conway-geom/interface/conway_geometry.js
36
36
  var wasmType = "";
@@ -5538,6 +5538,9 @@ var StepModelBase = class {
5538
5538
  if (element.vtableIndex === void 0 && !this.populateVtableEntryRaw(element)) {
5539
5539
  return void 0;
5540
5540
  }
5541
+ if (element.buffer === void 0) {
5542
+ this.populateBufferEntry(localID);
5543
+ }
5541
5544
  const vtable = element.vtable;
5542
5545
  const buffer = element.buffer;
5543
5546
  if (vtable === void 0 || buffer === void 0 || offset >= (element.vtableCount ?? 0)) {
@@ -5607,6 +5610,11 @@ var StepModelBase = class {
5607
5610
  }
5608
5611
  const element = this.entry(localID);
5609
5612
  element.buffer = this.bufferProvider_.acquire(element.address, element.length).buffer;
5613
+ if (element.multiMapping !== void 0) {
5614
+ for (const mapped of element.multiMapping) {
5615
+ mapped.buffer = this.bufferProvider_.acquire(mapped.address, mapped.length).buffer;
5616
+ }
5617
+ }
5610
5618
  }
5611
5619
  /**
5612
5620
  * Get the size in bytes of the backing buffer for this.
@@ -5727,24 +5735,39 @@ var StepModelBase = class {
5727
5735
  if (!this.isSourceExternal) {
5728
5736
  return seen;
5729
5737
  }
5730
- const stack = [localID];
5738
+ const frontier = [];
5739
+ const enqueue = (id) => {
5740
+ if (id < this.count_ && !seen.has(id)) {
5741
+ frontier.push(id);
5742
+ }
5743
+ };
5744
+ enqueue(localID);
5731
5745
  if (extraLocalIDs !== void 0) {
5732
5746
  for (const extra of extraLocalIDs) {
5733
- stack.push(extra);
5747
+ enqueue(extra);
5734
5748
  }
5735
5749
  }
5736
- while (stack.length > 0) {
5737
- const id = stack.pop();
5738
- if (seen.has(id) || id >= this.count_) {
5739
- continue;
5750
+ while (frontier.length > 0) {
5751
+ const wave = [];
5752
+ for (const id of frontier) {
5753
+ if (seen.has(id) || id >= this.count_) {
5754
+ continue;
5755
+ }
5756
+ seen.add(id);
5757
+ this.pinByLocalID(id);
5758
+ wave.push(id);
5759
+ }
5760
+ frontier.length = 0;
5761
+ if (wave.length === 0) {
5762
+ break;
5740
5763
  }
5741
- seen.add(id);
5742
- await this.ensureResidentByLocalID(id);
5743
- this.pinByLocalID(id);
5744
- for (const expressID of this.scanRecordRefs_(id)) {
5745
- const referenced = this.expressIDMap_.get(expressID);
5746
- if (referenced !== void 0 && !seen.has(referenced)) {
5747
- stack.push(referenced);
5764
+ await Promise.all(wave.map((id) => this.ensureResidentByLocalID(id)));
5765
+ for (const id of wave) {
5766
+ for (const expressID of this.scanRecordRefs_(id)) {
5767
+ const referenced = this.expressIDMap_.get(expressID);
5768
+ if (referenced !== void 0 && !seen.has(referenced)) {
5769
+ frontier.push(referenced);
5770
+ }
5748
5771
  }
5749
5772
  }
5750
5773
  }
@@ -11265,6 +11288,7 @@ var StepEntityBase = class {
11265
11288
  */
11266
11289
  extractParseBuffer(offset, baseOffset, depth, result, module2, optional) {
11267
11290
  offset -= this.multiReference_ !== void 0 ? baseOffset : 0;
11291
+ this.guaranteeBuffer();
11268
11292
  const internalReference = this.guaranteeVTable(depth);
11269
11293
  if (offset >= internalReference.vtableCount) {
11270
11294
  throw new Error("Couldn't read field due to too few fields in record");
@@ -11468,6 +11492,9 @@ var StepEntityBase = class {
11468
11492
  throw new Error("Entity does not have matching table entry to read from model");
11469
11493
  }
11470
11494
  }
11495
+ if (classReference.buffer === void 0) {
11496
+ this.model.populateBufferEntry(this.localID);
11497
+ }
11471
11498
  this.internalReference_.buffer = classReference.buffer;
11472
11499
  return classReference;
11473
11500
  }
@@ -11478,6 +11505,9 @@ var StepEntityBase = class {
11478
11505
  throw new Error("Entity does not have matching table entry to read from model");
11479
11506
  }
11480
11507
  }
11508
+ if (internalReference.buffer === void 0) {
11509
+ this.guaranteeBuffer();
11510
+ }
11481
11511
  return internalReference;
11482
11512
  }
11483
11513
  /**
@@ -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.512.1444";
14968
+ var versionString = "Conway v1.513.1447";
14969
14969
 
14970
14970
  // compiled/dependencies/conway-geom/interface/conway_geometry.js
14971
14971
  function pThreadsAllowed() {
@@ -21421,6 +21421,9 @@ var StepModelBase = class {
21421
21421
  if (element.vtableIndex === void 0 && !this.populateVtableEntryRaw(element)) {
21422
21422
  return void 0;
21423
21423
  }
21424
+ if (element.buffer === void 0) {
21425
+ this.populateBufferEntry(localID);
21426
+ }
21424
21427
  const vtable = element.vtable;
21425
21428
  const buffer = element.buffer;
21426
21429
  if (vtable === void 0 || buffer === void 0 || offset >= (element.vtableCount ?? 0)) {
@@ -21490,6 +21493,11 @@ var StepModelBase = class {
21490
21493
  }
21491
21494
  const element = this.entry(localID);
21492
21495
  element.buffer = this.bufferProvider_.acquire(element.address, element.length).buffer;
21496
+ if (element.multiMapping !== void 0) {
21497
+ for (const mapped of element.multiMapping) {
21498
+ mapped.buffer = this.bufferProvider_.acquire(mapped.address, mapped.length).buffer;
21499
+ }
21500
+ }
21493
21501
  }
21494
21502
  /**
21495
21503
  * Get the size in bytes of the backing buffer for this.
@@ -21610,24 +21618,39 @@ var StepModelBase = class {
21610
21618
  if (!this.isSourceExternal) {
21611
21619
  return seen;
21612
21620
  }
21613
- const stack = [localID];
21621
+ const frontier = [];
21622
+ const enqueue = (id) => {
21623
+ if (id < this.count_ && !seen.has(id)) {
21624
+ frontier.push(id);
21625
+ }
21626
+ };
21627
+ enqueue(localID);
21614
21628
  if (extraLocalIDs !== void 0) {
21615
21629
  for (const extra of extraLocalIDs) {
21616
- stack.push(extra);
21630
+ enqueue(extra);
21617
21631
  }
21618
21632
  }
21619
- while (stack.length > 0) {
21620
- const id = stack.pop();
21621
- if (seen.has(id) || id >= this.count_) {
21622
- continue;
21633
+ while (frontier.length > 0) {
21634
+ const wave = [];
21635
+ for (const id of frontier) {
21636
+ if (seen.has(id) || id >= this.count_) {
21637
+ continue;
21638
+ }
21639
+ seen.add(id);
21640
+ this.pinByLocalID(id);
21641
+ wave.push(id);
21642
+ }
21643
+ frontier.length = 0;
21644
+ if (wave.length === 0) {
21645
+ break;
21623
21646
  }
21624
- seen.add(id);
21625
- await this.ensureResidentByLocalID(id);
21626
- this.pinByLocalID(id);
21627
- for (const expressID of this.scanRecordRefs_(id)) {
21628
- const referenced = this.expressIDMap_.get(expressID);
21629
- if (referenced !== void 0 && !seen.has(referenced)) {
21630
- stack.push(referenced);
21647
+ await Promise.all(wave.map((id) => this.ensureResidentByLocalID(id)));
21648
+ for (const id of wave) {
21649
+ for (const expressID of this.scanRecordRefs_(id)) {
21650
+ const referenced = this.expressIDMap_.get(expressID);
21651
+ if (referenced !== void 0 && !seen.has(referenced)) {
21652
+ frontier.push(referenced);
21653
+ }
21631
21654
  }
21632
21655
  }
21633
21656
  }
@@ -27148,6 +27171,7 @@ var StepEntityBase = class {
27148
27171
  */
27149
27172
  extractParseBuffer(offset, baseOffset, depth, result, module2, optional) {
27150
27173
  offset -= this.multiReference_ !== void 0 ? baseOffset : 0;
27174
+ this.guaranteeBuffer();
27151
27175
  const internalReference = this.guaranteeVTable(depth);
27152
27176
  if (offset >= internalReference.vtableCount) {
27153
27177
  throw new Error("Couldn't read field due to too few fields in record");
@@ -27351,6 +27375,9 @@ var StepEntityBase = class {
27351
27375
  throw new Error("Entity does not have matching table entry to read from model");
27352
27376
  }
27353
27377
  }
27378
+ if (classReference.buffer === void 0) {
27379
+ this.model.populateBufferEntry(this.localID);
27380
+ }
27354
27381
  this.internalReference_.buffer = classReference.buffer;
27355
27382
  return classReference;
27356
27383
  }
@@ -27361,6 +27388,9 @@ var StepEntityBase = class {
27361
27388
  throw new Error("Entity does not have matching table entry to read from model");
27362
27389
  }
27363
27390
  }
27391
+ if (internalReference.buffer === void 0) {
27392
+ this.guaranteeBuffer();
27393
+ }
27364
27394
  return internalReference;
27365
27395
  }
27366
27396
  /**
@@ -15943,7 +15943,7 @@ var ParsingBuffer = class {
15943
15943
  };
15944
15944
 
15945
15945
  // compiled/src/version/version.js
15946
- var versionString = "Conway v1.512.1444";
15946
+ var versionString = "Conway v1.513.1447";
15947
15947
 
15948
15948
  // compiled/dependencies/conway-geom/interface/conway_geometry.js
15949
15949
  function pThreadsAllowed() {
@@ -21160,6 +21160,9 @@ var StepModelBase = class {
21160
21160
  if (element.vtableIndex === void 0 && !this.populateVtableEntryRaw(element)) {
21161
21161
  return void 0;
21162
21162
  }
21163
+ if (element.buffer === void 0) {
21164
+ this.populateBufferEntry(localID);
21165
+ }
21163
21166
  const vtable = element.vtable;
21164
21167
  const buffer = element.buffer;
21165
21168
  if (vtable === void 0 || buffer === void 0 || offset >= (element.vtableCount ?? 0)) {
@@ -21229,6 +21232,11 @@ var StepModelBase = class {
21229
21232
  }
21230
21233
  const element = this.entry(localID);
21231
21234
  element.buffer = this.bufferProvider_.acquire(element.address, element.length).buffer;
21235
+ if (element.multiMapping !== void 0) {
21236
+ for (const mapped of element.multiMapping) {
21237
+ mapped.buffer = this.bufferProvider_.acquire(mapped.address, mapped.length).buffer;
21238
+ }
21239
+ }
21232
21240
  }
21233
21241
  /**
21234
21242
  * Get the size in bytes of the backing buffer for this.
@@ -21349,24 +21357,39 @@ var StepModelBase = class {
21349
21357
  if (!this.isSourceExternal) {
21350
21358
  return seen;
21351
21359
  }
21352
- const stack = [localID];
21360
+ const frontier = [];
21361
+ const enqueue = (id) => {
21362
+ if (id < this.count_ && !seen.has(id)) {
21363
+ frontier.push(id);
21364
+ }
21365
+ };
21366
+ enqueue(localID);
21353
21367
  if (extraLocalIDs !== void 0) {
21354
21368
  for (const extra of extraLocalIDs) {
21355
- stack.push(extra);
21369
+ enqueue(extra);
21356
21370
  }
21357
21371
  }
21358
- while (stack.length > 0) {
21359
- const id = stack.pop();
21360
- if (seen.has(id) || id >= this.count_) {
21361
- continue;
21372
+ while (frontier.length > 0) {
21373
+ const wave = [];
21374
+ for (const id of frontier) {
21375
+ if (seen.has(id) || id >= this.count_) {
21376
+ continue;
21377
+ }
21378
+ seen.add(id);
21379
+ this.pinByLocalID(id);
21380
+ wave.push(id);
21381
+ }
21382
+ frontier.length = 0;
21383
+ if (wave.length === 0) {
21384
+ break;
21362
21385
  }
21363
- seen.add(id);
21364
- await this.ensureResidentByLocalID(id);
21365
- this.pinByLocalID(id);
21366
- for (const expressID of this.scanRecordRefs_(id)) {
21367
- const referenced = this.expressIDMap_.get(expressID);
21368
- if (referenced !== void 0 && !seen.has(referenced)) {
21369
- stack.push(referenced);
21386
+ await Promise.all(wave.map((id) => this.ensureResidentByLocalID(id)));
21387
+ for (const id of wave) {
21388
+ for (const expressID of this.scanRecordRefs_(id)) {
21389
+ const referenced = this.expressIDMap_.get(expressID);
21390
+ if (referenced !== void 0 && !seen.has(referenced)) {
21391
+ frontier.push(referenced);
21392
+ }
21370
21393
  }
21371
21394
  }
21372
21395
  }
@@ -23070,6 +23093,7 @@ var StepEntityBase = class {
23070
23093
  */
23071
23094
  extractParseBuffer(offset, baseOffset, depth, result, module2, optional) {
23072
23095
  offset -= this.multiReference_ !== void 0 ? baseOffset : 0;
23096
+ this.guaranteeBuffer();
23073
23097
  const internalReference = this.guaranteeVTable(depth);
23074
23098
  if (offset >= internalReference.vtableCount) {
23075
23099
  throw new Error("Couldn't read field due to too few fields in record");
@@ -23273,6 +23297,9 @@ var StepEntityBase = class {
23273
23297
  throw new Error("Entity does not have matching table entry to read from model");
23274
23298
  }
23275
23299
  }
23300
+ if (classReference.buffer === void 0) {
23301
+ this.model.populateBufferEntry(this.localID);
23302
+ }
23276
23303
  this.internalReference_.buffer = classReference.buffer;
23277
23304
  return classReference;
23278
23305
  }
@@ -23283,6 +23310,9 @@ var StepEntityBase = class {
23283
23310
  throw new Error("Entity does not have matching table entry to read from model");
23284
23311
  }
23285
23312
  }
23313
+ if (internalReference.buffer === void 0) {
23314
+ this.guaranteeBuffer();
23315
+ }
23286
23316
  return internalReference;
23287
23317
  }
23288
23318
  /**
@@ -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.512.1444";
947
+ var versionString = "Conway v1.513.1447";
948
948
 
949
949
  // compiled/dependencies/conway-geom/interface/conway_geometry.js
950
950
  var wasmType = "";
@@ -5536,6 +5536,9 @@ var StepModelBase = class {
5536
5536
  if (element.vtableIndex === void 0 && !this.populateVtableEntryRaw(element)) {
5537
5537
  return void 0;
5538
5538
  }
5539
+ if (element.buffer === void 0) {
5540
+ this.populateBufferEntry(localID);
5541
+ }
5539
5542
  const vtable = element.vtable;
5540
5543
  const buffer = element.buffer;
5541
5544
  if (vtable === void 0 || buffer === void 0 || offset >= (element.vtableCount ?? 0)) {
@@ -5605,6 +5608,11 @@ var StepModelBase = class {
5605
5608
  }
5606
5609
  const element = this.entry(localID);
5607
5610
  element.buffer = this.bufferProvider_.acquire(element.address, element.length).buffer;
5611
+ if (element.multiMapping !== void 0) {
5612
+ for (const mapped of element.multiMapping) {
5613
+ mapped.buffer = this.bufferProvider_.acquire(mapped.address, mapped.length).buffer;
5614
+ }
5615
+ }
5608
5616
  }
5609
5617
  /**
5610
5618
  * Get the size in bytes of the backing buffer for this.
@@ -5725,24 +5733,39 @@ var StepModelBase = class {
5725
5733
  if (!this.isSourceExternal) {
5726
5734
  return seen;
5727
5735
  }
5728
- const stack = [localID];
5736
+ const frontier = [];
5737
+ const enqueue = (id) => {
5738
+ if (id < this.count_ && !seen.has(id)) {
5739
+ frontier.push(id);
5740
+ }
5741
+ };
5742
+ enqueue(localID);
5729
5743
  if (extraLocalIDs !== void 0) {
5730
5744
  for (const extra of extraLocalIDs) {
5731
- stack.push(extra);
5745
+ enqueue(extra);
5732
5746
  }
5733
5747
  }
5734
- while (stack.length > 0) {
5735
- const id = stack.pop();
5736
- if (seen.has(id) || id >= this.count_) {
5737
- continue;
5748
+ while (frontier.length > 0) {
5749
+ const wave = [];
5750
+ for (const id of frontier) {
5751
+ if (seen.has(id) || id >= this.count_) {
5752
+ continue;
5753
+ }
5754
+ seen.add(id);
5755
+ this.pinByLocalID(id);
5756
+ wave.push(id);
5757
+ }
5758
+ frontier.length = 0;
5759
+ if (wave.length === 0) {
5760
+ break;
5738
5761
  }
5739
- seen.add(id);
5740
- await this.ensureResidentByLocalID(id);
5741
- this.pinByLocalID(id);
5742
- for (const expressID of this.scanRecordRefs_(id)) {
5743
- const referenced = this.expressIDMap_.get(expressID);
5744
- if (referenced !== void 0 && !seen.has(referenced)) {
5745
- stack.push(referenced);
5762
+ await Promise.all(wave.map((id) => this.ensureResidentByLocalID(id)));
5763
+ for (const id of wave) {
5764
+ for (const expressID of this.scanRecordRefs_(id)) {
5765
+ const referenced = this.expressIDMap_.get(expressID);
5766
+ if (referenced !== void 0 && !seen.has(referenced)) {
5767
+ frontier.push(referenced);
5768
+ }
5746
5769
  }
5747
5770
  }
5748
5771
  }
@@ -11263,6 +11286,7 @@ var StepEntityBase = class {
11263
11286
  */
11264
11287
  extractParseBuffer(offset, baseOffset, depth, result, module2, optional) {
11265
11288
  offset -= this.multiReference_ !== void 0 ? baseOffset : 0;
11289
+ this.guaranteeBuffer();
11266
11290
  const internalReference = this.guaranteeVTable(depth);
11267
11291
  if (offset >= internalReference.vtableCount) {
11268
11292
  throw new Error("Couldn't read field due to too few fields in record");
@@ -11466,6 +11490,9 @@ var StepEntityBase = class {
11466
11490
  throw new Error("Entity does not have matching table entry to read from model");
11467
11491
  }
11468
11492
  }
11493
+ if (classReference.buffer === void 0) {
11494
+ this.model.populateBufferEntry(this.localID);
11495
+ }
11469
11496
  this.internalReference_.buffer = classReference.buffer;
11470
11497
  return classReference;
11471
11498
  }
@@ -11476,6 +11503,9 @@ var StepEntityBase = class {
11476
11503
  throw new Error("Entity does not have matching table entry to read from model");
11477
11504
  }
11478
11505
  }
11506
+ if (internalReference.buffer === void 0) {
11507
+ this.guaranteeBuffer();
11508
+ }
11479
11509
  return internalReference;
11480
11510
  }
11481
11511
  /**
@@ -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":"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"}
@@ -670,27 +670,46 @@ export class IfcApiProxyIfc {
670
670
  const aggregateTargets = conwayGeometry.aggregateTargetLocalIDs();
671
671
  let completed = 0;
672
672
  tracker?.setPhaseTotal(model.typeCount(IfcProduct));
673
- for (const product of model.types(IfcProduct)) {
674
- if (aggregateTargets.has(product.localID)) {
675
- continue;
673
+ // eslint-disable-next-line no-magic-numbers
674
+ const EXTRACT_BATCH = 8;
675
+ const pending = [];
676
+ const flushProductBatch = async () => {
677
+ if (pending.length === 0) {
678
+ return;
676
679
  }
677
- const pins = await conwayGeometry.ensureResidentForProductExtract(product.localID);
680
+ const pins = new Set();
678
681
  try {
679
- conwayGeometry.extractProductGeometryByLocalID(product.localID);
680
- }
681
- catch (error) {
682
- Logger.error(`Error extracting product ${product.expressID}: ` +
683
- `${error instanceof Error ? error.message : String(error)}`);
682
+ await Promise.all(pending.map((localID) => conwayGeometry.ensureResidentForProductExtract(localID, pins)));
683
+ for (const localID of pending) {
684
+ try {
685
+ conwayGeometry.extractProductGeometryByLocalID(localID);
686
+ }
687
+ catch (error) {
688
+ Logger.error(`Error extracting product localID ${localID}: ` +
689
+ `${error instanceof Error ? error.message : String(error)}`);
690
+ }
691
+ ++completed;
692
+ }
684
693
  }
685
694
  finally {
686
695
  model.releaseSourceViews(pins);
687
696
  model.unpinLocalIDs(pins);
697
+ pending.length = 0;
688
698
  }
689
- ++completed;
690
699
  tracker?.update(completed, {
691
700
  residentSourceMb: model.residentSourceBytes / BYTES_PER_MIB,
692
701
  });
702
+ };
703
+ for (const product of model.types(IfcProduct)) {
704
+ if (aggregateTargets.has(product.localID)) {
705
+ continue;
706
+ }
707
+ pending.push(product.localID);
708
+ if (pending.length >= EXTRACT_BATCH) {
709
+ await flushProductBatch();
710
+ }
693
711
  }
712
+ await flushProductBatch();
694
713
  for (const relAggregate of model.types(IfcRelAggregates)) {
695
714
  const pins = await conwayGeometry.ensureResidentForAggregateExtract(relAggregate);
696
715
  try {
@@ -1296,17 +1315,25 @@ export class IfcApiProxyIfc {
1296
1315
  this.geometryPhaseStarted_ = true;
1297
1316
  }
1298
1317
  const productEnd = Math.min(this.demandCursor_ + budget, products.length);
1299
- for (; this.demandCursor_ < productEnd; ++this.demandCursor_) {
1300
- const localID = products[this.demandCursor_];
1301
- const pins = await this.conwayGeometry_.ensureResidentForProductExtract(localID);
1318
+ const batchIDs = products.slice(this.demandCursor_, productEnd);
1319
+ if (batchIDs.length > 0) {
1320
+ // One pin set for the batch so mapped geometry stays resident
1321
+ // across the instances that share it.
1322
+ const pins = new Set();
1302
1323
  try {
1303
- if (this.conwayGeometry_.extractProductGeometryByLocalID(localID)) {
1304
- ++extracted;
1324
+ await Promise.all(batchIDs.map((localID) => this.conwayGeometry_.ensureResidentForProductExtract(localID, pins)));
1325
+ for (const localID of batchIDs) {
1326
+ try {
1327
+ if (this.conwayGeometry_.extractProductGeometryByLocalID(localID)) {
1328
+ ++extracted;
1329
+ }
1330
+ }
1331
+ catch (error) {
1332
+ Logger.error(`Error extracting product localID ${localID}: ` +
1333
+ `${error instanceof Error ? error.message : String(error)}`);
1334
+ }
1305
1335
  }
1306
- }
1307
- catch (error) {
1308
- Logger.error(`Error extracting product localID ${localID}: ` +
1309
- `${error instanceof Error ? error.message : String(error)}`);
1336
+ this.demandCursor_ = productEnd;
1310
1337
  }
1311
1338
  finally {
1312
1339
  this.model[0].releaseSourceViews(pins);
@@ -76,6 +76,50 @@ describe("openStreamedIfcModel (Phase B3)", () => {
76
76
  const again = model.getElementByExpressID(expressID);
77
77
  expect(again.extractLineArguments().length).toBe(args.length);
78
78
  });
79
+ test("extractParseBuffer rematerialises after releaseSourceViews", async () => {
80
+ const store = new InMemoryStepByteStore(bytes);
81
+ const fromStore = await openStreamedIfcModelFromStore(store, { pool: 4 * 1024 });
82
+ const model = fromStore.model;
83
+ const expressID = [...model.expressIDsOfTypes(IfcRoot)][0];
84
+ const localID = model.resolveExpressID(expressID);
85
+ await model.ensureResidentByLocalID(localID);
86
+ const first = model.getElementByExpressID(expressID);
87
+ // Populate vtable + buffer the way a first extract does.
88
+ expect(first.extractLineArguments().length).toBeGreaterThan(0);
89
+ const copied = [];
90
+ const fakeResult = { resize: (n) => n };
91
+ const fakeModule = { HEAPU8: { set: (src) => {
92
+ copied.push(src.length);
93
+ } } };
94
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
95
+ first.extractParseBuffer(0, 0, 0, fakeResult, fakeModule, true);
96
+ expect(copied[0]).toBeGreaterThan(0);
97
+ model.releaseSourceViews([localID]);
98
+ await model.ensureResidentByLocalID(localID);
99
+ // Same entity object — vtable kept, buffer dropped. This is the
100
+ // PSB "Cannot read properties of undefined (reading 'subarray')" path.
101
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
102
+ first.extractParseBuffer(0, 0, 0, fakeResult, fakeModule, true);
103
+ expect(copied[1]).toBe(copied[0]);
104
+ });
105
+ test("ensureResidentClosureByLocalID visits every #ref hop", async () => {
106
+ const store = new InMemoryStepByteStore(bytes);
107
+ const fromStore = await openStreamedIfcModelFromStore(store, { pool: 4 * 1024 });
108
+ const model = fromStore.model;
109
+ const expressID = [...model.expressIDsOfTypes(IfcRoot)][0];
110
+ const localID = model.resolveExpressID(expressID);
111
+ await model.ensureResidentByLocalID(localID);
112
+ const refs = model.referencedExpressIDs(localID);
113
+ expect(refs.length).toBeGreaterThan(0);
114
+ const visited = await model.ensureResidentClosureByLocalID(localID);
115
+ expect(visited.has(localID)).toBe(true);
116
+ for (const refExpressID of refs) {
117
+ const refLocalID = model.resolveExpressID(refExpressID);
118
+ if (refLocalID !== void 0) {
119
+ expect(visited.has(refLocalID)).toBe(true);
120
+ }
121
+ }
122
+ });
79
123
  test("openStreamedIfcModelFromStore matches the sync open", async () => {
80
124
  const store = new InMemoryStepByteStore(bytes);
81
125
  const fromStore = await openStreamedIfcModelFromStore(store, { pool: 4 * 1024 });
@@ -1 +1 @@
1
- {"version":3,"file":"step_entity_base.d.ts","sourceRoot":"","sources":["../../../src/step/step_entity_base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"step_entity_base.d.ts","sourceRoot":"","sources":["../../../src/step/step_entity_base.ts"],"names":[],"mappings":"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"}