npm package diff

Package: @forge/bridge

Versions: 5.7.0-next.8 - 5.6.1-next.5-experimental-44e92a2

File: package/out/object-store/upload.js

Index: package/out/object-store/upload.js
===================================================================
--- package/out/object-store/upload.js
+++ package/out/object-store/upload.js
@@ -1,76 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.upload = void 0;
-const invoke_1 = require("../invoke");
-const errors_1 = require("../errors");
-const getObjectMetadata = async (blob) => {
-    const length = blob.size;
-    const arrayBuffer = await blob.arrayBuffer();
-    const hashBuffer = await crypto.subtle.digest('SHA-256', arrayBuffer);
-    const hashArray = Array.from(new Uint8Array(hashBuffer));
-    const checksum = hashArray.map((b) => b.toString(16).padStart(2, '0')).join('');
-    const checksumType = 'SHA-256';
-    return {
-        length,
-        checksum,
-        checksumType
-    };
-};
-const upload = async ({ filterAndGenerateUrls, objects }) => {
-    if (!(filterAndGenerateUrls === null || filterAndGenerateUrls === void 0 ? void 0 : filterAndGenerateUrls.function)) {
-        throw new errors_1.BridgeAPIError('filterAndGenerateUrls.function is required');
-    }
-    if (!Array.isArray(objects) || objects.length === 0) {
-        throw new errors_1.BridgeAPIError('objects array is required and must not be empty');
-    }
-    const allObjectMetadata = await Promise.all(objects.map((obj) => getObjectMetadata(obj)));
-    const presignedURLsToObjectMetadata = (await (0, invoke_1.invoke)(filterAndGenerateUrls.function, {
-        allObjectMetadata
-    }));
-    if (!presignedURLsToObjectMetadata || typeof presignedURLsToObjectMetadata !== 'object') {
-        throw new errors_1.BridgeAPIError('Invalid response from filterAndGenerateUrls function');
-    }
-    const checksumToBlobMap = new Map();
-    objects.forEach((blob, index) => {
-        const metadata = allObjectMetadata[index];
-        checksumToBlobMap.set(metadata.checksum, blob);
-    });
-    const uploadPromises = Object.entries(presignedURLsToObjectMetadata).map(async ([presignedUrl, metadata]) => {
-        const { key, length, checksum } = metadata;
-        const object = checksumToBlobMap.get(checksum);
-        if (!object) {
-            return {
-                success: false,
-                objectKey: key,
-                error: `Blob not found for checksum ${checksum}`
-            };
-        }
-        try {
-            const response = await fetch(presignedUrl, {
-                method: 'PUT',
-                body: object,
-                headers: {
-                    'Content-Type': object.type || 'application/octet-stream',
-                    'Content-Length': length.toString()
-                }
-            });
-            return {
-                success: response.ok,
-                objectKey: key,
-                status: response.status,
-                error: response.ok ? undefined : `Upload failed with status ${response.status}`
-            };
-        }
-        catch (error) {
-            return {
-                success: false,
-                objectKey: key,
-                status: 503,
-                error: error instanceof Error ? error.message : 'Upload failed'
-            };
-        }
-    });
-    const results = await Promise.all(uploadPromises);
-    return results;
-};
-exports.upload = upload;