@adobe/data 0.3.1 → 0.3.2
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/dist/cache/functions/hashing/array-buffer-to-hex.d.ts +1 -0
- package/dist/cache/functions/hashing/array-buffer-to-hex.js +27 -0
- package/dist/cache/functions/hashing/array-buffer-to-hex.js.map +1 -0
- package/dist/cache/functions/hashing/arrayBufferToHex.d.ts +1 -0
- package/dist/cache/functions/hashing/arrayBufferToHex.js +27 -0
- package/dist/cache/functions/hashing/arrayBufferToHex.js.map +1 -0
- package/dist/cache/functions/hashing/blob-to-hash.d.ts +5 -0
- package/dist/cache/functions/hashing/blob-to-hash.js +34 -8
- package/dist/cache/functions/hashing/blob-to-hash.js.map +1 -1
- package/dist/cache/functions/hashing/buffer-to-hash.js +1 -5
- package/dist/cache/functions/hashing/buffer-to-hash.js.map +1 -1
- package/dist/cache/functions/hashing/hashing.test.js +322 -65
- package/dist/cache/functions/hashing/hashing.test.js.map +1 -1
- package/dist/ecs/archetype/create-archetype.test.js +4 -4
- package/dist/ecs/archetype/create-archetype.test.js.map +1 -1
- package/dist/ecs/archetype/delete-row.test.js +3 -3
- package/dist/ecs/archetype/delete-row.test.js.map +1 -1
- package/dist/ecs/database/create-database.js.map +1 -1
- package/dist/ecs/database/transactional-store/create-transactional-store.js +2 -2
- package/dist/ecs/database/transactional-store/create-transactional-store.js.map +1 -1
- package/dist/ecs/database/transactional-store/create-transactional-store.test.js +5 -5
- package/dist/ecs/database/transactional-store/create-transactional-store.test.js.map +1 -1
- package/dist/ecs/entity-location-table/create-entity-location-table.d.ts +7 -0
- package/dist/ecs/entity-location-table/create-entity-location-table.js +14 -3
- package/dist/ecs/entity-location-table/create-entity-location-table.js.map +1 -1
- package/dist/ecs/store/core/select-entities.js +2 -2
- package/dist/ecs/store/core/select-entities.js.map +1 -1
- package/dist/equals.js +17 -11
- package/dist/equals.js.map +1 -1
- package/dist/equals.test.js +47 -0
- package/dist/equals.test.js.map +1 -1
- package/dist/functions/blit.d.ts +9 -0
- package/dist/functions/blit.js +42 -0
- package/dist/functions/blit.js.map +1 -0
- package/dist/functions/copy-view-bytes.d.ts +2 -0
- package/dist/functions/copy-view-bytes.js +29 -0
- package/dist/functions/copy-view-bytes.js.map +1 -0
- package/dist/functions/index.d.ts +3 -0
- package/dist/functions/index.js +3 -0
- package/dist/functions/index.js.map +1 -1
- package/dist/functions/serialization/codec.d.ts +24 -0
- package/dist/functions/serialization/codec.js +48 -0
- package/dist/functions/serialization/codec.js.map +1 -0
- package/dist/functions/serialization/deserialize.d.ts +4 -0
- package/dist/functions/serialization/deserialize.js +15 -0
- package/dist/functions/serialization/deserialize.js.map +1 -0
- package/dist/functions/serialization/index.d.ts +2 -0
- package/dist/functions/serialization/index.js +3 -0
- package/dist/functions/serialization/index.js.map +1 -0
- package/dist/functions/serialization/register-typed-array-codecs.d.ts +1 -0
- package/dist/functions/serialization/register-typed-array-codecs.js +13 -0
- package/dist/functions/serialization/register-typed-array-codecs.js.map +1 -0
- package/dist/functions/serialization/serialization.test.d.ts +1 -0
- package/dist/functions/serialization/serialization.test.js +79 -0
- package/dist/functions/serialization/serialization.test.js.map +1 -0
- package/dist/functions/serialization/serialize.d.ts +4 -0
- package/dist/functions/serialization/serialize.js +19 -0
- package/dist/functions/serialization/serialize.js.map +1 -0
- package/dist/observe/index.d.ts +1 -0
- package/dist/observe/index.js +1 -0
- package/dist/observe/index.js.map +1 -1
- package/dist/observe/observe.test.js +24 -0
- package/dist/observe/observe.test.js.map +1 -1
- package/dist/observe/with-map.d.ts +1 -1
- package/dist/observe/with-map.js +4 -1
- package/dist/observe/with-map.js.map +1 -1
- package/dist/schema/schema.d.ts +5 -1
- package/dist/table/add-row.js +4 -3
- package/dist/table/add-row.js.map +1 -1
- package/dist/table/copy-column-to-gpu-buffer.js +2 -2
- package/dist/table/copy-column-to-gpu-buffer.js.map +1 -1
- package/dist/table/create-table.js +4 -2
- package/dist/table/create-table.js.map +1 -1
- package/dist/table/create-table.test.js +1 -1
- package/dist/table/create-table.test.js.map +1 -1
- package/dist/table/delete-row.js +1 -1
- package/dist/table/delete-row.js.map +1 -1
- package/dist/table/ensure-capacity.d.ts +1 -1
- package/dist/table/ensure-capacity.js +10 -10
- package/dist/table/ensure-capacity.js.map +1 -1
- package/dist/table/select-rows.js +2 -2
- package/dist/table/select-rows.js.map +1 -1
- package/dist/table/table.d.ts +4 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/typed-buffer/create-array-buffer.d.ts +3 -3
- package/dist/typed-buffer/create-array-buffer.js +36 -32
- package/dist/typed-buffer/create-array-buffer.js.map +1 -1
- package/dist/typed-buffer/create-const-buffer.d.ts +3 -1
- package/dist/typed-buffer/create-const-buffer.js +30 -28
- package/dist/typed-buffer/create-const-buffer.js.map +1 -1
- package/dist/typed-buffer/create-const-buffer.test.js +18 -46
- package/dist/typed-buffer/create-const-buffer.test.js.map +1 -1
- package/dist/typed-buffer/create-number-buffer.d.ts +2 -6
- package/dist/typed-buffer/create-number-buffer.js +40 -33
- package/dist/typed-buffer/create-number-buffer.js.map +1 -1
- package/dist/typed-buffer/create-struct-buffer.d.ts +3 -7
- package/dist/typed-buffer/create-struct-buffer.js +58 -41
- package/dist/typed-buffer/create-struct-buffer.js.map +1 -1
- package/dist/typed-buffer/create-typed-buffer.d.ts +2 -5
- package/dist/typed-buffer/create-typed-buffer.js +16 -8
- package/dist/typed-buffer/create-typed-buffer.js.map +1 -1
- package/dist/typed-buffer/is-typed-buffer.d.ts +2 -0
- package/dist/typed-buffer/is-typed-buffer.js +5 -0
- package/dist/typed-buffer/is-typed-buffer.js.map +1 -0
- package/dist/typed-buffer/is-typed-buffer.test.d.ts +1 -0
- package/dist/typed-buffer/is-typed-buffer.test.js +26 -0
- package/dist/typed-buffer/is-typed-buffer.test.js.map +1 -0
- package/dist/typed-buffer/register-typed-buffer-codecs.d.ts +1 -0
- package/dist/typed-buffer/register-typed-buffer-codecs.js +80 -0
- package/dist/typed-buffer/register-typed-buffer-codecs.js.map +1 -0
- package/dist/typed-buffer/typed-buffer-equals.d.ts +2 -0
- package/dist/typed-buffer/typed-buffer-equals.js +20 -0
- package/dist/typed-buffer/typed-buffer-equals.js.map +1 -0
- package/dist/typed-buffer/typed-buffer-equals.test.d.ts +1 -0
- package/dist/typed-buffer/typed-buffer-equals.test.js +234 -0
- package/dist/typed-buffer/typed-buffer-equals.test.js.map +1 -0
- package/dist/typed-buffer/typed-buffer.d.ts +18 -8
- package/dist/typed-buffer/typed-buffer.js +6 -1
- package/dist/typed-buffer/typed-buffer.js.map +1 -1
- package/dist/typed-buffer/typed-buffer.test.js +30 -66
- package/dist/typed-buffer/typed-buffer.test.js.map +1 -1
- package/package.json +1 -1
|
@@ -3,19 +3,27 @@ import { getStructLayout } from "./structs/get-struct-layout.js";
|
|
|
3
3
|
import { createNumberBuffer } from "./create-number-buffer.js";
|
|
4
4
|
import { createArrayBuffer } from "./create-array-buffer.js";
|
|
5
5
|
import { createConstBuffer } from "./create-const-buffer.js";
|
|
6
|
-
export
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
export function createTypedBuffer(schema, initialCapacityOrValues) {
|
|
7
|
+
if (Array.isArray(initialCapacityOrValues)) {
|
|
8
|
+
const buffer = createTypedBufferInternal(schema, initialCapacityOrValues.length);
|
|
9
|
+
for (let i = 0; i < initialCapacityOrValues.length; i++) {
|
|
10
|
+
buffer.set(i, initialCapacityOrValues[i]);
|
|
11
|
+
}
|
|
12
|
+
return buffer;
|
|
13
|
+
}
|
|
14
|
+
return createTypedBufferInternal(schema, initialCapacityOrValues ?? 16);
|
|
15
|
+
}
|
|
16
|
+
function createTypedBufferInternal(schema, initialCapacity) {
|
|
9
17
|
if (schema.const !== undefined) {
|
|
10
|
-
return createConstBuffer(schema
|
|
18
|
+
return createConstBuffer(schema, initialCapacity);
|
|
11
19
|
}
|
|
12
20
|
if (schema.type === 'number' || schema.type === 'integer') {
|
|
13
|
-
return createNumberBuffer(
|
|
21
|
+
return createNumberBuffer(schema, initialCapacity);
|
|
14
22
|
}
|
|
15
23
|
const structLayout = getStructLayout(schema, false);
|
|
16
24
|
if (structLayout) {
|
|
17
|
-
return createStructBuffer(
|
|
25
|
+
return createStructBuffer(schema, initialCapacity);
|
|
18
26
|
}
|
|
19
|
-
return createArrayBuffer(
|
|
20
|
-
}
|
|
27
|
+
return createArrayBuffer(schema, initialCapacity);
|
|
28
|
+
}
|
|
21
29
|
//# sourceMappingURL=create-typed-buffer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-typed-buffer.js","sourceRoot":"","sources":["../../src/typed-buffer/create-typed-buffer.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"create-typed-buffer.js","sourceRoot":"","sources":["../../src/typed-buffer/create-typed-buffer.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAU7D,MAAM,UAAU,iBAAiB,CAC7B,MAAS,EACT,uBAAkD;IAElD,IAAI,KAAK,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,yBAAyB,CAAI,MAAM,EAAE,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACpF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,uBAAuB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtD,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,OAAO,yBAAyB,CAAI,MAAM,EAAE,uBAAuB,IAAI,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED,SAAS,yBAAyB,CAC9B,MAAS,EACT,eAAuB;IAGvB,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,iBAAiB,CAAC,MAAM,EAAE,eAAe,CAA+B,CAAC;IACpF,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACxD,OAAO,kBAAkB,CAAC,MAAM,EAAE,eAAe,CAA+B,CAAC;IACrF,CAAC;IAED,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACpD,IAAI,YAAY,EAAE,CAAC;QACf,OAAO,kBAAkB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,iBAAiB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AACtD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-typed-buffer.js","sourceRoot":"","sources":["../../src/typed-buffer/is-typed-buffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,UAAU,aAAa,CAAC,CAAU;IACpC,OAAO,CAAC,YAAY,WAAW,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { isTypedBuffer } from './is-typed-buffer.js';
|
|
3
|
+
import { createNumberBuffer } from './create-number-buffer.js';
|
|
4
|
+
import { createArrayBuffer } from './create-array-buffer.js';
|
|
5
|
+
import { createStructBuffer } from './create-struct-buffer.js';
|
|
6
|
+
import { createTypedBuffer } from './create-typed-buffer.js';
|
|
7
|
+
describe('isTypedBuffer', () => {
|
|
8
|
+
it('should return true for createNumberBuffer', () => {
|
|
9
|
+
const buffer = createNumberBuffer({ type: 'number', precision: 1 }, 2);
|
|
10
|
+
expect(isTypedBuffer(buffer)).toBe(true);
|
|
11
|
+
});
|
|
12
|
+
it('should return true for createArrayBuffer', () => {
|
|
13
|
+
const buffer = createArrayBuffer({ type: 'string' }, 2);
|
|
14
|
+
expect(isTypedBuffer(buffer)).toBe(true);
|
|
15
|
+
});
|
|
16
|
+
it('should return true for createStructBuffer', () => {
|
|
17
|
+
const schema = { type: 'object', properties: { x: { type: 'number', precision: 1 } } };
|
|
18
|
+
const buffer = createStructBuffer(schema, 2);
|
|
19
|
+
expect(isTypedBuffer(buffer)).toBe(true);
|
|
20
|
+
});
|
|
21
|
+
it('should return true for createTypedBuffer', () => {
|
|
22
|
+
const buffer = createTypedBuffer({ type: 'number', precision: 1 }, 2);
|
|
23
|
+
expect(isTypedBuffer(buffer)).toBe(true);
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
//# sourceMappingURL=is-typed-buffer.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-typed-buffer.test.js","sourceRoot":"","sources":["../../src/typed-buffer/is-typed-buffer.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACjD,MAAM,MAAM,GAAG,kBAAkB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACvE,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAChD,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;QACxD,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACjD,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAW,CAAC;QAChG,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAChD,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACtE,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function registerTypedBufferCodecs(): void;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/*MIT License
|
|
2
|
+
|
|
3
|
+
© Copyright 2025 Adobe. All rights reserved.
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.*/
|
|
22
|
+
import { copyViewBytes } from "../functions/copy-view-bytes.js";
|
|
23
|
+
import { registerCodec } from "../functions/serialization/codec.js";
|
|
24
|
+
import { createArrayBuffer } from "./create-array-buffer.js";
|
|
25
|
+
import { createConstBuffer } from "./create-const-buffer.js";
|
|
26
|
+
import { createNumberBuffer } from "./create-number-buffer.js";
|
|
27
|
+
import { createStructBuffer } from "./create-struct-buffer.js";
|
|
28
|
+
import { isTypedBuffer } from "./is-typed-buffer.js";
|
|
29
|
+
export function registerTypedBufferCodecs() {
|
|
30
|
+
registerCodec({
|
|
31
|
+
name: "typed-buffer",
|
|
32
|
+
predicate: isTypedBuffer,
|
|
33
|
+
serialize: (data) => {
|
|
34
|
+
const { type, schema, capacity } = data;
|
|
35
|
+
try {
|
|
36
|
+
switch (type) {
|
|
37
|
+
case "const":
|
|
38
|
+
return { json: { type, schema, capacity } };
|
|
39
|
+
case "array":
|
|
40
|
+
return { json: { type, schema, capacity, array: data.slice() } };
|
|
41
|
+
case "number":
|
|
42
|
+
case "struct":
|
|
43
|
+
const typedArray = data.getTypedArray();
|
|
44
|
+
return { json: { type, schema, capacity }, binary: [new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength)] };
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
catch (e) {
|
|
48
|
+
console.log("error serializing this", data, e, "data.slice", data.slice);
|
|
49
|
+
throw e;
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
deserialize: ({ json, binary }) => {
|
|
53
|
+
const encoded = json;
|
|
54
|
+
const { type, schema, capacity, array } = encoded;
|
|
55
|
+
switch (type) {
|
|
56
|
+
case "const": {
|
|
57
|
+
return createConstBuffer(schema, capacity);
|
|
58
|
+
}
|
|
59
|
+
case "array": {
|
|
60
|
+
const buffer = createArrayBuffer(schema, capacity);
|
|
61
|
+
for (let i = 0; i < capacity; i++) {
|
|
62
|
+
buffer.set(i, array[i]);
|
|
63
|
+
}
|
|
64
|
+
return buffer;
|
|
65
|
+
}
|
|
66
|
+
case "number": {
|
|
67
|
+
const buffer = createNumberBuffer(schema, capacity);
|
|
68
|
+
copyViewBytes(binary[0], buffer.getTypedArray());
|
|
69
|
+
return buffer;
|
|
70
|
+
}
|
|
71
|
+
case "struct": {
|
|
72
|
+
const buffer = createStructBuffer(schema, capacity);
|
|
73
|
+
copyViewBytes(binary[0], buffer.getTypedArray());
|
|
74
|
+
return buffer;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=register-typed-buffer-codecs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-typed-buffer-codecs.js","sourceRoot":"","sources":["../../src/typed-buffer/register-typed-buffer-codecs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { equals } from "../equals.js";
|
|
2
|
+
export function typedBufferEquals(a, b) {
|
|
3
|
+
if (a === b)
|
|
4
|
+
return true; // same reference
|
|
5
|
+
// cheap structural checks first
|
|
6
|
+
if (a.type !== b.type ||
|
|
7
|
+
a.capacity !== b.capacity)
|
|
8
|
+
return false;
|
|
9
|
+
// compare schemas using equals function
|
|
10
|
+
if (!equals(a.schema, b.schema))
|
|
11
|
+
return false;
|
|
12
|
+
// fallback: per-element recursive compare
|
|
13
|
+
const capacity = a.capacity;
|
|
14
|
+
for (let i = 0; i < capacity; i++) {
|
|
15
|
+
if (!equals(a.get(i), b.get(i)))
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=typed-buffer-equals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typed-buffer-equals.js","sourceRoot":"","sources":["../../src/typed-buffer/typed-buffer-equals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC,MAAM,UAAU,iBAAiB,CAC7B,CAA+B,EAC/B,CAA+B;IAE/B,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,CAAwB,iBAAiB;IAElE,gCAAgC;IAChC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;QACjB,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE5C,wCAAwC;IACxC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAE9C,0CAA0C;IAC1C,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IAClD,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
/*MIT License
|
|
2
|
+
|
|
3
|
+
© Copyright 2025 Adobe. All rights reserved.
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.*/
|
|
22
|
+
import { describe, it, expect } from 'vitest';
|
|
23
|
+
import { typedBufferEquals } from './typed-buffer-equals.js';
|
|
24
|
+
import { createNumberBuffer } from './create-number-buffer.js';
|
|
25
|
+
import { createArrayBuffer } from './create-array-buffer.js';
|
|
26
|
+
import { createStructBuffer } from './create-struct-buffer.js';
|
|
27
|
+
import { createConstBuffer } from './create-const-buffer.js';
|
|
28
|
+
import { createTypedBuffer } from './create-typed-buffer.js';
|
|
29
|
+
describe('typedBufferEquals', () => {
|
|
30
|
+
describe('same reference', () => {
|
|
31
|
+
it('should return true for identical references', () => {
|
|
32
|
+
const buffer = createNumberBuffer({ type: 'number', precision: 1 }, 3);
|
|
33
|
+
expect(typedBufferEquals(buffer, buffer)).toBe(true);
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
describe('structural differences', () => {
|
|
37
|
+
it('should return false for different types', () => {
|
|
38
|
+
const numberBuffer = createNumberBuffer({ type: 'number', precision: 1 }, 3);
|
|
39
|
+
const arrayBuffer = createArrayBuffer({ type: 'string' }, 3);
|
|
40
|
+
expect(typedBufferEquals(numberBuffer, arrayBuffer)).toBe(false);
|
|
41
|
+
});
|
|
42
|
+
it('should return false for different schemas', () => {
|
|
43
|
+
const buffer1 = createNumberBuffer({ type: 'number', precision: 1 }, 3);
|
|
44
|
+
const buffer2 = createNumberBuffer({ type: 'number', precision: 2 }, 3);
|
|
45
|
+
expect(typedBufferEquals(buffer1, buffer2)).toBe(false);
|
|
46
|
+
});
|
|
47
|
+
it('should return false for different capacities', () => {
|
|
48
|
+
const buffer1 = createNumberBuffer({ type: 'number', precision: 1 }, 3);
|
|
49
|
+
const buffer2 = createNumberBuffer({ type: 'number', precision: 1 }, 5);
|
|
50
|
+
expect(typedBufferEquals(buffer1, buffer2)).toBe(false);
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
describe('number buffers', () => {
|
|
54
|
+
it('should return true for identical number buffers', () => {
|
|
55
|
+
const schema = { type: 'number', precision: 1 };
|
|
56
|
+
const buffer1 = createNumberBuffer(schema, 3);
|
|
57
|
+
const buffer2 = createNumberBuffer(schema, 3);
|
|
58
|
+
buffer1.set(0, 1.5);
|
|
59
|
+
buffer1.set(1, 2.5);
|
|
60
|
+
buffer1.set(2, 3.5);
|
|
61
|
+
buffer2.set(0, 1.5);
|
|
62
|
+
buffer2.set(1, 2.5);
|
|
63
|
+
buffer2.set(2, 3.5);
|
|
64
|
+
expect(typedBufferEquals(buffer1, buffer2)).toBe(true);
|
|
65
|
+
});
|
|
66
|
+
it('should return false for different values', () => {
|
|
67
|
+
const buffer1 = createNumberBuffer({ type: 'number', precision: 1 }, 3);
|
|
68
|
+
const buffer2 = createNumberBuffer({ type: 'number', precision: 1 }, 3);
|
|
69
|
+
buffer1.set(0, 1.5);
|
|
70
|
+
buffer1.set(1, 2.5);
|
|
71
|
+
buffer1.set(2, 3.5);
|
|
72
|
+
buffer2.set(0, 1.5);
|
|
73
|
+
buffer2.set(1, 2.5);
|
|
74
|
+
buffer2.set(2, 4.5); // Different value
|
|
75
|
+
expect(typedBufferEquals(buffer1, buffer2)).toBe(false);
|
|
76
|
+
});
|
|
77
|
+
it('should handle different number precisions', () => {
|
|
78
|
+
const f32Buffer = createNumberBuffer({ type: 'number', precision: 1 }, 2);
|
|
79
|
+
const f64Buffer = createNumberBuffer({ type: 'number', precision: 2 }, 2);
|
|
80
|
+
f32Buffer.set(0, 1.5);
|
|
81
|
+
f32Buffer.set(1, 2.5);
|
|
82
|
+
f64Buffer.set(0, 1.5);
|
|
83
|
+
f64Buffer.set(1, 2.5);
|
|
84
|
+
expect(typedBufferEquals(f32Buffer, f64Buffer)).toBe(false);
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
describe('array buffers', () => {
|
|
88
|
+
it('should return true for identical array buffers', () => {
|
|
89
|
+
const buffer1 = createArrayBuffer({ type: 'string' }, 3);
|
|
90
|
+
const buffer2 = createArrayBuffer({ type: 'string' }, 3);
|
|
91
|
+
buffer1.set(0, 'hello');
|
|
92
|
+
buffer1.set(1, 'world');
|
|
93
|
+
buffer1.set(2, 'test');
|
|
94
|
+
buffer2.set(0, 'hello');
|
|
95
|
+
buffer2.set(1, 'world');
|
|
96
|
+
buffer2.set(2, 'test');
|
|
97
|
+
expect(typedBufferEquals(buffer1, buffer2)).toBe(true);
|
|
98
|
+
});
|
|
99
|
+
it('should return false for different array values', () => {
|
|
100
|
+
const buffer1 = createArrayBuffer({ type: 'string' }, 3);
|
|
101
|
+
const buffer2 = createArrayBuffer({ type: 'string' }, 3);
|
|
102
|
+
buffer1.set(0, 'hello');
|
|
103
|
+
buffer1.set(1, 'world');
|
|
104
|
+
buffer1.set(2, 'test');
|
|
105
|
+
buffer2.set(0, 'hello');
|
|
106
|
+
buffer2.set(1, 'world');
|
|
107
|
+
buffer2.set(2, 'different'); // Different value
|
|
108
|
+
expect(typedBufferEquals(buffer1, buffer2)).toBe(false);
|
|
109
|
+
});
|
|
110
|
+
it('should handle complex array values', () => {
|
|
111
|
+
const buffer1 = createArrayBuffer({ type: 'array', items: { type: 'number' } }, 2);
|
|
112
|
+
const buffer2 = createArrayBuffer({ type: 'array', items: { type: 'number' } }, 2);
|
|
113
|
+
buffer1.set(0, [1, 2, 3]);
|
|
114
|
+
buffer1.set(1, [4, 5, 6]);
|
|
115
|
+
buffer2.set(0, [1, 2, 3]);
|
|
116
|
+
buffer2.set(1, [4, 5, 6]);
|
|
117
|
+
expect(typedBufferEquals(buffer1, buffer2)).toBe(true);
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
describe('struct buffers', () => {
|
|
121
|
+
const vec2Schema = {
|
|
122
|
+
type: 'object',
|
|
123
|
+
properties: {
|
|
124
|
+
x: { type: 'number', precision: 1 },
|
|
125
|
+
y: { type: 'number', precision: 1 }
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
it('should return true for identical struct buffers', () => {
|
|
129
|
+
const buffer1 = createStructBuffer(vec2Schema, 3);
|
|
130
|
+
const buffer2 = createStructBuffer(vec2Schema, 3);
|
|
131
|
+
buffer1.set(0, { x: 1.5, y: 2.5 });
|
|
132
|
+
buffer1.set(1, { x: 3.5, y: 4.5 });
|
|
133
|
+
buffer1.set(2, { x: 5.5, y: 6.5 });
|
|
134
|
+
buffer2.set(0, { x: 1.5, y: 2.5 });
|
|
135
|
+
buffer2.set(1, { x: 3.5, y: 4.5 });
|
|
136
|
+
buffer2.set(2, { x: 5.5, y: 6.5 });
|
|
137
|
+
expect(typedBufferEquals(buffer1, buffer2)).toBe(true);
|
|
138
|
+
});
|
|
139
|
+
it('should return false for different struct values', () => {
|
|
140
|
+
const buffer1 = createStructBuffer(vec2Schema, 2);
|
|
141
|
+
const buffer2 = createStructBuffer(vec2Schema, 2);
|
|
142
|
+
buffer1.set(0, { x: 1.5, y: 2.5 });
|
|
143
|
+
buffer1.set(1, { x: 3.5, y: 4.5 });
|
|
144
|
+
buffer2.set(0, { x: 1.5, y: 2.5 });
|
|
145
|
+
buffer2.set(1, { x: 3.5, y: 5.5 }); // Different y value
|
|
146
|
+
expect(typedBufferEquals(buffer1, buffer2)).toBe(false);
|
|
147
|
+
});
|
|
148
|
+
});
|
|
149
|
+
describe('const buffers', () => {
|
|
150
|
+
it('should return true for identical const buffers', () => {
|
|
151
|
+
const buffer1 = createConstBuffer({ const: 42 }, 3);
|
|
152
|
+
const buffer2 = createConstBuffer({ const: 42 }, 3);
|
|
153
|
+
expect(typedBufferEquals(buffer1, buffer2)).toBe(true);
|
|
154
|
+
});
|
|
155
|
+
it('should return false for different const values', () => {
|
|
156
|
+
const buffer1 = createConstBuffer({ const: 42 }, 3);
|
|
157
|
+
const buffer2 = createConstBuffer({ const: 43 }, 3);
|
|
158
|
+
expect(typedBufferEquals(buffer1, buffer2)).toBe(false);
|
|
159
|
+
});
|
|
160
|
+
it('should handle complex const values', () => {
|
|
161
|
+
const complexValue = { x: 1, y: 2, z: 3 };
|
|
162
|
+
const buffer1 = createConstBuffer({ const: complexValue }, 2);
|
|
163
|
+
const buffer2 = createConstBuffer({ const: complexValue }, 2);
|
|
164
|
+
expect(typedBufferEquals(buffer1, buffer2)).toBe(true);
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
describe('mixed buffer types', () => {
|
|
168
|
+
it('should return false when comparing different buffer types with same content', () => {
|
|
169
|
+
const numberBuffer = createNumberBuffer({ type: 'number', precision: 1 }, 3);
|
|
170
|
+
const arrayBuffer = createArrayBuffer({ type: 'number' }, 3);
|
|
171
|
+
numberBuffer.set(0, 1);
|
|
172
|
+
numberBuffer.set(1, 2);
|
|
173
|
+
numberBuffer.set(2, 3);
|
|
174
|
+
arrayBuffer.set(0, 1);
|
|
175
|
+
arrayBuffer.set(1, 2);
|
|
176
|
+
arrayBuffer.set(2, 3);
|
|
177
|
+
expect(typedBufferEquals(numberBuffer, arrayBuffer)).toBe(false);
|
|
178
|
+
});
|
|
179
|
+
});
|
|
180
|
+
describe('createTypedBuffer integration', () => {
|
|
181
|
+
it('should work with createTypedBuffer for number buffers', () => {
|
|
182
|
+
const buffer1 = createTypedBuffer({ type: 'number', precision: 1 }, [1.5, 2.5, 3.5]);
|
|
183
|
+
const buffer2 = createTypedBuffer({ type: 'number', precision: 1 }, [1.5, 2.5, 3.5]);
|
|
184
|
+
expect(typedBufferEquals(buffer1, buffer2)).toBe(true);
|
|
185
|
+
});
|
|
186
|
+
it('should work with createTypedBuffer for array buffers', () => {
|
|
187
|
+
const buffer1 = createArrayBuffer({ type: 'string' }, 2);
|
|
188
|
+
const buffer2 = createArrayBuffer({ type: 'string' }, 2);
|
|
189
|
+
buffer1.set(0, 'hello');
|
|
190
|
+
buffer1.set(1, 'world');
|
|
191
|
+
buffer2.set(0, 'hello');
|
|
192
|
+
buffer2.set(1, 'world');
|
|
193
|
+
expect(typedBufferEquals(buffer1, buffer2)).toBe(true);
|
|
194
|
+
});
|
|
195
|
+
it('should work with createTypedBuffer for struct buffers', () => {
|
|
196
|
+
const schema = {
|
|
197
|
+
type: 'object',
|
|
198
|
+
properties: {
|
|
199
|
+
x: { type: 'number', precision: 1 },
|
|
200
|
+
y: { type: 'number', precision: 1 }
|
|
201
|
+
}
|
|
202
|
+
};
|
|
203
|
+
const buffer1 = createTypedBuffer(schema, [{ x: 1, y: 2 }, { x: 3, y: 4 }]);
|
|
204
|
+
const buffer2 = createTypedBuffer(schema, [{ x: 1, y: 2 }, { x: 3, y: 4 }]);
|
|
205
|
+
expect(typedBufferEquals(buffer1, buffer2)).toBe(true);
|
|
206
|
+
});
|
|
207
|
+
});
|
|
208
|
+
describe('edge cases', () => {
|
|
209
|
+
it('should handle empty buffers', () => {
|
|
210
|
+
const buffer1 = createNumberBuffer({ type: 'number', precision: 1 }, 0);
|
|
211
|
+
const buffer2 = createNumberBuffer({ type: 'number', precision: 1 }, 0);
|
|
212
|
+
expect(typedBufferEquals(buffer1, buffer2)).toBe(true);
|
|
213
|
+
});
|
|
214
|
+
it('should handle buffers with undefined values', () => {
|
|
215
|
+
const buffer1 = createArrayBuffer({ type: 'string' }, 2);
|
|
216
|
+
const buffer2 = createArrayBuffer({ type: 'string' }, 2);
|
|
217
|
+
buffer1.set(0, 'hello');
|
|
218
|
+
buffer1.set(1, undefined);
|
|
219
|
+
buffer2.set(0, 'hello');
|
|
220
|
+
buffer2.set(1, undefined);
|
|
221
|
+
expect(typedBufferEquals(buffer1, buffer2)).toBe(true);
|
|
222
|
+
});
|
|
223
|
+
it('should handle buffers with null values', () => {
|
|
224
|
+
const buffer1 = createArrayBuffer({ type: 'string' }, 2);
|
|
225
|
+
const buffer2 = createArrayBuffer({ type: 'string' }, 2);
|
|
226
|
+
buffer1.set(0, 'hello');
|
|
227
|
+
buffer1.set(1, null);
|
|
228
|
+
buffer2.set(0, 'hello');
|
|
229
|
+
buffer2.set(1, null);
|
|
230
|
+
expect(typedBufferEquals(buffer1, buffer2)).toBe(true);
|
|
231
|
+
});
|
|
232
|
+
});
|
|
233
|
+
});
|
|
234
|
+
//# sourceMappingURL=typed-buffer-equals.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typed-buffer-equals.test.js","sourceRoot":"","sources":["../../src/typed-buffer/typed-buffer-equals.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,28 @@
|
|
|
1
1
|
import { TypedArray } from "../internal/typed-array/index.js";
|
|
2
|
+
import { Schema } from "../schema/schema.js";
|
|
3
|
+
export type TypedBufferType = "array" | "const" | "number" | "struct";
|
|
2
4
|
export interface ReadonlyTypedBuffer<T> {
|
|
3
|
-
readonly type:
|
|
4
|
-
readonly
|
|
5
|
+
readonly type: TypedBufferType;
|
|
6
|
+
readonly schema: Schema;
|
|
7
|
+
readonly capacity: number;
|
|
5
8
|
readonly typedArrayElementSizeInBytes: number;
|
|
6
9
|
get(index: number): T;
|
|
7
|
-
slice(start?: number, end?: number): ArrayLike<T>;
|
|
10
|
+
slice(start?: number, end?: number): ArrayLike<T> & Iterable<T>;
|
|
8
11
|
}
|
|
9
|
-
export
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
12
|
+
export declare abstract class TypedBuffer<T> implements ReadonlyTypedBuffer<T> {
|
|
13
|
+
readonly schema: Schema;
|
|
14
|
+
readonly __brand = "TypedBuffer";
|
|
15
|
+
constructor(schema: Schema);
|
|
16
|
+
abstract copyWithin(target: number, start: number, end: number): void;
|
|
17
|
+
abstract readonly type: TypedBufferType;
|
|
18
|
+
abstract capacity: number;
|
|
19
|
+
abstract readonly typedArrayElementSizeInBytes: number;
|
|
13
20
|
/**
|
|
14
21
|
* Returns the typed array of the buffer.
|
|
15
22
|
* @throws If the buffer is not backed by a typed array.
|
|
16
23
|
*/
|
|
17
|
-
getTypedArray(): TypedArray;
|
|
24
|
+
abstract getTypedArray(): TypedArray;
|
|
25
|
+
abstract get(index: number): T;
|
|
26
|
+
abstract slice(start?: number, end?: number): ArrayLike<T> & Iterable<T>;
|
|
27
|
+
abstract set(index: number, value: T): void;
|
|
18
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typed-buffer.js","sourceRoot":"","sources":["../../src/typed-buffer/typed-buffer.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"typed-buffer.js","sourceRoot":"","sources":["../../src/typed-buffer/typed-buffer.ts"],"names":[],"mappings":"AAmCA,MAAM,OAAgB,WAAW;IAI7B,YAA4B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QAF1B,YAAO,GAAG,aAAa,CAAC;IAGxC,CAAC;CAcJ"}
|