UNPKG

@aws-amplify/storage

Version:

Storage category of aws-amplify

1 lines 3.59 kB
{"version":3,"file":"crc32.mjs","sources":["../../../../../src/providers/s3/utils/crc32.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport crc32 from 'crc-32';\nimport { hexToArrayBuffer, hexToBase64 } from './hexUtils';\nimport { readFile } from './readFile';\nconst CHUNK_SIZE = 1024 * 1024; // 1MB chunks\nexport const calculateContentCRC32 = async (content, seed = 0) => {\n let internalSeed = seed;\n if (content instanceof ArrayBuffer || ArrayBuffer.isView(content)) {\n let uint8Array;\n if (content instanceof ArrayBuffer) {\n uint8Array = new Uint8Array(content);\n }\n else {\n uint8Array = new Uint8Array(content.buffer, content.byteOffset, content.byteLength);\n }\n let offset = 0;\n while (offset < uint8Array.length) {\n const end = Math.min(offset + CHUNK_SIZE, uint8Array.length);\n const chunk = uint8Array.slice(offset, end);\n internalSeed = crc32.buf(chunk, internalSeed) >>> 0;\n offset = end;\n }\n }\n else {\n let blob;\n if (content instanceof Blob) {\n blob = content;\n }\n else {\n blob = new Blob([content]);\n }\n let offset = 0;\n while (offset < blob.size) {\n const end = Math.min(offset + CHUNK_SIZE, blob.size);\n const chunk = blob.slice(offset, end);\n const arrayBuffer = await readFile(chunk);\n const uint8Array = new Uint8Array(arrayBuffer);\n internalSeed = crc32.buf(uint8Array, internalSeed) >>> 0;\n offset = end;\n }\n }\n const hex = internalSeed.toString(16).padStart(8, '0');\n return {\n checksumArrayBuffer: hexToArrayBuffer(hex),\n checksum: hexToBase64(hex),\n seed: internalSeed,\n };\n};\n"],"names":[],"mappings":";;;;AAAA;AACA;AAIA,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC;AACnB,MAAC,qBAAqB,GAAG,OAAO,OAAO,EAAE,IAAI,GAAG,CAAC,KAAK;AAClE,IAAI,IAAI,YAAY,GAAG,IAAI;AAC3B,IAAI,IAAI,OAAO,YAAY,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;AACvE,QAAQ,IAAI,UAAU;AACtB,QAAQ,IAAI,OAAO,YAAY,WAAW,EAAE;AAC5C,YAAY,UAAU,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC;AAChD;AACA,aAAa;AACb,YAAY,UAAU,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC;AAC/F;AACA,QAAQ,IAAI,MAAM,GAAG,CAAC;AACtB,QAAQ,OAAO,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE;AAC3C,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC;AACxE,YAAY,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC;AACvD,YAAY,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC;AAC/D,YAAY,MAAM,GAAG,GAAG;AACxB;AACA;AACA,SAAS;AACT,QAAQ,IAAI,IAAI;AAChB,QAAQ,IAAI,OAAO,YAAY,IAAI,EAAE;AACrC,YAAY,IAAI,GAAG,OAAO;AAC1B;AACA,aAAa;AACb,YAAY,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;AACtC;AACA,QAAQ,IAAI,MAAM,GAAG,CAAC;AACtB,QAAQ,OAAO,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE;AACnC,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC;AAChE,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC;AACjD,YAAY,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC;AACrD,YAAY,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC;AAC1D,YAAY,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,KAAK,CAAC;AACpE,YAAY,MAAM,GAAG,GAAG;AACxB;AACA;AACA,IAAI,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AAC1D,IAAI,OAAO;AACX,QAAQ,mBAAmB,EAAE,gBAAgB,CAAC,GAAG,CAAC;AAClD,QAAQ,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC;AAClC,QAAQ,IAAI,EAAE,YAAY;AAC1B,KAAK;AACL;;;;"}