@flighthq/scene-document 0.4.1-next.28.7f8e221 → 0.4.1-next.37.ff47e13

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/README.md CHANGED
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/scene-document`. The
13
13
  This package is part of the locked-version Flight SDK graph. Applications may instead install and import `@flighthq/sdk` when package-level tree shaking is sufficient.
14
14
 
15
15
  - [Flight project](https://github.com/flighthq/flight)
16
- - [Source for @flighthq/scene-document@0.4.1-next.28.7f8e221](https://github.com/flighthq/flight/tree/7f8e221c72f4afa55c07bf31862b2e3d60e1c81f/packages/scene-document)
17
- - [License](https://github.com/flighthq/flight/blob/7f8e221c72f4afa55c07bf31862b2e3d60e1c81f/LICENSE.md)
16
+ - [Source for @flighthq/scene-document@0.4.1-next.37.ff47e13](https://github.com/flighthq/flight/tree/ff47e13b6a3d240aead13b8373c7844a660897f7/packages/scene-document)
17
+ - [License](https://github.com/flighthq/flight/blob/ff47e13b6a3d240aead13b8373c7844a660897f7/LICENSE.md)
@@ -1,2 +1,3 @@
1
1
  export { createFlightDocumentFromScene2D, createFlightDocumentScene2DMaterialization, createFlightDocumentScene2DMaterializationFromText, explainFlightDocumentRefusal, explainFlightDocumentRefusalFromText, serializeFlightDocument, } from './sceneDocumentScene2DMaterialization';
2
+ export { createFlightDocumentFromScene3D, createFlightDocumentScene3DMaterialization, createFlightDocumentScene3DMaterializationFromText, explainFlightDocumentScene3DRefusal, explainFlightDocumentScene3DRefusalFromText, } from './sceneDocumentScene3DMaterialization';
2
3
  //# sourceMappingURL=contract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,0CAA0C,EAC1C,kDAAkD,EAClD,4BAA4B,EAC5B,oCAAoC,EACpC,uBAAuB,GACxB,MAAM,uCAAuC,CAAC"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,0CAA0C,EAC1C,kDAAkD,EAClD,4BAA4B,EAC5B,oCAAoC,EACpC,uBAAuB,GACxB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,+BAA+B,EAC/B,0CAA0C,EAC1C,kDAAkD,EAClD,mCAAmC,EACnC,2CAA2C,GAC5C,MAAM,uCAAuC,CAAC"}
package/dist/contract.js CHANGED
@@ -1,2 +1,3 @@
1
1
  export { createFlightDocumentFromScene2D, createFlightDocumentScene2DMaterialization, createFlightDocumentScene2DMaterializationFromText, explainFlightDocumentRefusal, explainFlightDocumentRefusalFromText, serializeFlightDocument, } from './sceneDocumentScene2DMaterialization';
2
+ export { createFlightDocumentFromScene3D, createFlightDocumentScene3DMaterialization, createFlightDocumentScene3DMaterializationFromText, explainFlightDocumentScene3DRefusal, explainFlightDocumentScene3DRefusalFromText, } from './sceneDocumentScene3DMaterialization';
2
3
  //# sourceMappingURL=contract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,0CAA0C,EAC1C,kDAAkD,EAClD,4BAA4B,EAC5B,oCAAoC,EACpC,uBAAuB,GACxB,MAAM,uCAAuC,CAAC"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,0CAA0C,EAC1C,kDAAkD,EAClD,4BAA4B,EAC5B,oCAAoC,EACpC,uBAAuB,GACxB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,+BAA+B,EAC/B,0CAA0C,EAC1C,kDAAkD,EAClD,mCAAmC,EACnC,2CAA2C,GAC5C,MAAM,uCAAuC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export { createFlightDocumentFromScene2D, createFlightDocumentScene2DMaterialization, createFlightDocumentScene2DMaterializationFromText, explainFlightDocumentRefusal, explainFlightDocumentRefusalFromText, serializeFlightDocument, } from './sceneDocumentScene2DMaterialization';
2
+ export { createFlightDocumentFromScene3D, createFlightDocumentScene3DMaterialization, createFlightDocumentScene3DMaterializationFromText, explainFlightDocumentScene3DRefusal, explainFlightDocumentScene3DRefusalFromText, } from './sceneDocumentScene3DMaterialization';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,0CAA0C,EAC1C,kDAAkD,EAClD,4BAA4B,EAC5B,oCAAoC,EACpC,uBAAuB,GACxB,MAAM,uCAAuC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,0CAA0C,EAC1C,kDAAkD,EAClD,4BAA4B,EAC5B,oCAAoC,EACpC,uBAAuB,GACxB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,+BAA+B,EAC/B,0CAA0C,EAC1C,kDAAkD,EAClD,mCAAmC,EACnC,2CAA2C,GAC5C,MAAM,uCAAuC,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,3 @@
1
1
  export { createFlightDocumentFromScene2D, createFlightDocumentScene2DMaterialization, createFlightDocumentScene2DMaterializationFromText, explainFlightDocumentRefusal, explainFlightDocumentRefusalFromText, serializeFlightDocument, } from './sceneDocumentScene2DMaterialization';
2
+ export { createFlightDocumentFromScene3D, createFlightDocumentScene3DMaterialization, createFlightDocumentScene3DMaterializationFromText, explainFlightDocumentScene3DRefusal, explainFlightDocumentScene3DRefusalFromText, } from './sceneDocumentScene3DMaterialization';
2
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,0CAA0C,EAC1C,kDAAkD,EAClD,4BAA4B,EAC5B,oCAAoC,EACpC,uBAAuB,GACxB,MAAM,uCAAuC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,0CAA0C,EAC1C,kDAAkD,EAClD,4BAA4B,EAC5B,oCAAoC,EACpC,uBAAuB,GACxB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,+BAA+B,EAC/B,0CAA0C,EAC1C,kDAAkD,EAClD,mCAAmC,EACnC,2CAA2C,GAC5C,MAAM,uCAAuC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sceneDocumentScene2DMaterialization.d.ts","sourceRoot":"","sources":["../src/sceneDocumentScene2DMaterialization.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,cAAc,EAId,gCAAgC,EAIhC,sCAAsC,EACtC,qBAAqB,EACrB,oCAAoC,EACpC,4BAA4B,EAG5B,OAAO,EACR,MAAM,0BAA0B,CAAC;AAKlC,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,EACzB,OAAO,EAAE,QAAQ,CAAC,4BAA4B,CAAC,GAC9C,qBAAqB,CAQvB;AAED,wBAAgB,0CAA0C,CACxD,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,EAClC,OAAO,EAAE,QAAQ,CAAC,4BAA4B,CAAC,EAC/C,SAAS,CAAC,EAAE,QAAQ,CAAC,sCAAsC,CAAC,GAC3D,oCAAoC,GAAG,IAAI,CAO7C;AAED,wBAAgB,kDAAkD,CAChE,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,QAAQ,CAAC,4BAA4B,CAAC,EAC/C,SAAS,CAAC,EAAE,QAAQ,CAAC,sCAAsC,CAAC,GAC3D,oCAAoC,GAAG,IAAI,CAI7C;AAED,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,EAClC,SAAS,EAAE,SAAS,GAAG,SAAS,GAC/B,gCAAgC,GAAG,IAAI,CAWzC;AAED,wBAAgB,oCAAoC,CAClD,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,SAAS,GAAG,SAAS,GAC/B,gCAAgC,GAAG,IAAI,CAoCzC;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,MAAM,CAkBlF"}
1
+ {"version":3,"file":"sceneDocumentScene2DMaterialization.d.ts","sourceRoot":"","sources":["../src/sceneDocumentScene2DMaterialization.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,cAAc,EAId,gCAAgC,EAIhC,sCAAsC,EACtC,qBAAqB,EACrB,oCAAoC,EACpC,4BAA4B,EAI5B,OAAO,EAER,MAAM,0BAA0B,CAAC;AAKlC,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,EACzB,OAAO,EAAE,QAAQ,CAAC,4BAA4B,CAAC,GAC9C,qBAAqB,CAQvB;AAED,wBAAgB,0CAA0C,CACxD,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,EAClC,OAAO,EAAE,QAAQ,CAAC,4BAA4B,CAAC,EAC/C,SAAS,CAAC,EAAE,QAAQ,CAAC,sCAAsC,CAAC,GAC3D,oCAAoC,GAAG,IAAI,CAO7C;AAED,wBAAgB,kDAAkD,CAChE,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,QAAQ,CAAC,4BAA4B,CAAC,EAC/C,SAAS,CAAC,EAAE,QAAQ,CAAC,sCAAsC,CAAC,GAC3D,oCAAoC,GAAG,IAAI,CAI7C;AAED,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,EAClC,SAAS,EAAE,SAAS,GAAG,SAAS,GAC/B,gCAAgC,GAAG,IAAI,CAWzC;AAED,wBAAgB,oCAAoC,CAClD,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,SAAS,GAAG,SAAS,GAC/B,gCAAgC,GAAG,IAAI,CAoCzC;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,MAAM,CA0ClF"}
@@ -84,6 +84,32 @@ export function serializeFlightDocument(document) {
84
84
  if (document.kind === 'Scene2D' && document.backgroundColor !== null) {
85
85
  lines.push('backgroundColor: ' + String(document.backgroundColor));
86
86
  }
87
+ if (document.kind === 'Scene3D') {
88
+ if (document.cameras.length > 0) {
89
+ lines.push('cameras:');
90
+ for (const cam of document.cameras) {
91
+ lines.push(' - far: ' + String(cam.far));
92
+ lines.push(' near: ' + String(cam.near));
93
+ lines.push(' projection:');
94
+ serializeProjection(lines, cam.projection, 6);
95
+ lines.push(' transform:');
96
+ serializeTransform3D(lines, cam.transform, 6);
97
+ if (cam.name !== undefined)
98
+ lines.push(' name: ' + serializeScalar(cam.name));
99
+ }
100
+ }
101
+ if (document.lights.length > 0) {
102
+ lines.push('lights:');
103
+ for (const light of document.lights) {
104
+ lines.push(' - descriptor:');
105
+ lines.push(' kind: ' + light.descriptor.kind);
106
+ lines.push(' transform:');
107
+ serializeTransform3D(lines, light.transform, 6);
108
+ if (light.name !== undefined)
109
+ lines.push(' name: ' + serializeScalar(light.name));
110
+ }
111
+ }
112
+ }
87
113
  if (document.resources.length > 0) {
88
114
  lines.push('resources:');
89
115
  for (const resource of document.resources) {
@@ -276,6 +302,36 @@ function writeNode(source, schemas) {
276
302
  kind: source.kind,
277
303
  };
278
304
  }
305
+ function serializeProjection(lines, projection, indent) {
306
+ const prefix = ' '.repeat(indent);
307
+ lines.push(prefix + 'kind: ' + projection.kind);
308
+ if (projection.kind === 'perspective') {
309
+ lines.push(prefix + 'fovY: ' + String(projection.fovY));
310
+ lines.push(prefix + 'aspect: ' + String(projection.aspect));
311
+ }
312
+ else {
313
+ lines.push(prefix + 'halfWidth: ' + String(projection.halfWidth));
314
+ lines.push(prefix + 'halfHeight: ' + String(projection.halfHeight));
315
+ }
316
+ }
317
+ function serializeTransform3D(lines, transform, indent) {
318
+ const prefix = ' '.repeat(indent);
319
+ const p = transform.position;
320
+ const r = transform.rotation;
321
+ const s = transform.scale;
322
+ lines.push(prefix + 'position: { x: ' + String(p.x) + ', y: ' + String(p.y) + ', z: ' + String(p.z) + ' }');
323
+ lines.push(prefix +
324
+ 'rotation: { x: ' +
325
+ String(r.x) +
326
+ ', y: ' +
327
+ String(r.y) +
328
+ ', z: ' +
329
+ String(r.z) +
330
+ ', w: ' +
331
+ String(r.w) +
332
+ ' }');
333
+ lines.push(prefix + 'scale: { x: ' + String(s.x) + ', y: ' + String(s.y) + ', z: ' + String(s.z) + ' }');
334
+ }
279
335
  function writeFieldsWithDefaults(out, source, schema) {
280
336
  schema.writeNodeFields(out, source, {});
281
337
  for (const field of schema.fields) {
@@ -1 +1 @@
1
- {"version":3,"file":"sceneDocumentScene2DMaterialization.js","sourceRoot":"","sources":["../src/sceneDocumentScene2DMaterialization.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sceneDocumentScene2DMaterialization.js","sourceRoot":"","sources":["../src/sceneDocumentScene2DMaterialization.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { FlightDocument, FlightDocumentRefusalExplanation, FlightDocumentResourceResolverRegistry, FlightDocumentScene3D, FlightDocumentScene3DMaterialization, FlightDocumentSchemaRegistry, Scene3D, Scene3DDocumentCamera, Scene3DDocumentLight } from '@flighthq/types/contract';
2
+ export declare function createFlightDocumentFromScene3D(source: Readonly<Scene3D>, cameras: readonly Readonly<Scene3DDocumentCamera>[], lights: readonly Readonly<Scene3DDocumentLight>[], schemas: Readonly<FlightDocumentSchemaRegistry>): FlightDocumentScene3D;
3
+ export declare function createFlightDocumentScene3DMaterialization(document: Readonly<FlightDocument>, schemas: Readonly<FlightDocumentSchemaRegistry>, resolvers?: Readonly<FlightDocumentResourceResolverRegistry>): FlightDocumentScene3DMaterialization | null;
4
+ export declare function createFlightDocumentScene3DMaterializationFromText(text: string, schemas: Readonly<FlightDocumentSchemaRegistry>, resolvers?: Readonly<FlightDocumentResourceResolverRegistry>): FlightDocumentScene3DMaterialization | null;
5
+ export declare function explainFlightDocumentScene3DRefusal(document: Readonly<FlightDocument>): FlightDocumentRefusalExplanation | null;
6
+ export declare function explainFlightDocumentScene3DRefusalFromText(text: string): FlightDocumentRefusalExplanation | null;
7
+ //# sourceMappingURL=sceneDocumentScene3DMaterialization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sceneDocumentScene3DMaterialization.d.ts","sourceRoot":"","sources":["../src/sceneDocumentScene3DMaterialization.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAIV,cAAc,EAId,gCAAgC,EAIhC,sCAAsC,EACtC,qBAAqB,EACrB,oCAAoC,EACpC,4BAA4B,EAG5B,OAAO,EACP,qBAAqB,EACrB,oBAAoB,EAGrB,MAAM,0BAA0B,CAAC;AAKlC,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,EACzB,OAAO,EAAE,SAAS,QAAQ,CAAC,qBAAqB,CAAC,EAAE,EACnD,MAAM,EAAE,SAAS,QAAQ,CAAC,oBAAoB,CAAC,EAAE,EACjD,OAAO,EAAE,QAAQ,CAAC,4BAA4B,CAAC,GAC9C,qBAAqB,CASvB;AAED,wBAAgB,0CAA0C,CACxD,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,EAClC,OAAO,EAAE,QAAQ,CAAC,4BAA4B,CAAC,EAC/C,SAAS,CAAC,EAAE,QAAQ,CAAC,sCAAsC,CAAC,GAC3D,oCAAoC,GAAG,IAAI,CAW7C;AAED,wBAAgB,kDAAkD,CAChE,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,QAAQ,CAAC,4BAA4B,CAAC,EAC/C,SAAS,CAAC,EAAE,QAAQ,CAAC,sCAAsC,CAAC,GAC3D,oCAAoC,GAAG,IAAI,CAI7C;AAED,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,GACjC,gCAAgC,GAAG,IAAI,CAWzC;AAED,wBAAgB,2CAA2C,CAAC,IAAI,EAAE,MAAM,GAAG,gCAAgC,GAAG,IAAI,CAoCjH"}
@@ -0,0 +1,381 @@
1
+ import { createCamera3D } from '@flighthq/camera/contract';
2
+ import { createTransform3D } from '@flighthq/geometry/contract';
3
+ import { createScene3DLights } from '@flighthq/lighting/contract';
4
+ import { addNodeChild, getNodeChildren } from '@flighthq/node/contract';
5
+ import { getRegistryTableEntry } from '@flighthq/registry/contract';
6
+ import { createScene3D } from '@flighthq/scene3d/contract';
7
+ import { AmbientLightKind, DirectionalLightKind, FlightDocumentRefusalReason } from '@flighthq/types/contract';
8
+ import { parseSceneDocumentYamlSubset } from './sceneDocumentYamlSubset';
9
+ export function createFlightDocumentFromScene3D(source, cameras, lights, schemas) {
10
+ return {
11
+ cameras: cameras.map((c) => ({ ...c })),
12
+ kind: 'Scene3D',
13
+ lights: lights.map((l) => ({ ...l })),
14
+ resources: [],
15
+ scene: writeNode(source.root, schemas),
16
+ version: 1,
17
+ };
18
+ }
19
+ export function createFlightDocumentScene3DMaterialization(document, schemas, resolvers) {
20
+ if (document.kind !== 'Scene3D')
21
+ return null;
22
+ if (document.version !== 1)
23
+ return null;
24
+ const duplicateRefusal = checkDuplicateLights(document.lights);
25
+ if (duplicateRefusal !== null)
26
+ return null;
27
+ const scene = createScene3D();
28
+ const resources = resolveResources(document.resources, resolvers);
29
+ materializeChildren(scene.root, document.scene.children, schemas, resources);
30
+ const cameras = materializeCameras(document.cameras);
31
+ const lights = materializeLights(document.lights);
32
+ return { cameras, lights, scene };
33
+ }
34
+ export function createFlightDocumentScene3DMaterializationFromText(text, schemas, resolvers) {
35
+ const document = parseFlightDocumentFromText(text);
36
+ if (document === null)
37
+ return null;
38
+ return createFlightDocumentScene3DMaterialization(document, schemas, resolvers);
39
+ }
40
+ export function explainFlightDocumentScene3DRefusal(document) {
41
+ if (document.kind !== 'Scene3D') {
42
+ return createRefusal(FlightDocumentRefusalReason.StructureInvalid, 'kind');
43
+ }
44
+ if (document.version !== 1) {
45
+ return {
46
+ ...createRefusal(FlightDocumentRefusalReason.VersionUnsupported, 'version'),
47
+ version: document.version,
48
+ };
49
+ }
50
+ return checkDuplicateLights(document.lights);
51
+ }
52
+ export function explainFlightDocumentScene3DRefusalFromText(text) {
53
+ const result = parseSceneDocumentYamlSubset(text);
54
+ if (!result.ok) {
55
+ return {
56
+ actual: result.actual,
57
+ column: result.column,
58
+ kind: null,
59
+ limit: result.limit,
60
+ line: result.line,
61
+ offset: result.offset,
62
+ path: '',
63
+ reason: result.kind,
64
+ resourceKey: null,
65
+ version: null,
66
+ };
67
+ }
68
+ const value = result.value;
69
+ if (value === null || typeof value !== 'object' || Array.isArray(value)) {
70
+ return createRefusal(FlightDocumentRefusalReason.StructureInvalid, '');
71
+ }
72
+ const mapping = value;
73
+ const version = mapping['flight'];
74
+ if (typeof version !== 'number') {
75
+ return createRefusal(FlightDocumentRefusalReason.StructureInvalid, 'flight');
76
+ }
77
+ if (version !== 1) {
78
+ return {
79
+ ...createRefusal(FlightDocumentRefusalReason.VersionUnsupported, 'version'),
80
+ version,
81
+ };
82
+ }
83
+ const kind = mapping['kind'];
84
+ if (kind !== 'Scene3D') {
85
+ return createRefusal(FlightDocumentRefusalReason.StructureInvalid, 'kind');
86
+ }
87
+ return checkDuplicateLightsFromRaw(mapping['lights']);
88
+ }
89
+ function checkDuplicateLights(lights) {
90
+ let ambientCount = 0;
91
+ let directionalCount = 0;
92
+ for (const light of lights) {
93
+ if (light.descriptor.kind === AmbientLightKind) {
94
+ ambientCount++;
95
+ if (ambientCount > 1) {
96
+ return createRefusal(FlightDocumentRefusalReason.DuplicateAmbientLight, 'lights');
97
+ }
98
+ }
99
+ if (light.descriptor.kind === DirectionalLightKind) {
100
+ directionalCount++;
101
+ if (directionalCount > 1) {
102
+ return createRefusal(FlightDocumentRefusalReason.DuplicateDirectionalLight, 'lights');
103
+ }
104
+ }
105
+ }
106
+ return null;
107
+ }
108
+ function checkDuplicateLightsFromRaw(value) {
109
+ if (!Array.isArray(value))
110
+ return null;
111
+ let ambientCount = 0;
112
+ let directionalCount = 0;
113
+ for (const item of value) {
114
+ if (item === null || typeof item !== 'object' || Array.isArray(item))
115
+ continue;
116
+ const mapping = item;
117
+ const descriptor = mapping['descriptor'];
118
+ if (descriptor === null || descriptor === undefined || typeof descriptor !== 'object')
119
+ continue;
120
+ const kind = descriptor['kind'];
121
+ if (kind === AmbientLightKind) {
122
+ ambientCount++;
123
+ if (ambientCount > 1) {
124
+ return createRefusal(FlightDocumentRefusalReason.DuplicateAmbientLight, 'lights');
125
+ }
126
+ }
127
+ if (kind === DirectionalLightKind) {
128
+ directionalCount++;
129
+ if (directionalCount > 1) {
130
+ return createRefusal(FlightDocumentRefusalReason.DuplicateDirectionalLight, 'lights');
131
+ }
132
+ }
133
+ }
134
+ return null;
135
+ }
136
+ function createRefusal(reason, path) {
137
+ return {
138
+ actual: null,
139
+ column: null,
140
+ kind: null,
141
+ limit: null,
142
+ line: null,
143
+ offset: null,
144
+ path,
145
+ reason,
146
+ resourceKey: null,
147
+ version: null,
148
+ };
149
+ }
150
+ function materializeCameras(cameras) {
151
+ return cameras.map((cam) => createCamera3D({
152
+ far: cam.far,
153
+ near: cam.near,
154
+ projection: cam.projection,
155
+ }));
156
+ }
157
+ function materializeChildren(parent, children, schemas, resources) {
158
+ for (const child of children) {
159
+ const schema = getRegistryTableEntry(schemas.nodeSchemas, child.kind);
160
+ if (schema === null)
161
+ continue;
162
+ const node = schema.createNode(child.fields, resources);
163
+ if (node === null)
164
+ continue;
165
+ addNodeChild(parent, node);
166
+ materializeChildren(node, child.children, schemas, resources);
167
+ }
168
+ }
169
+ function materializeLights(lights) {
170
+ const ambientEntry = lights.find((l) => l.descriptor.kind === AmbientLightKind);
171
+ const directionalEntry = lights.find((l) => l.descriptor.kind === DirectionalLightKind);
172
+ return createScene3DLights({
173
+ ambient: ambientEntry !== undefined ? ambientEntry.descriptor : null,
174
+ directional: directionalEntry !== undefined ? directionalEntry.descriptor : null,
175
+ });
176
+ }
177
+ function parseFlightDocumentFromText(text) {
178
+ const result = parseSceneDocumentYamlSubset(text);
179
+ if (!result.ok)
180
+ return null;
181
+ const value = result.value;
182
+ if (value === null || typeof value !== 'object' || Array.isArray(value))
183
+ return null;
184
+ const mapping = value;
185
+ const version = mapping['flight'];
186
+ if (version !== 1)
187
+ return null;
188
+ const kind = mapping['kind'];
189
+ if (kind !== 'Scene3D')
190
+ return null;
191
+ const sceneRaw = mapping['scene'];
192
+ const scene = parseDocumentNode(sceneRaw) ?? { children: [], fields: {}, kind: 'Node3D' };
193
+ const resources = parseResources(mapping['resources']);
194
+ const cameras = parseCameras(mapping['cameras']);
195
+ const documentLights = parseLights(mapping['lights']);
196
+ return {
197
+ cameras,
198
+ kind: 'Scene3D',
199
+ lights: documentLights,
200
+ resources,
201
+ scene,
202
+ version: 1,
203
+ };
204
+ }
205
+ function parseCameras(value) {
206
+ if (!Array.isArray(value))
207
+ return [];
208
+ const out = [];
209
+ for (const item of value) {
210
+ if (item === null || typeof item !== 'object' || Array.isArray(item))
211
+ continue;
212
+ const mapping = item;
213
+ const far = mapping['far'];
214
+ const near = mapping['near'];
215
+ const projection = mapping['projection'];
216
+ if (typeof far !== 'number' || typeof near !== 'number')
217
+ continue;
218
+ if (projection === null || projection === undefined || typeof projection !== 'object')
219
+ continue;
220
+ const transform = parseTransform3D(mapping['transform']);
221
+ const cam = {
222
+ far,
223
+ near,
224
+ projection: projection,
225
+ transform,
226
+ };
227
+ const name = mapping['name'];
228
+ if (typeof name === 'string')
229
+ cam.name = name;
230
+ out.push(cam);
231
+ }
232
+ return out;
233
+ }
234
+ function parseLights(value) {
235
+ if (!Array.isArray(value))
236
+ return [];
237
+ const out = [];
238
+ for (const item of value) {
239
+ if (item === null || typeof item !== 'object' || Array.isArray(item))
240
+ continue;
241
+ const mapping = item;
242
+ const descriptorRaw = mapping['descriptor'];
243
+ if (descriptorRaw === null || descriptorRaw === undefined || typeof descriptorRaw !== 'object')
244
+ continue;
245
+ const descriptor = descriptorRaw;
246
+ if (typeof descriptor.kind !== 'string')
247
+ continue;
248
+ const transform = parseTransform3D(mapping['transform']);
249
+ const light = { descriptor, transform };
250
+ const name = mapping['name'];
251
+ if (typeof name === 'string')
252
+ light.name = name;
253
+ out.push(light);
254
+ }
255
+ return out;
256
+ }
257
+ function parseDocumentNode(value) {
258
+ if (value === null || value === undefined || typeof value !== 'object' || Array.isArray(value)) {
259
+ return null;
260
+ }
261
+ const mapping = value;
262
+ const kind = mapping['kind'];
263
+ if (typeof kind !== 'string')
264
+ return null;
265
+ const childrenRaw = mapping['children'];
266
+ const children = [];
267
+ if (Array.isArray(childrenRaw)) {
268
+ for (const item of childrenRaw) {
269
+ const child = parseDocumentNode(item);
270
+ if (child !== null)
271
+ children.push(child);
272
+ }
273
+ }
274
+ const fields = {};
275
+ for (const key of Object.keys(mapping)) {
276
+ if (key === 'kind' || key === 'children')
277
+ continue;
278
+ fields[key] = mapping[key];
279
+ }
280
+ return { children, fields, kind };
281
+ }
282
+ function parseResources(value) {
283
+ if (!Array.isArray(value))
284
+ return [];
285
+ const out = [];
286
+ for (const item of value) {
287
+ if (item === null || typeof item !== 'object' || Array.isArray(item))
288
+ continue;
289
+ const mapping = item;
290
+ const kind = mapping['kind'];
291
+ const key = mapping['key'];
292
+ if (typeof kind !== 'string' || typeof key !== 'string')
293
+ continue;
294
+ const fields = {};
295
+ for (const k of Object.keys(mapping)) {
296
+ if (k === 'kind' || k === 'key')
297
+ continue;
298
+ fields[k] = mapping[k];
299
+ }
300
+ out.push({ fields, key, kind });
301
+ }
302
+ return out;
303
+ }
304
+ function parseTransform3D(value) {
305
+ const identity = createTransform3D();
306
+ if (value === null || value === undefined || typeof value !== 'object' || Array.isArray(value)) {
307
+ return identity;
308
+ }
309
+ const mapping = value;
310
+ const out = createTransform3D();
311
+ parseVector3Into(out.position, mapping['position']);
312
+ parseQuaternionInto(out.rotation, mapping['rotation']);
313
+ parseVector3Into(out.scale, mapping['scale'], identity.scale);
314
+ return out;
315
+ }
316
+ function parseVector3Into(out, value, fallback) {
317
+ if (value === null || value === undefined || typeof value !== 'object' || Array.isArray(value)) {
318
+ if (fallback !== undefined) {
319
+ out.x = fallback.x;
320
+ out.y = fallback.y;
321
+ out.z = fallback.z;
322
+ }
323
+ return;
324
+ }
325
+ const mapping = value;
326
+ if (typeof mapping['x'] === 'number')
327
+ out.x = mapping['x'];
328
+ if (typeof mapping['y'] === 'number')
329
+ out.y = mapping['y'];
330
+ if (typeof mapping['z'] === 'number')
331
+ out.z = mapping['z'];
332
+ }
333
+ function parseQuaternionInto(out, value) {
334
+ if (value === null || value === undefined || typeof value !== 'object' || Array.isArray(value))
335
+ return;
336
+ const mapping = value;
337
+ if (typeof mapping['w'] === 'number')
338
+ out.w = mapping['w'];
339
+ if (typeof mapping['x'] === 'number')
340
+ out.x = mapping['x'];
341
+ if (typeof mapping['y'] === 'number')
342
+ out.y = mapping['y'];
343
+ if (typeof mapping['z'] === 'number')
344
+ out.z = mapping['z'];
345
+ }
346
+ function resolveResources(descriptors, resolvers) {
347
+ const out = {};
348
+ if (resolvers === undefined)
349
+ return out;
350
+ for (const descriptor of descriptors) {
351
+ const resolver = getRegistryTableEntry(resolvers.resolvers, descriptor.kind);
352
+ if (resolver === null)
353
+ continue;
354
+ const resolved = resolver(descriptor.key, descriptor);
355
+ if (resolved !== null)
356
+ out[descriptor.key] = resolved;
357
+ }
358
+ return out;
359
+ }
360
+ function writeNode(source, schemas) {
361
+ const fields = {};
362
+ const schema = getRegistryTableEntry(schemas.nodeSchemas, source.kind);
363
+ if (schema !== null) {
364
+ writeFieldsWithDefaults(fields, source, schema);
365
+ }
366
+ const children = getNodeChildren(source);
367
+ return {
368
+ children: children.map((child) => writeNode(child, schemas)),
369
+ fields,
370
+ kind: source.kind,
371
+ };
372
+ }
373
+ function writeFieldsWithDefaults(out, source, schema) {
374
+ schema.writeNodeFields(out, source, {});
375
+ for (const field of schema.fields) {
376
+ if (field.defaultValue !== undefined && out[field.name] === field.defaultValue) {
377
+ delete out[field.name];
378
+ }
379
+ }
380
+ }
381
+ //# sourceMappingURL=sceneDocumentScene3DMaterialization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sceneDocumentScene3DMaterialization.js","sourceRoot":"","sources":["../src/sceneDocumentScene3DMaterialization.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flighthq/scene-document",
3
- "version": "0.4.1-next.28.7f8e221",
3
+ "version": "0.4.1-next.37.ff47e13",
4
4
  "author": "Joshua Granick and other contributors",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -38,14 +38,22 @@
38
38
  "clean:dist": "tsx ../../scripts/clean-package-dist.ts"
39
39
  },
40
40
  "dependencies": {
41
- "@flighthq/node": "0.4.1-next.28.7f8e221",
42
- "@flighthq/registry": "0.4.1-next.28.7f8e221",
43
- "@flighthq/scene2d": "0.4.1-next.28.7f8e221",
44
- "@flighthq/types": "0.4.1-next.28.7f8e221"
41
+ "@flighthq/camera": "0.4.1-next.37.ff47e13",
42
+ "@flighthq/geometry": "0.4.1-next.37.ff47e13",
43
+ "@flighthq/lighting": "0.4.1-next.37.ff47e13",
44
+ "@flighthq/node": "0.4.1-next.37.ff47e13",
45
+ "@flighthq/registry": "0.4.1-next.37.ff47e13",
46
+ "@flighthq/scene2d": "0.4.1-next.37.ff47e13",
47
+ "@flighthq/scene3d": "0.4.1-next.37.ff47e13",
48
+ "@flighthq/types": "0.4.1-next.37.ff47e13"
45
49
  },
46
50
  "devDependencies": {
51
+ "@flighthq/camera": "*",
52
+ "@flighthq/geometry": "*",
53
+ "@flighthq/lighting": "*",
47
54
  "@flighthq/node": "*",
48
55
  "@flighthq/scene2d": "*",
56
+ "@flighthq/scene3d": "*",
49
57
  "@flighthq/types": "*",
50
58
  "typescript": "^5.3.0"
51
59
  },
@@ -0,0 +1,446 @@
1
+ import { createTransform3D } from '@flighthq/geometry/contract';
2
+ import { createAmbientLight, createDirectionalLight } from '@flighthq/lighting/contract';
3
+ import { getNodeChildren } from '@flighthq/node/contract';
4
+ import { createKeyedTable, withRegistryTableEntry } from '@flighthq/registry/contract';
5
+ import { createNode3D, createScene3D } from '@flighthq/scene3d/contract';
6
+ import type {
7
+ FlightDocument,
8
+ FlightDocumentFields,
9
+ FlightDocumentNodeSchema,
10
+ FlightDocumentResourceLookup,
11
+ FlightDocumentScene3D,
12
+ FlightDocumentScene3DMaterialization,
13
+ FlightDocumentSchemaRegistry,
14
+ NodeAny,
15
+ Scene3DDocumentCamera,
16
+ Scene3DDocumentLight,
17
+ } from '@flighthq/types/contract';
18
+ import {
19
+ AmbientLightKind,
20
+ DirectionalLightKind,
21
+ FlightDocumentRefusalReason,
22
+ Node3DKind,
23
+ } from '@flighthq/types/contract';
24
+ import { describe, expect, expectTypeOf, it } from 'vitest';
25
+
26
+ import { serializeFlightDocument } from './sceneDocumentScene2DMaterialization';
27
+ import {
28
+ createFlightDocumentFromScene3D,
29
+ createFlightDocumentScene3DMaterialization,
30
+ createFlightDocumentScene3DMaterializationFromText,
31
+ explainFlightDocumentScene3DRefusal,
32
+ explainFlightDocumentScene3DRefusalFromText,
33
+ } from './sceneDocumentScene3DMaterialization';
34
+
35
+ describe('createFlightDocumentFromScene3D', () => {
36
+ it('creates a model from an empty Scene3D', () => {
37
+ const scene = createScene3D();
38
+ const document = createFlightDocumentFromScene3D(scene, [], [], createTestSchemas());
39
+ expect(document.kind).toBe('Scene3D');
40
+ expect(document.version).toBe(1);
41
+ expect(document.scene.children).toHaveLength(0);
42
+ expect(document.cameras).toHaveLength(0);
43
+ expect(document.lights).toHaveLength(0);
44
+ });
45
+
46
+ it('preserves cameras and lights', () => {
47
+ const scene = createScene3D();
48
+ const cameras: Scene3DDocumentCamera[] = [
49
+ {
50
+ far: 1000,
51
+ name: 'main',
52
+ near: 0.1,
53
+ projection: { aspect: 1.5, fovY: 1.0, kind: 'perspective' },
54
+ transform: createTransform3D(),
55
+ },
56
+ ];
57
+ const lights: Scene3DDocumentLight[] = [
58
+ {
59
+ descriptor: createAmbientLight(),
60
+ name: 'ambient',
61
+ transform: createTransform3D(),
62
+ },
63
+ ];
64
+ const document = createFlightDocumentFromScene3D(scene, cameras, lights, createTestSchemas());
65
+ expect(document.cameras).toHaveLength(1);
66
+ expect(document.cameras[0].far).toBe(1000);
67
+ expect(document.lights).toHaveLength(1);
68
+ expect(document.lights[0].descriptor.kind).toBe(AmbientLightKind);
69
+ });
70
+ });
71
+
72
+ describe('createFlightDocumentScene3DMaterialization', () => {
73
+ it('materializes an empty Scene3D from a minimal model', () => {
74
+ const document: FlightDocumentScene3D = {
75
+ cameras: [],
76
+ kind: 'Scene3D',
77
+ lights: [],
78
+ resources: [],
79
+ scene: { children: [], fields: {}, kind: Node3DKind },
80
+ version: 1,
81
+ };
82
+ const result = createFlightDocumentScene3DMaterialization(document, createTestSchemas());
83
+ expect(result).not.toBeNull();
84
+ const materialization = result as FlightDocumentScene3DMaterialization;
85
+ expect(materialization.scene).toBeDefined();
86
+ expect(materialization.cameras).toHaveLength(0);
87
+ expect(materialization.lights).toBeDefined();
88
+ });
89
+
90
+ it('materializes cameras from document camera descriptors', () => {
91
+ const document: FlightDocumentScene3D = {
92
+ cameras: [
93
+ {
94
+ far: 500,
95
+ near: 0.5,
96
+ projection: { aspect: 1.77, fovY: 1.047, kind: 'perspective' },
97
+ transform: createTransform3D(),
98
+ },
99
+ ],
100
+ kind: 'Scene3D',
101
+ lights: [],
102
+ resources: [],
103
+ scene: { children: [], fields: {}, kind: Node3DKind },
104
+ version: 1,
105
+ };
106
+ const result = createFlightDocumentScene3DMaterialization(document, createTestSchemas());
107
+ expect(result).not.toBeNull();
108
+ const materialization = result as FlightDocumentScene3DMaterialization;
109
+ expect(materialization.cameras).toHaveLength(1);
110
+ expect(materialization.cameras[0].far).toBe(500);
111
+ expect(materialization.cameras[0].near).toBe(0.5);
112
+ expect(materialization.cameras[0].projection.kind).toBe('perspective');
113
+ });
114
+
115
+ it('materializes a tree with children', () => {
116
+ const document: FlightDocumentScene3D = {
117
+ cameras: [],
118
+ kind: 'Scene3D',
119
+ lights: [],
120
+ resources: [],
121
+ scene: {
122
+ children: [{ children: [], fields: {}, kind: Node3DKind }],
123
+ fields: {},
124
+ kind: Node3DKind,
125
+ },
126
+ version: 1,
127
+ };
128
+ const schemas = createTestSchemas();
129
+ const result = createFlightDocumentScene3DMaterialization(document, schemas);
130
+ expect(result).not.toBeNull();
131
+ const materialization = result as FlightDocumentScene3DMaterialization;
132
+ const rootChildren = getNodeChildren(materialization.scene.root);
133
+ expect(rootChildren).toHaveLength(1);
134
+ expect(rootChildren[0].kind).toBe(Node3DKind);
135
+ });
136
+
137
+ it('returns null for a Scene2D document', () => {
138
+ const document = {
139
+ backgroundColor: null,
140
+ kind: 'Scene2D',
141
+ resources: [],
142
+ scene: { children: [], fields: {}, kind: 'DisplayObject' },
143
+ version: 1,
144
+ } as FlightDocument;
145
+ const result = createFlightDocumentScene3DMaterialization(document, createTestSchemas());
146
+ expect(result).toBeNull();
147
+ });
148
+
149
+ it('returns null for an unsupported version', () => {
150
+ const document = {
151
+ cameras: [],
152
+ kind: 'Scene3D',
153
+ lights: [],
154
+ resources: [],
155
+ scene: { children: [], fields: {}, kind: Node3DKind },
156
+ version: 99,
157
+ } as unknown as FlightDocumentScene3D;
158
+ const result = createFlightDocumentScene3DMaterialization(document, createTestSchemas());
159
+ expect(result).toBeNull();
160
+ });
161
+
162
+ it('returns null for duplicate ambient lights', () => {
163
+ const document: FlightDocumentScene3D = {
164
+ cameras: [],
165
+ kind: 'Scene3D',
166
+ lights: [
167
+ { descriptor: createAmbientLight(), transform: createTransform3D() },
168
+ { descriptor: createAmbientLight({ color: 0xccccccff, intensity: 0.5 }), transform: createTransform3D() },
169
+ ],
170
+ resources: [],
171
+ scene: { children: [], fields: {}, kind: Node3DKind },
172
+ version: 1,
173
+ };
174
+ const result = createFlightDocumentScene3DMaterialization(document, createTestSchemas());
175
+ expect(result).toBeNull();
176
+ });
177
+
178
+ it('returns null for duplicate directional lights', () => {
179
+ const document: FlightDocumentScene3D = {
180
+ cameras: [],
181
+ kind: 'Scene3D',
182
+ lights: [
183
+ { descriptor: createDirectionalLight(), transform: createTransform3D() },
184
+ { descriptor: createDirectionalLight({ color: 0xccccccff, intensity: 0.5 }), transform: createTransform3D() },
185
+ ],
186
+ resources: [],
187
+ scene: { children: [], fields: {}, kind: Node3DKind },
188
+ version: 1,
189
+ };
190
+ const result = createFlightDocumentScene3DMaterialization(document, createTestSchemas());
191
+ expect(result).toBeNull();
192
+ });
193
+ });
194
+
195
+ describe('createFlightDocumentScene3DMaterializationFromText', () => {
196
+ it('materializes a Scene3D from YAML text', () => {
197
+ const yaml = ['flight: 1', 'kind: Scene3D', 'scene:', ' kind: Node3D'].join('\n');
198
+ const schemas = createTestSchemas();
199
+ const result = createFlightDocumentScene3DMaterializationFromText(yaml, schemas);
200
+ expect(result).not.toBeNull();
201
+ const materialization = result as FlightDocumentScene3DMaterialization;
202
+ expect(materialization.scene).toBeDefined();
203
+ });
204
+
205
+ it('returns null for a Scene2D YAML document', () => {
206
+ const yaml = ['flight: 1', 'kind: Scene2D', 'scene:', ' kind: DisplayObject'].join('\n');
207
+ const result = createFlightDocumentScene3DMaterializationFromText(yaml, createTestSchemas());
208
+ expect(result).toBeNull();
209
+ });
210
+ });
211
+
212
+ describe('duplicate-light explain parity', () => {
213
+ // The table is annotated so each fixture is checked AGAINST THE SCHEMA rather than inferred from its own
214
+ // literal. Without this, `version: 1` widens to `number` and the row stops being a `FlightDocument` — and
215
+ // the two obvious local repairs both make the fixture worse: `1 as const` and a cast silence the widening
216
+ // while also silencing every other way a row could stop matching the document type, which is the only
217
+ // thing this parity test has to hold the fixtures to.
218
+ it.each<{ document: Readonly<FlightDocument>; expectedReason: FlightDocumentRefusalReason; label: string }>([
219
+ {
220
+ label: 'duplicate ambient',
221
+ document: {
222
+ cameras: [],
223
+ kind: 'Scene3D',
224
+ lights: [
225
+ { descriptor: createAmbientLight(), transform: createTransform3D() },
226
+ { descriptor: createAmbientLight({ color: 0xccccccff, intensity: 0.5 }), transform: createTransform3D() },
227
+ ],
228
+ resources: [],
229
+ scene: { children: [], fields: {}, kind: Node3DKind },
230
+ version: 1,
231
+ },
232
+ expectedReason: FlightDocumentRefusalReason.DuplicateAmbientLight,
233
+ },
234
+ {
235
+ label: 'duplicate directional',
236
+ document: {
237
+ cameras: [],
238
+ kind: 'Scene3D',
239
+ lights: [
240
+ { descriptor: createDirectionalLight(), transform: createTransform3D() },
241
+ { descriptor: createDirectionalLight({ color: 0xccccccff, intensity: 0.5 }), transform: createTransform3D() },
242
+ ],
243
+ resources: [],
244
+ scene: { children: [], fields: {}, kind: Node3DKind },
245
+ version: 1,
246
+ },
247
+ expectedReason: FlightDocumentRefusalReason.DuplicateDirectionalLight,
248
+ },
249
+ ])('model and text explain agree on $label', ({ document, expectedReason }) => {
250
+ const modelResult = explainFlightDocumentScene3DRefusal(document);
251
+ const text = serializeFlightDocument(document);
252
+ const textResult = explainFlightDocumentScene3DRefusalFromText(text);
253
+ expect(modelResult).not.toBeNull();
254
+ expect(textResult).not.toBeNull();
255
+ expect(textResult!.reason).toBe(modelResult!.reason);
256
+ expect(textResult!.path).toBe(modelResult!.path);
257
+ expect(modelResult!.reason).toBe(expectedReason);
258
+ expect(modelResult!.path).toBe('lights');
259
+ });
260
+ });
261
+
262
+ describe('explainFlightDocumentScene3DRefusal', () => {
263
+ it('explains a dimension mismatch', () => {
264
+ const document = {
265
+ backgroundColor: null,
266
+ kind: 'Scene2D',
267
+ resources: [],
268
+ scene: { children: [], fields: {}, kind: 'DisplayObject' },
269
+ version: 1,
270
+ } as FlightDocument;
271
+ const explanation = explainFlightDocumentScene3DRefusal(document);
272
+ expect(explanation).not.toBeNull();
273
+ expect(explanation!.reason).toBe(FlightDocumentRefusalReason.StructureInvalid);
274
+ expect(explanation!.path).toBe('kind');
275
+ });
276
+
277
+ it('explains an unsupported version', () => {
278
+ const document = {
279
+ cameras: [],
280
+ kind: 'Scene3D',
281
+ lights: [],
282
+ resources: [],
283
+ scene: { children: [], fields: {}, kind: Node3DKind },
284
+ version: 99,
285
+ } as unknown as FlightDocumentScene3D;
286
+ const explanation = explainFlightDocumentScene3DRefusal(document);
287
+ expect(explanation).not.toBeNull();
288
+ expect(explanation!.reason).toBe(FlightDocumentRefusalReason.VersionUnsupported);
289
+ expect(explanation!.path).toBe('version');
290
+ expect(explanation!.version).toBe(99);
291
+ });
292
+
293
+ it('explains a duplicate ambient light', () => {
294
+ const document: FlightDocumentScene3D = {
295
+ cameras: [],
296
+ kind: 'Scene3D',
297
+ lights: [
298
+ { descriptor: createAmbientLight(), transform: createTransform3D() },
299
+ { descriptor: createAmbientLight({ color: 0xccccccff, intensity: 0.5 }), transform: createTransform3D() },
300
+ ],
301
+ resources: [],
302
+ scene: { children: [], fields: {}, kind: Node3DKind },
303
+ version: 1,
304
+ };
305
+ const explanation = explainFlightDocumentScene3DRefusal(document);
306
+ expect(explanation).not.toBeNull();
307
+ expect(explanation!.reason).toBe(FlightDocumentRefusalReason.DuplicateAmbientLight);
308
+ expect(explanation!.path).toBe('lights');
309
+ });
310
+
311
+ it('explains a duplicate directional light', () => {
312
+ const document: FlightDocumentScene3D = {
313
+ cameras: [],
314
+ kind: 'Scene3D',
315
+ lights: [
316
+ { descriptor: createDirectionalLight(), transform: createTransform3D() },
317
+ { descriptor: createDirectionalLight({ color: 0xccccccff, intensity: 0.5 }), transform: createTransform3D() },
318
+ ],
319
+ resources: [],
320
+ scene: { children: [], fields: {}, kind: Node3DKind },
321
+ version: 1,
322
+ };
323
+ const explanation = explainFlightDocumentScene3DRefusal(document);
324
+ expect(explanation).not.toBeNull();
325
+ expect(explanation!.reason).toBe(FlightDocumentRefusalReason.DuplicateDirectionalLight);
326
+ expect(explanation!.path).toBe('lights');
327
+ });
328
+
329
+ it('returns null when the document is valid', () => {
330
+ const document: FlightDocumentScene3D = {
331
+ cameras: [],
332
+ kind: 'Scene3D',
333
+ lights: [],
334
+ resources: [],
335
+ scene: { children: [], fields: {}, kind: Node3DKind },
336
+ version: 1,
337
+ };
338
+ const explanation = explainFlightDocumentScene3DRefusal(document);
339
+ expect(explanation).toBeNull();
340
+ });
341
+ });
342
+
343
+ describe('explainFlightDocumentScene3DRefusalFromText', () => {
344
+ it('explains an anchor refusal with parser position', () => {
345
+ const yaml = 'flight: 1\nkind: Scene3D\nanchor: &ref value\n';
346
+ const explanation = explainFlightDocumentScene3DRefusalFromText(yaml);
347
+ expect(explanation).not.toBeNull();
348
+ expect(explanation!.reason).toBe(FlightDocumentRefusalReason.AnchorUnsupported);
349
+ expect(explanation!.line).toBeGreaterThan(0);
350
+ });
351
+
352
+ it('explains a version mismatch in valid YAML', () => {
353
+ const yaml = 'flight: 99\nkind: Scene3D\nscene:\n kind: Node3D\n';
354
+ const explanation = explainFlightDocumentScene3DRefusalFromText(yaml);
355
+ expect(explanation).not.toBeNull();
356
+ expect(explanation!.reason).toBe(FlightDocumentRefusalReason.VersionUnsupported);
357
+ expect(explanation!.path).toBe('version');
358
+ expect(explanation!.version).toBe(99);
359
+ });
360
+
361
+ it('explains a dimension mismatch in valid YAML', () => {
362
+ const yaml = 'flight: 1\nkind: Scene2D\nscene:\n kind: DisplayObject\n';
363
+ const explanation = explainFlightDocumentScene3DRefusalFromText(yaml);
364
+ expect(explanation).not.toBeNull();
365
+ expect(explanation!.reason).toBe(FlightDocumentRefusalReason.StructureInvalid);
366
+ expect(explanation!.path).toBe('kind');
367
+ });
368
+
369
+ it('explains a duplicate ambient light from text', () => {
370
+ const yaml = [
371
+ 'flight: 1',
372
+ 'kind: Scene3D',
373
+ 'scene:',
374
+ ' kind: Node3D',
375
+ 'lights:',
376
+ ' - descriptor:',
377
+ ' kind: AmbientLight',
378
+ ' - descriptor:',
379
+ ' kind: AmbientLight',
380
+ ].join('\n');
381
+ const explanation = explainFlightDocumentScene3DRefusalFromText(yaml);
382
+ expect(explanation).not.toBeNull();
383
+ expect(explanation!.reason).toBe(FlightDocumentRefusalReason.DuplicateAmbientLight);
384
+ expect(explanation!.path).toBe('lights');
385
+ });
386
+
387
+ it('explains a duplicate directional light from text', () => {
388
+ const yaml = [
389
+ 'flight: 1',
390
+ 'kind: Scene3D',
391
+ 'scene:',
392
+ ' kind: Node3D',
393
+ 'lights:',
394
+ ' - descriptor:',
395
+ ' kind: DirectionalLight',
396
+ ' - descriptor:',
397
+ ' kind: DirectionalLight',
398
+ ].join('\n');
399
+ const explanation = explainFlightDocumentScene3DRefusalFromText(yaml);
400
+ expect(explanation).not.toBeNull();
401
+ expect(explanation!.reason).toBe(FlightDocumentRefusalReason.DuplicateDirectionalLight);
402
+ expect(explanation!.path).toBe('lights');
403
+ });
404
+
405
+ it('returns null for valid Scene3D text', () => {
406
+ const yaml = 'flight: 1\nkind: Scene3D\nscene:\n kind: Node3D\n';
407
+ const explanation = explainFlightDocumentScene3DRefusalFromText(yaml);
408
+ expect(explanation).toBeNull();
409
+ });
410
+ });
411
+
412
+ describe('Scene3DDocumentCamera', () => {
413
+ it('has no direction field', () => {
414
+ expectTypeOf<keyof Scene3DDocumentCamera>().toEqualTypeOf<
415
+ 'far' | 'name' | 'near' | 'node' | 'projection' | 'transform'
416
+ >();
417
+ });
418
+ });
419
+
420
+ describe('Scene3DDocumentLight', () => {
421
+ it('has no direction field', () => {
422
+ expectTypeOf<keyof Scene3DDocumentLight>().toEqualTypeOf<'descriptor' | 'name' | 'node' | 'transform'>();
423
+ });
424
+ });
425
+
426
+ function createTestSchemas(): FlightDocumentSchemaRegistry {
427
+ const node3DSchema: FlightDocumentNodeSchema = {
428
+ createNode: (_fields: Readonly<FlightDocumentFields>, _resources: FlightDocumentResourceLookup) => {
429
+ return createNode3D();
430
+ },
431
+ fields: [],
432
+ kind: Node3DKind,
433
+ writeNodeFields: (_out: FlightDocumentFields, _source: Readonly<NodeAny>) => {
434
+ return true;
435
+ },
436
+ };
437
+
438
+ let nodeSchemas = createKeyedTable<FlightDocumentNodeSchema>('flight-document.node', 'none');
439
+ nodeSchemas = withRegistryTableEntry(nodeSchemas, Node3DKind, node3DSchema);
440
+
441
+ return {
442
+ nodeSchemas,
443
+ resourceSchemas: createKeyedTable('flight-document.resource', 'none'),
444
+ shapeCommandSchemas: createKeyedTable('flight-document.shape-command', 'none'),
445
+ };
446
+ }