@flighthq/shape-formats 0.5.0-next.1944.cd6b6e7 → 0.5.1-edge.638.d4dbd4e

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/shape-formats`. 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/shape-formats@0.5.0-next.1944.cd6b6e7](https://github.com/flighthq/flight/tree/cd6b6e71eb472b3a4249830a7743333f019fa7b7/packages/shape-formats)
17
- - [License](https://github.com/flighthq/flight/blob/cd6b6e71eb472b3a4249830a7743333f019fa7b7/LICENSE.md)
16
+ - [Source for @flighthq/shape-formats@0.5.1-edge.638.d4dbd4e](https://github.com/flighthq/flight/tree/d4dbd4e347dc8be10b180c85a766ab50333dcb51/packages/shape-formats)
17
+ - [License](https://github.com/flighthq/flight/blob/d4dbd4e347dc8be10b180c85a766ab50333dcb51/LICENSE.md)
@@ -1,2 +1,3 @@
1
1
  export * from './shapeJson';
2
+ export * from './shapeCommandSchemas';
2
3
  //# sourceMappingURL=contract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC"}
package/dist/contract.js CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from './shapeJson';
2
+ export * from './shapeCommandSchemas';
2
3
  //# sourceMappingURL=contract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export { formatShapeJson, parseShapeJson } from './contract';
1
+ export { defaultShapeCommandSchemas, formatShapeJson, parseShapeJson } from './contract';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export { formatShapeJson, parseShapeJson } from './contract';
1
+ export { defaultShapeCommandSchemas, formatShapeJson, parseShapeJson } from './contract';
2
2
  //# 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,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { KeyedTable, ShapeCommandSchema } from '@flighthq/types/contract';
2
+ export declare const defaultShapeCommandSchemas: KeyedTable<ShapeCommandSchema>;
3
+ //# sourceMappingURL=shapeCommandSchemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shapeCommandSchemas.d.ts","sourceRoot":"","sources":["../src/shapeCommandSchemas.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EAEV,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AA0GlC,eAAO,MAAM,0BAA0B,EAAE,UAAU,CAAC,kBAAkB,CAAsC,CAAC"}
@@ -0,0 +1,104 @@
1
+ import { createKeyedTable, withRegistryTableEntry } from '@flighthq/registry/contract';
2
+ function createDefaultShapeCommandSchemas() {
3
+ let table = createKeyedTable('ShapeCommandSchema', 'Unregistered');
4
+ for (const key of Object.keys(SHAPE_COMMAND_SCHEMA_ARGUMENTS)) {
5
+ const schema = SHAPE_COMMAND_SCHEMA_ARGUMENTS[key];
6
+ table = withRegistryTableEntry(table, key, {
7
+ arguments: schema.arguments,
8
+ key,
9
+ requiredArgumentCount: schema.requiredArgumentCount,
10
+ });
11
+ }
12
+ return table;
13
+ }
14
+ const gradientArguments = [
15
+ argument('gradientType', 'string'),
16
+ argument('colors', 'numbers'),
17
+ argument('alphas', 'numbers'),
18
+ argument('ratios', 'numbers'),
19
+ argument('matrix', 'matrixOrNull'),
20
+ argument('spreadMethod', 'string'),
21
+ argument('interpolationMethod', 'string'),
22
+ argument('focalPointRatio', 'number'),
23
+ ];
24
+ const textureArguments = [
25
+ argument('texture', 'texture'),
26
+ argument('matrix', 'matrixOrNull'),
27
+ ];
28
+ const SHAPE_COMMAND_SCHEMA_ARGUMENTS = {
29
+ beginTextureFill: definition(1, textureArguments),
30
+ beginFill: definition(0, [argument('color', 'number'), argument('alpha', 'number')]),
31
+ beginGradientFill: definition(4, gradientArguments),
32
+ cubicCurveTo: definition(6, [
33
+ argument('controlX1', 'number'),
34
+ argument('controlY1', 'number'),
35
+ argument('controlX2', 'number'),
36
+ argument('controlY2', 'number'),
37
+ argument('anchorX', 'number'),
38
+ argument('anchorY', 'number'),
39
+ ]),
40
+ curveTo: definition(4, [
41
+ argument('controlX', 'number'),
42
+ argument('controlY', 'number'),
43
+ argument('anchorX', 'number'),
44
+ argument('anchorY', 'number'),
45
+ ]),
46
+ drawCircle: definition(3, [argument('x', 'number'), argument('y', 'number'), argument('radius', 'number')]),
47
+ drawEllipse: definition(4, [
48
+ argument('x', 'number'),
49
+ argument('y', 'number'),
50
+ argument('width', 'number'),
51
+ argument('height', 'number'),
52
+ ]),
53
+ drawPath: definition(2, [
54
+ argument('commands', 'numbers'),
55
+ argument('data', 'numbers'),
56
+ argument('winding', 'string'),
57
+ ]),
58
+ drawRectangle: definition(4, [
59
+ argument('x', 'number'),
60
+ argument('y', 'number'),
61
+ argument('width', 'number'),
62
+ argument('height', 'number'),
63
+ ]),
64
+ drawRoundRectangle: definition(6, [
65
+ argument('x', 'number'),
66
+ argument('y', 'number'),
67
+ argument('width', 'number'),
68
+ argument('height', 'number'),
69
+ argument('ellipseWidth', 'number'),
70
+ argument('ellipseHeight', 'number'),
71
+ ]),
72
+ drawTriangles: definition(1, [
73
+ argument('vertices', 'numbers'),
74
+ argument('indices', 'numbersOrNull'),
75
+ argument('uvtData', 'numbersOrNull'),
76
+ argument('culling', 'string'),
77
+ ]),
78
+ endFill: definition(0, []),
79
+ lineTextureStyle: definition(1, textureArguments),
80
+ lineGradientStyle: definition(4, gradientArguments),
81
+ lineStyle: definition(0, [
82
+ argument('thickness', 'number'),
83
+ argument('color', 'number'),
84
+ argument('alpha', 'number'),
85
+ argument('pixelHinting', 'boolean'),
86
+ argument('scaleMode', 'string'),
87
+ argument('caps', 'string'),
88
+ argument('joints', 'string'),
89
+ argument('miterLimit', 'number'),
90
+ ]),
91
+ lineTo: definition(2, [argument('x', 'number'), argument('y', 'number')]),
92
+ moveTo: definition(2, [argument('x', 'number'), argument('y', 'number')]),
93
+ };
94
+ // The one runtime schema table for the built-in retained-shape vocabulary. Native shape JSON uses
95
+ // its positional types and arity; scene-document text uses the same entries' argument names. Custom
96
+ // commands belong in a caller-owned table assembled with the same KeyedTable vocabulary.
97
+ export const defaultShapeCommandSchemas = createDefaultShapeCommandSchemas();
98
+ function argument(name, type) {
99
+ return { name, type };
100
+ }
101
+ function definition(requiredArgumentCount, arguments_) {
102
+ return { arguments: arguments_, requiredArgumentCount };
103
+ }
104
+ //# sourceMappingURL=shapeCommandSchemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shapeCommandSchemas.js","sourceRoot":"","sources":["../src/shapeCommandSchemas.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"shapeJson.d.ts","sourceRoot":"","sources":["../src/shapeJson.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,KAAK,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAOrG,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GAAG,MAAM,CAmC1G;AASD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,qBAAqB,CAAC,GAAG,KAAK,GAAG,IAAI,CAsCpG"}
1
+ {"version":3,"file":"shapeJson.d.ts","sourceRoot":"","sources":["../src/shapeJson.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EACV,KAAK,EAEL,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,0BAA0B,CAAC;AASlC,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GAAG,MAAM,CAmC1G;AASD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,qBAAqB,CAAC,GAAG,KAAK,GAAG,IAAI,CAsCpG"}
package/dist/shapeJson.js CHANGED
@@ -1,5 +1,7 @@
1
1
  import { createMatrix } from '@flighthq/geometry/contract';
2
+ import { getRegistryTableEntry } from '@flighthq/registry/contract';
2
3
  import { appendShapeBeginTextureFill, appendShapeBeginFill, appendShapeBeginGradientFill, appendShapeCircle, appendShapeCubicCurveTo, appendShapeCurveTo, appendShapeDrawTriangles, appendShapeEllipse, appendShapeEndFill, appendShapeLineTextureStyle, appendShapeLineGradientStyle, appendShapeLineStyle, appendShapeLineTo, appendShapeMoveTo, appendShapePath, appendShapeRectangle, appendShapeRoundRectangle, createShape, } from '@flighthq/shape/contract';
4
+ import { defaultShapeCommandSchemas } from './shapeCommandSchemas';
3
5
  // Serializes a shape's full drawing-command stream to a native JSON string that `parseShapeJson`
4
6
  // restores. Every stored command is checked against the same positional and finiteness predicates the
5
7
  // reader uses before anything is emitted: a writer that can produce a document its own reader rejects
@@ -127,16 +129,15 @@ function reconstructShapeCommandArg(value, resolveTexture) {
127
129
  // Runs after reconstruction, so matrices are already Matrix values and textures already resolved, and
128
130
  // after the drop check, so an unresolved texture is still a dropped command rather than a parse failure.
129
131
  function isValidShapeCommandArgs(key, args) {
130
- const spec = SHAPE_COMMAND_ARG_SPECS[key];
131
- // Treating a missing spec as invalid is what makes the two tables self-checking: a key that gained
132
- // an appender without a spec would make its own command unparseable, so the full-vocabulary
133
- // round-trip test fails the moment they drift apart.
134
- if (spec === undefined)
132
+ const schema = getRegistryTableEntry(defaultShapeCommandSchemas, key);
133
+ // A missing runtime schema invalidates the command. The full-vocabulary round-trip test therefore
134
+ // fails if the appender table and the shared schema table ever drift apart.
135
+ if (schema === null)
135
136
  return false;
136
- if (args.length < spec.required || args.length > spec.types.length)
137
+ if (args.length < schema.requiredArgumentCount || args.length > schema.arguments.length)
137
138
  return false;
138
139
  for (let i = 0; i < args.length; i++) {
139
- if (!isValidShapeCommandArg(args[i], spec.types[i]))
140
+ if (!isValidShapeCommandArg(args[i], schema.arguments[i].type))
140
141
  return false;
141
142
  }
142
143
  return true;
@@ -203,36 +204,6 @@ const MALFORMED_ARG = Symbol('shapeFormats.malformedArg');
203
204
  // Sentinel returned when a texture reference cannot be resolved; the owning command is dropped.
204
205
  const DROP_COMMAND = Symbol('shapeFormats.dropCommand');
205
206
  const SHAPE_JSON_FORMAT = 3;
206
- const GRADIENT_ARG_SPEC = {
207
- required: 4,
208
- types: ['string', 'numbers', 'numbers', 'numbers', 'matrixOrNull', 'string', 'string', 'number'],
209
- };
210
- const TEXTURE_ARG_SPEC = { required: 1, types: ['texture', 'matrixOrNull'] };
211
- const SHAPE_COMMAND_ARG_SPECS = {
212
- beginTextureFill: TEXTURE_ARG_SPEC,
213
- beginFill: { required: 0, types: ['number', 'number'] },
214
- beginGradientFill: GRADIENT_ARG_SPEC,
215
- cubicCurveTo: { required: 6, types: ['number', 'number', 'number', 'number', 'number', 'number'] },
216
- curveTo: { required: 4, types: ['number', 'number', 'number', 'number'] },
217
- drawCircle: { required: 3, types: ['number', 'number', 'number'] },
218
- drawEllipse: { required: 4, types: ['number', 'number', 'number', 'number'] },
219
- drawPath: { required: 2, types: ['numbers', 'numbers', 'string'] },
220
- drawRectangle: { required: 4, types: ['number', 'number', 'number', 'number'] },
221
- drawRoundRectangle: {
222
- required: 6,
223
- types: ['number', 'number', 'number', 'number', 'number', 'number'],
224
- },
225
- drawTriangles: { required: 1, types: ['numbers', 'numbersOrNull', 'numbersOrNull', 'string'] },
226
- endFill: { required: 0, types: [] },
227
- lineTextureStyle: TEXTURE_ARG_SPEC,
228
- lineGradientStyle: GRADIENT_ARG_SPEC,
229
- lineStyle: {
230
- required: 0,
231
- types: ['number', 'number', 'number', 'boolean', 'string', 'string', 'string', 'number'],
232
- },
233
- lineTo: { required: 2, types: ['number', 'number'] },
234
- moveTo: { required: 2, types: ['number', 'number'] },
235
- };
236
207
  const SHAPE_COMMAND_APPENDERS = {
237
208
  beginTextureFill: appendShapeBeginTextureFill,
238
209
  beginFill: appendShapeBeginFill,
@@ -1 +1 @@
1
- {"version":3,"file":"shapeJson.js","sourceRoot":"","sources":["../src/shapeJson.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shapeJson.js","sourceRoot":"","sources":["../src/shapeJson.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flighthq/shape-formats",
3
- "version": "0.5.0-next.1944.cd6b6e7",
3
+ "version": "0.5.1-edge.638.d4dbd4e",
4
4
  "author": "Joshua Granick and other contributors",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -38,9 +38,10 @@
38
38
  "clean:dist": "tsx ../../scripts/clean-package-dist.ts"
39
39
  },
40
40
  "dependencies": {
41
- "@flighthq/geometry": "0.5.0-next.1944.cd6b6e7",
42
- "@flighthq/shape": "0.5.0-next.1944.cd6b6e7",
43
- "@flighthq/types": "0.5.0-next.1944.cd6b6e7"
41
+ "@flighthq/geometry": "0.5.1-edge.638.d4dbd4e",
42
+ "@flighthq/registry": "0.5.1-edge.638.d4dbd4e",
43
+ "@flighthq/shape": "0.5.1-edge.638.d4dbd4e",
44
+ "@flighthq/types": "0.5.1-edge.638.d4dbd4e"
44
45
  },
45
46
  "devDependencies": {
46
47
  "typescript": "^5.3.0"
@@ -0,0 +1,35 @@
1
+ import { getRegistryTableEntry } from '@flighthq/registry/contract';
2
+
3
+ import { defaultShapeCommandSchemas } from './shapeCommandSchemas';
4
+
5
+ describe('defaultShapeCommandSchemas', () => {
6
+ it('pins the authored quadratic curve argument names to the ShapeCommandRegistry labels', () => {
7
+ const schema = getRegistryTableEntry(defaultShapeCommandSchemas, 'curveTo');
8
+ expect(schema?.arguments.map(({ name }) => name)).toEqual(['controlX', 'controlY', 'anchorX', 'anchorY']);
9
+ });
10
+
11
+ it('pins the authored cubic curve argument names to the ShapeCommandRegistry labels', () => {
12
+ const schema = getRegistryTableEntry(defaultShapeCommandSchemas, 'cubicCurveTo');
13
+ expect(schema?.arguments.map(({ name }) => name)).toEqual([
14
+ 'controlX1',
15
+ 'controlY1',
16
+ 'controlX2',
17
+ 'controlY2',
18
+ 'anchorX',
19
+ 'anchorY',
20
+ ]);
21
+ });
22
+
23
+ it('carries positional validation types and required arity in the same runtime entry', () => {
24
+ expect(getRegistryTableEntry(defaultShapeCommandSchemas, 'drawTriangles')).toEqual({
25
+ arguments: [
26
+ { name: 'vertices', type: 'numbers' },
27
+ { name: 'indices', type: 'numbersOrNull' },
28
+ { name: 'uvtData', type: 'numbersOrNull' },
29
+ { name: 'culling', type: 'string' },
30
+ ],
31
+ key: 'drawTriangles',
32
+ requiredArgumentCount: 1,
33
+ });
34
+ });
35
+ });
@@ -252,12 +252,12 @@ describe('parseShapeJson argument validation', () => {
252
252
  });
253
253
 
254
254
  it('rejects an out-of-range literal that parses as Infinity', () => {
255
- expect(parseShapeJson('{"shapeFormat":2,"commands":[{"key":"moveTo","args":[1e999,2]}]}')).toBeNull();
255
+ expect(parseShapeJson('{"shapeFormat":3,"commands":[{"key":"moveTo","args":[1e999,2]}]}')).toBeNull();
256
256
  });
257
257
 
258
258
  it('rejects a non-finite entry inside a numeric array', () => {
259
259
  expect(
260
- parseShapeJson('{"shapeFormat":2,"commands":[{"key":"drawPath","args":[[1],[1e999,0],"evenOdd"]}]}'),
260
+ parseShapeJson('{"shapeFormat":3,"commands":[{"key":"drawPath","args":[[1],[1e999,0],"evenOdd"]}]}'),
261
261
  ).toBeNull();
262
262
  });
263
263
 
@@ -294,7 +294,7 @@ describe('parseShapeJson argument validation', () => {
294
294
  .map(([key, value]) => `"${key}":${value}`)
295
295
  .join(',')}}`;
296
296
  const text =
297
- `{"shapeFormat":2,"commands":[{"key":"beginGradientFill","args":` +
297
+ `{"shapeFormat":3,"commands":[{"key":"beginGradientFill","args":` +
298
298
  `["linear",[1],[1],[0],${matrix},"pad","rgb",0]}]}`;
299
299
 
300
300
  expect(parseShapeJson(text)).toBeNull();
@@ -322,11 +322,9 @@ describe('parseShapeJson argument validation', () => {
322
322
  expect(getShapeCommandCount(restored!)).toBe(1);
323
323
  });
324
324
 
325
- // The two tables are indexed by the same key set and are read together on every command, so a key
326
- // in the appender table with no arg spec would make its command unparseable — isValidShapeCommandArgs
327
- // treats a missing spec as invalid. Round-tripping a shape that exercises the whole non-texture
328
- // vocabulary therefore *is* the consistency check: a forgotten spec turns this null.
329
- it('parses every command the serializer can emit, proving each has an argument spec', () => {
325
+ // Runtime validation reads the shared schema on every command, so a key in the appender table with
326
+ // no schema becomes unparseable. Exercising the whole non-texture vocabulary catches that drift.
327
+ it('parses every command the serializer can emit, proving each has a runtime schema', () => {
330
328
  const shape = createEveryNonBitmapCommandShape();
331
329
  const expected = getShapeCommandCount(shape);
332
330
  const restored = parseShapeJson(formatShapeJson(shape));