@adobe/data 0.9.48 → 0.9.51
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.
- package/AGENTS.md +2 -0
- package/README.md +18 -101
- package/dist/ecs/database/combine-plugins.d.ts +35 -19
- package/dist/ecs/database/combine-plugins.js.map +1 -1
- package/dist/ecs/database/create-plugin.d.ts +11 -10
- package/dist/ecs/database/create-plugin.js.map +1 -1
- package/dist/ecs/database/database.d.ts +17 -23
- package/dist/ecs/database/database.js.map +1 -1
- package/dist/ecs/database/deep-extends-chain.type-test.d.ts +40963 -0
- package/dist/ecs/database/deep-extends-chain.type-test.js +282 -0
- package/dist/ecs/database/deep-extends-chain.type-test.js.map +1 -0
- package/dist/ecs/database/observed/create-observed-database.js.map +1 -1
- package/dist/ecs/database/observed/observed-database.d.ts +1 -3
- package/dist/ecs/database/public/create-database.d.ts +2 -5
- package/dist/ecs/database/public/create-database.js.map +1 -1
- package/dist/ecs/plugins/scheduler/scheduler.d.ts +13 -8
- package/dist/ecs/store/core/core.d.ts +3 -7
- package/dist/functions/serialization/compression.d.ts +2 -0
- package/dist/functions/serialization/compression.js +32 -0
- package/dist/functions/serialization/compression.js.map +1 -0
- package/dist/functions/serialization/serialization.test.js +66 -0
- package/dist/functions/serialization/serialization.test.js.map +1 -1
- package/dist/functions/serialization/serialize-to-blobs.js +20 -4
- package/dist/functions/serialization/serialize-to-blobs.js.map +1 -1
- package/dist/functions/serialization/serialize-to-blobs.test.js +21 -0
- package/dist/functions/serialization/serialize-to-blobs.test.js.map +1 -1
- package/dist/functions/serialization/serialize-to-json.js +5 -70
- package/dist/functions/serialization/serialize-to-json.js.map +1 -1
- package/dist/old-ecs/index.d.ts +4 -0
- package/dist/old-ecs/index.js +4 -0
- package/dist/old-ecs/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/typed-buffer/create-enum-buffer.d.ts +4 -0
- package/dist/typed-buffer/create-enum-buffer.js +82 -0
- package/dist/typed-buffer/create-enum-buffer.js.map +1 -0
- package/dist/typed-buffer/create-enum-buffer.test.d.ts +1 -0
- package/dist/typed-buffer/create-enum-buffer.test.js +248 -0
- package/dist/typed-buffer/create-enum-buffer.test.js.map +1 -0
- package/dist/typed-buffer/create-typed-buffer.js +4 -0
- package/dist/typed-buffer/create-typed-buffer.js.map +1 -1
- package/dist/typed-buffer/register-typed-buffer-codecs.js +20 -2
- package/dist/typed-buffer/register-typed-buffer-codecs.js.map +1 -1
- package/dist/typed-buffer/typed-buffer.d.ts +1 -1
- package/dist/types/types.d.ts +9 -1
- package/dist/types/types.js.map +1 -1
- package/package.json +1 -2
- package/references/data-lit/package.json +1 -1
- package/references/data-lit-tictactoe/package.json +1 -1
- package/references/data-react/package.json +1 -1
- package/references/data-react-hello/package.json +1 -1
- package/references/data-react-pixie/package.json +1 -1
|
@@ -1,18 +1,34 @@
|
|
|
1
1
|
// © 2026 Adobe. MIT License. See /LICENSE for details.
|
|
2
2
|
import { toArrayBufferBacked } from "../../internal/array-buffer-like/index.js";
|
|
3
|
+
import { compressDeflate, decompressDeflate } from "./compression.js";
|
|
3
4
|
import { serialize, deserialize } from "./serialize.js";
|
|
5
|
+
const ENCODING_VERSION = 2;
|
|
6
|
+
const concatenateBuffers = (parts) => {
|
|
7
|
+
const totalSize = parts.reduce((sum, p) => sum + p.byteLength, 0);
|
|
8
|
+
const combined = new Uint8Array(totalSize);
|
|
9
|
+
let offset = 0;
|
|
10
|
+
for (const part of parts) {
|
|
11
|
+
combined.set(part, offset);
|
|
12
|
+
offset += part.byteLength;
|
|
13
|
+
}
|
|
14
|
+
return combined;
|
|
15
|
+
};
|
|
4
16
|
export const serializeToBlobs = async (data) => {
|
|
5
17
|
const serialized = serialize(data);
|
|
6
18
|
const binarySizes = serialized.binary.map((array) => array.byteLength);
|
|
7
19
|
const binaryParts = serialized.binary.map(toArrayBufferBacked);
|
|
8
|
-
const
|
|
9
|
-
const
|
|
20
|
+
const compressed = await compressDeflate(concatenateBuffers(binaryParts));
|
|
21
|
+
const json = new Blob([JSON.stringify({ version: ENCODING_VERSION, json: serialized.json, binarySizes })], { type: "application/json" });
|
|
22
|
+
const binary = new Blob([compressed], { type: "application/octet-stream" });
|
|
10
23
|
return { json, binary };
|
|
11
24
|
};
|
|
12
25
|
export const deserializeFromBlobs = async ({ json, binary }) => {
|
|
13
26
|
const jsonText = await json.text();
|
|
14
|
-
const { json: serializedJson, binarySizes } = JSON.parse(jsonText);
|
|
15
|
-
const
|
|
27
|
+
const { version, json: serializedJson, binarySizes } = JSON.parse(jsonText);
|
|
28
|
+
const raw = new Uint8Array(await binary.arrayBuffer());
|
|
29
|
+
const binaryArray = version >= 2
|
|
30
|
+
? await decompressDeflate(raw)
|
|
31
|
+
: toArrayBufferBacked(raw);
|
|
16
32
|
const binaryChunks = [];
|
|
17
33
|
let offset = 0;
|
|
18
34
|
for (const size of binarySizes) {
|
|
@@ -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,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;
|
|
1
|
+
{"version":3,"file":"serialize-to-blobs.js","sourceRoot":"","sources":["../../../src/functions/serialization/serialize-to-blobs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,28 @@
|
|
|
1
1
|
// © 2026 Adobe. MIT License. See /LICENSE for details.
|
|
2
2
|
import { describe, it, expect } from "vitest";
|
|
3
3
|
import { serializeToBlobs, deserializeFromBlobs } from "./serialize-to-blobs.js";
|
|
4
|
+
import { serialize } from "./serialize.js";
|
|
4
5
|
describe("serializeToBlobs", () => {
|
|
6
|
+
it("should include version 2 in json metadata", async () => {
|
|
7
|
+
const data = { value: new Uint8Array([1, 2, 3]) };
|
|
8
|
+
const blobs = await serializeToBlobs(data);
|
|
9
|
+
const meta = JSON.parse(await blobs.json.text());
|
|
10
|
+
expect(meta.version).toBe(2);
|
|
11
|
+
});
|
|
12
|
+
it("should deserialize a legacy v1 payload (no version field, uncompressed binary)", async () => {
|
|
13
|
+
const data = {
|
|
14
|
+
scores: new Uint16Array([10, 20, 30]),
|
|
15
|
+
name: "legacy"
|
|
16
|
+
};
|
|
17
|
+
const serialized = serialize(data);
|
|
18
|
+
const binarySizes = serialized.binary.map((a) => a.byteLength);
|
|
19
|
+
const binaryParts = serialized.binary.map((a) => new Uint8Array(a.buffer, a.byteOffset, a.byteLength));
|
|
20
|
+
const jsonBlob = new Blob([JSON.stringify({ json: serialized.json, binarySizes })], { type: "application/json" });
|
|
21
|
+
const binaryBlob = new Blob(binaryParts, { type: "application/octet-stream" });
|
|
22
|
+
const result = await deserializeFromBlobs({ json: jsonBlob, binary: binaryBlob });
|
|
23
|
+
expect(result.name).toBe("legacy");
|
|
24
|
+
expect(result.scores).toEqual(data.scores);
|
|
25
|
+
});
|
|
5
26
|
it("should serialize and deserialize primitive data", async () => {
|
|
6
27
|
const data = {
|
|
7
28
|
string: "hello world",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize-to-blobs.test.js","sourceRoot":"","sources":["../../../src/functions/serialization/serialize-to-blobs.test.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"serialize-to-blobs.test.js","sourceRoot":"","sources":["../../../src/functions/serialization/serialize-to-blobs.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// © 2026 Adobe. MIT License. See /LICENSE for details.
|
|
2
2
|
import { toArrayBufferBacked } from "../../internal/array-buffer-like/index.js";
|
|
3
|
+
import { compressDeflate, decompressDeflate } from "./compression.js";
|
|
3
4
|
import { serialize, deserialize } from "./serialize.js";
|
|
4
5
|
/**
|
|
5
6
|
* Converts a Uint8Array to a base64 string
|
|
@@ -31,73 +32,13 @@ const base64ToUint8Array = (base64) => {
|
|
|
31
32
|
}
|
|
32
33
|
return bytes;
|
|
33
34
|
};
|
|
34
|
-
/**
|
|
35
|
-
* Compresses a Uint8Array using the deflate algorithm
|
|
36
|
-
*/
|
|
37
|
-
const compressData = async (data) => {
|
|
38
|
-
const stream = new ReadableStream({
|
|
39
|
-
start(controller) {
|
|
40
|
-
controller.enqueue(data);
|
|
41
|
-
controller.close();
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
const compressedStream = stream.pipeThrough(new CompressionStream('deflate'));
|
|
45
|
-
const chunks = [];
|
|
46
|
-
const reader = compressedStream.getReader();
|
|
47
|
-
for (;;) {
|
|
48
|
-
const { done, value } = await reader.read();
|
|
49
|
-
if (done)
|
|
50
|
-
break;
|
|
51
|
-
chunks.push(toArrayBufferBacked(value));
|
|
52
|
-
}
|
|
53
|
-
// Concatenate all chunks
|
|
54
|
-
const totalLength = chunks.reduce((sum, chunk) => sum + chunk.length, 0);
|
|
55
|
-
const result = new Uint8Array(totalLength);
|
|
56
|
-
let offset = 0;
|
|
57
|
-
for (const chunk of chunks) {
|
|
58
|
-
result.set(chunk, offset);
|
|
59
|
-
offset += chunk.length;
|
|
60
|
-
}
|
|
61
|
-
return result;
|
|
62
|
-
};
|
|
63
|
-
/**
|
|
64
|
-
* Decompresses a Uint8Array using the deflate algorithm
|
|
65
|
-
*/
|
|
66
|
-
const decompressData = async (data) => {
|
|
67
|
-
const stream = new ReadableStream({
|
|
68
|
-
start(controller) {
|
|
69
|
-
controller.enqueue(data);
|
|
70
|
-
controller.close();
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
const decompressedStream = stream.pipeThrough(new DecompressionStream('deflate'));
|
|
74
|
-
const chunks = [];
|
|
75
|
-
const reader = decompressedStream.getReader();
|
|
76
|
-
for (;;) {
|
|
77
|
-
const { done, value } = await reader.read();
|
|
78
|
-
if (done)
|
|
79
|
-
break;
|
|
80
|
-
chunks.push(toArrayBufferBacked(value));
|
|
81
|
-
}
|
|
82
|
-
// Concatenate all chunks
|
|
83
|
-
const totalLength = chunks.reduce((sum, chunk) => sum + chunk.length, 0);
|
|
84
|
-
const result = new Uint8Array(totalLength);
|
|
85
|
-
let offset = 0;
|
|
86
|
-
for (const chunk of chunks) {
|
|
87
|
-
result.set(chunk, offset);
|
|
88
|
-
offset += chunk.length;
|
|
89
|
-
}
|
|
90
|
-
return result;
|
|
91
|
-
};
|
|
92
35
|
/**
|
|
93
36
|
* Serializes data to a single JSON string with base64-encoded and compressed binary data.
|
|
94
37
|
* The binary arrays are concatenated, compressed using deflate, and their original lengths are stored to allow reconstruction.
|
|
95
38
|
*/
|
|
96
39
|
export const serializeToJSON = async (data) => {
|
|
97
40
|
const serialized = serialize(data);
|
|
98
|
-
// Store the length of each binary chunk
|
|
99
41
|
const lengths = serialized.binary.map(chunk => chunk.byteLength);
|
|
100
|
-
// Calculate total size and concatenate all binary arrays into a single Uint8Array
|
|
101
42
|
const totalSize = lengths.reduce((sum, len) => sum + len, 0);
|
|
102
43
|
const combinedBinary = new Uint8Array(totalSize);
|
|
103
44
|
let offset = 0;
|
|
@@ -105,12 +46,10 @@ export const serializeToJSON = async (data) => {
|
|
|
105
46
|
combinedBinary.set(binaryChunk, offset);
|
|
106
47
|
offset += binaryChunk.byteLength;
|
|
107
48
|
}
|
|
108
|
-
|
|
109
|
-
const compressedBinary = await compressData(combinedBinary);
|
|
110
|
-
// Convert to base64
|
|
49
|
+
const compressedBinary = await compressDeflate(combinedBinary);
|
|
111
50
|
const base64Binary = uint8ArrayToBase64(compressedBinary);
|
|
112
51
|
const result = {
|
|
113
|
-
json: JSON.parse(serialized.json),
|
|
52
|
+
json: JSON.parse(serialized.json),
|
|
114
53
|
lengths,
|
|
115
54
|
binary: base64Binary
|
|
116
55
|
};
|
|
@@ -121,11 +60,8 @@ export const serializeToJSON = async (data) => {
|
|
|
121
60
|
*/
|
|
122
61
|
export const deserializeFromJSON = async (jsonString) => {
|
|
123
62
|
const parsed = JSON.parse(jsonString);
|
|
124
|
-
// Convert base64 back to Uint8Array
|
|
125
63
|
const compressedBinary = base64ToUint8Array(parsed.binary);
|
|
126
|
-
|
|
127
|
-
const combinedBinary = await decompressData(compressedBinary);
|
|
128
|
-
// Split the combined binary back into chunks based on lengths
|
|
64
|
+
const combinedBinary = await decompressDeflate(compressedBinary);
|
|
129
65
|
const binaryChunks = [];
|
|
130
66
|
let offset = 0;
|
|
131
67
|
for (const length of parsed.lengths) {
|
|
@@ -133,9 +69,8 @@ export const deserializeFromJSON = async (jsonString) => {
|
|
|
133
69
|
binaryChunks.push(toArrayBufferBacked(chunk));
|
|
134
70
|
offset += length;
|
|
135
71
|
}
|
|
136
|
-
// Deserialize using the original deserialize function
|
|
137
72
|
return deserialize({
|
|
138
|
-
json: JSON.stringify(parsed.json),
|
|
73
|
+
json: JSON.stringify(parsed.json),
|
|
139
74
|
binary: binaryChunks
|
|
140
75
|
});
|
|
141
76
|
};
|
|
@@ -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,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,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
|
|
1
|
+
{"version":3,"file":"serialize-to-json.js","sourceRoot":"","sources":["../../../src/functions/serialization/serialize-to-json.ts"],"names":[],"mappings":"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"}
|
package/dist/old-ecs/index.d.ts
CHANGED
package/dist/old-ecs/index.js
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
// © 2026 Adobe. MIT License. See /LICENSE for details.
|
|
2
|
+
/**
|
|
3
|
+
* @deprecated Use `@adobe/data/ecs` with `Database.Plugin.create` instead.
|
|
4
|
+
* This module will be removed in a future release.
|
|
5
|
+
*/
|
|
2
6
|
export * from "./core-ecs/index.js";
|
|
3
7
|
export * from "./ecs/index.js";
|
|
4
8
|
export * from "./transaction-ecs/index.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/old-ecs/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/old-ecs/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD;;;GAGG;AAEH,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC"}
|