@series-inc/stowkit-reader 0.1.41

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,551 @@
1
+ (function (global, factory) {
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
3
+ typeof define === 'function' && define.amd ? define(['exports'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.StowKitReader = {}));
5
+ })(this, (function (exports) { 'use strict';
6
+
7
+ /**
8
+ * Performance logging utility
9
+ * Centralized configuration for all performance logs
10
+ */
11
+ class PerfLogger {
12
+ /**
13
+ * Enable performance logging across all StowKit modules
14
+ */
15
+ static enable() {
16
+ this.enabled = true;
17
+ }
18
+ /**
19
+ * Disable performance logging across all StowKit modules
20
+ */
21
+ static disable() {
22
+ this.enabled = false;
23
+ }
24
+ /**
25
+ * Check if performance logging is enabled
26
+ */
27
+ static isEnabled() {
28
+ return this.enabled;
29
+ }
30
+ /**
31
+ * Set a custom logging function
32
+ * @param logger - Function to call for each log message (receives formatted string)
33
+ */
34
+ static setCustomLogger(logger) {
35
+ this.customLogger = logger;
36
+ }
37
+ /**
38
+ * Log a performance message (only if enabled)
39
+ */
40
+ static log(message) {
41
+ if (this.enabled) {
42
+ if (this.customLogger) {
43
+ this.customLogger(message);
44
+ }
45
+ else {
46
+ console.log(message);
47
+ }
48
+ }
49
+ }
50
+ /**
51
+ * Log a performance error (always logged regardless of setting)
52
+ */
53
+ static error(message) {
54
+ console.error(message);
55
+ }
56
+ /**
57
+ * Log a performance warning (always logged regardless of setting)
58
+ */
59
+ static warn(message) {
60
+ console.warn(message);
61
+ }
62
+ }
63
+ PerfLogger.enabled = false;
64
+ PerfLogger.customLogger = null;
65
+
66
+ /**
67
+ * StowKit Reader - WebAssembly-based reader for .stow asset packs
68
+ */
69
+ exports.AssetType = void 0;
70
+ (function (AssetType) {
71
+ AssetType[AssetType["UNKNOWN"] = 0] = "UNKNOWN";
72
+ AssetType[AssetType["STATIC_MESH"] = 1] = "STATIC_MESH";
73
+ AssetType[AssetType["TEXTURE_2D"] = 2] = "TEXTURE_2D";
74
+ AssetType[AssetType["AUDIO"] = 3] = "AUDIO";
75
+ AssetType[AssetType["MATERIAL_SCHEMA"] = 4] = "MATERIAL_SCHEMA";
76
+ AssetType[AssetType["SKINNED_MESH"] = 5] = "SKINNED_MESH";
77
+ AssetType[AssetType["ANIMATION_CLIP"] = 6] = "ANIMATION_CLIP";
78
+ })(exports.AssetType || (exports.AssetType = {}));
79
+ class StowKitReader {
80
+ constructor(wasmUrl = '/stowkit/stowkit_reader.wasm') {
81
+ this.wasm = null;
82
+ this.memory = null;
83
+ this.isReady = false;
84
+ this.currentFile = null;
85
+ this.assetNameMap = new Map();
86
+ this.wasmUrl = wasmUrl;
87
+ }
88
+ /**
89
+ * Initialize the WASM module
90
+ */
91
+ async init() {
92
+ const wasmFile = `${this.wasmUrl}?v=${Date.now()}`;
93
+ const response = await fetch(wasmFile);
94
+ const bytes = await response.arrayBuffer();
95
+ const imports = {
96
+ env: {
97
+ js_console_log: (ptr, len) => {
98
+ const msg = this._readString(ptr, len);
99
+ console.log('[StowKit]', msg);
100
+ },
101
+ js_console_error: (ptr, len) => {
102
+ const msg = this._readString(ptr, len);
103
+ console.error('[StowKit Error]', msg);
104
+ }
105
+ }
106
+ };
107
+ const { instance } = await WebAssembly.instantiate(bytes, imports);
108
+ this.wasm = instance.exports;
109
+ this.memory = this.wasm.memory;
110
+ this.isReady = true;
111
+ // Validate required exports
112
+ const required = ['allocateMemory', 'freeMemory', 'openStowFromMemory', 'getAssetCount', 'parseSkinnedMeshGeometry'];
113
+ const missing = required.filter(fn => typeof this.wasm[fn] !== 'function');
114
+ if (missing.length > 0) {
115
+ throw new Error(`Missing WASM exports: ${missing.join(', ')}`);
116
+ }
117
+ return this;
118
+ }
119
+ /**
120
+ * Open a .stow file from an ArrayBuffer or File
121
+ */
122
+ async open(fileOrBuffer) {
123
+ if (!this.isReady)
124
+ throw new Error('StowKit not initialized. Call init() first.');
125
+ if (this.currentFile) {
126
+ this.close();
127
+ }
128
+ let buffer;
129
+ if (fileOrBuffer instanceof ArrayBuffer) {
130
+ buffer = fileOrBuffer;
131
+ }
132
+ else if (fileOrBuffer instanceof File) {
133
+ buffer = await fileOrBuffer.arrayBuffer();
134
+ this.currentFile = fileOrBuffer.name;
135
+ }
136
+ else {
137
+ throw new Error('Expected ArrayBuffer or File');
138
+ }
139
+ const bytes = new Uint8Array(buffer);
140
+ const ptr = this._allocate(bytes.length);
141
+ try {
142
+ // Copy data to WASM memory
143
+ new Uint8Array(this.memory.buffer, ptr, bytes.length).set(bytes);
144
+ // Open the reader
145
+ const result = this.wasm.openStowFromMemory(ptr, bytes.length);
146
+ if (result !== 0) {
147
+ throw new Error('Failed to open .stow file - invalid format or corrupted');
148
+ }
149
+ return true;
150
+ }
151
+ finally {
152
+ this._free(ptr, bytes.length);
153
+ }
154
+ }
155
+ /**
156
+ * Get the total number of assets
157
+ */
158
+ getAssetCount() {
159
+ if (!this.isReady)
160
+ return 0;
161
+ return this.wasm.getAssetCount();
162
+ }
163
+ /**
164
+ * Get info about all assets
165
+ */
166
+ listAssets() {
167
+ const count = this.getAssetCount();
168
+ const assets = [];
169
+ for (let i = 0; i < count; i++) {
170
+ const info = this.getAssetInfo(i);
171
+ if (!info)
172
+ continue;
173
+ // Get name from WASM parse functions (they already return stringId)
174
+ let name;
175
+ if (info.metadata_size > 0) {
176
+ let parsed = null;
177
+ switch (info.type) {
178
+ case 1: // Static Mesh
179
+ parsed = this.parseMeshMetadata(i);
180
+ break;
181
+ case 2: // Texture
182
+ parsed = this.parseTextureMetadata(i);
183
+ break;
184
+ case 3: // Audio
185
+ parsed = this.parseAudioMetadata(i);
186
+ break;
187
+ case 4: // Material Schema
188
+ parsed = this.parseMaterialSchemaMetadata(i);
189
+ break;
190
+ case 5: // Skinned Mesh
191
+ parsed = this.parseSkinnedMeshMetadata(i);
192
+ break;
193
+ case 6: // Animation
194
+ parsed = this.parseAnimationMetadata(i);
195
+ break;
196
+ }
197
+ if (parsed?.stringId) {
198
+ const parts = parsed.stringId.split('/');
199
+ name = parts[parts.length - 1];
200
+ }
201
+ }
202
+ // Use cached name if available
203
+ if (!name && this.assetNameMap.has(i)) {
204
+ name = this.assetNameMap.get(i);
205
+ }
206
+ const asset = {
207
+ ...info,
208
+ index: i,
209
+ name,
210
+ id: this._getAssetId(info),
211
+ hasMetadata: info.metadata_size > 0,
212
+ dataSize: info.data_size,
213
+ metadataSize: info.metadata_size
214
+ };
215
+ assets.push(asset);
216
+ }
217
+ return assets;
218
+ }
219
+ /**
220
+ * Get detailed info about a specific asset
221
+ */
222
+ getAssetInfo(index) {
223
+ if (!this.isReady || index < 0 || index >= this.getAssetCount()) {
224
+ return null;
225
+ }
226
+ const ptr = this._allocate(40); // Size of AssetDirectoryEntry struct (8+4+8+8+8+4 = 40 bytes)
227
+ try {
228
+ const result = this.wasm.getAssetInfo(index, ptr, 40); // Pass the size as third argument!
229
+ if (result < 0) {
230
+ console.error(`Failed to get info for asset ${index}`);
231
+ return null;
232
+ }
233
+ const view = new DataView(this.memory.buffer, ptr, 40);
234
+ // Note: assetUID at offset 0 (8 bytes) - skipping as we don't need it here
235
+ // assetType at offset 8 (4 bytes)
236
+ // dataOffset at offset 12 (8 bytes)
237
+ // dataSize at offset 20 (8 bytes)
238
+ // metadataOffset at offset 28 (8 bytes)
239
+ // metadataSize at offset 36 (4 bytes)
240
+ return {
241
+ index,
242
+ type: view.getUint32(8, true),
243
+ // Convert BigInt to number - safe for reasonable file sizes
244
+ data_offset: Number(view.getBigUint64(12, true)),
245
+ data_size: Number(view.getBigUint64(20, true)),
246
+ metadata_offset: Number(view.getBigUint64(28, true)),
247
+ metadata_size: view.getUint32(36, true),
248
+ };
249
+ }
250
+ finally {
251
+ this._free(ptr, 40);
252
+ }
253
+ }
254
+ /**
255
+ * Read the binary data of an asset
256
+ */
257
+ readAssetData(index) {
258
+ if (!this.isReady)
259
+ return null;
260
+ const info = this.getAssetInfo(index);
261
+ if (!info || !info.data_size)
262
+ return null;
263
+ const ptr = this._allocate(info.data_size);
264
+ try {
265
+ const result = this.wasm.readAssetData(index, ptr, info.data_size);
266
+ if (result < 0) {
267
+ console.error(`Failed to read data for asset ${index}`);
268
+ return null;
269
+ }
270
+ // Return a copy of the data
271
+ const data = new Uint8Array(this.memory.buffer, ptr, result);
272
+ return new Uint8Array(data);
273
+ }
274
+ finally {
275
+ this._free(ptr, info.data_size);
276
+ }
277
+ }
278
+ /**
279
+ * Read metadata of an asset (if available)
280
+ */
281
+ readAssetMetadata(index) {
282
+ if (!this.isReady)
283
+ return null;
284
+ const info = this.getAssetInfo(index);
285
+ if (!info || !info.metadata_size) {
286
+ return null;
287
+ }
288
+ const ptr = this._allocate(info.metadata_size);
289
+ try {
290
+ const result = this.wasm.readAssetMetadata(index, ptr, info.metadata_size);
291
+ if (result < 0) {
292
+ console.error(`Failed to read metadata for asset ${index}`);
293
+ return null;
294
+ }
295
+ // Return a copy of the metadata
296
+ const data = new Uint8Array(this.memory.buffer, ptr, result);
297
+ return new Uint8Array(data);
298
+ }
299
+ finally {
300
+ this._free(ptr, info.metadata_size);
301
+ }
302
+ }
303
+ /**
304
+ * Parse texture metadata using WASM (includes tags)
305
+ */
306
+ parseTextureMetadata(index) {
307
+ if (!this.isReady || !this.wasm.parseTextureMetadata)
308
+ return null;
309
+ const ptr = this._allocate(512);
310
+ try {
311
+ const result = this.wasm.parseTextureMetadata(index, ptr, 512);
312
+ if (result < 0)
313
+ return null;
314
+ const jsonStr = this._readString(ptr, result);
315
+ return JSON.parse(jsonStr);
316
+ }
317
+ finally {
318
+ this._free(ptr, 512);
319
+ }
320
+ }
321
+ /**
322
+ * Parse audio metadata using WASM (includes tags)
323
+ */
324
+ parseAudioMetadata(index) {
325
+ if (!this.isReady || !this.wasm.parseAudioMetadata)
326
+ return null;
327
+ const ptr = this._allocate(512);
328
+ try {
329
+ const result = this.wasm.parseAudioMetadata(index, ptr, 512);
330
+ if (result < 0)
331
+ return null;
332
+ const jsonStr = this._readString(ptr, result);
333
+ return JSON.parse(jsonStr);
334
+ }
335
+ finally {
336
+ this._free(ptr, 512);
337
+ }
338
+ }
339
+ /**
340
+ * Parse static mesh metadata using WASM (includes tags)
341
+ */
342
+ parseMeshMetadata(index) {
343
+ if (!this.isReady || !this.wasm.parseMeshMetadata)
344
+ return null;
345
+ const ptr = this._allocate(512);
346
+ try {
347
+ const result = this.wasm.parseMeshMetadata(index, ptr, 512);
348
+ if (result < 0)
349
+ return null;
350
+ const jsonStr = this._readString(ptr, result);
351
+ return JSON.parse(jsonStr);
352
+ }
353
+ finally {
354
+ this._free(ptr, 512);
355
+ }
356
+ }
357
+ /**
358
+ * Parse animation clip metadata using WASM
359
+ */
360
+ parseAnimationMetadata(index) {
361
+ if (!this.isReady || !this.wasm.parseAnimationClipMetadata)
362
+ return null;
363
+ const ptr = this._allocate(16384);
364
+ try {
365
+ const result = this.wasm.parseAnimationClipMetadata(index, ptr, 16384);
366
+ if (result < 0)
367
+ return null;
368
+ const jsonStr = this._readString(ptr, result);
369
+ return JSON.parse(jsonStr);
370
+ }
371
+ finally {
372
+ this._free(ptr, 16384);
373
+ }
374
+ }
375
+ /**
376
+ * Parse skinned mesh metadata using WASM (partial - returns bone info)
377
+ */
378
+ parseSkinnedMeshMetadata(index) {
379
+ if (!this.isReady || !this.wasm.parseSkinnedMeshMetadata)
380
+ return null;
381
+ const ptr = this._allocate(4096);
382
+ try {
383
+ const result = this.wasm.parseSkinnedMeshMetadata(index, ptr, 4096);
384
+ if (result < 0)
385
+ return null;
386
+ const jsonStr = this._readString(ptr, result);
387
+ return JSON.parse(jsonStr);
388
+ }
389
+ finally {
390
+ this._free(ptr, 4096);
391
+ }
392
+ }
393
+ /**
394
+ * Parse material schema metadata using WASM
395
+ */
396
+ parseMaterialSchemaMetadata(index) {
397
+ if (!this.isReady || !this.wasm.parseMaterialSchemaMetadata)
398
+ return null;
399
+ const ptr = this._allocate(8192);
400
+ try {
401
+ const result = this.wasm.parseMaterialSchemaMetadata(index, ptr, 8192);
402
+ if (result < 0)
403
+ return null;
404
+ const jsonStr = this._readString(ptr, result);
405
+ return JSON.parse(jsonStr);
406
+ }
407
+ finally {
408
+ this._free(ptr, 8192);
409
+ }
410
+ }
411
+ /**
412
+ * Find an asset by its canonical path (string ID)
413
+ * Returns the asset index or -1 if not found
414
+ */
415
+ findAssetByPath(path) {
416
+ if (!this.isReady || !this.wasm.findAssetByPath) {
417
+ console.error('findAssetByPath not available');
418
+ return -1;
419
+ }
420
+ // Convert string to bytes
421
+ const encoder = new TextEncoder();
422
+ const pathBytes = encoder.encode(path);
423
+ const ptr = this._allocate(pathBytes.length);
424
+ try {
425
+ // Copy path to WASM memory
426
+ new Uint8Array(this.memory.buffer, ptr, pathBytes.length).set(pathBytes);
427
+ // Call WASM function
428
+ return this.wasm.findAssetByPath(ptr, pathBytes.length);
429
+ }
430
+ finally {
431
+ this._free(ptr, pathBytes.length);
432
+ }
433
+ }
434
+ /**
435
+ * Parse skinned mesh geometry using WASM (10-50x faster than JavaScript!)
436
+ * Returns combined vertex/index buffers ready for Three.js
437
+ */
438
+ parseSkinnedMeshGeometryFast(metadataBlob, dataBlob) {
439
+ if (!this.isReady || !this.wasm.parseSkinnedMeshGeometry)
440
+ return null;
441
+ // Allocate input buffers
442
+ const metaPtr = this._allocate(metadataBlob.length);
443
+ const dataPtr = this._allocate(dataBlob.length);
444
+ // Estimate output size
445
+ const maxOutputSize = 8 + (100000 * (12 + 12 + 8 + 16 + 16)) + (300000 * 4);
446
+ const outPtr = this._allocate(maxOutputSize);
447
+ try {
448
+ // Copy input data
449
+ new Uint8Array(this.memory.buffer, metaPtr, metadataBlob.length).set(metadataBlob);
450
+ new Uint8Array(this.memory.buffer, dataPtr, dataBlob.length).set(dataBlob);
451
+ // Call WASM function
452
+ const result = this.wasm.parseSkinnedMeshGeometry(metaPtr, metadataBlob.length, dataPtr, dataBlob.length, outPtr, maxOutputSize);
453
+ if (result < 0) {
454
+ console.error('Failed to parse skinned mesh geometry');
455
+ return null;
456
+ }
457
+ // Read header
458
+ const view = new DataView(this.memory.buffer, outPtr, result);
459
+ const vertexCount = view.getUint32(0, true);
460
+ const indexCount = view.getUint32(4, true);
461
+ let offset = 8;
462
+ // Read positions
463
+ const positions = new Float32Array(this.memory.buffer, outPtr + offset, vertexCount * 3);
464
+ offset += vertexCount * 12;
465
+ // Read normals
466
+ const normals = new Float32Array(this.memory.buffer, outPtr + offset, vertexCount * 3);
467
+ offset += vertexCount * 12;
468
+ // Read uvs
469
+ const uvs = new Float32Array(this.memory.buffer, outPtr + offset, vertexCount * 2);
470
+ offset += vertexCount * 8;
471
+ // Read skinIndices
472
+ const skinIndices = new Uint32Array(this.memory.buffer, outPtr + offset, vertexCount * 4);
473
+ offset += vertexCount * 16;
474
+ // Read skinWeights
475
+ const skinWeights = new Float32Array(this.memory.buffer, outPtr + offset, vertexCount * 4);
476
+ offset += vertexCount * 16;
477
+ // Read indices
478
+ const indices = new Uint32Array(this.memory.buffer, outPtr + offset, indexCount);
479
+ // Copy to new arrays (WASM memory will be freed)
480
+ return {
481
+ vertexCount,
482
+ indexCount,
483
+ positions: new Float32Array(positions),
484
+ normals: new Float32Array(normals),
485
+ uvs: new Float32Array(uvs),
486
+ skinIndices: new Uint32Array(skinIndices),
487
+ skinWeights: new Float32Array(skinWeights),
488
+ indices: new Uint32Array(indices)
489
+ };
490
+ }
491
+ finally {
492
+ this._free(metaPtr, metadataBlob.length);
493
+ this._free(dataPtr, dataBlob.length);
494
+ this._free(outPtr, maxOutputSize);
495
+ }
496
+ }
497
+ /**
498
+ * Close the current file and free resources
499
+ */
500
+ close() {
501
+ if (this.isReady && this.wasm.closeStow) {
502
+ this.wasm.closeStow();
503
+ }
504
+ this.currentFile = null;
505
+ this.assetNameMap.clear();
506
+ }
507
+ /**
508
+ * Set a custom name for an asset (for UI display)
509
+ */
510
+ setAssetName(index, name) {
511
+ this.assetNameMap.set(index, name);
512
+ }
513
+ // Private helper methods
514
+ _allocate(size) {
515
+ const ptr = this.wasm.allocateMemory(size);
516
+ if (!ptr)
517
+ throw new Error(`Failed to allocate ${size} bytes`);
518
+ return ptr;
519
+ }
520
+ _free(ptr, size) {
521
+ this.wasm.freeMemory(ptr, size);
522
+ }
523
+ _readString(ptr, len) {
524
+ const bytes = new Uint8Array(this.memory.buffer, ptr, len);
525
+ return new TextDecoder().decode(bytes);
526
+ }
527
+ _getAssetId(info) {
528
+ // Create a unique ID based on offsets
529
+ return BigInt(info.data_offset);
530
+ }
531
+ /**
532
+ * Format bytes for display
533
+ */
534
+ static formatBytes(bytes) {
535
+ if (bytes === 0)
536
+ return '0 B';
537
+ const k = 1024;
538
+ const sizes = ['B', 'KB', 'MB', 'GB'];
539
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
540
+ return `${parseFloat((bytes / Math.pow(k, i)).toFixed(2))} ${sizes[i]}`;
541
+ }
542
+ }
543
+
544
+ exports.PerfLogger = PerfLogger;
545
+ exports.StowKitReader = StowKitReader;
546
+ exports.default = StowKitReader;
547
+
548
+ Object.defineProperty(exports, '__esModule', { value: true });
549
+
550
+ }));
551
+ //# sourceMappingURL=stowkit-reader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stowkit-reader.js","sources":["../src/PerfLogger.ts","../src/index.ts"],"sourcesContent":[null,null],"names":["AssetType"],"mappings":"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"}
Binary file
package/package.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "@series-inc/stowkit-reader",
3
+ "version": "0.1.41",
4
+ "description": "WebAssembly-based reader for StowKit (.stow) asset pack files",
5
+ "main": "dist/stowkit-reader.js",
6
+ "module": "dist/stowkit-reader.esm.js",
7
+ "types": "dist/index.d.ts",
8
+ "files": [
9
+ "dist",
10
+ "README.md"
11
+ ],
12
+ "scripts": {
13
+ "build": "npm run copy:wasm && rollup -c",
14
+ "copy:wasm": "node scripts/copy-wasm.js",
15
+ "prepublishOnly": "npm run build"
16
+ },
17
+ "keywords": [],
18
+ "devDependencies": {
19
+ "@rollup/plugin-node-resolve": "^15.2.3",
20
+ "@rollup/plugin-typescript": "^11.1.5",
21
+ "rollup": "^4.9.2",
22
+ "tslib": "^2.8.1",
23
+ "typescript": "^5.3.3"
24
+ },
25
+ "publishConfig": {
26
+ "access": "public"
27
+ }
28
+ }