@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
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import EntityTypesIfc from "../../ifc/ifc4_gen/entity_types_ifc.gen.js";
|
|
2
|
+
import ParsingBuffer from "../../parsing/parsing_buffer.js";
|
|
3
|
+
/* eslint-disable no-magic-numbers */
|
|
4
|
+
/** Emit every Nth point-list AABB — sparse on purpose. */
|
|
5
|
+
const IMPOSTER_STRIDE = 8;
|
|
6
|
+
/** Skip lists with fewer than this many points (noise). */
|
|
7
|
+
const MIN_POINTS = 8;
|
|
8
|
+
/** Cap so one huge tessellation list cannot stall the parse yield. */
|
|
9
|
+
const SCAN_BUDGET_BYTES = 128 * 1024;
|
|
10
|
+
const IMPOSTER_COLOR = { x: 0.45, y: 0.75, z: 0.95, w: 0.35 };
|
|
11
|
+
const CHAR_HASH = 35;
|
|
12
|
+
const CHAR_EQ = 61;
|
|
13
|
+
const CHAR_LPAREN = 40;
|
|
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 function aabbFromStepReals(bytes) {
|
|
24
|
+
let minX = Infinity;
|
|
25
|
+
let minY = Infinity;
|
|
26
|
+
let minZ = Infinity;
|
|
27
|
+
let maxX = -Infinity;
|
|
28
|
+
let maxY = -Infinity;
|
|
29
|
+
let maxZ = -Infinity;
|
|
30
|
+
let points = 0;
|
|
31
|
+
let axis = 0;
|
|
32
|
+
let x = 0;
|
|
33
|
+
let y = 0;
|
|
34
|
+
// Skip `#id=TYPENAME(` so the express ID is not a phantom first real.
|
|
35
|
+
let start = 0;
|
|
36
|
+
const end = Math.min(bytes.length, SCAN_BUDGET_BYTES);
|
|
37
|
+
if (bytes[start] === CHAR_HASH) {
|
|
38
|
+
while (start < end && bytes[start] !== CHAR_EQ) {
|
|
39
|
+
++start;
|
|
40
|
+
}
|
|
41
|
+
if (start < end) {
|
|
42
|
+
++start;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
while (start < end && bytes[start] !== CHAR_LPAREN) {
|
|
46
|
+
++start;
|
|
47
|
+
}
|
|
48
|
+
const input = new ParsingBuffer(bytes, start, end);
|
|
49
|
+
while (!input.finished) {
|
|
50
|
+
const value = input.readReal();
|
|
51
|
+
if (value === void 0) {
|
|
52
|
+
input.step();
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
if (axis === 0) {
|
|
56
|
+
x = value;
|
|
57
|
+
axis = 1;
|
|
58
|
+
}
|
|
59
|
+
else if (axis === 1) {
|
|
60
|
+
y = value;
|
|
61
|
+
axis = 2;
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
if (x < minX) {
|
|
65
|
+
minX = x;
|
|
66
|
+
}
|
|
67
|
+
if (y < minY) {
|
|
68
|
+
minY = y;
|
|
69
|
+
}
|
|
70
|
+
if (value < minZ) {
|
|
71
|
+
minZ = value;
|
|
72
|
+
}
|
|
73
|
+
if (x > maxX) {
|
|
74
|
+
maxX = x;
|
|
75
|
+
}
|
|
76
|
+
if (y > maxY) {
|
|
77
|
+
maxY = y;
|
|
78
|
+
}
|
|
79
|
+
if (value > maxZ) {
|
|
80
|
+
maxZ = value;
|
|
81
|
+
}
|
|
82
|
+
++points;
|
|
83
|
+
axis = 0;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
if (points < MIN_POINTS || !Number.isFinite(minX)) {
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
return { min: [minX, minY, minZ], max: [maxX, maxY, maxZ] };
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Column-major 4x4: IFC Z-up box → Y-up, translated to the box centre
|
|
93
|
+
* and scaled to its size. Share instances a shared unit cube with this.
|
|
94
|
+
*
|
|
95
|
+
* @param aabb The IFC-space bounds.
|
|
96
|
+
* @return {number[]} 16-element matrix.
|
|
97
|
+
*/
|
|
98
|
+
export function aabbToPreviewMatrix(aabb) {
|
|
99
|
+
const sx = Math.max(aabb.max[0] - aabb.min[0], 0.001);
|
|
100
|
+
const sy = Math.max(aabb.max[1] - aabb.min[1], 0.001);
|
|
101
|
+
const sz = Math.max(aabb.max[2] - aabb.min[2], 0.001);
|
|
102
|
+
const cx = (aabb.min[0] + aabb.max[0]) * 0.5;
|
|
103
|
+
const cy = (aabb.min[1] + aabb.max[1]) * 0.5;
|
|
104
|
+
const cz = (aabb.min[2] + aabb.max[2]) * 0.5;
|
|
105
|
+
// Z-up → Y-up, then scale/centre for a unit cube.
|
|
106
|
+
return [
|
|
107
|
+
sx,
|
|
108
|
+
0,
|
|
109
|
+
0,
|
|
110
|
+
0,
|
|
111
|
+
0,
|
|
112
|
+
sz,
|
|
113
|
+
0,
|
|
114
|
+
0,
|
|
115
|
+
0,
|
|
116
|
+
0,
|
|
117
|
+
sy,
|
|
118
|
+
0,
|
|
119
|
+
cx,
|
|
120
|
+
cz,
|
|
121
|
+
-cy,
|
|
122
|
+
1,
|
|
123
|
+
];
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Stateful filter: every IMPOSTER_STRIDE-th IfcCartesianPointList3D
|
|
127
|
+
* becomes a tiny preview payload. The view `recordBytes` is into the
|
|
128
|
+
* sliding parse window; do not retain it.
|
|
129
|
+
*
|
|
130
|
+
* @param onMesh Preview consumer (Share's ON_PREVIEW_MESH).
|
|
131
|
+
* @return A callback matching onRecordIndexed.
|
|
132
|
+
*/
|
|
133
|
+
export function makeParseAabbImposter(onMesh) {
|
|
134
|
+
let seen = 0;
|
|
135
|
+
return (_localID, expressID, typeID, recordBytes) => {
|
|
136
|
+
if (typeID !== EntityTypesIfc.IFCCARTESIANPOINTLIST3D ||
|
|
137
|
+
recordBytes === void 0) {
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
++seen;
|
|
141
|
+
if (seen % IMPOSTER_STRIDE !== 0) {
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
try {
|
|
145
|
+
const aabb = aabbFromStepReals(recordBytes);
|
|
146
|
+
if (aabb === null) {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
onMesh({
|
|
150
|
+
expressID,
|
|
151
|
+
geometryExpressID: -1,
|
|
152
|
+
color: IMPOSTER_COLOR,
|
|
153
|
+
flatTransformation: aabbToPreviewMatrix(aabb),
|
|
154
|
+
aabb,
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
catch {
|
|
158
|
+
// Preview must never break the parse.
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse_aabb_imposter.test.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/parse_aabb_imposter.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { describe, expect, test } from "@jest/globals";
|
|
2
|
+
import { aabbFromStepReals, aabbToPreviewMatrix, makeParseAabbImposter, } from "./parse_aabb_imposter.js";
|
|
3
|
+
import EntityTypesIfc from "../../ifc/ifc4_gen/entity_types_ifc.gen.js";
|
|
4
|
+
describe("parse_aabb_imposter", () => {
|
|
5
|
+
test("aabbFromStepReals reads IFCCARTESIANPOINTLIST3D triples", () => {
|
|
6
|
+
const text = "#10=IFCCARTESIANPOINTLIST3D(((0.,0.,0.),(1.,2.,3.),(-1.,0.,1.)," +
|
|
7
|
+
"(4.,5.,6.),(0.,0.,1.),(0.,1.,0.),(1.,0.,0.),(2.,2.,2.)));";
|
|
8
|
+
const bytes = new TextEncoder().encode(text);
|
|
9
|
+
const aabb = aabbFromStepReals(bytes);
|
|
10
|
+
expect(aabb).not.toBeNull();
|
|
11
|
+
expect(aabb.min).toEqual([-1, 0, 0]);
|
|
12
|
+
expect(aabb.max).toEqual([4, 5, 6]);
|
|
13
|
+
});
|
|
14
|
+
test("aabbFromStepReals returns null for a short list", () => {
|
|
15
|
+
const text = "#1=IFCCARTESIANPOINTLIST3D(((0.,0.,0.),(1.,1.,1.)));";
|
|
16
|
+
expect(aabbFromStepReals(new TextEncoder().encode(text))).toBeNull();
|
|
17
|
+
});
|
|
18
|
+
test("aabbToPreviewMatrix is Z-up to Y-up and centres the box", () => {
|
|
19
|
+
const matrix = aabbToPreviewMatrix({ min: [0, 0, 0], max: [2, 4, 6] });
|
|
20
|
+
expect(matrix[0]).toBe(2);
|
|
21
|
+
expect(matrix[5]).toBe(6);
|
|
22
|
+
expect(matrix[10]).toBe(4);
|
|
23
|
+
expect(matrix[12]).toBe(1);
|
|
24
|
+
expect(matrix[13]).toBe(3);
|
|
25
|
+
expect(matrix[14]).toBe(-2);
|
|
26
|
+
});
|
|
27
|
+
test("makeParseAabbImposter emits every 8th point list", () => {
|
|
28
|
+
const emitted = [];
|
|
29
|
+
const emit = makeParseAabbImposter((mesh) => emitted.push(mesh));
|
|
30
|
+
const points = Array.from({ length: 8 }, (_, i) => `(${i}.,0.,0.)`).join(",");
|
|
31
|
+
const bytes = new TextEncoder().encode(`#1=IFCCARTESIANPOINTLIST3D((${points}));`);
|
|
32
|
+
for (let i = 1; i <= 8; ++i) {
|
|
33
|
+
emit(i, i * 10, EntityTypesIfc.IFCCARTESIANPOINTLIST3D, bytes);
|
|
34
|
+
}
|
|
35
|
+
expect(emitted).toHaveLength(1);
|
|
36
|
+
expect(emitted[0].aabb).toBeDefined();
|
|
37
|
+
expect(emitted[0].expressID).toBe(80);
|
|
38
|
+
});
|
|
39
|
+
});
|
|
@@ -21,6 +21,19 @@ export interface PreviewMeshPayload {
|
|
|
21
21
|
flatTransformation: number[];
|
|
22
22
|
vertexData?: Float32Array;
|
|
23
23
|
indexData?: Uint32Array;
|
|
24
|
+
/** Parse-time AABB imposter (no vertex payload; Share instances a unit cube). */
|
|
25
|
+
aabb?: {
|
|
26
|
+
min: [
|
|
27
|
+
number,
|
|
28
|
+
number,
|
|
29
|
+
number
|
|
30
|
+
];
|
|
31
|
+
max: [
|
|
32
|
+
number,
|
|
33
|
+
number,
|
|
34
|
+
number
|
|
35
|
+
];
|
|
36
|
+
};
|
|
24
37
|
}
|
|
25
38
|
/**
|
|
26
39
|
* A throwaway prefix extraction built by a {@link PreviewSchemaAdapter} —
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamed_preview_channel.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/streamed_preview_channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAU5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AAkDrE;;;;;;;;GAQG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,iBAAiB,EAAE,MAAM,CAAA;IACzB,KAAK,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACrD,kBAAkB,EAAE,MAAM,EAAE,CAAA;IAC5B,UAAU,CAAC,EAAE,YAAY,CAAA;IACzB,SAAS,CAAC,EAAE,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"streamed_preview_channel.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/streamed_preview_channel.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,8 @@ export interface ProgressEvent {
|
|
|
27
27
|
readonly elapsedMs: number;
|
|
28
28
|
/** Coarse used-JS-heap sample in MB, when the environment exposes one. */
|
|
29
29
|
readonly memoryMb?: number;
|
|
30
|
+
/** Windowed source bytes currently resident, in MB (Geometry phase). */
|
|
31
|
+
readonly residentSourceMb?: number;
|
|
30
32
|
}
|
|
31
33
|
export type ProgressCallback = (event: ProgressEvent) => void;
|
|
32
34
|
/**
|
|
@@ -68,6 +70,7 @@ export declare class ProgressTracker {
|
|
|
68
70
|
private phase_;
|
|
69
71
|
private unit_;
|
|
70
72
|
private total_;
|
|
73
|
+
private extras_;
|
|
71
74
|
/**
|
|
72
75
|
* Construct this with the callback progress events are forwarded to.
|
|
73
76
|
*
|
|
@@ -100,8 +103,11 @@ export declare class ProgressTracker {
|
|
|
100
103
|
* Report progress within the current phase; throttled.
|
|
101
104
|
*
|
|
102
105
|
* @param completed Units completed so far.
|
|
106
|
+
* @param extras Optional extras (window residency) merged into the event.
|
|
103
107
|
*/
|
|
104
|
-
update(completed: number
|
|
108
|
+
update(completed: number, extras?: {
|
|
109
|
+
residentSourceMb?: number;
|
|
110
|
+
}): void;
|
|
105
111
|
/**
|
|
106
112
|
* End the current phase, emitting an unthrottled final event with
|
|
107
113
|
* completed === total when a total is known.
|
|
@@ -114,6 +120,7 @@ export declare class ProgressTracker {
|
|
|
114
120
|
*
|
|
115
121
|
* @param completed Units completed so far.
|
|
116
122
|
* @param now Current time in ms (defaults to Date.now()).
|
|
123
|
+
* @param extras Optional extras merged into the event.
|
|
117
124
|
*/
|
|
118
125
|
private emit;
|
|
119
126
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../src/core/progress.ts"],"names":[],"mappings":"AAGA;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,GACvB,aAAa,GAAG,WAAW,GAAG,UAAU,GAAG,YAAY,GAAG,WAAW,CAAA;AAEvE,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAElF;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAA;IAC7B,yEAAyE;IACzE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,kEAAkE;IAClE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;IAC3B,8DAA8D;IAC9D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../src/core/progress.ts"],"names":[],"mappings":"AAGA;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,GACvB,aAAa,GAAG,WAAW,GAAG,UAAU,GAAG,YAAY,GAAG,WAAW,CAAA;AAEvE,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAElF;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAA;IAC7B,yEAAyE;IACzE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,kEAAkE;IAClE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;IAC3B,8DAA8D;IAC9D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,wEAAwE;IACxE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CACnC;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAE,KAAK,EAAE,aAAa,KAAM,IAAI,CAAA;AAE/D;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAM,IAAI,CAAA;AAEhF,oEAAoE;AACpE,eAAO,MAAM,4BAA4B,MAAM,CAAA;AAE/C;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAuBhD;AAED;;;;;;;GAOG;AACH,qBAAa,eAAe;IAgBxB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAfhC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,YAAY,CAAY;IAChC,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,OAAO,CAA2C;IAE1D;;;;;OAKG;gBAEgB,UAAU,EAAE,gBAAgB,EAC5B,aAAa,GAAE,MAAqC;IAEvE;;;;OAIG;IACH,IAAW,KAAK,IAAI,aAAa,GAAG,SAAS,CAE5C;IAED;;;;;;OAMG;IACI,UAAU,CAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,GAAI,IAAI;IAQnF;;;;;OAKG;IACI,aAAa,CAAE,KAAK,EAAE,MAAM,GAAI,IAAI;IAI3C;;;;;OAKG;IACI,MAAM,CACT,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAE,GAAI,IAAI;IAWlD;;;;;OAKG;IACI,QAAQ,CAAE,SAAS,CAAC,EAAE,MAAM,GAAI,IAAI;IAM3C;;;;;;OAMG;IACH,OAAO,CAAC,IAAI;CAsBb"}
|
|
@@ -90,13 +90,15 @@ export class ProgressTracker {
|
|
|
90
90
|
* Report progress within the current phase; throttled.
|
|
91
91
|
*
|
|
92
92
|
* @param completed Units completed so far.
|
|
93
|
+
* @param extras Optional extras (window residency) merged into the event.
|
|
93
94
|
*/
|
|
94
|
-
update(completed) {
|
|
95
|
+
update(completed, extras) {
|
|
96
|
+
this.extras_ = extras;
|
|
95
97
|
const now = Date.now();
|
|
96
98
|
if (now - this.lastEmitTime < this.minIntervalMs) {
|
|
97
99
|
return;
|
|
98
100
|
}
|
|
99
|
-
this.emit(completed, now);
|
|
101
|
+
this.emit(completed, now, extras);
|
|
100
102
|
}
|
|
101
103
|
/**
|
|
102
104
|
* End the current phase, emitting an unthrottled final event with
|
|
@@ -105,16 +107,18 @@ export class ProgressTracker {
|
|
|
105
107
|
* @param completed Final completed units (defaults to the phase total).
|
|
106
108
|
*/
|
|
107
109
|
endPhase(completed) {
|
|
108
|
-
this.emit(completed ?? this.total_ ?? 0);
|
|
110
|
+
this.emit(completed ?? this.total_ ?? 0, Date.now(), this.extras_);
|
|
109
111
|
this.phase_ = void 0;
|
|
112
|
+
this.extras_ = void 0;
|
|
110
113
|
}
|
|
111
114
|
/**
|
|
112
115
|
* Materialize and forward an event now, bypassing the throttle.
|
|
113
116
|
*
|
|
114
117
|
* @param completed Units completed so far.
|
|
115
118
|
* @param now Current time in ms (defaults to Date.now()).
|
|
119
|
+
* @param extras Optional extras merged into the event.
|
|
116
120
|
*/
|
|
117
|
-
emit(completed, now = Date.now()) {
|
|
121
|
+
emit(completed, now = Date.now(), extras) {
|
|
118
122
|
if (this.phase_ === void 0) {
|
|
119
123
|
return;
|
|
120
124
|
}
|
|
@@ -127,6 +131,7 @@ export class ProgressTracker {
|
|
|
127
131
|
unit: this.unit_,
|
|
128
132
|
elapsedMs: now - this.startTime,
|
|
129
133
|
memoryMb: Memory.usedHeapMb(),
|
|
134
|
+
residentSourceMb: extras?.residentSourceMb,
|
|
130
135
|
});
|
|
131
136
|
}
|
|
132
137
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress_log.d.ts","sourceRoot":"","sources":["../../../src/core/progress_log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,+EAA+E;AAC/E,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"progress_log.d.ts","sourceRoot":"","sources":["../../../src/core/progress_log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,+EAA+E;AAC/E,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAqBD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAE,KAAK,EAAE,MAAM,GAAI,MAAM,CAQlD;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAE,OAAO,CAAC,EAAE,MAAM,GAAI,MAAM,CASpD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAE,YAAY,EAAE,MAAM,GAAI,MAAM,CAE5D;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAE,SAAS,EAAE,MAAM,GAAI,MAAM,CAEpD;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAE,IAAI,EAAE,SAAS,GAAI,MAAM,CA0BzD;AA6DD;;;;;;;;GAQG;AACH,qBAAa,kBAAkB;IAE7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,eAAe,CAAoB;IAC3C,OAAO,CAAC,cAAc,CAAY;IAClC,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,UAAU,CAAoB;IAEtC;;;;;OAKG;IACI,YAAY,CAAE,IAAI,EAAE,SAAS,GAAI,MAAM;IAM9C;;;;;;OAMG;IACI,UAAU,CAAE,KAAK,EAAE,iBAAiB,GAAI,MAAM,GAAG,SAAS;IAiDjE;;;;;;;;OAQG;IACI,iBAAiB,CAAE,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAI,MAAM,GAAG,SAAS;IAuBzF;;;;OAIG;IACI,WAAW,IAAI,MAAM,GAAG,SAAS;IAQxC;;;;OAIG;IACI,aAAa,IAAI,MAAM,EAAE;IAIhC;;;;;OAKG;IACI,SAAS,IAAI,MAAM;IAY1B;;;;;OAKG;IACI,QAAQ,IAAI,MAAM,EAAE;CAY5B"}
|
|
@@ -143,14 +143,16 @@ function heapDeltaSuffix(state) {
|
|
|
143
143
|
function formatStageLine(state, final) {
|
|
144
144
|
const duration = state.lastElapsedMs - state.startElapsedMs;
|
|
145
145
|
const heap = heapDeltaSuffix(state);
|
|
146
|
+
const window = state.residentSourceMb !== void 0 ?
|
|
147
|
+
`, window=${formatMb(state.residentSourceMb)} MB` : '';
|
|
146
148
|
const determinate = state.percent !== void 0;
|
|
147
149
|
// Completed: no bar, colon-separated. A determinate stage that stopped
|
|
148
150
|
// short of 100% is a failure — keep its bar to show the reach.
|
|
149
151
|
if (final && !(determinate && state.percent < PERCENT)) {
|
|
150
|
-
return `${state.label}: ${formatSeconds(duration)}${heap}`;
|
|
152
|
+
return `${state.label}: ${formatSeconds(duration)}${heap}${window}`;
|
|
151
153
|
}
|
|
152
154
|
const bar = formatBar(determinate ? state.percent : void 0);
|
|
153
|
-
return `${state.label} ${bar} ${formatSeconds(duration)}${heap}`;
|
|
155
|
+
return `${state.label} ${bar} ${formatSeconds(duration)}${heap}${window}`;
|
|
154
156
|
}
|
|
155
157
|
/**
|
|
156
158
|
* Accumulates progress events into the normalized text report: a live
|
|
@@ -211,6 +213,9 @@ export class LoadLogAccumulator {
|
|
|
211
213
|
current.startHeapMb ??= event.memoryMb;
|
|
212
214
|
current.lastHeapMb = event.memoryMb;
|
|
213
215
|
}
|
|
216
|
+
if (event.residentSourceMb !== void 0) {
|
|
217
|
+
current.residentSourceMb = event.residentSourceMb;
|
|
218
|
+
}
|
|
214
219
|
if (event.total !== void 0 && event.total > 0) {
|
|
215
220
|
current.percent = (event.completed / event.total) * PERCENT;
|
|
216
221
|
}
|
|
@@ -76,6 +76,27 @@ describe("LoadLogAccumulator", () => {
|
|
|
76
76
|
expect(log.finishedLines()[0]).toBe("Geometry: 16.500s, +220.000000 MB heap");
|
|
77
77
|
expect(log.totalLine()).toBe("Total: 16.500s, 500.000000 \u2192 720.000000 MB heap");
|
|
78
78
|
});
|
|
79
|
+
test("appends window residency on the Geometry line when provided", () => {
|
|
80
|
+
const log = new LoadLogAccumulator();
|
|
81
|
+
log.onProgress({
|
|
82
|
+
phase: "geometry",
|
|
83
|
+
completed: 0,
|
|
84
|
+
total: 10,
|
|
85
|
+
elapsedMs: 0,
|
|
86
|
+
memoryMb: 100,
|
|
87
|
+
residentSourceMb: 64,
|
|
88
|
+
});
|
|
89
|
+
log.onProgress({
|
|
90
|
+
phase: "geometry",
|
|
91
|
+
completed: 10,
|
|
92
|
+
total: 10,
|
|
93
|
+
elapsedMs: 1000,
|
|
94
|
+
memoryMb: 120,
|
|
95
|
+
residentSourceMb: 64,
|
|
96
|
+
});
|
|
97
|
+
log.closeCurrentStage();
|
|
98
|
+
expect(log.finishedLines()[0]).toBe("Geometry: 1.000s, +20.000000 MB heap, window=64.000000 MB");
|
|
99
|
+
});
|
|
79
100
|
test("handles indeterminate stages and missing memory", () => {
|
|
80
101
|
const log = new LoadLogAccumulator();
|
|
81
102
|
log.onProgress({ phase: "geometry", completed: 0, elapsedMs: 0 });
|
|
@@ -60,6 +60,22 @@ describe("openStreamedIfcModel (Phase B3)", () => {
|
|
|
60
60
|
expect(() => openStreamedIfcModel(new BufferByteSource(bytes), new InMemoryStepByteStore(bytes.subarray(0, 100))))
|
|
61
61
|
.toThrow(/does not match/);
|
|
62
62
|
});
|
|
63
|
+
test("releaseSourceViews still lets a later read re-acquire", async () => {
|
|
64
|
+
const store = new InMemoryStepByteStore(bytes);
|
|
65
|
+
const fromStore = await openStreamedIfcModelFromStore(store, { pool: 4 * 1024 });
|
|
66
|
+
const model = fromStore.model;
|
|
67
|
+
const expressID = [...model.expressIDsOfTypes(IfcRoot)][0];
|
|
68
|
+
const localID = model.resolveExpressID(expressID);
|
|
69
|
+
await model.ensureResidentByLocalID(localID);
|
|
70
|
+
const first = model.getElementByExpressID(expressID);
|
|
71
|
+
expect(first).toBeDefined();
|
|
72
|
+
const args = first.extractLineArguments();
|
|
73
|
+
expect(args.length).toBeGreaterThan(0);
|
|
74
|
+
model.releaseSourceViews([localID]);
|
|
75
|
+
await model.ensureResidentByLocalID(localID);
|
|
76
|
+
const again = model.getElementByExpressID(expressID);
|
|
77
|
+
expect(again.extractLineArguments().length).toBe(args.length);
|
|
78
|
+
});
|
|
63
79
|
test("openStreamedIfcModelFromStore matches the sync open", async () => {
|
|
64
80
|
const store = new InMemoryStepByteStore(bytes);
|
|
65
81
|
const fromStore = await openStreamedIfcModelFromStore(store, { pool: 4 * 1024 });
|
|
@@ -156,7 +156,7 @@ export default class StepParser<TypeIDType> extends StepHeaderParser {
|
|
|
156
156
|
* @param onProgress Optional byte-cursor progress callback.
|
|
157
157
|
* @return {BlockParseResult} The parsing result, including the index and result enum.
|
|
158
158
|
*/
|
|
159
|
-
parseDataBlockStreamed(input: ParsingBuffer, onRecordBoundary: (input: ParsingBuffer) => void | Promise<void>, onRecordIndexed?: (localID: number, expressID: number, typeID: TypeIDType | undefined) => void, onProgress?: ParseProgressCallback, sink?: StepIndexSink<TypeIDType>): BlockParseResult<TypeIDType>;
|
|
159
|
+
parseDataBlockStreamed(input: ParsingBuffer, onRecordBoundary: (input: ParsingBuffer) => void | Promise<void>, onRecordIndexed?: (localID: number, expressID: number, typeID: TypeIDType | undefined, recordBytes?: Uint8Array) => void, onProgress?: ParseProgressCallback, sink?: StepIndexSink<TypeIDType>): BlockParseResult<TypeIDType>;
|
|
160
160
|
/**
|
|
161
161
|
* Cooperative variant of parseDataBlockStreamed: identical parse and
|
|
162
162
|
* window-slide behaviour (same generator body, same boundary callback),
|
|
@@ -177,7 +177,7 @@ export default class StepParser<TypeIDType> extends StepHeaderParser {
|
|
|
177
177
|
* @return {Promise<BlockParseResult>} The parsing result, including the
|
|
178
178
|
* index and result enum.
|
|
179
179
|
*/
|
|
180
|
-
parseDataBlockStreamedAsync(input: ParsingBuffer, onRecordBoundary: (input: ParsingBuffer) => void | Promise<void>, onRecordIndexed?: (localID: number, expressID: number, typeID: TypeIDType | undefined) => void, onProgress?: ParseProgressCallback, sink?: StepIndexSink<TypeIDType>, yieldIntervalMs?: number): Promise<BlockParseResult<TypeIDType>>;
|
|
180
|
+
parseDataBlockStreamedAsync(input: ParsingBuffer, onRecordBoundary: (input: ParsingBuffer) => void | Promise<void>, onRecordIndexed?: (localID: number, expressID: number, typeID: TypeIDType | undefined, recordBytes?: Uint8Array) => void, onProgress?: ParseProgressCallback, sink?: StepIndexSink<TypeIDType>, yieldIntervalMs?: number): Promise<BlockParseResult<TypeIDType>>;
|
|
181
181
|
/**
|
|
182
182
|
* Cooperative variant of parseDataBlock: identical parse (same generator
|
|
183
183
|
* body), but periodically awaits a macrotask so the event loop can run —
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step_parser.d.ts","sourceRoot":"","sources":["../../../../src/step/parsing/step_parser.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"step_parser.d.ts","sourceRoot":"","sources":["../../../../src/step/parsing/step_parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -631,7 +631,10 @@ export default class StepParser extends StepHeaderParser {
|
|
|
631
631
|
if (!charws(SEMICOLON)) {
|
|
632
632
|
return syntaxError();
|
|
633
633
|
}
|
|
634
|
-
|
|
634
|
+
{
|
|
635
|
+
const recordLen = input.address - startElement;
|
|
636
|
+
onRecordIndexed?.(topLevelCount, expressID, 0, input.buffer.subarray(input.cursor - recordLen, input.cursor));
|
|
637
|
+
}
|
|
635
638
|
++topLevelCount;
|
|
636
639
|
pushEntry({
|
|
637
640
|
address: startElement,
|
|
@@ -755,7 +758,10 @@ export default class StepParser extends StepHeaderParser {
|
|
|
755
758
|
if (!charws(SEMICOLON)) {
|
|
756
759
|
return syntaxError();
|
|
757
760
|
}
|
|
758
|
-
|
|
761
|
+
{
|
|
762
|
+
const recordLen = input.address - startElement;
|
|
763
|
+
onRecordIndexed?.(topLevelCount, expressID, foundItem, input.buffer.subarray(input.cursor - recordLen, input.cursor));
|
|
764
|
+
}
|
|
759
765
|
++topLevelCount;
|
|
760
766
|
pushEntry({
|
|
761
767
|
address: startElement,
|
|
@@ -67,7 +67,7 @@ export interface StreamingIndexResult<TypeIDType> {
|
|
|
67
67
|
* expensive work belongs on a demand queue, not the parse path.
|
|
68
68
|
* @return {StreamingIndexResult} The index, header, result and diagnostics.
|
|
69
69
|
*/
|
|
70
|
-
export declare function buildIndexStreaming<TypeIDType>(source: ByteSource, parser: StepParser<TypeIDType>, pool: number, onRecordIndexed?: (localID: number, expressID: number, typeID: TypeIDType | undefined) => void, sink?: StepIndexSink<TypeIDType>): StreamingIndexResult<TypeIDType>;
|
|
70
|
+
export declare function buildIndexStreaming<TypeIDType>(source: ByteSource, parser: StepParser<TypeIDType>, pool: number, onRecordIndexed?: (localID: number, expressID: number, typeID: TypeIDType | undefined, recordBytes?: Uint8Array) => void, sink?: StepIndexSink<TypeIDType>): StreamingIndexResult<TypeIDType>;
|
|
71
71
|
/**
|
|
72
72
|
* Cooperative twin of {@link buildIndexStreaming}: identical parse, window
|
|
73
73
|
* and grow-and-restart behaviour (mirrored the same way the parser mirrors
|
|
@@ -87,7 +87,7 @@ export declare function buildIndexStreaming<TypeIDType>(source: ByteSource, pars
|
|
|
87
87
|
* @return {Promise<StreamingIndexResult>} The index, header, result and
|
|
88
88
|
* diagnostics.
|
|
89
89
|
*/
|
|
90
|
-
export declare function buildIndexStreamingAsync<TypeIDType>(source: ReadableByteSource, parser: StepParser<TypeIDType>, pool: number, onRecordIndexed?: (localID: number, expressID: number, typeID: TypeIDType | undefined) => void, sink?: StepIndexSink<TypeIDType>, onProgress?: (absoluteByteCursor: number) => void, yieldIntervalMs?: number): Promise<StreamingIndexResult<TypeIDType>>;
|
|
90
|
+
export declare function buildIndexStreamingAsync<TypeIDType>(source: ReadableByteSource, parser: StepParser<TypeIDType>, pool: number, onRecordIndexed?: (localID: number, expressID: number, typeID: TypeIDType | undefined, recordBytes?: Uint8Array) => void, sink?: StepIndexSink<TypeIDType>, onProgress?: (absoluteByteCursor: number) => void, yieldIntervalMs?: number): Promise<StreamingIndexResult<TypeIDType>>;
|
|
91
91
|
/**
|
|
92
92
|
* The output of a columnar streaming index build: the index in its SoA
|
|
93
93
|
* column form (no object phase — see columnar_index.ts), plus the header and
|
|
@@ -113,7 +113,7 @@ export interface StreamingColumnarIndexResult<TypeIDType> {
|
|
|
113
113
|
* @param onRecordIndexed Optional per-record event (see buildIndexStreaming).
|
|
114
114
|
* @return {StreamingColumnarIndexResult} Columns, header, result, stats.
|
|
115
115
|
*/
|
|
116
|
-
export declare function buildColumnarIndexStreaming<TypeIDType extends number>(source: ByteSource, parser: StepParser<TypeIDType>, pool: number, onRecordIndexed?: (localID: number, expressID: number, typeID: TypeIDType | undefined) => void): StreamingColumnarIndexResult<TypeIDType>;
|
|
116
|
+
export declare function buildColumnarIndexStreaming<TypeIDType extends number>(source: ByteSource, parser: StepParser<TypeIDType>, pool: number, onRecordIndexed?: (localID: number, expressID: number, typeID: TypeIDType | undefined, recordBytes?: Uint8Array) => void): StreamingColumnarIndexResult<TypeIDType>;
|
|
117
117
|
/**
|
|
118
118
|
* Cooperative twin of {@link buildColumnarIndexStreaming}: identical
|
|
119
119
|
* columnar build, but the parse periodically yields to the event loop (see
|
|
@@ -129,5 +129,5 @@ export declare function buildColumnarIndexStreaming<TypeIDType extends number>(s
|
|
|
129
129
|
* @return {Promise<StreamingColumnarIndexResult>} Columns, header, result,
|
|
130
130
|
* stats.
|
|
131
131
|
*/
|
|
132
|
-
export declare function buildColumnarIndexStreamingAsync<TypeIDType extends number>(source: ReadableByteSource, parser: StepParser<TypeIDType>, pool: number, onRecordIndexed?: (localID: number, expressID: number, typeID: TypeIDType | undefined) => void, onProgress?: (absoluteByteCursor: number) => void, yieldIntervalMs?: number): Promise<StreamingColumnarIndexResult<TypeIDType>>;
|
|
132
|
+
export declare function buildColumnarIndexStreamingAsync<TypeIDType extends number>(source: ReadableByteSource, parser: StepParser<TypeIDType>, pool: number, onRecordIndexed?: (localID: number, expressID: number, typeID: TypeIDType | undefined, recordBytes?: Uint8Array) => void, onProgress?: (absoluteByteCursor: number) => void, yieldIntervalMs?: number): Promise<StreamingColumnarIndexResult<TypeIDType>>;
|
|
133
133
|
//# sourceMappingURL=streaming_index_builder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streaming_index_builder.d.ts","sourceRoot":"","sources":["../../../../src/step/parsing/streaming_index_builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAC9D,OAAO,EAAqB,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACtE,OAAO,UAAU,EAAE,EACjB,WAAW,EACX,UAAU,EACV,cAAc,EACd,aAAa,EACd,MAAM,eAAe,CAAA;AAGtB;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAElC,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAA;IAEZ;0CACsC;IACtC,WAAW,EAAE,MAAM,CAAA;IAEnB,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAA;IAEd,0DAA0D;IAC1D,YAAY,EAAE,MAAM,CAAA;IAEpB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAA;CAClB;AAGD;;;GAGG;AACH,MAAM,WAAW,oBAAoB,CAAC,UAAU;IAC9C,MAAM,EAAE,UAAU,CAAA;IAClB,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,EAAE,CAAA;IACtC,MAAM,EAAE,WAAW,CAAA;IACnB,KAAK,EAAE,mBAAmB,CAAA;CAC3B;AAGD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAC1C,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,UAAU,CAAC,UAAU,CAAC,EAC9B,IAAI,EAAE,MAAM,EACZ,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"streaming_index_builder.d.ts","sourceRoot":"","sources":["../../../../src/step/parsing/streaming_index_builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,9 +34,10 @@
|
|
|
34
34
|
* a {@link StepExternalByteStore} with an LRU residency cap.
|
|
35
35
|
* Records contained in one chunk are served as a view over it;
|
|
36
36
|
* records straddling chunks get a per-record merged copy. Eviction
|
|
37
|
-
* is advisory
|
|
38
|
-
*
|
|
39
|
-
*
|
|
37
|
+
* is advisory while a descriptor still holds a chunk view.
|
|
38
|
+
* {@link StepModelBase.releaseSourceViews} drops those views so
|
|
39
|
+
* the LRU can evict; the next sync read must `ensureResident`
|
|
40
|
+
* first (same as any other miss).
|
|
40
41
|
*
|
|
41
42
|
* The external store itself is environment-provided (OPFS in the
|
|
42
43
|
* browser, a file or memory in node) — this module only defines the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step_buffer_provider.d.ts","sourceRoot":"","sources":["../../../src/step/step_buffer_provider.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"step_buffer_provider.d.ts","sourceRoot":"","sources":["../../../src/step/step_buffer_provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,9 +34,10 @@
|
|
|
34
34
|
* a {@link StepExternalByteStore} with an LRU residency cap.
|
|
35
35
|
* Records contained in one chunk are served as a view over it;
|
|
36
36
|
* records straddling chunks get a per-record merged copy. Eviction
|
|
37
|
-
* is advisory
|
|
38
|
-
*
|
|
39
|
-
*
|
|
37
|
+
* is advisory while a descriptor still holds a chunk view.
|
|
38
|
+
* {@link StepModelBase.releaseSourceViews} drops those views so
|
|
39
|
+
* the LRU can evict; the next sync read must `ensureResident`
|
|
40
|
+
* first (same as any other miss).
|
|
40
41
|
*
|
|
41
42
|
* The external store itself is environment-provided (OPFS in the
|
|
42
43
|
* browser, a file or memory in node) — this module only defines the
|
|
@@ -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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"}
|