@ifc-lite/server-client 1.19.0 → 1.21.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.
@@ -0,0 +1,360 @@
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
+ /** Read a numeric column, or `undefined` when the table does not carry it. */
5
+ function numericColumn(table, name) {
6
+ return table.getChild(name)?.toArray();
7
+ }
8
+ /**
9
+ * True when all three origin components are present AND parallel to `rowCount`.
10
+ *
11
+ * A short or partial set (truncated payload, or a server predating the columns)
12
+ * must fall back to "no origin" rather than index past the end into `undefined`
13
+ * -> NaN. Shared by both decoders so the standard and instanced paths can never
14
+ * disagree about when the origin is trustworthy.
15
+ */
16
+ function originIsUsable(x, y, z, rowCount) {
17
+ return (!!x && !!y && !!z && x.length === rowCount && y.length === rowCount && z.length === rowCount);
18
+ }
19
+ /**
20
+ * The canonical per-mesh transform metadata, spread into the `MeshData` literal.
21
+ *
22
+ * `origin` is omitted when the frame IS the world origin and `geometry_class`
23
+ * when it is 0 (occurrence), so a world-baked mesh decodes to exactly the shape
24
+ * it had before these columns existed — and to the same shape on every
25
+ * transport (JSON, standard Parquet, optimized Parquet).
26
+ */
27
+ function transformFields(index, originX, originY, originZ, hasOrigin, geometryClass, hasGeometryClass) {
28
+ const origin = hasOrigin && (originX[index] || originY[index] || originZ[index])
29
+ ? [originX[index], originY[index], originZ[index]]
30
+ : undefined;
31
+ const geometry_class = hasGeometryClass && geometryClass[index] ? geometryClass[index] : undefined;
32
+ return {
33
+ ...(origin ? { origin } : {}),
34
+ ...(geometry_class ? { geometry_class } : {}),
35
+ };
36
+ }
37
+ /**
38
+ * Rebuild `MeshData[]` from the standard (non-instanced) three-table layout.
39
+ *
40
+ * Positions/normals are already Y-up metres — the server applies the axis swap
41
+ * once, in `services::axis` (issue #1841), so every transport agrees.
42
+ */
43
+ export function buildMeshesFromTables(meshArrow, vertexArrow, indexArrow) {
44
+ // Extract columns from mesh table
45
+ const expressIds = numericColumn(meshArrow, 'express_id');
46
+ const ifcTypes = meshArrow.getChild('ifc_type');
47
+ const vertexStarts = numericColumn(meshArrow, 'vertex_start');
48
+ const vertexCounts = numericColumn(meshArrow, 'vertex_count');
49
+ const indexStarts = numericColumn(meshArrow, 'index_start');
50
+ const indexCounts = numericColumn(meshArrow, 'index_count');
51
+ const colorR = numericColumn(meshArrow, 'color_r');
52
+ const colorG = numericColumn(meshArrow, 'color_g');
53
+ const colorB = numericColumn(meshArrow, 'color_b');
54
+ const colorA = numericColumn(meshArrow, 'color_a');
55
+ // Per-mesh local-frame origin + geometry provenance (issue #1841). Additive
56
+ // columns — absent on payloads/caches from servers predating this field, in
57
+ // which case origin defaults to [0,0,0] (world-baked, the prior behaviour).
58
+ const originX = numericColumn(meshArrow, 'origin_x');
59
+ const originY = numericColumn(meshArrow, 'origin_y');
60
+ const originZ = numericColumn(meshArrow, 'origin_z');
61
+ const geometryClass = numericColumn(meshArrow, 'geometry_class');
62
+ if (!expressIds || !vertexStarts || !vertexCounts || !indexStarts || !indexCounts) {
63
+ throw new Error('Malformed Parquet geometry: missing required mesh column');
64
+ }
65
+ if (!colorR || !colorG || !colorB || !colorA) {
66
+ throw new Error('Malformed Parquet geometry: missing required color column');
67
+ }
68
+ // Extract columns from vertex table
69
+ const posX = numericColumn(vertexArrow, 'x');
70
+ const posY = numericColumn(vertexArrow, 'y');
71
+ const posZ = numericColumn(vertexArrow, 'z');
72
+ const normX = numericColumn(vertexArrow, 'nx');
73
+ const normY = numericColumn(vertexArrow, 'ny');
74
+ const normZ = numericColumn(vertexArrow, 'nz');
75
+ // Extract columns from index table
76
+ const idx0 = numericColumn(indexArrow, 'i0');
77
+ const idx1 = numericColumn(indexArrow, 'i1');
78
+ const idx2 = numericColumn(indexArrow, 'i2');
79
+ // The per-mesh bounds check below only validates posX/normX/idx0, but the
80
+ // loop also reads the sibling columns (posY/posZ, normY/normZ, idx1/idx2).
81
+ // A malformed payload with a missing or short sibling would read `undefined`
82
+ // → NaN positions / bad indices, so verify presence + matching lengths once
83
+ // up front; the per-mesh check then transitively covers every sibling.
84
+ if (!posX || !posY || !posZ || !normX || !normY || !normZ || !idx0 || !idx1 || !idx2) {
85
+ throw new Error('Malformed Parquet geometry: missing required vertex/index column');
86
+ }
87
+ if (posX.length !== posY.length ||
88
+ posX.length !== posZ.length ||
89
+ normX.length !== normY.length ||
90
+ normX.length !== normZ.length ||
91
+ idx0.length !== idx1.length ||
92
+ idx0.length !== idx2.length) {
93
+ throw new Error('Malformed Parquet geometry: inconsistent parallel column lengths');
94
+ }
95
+ // Reconstruct MeshData array
96
+ const meshCount = expressIds.length;
97
+ const meshes = new Array(meshCount);
98
+ // Only consume the additive origin/geometry_class columns when all three
99
+ // origin components are present AND parallel to the mesh rows — a short or
100
+ // partial set (malformed/truncated payload) must not read `undefined` → NaN.
101
+ const hasOrigin = originIsUsable(originX, originY, originZ, meshCount);
102
+ const hasGeometryClass = !!geometryClass && geometryClass.length === meshCount;
103
+ for (let i = 0; i < meshCount; i++) {
104
+ const vertexStart = vertexStarts[i];
105
+ const vertexCount = vertexCounts[i];
106
+ const indexStart = indexStarts[i];
107
+ const indexCount = indexCounts[i];
108
+ // Validate per-mesh ranges against the actual (untrusted) column lengths
109
+ // before indexing, so an overrun fails loudly instead of silently
110
+ // writing NaN positions / 0 indices into the geometry.
111
+ if (vertexStart + vertexCount > posX.length ||
112
+ vertexStart + vertexCount > normX.length ||
113
+ indexStart % 3 !== 0 ||
114
+ indexCount % 3 !== 0 ||
115
+ (indexStart + indexCount) / 3 > idx0.length) {
116
+ throw new Error(`Malformed Parquet geometry: mesh ${i} range out of bounds ` +
117
+ `(vertexStart=${vertexStart}, vertexCount=${vertexCount}, vertices=${posX.length}; ` +
118
+ `indexStart=${indexStart}, indexCount=${indexCount}, triangles=${idx0.length})`);
119
+ }
120
+ // Reconstruct interleaved positions from columnar format
121
+ // OPTIMIZATION: Z-up to Y-up transform is now done server-side
122
+ // Server already transforms: X stays same, new Y = old Z, new Z = -old Y
123
+ // So we just copy directly without per-vertex transformation
124
+ const positions = new Float32Array(vertexCount * 3);
125
+ for (let v = 0; v < vertexCount; v++) {
126
+ const srcIdx = vertexStart + v;
127
+ positions[v * 3] = posX[srcIdx];
128
+ positions[v * 3 + 1] = posY[srcIdx];
129
+ positions[v * 3 + 2] = posZ[srcIdx];
130
+ }
131
+ // Reconstruct interleaved normals (also pre-transformed server-side)
132
+ const normals = new Float32Array(vertexCount * 3);
133
+ for (let v = 0; v < vertexCount; v++) {
134
+ const srcIdx = vertexStart + v;
135
+ normals[v * 3] = normX[srcIdx];
136
+ normals[v * 3 + 1] = normY[srcIdx];
137
+ normals[v * 3 + 2] = normZ[srcIdx];
138
+ }
139
+ // Reconstruct triangle indices from columnar format
140
+ const triangleCount = indexCount / 3;
141
+ const triangleStart = indexStart / 3;
142
+ const indices = new Uint32Array(indexCount);
143
+ for (let t = 0; t < triangleCount; t++) {
144
+ const srcIdx = triangleStart + t;
145
+ indices[t * 3] = idx0[srcIdx];
146
+ indices[t * 3 + 1] = idx1[srcIdx];
147
+ indices[t * 3 + 2] = idx2[srcIdx];
148
+ }
149
+ meshes[i] = {
150
+ express_id: expressIds[i],
151
+ ifc_type: ifcTypes?.get(i) ?? 'Unknown',
152
+ positions,
153
+ normals,
154
+ indices,
155
+ color: [colorR[i], colorG[i], colorB[i], colorA[i]],
156
+ // world vertex = origin + position (both Y-up metres).
157
+ ...transformFields(i, originX, originY, originZ, hasOrigin, geometryClass, hasGeometryClass),
158
+ };
159
+ }
160
+ return meshes;
161
+ }
162
+ /**
163
+ * Rebuild `MeshData[]` from the optimized instanced layout.
164
+ *
165
+ * Geometry is deduplicated: many instances share one template mesh, so the
166
+ * per-INSTANCE `origin` is the only thing that places each occurrence. Dropping
167
+ * it renders every occurrence at the template's coordinates — literally the
168
+ * "N slabs collapse to one" symptom of issue #1841.
169
+ */
170
+ export function buildMeshesFromOptimizedTables(tables) {
171
+ const { instanceArrow, meshArrow, materialArrow, vertexArrow, indexArrow, hasNormals, vertexMultiplier, } = tables;
172
+ // Extract instance columns
173
+ const entityIds = numericColumn(instanceArrow, 'entity_id');
174
+ const ifcTypes = instanceArrow.getChild('ifc_type');
175
+ const meshIndices = numericColumn(instanceArrow, 'mesh_index');
176
+ const materialIndices = numericColumn(instanceArrow, 'material_index');
177
+ // Per-instance placement + provenance (issue #1841). Additive columns —
178
+ // absent on payloads from servers predating them, where origin defaults to
179
+ // [0,0,0].
180
+ const instOriginX = numericColumn(instanceArrow, 'origin_x');
181
+ const instOriginY = numericColumn(instanceArrow, 'origin_y');
182
+ const instOriginZ = numericColumn(instanceArrow, 'origin_z');
183
+ const instGeometryClass = numericColumn(instanceArrow, 'geometry_class');
184
+ // Extract mesh columns
185
+ const meshVertexOffsets = numericColumn(meshArrow, 'vertex_offset');
186
+ const meshVertexCounts = numericColumn(meshArrow, 'vertex_count');
187
+ const meshIndexOffsets = numericColumn(meshArrow, 'index_offset');
188
+ const meshIndexCounts = numericColumn(meshArrow, 'index_count');
189
+ // Extract material columns (bytes 0-255)
190
+ const matR = numericColumn(materialArrow, 'r');
191
+ const matG = numericColumn(materialArrow, 'g');
192
+ const matB = numericColumn(materialArrow, 'b');
193
+ const matA = numericColumn(materialArrow, 'a');
194
+ // Extract vertex columns (quantized integers)
195
+ const vertexX = numericColumn(vertexArrow, 'x');
196
+ const vertexY = numericColumn(vertexArrow, 'y');
197
+ const vertexZ = numericColumn(vertexArrow, 'z');
198
+ const normalX = hasNormals ? numericColumn(vertexArrow, 'nx') : undefined;
199
+ const normalY = hasNormals ? numericColumn(vertexArrow, 'ny') : undefined;
200
+ const normalZ = hasNormals ? numericColumn(vertexArrow, 'nz') : undefined;
201
+ // Extract index column
202
+ const indices = numericColumn(indexArrow, 'i');
203
+ if (!entityIds || !meshIndices || !materialIndices) {
204
+ throw new Error('Malformed optimized Parquet geometry: missing required instance column');
205
+ }
206
+ if (!meshVertexOffsets || !meshVertexCounts || !meshIndexOffsets || !meshIndexCounts) {
207
+ throw new Error('Malformed optimized Parquet geometry: missing required mesh column');
208
+ }
209
+ // The per-instance check below validates only vertexX/normalX/indices/matR,
210
+ // but the loop also reads the sibling columns (vertexY/Z, normalY/Z, matG/B/A).
211
+ // Verify presence + length parity once up front so a malformed payload with a
212
+ // missing/short sibling fails loudly instead of producing NaN geometry/colors.
213
+ if (!vertexX || !vertexY || !vertexZ || !indices || !matR || !matG || !matB || !matA) {
214
+ throw new Error('Malformed optimized Parquet geometry: missing required column');
215
+ }
216
+ if (vertexX.length !== vertexY.length ||
217
+ vertexX.length !== vertexZ.length ||
218
+ matR.length !== matG.length ||
219
+ matR.length !== matB.length ||
220
+ matR.length !== matA.length ||
221
+ (hasNormals &&
222
+ (!normalX ||
223
+ !normalY ||
224
+ !normalZ ||
225
+ normalX.length !== vertexX.length ||
226
+ normalY.length !== vertexX.length ||
227
+ normalZ.length !== vertexX.length))) {
228
+ throw new Error('Malformed optimized Parquet geometry: inconsistent parallel column lengths');
229
+ }
230
+ // Reconstruct MeshData array from instances
231
+ const instanceCount = entityIds.length;
232
+ const meshes = new Array(instanceCount);
233
+ const dequantMultiplier = 1.0 / vertexMultiplier;
234
+ // Additive per-instance origin/geometry_class columns (issue #1841): consume
235
+ // only when present AND parallel to the instance rows.
236
+ const hasInstOrigin = originIsUsable(instOriginX, instOriginY, instOriginZ, instanceCount);
237
+ const hasInstGeometryClass = !!instGeometryClass && instGeometryClass.length === instanceCount;
238
+ for (let i = 0; i < instanceCount; i++) {
239
+ const meshIdx = meshIndices[i];
240
+ const materialIdx = materialIndices[i];
241
+ // Validate the untrusted cross-table indices before dereferencing, so a
242
+ // bad index fails loudly instead of silently producing empty meshes /
243
+ // NaN colors.
244
+ if (meshIdx >= meshVertexOffsets.length || materialIdx >= matR.length) {
245
+ throw new Error(`Malformed optimized Parquet geometry: instance ${i} references ` +
246
+ `mesh ${meshIdx} (of ${meshVertexOffsets.length}) / ` +
247
+ `material ${materialIdx} (of ${matR.length})`);
248
+ }
249
+ const vertexOffset = meshVertexOffsets[meshIdx];
250
+ const vertexCount = meshVertexCounts[meshIdx];
251
+ const indexOffset = meshIndexOffsets[meshIdx];
252
+ const indexCount = meshIndexCounts[meshIdx];
253
+ // Validate the resolved ranges against the actual vertex/index column
254
+ // lengths (indices here are flat, not triangle-columnar — no %3 check).
255
+ if (vertexOffset + vertexCount > vertexX.length ||
256
+ (normalX && vertexOffset + vertexCount > normalX.length) ||
257
+ indexOffset + indexCount > indices.length) {
258
+ throw new Error(`Malformed optimized Parquet geometry: instance ${i} range out of bounds ` +
259
+ `(meshIdx=${meshIdx}, vertexOffset=${vertexOffset}, vertexCount=${vertexCount}, ` +
260
+ `vertices=${vertexX.length}; indexOffset=${indexOffset}, indexCount=${indexCount}, ` +
261
+ `indices=${indices.length})`);
262
+ }
263
+ // Dequantize and reconstruct positions
264
+ // OPTIMIZATION: Z-up to Y-up transform is now done server-side for optimized format too
265
+ // Server already transforms before quantization, so we just dequantize directly
266
+ const positions = new Float32Array(vertexCount * 3);
267
+ for (let v = 0; v < vertexCount; v++) {
268
+ const srcIdx = vertexOffset + v;
269
+ positions[v * 3] = vertexX[srcIdx] * dequantMultiplier;
270
+ positions[v * 3 + 1] = vertexY[srcIdx] * dequantMultiplier;
271
+ positions[v * 3 + 2] = vertexZ[srcIdx] * dequantMultiplier;
272
+ }
273
+ // Reconstruct indices (relative to this mesh's vertices)
274
+ const meshIndicesArray = new Uint32Array(indexCount);
275
+ for (let j = 0; j < indexCount; j++) {
276
+ meshIndicesArray[j] = indices[indexOffset + j];
277
+ }
278
+ // Reconstruct normals (pre-transformed server-side, or compute if not present)
279
+ let normals;
280
+ if (hasNormals && normalX && normalY && normalZ) {
281
+ normals = new Float32Array(vertexCount * 3);
282
+ for (let v = 0; v < vertexCount; v++) {
283
+ const srcIdx = vertexOffset + v;
284
+ normals[v * 3] = normalX[srcIdx];
285
+ normals[v * 3 + 1] = normalY[srcIdx];
286
+ normals[v * 3 + 2] = normalZ[srcIdx];
287
+ }
288
+ }
289
+ else {
290
+ // Compute flat normals from triangle faces
291
+ normals = computeFlatNormals(positions, meshIndicesArray);
292
+ }
293
+ // Convert byte colors to float [0-1]. `positions` are the TEMPLATE-local
294
+ // vertices; `origin` (not baked in, to keep f32 precision at building scale)
295
+ // carries the per-instance placement so the renderer reconstructs
296
+ // world = origin + position — the same contract as the standard path.
297
+ meshes[i] = {
298
+ express_id: entityIds[i],
299
+ ifc_type: ifcTypes?.get(i) ?? 'Unknown',
300
+ positions,
301
+ normals,
302
+ indices: meshIndicesArray,
303
+ color: [
304
+ matR[materialIdx] / 255,
305
+ matG[materialIdx] / 255,
306
+ matB[materialIdx] / 255,
307
+ matA[materialIdx] / 255,
308
+ ],
309
+ ...transformFields(i, instOriginX, instOriginY, instOriginZ, hasInstOrigin, instGeometryClass, hasInstGeometryClass),
310
+ };
311
+ }
312
+ return meshes;
313
+ }
314
+ /**
315
+ * Compute flat normals for a mesh from positions and indices.
316
+ * Each triangle face gets a uniform normal.
317
+ */
318
+ export function computeFlatNormals(positions, indices) {
319
+ const vertexCount = positions.length / 3;
320
+ const normals = new Float32Array(vertexCount * 3).fill(0);
321
+ const triangleCount = indices.length / 3;
322
+ for (let t = 0; t < triangleCount; t++) {
323
+ const i0 = indices[t * 3];
324
+ const i1 = indices[t * 3 + 1];
325
+ const i2 = indices[t * 3 + 2];
326
+ // Get triangle vertices
327
+ const ax = positions[i0 * 3], ay = positions[i0 * 3 + 1], az = positions[i0 * 3 + 2];
328
+ const bx = positions[i1 * 3], by = positions[i1 * 3 + 1], bz = positions[i1 * 3 + 2];
329
+ const cx = positions[i2 * 3], cy = positions[i2 * 3 + 1], cz = positions[i2 * 3 + 2];
330
+ // Compute edge vectors
331
+ const e1x = bx - ax, e1y = by - ay, e1z = bz - az;
332
+ const e2x = cx - ax, e2y = cy - ay, e2z = cz - az;
333
+ // Cross product
334
+ const nx = e1y * e2z - e1z * e2y;
335
+ const ny = e1z * e2x - e1x * e2z;
336
+ const nz = e1x * e2y - e1y * e2x;
337
+ // Accumulate normals (will normalize later)
338
+ normals[i0 * 3] += nx;
339
+ normals[i0 * 3 + 1] += ny;
340
+ normals[i0 * 3 + 2] += nz;
341
+ normals[i1 * 3] += nx;
342
+ normals[i1 * 3 + 1] += ny;
343
+ normals[i1 * 3 + 2] += nz;
344
+ normals[i2 * 3] += nx;
345
+ normals[i2 * 3 + 1] += ny;
346
+ normals[i2 * 3 + 2] += nz;
347
+ }
348
+ // Normalize
349
+ for (let v = 0; v < vertexCount; v++) {
350
+ const x = normals[v * 3], y = normals[v * 3 + 1], z = normals[v * 3 + 2];
351
+ const len = Math.sqrt(x * x + y * y + z * z);
352
+ if (len > 0) {
353
+ normals[v * 3] /= len;
354
+ normals[v * 3 + 1] /= len;
355
+ normals[v * 3 + 2] /= len;
356
+ }
357
+ }
358
+ return normals;
359
+ }
360
+ //# sourceMappingURL=parquet-tables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parquet-tables.js","sourceRoot":"","sources":["../src/parquet-tables.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -22,7 +22,12 @@ export interface MeshData {
22
22
  express_id: number;
23
23
  /** IFC type name (e.g., "IfcWall") */
24
24
  ifc_type: string;
25
- /** Vertex positions as flat array (x, y, z triplets) */
25
+ /**
26
+ * Vertex positions as flat array (x, y, z triplets), in **Y-up metres**.
27
+ * Every server transport (JSON, parquet, optimized parquet) emits the same
28
+ * Y-up frame — the server converts from IFC Z-up once, in one place. See
29
+ * `origin`: the world position of vertex i is `origin + positions[3i..3i+3]`.
30
+ */
26
31
  positions: Float32Array;
27
32
  /** Vertex normals as flat array (x, y, z triplets) */
28
33
  normals: Float32Array;
@@ -42,6 +47,22 @@ export interface MeshData {
42
47
  geometry_item_id?: number;
43
48
  /** Space/zone properties attached to the element, when extracted. */
44
49
  properties?: Record<string, string>;
50
+ /**
51
+ * Per-mesh local-frame origin in Y-up metres: world vertex = `origin +
52
+ * position` (issue #1841). Mirrors the canonical `@ifc-lite/geometry`
53
+ * `MeshData.origin`. Absent (⇒ `[0,0,0]`) means `positions` are already
54
+ * absolute world coords — the world-baked default. The renderer applies it as
55
+ * a per-batch translation, so building/georef-scale placement never collapses
56
+ * to the world origin and repeated (instanced) elements place correctly.
57
+ */
58
+ origin?: [number, number, number];
59
+ /**
60
+ * Geometry provenance for the viewer's Model/Types switch (issue #1841),
61
+ * mirroring the canonical `MeshData.geometryClass`: 0 = occurrence,
62
+ * 1 = orphan type-product map, 2 = instanced type-library template (must NOT
63
+ * be drawn in the normal view — doing so duplicates geometry). Absent ⇒ 0.
64
+ */
65
+ geometry_class?: number;
45
66
  }
46
67
  /**
47
68
  * Model metadata extracted from the IFC file.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ifc-lite/server-client",
3
- "version": "1.19.0",
3
+ "version": "1.21.0",
4
4
  "description": "TypeScript client SDK for IFC-Lite Server",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -25,7 +25,8 @@
25
25
  }
26
26
  },
27
27
  "devDependencies": {
28
- "typescript": "^6.0.3"
28
+ "typescript": "^6.0.3",
29
+ "vitest": "^4.1.10"
29
30
  },
30
31
  "license": "MPL-2.0",
31
32
  "author": "Louis True",
@@ -53,6 +54,7 @@
53
54
  ],
54
55
  "scripts": {
55
56
  "build": "pnpm exec tsc",
56
- "dev": "pnpm exec tsc --watch"
57
+ "dev": "pnpm exec tsc --watch",
58
+ "test": "vitest run"
57
59
  }
58
60
  }