@adobe/data 0.5.12 → 0.5.14

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.
Files changed (68) hide show
  1. package/dist/ecs/archetype/archetype.d.ts +2 -1
  2. package/dist/ecs/archetype/archetype.js +14 -0
  3. package/dist/ecs/archetype/archetype.js.map +1 -1
  4. package/dist/ecs/archetype/create-archetype.d.ts +2 -2
  5. package/dist/ecs/archetype/create-archetype.test.js +6 -6
  6. package/dist/ecs/archetype/create-archetype.test.js.map +1 -1
  7. package/dist/ecs/archetype/delete-row.test.js +4 -4
  8. package/dist/ecs/archetype/delete-row.test.js.map +1 -1
  9. package/dist/ecs/database/transactional-store/apply-operations.js.map +1 -1
  10. package/dist/ecs/database/transactional-store/create-transactional-store.js.map +1 -1
  11. package/dist/ecs/database/transactional-store/transactional-store.d.ts +1 -1
  12. package/dist/ecs/entity.d.ts +2 -2
  13. package/dist/ecs/entity.js +1 -1
  14. package/dist/ecs/entity.js.map +1 -1
  15. package/dist/ecs/index.d.ts +2 -1
  16. package/dist/ecs/index.js +2 -1
  17. package/dist/ecs/index.js.map +1 -1
  18. package/dist/ecs/store/core/create-core.js +2 -2
  19. package/dist/ecs/store/core/create-core.js.map +1 -1
  20. package/dist/index.d.ts +1 -0
  21. package/dist/internal/function/debounce.js +0 -2
  22. package/dist/internal/function/debounce.js.map +1 -1
  23. package/dist/lit/hooks/use-element.d.ts +3 -0
  24. package/dist/lit/hooks/use-element.js +63 -5
  25. package/dist/lit/hooks/use-element.js.map +1 -1
  26. package/dist/math/f32/f32.d.ts +2 -3
  27. package/dist/math/f32/f32.js +2 -2
  28. package/dist/mutable-clone.d.ts +1 -4
  29. package/dist/mutable-clone.js +21 -0
  30. package/dist/mutable-clone.js.map +1 -1
  31. package/dist/mutable.d.ts +9 -0
  32. package/dist/mutable.js +26 -0
  33. package/dist/mutable.js.map +1 -0
  34. package/dist/old-ecs/core-ecs/core-ecs-serialization.test.js +4 -4
  35. package/dist/old-ecs/core-ecs/core-ecs-serialization.test.js.map +1 -1
  36. package/dist/old-ecs/core-ecs/core-ecs-types.d.ts +7 -0
  37. package/dist/old-ecs/core-ecs/core-ecs.js +5 -2
  38. package/dist/old-ecs/core-ecs/core-ecs.js.map +1 -1
  39. package/dist/schema/schema.d.ts +3 -0
  40. package/dist/schema/schema.js +5 -1
  41. package/dist/schema/schema.js.map +1 -1
  42. package/dist/schema/to-vertex-buffer-layout.d.ts +56 -0
  43. package/dist/schema/to-vertex-buffer-layout.js +129 -0
  44. package/dist/schema/to-vertex-buffer-layout.js.map +1 -0
  45. package/dist/schema/to-vertex-buffer-layout.test.d.ts +1 -0
  46. package/dist/schema/to-vertex-buffer-layout.test.js +247 -0
  47. package/dist/schema/to-vertex-buffer-layout.test.js.map +1 -0
  48. package/dist/tsconfig.tsbuildinfo +1 -1
  49. package/dist/typed-buffer/create-struct-buffer.js +3 -3
  50. package/dist/typed-buffer/create-struct-buffer.js.map +1 -1
  51. package/dist/typed-buffer/create-struct-buffer.test.d.ts +1 -0
  52. package/dist/typed-buffer/create-struct-buffer.test.js +227 -0
  53. package/dist/typed-buffer/create-struct-buffer.test.js.map +1 -0
  54. package/dist/typed-buffer/create-typed-buffer.js +3 -1
  55. package/dist/typed-buffer/create-typed-buffer.js.map +1 -1
  56. package/dist/typed-buffer/create-typed-buffer.test.d.ts +1 -0
  57. package/dist/typed-buffer/create-typed-buffer.test.js +148 -0
  58. package/dist/typed-buffer/create-typed-buffer.test.js.map +1 -0
  59. package/dist/typed-buffer/structs/get-struct-layout.d.ts +0 -1
  60. package/dist/typed-buffer/structs/get-struct-layout.js +72 -39
  61. package/dist/typed-buffer/structs/get-struct-layout.js.map +1 -1
  62. package/dist/typed-buffer/structs/get-struct-layout.test.js +137 -0
  63. package/dist/typed-buffer/structs/get-struct-layout.test.js.map +1 -1
  64. package/dist/typed-buffer/structs/struct-layout.d.ts +4 -0
  65. package/dist/types/types.d.ts +5 -0
  66. package/dist/types/types.js +3 -0
  67. package/dist/types/types.js.map +1 -1
  68. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"core-ecs-serialization.test.js","sourceRoot":"","sources":["../../../src/old-ecs/core-ecs/core-ecs-serialization.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core-ecs-serialization.test.js","sourceRoot":"","sources":["../../../src/old-ecs/core-ecs/core-ecs-serialization.test.ts"],"names":[],"mappings":"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"}
@@ -57,6 +57,13 @@ export interface CoreECS<C extends CoreComponents = CoreComponents, R extends Co
57
57
  }, T = {
58
58
  -readonly [K in keyof S]: FromSchema<S[K]>;
59
59
  }>(components: S): CoreECS<Simplify<C & T>, R>;
60
+ withResources<T extends {
61
+ readonly [K: string]: Schema & {
62
+ default: any;
63
+ };
64
+ }>(resources: T): CoreECS<C, Simplify<R & {
65
+ -readonly [K in keyof T]: FromSchema<T[K]>;
66
+ }>>;
60
67
  withResources<T extends {
61
68
  readonly [K: string]: Data;
62
69
  }>(resources: T): CoreECS<C, Simplify<R & T>>;
@@ -23,6 +23,7 @@ import { equals, normalize, } from "../../index.js";
23
23
  import { createManagedArray, } from "../../cache/managed-array.js";
24
24
  import { createSimpleMemoryAllocator, } from "../../cache/memory-allocator.js";
25
25
  import { U32Schema } from "../../schema/u32.js";
26
+ import { isSchema } from "../../schema/schema.js";
26
27
  // This is a sentinel value used to indicate a component should be deleted.
27
28
  export const DELETE = "_@_DELETE_@_";
28
29
  export function createCoreECS(options = {}) {
@@ -238,9 +239,11 @@ export function createCoreECS(options = {}) {
238
239
  return ecs;
239
240
  };
240
241
  const withResources = (newResources) => {
241
- Object.entries(newResources).forEach(([name, value]) => {
242
+ Object.entries(newResources).forEach(([name, valueOrSchema]) => {
242
243
  // register the resource as a component.
243
- withComponents({ [name]: {} });
244
+ let schema = isSchema(valueOrSchema) ? valueOrSchema : { default: valueOrSchema };
245
+ withComponents({ [name]: schema });
246
+ const value = schema.default;
244
247
  const archetype = getArchetype("id", name);
245
248
  // resource row *may* already exist if loaded from disk.
246
249
  const entityId = archetype.rows
@@ -1 +1 @@
1
- {"version":3,"file":"core-ecs.js","sourceRoot":"","sources":["../../../src/old-ecs/core-ecs/core-ecs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core-ecs.js","sourceRoot":"","sources":["../../../src/old-ecs/core-ecs/core-ecs.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { TypedBuffer } from "../typed-buffer/typed-buffer.js";
2
2
  import { DeepReadonly } from "../types/types.js";
3
3
  type JSONPath = string;
4
4
  type JSONMergePatch = unknown;
5
+ export type Layout = "std140" | "packed";
5
6
  /**
6
7
  * Conditional patch applied to the path when the enclosing schema branch is active
7
8
  * and `match` is not present or validates against the root.
@@ -28,6 +29,7 @@ export interface UIProperties {
28
29
  readonly [key: string]: UIProperties;
29
30
  };
30
31
  }
32
+ export declare const isSchema: (schema: unknown) => schema is Schema;
31
33
  export interface Schema {
32
34
  type?: 'number' | 'integer' | 'string' | 'boolean' | 'null' | 'array' | 'object' | 'typed-buffer' | 'blob';
33
35
  conditionals?: readonly Conditional[];
@@ -57,6 +59,7 @@ export interface Schema {
57
59
  allOf?: readonly Schema[];
58
60
  const?: any;
59
61
  enum?: readonly any[];
62
+ layout?: Layout;
60
63
  /**
61
64
  * Classification of data according to privacy regulations and cookie consent frameworks.
62
65
  * Used to categorize data collection and processing for privacy compliance.
@@ -19,6 +19,11 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
19
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
20
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
21
  SOFTWARE.*/
22
+ export const isSchema = (schema) => {
23
+ return typeof schema === 'object' && schema !== null && ('type' in schema && typeof schema.type === 'string'
24
+ ||
25
+ 'default' in schema && typeof schema.default !== 'undefined');
26
+ };
22
27
  const mySchema = {
23
28
  type: 'object',
24
29
  properties: {
@@ -29,5 +34,4 @@ const mySchema = {
29
34
  required: ['a', 'c'],
30
35
  additionalProperties: false,
31
36
  };
32
- export {};
33
37
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/schema/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AAyOX,MAAM,QAAQ,GAAG;IACf,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACrB,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACrB,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;KACvB;IACD,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;IACpB,oBAAoB,EAAE,KAAK;CACF,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/schema/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AAwCX,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,MAAe,EAAoB,EAAE;IAC5D,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,CACtD,MAAM,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;;YAEnD,SAAS,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,WAAW,CAC7D,CAAC;AACJ,CAAC,CAAA;AAsMD,MAAM,QAAQ,GAAG;IACf,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACrB,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACrB,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;KACvB;IACD,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;IACpB,oBAAoB,EAAE,KAAK;CACF,CAAC"}
@@ -0,0 +1,56 @@
1
+ import { Layout, Schema } from "./schema.js";
2
+ export interface GPUVertexBufferLayout {
3
+ arrayStride: number;
4
+ stepMode?: 'vertex' | 'instance';
5
+ attributes: GPUVertexAttributeDescriptor[];
6
+ }
7
+ export interface GPUVertexAttributeDescriptor {
8
+ format: GPUVertexFormat;
9
+ offset: number;
10
+ shaderLocation: number;
11
+ }
12
+ export type GPUVertexFormat = 'uint8x2' | 'uint8x8' | 'sint8x2' | 'sint8x8' | 'unorm8x2' | 'unorm8x8' | 'snorm8x2' | 'snorm8x8' | 'uint16x2' | 'uint16x4' | 'sint16x2' | 'sint16x4' | 'unorm16x2' | 'unorm16x4' | 'snorm16x2' | 'snorm16x4' | 'float16x2' | 'float16x4' | 'float32' | 'float32x2' | 'float32x3' | 'float32x4' | 'uint32' | 'uint32x2' | 'uint32x3' | 'uint32x4' | 'sint32' | 'sint32x2' | 'sint32x3' | 'sint32x4';
13
+ /**
14
+ * Options for configuring vertex buffer layout generation
15
+ */
16
+ export interface VertexBufferLayoutOptions {
17
+ /** Layout mode to use (defaults to schema.layout or "packed") */
18
+ layout?: Layout;
19
+ /** Custom shader location mapping for fields */
20
+ shaderLocations?: Partial<Record<string, number>>;
21
+ /** Step mode for vertex buffer (default: 'vertex') */
22
+ stepMode?: 'vertex' | 'instance';
23
+ }
24
+ /**
25
+ * Converts a Schema to a WebGPU GPUVertexBufferLayout descriptor
26
+ *
27
+ * @param schema - Schema defining the vertex structure
28
+ * @param options - Configuration options for layout generation
29
+ * @returns GPUVertexBufferLayout descriptor ready for WebGPU pipeline creation
30
+ *
31
+ * @example
32
+ * ```typescript
33
+ * const vertexLayout = schemaToVertexBufferLayout(positionColorNormalVertexSchema, {
34
+ * shaderLocations: { position: 0, color: 8, normal: 9 }
35
+ * });
36
+ *
37
+ * const pipeline = device.createRenderPipeline({
38
+ * vertex: {
39
+ * module: shaderModule,
40
+ * entryPoint: 'vs_main',
41
+ * buffers: [{ ...vertexLayout }]
42
+ * },
43
+ * // ...
44
+ * });
45
+ * ```
46
+ */
47
+ export declare function schemaToVertexBufferLayout<S extends Schema>(schema: S, options?: VertexBufferLayoutOptions): GPUVertexBufferLayout;
48
+ /**
49
+ * Type-safe helper to generate vertex buffer layout for a specific schema type
50
+ *
51
+ * @example
52
+ * ```typescript
53
+ * const positionColorLayout = positionColorNormalVertexSchema |> schemaToVertexBufferLayoutForType;
54
+ * ```
55
+ */
56
+ export declare function schemaToVertexBufferLayoutForType<T extends Schema>(schema: T, options?: VertexBufferLayoutOptions): GPUVertexBufferLayout;
@@ -0,0 +1,129 @@
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 { getStructLayout } from "../typed-buffer/structs/get-struct-layout.js";
23
+ /**
24
+ * Converts a struct field layout to equivalent WebGPU vertex format
25
+ */
26
+ function fieldLayoutToVertexFormat(fieldLayout) {
27
+ if (typeof fieldLayout === "string") {
28
+ // Handle primitive types
29
+ switch (fieldLayout) {
30
+ case "f32": return "float32";
31
+ case "i32": return "sint32";
32
+ case "u32": return "uint32";
33
+ }
34
+ }
35
+ if (typeof fieldLayout === "object" && fieldLayout.type === "array") {
36
+ // Handle array/vector types
37
+ const size = fieldLayout.size;
38
+ const elementCount = getVectorElementCount(fieldLayout);
39
+ switch (elementCount) {
40
+ case 1: return "float32"; // f32
41
+ case 2: return "float32x2"; // vec2
42
+ case 3: return "float32x3"; // vec3
43
+ case 4: return "float32x4"; // vec4
44
+ }
45
+ }
46
+ throw new Error(`Unsupported field layout for vertex buffer: ${JSON.stringify(fieldLayout)}`);
47
+ }
48
+ /**
49
+ * Determines the number of elements in a vector from field layout
50
+ */
51
+ function getVectorElementCount(fieldLayout) {
52
+ // For fixed-size arrays like Vec3/Vec4, count the fields
53
+ const fieldCount = Object.keys(fieldLayout.fields).length;
54
+ if (fieldCount >= 1 && fieldCount <= 4) {
55
+ return fieldCount;
56
+ }
57
+ throw new Error(`Vector dimensions must be 1-4 elements, got ${fieldCount}`);
58
+ }
59
+ /**
60
+ * Converts a Schema to a WebGPU GPUVertexBufferLayout descriptor
61
+ *
62
+ * @param schema - Schema defining the vertex structure
63
+ * @param options - Configuration options for layout generation
64
+ * @returns GPUVertexBufferLayout descriptor ready for WebGPU pipeline creation
65
+ *
66
+ * @example
67
+ * ```typescript
68
+ * const vertexLayout = schemaToVertexBufferLayout(positionColorNormalVertexSchema, {
69
+ * shaderLocations: { position: 0, color: 8, normal: 9 }
70
+ * });
71
+ *
72
+ * const pipeline = device.createRenderPipeline({
73
+ * vertex: {
74
+ * module: shaderModule,
75
+ * entryPoint: 'vs_main',
76
+ * buffers: [{ ...vertexLayout }]
77
+ * },
78
+ * // ...
79
+ * });
80
+ * ```
81
+ */
82
+ export function schemaToVertexBufferLayout(schema, options = {}) {
83
+ // Determine layout to use
84
+ const layoutMode = options.layout ?? schema.layout ?? "packed";
85
+ // Get struct layout information
86
+ const structLayout = getStructLayout({ ...schema, layout: layoutMode }, true);
87
+ if (!structLayout) {
88
+ throw new Error("Schema is not a valid vertex buffer layout - must be a struct schema");
89
+ }
90
+ const attributes = [];
91
+ let nextShaderLocation = 0;
92
+ // Generate attributes for each field
93
+ for (const [fieldName, fieldLayout] of Object.entries(structLayout.fields)) {
94
+ const shaderLocation = options.shaderLocations?.[fieldName] ?? nextShaderLocation;
95
+ try {
96
+ const format = fieldLayoutToVertexFormat(fieldLayout.type);
97
+ attributes.push({
98
+ format,
99
+ offset: fieldLayout.offset,
100
+ shaderLocation
101
+ });
102
+ }
103
+ catch (error) {
104
+ throw new Error(`Field "${fieldName}" cannot be converted to vertex format: ${error instanceof Error ? error.message : String(error)}`);
105
+ }
106
+ if (!options.shaderLocations?.[fieldName]) {
107
+ nextShaderLocation++;
108
+ }
109
+ }
110
+ // Sort attributes by shader location for logical ordering
111
+ attributes.sort((a, b) => a.shaderLocation - b.shaderLocation);
112
+ return {
113
+ arrayStride: structLayout.size,
114
+ stepMode: options.stepMode ?? 'vertex',
115
+ attributes
116
+ };
117
+ }
118
+ /**
119
+ * Type-safe helper to generate vertex buffer layout for a specific schema type
120
+ *
121
+ * @example
122
+ * ```typescript
123
+ * const positionColorLayout = positionColorNormalVertexSchema |> schemaToVertexBufferLayoutForType;
124
+ * ```
125
+ */
126
+ export function schemaToVertexBufferLayoutForType(schema, options) {
127
+ return schemaToVertexBufferLayout(schema, options);
128
+ }
129
+ //# sourceMappingURL=to-vertex-buffer-layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-vertex-buffer-layout.js","sourceRoot":"","sources":["../../src/schema/to-vertex-buffer-layout.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,247 @@
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 { schemaToVertexBufferLayout, schemaToVertexBufferLayoutForType } from "./to-vertex-buffer-layout.js";
24
+ describe("schemaToVertexBufferLayout", () => {
25
+ describe("position-color-normal vertex schema", () => {
26
+ const positionColorNormalSchema = {
27
+ type: "object",
28
+ properties: {
29
+ position: {
30
+ type: "array",
31
+ items: { type: "number", precision: 1 },
32
+ minItems: 3,
33
+ maxItems: 3
34
+ },
35
+ color: {
36
+ type: "array",
37
+ items: { type: "number", precision: 1 },
38
+ minItems: 4,
39
+ maxItems: 4
40
+ },
41
+ normal: {
42
+ type: "array",
43
+ items: { type: "number", precision: 1 },
44
+ minItems: 3,
45
+ maxItems: 3
46
+ }
47
+ },
48
+ layout: "packed"
49
+ };
50
+ it("should generate correct packed layout for position-color-normal", () => {
51
+ const layout = schemaToVertexBufferLayout(positionColorNormalSchema);
52
+ expect(layout.arrayStride).toBe(40); // 3 + 4 + 3 = 10 floats × 4 bytes = 40 bytes
53
+ expect(layout.stepMode).toBe("vertex");
54
+ expect(layout.attributes).toHaveLength(3);
55
+ // Position: Vec3 at offset 0
56
+ expect(layout.attributes[0]).toEqual({
57
+ format: "float32x3",
58
+ offset: 0,
59
+ shaderLocation: 0
60
+ });
61
+ // Color: Vec4 at offset 12
62
+ expect(layout.attributes[1]).toEqual({
63
+ format: "float32x4",
64
+ offset: 12,
65
+ shaderLocation: 1
66
+ });
67
+ // Normal: Vec3 at offset 28
68
+ expect(layout.attributes[2]).toEqual({
69
+ format: "float32x3",
70
+ offset: 28,
71
+ shaderLocation: 2
72
+ });
73
+ });
74
+ it("should allow custom shader locations", () => {
75
+ const layout = schemaToVertexBufferLayout(positionColorNormalSchema, {
76
+ shaderLocations: {
77
+ position: 0,
78
+ color: 8,
79
+ normal: 9
80
+ }
81
+ });
82
+ expect(layout.attributes.find(a => a.shaderLocation === 0)?.offset).toBe(0);
83
+ expect(layout.attributes.find(a => a.shaderLocation === 8)?.offset).toBe(12);
84
+ expect(layout.attributes.find(a => a.shaderLocation === 9)?.offset).toBe(28);
85
+ });
86
+ it("should support instance step mode", () => {
87
+ const layout = schemaToVertexBufferLayout(positionColorNormalSchema, {
88
+ stepMode: "instance"
89
+ });
90
+ expect(layout.stepMode).toBe("instance");
91
+ });
92
+ });
93
+ describe("simple position schema", () => {
94
+ const positionSchema = {
95
+ type: "object",
96
+ properties: {
97
+ position: {
98
+ type: "array",
99
+ items: { type: "number", precision: 1 },
100
+ minItems: 3,
101
+ maxItems: 3
102
+ }
103
+ },
104
+ layout: "packed"
105
+ };
106
+ it("should generate minimal vertex layout", () => {
107
+ const layout = schemaToVertexBufferLayout(positionSchema);
108
+ expect(layout.arrayStride).toBe(12); // Vec3 = 12 bytes
109
+ expect(layout.attributes).toHaveLength(1);
110
+ expect(layout.attributes[0]).toEqual({
111
+ format: "float32x3",
112
+ offset: 0,
113
+ shaderLocation: 0
114
+ });
115
+ });
116
+ });
117
+ describe("primitive type schemas", () => {
118
+ it("should handle single float", () => {
119
+ const schema = {
120
+ type: "object",
121
+ properties: {
122
+ weight: { type: "number", precision: 1 }
123
+ },
124
+ layout: "packed"
125
+ };
126
+ const layout = schemaToVertexBufferLayout(schema);
127
+ expect(layout.arrayStride).toBe(4);
128
+ expect(layout.attributes[0]).toEqual({
129
+ format: "float32",
130
+ offset: 0,
131
+ shaderLocation: 0
132
+ });
133
+ });
134
+ it("should handle integer types", () => {
135
+ const schema = {
136
+ type: "object",
137
+ properties: {
138
+ id: { type: "integer", minimum: 0, maximum: 65535 }
139
+ },
140
+ layout: "packed"
141
+ };
142
+ const layout = schemaToVertexBufferLayout(schema);
143
+ expect(layout.arrayStride).toBe(4);
144
+ expect(layout.attributes[0]).toEqual({
145
+ format: "uint32",
146
+ offset: 0,
147
+ shaderLocation: 0
148
+ });
149
+ });
150
+ });
151
+ describe("error handling", () => {
152
+ it("should throw error for non-struct schemas", () => {
153
+ const arraySchema = {
154
+ type: "array",
155
+ items: { type: "number" }
156
+ };
157
+ expect(() => {
158
+ schemaToVertexBufferLayout(arraySchema);
159
+ }).toThrow(/Array must have fixed length/);
160
+ });
161
+ it("should throw error for unsupported field types", () => {
162
+ const schema = {
163
+ type: "object",
164
+ properties: {
165
+ name: { type: "string" }
166
+ },
167
+ layout: "packed"
168
+ };
169
+ expect(() => {
170
+ schemaToVertexBufferLayout(schema);
171
+ }).toThrow(/not a valid struct type/);
172
+ });
173
+ it("should throw error for oversized vectors", () => {
174
+ const schema = {
175
+ type: "object",
176
+ properties: {
177
+ values: {
178
+ type: "array",
179
+ items: { type: "number", precision: 1 },
180
+ minItems: 5,
181
+ maxItems: 5
182
+ }
183
+ },
184
+ layout: "packed"
185
+ };
186
+ expect(() => {
187
+ schemaToVertexBufferLayout(schema);
188
+ }).toThrow(/dimensions must be 1-4 elements/);
189
+ });
190
+ });
191
+ describe("layout mode handling", () => {
192
+ it("should use schema layout by default", () => {
193
+ const schema = {
194
+ type: "object",
195
+ properties: {
196
+ position: {
197
+ type: "array",
198
+ items: { type: "number", precision: 1 },
199
+ minItems: 3,
200
+ maxItems: 3
201
+ }
202
+ },
203
+ layout: "packed"
204
+ };
205
+ const layout = schemaToVertexBufferLayout(schema);
206
+ expect(layout.arrayStride).toBe(12); // Packed: tight packing
207
+ });
208
+ it("should override schema layout when specified", () => {
209
+ const schema = {
210
+ type: "object",
211
+ properties: {
212
+ position: {
213
+ type: "array",
214
+ items: { type: "number", precision: 1 },
215
+ minItems: 3,
216
+ maxItems: 3
217
+ }
218
+ },
219
+ layout: "packed"
220
+ };
221
+ const layout = schemaToVertexBufferLayout(schema, {
222
+ layout: "std140"
223
+ });
224
+ expect(layout.arrayStride).toBe(16); // std140: 16-byte alignment
225
+ });
226
+ });
227
+ describe("type-safe helper", () => {
228
+ it("should work with schemaToVertexBufferLayoutForType", () => {
229
+ const testSchema = {
230
+ type: "object",
231
+ properties: {
232
+ position: {
233
+ type: "array",
234
+ items: { type: "number", precision: 1 },
235
+ minItems: 2,
236
+ maxItems: 2
237
+ }
238
+ },
239
+ layout: "packed"
240
+ };
241
+ const layout = schemaToVertexBufferLayoutForType(testSchema);
242
+ expect(layout.arrayStride).toBe(8); // Vec2 = 8 bytes
243
+ expect(layout.attributes[0].format).toBe("float32x2");
244
+ });
245
+ });
246
+ });
247
+ //# sourceMappingURL=to-vertex-buffer-layout.test.js.map