From 10dde354f755643c6eb627f98c61571c430e560f Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Fri, 10 Apr 2026 12:26:57 +0200 Subject: [PATCH] Update project-package.ts to handle asset metadata and improve cloning logic --- src/serialization/project-package.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/serialization/project-package.ts b/src/serialization/project-package.ts index 7275416e..65e0f0a4 100644 --- a/src/serialization/project-package.ts +++ b/src/serialization/project-package.ts @@ -97,7 +97,9 @@ function normalizePackagePath(path: string): string { } function cloneUint8ArrayIntoArrayBuffer(bytes: Uint8Array): ArrayBuffer { - return bytes.buffer.slice(bytes.byteOffset, bytes.byteOffset + bytes.byteLength); + const clonedBytes = new Uint8Array(bytes.byteLength); + clonedBytes.set(bytes); + return clonedBytes.buffer; } function createAssetPackagePath(assetId: string, relativePath: string): string { @@ -193,8 +195,8 @@ export async function saveProjectPackage( throw new Error("Project save failed: project asset storage is unavailable for asset-backed scenes."); } - const packageEntries: Record = { - [PROJECT_PACKAGE_SCENE_PATH]: strToU8(sceneJson) + const packageEntries: Record = { + [PROJECT_PACKAGE_SCENE_PATH]: [strToU8(sceneJson), {}] }; const missingAssetDiagnostics: string[] = []; @@ -232,7 +234,7 @@ export async function saveProjectPackage( throw new Error(`Project save failed: duplicate packaged asset path ${packagePath}.`); } - packageEntries[packagePath] = new Uint8Array(storedFile.bytes.slice(0)); + packageEntries[packagePath] = [new Uint8Array(storedFile.bytes.slice(0)), {}]; } }