@elaraai/east 1.0.71 → 1.0.73

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.
@@ -6,9 +6,10 @@ import { describe, test } from "node:test";
6
6
  import assert from "node:assert/strict";
7
7
  import { variant, some, none } from '../containers/variant.js';
8
8
  import { fuzzerTest } from '../fuzz.js';
9
- import { ArrayType, AsyncFunctionType, BlobType, BooleanType, DateTimeType, DictType, FloatType, FunctionType, IntegerType, NeverType, NullType, RecursiveType, SetType, StringType, StructType, VariantType, VectorType, MatrixType, } from '../types.js';
9
+ import { ArrayType, AsyncFunctionType, BlobType, BooleanType, DateTimeType, DictType, FloatType, FunctionType, IntegerType, NeverType, NullType, OptionType, RecursiveType, SetType, StringType, StructType, VariantType, VectorType, MatrixType, } from '../types.js';
10
+ import { toEastTypeValue } from '../type_of_type.js';
10
11
  import { matrix } from '../containers/matrix.js';
11
- import { decodeJSONFor, encodeJSONFor, fromJSONFor, toJSONFor } from "./json.js";
12
+ import { decodeJSONFor, encodeJSONFor, fromJSONFor, jsonFlatOptionPayload, toJSONFor } from "./json.js";
12
13
  import { isFrozenValue } from "../frozen.js";
13
14
  import { compareFor, equalFor } from "../comparison.js";
14
15
  import { SortedSet } from "../containers/sortedset.js";
@@ -295,16 +296,16 @@ describe('Json encoding/decoding of EAST values', () => {
295
296
  });
296
297
  test('should encode/decode variant', () => {
297
298
  const type = VariantType({
298
- none: NullType,
299
- some: DateTimeType,
299
+ ok: DateTimeType,
300
+ err: StringType,
300
301
  });
301
302
  const decoded = [
302
- none,
303
- some(new Date("2022-06-29T13:43:00.123+00:00")),
303
+ variant("ok", new Date("2022-06-29T13:43:00.123+00:00")),
304
+ variant("err", "bad"),
304
305
  ];
305
306
  const encoded = [
306
- { type: "none", value: null },
307
- { type: "some", value: "2022-06-29T13:43:00.123+00:00" },
307
+ { type: "ok", value: "2022-06-29T13:43:00.123+00:00" },
308
+ { type: "err", value: "bad" },
308
309
  ];
309
310
  const erroneous = [
310
311
  undefined,
@@ -312,13 +313,72 @@ describe('Json encoding/decoding of EAST values', () => {
312
313
  1,
313
314
  "",
314
315
  {},
315
- { type: "none" },
316
- { value: null },
316
+ { type: "ok" },
317
+ { value: "bad" },
317
318
  { type: "nothing", value: null },
318
- { type: "none", value: 1 },
319
+ { type: "err", value: 1 },
319
320
  ];
320
321
  run(type, decoded, encoded, erroneous);
321
322
  });
323
+ test('should encode an Option as null or its payload when the payload cannot be null', () => {
324
+ // The one type-directed choice of form East JSON makes: none is null
325
+ // and some is the payload itself, because at this position the payload
326
+ // can never encode as null — so null has one reading. The tagged object
327
+ // is then refused by the payload's own decoder.
328
+ run(OptionType(DateTimeType), [none, some(new Date("2022-06-29T13:43:00.123+00:00"))], [null, "2022-06-29T13:43:00.123+00:00"], [undefined, 1, "", {}, [], { type: "none", value: null }, { type: "some", value: "2022-06-29T13:43:00.123+00:00" }]);
329
+ run(OptionType(StringType), [none, some("x"), some("")], [null, "x", ""], [undefined, 1, {}, { type: "none", value: null }]);
330
+ run(OptionType(IntegerType), [none, some(7n)], [null, "7"], [7, { type: "some", value: "7" }]);
331
+ run(OptionType(FloatType), [none, some(NaN), some(1.5)], [null, "NaN", 1.5], ["nan"]);
332
+ run(OptionType(StructType({ a: IntegerType })), [none, some({ a: 1n })], [null, { a: "1" }], [{}, { type: "some", value: { a: "1" } }]);
333
+ // A variant is always an object, so it is a flat payload — Null case and all.
334
+ const OkErr = VariantType({ ok: NullType, err: StringType });
335
+ run(OptionType(OkErr), [none, some(variant("ok", null)), some(variant("err", "bad"))], [null, { type: "ok", value: null }, { type: "err", value: "bad" }], [{ type: "some", value: { type: "ok", value: null } }]);
336
+ run(ArrayType(OptionType(StringType)), [[], [none, some("x")]], [[], [null, "x"]], [[{ type: "none", value: null }]]);
337
+ run(DictType(StringType, OptionType(IntegerType)), [new SortedMap([["a", none], ["b", some(1n)]], compareFor(StringType))], [[{ key: "a", value: null }, { key: "b", value: "1" }]], [[{ key: "a", value: { type: "none", value: null } }]]);
338
+ });
339
+ test('should keep the tagged form for an Option whose payload can itself be null', () => {
340
+ // The two cases that pin the predicate: some(none) must stay distinct
341
+ // from none, and some(null) from none, so the tag carries the difference.
342
+ run(OptionType(OptionType(StringType)), [none, some(none), some(some("x"))], [{ type: "none", value: null }, { type: "some", value: null }, { type: "some", value: "x" }], [null, "x", { type: "some", value: { type: "none", value: null } }]);
343
+ run(OptionType(NullType), [none, some(null)], [{ type: "none", value: null }, { type: "some", value: null }], [null, {}]);
344
+ });
345
+ test('should encode an Option of a recursive type by what the wrapper encodes', () => {
346
+ // next: Option<self> is the ordinary linked list. self refers back to a
347
+ // struct, so the Option is flat at every depth.
348
+ const ChainType = RecursiveType((self) => StructType({ head: IntegerType, next: OptionType(self) }));
349
+ run(ChainType, [{ head: 1n, next: none }, { head: 2n, next: some({ head: 1n, next: none }) }], [{ head: "1", next: null }, { head: "2", next: { head: "1", next: null } }], [{ head: "1" }, { head: "1", next: { type: "none", value: null } }]);
350
+ run(OptionType(ChainType), [none, some({ head: 1n, next: none })], [null, { head: "1", next: null }], [{ type: "none", value: null }]);
351
+ // Whereas a wrapper around an Option is judged as that Option: flat
352
+ // itself, but tagged when it is the payload of another Option.
353
+ const MaybeChainType = RecursiveType((self) => OptionType(StructType({ head: IntegerType, next: self })));
354
+ run(MaybeChainType, [none, some({ head: 1n, next: none })], [null, { head: "1", next: null }], [{ type: "none", value: null }]);
355
+ run(OptionType(MaybeChainType), [none, some(none), some(some({ head: 1n, next: none }))], [{ type: "none", value: null }, { type: "some", value: null }, { type: "some", value: { head: "1", next: null } }], [null]);
356
+ });
357
+ test('jsonFlatOptionPayload names the payload of a flat Option and nothing else', () => {
358
+ const T = (t) => toEastTypeValue(t);
359
+ assert.deepEqual(jsonFlatOptionPayload(T(OptionType(StringType))), T(StringType));
360
+ assert.deepEqual(jsonFlatOptionPayload(T(OptionType(VariantType({ ok: NullType })))), T(VariantType({ ok: NullType })));
361
+ assert.equal(jsonFlatOptionPayload(T(OptionType(NullType))), null);
362
+ assert.equal(jsonFlatOptionPayload(T(OptionType(OptionType(StringType)))), null);
363
+ // Not an Option at all: another type, another shape of variant, or a
364
+ // none that carries data — which no bare null could stand for.
365
+ assert.equal(jsonFlatOptionPayload(T(StringType)), null);
366
+ assert.equal(jsonFlatOptionPayload(T(VariantType({ ok: IntegerType, err: StringType }))), null);
367
+ assert.equal(jsonFlatOptionPayload(T(VariantType({ none: IntegerType, some: StringType }))), null);
368
+ assert.equal(jsonFlatOptionPayload(T(VariantType({ none: NullType, some: StringType, other: NullType }))), null);
369
+ // A wrapper is judged by what it wraps; a back-reference by the inner
370
+ // type of the wrapper it names, which the scope supplies.
371
+ const ChainType = RecursiveType((self) => StructType({ head: IntegerType, next: OptionType(self) }));
372
+ assert.deepEqual(jsonFlatOptionPayload(T(OptionType(ChainType))), T(ChainType));
373
+ const wrapper = T(ChainType).value.value;
374
+ const fields = wrapper.inner.value;
375
+ const next = fields.find(f => f.name === "next").type;
376
+ assert.throws(() => jsonFlatOptionPayload(next), /unresolved recursive reference/);
377
+ const scope = new Map([[wrapper.id, wrapper.inner]]);
378
+ assert.deepEqual(jsonFlatOptionPayload(next, scope), next.value[1].type);
379
+ const MaybeChainType = RecursiveType((self) => OptionType(StructType({ head: IntegerType, next: self })));
380
+ assert.equal(jsonFlatOptionPayload(T(OptionType(MaybeChainType))), null);
381
+ });
322
382
  test('should encode/decode simple linked list', () => {
323
383
  // LinkedList = Variant<nil: Null, cons: Struct<head: Integer, tail: LinkedList>>
324
384
  const LinkedListType = RecursiveType((self) => VariantType({
@@ -745,13 +805,13 @@ describe('Json encoding/decoding of EAST values', () => {
745
805
  assert.equal(e.message, 'Error occurred because expected string representing integer, got "not an integer" at [0].value (line 1, col 1) while parsing value of type ".Dict (key=.String, value=.Integer)"');
746
806
  }
747
807
  // Test error for variant case value
748
- const variantDecoder = fromJSONFor(VariantType({ none: NullType, some: IntegerType }));
808
+ const variantDecoder = fromJSONFor(VariantType({ ok: IntegerType, err: StringType }));
749
809
  try {
750
- variantDecoder({ type: "some", value: "not an integer" });
810
+ variantDecoder({ type: "ok", value: "not an integer" });
751
811
  assert.fail('Should have thrown');
752
812
  }
753
813
  catch (e) {
754
- assert.equal(e.message, 'Error occurred because expected string representing integer, got "not an integer" at .some (line 1, col 1) while parsing value of type ".Variant [(name="none", type=.Null), (name="some", type=.Integer)]"');
814
+ assert.equal(e.message, 'Error occurred because expected string representing integer, got "not an integer" at .ok (line 1, col 1) while parsing value of type ".Variant [(name="err", type=.String), (name="ok", type=.Integer)]"');
755
815
  }
756
816
  // Test error for unknown variant type
757
817
  try {
@@ -759,7 +819,25 @@ describe('Json encoding/decoding of EAST values', () => {
759
819
  assert.fail('Should have thrown');
760
820
  }
761
821
  catch (e) {
762
- assert.equal(e.message, 'Error occurred because unknown variant type "unknown", got {"type":"unknown","value":null} (line 1, col 1) while parsing value of type ".Variant [(name="none", type=.Null), (name="some", type=.Integer)]"');
822
+ assert.equal(e.message, 'Error occurred because unknown variant type "unknown", got {"type":"unknown","value":null} (line 1, col 1) while parsing value of type ".Variant [(name="err", type=.String), (name="ok", type=.Integer)]"');
823
+ }
824
+ // Test error for a tagged object under a flat Option: the payload's own
825
+ // decoder speaks, and the path gains no segment — the payload sits
826
+ // where the Option does.
827
+ const optionDecoder = fromJSONFor(StructType({ note: OptionType(IntegerType) }));
828
+ try {
829
+ optionDecoder({ note: { type: "some", value: "7" } });
830
+ assert.fail('Should have thrown');
831
+ }
832
+ catch (e) {
833
+ assert.equal(e.message, 'Error occurred because expected string representing integer, got {"type":"some","value":"7"} at .note (line 1, col 1) while parsing value of type ".Struct [(name="note", type=.Variant [(name="none", type=.Null), (name="some", type=.Integer)])]"');
834
+ }
835
+ try {
836
+ optionDecoder({ note: 7 });
837
+ assert.fail('Should have thrown');
838
+ }
839
+ catch (e) {
840
+ assert.equal(e.message, 'Error occurred because expected string representing integer, got 7 at .note (line 1, col 1) while parsing value of type ".Struct [(name="note", type=.Variant [(name="none", type=.Null), (name="some", type=.Integer)])]"');
763
841
  }
764
842
  // Test error for deeply nested structure - array of structs with error in second element
765
843
  const nestedDecoder = fromJSONFor(ArrayType(StructType({ id: IntegerType, name: StringType })));
@@ -999,6 +1077,12 @@ describe('Json encoding/decoding of EAST values', () => {
999
1077
  const v = fromJson({ type: "some", value: "42" });
1000
1078
  assert.ok(!Object.isFrozen(v));
1001
1079
  });
1080
+ test('should freeze a decoded flat Option when frozen=true', () => {
1081
+ const fromJson = fromJSONFor(OptionType(IntegerType), true);
1082
+ assert.ok(Object.isFrozen(fromJson("42")));
1083
+ assert.ok(Object.isFrozen(fromJson(null)));
1084
+ assert.ok(!Object.isFrozen(fromJSONFor(OptionType(IntegerType), false)("42")));
1085
+ });
1002
1086
  test('should handle JSON.parse syntax errors in decodeJSONFor', () => {
1003
1087
  const textEncoder = new TextEncoder();
1004
1088
  const decode = decodeJSONFor(IntegerType);
@@ -1 +1 @@
1
- {"version":3,"file":"json.spec.js","sourceRoot":"","sources":["../../../src/serialization/json.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json.spec.js","sourceRoot":"","sources":["../../../src/serialization/json.spec.ts"],"names":[],"mappings":"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"}
@@ -61,6 +61,11 @@ export declare const EAST_JSON_PATTERNS: {
61
61
  * whitespace-padded integers, a `Z` suffix on timestamps and uppercase hex
62
62
  * blobs, and none of those appear here.
63
63
  *
64
+ * An `Option<T>` whose payload can never encode as `null` is described as it
65
+ * encodes — `oneOf` the draft's `null` and `T`'s own schema, annotated
66
+ * `x-east-type: "Option"` — and only `Option<Null>` and `Option<Option<T>>`,
67
+ * the two payloads that can themselves be `null`, keep the tagged object.
68
+ *
64
69
  * The document is deterministic — key order, `$defs` names and case order are
65
70
  * fixed by the type, not by process state — so the TypeScript and Python
66
71
  * implementations emit byte-identical bytes for the same type and release.
@@ -1 +1 @@
1
- {"version":3,"file":"json_schema.d.ts","sourceRoot":"","sources":["../../../src/serialization/json_schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C,uDAAuD;AACvD,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,eAAe,EAAE,GAAG,UAAU,CAAC;AAEhG,0DAA0D;AAC1D,MAAM,MAAM,UAAU,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAA;CAAE,CAAC;AAE5D;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,UAAU,GAAG,aAAa,CAAC;AAErE,yCAAyC;AACzC,MAAM,WAAW,iBAAiB;IAChC,sDAAsD;IACtD,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB;AAmFD;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB;IAC7B,sDAAsD;sBACvC,MAAM;IACrB,6EAA6E;;IAE7E,8DAA8D;;IAE9D,6EAA6E;4BAC5C,SAAS,MAAM,EAAE;CAC1C,CAAC;AAeX;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,aAAa,EAAE,OAAO,GAAE,iBAAsB,GAAG,UAAU,CAazG"}
1
+ {"version":3,"file":"json_schema.d.ts","sourceRoot":"","sources":["../../../src/serialization/json_schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAI5C,uDAAuD;AACvD,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,eAAe,EAAE,GAAG,UAAU,CAAC;AAEhG,0DAA0D;AAC1D,MAAM,MAAM,UAAU,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAA;CAAE,CAAC;AAE5D;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,UAAU,GAAG,aAAa,CAAC;AAErE,yCAAyC;AACzC,MAAM,WAAW,iBAAiB;IAChC,sDAAsD;IACtD,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB;AAmFD;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB;IAC7B,sDAAsD;sBACvC,MAAM;IACrB,6EAA6E;;IAE7E,8DAA8D;;IAE9D,6EAA6E;4BAC5C,SAAS,MAAM,EAAE;CAC1C,CAAC;AAwBX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,aAAa,EAAE,OAAO,GAAE,iBAAsB,GAAG,UAAU,CAazG"}
@@ -4,6 +4,7 @@
4
4
  */
5
5
  import { toEastTypeValue } from "../type_of_type.js";
6
6
  import { isVariant } from "../containers/variant.js";
7
+ import { jsonFlatOptionPayload } from "./json.js";
7
8
  const SCHEMA_URI = {
8
9
  "2020-12": "https://json-schema.org/draft/2020-12/schema",
9
10
  "draft-07": "http://json-schema.org/draft-07/schema#",
@@ -97,6 +98,12 @@ export const EAST_JSON_PATTERNS = {
97
98
  /** The non-finite floats, as strings, in the order the schema lists them. */
98
99
  floatSpecials: FLOAT_SPECIALS,
99
100
  };
101
+ /** The draft's spelling of `Null` — also the alternative a flat Option's `none` takes. */
102
+ function nullSchema(draft) {
103
+ // OpenAPI 3.0 predates the "null" type; `nullable` plus a closed enum is
104
+ // the documented equivalent.
105
+ return draft === "openapi-3.0" ? { nullable: true, enum: [null] } : { type: "null" };
106
+ }
100
107
  /** Where definitions live, and how they are referenced, in a given release. */
101
108
  function defsKeyword(draft) {
102
109
  return draft === "2020-12" ? "$defs" : "definitions";
@@ -118,6 +125,11 @@ function defsKeyword(draft) {
118
125
  * whitespace-padded integers, a `Z` suffix on timestamps and uppercase hex
119
126
  * blobs, and none of those appear here.
120
127
  *
128
+ * An `Option<T>` whose payload can never encode as `null` is described as it
129
+ * encodes — `oneOf` the draft's `null` and `T`'s own schema, annotated
130
+ * `x-east-type: "Option"` — and only `Option<Null>` and `Option<Option<T>>`,
131
+ * the two payloads that can themselves be `null`, keep the tagged object.
132
+ *
121
133
  * The document is deterministic — key order, `$defs` names and case order are
122
134
  * fixed by the type, not by process state — so the TypeScript and Python
123
135
  * implementations emit byte-identical bytes for the same type and release.
@@ -132,7 +144,7 @@ function defsKeyword(draft) {
132
144
  export function jsonSchemaFor(type, options = {}) {
133
145
  const draft = options.draft ?? "2020-12";
134
146
  const typeValue = isVariant(type) ? type : toEastTypeValue(type);
135
- const ctx = { draft, defs: {}, names: new Map() };
147
+ const ctx = { draft, defs: {}, names: new Map(), inners: new Map() };
136
148
  const body = schemaOf(typeValue, ctx);
137
149
  const out = {};
138
150
  const uri = SCHEMA_URI[draft];
@@ -154,11 +166,7 @@ function schemaOf(t, ctx) {
154
166
  case "AsyncFunction":
155
167
  throw new Error("jsonSchemaFor cannot describe AsyncFunction — JSON has no function form");
156
168
  case "Null":
157
- // OpenAPI 3.0 predates the "null" type; `nullable` plus a closed enum is
158
- // the documented equivalent.
159
- return ctx.draft === "openapi-3.0"
160
- ? { nullable: true, enum: [null] }
161
- : { type: "null" };
169
+ return nullSchema(ctx.draft);
162
170
  case "Boolean":
163
171
  return { type: "boolean" };
164
172
  case "String":
@@ -248,6 +256,12 @@ function schemaOf(t, ctx) {
248
256
  };
249
257
  }
250
258
  case "Variant": {
259
+ const flat = jsonFlatOptionPayload(t, ctx.inners);
260
+ if (flat !== null) {
261
+ // A flat Option: `null` never satisfies the payload's schema, so the
262
+ // oneOf is exact, and the annotation names what it came from.
263
+ return { oneOf: [nullSchema(ctx.draft), schemaOf(flat, ctx)], "x-east-type": "Option" };
264
+ }
251
265
  const cases = t.value;
252
266
  return {
253
267
  oneOf: cases.map(c => ({
@@ -278,6 +292,7 @@ function schemaOf(t, ctx) {
278
292
  // between runs and between languages.
279
293
  const name = `Recursive${ctx.names.size + 1}`;
280
294
  ctx.names.set(w.id, name);
295
+ ctx.inners.set(w.id, w.inner);
281
296
  // Reserve the slot before recursing so a back-reference resolves.
282
297
  ctx.defs[name] = {};
283
298
  ctx.defs[name] = schemaOf(w.inner, ctx);
@@ -1 +1 @@
1
- {"version":3,"file":"json_schema.js","sourceRoot":"","sources":["../../../src/serialization/json_schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json_schema.js","sourceRoot":"","sources":["../../../src/serialization/json_schema.ts"],"names":[],"mappings":"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"}