@adobe/data 0.9.32 → 0.9.34

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.
@@ -1,9 +1 @@
1
- /**
2
- * Converts a Blob to a hash using the blob content and type using SHA-256.
3
- */
4
- /**
5
- * Converts a Blob to a SHA-256 hash.
6
- * • Uses the streaming `crypto.DigestStream` API when present (no large buffers).
7
- * • Falls back to the original buffer-based approach otherwise.
8
- */
9
1
  export declare function blobToHash(blob: Blob): Promise<string>;
@@ -1,52 +1,23 @@
1
1
  // © 2026 Adobe. MIT License. See /LICENSE for details.
2
- import { arrayBufferToHex } from "./array-buffer-to-hex.js";
3
- import { bufferToHash } from "./buffer-to-hash.js";
4
- /**
5
- * Converts a Blob to a hash using the blob content and type using SHA-256.
6
- */
7
- /**
8
- * Converts a Blob to a SHA-256 hash.
9
- * • Uses the streaming `crypto.DigestStream` API when present (no large buffers).
10
- * • Falls back to the original buffer-based approach otherwise.
11
- */
2
+ import { createSHA256 } from "hash-wasm";
12
3
  export async function blobToHash(blob) {
13
- // ── 1. Streamed path
14
- if ("DigestStream" in crypto) {
15
- const digestStream = new crypto.DigestStream("SHA-256");
16
- // Encode the MIME-type as UTF-16LE
17
- const tCodes = new Uint16Array(blob.type.length);
18
- for (let i = 0; i < blob.type.length; i++)
19
- tCodes[i] = blob.type.charCodeAt(i);
20
- const tBytes = new Uint8Array(tCodes.buffer);
21
- // Feed type + blob chunks into the hash
22
- const writer = digestStream.writable.getWriter();
23
- await writer.write(tBytes);
24
- const reader = blob.stream().getReader();
25
- let done = false;
26
- while (!done) {
27
- const result = await reader.read();
28
- done = result.done;
29
- if (!done) {
30
- await writer.write(result.value);
31
- }
4
+ const hasher = await createSHA256();
5
+ hasher.init();
6
+ // Encode MIME type as UTF-16LE
7
+ const tCodes = new Uint16Array(blob.type.length);
8
+ for (let i = 0; i < blob.type.length; i++) {
9
+ tCodes[i] = blob.type.charCodeAt(i);
10
+ }
11
+ hasher.update(new Uint8Array(tCodes.buffer));
12
+ const reader = blob.stream().getReader();
13
+ let done = false;
14
+ while (!done) {
15
+ const result = await reader.read();
16
+ done = result.done === true;
17
+ if (!done && result.value != null) {
18
+ hasher.update(result.value);
32
19
  }
33
- await writer.close();
34
- const hashBuf = await digestStream.digest;
35
- return arrayBufferToHex(hashBuf);
36
20
  }
37
- // ── 2. Fallback
38
- const { type } = blob;
39
- const typeByteLength = type.length * 2;
40
- const buffer = new ArrayBuffer(typeByteLength + blob.size);
41
- // Write the MIME-type (UTF-16LE) into the first part of the buffer
42
- const charView = new Uint16Array(buffer, 0, type.length);
43
- for (let i = 0; i < type.length; i++)
44
- charView[i] = type.charCodeAt(i);
45
- // Append the blob bytes
46
- const byteView = new Uint8Array(buffer);
47
- const blobArrayBuffer = await blob.arrayBuffer();
48
- byteView.set(new Uint8Array(blobArrayBuffer), typeByteLength);
49
- // Hash the combined buffer
50
- return bufferToHash(buffer);
21
+ return hasher.digest("hex");
51
22
  }
52
23
  //# sourceMappingURL=blob-to-hash.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"blob-to-hash.js","sourceRoot":"","sources":["../../../../src/cache/functions/hashing/blob-to-hash.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD;;GAEG;AACH;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAU;IACzC,sBAAsB;IACtB,IAAI,cAAc,IAAI,MAAM,EAAE,CAAC;QAC7B,MAAM,YAAY,GAAG,IAAK,MAAc,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAEjE,mCAAmC;QACnC,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;YAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC/E,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAE7C,wCAAwC;QACxC,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QACjD,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE3B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,CAAC;QACzC,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,OAAO,CAAC,IAAI,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACnC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YACnB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAM,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QACD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QAErB,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC;QAC1C,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,iBAAiB;IACjB,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IACtB,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAE3D,mEAAmE;IACnE,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAEvE,wBAAwB;IACxB,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IACjD,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE,cAAc,CAAC,CAAC;IAE9D,2BAA2B;IAC3B,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"blob-to-hash.js","sourceRoot":"","sources":["../../../../src/cache/functions/hashing/blob-to-hash.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAU;IACzC,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;IACpC,MAAM,CAAC,IAAI,EAAE,CAAC;IAEd,+BAA+B;IAC/B,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAE7C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,CAAC;IACzC,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,OAAO,CAAC,IAAI,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,GAAG,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC;QAC5B,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC"}
@@ -1,22 +1,8 @@
1
1
  // © 2026 Adobe. MIT License. See /LICENSE for details.
2
2
  import { blobToHash } from "./blob-to-hash.js";
3
3
  import { jsonToHash } from "./json-to-hash.js";
4
- import { describe, expect, it, vi, beforeEach, afterEach } from "vitest";
4
+ import { describe, expect, it } from "vitest";
5
5
  describe("test hashing", () => {
6
- let originalCrypto;
7
- beforeEach(() => {
8
- // Store original crypto for restoration
9
- originalCrypto = crypto;
10
- });
11
- afterEach(() => {
12
- // Restore original crypto
13
- Object.defineProperty(window, 'crypto', {
14
- value: originalCrypto,
15
- writable: true,
16
- configurable: true
17
- });
18
- vi.restoreAllMocks();
19
- });
20
6
  describe("blobToHash", () => {
21
7
  it("should avoid collisions based on content and type", async () => {
22
8
  const blobs = [
@@ -36,7 +22,6 @@ describe("test hashing", () => {
36
22
  new Blob(["b"]),
37
23
  new Blob(["a"], { type: "octet/binary" }),
38
24
  new Blob(["a"], { type: "text/plain" }),
39
- // empty blobs should work
40
25
  new Blob([""]),
41
26
  new Blob([""], { type: "octet/binary" }),
42
27
  new Blob([""], { type: "text/plain" }),
@@ -44,8 +29,7 @@ describe("test hashing", () => {
44
29
  const hashPromises = blobs.map((blob) => blobToHash(blob));
45
30
  const hashes = await Promise.all(hashPromises);
46
31
  const unique = new Set(hashes);
47
- const collisions = hashes.length - unique.size;
48
- expect(collisions).toBe(0);
32
+ expect(hashes.length - unique.size).toBe(0);
49
33
  });
50
34
  it("should generate consistent hashes", async () => {
51
35
  const blobs = [
@@ -58,20 +42,6 @@ describe("test hashing", () => {
58
42
  const unique = new Set(hashes);
59
43
  expect(unique.size).toBe(1);
60
44
  });
61
- it("should handle large blobs efficiently", async () => {
62
- // Create a large blob (1MB) to test streaming performance
63
- const largeData = new Uint8Array(1024 * 1024);
64
- for (let i = 0; i < largeData.length; i++) {
65
- largeData[i] = i % 256;
66
- }
67
- const largeBlob = new Blob([largeData], { type: "application/octet-stream" });
68
- const startTime = performance.now();
69
- const hash = await blobToHash(largeBlob);
70
- const endTime = performance.now();
71
- expect(hash).toBeDefined();
72
- expect(hash.length).toBe(64); // SHA-256 hex string length
73
- expect(endTime - startTime).toBeLessThan(5000); // Should complete within 5 seconds
74
- });
75
45
  it("should handle blobs with complex MIME types", async () => {
76
46
  const complexTypes = [
77
47
  "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
@@ -83,9 +53,7 @@ describe("test hashing", () => {
83
53
  const blobs = complexTypes.map(type => new Blob(["test content"], { type }));
84
54
  const hashPromises = blobs.map((blob) => blobToHash(blob));
85
55
  const hashes = await Promise.all(hashPromises);
86
- // All should be unique due to different MIME types
87
- const unique = new Set(hashes);
88
- expect(unique.size).toBe(complexTypes.length);
56
+ expect(new Set(hashes).size).toBe(complexTypes.length);
89
57
  });
90
58
  it("should handle empty MIME types", async () => {
91
59
  const emptyTypeBlob = new Blob(["content"], { type: "" });
@@ -102,12 +70,9 @@ describe("test hashing", () => {
102
70
  const blobs = unicodeTypes.map(type => new Blob(["test content"], { type }));
103
71
  const hashPromises = blobs.map((blob) => blobToHash(blob));
104
72
  const hashes = await Promise.all(hashPromises);
105
- // All should be unique
106
- const unique = new Set(hashes);
107
- expect(unique.size).toBe(unicodeTypes.length);
73
+ expect(new Set(hashes).size).toBe(unicodeTypes.length);
108
74
  });
109
75
  it("should handle very large MIME types", async () => {
110
- // Test with extremely long MIME type
111
76
  const longMimeType = "application/" + "x".repeat(1000) + "; charset=utf-8";
112
77
  const blob = new Blob(["test content"], { type: longMimeType });
113
78
  const hash = await blobToHash(blob);
@@ -123,178 +88,16 @@ describe("test hashing", () => {
123
88
  const blobs = specialMimeTypes.map(type => new Blob(["test content"], { type }));
124
89
  const hashPromises = blobs.map((blob) => blobToHash(blob));
125
90
  const hashes = await Promise.all(hashPromises);
126
- // All should be unique
127
- const unique = new Set(hashes);
128
- expect(unique.size).toBe(specialMimeTypes.length);
129
- });
130
- describe("streaming path (DigestStream)", () => {
131
- it("should use DigestStream when available", async () => {
132
- // Mock DigestStream to verify it's being used
133
- const mockDigestStream = {
134
- writable: {
135
- getWriter: vi.fn().mockReturnValue({
136
- write: vi.fn().mockResolvedValue(undefined),
137
- close: vi.fn().mockResolvedValue(undefined)
138
- })
139
- },
140
- digest: Promise.resolve(new ArrayBuffer(32))
141
- };
142
- const mockCrypto = {
143
- ...originalCrypto,
144
- DigestStream: vi.fn().mockImplementation(() => mockDigestStream)
145
- };
146
- Object.defineProperty(window, 'crypto', {
147
- value: mockCrypto,
148
- writable: true,
149
- configurable: true
150
- });
151
- const blob = new Blob(["test content"], { type: "text/plain" });
152
- await blobToHash(blob);
153
- expect(mockCrypto.DigestStream).toHaveBeenCalledWith("SHA-256");
154
- expect(mockDigestStream.writable.getWriter).toHaveBeenCalled();
155
- });
156
- it("should handle streaming errors gracefully", async () => {
157
- const mockDigestStream = {
158
- writable: {
159
- getWriter: vi.fn().mockReturnValue({
160
- write: vi.fn().mockRejectedValue(new Error("Stream write error")),
161
- close: vi.fn().mockResolvedValue(undefined)
162
- })
163
- },
164
- digest: Promise.resolve(new ArrayBuffer(32))
165
- };
166
- const mockCrypto = {
167
- ...originalCrypto,
168
- DigestStream: vi.fn().mockImplementation(() => mockDigestStream)
169
- };
170
- Object.defineProperty(window, 'crypto', {
171
- value: mockCrypto,
172
- writable: true,
173
- configurable: true
174
- });
175
- const blob = new Blob(["test content"], { type: "text/plain" });
176
- await expect(blobToHash(blob)).rejects.toThrow("Stream write error");
177
- });
178
- it("should handle DigestStream digest errors", async () => {
179
- const mockDigestStream = {
180
- writable: {
181
- getWriter: vi.fn().mockReturnValue({
182
- write: vi.fn().mockResolvedValue(undefined),
183
- close: vi.fn().mockResolvedValue(undefined)
184
- })
185
- },
186
- get digest() {
187
- return Promise.reject(new Error("Digest error"));
188
- }
189
- };
190
- const mockCrypto = {
191
- ...originalCrypto,
192
- DigestStream: vi.fn().mockImplementation(() => mockDigestStream)
193
- };
194
- Object.defineProperty(window, 'crypto', {
195
- value: mockCrypto,
196
- writable: true,
197
- configurable: true
198
- });
199
- const blob = new Blob(["test content"], { type: "text/plain" });
200
- // Handle the unhandled rejection by catching it
201
- try {
202
- await blobToHash(blob);
203
- // If we get here, the test should fail
204
- expect(true).toBe(false);
205
- }
206
- catch (error) {
207
- expect(error).toBeInstanceOf(Error);
208
- expect(error.message).toBe("Digest error");
209
- }
210
- });
91
+ expect(new Set(hashes).size).toBe(specialMimeTypes.length);
211
92
  });
212
- describe("fallback path (buffer-based)", () => {
213
- it("should fall back to buffer-based approach when DigestStream unavailable", async () => {
214
- // Remove DigestStream from crypto but keep subtle
215
- const mockCrypto = {
216
- ...originalCrypto,
217
- subtle: originalCrypto.subtle
218
- };
219
- delete mockCrypto.DigestStream;
220
- Object.defineProperty(window, 'crypto', {
221
- value: mockCrypto,
222
- writable: true,
223
- configurable: true
224
- });
225
- const blob = new Blob(["test content"], { type: "text/plain" });
226
- const hash = await blobToHash(blob);
227
- expect(hash).toBeDefined();
228
- expect(hash.length).toBe(64);
229
- });
230
- it("should handle buffer-based approach with large blobs", async () => {
231
- // Remove DigestStream from crypto but keep subtle
232
- const mockCrypto = {
233
- ...originalCrypto,
234
- subtle: originalCrypto.subtle
235
- };
236
- delete mockCrypto.DigestStream;
237
- Object.defineProperty(window, 'crypto', {
238
- value: mockCrypto,
239
- writable: true,
240
- configurable: true
241
- });
242
- // Create a moderately large blob
243
- const data = new Uint8Array(100 * 1024); // 100KB
244
- for (let i = 0; i < data.length; i++) {
245
- data[i] = i % 256;
246
- }
247
- const blob = new Blob([data], { type: "application/octet-stream" });
248
- const hash = await blobToHash(blob);
249
- expect(hash).toBeDefined();
250
- expect(hash.length).toBe(64);
251
- });
252
- });
253
- it("should produce same hash regardless of path used", async () => {
254
- const testBlob = new Blob(["test content"], { type: "text/plain" });
255
- // Test with streaming path (if available)
256
- const streamingHash = await blobToHash(testBlob);
257
- // Test with fallback path
258
- const mockCrypto = {
259
- ...originalCrypto,
260
- subtle: originalCrypto.subtle
261
- };
262
- delete mockCrypto.DigestStream;
263
- Object.defineProperty(window, 'crypto', {
264
- value: mockCrypto,
265
- writable: true,
266
- configurable: true
267
- });
268
- const fallbackHash = await blobToHash(testBlob);
269
- // Both should produce the same hash for the same input
270
- expect(streamingHash).toBe(fallbackHash);
271
- });
272
- it("should produce identical hashes for multiple test cases", async () => {
273
- const testCases = [
274
- { content: "simple text", type: "text/plain" },
275
- { content: "complex content with special chars: !@#$%^&*()", type: "application/json" },
276
- { content: "", type: "text/plain" },
277
- { content: "a", type: "" },
278
- { content: "very long content ".repeat(100), type: "text/html; charset=utf-8" }
93
+ it("should return 64-character hex string", async () => {
94
+ const blobs = [
95
+ new Blob(["x"], { type: "text/plain" }),
96
+ new Blob([], { type: "application/octet-stream" }),
279
97
  ];
280
- for (const testCase of testCases) {
281
- const blob = new Blob([testCase.content], { type: testCase.type });
282
- // Get streaming hash
283
- const streamingHash = await blobToHash(blob);
284
- // Get fallback hash
285
- const mockCrypto = {
286
- ...originalCrypto,
287
- subtle: originalCrypto.subtle
288
- };
289
- delete mockCrypto.DigestStream;
290
- Object.defineProperty(window, 'crypto', {
291
- value: mockCrypto,
292
- writable: true,
293
- configurable: true
294
- });
295
- const fallbackHash = await blobToHash(blob);
296
- // Verify they match
297
- expect(streamingHash).toBe(fallbackHash);
98
+ for (const blob of blobs) {
99
+ const hash = await blobToHash(blob);
100
+ expect(hash).toMatch(/^[a-f0-9]{64}$/);
298
101
  }
299
102
  });
300
103
  });
@@ -1 +1 @@
1
- {"version":3,"file":"hashing.test.js","sourceRoot":"","sources":["../../../../src/cache/functions/hashing/hashing.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hashing.test.js","sourceRoot":"","sources":["../../../../src/cache/functions/hashing/hashing.test.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ import { toArrayBufferBacked } from "../../internal/array-buffer-like/index.js";
1
3
  import { registerCodec } from "./codec.js";
2
4
  export function registerTypedArrayCodecs() {
3
5
  // Support for all typed arrays
@@ -15,7 +17,7 @@ export function registerTypedArrayCodecs() {
15
17
  registerCodec({
16
18
  name: typedArrayConstructor.name,
17
19
  predicate: (data) => data instanceof typedArrayConstructor,
18
- serialize: (data) => ({ binary: [new Uint8Array(data.buffer, data.byteOffset, data.byteLength)] }),
20
+ serialize: (data) => ({ binary: [toArrayBufferBacked(new Uint8Array(data.buffer, data.byteOffset, data.byteLength))] }),
19
21
  deserialize: ({ binary }) => new typedArrayConstructor(binary[0].buffer, binary[0].byteOffset, binary[0].byteLength / typedArrayConstructor.BYTES_PER_ELEMENT),
20
22
  });
21
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"register-typed-array-codecs.js","sourceRoot":"","sources":["../../../src/functions/serialization/register-typed-array-codecs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,UAAU,wBAAwB;IACpC,+BAA+B;IAC/B,MAAM,sBAAsB,GAAG;QAC3B,SAAS;QACT,UAAU;QACV,UAAU;QACV,WAAW;QACX,UAAU;QACV,WAAW;QACX,YAAY;QACZ,YAAY;KACf,CAAC;IAEF,KAAK,MAAM,qBAAqB,IAAI,sBAAsB,EAAE,CAAC;QACzD,aAAa,CAAM;YACf,IAAI,EAAE,qBAAqB,CAAC,IAAI;YAChC,SAAS,EAAE,CAAC,IAAS,EAAe,EAAE,CAAC,IAAI,YAAY,qBAAqB;YAC5E,SAAS,EAAE,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,MAAqB,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YACtH,WAAW,EAAE,CAAC,EAAE,MAAM,EAAsD,EAAE,EAAE,CAAC,IAAK,qBAA6B,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,qBAAqB,CAAC,iBAAiB,CAAC;SAC9N,CAAC,CAAC;IACP,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"register-typed-array-codecs.js","sourceRoot":"","sources":["../../../src/functions/serialization/register-typed-array-codecs.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAEhF,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,UAAU,wBAAwB;IACpC,+BAA+B;IAC/B,MAAM,sBAAsB,GAAG;QAC3B,SAAS;QACT,UAAU;QACV,UAAU;QACV,WAAW;QACX,UAAU;QACV,WAAW;QACX,YAAY;QACZ,YAAY;KACf,CAAC;IAEF,KAAK,MAAM,qBAAqB,IAAI,sBAAsB,EAAE,CAAC;QACzD,aAAa,CAAM;YACf,IAAI,EAAE,qBAAqB,CAAC,IAAI;YAChC,SAAS,EAAE,CAAC,IAAS,EAAe,EAAE,CAAC,IAAI,YAAY,qBAAqB;YAC5E,SAAS,EAAE,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,mBAAmB,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5H,WAAW,EAAE,CAAC,EAAE,MAAM,EAAyC,EAAE,EAAE,CAAC,IAAK,qBAA6B,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,qBAAqB,CAAC,iBAAiB,CAAC;SACjN,CAAC,CAAC;IACP,CAAC;AACL,CAAC"}
@@ -1,10 +1,12 @@
1
1
  // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ import { toArrayBufferBacked } from "../../internal/array-buffer-like/index.js";
2
3
  import { serialize, deserialize } from "./serialize.js";
3
4
  export const serializeToBlobs = async (data) => {
4
5
  const serialized = serialize(data);
5
6
  const binarySizes = serialized.binary.map((array) => array.byteLength);
7
+ const binaryParts = serialized.binary.map(toArrayBufferBacked);
6
8
  const json = new Blob([JSON.stringify({ json: serialized.json, binarySizes })], { type: "application/json" });
7
- const binary = new Blob(serialized.binary, { type: "application/octet-stream" });
9
+ const binary = new Blob(binaryParts, { type: "application/octet-stream" });
8
10
  return { json, binary };
9
11
  };
10
12
  export const deserializeFromBlobs = async ({ json, binary }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"serialize-to-blobs.js","sourceRoot":"","sources":["../../../src/functions/serialization/serialize-to-blobs.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAExD,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAK,IAAO,EAAyC,EAAE;IACxF,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACvE,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC9G,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC,CAAC;IACjF,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAK,EAAE,IAAI,EAAE,MAAM,EAAgC,EAAc,EAAE;IACxG,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACnC,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEnE,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/D,MAAM,YAAY,GAA8B,EAAE,CAAC;IACnD,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC7B,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;QAC5D,MAAM,IAAI,IAAI,CAAC;IACnB,CAAC;IAED,OAAO,WAAW,CAAI,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;AAC1E,CAAC,CAAC"}
1
+ {"version":3,"file":"serialize-to-blobs.js","sourceRoot":"","sources":["../../../src/functions/serialization/serialize-to-blobs.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAExD,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAK,IAAO,EAAyC,EAAE;IACxF,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACvE,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC9G,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC,CAAC;IAC3E,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAK,EAAE,IAAI,EAAE,MAAM,EAAgC,EAAc,EAAE;IACxG,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACnC,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEnE,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/D,MAAM,YAAY,GAA8B,EAAE,CAAC;IACnD,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC7B,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;QAC5D,MAAM,IAAI,IAAI,CAAC;IACnB,CAAC;IAED,OAAO,WAAW,CAAI,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;AAC1E,CAAC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ import { toArrayBufferBacked } from "../../internal/array-buffer-like/index.js";
2
3
  import { serialize, deserialize } from "./serialize.js";
3
4
  /**
4
5
  * Converts a Uint8Array to a base64 string
@@ -47,7 +48,7 @@ const compressData = async (data) => {
47
48
  const { done, value } = await reader.read();
48
49
  if (done)
49
50
  break;
50
- chunks.push(value);
51
+ chunks.push(toArrayBufferBacked(value));
51
52
  }
52
53
  // Concatenate all chunks
53
54
  const totalLength = chunks.reduce((sum, chunk) => sum + chunk.length, 0);
@@ -76,7 +77,7 @@ const decompressData = async (data) => {
76
77
  const { done, value } = await reader.read();
77
78
  if (done)
78
79
  break;
79
- chunks.push(value);
80
+ chunks.push(toArrayBufferBacked(value));
80
81
  }
81
82
  // Concatenate all chunks
82
83
  const totalLength = chunks.reduce((sum, chunk) => sum + chunk.length, 0);
@@ -129,7 +130,7 @@ export const deserializeFromJSON = async (jsonString) => {
129
130
  let offset = 0;
130
131
  for (const length of parsed.lengths) {
131
132
  const chunk = combinedBinary.slice(offset, offset + length);
132
- binaryChunks.push(chunk);
133
+ binaryChunks.push(toArrayBufferBacked(chunk));
133
134
  offset += length;
134
135
  }
135
136
  // Deserialize using the original deserialize function
@@ -1 +1 @@
1
- {"version":3,"file":"serialize-to-json.js","sourceRoot":"","sources":["../../../src/functions/serialization/serialize-to-json.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAWxD;;;GAGG;AACH,MAAM,kBAAkB,GAAG,CAAC,IAAgB,EAAU,EAAE;IACpD,0CAA0C;IAC1C,sFAAsF;IACtF,+EAA+E;IAC/E,MAAM,UAAU,GAAG,MAAM,CAAC;IAC1B,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC;QAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,oFAAoF;IACpF,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,kBAAkB,GAAG,CAAC,MAAc,EAAc,EAAE;IACtD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;IAC1B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IAElC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,YAAY,GAAG,KAAK,EAAE,IAAgB,EAAoC,EAAE;IAC9E,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;QAC9B,KAAK,CAAC,UAAU;YACZ,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzB,UAAU,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;KACJ,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,CACvC,IAAI,iBAAiB,CAAC,SAAS,CAAC,CACnC,CAAC;IAEF,MAAM,MAAM,GAA8B,EAAE,CAAC;IAC7C,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,EAAE,CAAC;IAE5C,OAAO,IAAI,EAAE,CAAC;QACV,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,IAAI;YAAE,MAAM;QAChB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED,yBAAyB;IACzB,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACzE,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;IAC3C,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,cAAc,GAAG,KAAK,EAAE,IAAgB,EAAoC,EAAE;IAChF,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;QAC9B,KAAK,CAAC,UAAU;YACZ,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzB,UAAU,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;KACJ,CAAC,CAAC;IAEH,MAAM,kBAAkB,GAAG,MAAM,CAAC,WAAW,CACzC,IAAI,mBAAmB,CAAC,SAAS,CAAC,CACrC,CAAC;IAEF,MAAM,MAAM,GAA8B,EAAE,CAAC;IAC7C,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,EAAE,CAAC;IAE9C,OAAO,IAAI,EAAE,CAAC;QACV,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,IAAI;YAAE,MAAM;QAChB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED,yBAAyB;IACzB,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACzE,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;IAC3C,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAK,IAAO,EAAmB,EAAE;IACjE,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAEnC,wCAAwC;IACxC,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAEjE,kFAAkF;IAClF,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;IAC7D,MAAM,cAAc,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;IACjD,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,KAAK,MAAM,WAAW,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QAC1C,cAAc,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACxC,MAAM,IAAI,WAAW,CAAC,UAAU,CAAC;IACrC,CAAC;IAED,2BAA2B;IAC3B,MAAM,gBAAgB,GAAG,MAAM,YAAY,CAAC,cAAc,CAAC,CAAC;IAE5D,oBAAoB;IACpB,MAAM,YAAY,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IAE1D,MAAM,MAAM,GAAmB;QAC3B,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,iCAAiC;QACpE,OAAO;QACP,MAAM,EAAE,YAAY;KACvB,CAAC;IAEF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAK,UAAkB,EAAc,EAAE;IAC3E,MAAM,MAAM,GAAmB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAEtD,oCAAoC;IACpC,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAE3D,6BAA6B;IAC7B,MAAM,cAAc,GAAG,MAAM,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAE9D,8DAA8D;IAC9D,MAAM,YAAY,GAA8B,EAAE,CAAC;IACnD,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;QAC5D,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,MAAM,IAAI,MAAM,CAAC;IACrB,CAAC;IAED,sDAAsD;IACtD,OAAO,WAAW,CAAI;QAClB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,2CAA2C;QAC9E,MAAM,EAAE,YAAY;KACvB,CAAC,CAAC;AACP,CAAC,CAAC"}
1
+ {"version":3,"file":"serialize-to-json.js","sourceRoot":"","sources":["../../../src/functions/serialization/serialize-to-json.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export * from './copy.js';
2
2
  export * from './resize.js';
3
+ export * from './to-array-buffer-backed.js';
3
4
  export * from './is-array-buffer.js';
4
5
  export * from './is-shared-array-buffer.js';
@@ -1,6 +1,7 @@
1
1
  // © 2026 Adobe. MIT License. See /LICENSE for details.
2
2
  export * from './copy.js';
3
3
  export * from './resize.js';
4
+ export * from './to-array-buffer-backed.js';
4
5
  export * from './is-array-buffer.js';
5
6
  export * from './is-shared-array-buffer.js';
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/internal/array-buffer-like/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/internal/array-buffer-like/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Returns a Uint8Array backed by ArrayBuffer, copying if the input is backed by SharedArrayBuffer.
3
+ * Blob and other APIs may not accept SharedArrayBuffer-backed views.
4
+ */
5
+ export declare function toArrayBufferBacked(view: Uint8Array): Uint8Array<ArrayBuffer>;
@@ -0,0 +1,14 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ import { isSharedArrayBuffer } from "./is-shared-array-buffer.js";
3
+ /**
4
+ * Returns a Uint8Array backed by ArrayBuffer, copying if the input is backed by SharedArrayBuffer.
5
+ * Blob and other APIs may not accept SharedArrayBuffer-backed views.
6
+ */
7
+ export function toArrayBufferBacked(view) {
8
+ if (isSharedArrayBuffer(view.buffer)) {
9
+ return view.slice();
10
+ }
11
+ // view.buffer is ArrayBuffer here; TypeScript cannot narrow view from buffer check
12
+ return view;
13
+ }
14
+ //# sourceMappingURL=to-array-buffer-backed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-array-buffer-backed.js","sourceRoot":"","sources":["../../../src/internal/array-buffer-like/to-array-buffer-backed.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAgB;IAChD,IAAI,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IACD,mFAAmF;IACnF,OAAO,IAA+B,CAAC;AAC3C,CAAC"}