@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.
- package/compiled/examples/browser-bundled.cjs +44 -14
- package/compiled/examples/cli-bundled.cjs +44 -14
- package/compiled/examples/cli-step-bundled.cjs +44 -14
- package/compiled/examples/validator-bundled.cjs +44 -14
- package/compiled/src/compat/web-ifc/ifc_api_proxy_ifc.d.ts.map +1 -1
- package/compiled/src/compat/web-ifc/ifc_api_proxy_ifc.js +46 -19
- package/compiled/src/ifc/ifc_stream_open.test.js +44 -0
- package/compiled/src/step/step_entity_base.d.ts.map +1 -1
- package/compiled/src/step/step_entity_base.js +8 -0
- package/compiled/src/step/step_model_base.d.ts.map +1 -1
- package/compiled/src/step/step_model_base.js +43 -13
- package/compiled/src/version/version.js +1 -1
- package/compiled/tsconfig.tsbuildinfo +1 -1
- 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.
|
|
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
|
|
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
|
-
|
|
5747
|
+
enqueue(extra);
|
|
5734
5748
|
}
|
|
5735
5749
|
}
|
|
5736
|
-
while (
|
|
5737
|
-
const
|
|
5738
|
-
|
|
5739
|
-
|
|
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
|
-
|
|
5742
|
-
|
|
5743
|
-
|
|
5744
|
-
|
|
5745
|
-
|
|
5746
|
-
|
|
5747
|
-
|
|
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.
|
|
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
|
|
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
|
-
|
|
21630
|
+
enqueue(extra);
|
|
21617
21631
|
}
|
|
21618
21632
|
}
|
|
21619
|
-
while (
|
|
21620
|
-
const
|
|
21621
|
-
|
|
21622
|
-
|
|
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
|
-
|
|
21625
|
-
|
|
21626
|
-
|
|
21627
|
-
|
|
21628
|
-
|
|
21629
|
-
|
|
21630
|
-
|
|
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.
|
|
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
|
|
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
|
-
|
|
21369
|
+
enqueue(extra);
|
|
21356
21370
|
}
|
|
21357
21371
|
}
|
|
21358
|
-
while (
|
|
21359
|
-
const
|
|
21360
|
-
|
|
21361
|
-
|
|
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
|
-
|
|
21364
|
-
|
|
21365
|
-
|
|
21366
|
-
|
|
21367
|
-
|
|
21368
|
-
|
|
21369
|
-
|
|
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.
|
|
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
|
|
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
|
-
|
|
5745
|
+
enqueue(extra);
|
|
5732
5746
|
}
|
|
5733
5747
|
}
|
|
5734
|
-
while (
|
|
5735
|
-
const
|
|
5736
|
-
|
|
5737
|
-
|
|
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
|
-
|
|
5740
|
-
|
|
5741
|
-
|
|
5742
|
-
|
|
5743
|
-
|
|
5744
|
-
|
|
5745
|
-
|
|
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
|
-
|
|
674
|
-
|
|
675
|
-
|
|
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 =
|
|
680
|
+
const pins = new Set();
|
|
678
681
|
try {
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
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
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
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
|
-
|
|
1304
|
-
|
|
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":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uDAAuD,CAAA;AACnF,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AACvF,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAejD,OAAO,EAAE,UAAU,EAAyB,MAAM,uBAAuB,CAAA;AAEzE,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAA;AACzE,OAAO,2BAC+B,MAAM,kCAAkC,CAAA;AAC9E,OAAO,aAAa,MAAM,mBAAmB,CAAA;AAG7C,aAAK,YAAY;IACf,OAAO,IAAI;IACX,MAAM,IAAA;IACN,KAAK,IAAA;IACL,IAAI,IAAA;IACJ,IAAI,IAAA;IACJ,GAAG,IAAA;IACH,KAAK,IAAA;IACL,SAAS,IAAA;IACT,OAAO,IAAA;IACP,QAAQ,IAAA;CACT;AAmDD;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,cAAc,CAAC,aAAa,SAAS,MAAM,CAAE,YAAW,MAAM;
|
|
1
|
+
{"version":3,"file":"step_entity_base.d.ts","sourceRoot":"","sources":["../../../src/step/step_entity_base.ts"],"names":[],"mappings":"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"}
|