@ifc-lite/server-client 1.24.0 → 2.1.0
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/README.md +28 -1
- package/dist/client.d.ts +29 -3
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +89 -162
- package/dist/client.js.map +1 -1
- package/dist/data-model-decoder.d.ts +4 -0
- package/dist/data-model-decoder.d.ts.map +1 -1
- package/dist/data-model-decoder.js +14 -8
- package/dist/data-model-decoder.js.map +1 -1
- package/dist/geometry-diagnostics-types.d.ts +124 -0
- package/dist/geometry-diagnostics-types.d.ts.map +1 -0
- package/dist/geometry-diagnostics-types.js +5 -0
- package/dist/geometry-diagnostics-types.js.map +1 -0
- package/dist/parquet-columns.d.ts +22 -4
- package/dist/parquet-columns.d.ts.map +1 -1
- package/dist/parquet-columns.js +32 -0
- package/dist/parquet-columns.js.map +1 -1
- package/dist/parquet-decoder.d.ts +3 -1
- package/dist/parquet-decoder.d.ts.map +1 -1
- package/dist/parquet-decoder.js +40 -70
- package/dist/parquet-decoder.js.map +1 -1
- package/dist/parquet-nullable.d.ts +26 -0
- package/dist/parquet-nullable.d.ts.map +1 -0
- package/dist/parquet-nullable.js +36 -0
- package/dist/parquet-nullable.js.map +1 -0
- package/dist/parquet-rotation.d.ts +70 -0
- package/dist/parquet-rotation.d.ts.map +1 -0
- package/dist/parquet-rotation.js +96 -0
- package/dist/parquet-rotation.js.map +1 -0
- package/dist/parquet-stream-events.d.ts +23 -0
- package/dist/parquet-stream-events.d.ts.map +1 -0
- package/dist/parquet-stream-events.js +133 -0
- package/dist/parquet-stream-events.js.map +1 -0
- package/dist/parquet-tables.d.ts +11 -1
- package/dist/parquet-tables.d.ts.map +1 -1
- package/dist/parquet-tables.js +45 -59
- package/dist/parquet-tables.js.map +1 -1
- package/dist/parse-query.d.ts +18 -0
- package/dist/parse-query.d.ts.map +1 -0
- package/dist/parse-query.js +21 -0
- package/dist/parse-query.js.map +1 -0
- package/dist/symbolic-types.d.ts +2 -0
- package/dist/symbolic-types.d.ts.map +1 -1
- package/dist/types.d.ts +8 -46
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -1
- package/package.json +4 -3
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* Decode Parquet-encoded data model from server.
|
|
6
6
|
*/
|
|
7
7
|
import { ensureParquetInit } from './parquet-decoder.js';
|
|
8
|
+
import { nullableFloat64Column } from './parquet-nullable.js';
|
|
8
9
|
/**
|
|
9
10
|
* Columnar entity index for the server data model (issue #1841).
|
|
10
11
|
*
|
|
@@ -155,11 +156,10 @@ export class ServerEntityIndex {
|
|
|
155
156
|
}
|
|
156
157
|
}
|
|
157
158
|
/**
|
|
158
|
-
* Decode data model from Parquet buffer.
|
|
159
|
-
*
|
|
160
|
-
*
|
|
161
|
-
*
|
|
162
|
-
* toArray() decodes all strings in one pass which is 10-20x faster for large datasets.
|
|
159
|
+
* Decode data model from Parquet buffer. Bulk string columns use toArray()
|
|
160
|
+
* instead of per-element .get() (10-20x faster, no per-row UTF-8 decode); a
|
|
161
|
+
* NULLABLE numeric column is the exception — see `nullableFloat64Column` in
|
|
162
|
+
* `parquet-nullable.ts` for why toArray() alone silently turns a null into 0.
|
|
163
163
|
*
|
|
164
164
|
* Format: [entities_len][entities_data][properties_len][properties_data][quantities_len][quantities_data][relationships_len][relationships_data][spatial_len][spatial_data]
|
|
165
165
|
*/
|
|
@@ -350,6 +350,10 @@ export async function decodeDataModel(data) {
|
|
|
350
350
|
const relTypesArr = relationshipsArrow.getChild('rel_type')?.toArray();
|
|
351
351
|
const relatingIds = relationshipsArrow.getChild('relating_id')?.toArray();
|
|
352
352
|
const relatedIds = relationshipsArrow.getChild('related_id')?.toArray();
|
|
353
|
+
// rel_id arrives with the v6 payload (issue #3860). An older server sends no
|
|
354
|
+
// such column: leave the field absent rather than defaulting to 0, so a
|
|
355
|
+
// caller can tell "no id on the wire" from the genuine 0 on synthetic rows.
|
|
356
|
+
const relIds = relationshipsArrow.getChild('rel_id')?.toArray();
|
|
353
357
|
// Pre-allocate array for better performance
|
|
354
358
|
const relationships = new Array(relatingIds.length);
|
|
355
359
|
for (let i = 0; i < relatingIds.length; i++) {
|
|
@@ -358,6 +362,8 @@ export async function decodeDataModel(data) {
|
|
|
358
362
|
relating_id: relatingIds[i],
|
|
359
363
|
related_id: relatedIds[i],
|
|
360
364
|
};
|
|
365
|
+
if (relIds !== undefined)
|
|
366
|
+
relationships[i].rel_id = relIds[i];
|
|
361
367
|
}
|
|
362
368
|
// Parse spatial hierarchy - format: [nodes_len][nodes_data][element_to_storey_len][element_to_storey_data]...
|
|
363
369
|
const spatialView = new DataView(spatialData.buffer, spatialData.byteOffset, spatialData.byteLength);
|
|
@@ -391,7 +397,7 @@ export async function decodeDataModel(data) {
|
|
|
391
397
|
const pathsArr = nodesArrow.getChild('path')?.toArray();
|
|
392
398
|
const spatialTypeNamesArr = nodesArrow.getChild('type_name')?.toArray();
|
|
393
399
|
const spatialNamesArr = nodesArrow.getChild('name')?.toArray();
|
|
394
|
-
const elevationsArr = nodesArrow
|
|
400
|
+
const elevationsArr = nullableFloat64Column(nodesArrow, 'elevation');
|
|
395
401
|
const childrenIdsList = nodesArrow.getChild('children_ids');
|
|
396
402
|
const elementIdsList = nodesArrow.getChild('element_ids');
|
|
397
403
|
// Pre-allocate array for spatial nodes
|
|
@@ -421,7 +427,7 @@ export async function decodeDataModel(data) {
|
|
|
421
427
|
path: pathsArr[i] ?? '',
|
|
422
428
|
type_name: spatialTypeNamesArr[i] ?? '',
|
|
423
429
|
name: spatialNamesArr[i] || undefined,
|
|
424
|
-
elevation: elevationsArr[i] ?? undefined,
|
|
430
|
+
elevation: elevationsArr?.[i] ?? undefined,
|
|
425
431
|
children_ids: childrenIds,
|
|
426
432
|
element_ids: elementIds,
|
|
427
433
|
};
|
|
@@ -473,7 +479,7 @@ export async function decodeDataModel(data) {
|
|
|
473
479
|
const setNames = t.getChild('set_name')?.toArray();
|
|
474
480
|
const layerIndices = t.getChild('layer_index')?.toArray();
|
|
475
481
|
const materialNames = t.getChild('material_name')?.toArray();
|
|
476
|
-
const thicknesses = t
|
|
482
|
+
const thicknesses = nullableFloat64Column(t, 'thickness');
|
|
477
483
|
const ventChild = t.getChild('is_ventilated');
|
|
478
484
|
const categories = t.getChild('category')?.toArray();
|
|
479
485
|
for (let i = 0; i < elementIds.length; i++) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-model-decoder.js","sourceRoot":"","sources":["../src/data-model-decoder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"data-model-decoder.js","sourceRoot":"","sources":["../src/data-model-decoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The CSG / opening diagnostics wire shape of the parse response.
|
|
3
|
+
*
|
|
4
|
+
* WHY THIS IS A COPY. `@ifc-lite/geometry` owns the canonical
|
|
5
|
+
* `GeometryDiagnostics` (packages/geometry/src/diagnostics.ts), and re-exporting
|
|
6
|
+
* it would be the obvious way to have one definition. This package deliberately
|
|
7
|
+
* ships with an empty `dependencies` map: it is the thin HTTP client, usable in
|
|
8
|
+
* a browser or a Node service that never loads the geometry stack, and
|
|
9
|
+
* `@ifc-lite/geometry` pulls in `@ifc-lite/wasm` (a cargo/wasm-pack build) plus
|
|
10
|
+
* `@ifc-lite/data`. A type-only import would not stay type-only either -
|
|
11
|
+
* declaration emit writes the cross-package reference into `dist/index.d.ts`,
|
|
12
|
+
* so every consumer would have to have the geometry package installed to
|
|
13
|
+
* typecheck. The copy is the cheaper trade.
|
|
14
|
+
*
|
|
15
|
+
* WHAT KEEPS THE COPY HONEST. `geometry-diagnostics-contract.test.ts` compares
|
|
16
|
+
* this interface with the canonical one field by field at COMPILE TIME, so a
|
|
17
|
+
* field added on either side fails `pnpm typecheck` instead of drifting the way
|
|
18
|
+
* this file drifted through #3691, #3752 and #3766 (issue #3857).
|
|
19
|
+
*
|
|
20
|
+
* Split out of `types.ts` under the module-size ratchet, following the
|
|
21
|
+
* `symbolic-types.ts` precedent (#3199); `types.ts` re-exports it, so the
|
|
22
|
+
* package's public surface is unchanged.
|
|
23
|
+
*
|
|
24
|
+
* Field names are camelCase because the Rust producer's `rename_all` says so -
|
|
25
|
+
* unlike the snake_case response envelope this type sits inside.
|
|
26
|
+
*/
|
|
27
|
+
/**
|
|
28
|
+
* CSG / opening diagnostics for a geometry pass. Mirrors the Rust
|
|
29
|
+
* `GeometryDiagnostics` (camelCase serde) the server and the WASM batch path both
|
|
30
|
+
* emit. `totalCsgFailures` and the classification counts are exact;
|
|
31
|
+
* `productsWithFailures`, `hostsWithOpenings` and `silentNoOps` are batch-summed
|
|
32
|
+
* upper bounds.
|
|
33
|
+
*/
|
|
34
|
+
export interface GeometryDiagnostics {
|
|
35
|
+
/**
|
|
36
|
+
* Contract version handshake (mirrors Rust
|
|
37
|
+
* `GEOMETRY_DIAGNOSTICS_SCHEMA_VERSION`, currently 3). Bumped on field
|
|
38
|
+
* renames/removals and count-semantics changes; also on an additive field
|
|
39
|
+
* whose absence a consumer must tell apart from a real zero, which is why 3
|
|
40
|
+
* (added `totalUnsupportedItems`) bumped. A purely additive optional field
|
|
41
|
+
* that no consumer gates on does not bump. Kept worded the same as the
|
|
42
|
+
* canonical copy in `@ifc-lite/geometry`: the structural contract test cannot
|
|
43
|
+
* see comments, so a rule stated two ways here is drift nothing catches.
|
|
44
|
+
*
|
|
45
|
+
* REQUIRED, not optional: the Rust field is a plain `u32` serialized
|
|
46
|
+
* unconditionally, so every producer since #1514 writes the key. A value of
|
|
47
|
+
* `0` is what Rust's `#[serde(default)]` yields when it READS a payload
|
|
48
|
+
* written before #1514, and is the only "pre-versioned producer" signal a
|
|
49
|
+
* consumer sees.
|
|
50
|
+
*/
|
|
51
|
+
schemaVersion: number;
|
|
52
|
+
/** Total CSG boolean failures (un-cut openings, emptied hosts, kernel fallbacks). */
|
|
53
|
+
totalCsgFailures: number;
|
|
54
|
+
/** Distinct products with at least one failure (batch-summed upper bound). */
|
|
55
|
+
productsWithFailures: number;
|
|
56
|
+
/** Hosts that had openings processed (batch-summed upper bound). */
|
|
57
|
+
hostsWithOpenings: number;
|
|
58
|
+
/** Opening-classifier outcome counts. */
|
|
59
|
+
classification: {
|
|
60
|
+
rectangular: number;
|
|
61
|
+
diagonal: number;
|
|
62
|
+
nonRectangular: number;
|
|
63
|
+
total: number;
|
|
64
|
+
};
|
|
65
|
+
/** Failure counts by stable reason label, sorted desc by count. */
|
|
66
|
+
failuresByReason: Array<{
|
|
67
|
+
reason: string;
|
|
68
|
+
count: number;
|
|
69
|
+
}>;
|
|
70
|
+
/**
|
|
71
|
+
* Hosts where rectangular cutters ran, the triangle count was unchanged, and NO
|
|
72
|
+
* failure was recorded (cut attempted, geometry not modified). Batch-summed
|
|
73
|
+
* upper bound.
|
|
74
|
+
*/
|
|
75
|
+
silentNoOps: number;
|
|
76
|
+
/** rect_fast fast-path engagement (perf observability). */
|
|
77
|
+
rectFast: {
|
|
78
|
+
fired: number;
|
|
79
|
+
openingsCut: number;
|
|
80
|
+
deferHostNotBox: number;
|
|
81
|
+
deferNotThrough: number;
|
|
82
|
+
deferOffFace: number;
|
|
83
|
+
deferNearEdge: number;
|
|
84
|
+
deferNoOpenings: number;
|
|
85
|
+
/** Optional: absent on payloads produced before this counter existed (#1649). */
|
|
86
|
+
deferTooManyOpenings?: number;
|
|
87
|
+
};
|
|
88
|
+
/**
|
|
89
|
+
* Content-hash references the geometry pass refused because they exceeded
|
|
90
|
+
* `u32::MAX` (#3421 / #3752). Nonzero means some instancing was skipped, not
|
|
91
|
+
* that geometry is wrong. Optional: absent on payloads from producers
|
|
92
|
+
* predating the counter.
|
|
93
|
+
*/
|
|
94
|
+
oversizedRefDrops?: number;
|
|
95
|
+
/** Bounded top-N worst-failing hosts (opt-in per-product detail). */
|
|
96
|
+
worstHosts: Array<{
|
|
97
|
+
productId: number;
|
|
98
|
+
ifcType: string;
|
|
99
|
+
openings: number;
|
|
100
|
+
csgFailures: number;
|
|
101
|
+
firstFailureLabel?: string;
|
|
102
|
+
/** World-space AABB of the host mesh, when a void cut captured it.
|
|
103
|
+
* Mirrors the `{min, max}` shape used by `MeshData.localBounds`. */
|
|
104
|
+
bbox?: {
|
|
105
|
+
min: [number, number, number];
|
|
106
|
+
max: [number, number, number];
|
|
107
|
+
};
|
|
108
|
+
/** Final triangle count of the host's mesh (post-cut when a void
|
|
109
|
+
* subtraction ran, otherwise the pre-cut count). */
|
|
110
|
+
triangleCount?: number;
|
|
111
|
+
}>;
|
|
112
|
+
/**
|
|
113
|
+
* Representation items dropped from the mesh output because no processor is
|
|
114
|
+
* registered for the item's type, or the registered processor errored (#3691).
|
|
115
|
+
* Optional: absent on payloads from producers predating the counter.
|
|
116
|
+
*/
|
|
117
|
+
totalUnsupportedItems?: number;
|
|
118
|
+
/** `totalUnsupportedItems` broken down by IFC type, sorted desc by count. */
|
|
119
|
+
unsupportedItemsByType?: Array<{
|
|
120
|
+
reason: string;
|
|
121
|
+
count: number;
|
|
122
|
+
}>;
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=geometry-diagnostics-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geometry-diagnostics-types.d.ts","sourceRoot":"","sources":["../src/geometry-diagnostics-types.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;;;;;;;;;;;OAeG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB,qFAAqF;IACrF,gBAAgB,EAAE,MAAM,CAAC;IACzB,8EAA8E;IAC9E,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oEAAoE;IACpE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,yCAAyC;IACzC,cAAc,EAAE;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,MAAM,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,mEAAmE;IACnE,gBAAgB,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,eAAe,EAAE,MAAM,CAAC;QACxB,iFAAiF;QACjF,oBAAoB,CAAC,EAAE,MAAM,CAAC;KAC/B,CAAC;IACF;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qEAAqE;IACrE,UAAU,EAAE,KAAK,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B;6EACqE;QACrE,IAAI,CAAC,EAAE;YAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAAC,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;SAAE,CAAC;QACxE;6DACqD;QACrD,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;IACH;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,6EAA6E;IAC7E,sBAAsB,CAAC,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnE"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
+
export {};
|
|
5
|
+
//# sourceMappingURL=geometry-diagnostics-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geometry-diagnostics-types.js","sourceRoot":"","sources":["../src/geometry-diagnostics-types.ts"],"names":[],"mappings":"AAAA;;+DAE+D"}
|
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
* The column layer shared by both Parquet decoders.
|
|
3
3
|
*
|
|
4
4
|
* Split out of `parquet-tables.ts` when #3215 pushed that file past its
|
|
5
|
-
* module-size budget. The gate's
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* module-size budget. The gate's default is shrink or split; a raise is
|
|
6
|
+
* sanctioned but wants a per-file justification in the PR, and none was needed
|
|
7
|
+
* here, because the seam was already there: the two decoders differ in row
|
|
8
|
+
* count and identity column, but resolve the SAME additive trailing block,
|
|
9
|
+
* which the server builds from one `shared_trailing_fields()` in
|
|
9
10
|
* `apps/server/src/services/parquet_schema.rs`.
|
|
10
11
|
*/
|
|
12
|
+
import type { MeshData } from './types.js';
|
|
11
13
|
import type { ArrowTableLike } from './parquet-tables.js';
|
|
12
14
|
/**
|
|
13
15
|
* Absent marker for the two source ids; mirrors the constants in
|
|
@@ -60,4 +62,20 @@ export declare function meshColumns(table: ArrowTableLike, rowCount: number): {
|
|
|
60
62
|
};
|
|
61
63
|
/** One source-id column at one row, or `undefined` when absent. */
|
|
62
64
|
export declare function readSourceId(column: ArrayLike<number> | undefined, index: number): number | undefined;
|
|
65
|
+
/**
|
|
66
|
+
* The canonical per-mesh transform metadata, spread into the `MeshData` literal.
|
|
67
|
+
*
|
|
68
|
+
* `origin` is omitted when the frame IS the world origin and `geometry_class`
|
|
69
|
+
* when it is 0 (occurrence), so a world-baked mesh decodes to exactly the shape
|
|
70
|
+
* it had before these columns existed — and to the same shape on every
|
|
71
|
+
* transport (JSON, standard Parquet, optimized Parquet).
|
|
72
|
+
*/
|
|
73
|
+
export declare function transformFields(index: number, cols: {
|
|
74
|
+
originX?: ArrayLike<number>;
|
|
75
|
+
originY?: ArrayLike<number>;
|
|
76
|
+
originZ?: ArrayLike<number>;
|
|
77
|
+
geometryClass?: ArrayLike<number>;
|
|
78
|
+
geometryItemId?: ArrayLike<number>;
|
|
79
|
+
materialId?: ArrayLike<number>;
|
|
80
|
+
}): Partial<MeshData>;
|
|
63
81
|
//# sourceMappingURL=parquet-columns.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parquet-columns.d.ts","sourceRoot":"","sources":["../src/parquet-columns.ts"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"parquet-columns.d.ts","sourceRoot":"","sources":["../src/parquet-columns.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,gBAAgB,aAAa,CAAC;AAE3C,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAEhG;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAG/B;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM;;;;;;;EASlE;AAED,mEAAmE;AACnE,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGrG;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE;IACJ,OAAO,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAC5B,aAAa,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAClC,cAAc,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACnC,UAAU,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;CAChC,GACA,OAAO,CAAC,QAAQ,CAAC,CA0BnB"}
|
package/dist/parquet-columns.js
CHANGED
|
@@ -62,4 +62,36 @@ export function readSourceId(column, index) {
|
|
|
62
62
|
const v = column?.[index];
|
|
63
63
|
return v && v !== ABSENT_SOURCE_ID ? v : undefined;
|
|
64
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* The canonical per-mesh transform metadata, spread into the `MeshData` literal.
|
|
67
|
+
*
|
|
68
|
+
* `origin` is omitted when the frame IS the world origin and `geometry_class`
|
|
69
|
+
* when it is 0 (occurrence), so a world-baked mesh decodes to exactly the shape
|
|
70
|
+
* it had before these columns existed — and to the same shape on every
|
|
71
|
+
* transport (JSON, standard Parquet, optimized Parquet).
|
|
72
|
+
*/
|
|
73
|
+
export function transformFields(index, cols) {
|
|
74
|
+
// A usable column can still carry a non-finite VALUE at this row. `||` alone
|
|
75
|
+
// misses it: an all-NaN triplet is already dropped, but a PARTIAL one
|
|
76
|
+
// (`[NaN, 5, 0]`) is truthy and the NaN would poison bounds math. Not a
|
|
77
|
+
// throw -- this file throws only for STRUCTURAL malformation.
|
|
78
|
+
const ox = cols.originX?.[index];
|
|
79
|
+
const oy = cols.originY?.[index];
|
|
80
|
+
const oz = cols.originZ?.[index];
|
|
81
|
+
const originFinite = Number.isFinite(ox) && Number.isFinite(oy) && Number.isFinite(oz);
|
|
82
|
+
const origin = originFinite && (ox || oy || oz) ? [ox, oy, oz] : undefined;
|
|
83
|
+
const geometry_class = cols.geometryClass?.[index] || undefined;
|
|
84
|
+
// Sentinel, not null (#3215): a nullable column's values buffer is undefined
|
|
85
|
+
// at null rows and parquet-wasm 0.7.x leaks the NEIGHBOURING row's id into it
|
|
86
|
+
// -- a material-less mesh decoded as `material_id: 902`, a real-looking id
|
|
87
|
+
// for another entity. Non-nullable means no validity bitmap to leak.
|
|
88
|
+
const geometry_item_id = readSourceId(cols.geometryItemId, index);
|
|
89
|
+
const material_id = readSourceId(cols.materialId, index);
|
|
90
|
+
return {
|
|
91
|
+
...(origin ? { origin } : {}),
|
|
92
|
+
...(geometry_class ? { geometry_class } : {}),
|
|
93
|
+
...(geometry_item_id ? { geometry_item_id } : {}),
|
|
94
|
+
...(material_id ? { material_id } : {}),
|
|
95
|
+
};
|
|
96
|
+
}
|
|
65
97
|
//# sourceMappingURL=parquet-columns.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parquet-columns.js","sourceRoot":"","sources":["../src/parquet-columns.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,sEAAsE;AACtE,4DAA4D;
|
|
1
|
+
{"version":3,"file":"parquet-columns.js","sourceRoot":"","sources":["../src/parquet-columns.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,13 +5,14 @@
|
|
|
5
5
|
* Uses parquet-wasm for efficient Parquet parsing in the browser.
|
|
6
6
|
*/
|
|
7
7
|
import type { MeshData } from './types.js';
|
|
8
|
+
type ParquetModule = typeof import('parquet-wasm');
|
|
8
9
|
/**
|
|
9
10
|
* Ensure parquet-wasm WASM module is initialized.
|
|
10
11
|
* This MUST be called before using any parquet functions.
|
|
11
12
|
*
|
|
12
13
|
* @returns Initialized parquet-wasm module
|
|
13
14
|
*/
|
|
14
|
-
export declare function ensureParquetInit(): Promise<
|
|
15
|
+
export declare function ensureParquetInit(): Promise<ParquetModule>;
|
|
15
16
|
/**
|
|
16
17
|
* Decode a Parquet geometry response from the server.
|
|
17
18
|
*
|
|
@@ -49,4 +50,5 @@ export declare function isParquetAvailable(): Promise<boolean>;
|
|
|
49
50
|
* @returns Decoded MeshData array
|
|
50
51
|
*/
|
|
51
52
|
export declare function decodeOptimizedParquetGeometry(data: ArrayBuffer, vertexMultiplier?: number): Promise<MeshData[]>;
|
|
53
|
+
export {};
|
|
52
54
|
//# sourceMappingURL=parquet-decoder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parquet-decoder.d.ts","sourceRoot":"","sources":["../src/parquet-decoder.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"parquet-decoder.d.ts","sourceRoot":"","sources":["../src/parquet-decoder.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQ3C,KAAK,aAAa,GAAG,cAAc,cAAc,CAAC,CAAC;AAGnD;;;;;GAKG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,aAAa,CAAC,CAQhE;AAkDD;;;;;;;;;;GAUG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CA2ClF;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC,CAS3D;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,8BAA8B,CAClD,IAAI,EAAE,WAAW,EACjB,gBAAgB,GAAE,MAAc,GAC/B,OAAO,CAAC,QAAQ,EAAE,CAAC,CA4ErB"}
|
package/dist/parquet-decoder.js
CHANGED
|
@@ -2,10 +2,7 @@
|
|
|
2
2
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
4
|
import { buildMeshesFromTables, buildMeshesFromOptimizedTables } from './parquet-tables.js';
|
|
5
|
-
|
|
6
|
-
// WASM initialization state
|
|
7
|
-
let parquetInitialized = false;
|
|
8
|
-
let parquetModule = null;
|
|
5
|
+
let parquetInit = null;
|
|
9
6
|
/**
|
|
10
7
|
* Ensure parquet-wasm WASM module is initialized.
|
|
11
8
|
* This MUST be called before using any parquet functions.
|
|
@@ -13,73 +10,39 @@ let parquetModule = null;
|
|
|
13
10
|
* @returns Initialized parquet-wasm module
|
|
14
11
|
*/
|
|
15
12
|
export async function ensureParquetInit() {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
console.warn('[parquet-decoder] ESM build initialized but readParquet not found');
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
catch (e) {
|
|
47
|
-
console.warn('[parquet-decoder] ESM import failed:', e);
|
|
48
|
-
}
|
|
49
|
-
// Strategy 2: Try web build with fetch (alternative for browsers)
|
|
50
|
-
try {
|
|
51
|
-
parquet = await import('parquet-wasm/esm/arrow2.js');
|
|
52
|
-
if (typeof parquet.default === 'function') {
|
|
53
|
-
console.log('[parquet-decoder] Trying web init with node_modules path...');
|
|
54
|
-
// Try common paths where WASM might be served
|
|
55
|
-
const wasmPaths = [
|
|
56
|
-
'/node_modules/parquet-wasm/esm/arrow2_bg.wasm',
|
|
57
|
-
'./node_modules/parquet-wasm/esm/arrow2_bg.wasm',
|
|
58
|
-
];
|
|
59
|
-
for (const wasmPath of wasmPaths) {
|
|
60
|
-
try {
|
|
61
|
-
const response = await fetch(wasmPath);
|
|
62
|
-
if (response.ok) {
|
|
63
|
-
console.log('[parquet-decoder] Found WASM at:', wasmPath);
|
|
64
|
-
await parquet.default(response);
|
|
65
|
-
if (typeof parquet.readParquet === 'function') {
|
|
66
|
-
parquetModule = parquet;
|
|
67
|
-
parquetInitialized = true;
|
|
68
|
-
console.log('[parquet-decoder] Web init successful');
|
|
69
|
-
return parquet;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
catch {
|
|
74
|
-
// Try next path
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
13
|
+
parquetInit ?? (parquetInit = loadParquet().catch((err) => {
|
|
14
|
+
// Do not cache a failed init: a later call (e.g. after the WASM asset
|
|
15
|
+
// becomes reachable) should be able to try again.
|
|
16
|
+
parquetInit = null;
|
|
17
|
+
throw err;
|
|
18
|
+
}));
|
|
19
|
+
return parquetInit;
|
|
20
|
+
}
|
|
21
|
+
async function loadParquet() {
|
|
22
|
+
// Import the package entry point and let its export map choose the build.
|
|
23
|
+
// Deep-importing a build (this module used `parquet-wasm/esm/arrow2.js`)
|
|
24
|
+
// breaks on parquet-wasm 0.6+, where that path no longer exists (#3845).
|
|
25
|
+
const parquet = await import('parquet-wasm');
|
|
26
|
+
// The browser/bundler ESM build does nothing until its default export is
|
|
27
|
+
// awaited; without it every call throws `Cannot read properties of
|
|
28
|
+
// undefined (reading '__wbindgen_malloc')`. The Node build initializes
|
|
29
|
+
// itself on import and exposes no default init, hence the guard rather
|
|
30
|
+
// than an unconditional call. Same shape as
|
|
31
|
+
// packages/export/src/columns-to-parquet.ts.
|
|
32
|
+
//
|
|
33
|
+
// The cast is the price of that guard: TypeScript resolves the export map
|
|
34
|
+
// under the `node` condition, so it only ever sees the Node build's types,
|
|
35
|
+
// where `default` is the CommonJS namespace object and not callable. Which
|
|
36
|
+
// build actually loads is a runtime question, so ask at runtime.
|
|
37
|
+
const init = parquet.default;
|
|
38
|
+
if (typeof init === 'function') {
|
|
39
|
+
await init();
|
|
78
40
|
}
|
|
79
|
-
|
|
80
|
-
|
|
41
|
+
if (typeof parquet.readParquet !== 'function') {
|
|
42
|
+
throw new Error('parquet-wasm: module loaded but readParquet is missing. ' +
|
|
43
|
+
'Install a supported parquet-wasm version (see this package\'s peerDependencies).');
|
|
81
44
|
}
|
|
82
|
-
|
|
45
|
+
return parquet;
|
|
83
46
|
}
|
|
84
47
|
/**
|
|
85
48
|
* Decode a Parquet geometry response from the server.
|
|
@@ -177,9 +140,15 @@ export async function decodeOptimizedParquetGeometry(data, vertexMultiplier = 10
|
|
|
177
140
|
// Read header
|
|
178
141
|
const version = view.getUint8(offset);
|
|
179
142
|
offset += 1;
|
|
180
|
-
|
|
143
|
+
// v2: no rotation columns (pre-#3575), every instance decodes as identity.
|
|
144
|
+
// v3: instance table carries rot0..rot8 (#3575) — `readRotationColumns`
|
|
145
|
+
// (parquet-tables.ts) reads them when present; `buildMeshesFromOptimizedTables`
|
|
146
|
+
// rejects a v3 payload that omits/truncates them (malformed wire data),
|
|
147
|
+
// rather than silently falling back to identity as it would for v2.
|
|
148
|
+
if (version !== 2 && version !== 3) {
|
|
181
149
|
throw new Error(`Unsupported optimized Parquet version: ${version}`);
|
|
182
150
|
}
|
|
151
|
+
const wireVersion = version;
|
|
183
152
|
const flags = view.getUint8(offset);
|
|
184
153
|
offset += 1;
|
|
185
154
|
const hasNormals = (flags & 1) !== 0;
|
|
@@ -225,6 +194,7 @@ export async function decodeOptimizedParquetGeometry(data, vertexMultiplier = 10
|
|
|
225
194
|
indexArrow,
|
|
226
195
|
hasNormals,
|
|
227
196
|
vertexMultiplier,
|
|
197
|
+
wireVersion,
|
|
228
198
|
});
|
|
229
199
|
}
|
|
230
200
|
//# sourceMappingURL=parquet-decoder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parquet-decoder.js","sourceRoot":"","sources":["../src/parquet-decoder.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,sEAAsE;AACtE,4DAA4D;AAU5D,OAAO,EAAE,qBAAqB,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"parquet-decoder.js","sourceRoot":"","sources":["../src/parquet-decoder.ts"],"names":[],"mappings":"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"}
|