@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.
- package/compiled/examples/browser-bundled.cjs +39 -3
- package/compiled/examples/cli-bundled.cjs +55 -10
- package/compiled/examples/cli-step-bundled.cjs +39 -3
- package/compiled/examples/validator-bundled.cjs +39 -3
- package/compiled/src/compat/web-ifc/ifc_api_proxy_ifc.d.ts +3 -2
- 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 +23 -6
- package/compiled/src/compat/web-ifc/parse_aabb_imposter.d.ts +41 -0
- package/compiled/src/compat/web-ifc/parse_aabb_imposter.d.ts.map +1 -0
- package/compiled/src/compat/web-ifc/parse_aabb_imposter.js +161 -0
- package/compiled/src/compat/web-ifc/parse_aabb_imposter.test.d.ts +2 -0
- package/compiled/src/compat/web-ifc/parse_aabb_imposter.test.d.ts.map +1 -0
- package/compiled/src/compat/web-ifc/parse_aabb_imposter.test.js +39 -0
- package/compiled/src/compat/web-ifc/streamed_preview_channel.d.ts +13 -0
- package/compiled/src/compat/web-ifc/streamed_preview_channel.d.ts.map +1 -1
- package/compiled/src/core/progress.d.ts +8 -1
- package/compiled/src/core/progress.d.ts.map +1 -1
- package/compiled/src/core/progress.js +9 -4
- package/compiled/src/core/progress_log.d.ts +1 -0
- package/compiled/src/core/progress_log.d.ts.map +1 -1
- package/compiled/src/core/progress_log.js +7 -2
- package/compiled/src/core/progress_log.test.js +21 -0
- package/compiled/src/ifc/ifc_stream_open.test.js +16 -0
- package/compiled/src/step/parsing/step_parser.d.ts +2 -2
- package/compiled/src/step/parsing/step_parser.d.ts.map +1 -1
- package/compiled/src/step/parsing/step_parser.js +8 -2
- package/compiled/src/step/parsing/streaming_index_builder.d.ts +4 -4
- package/compiled/src/step/parsing/streaming_index_builder.d.ts.map +1 -1
- package/compiled/src/step/step_buffer_provider.d.ts +4 -3
- package/compiled/src/step/step_buffer_provider.d.ts.map +1 -1
- package/compiled/src/step/step_buffer_provider.js +4 -3
- package/compiled/src/step/step_entity_base.d.ts.map +1 -1
- package/compiled/src/step/step_entity_base.js +1 -0
- package/compiled/src/step/step_model_base.d.ts +9 -0
- package/compiled/src/step/step_model_base.d.ts.map +1 -1
- package/compiled/src/step/step_model_base.js +29 -0
- 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.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
|
-
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
257
|
-
* skipped (
|
|
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;
|
|
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.
|
|
598
|
-
* skipped (
|
|
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
|
|
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"}
|