@elaraai/east 1.0.70 → 1.0.71

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 (28) hide show
  1. package/dist/src/location.d.ts +12 -0
  2. package/dist/src/location.d.ts.map +1 -1
  3. package/dist/src/location.js +15 -3
  4. package/dist/src/location.js.map +1 -1
  5. package/dist/src/serialization/index.d.ts +2 -0
  6. package/dist/src/serialization/index.d.ts.map +1 -1
  7. package/dist/src/serialization/index.js +2 -0
  8. package/dist/src/serialization/index.js.map +1 -1
  9. package/dist/src/serialization/json.d.ts.map +1 -1
  10. package/dist/src/serialization/json.js +31 -1
  11. package/dist/src/serialization/json.js.map +1 -1
  12. package/dist/src/serialization/json_schema.d.ts +76 -0
  13. package/dist/src/serialization/json_schema.d.ts.map +1 -0
  14. package/dist/src/serialization/json_schema.js +290 -0
  15. package/dist/src/serialization/json_schema.js.map +1 -0
  16. package/dist/src/serialization/json_schema.spec.d.ts +2 -0
  17. package/dist/src/serialization/json_schema.spec.d.ts.map +1 -0
  18. package/dist/src/serialization/json_schema.spec.js +327 -0
  19. package/dist/src/serialization/json_schema.spec.js.map +1 -0
  20. package/dist/src/serialization/json_schema_to_type.d.ts +74 -0
  21. package/dist/src/serialization/json_schema_to_type.d.ts.map +1 -0
  22. package/dist/src/serialization/json_schema_to_type.js +500 -0
  23. package/dist/src/serialization/json_schema_to_type.js.map +1 -0
  24. package/dist/src/serialization/json_schema_to_type.spec.d.ts +2 -0
  25. package/dist/src/serialization/json_schema_to_type.spec.d.ts.map +1 -0
  26. package/dist/src/serialization/json_schema_to_type.spec.js +372 -0
  27. package/dist/src/serialization/json_schema_to_type.spec.js.map +1 -0
  28. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json_schema.spec.js","sourceRoot":"","sources":["../../../src/serialization/json_schema.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ import { type EastType } from "../types.js";
6
+ import type { JsonSchema } from "./json_schema.js";
7
+ /**
8
+ * Raised when a schema cannot be expressed as an East type.
9
+ *
10
+ * @remarks
11
+ * Carries the RFC 6901 pointer to the offending node, because a contract
12
+ * document is large and "unsupported keyword" without a location is not
13
+ * actionable.
14
+ */
15
+ export declare class JsonSchemaUnsupportedError extends Error {
16
+ /** RFC 6901 pointer to the schema node that could not be converted. */
17
+ readonly pointer: string;
18
+ constructor(message: string, pointer: string);
19
+ }
20
+ /**
21
+ * Builds an East type from a JSON Schema document.
22
+ *
23
+ * @param schema - The schema document
24
+ * @returns The East type the schema describes
25
+ * @throws {JsonSchemaUnsupportedError} When the schema uses a keyword East's
26
+ * type system cannot express, naming the keyword and its RFC 6901 pointer
27
+ *
28
+ * @remarks
29
+ * This is the one place the full JSON Schema vocabulary is confronted, and it
30
+ * runs at build time, so nothing it rejects can reach a runtime.
31
+ *
32
+ * A document emitted by {@link jsonSchemaFor} carries `x-east-type`
33
+ * annotations and inverts exactly — JSON Schema alone cannot tell `DateTime`
34
+ * from a `String` with `format: date-time`, `Set` from `Array`, or `Dict`
35
+ * from an array of two-property objects. A foreign document without those
36
+ * annotations still converts, under the structural mapping below, but does
37
+ * not promise to round-trip:
38
+ *
39
+ * | schema | East type |
40
+ * |---|---|
41
+ * | `{"type":"null"}`, or OpenAPI 3.0's `nullable` + `enum: [null]` | `Null` |
42
+ * | `{"type":"boolean"}` | `Boolean` |
43
+ * | `{"type":"string"}` | `String` |
44
+ * | `{"type":"number"}`, `{"type":"integer"}` | `Float`, `Integer` |
45
+ * | `{"type":"array","items":X}` | `Array<X>` |
46
+ * | a closed object with `required` covering every property | `Struct` |
47
+ * | `oneOf` of objects tagged by a constant `type` | `Variant` |
48
+ *
49
+ * OpenAPI 3.0's `nullable: true` beside a type is refused rather than dropped:
50
+ * East JSON has no bare null for any type but `Null`, so the only reading
51
+ * would silently admit a schema whose nulls the reader then rejects — model
52
+ * the value as an Option instead.
53
+ *
54
+ * Definitions are resolved through `$defs` or `definitions`, whichever the
55
+ * document uses. Cycles among definitions become `RecursiveType`s, one per
56
+ * cycle group: `Node → NodeList → Node`, the ordinary way a recursive schema is
57
+ * written, is the single type `RecursiveType(self => Struct({ children:
58
+ * Array(self) }))` with the alias inlined. A group whose cycles do not all pass
59
+ * through one definition would need two binders, which East does not support,
60
+ * and is refused naming the group.
61
+ *
62
+ * A `$schema` is honoured when present, and a release this cannot read — a
63
+ * draft-04 document, say — is refused by name instead of being structurally
64
+ * guessed at. It is not required: an OpenAPI 3.0 schema object is a fragment of
65
+ * a larger document and carries none, so demanding one would reject what
66
+ * `jsonSchemaFor(T, { draft: "openapi-3.0" })` emits.
67
+ *
68
+ * @example
69
+ * ```ts
70
+ * const T = typeFromJsonSchema(JSON.parse(readFileSync("contract.schema.json", "utf-8")));
71
+ * ```
72
+ */
73
+ export declare function typeFromJsonSchema(schema: JsonSchema): EastType;
74
+ //# sourceMappingURL=json_schema_to_type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json_schema_to_type.d.ts","sourceRoot":"","sources":["../../../src/serialization/json_schema_to_type.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAiBL,KAAK,QAAQ,EAEd,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,UAAU,EAAoC,MAAM,kBAAkB,CAAC;AAErF;;;;;;;GAOG;AACH,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,uEAAuE;IACvE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEb,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAK7C;AA2ID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,UAAU,GAAG,QAAQ,CAuB/D"}
@@ -0,0 +1,500 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ import { ArrayType, BlobType, BooleanType, DateTimeType, DictType, FloatType, IntegerType, MatrixType, NullType, RecursiveType, RefType, SetType, StringType, StructType, VariantType, VectorType, } from "../types.js";
6
+ /**
7
+ * Raised when a schema cannot be expressed as an East type.
8
+ *
9
+ * @remarks
10
+ * Carries the RFC 6901 pointer to the offending node, because a contract
11
+ * document is large and "unsupported keyword" without a location is not
12
+ * actionable.
13
+ */
14
+ export class JsonSchemaUnsupportedError extends Error {
15
+ /** RFC 6901 pointer to the schema node that could not be converted. */
16
+ pointer;
17
+ constructor(message, pointer) {
18
+ super(pointer === "" ? message : `${message} (at ${pointer})`);
19
+ this.name = "JsonSchemaUnsupportedError";
20
+ this.pointer = pointer;
21
+ }
22
+ }
23
+ /** Keywords East's type system has no counterpart for, and why. */
24
+ const UNSUPPORTED = {
25
+ allOf: "East types have no intersection; rewrite it as one object schema",
26
+ not: "East types have no negation",
27
+ if: "East types have no conditionals",
28
+ then: "East types have no conditionals",
29
+ else: "East types have no conditionals",
30
+ anyOf: "East variants are discriminated; use oneOf with a constant tag per case",
31
+ patternProperties: "East has no pattern-keyed record; use a Dict encoding",
32
+ dependentSchemas: "East types have no conditionals",
33
+ dependentRequired: "East structs require every field",
34
+ propertyNames: "East has no constraint on property names",
35
+ unevaluatedProperties: "East structs are closed; use additionalProperties: false",
36
+ unevaluatedItems: "East arrays are homogeneous",
37
+ prefixItems: "East has no tuple type; use a Struct",
38
+ additionalItems: "East has no tuple type; use a Struct",
39
+ contains: "East has no containment constraint",
40
+ };
41
+ /** RFC 6901 pointer from a path of already-escaped-free segments. */
42
+ function pointerOf(path) {
43
+ if (path.length === 0)
44
+ return "";
45
+ return "/" + path.map(s => s.replace(/~/g, "~0").replace(/\//g, "~1")).join("/");
46
+ }
47
+ function fail(message, path) {
48
+ throw new JsonSchemaUnsupportedError(message, pointerOf(path));
49
+ }
50
+ function asSchema(v, path, what) {
51
+ if (v === null || typeof v !== "object" || Array.isArray(v)) {
52
+ fail(`expected ${what} to be a schema object`, path);
53
+ }
54
+ return v;
55
+ }
56
+ /** Whether a document object carries `key` itself — `in` would also find `Object.prototype`'s. */
57
+ function has(node, key) {
58
+ return Object.prototype.hasOwnProperty.call(node, key);
59
+ }
60
+ /**
61
+ * A schema scalar as a message spells it — JSON's `null`, `true` and `false`,
62
+ * anything else as itself — so the two language twins word a refusal the same.
63
+ */
64
+ function spell(value) {
65
+ if (value === null)
66
+ return "null";
67
+ if (value === true)
68
+ return "true";
69
+ if (value === false)
70
+ return "false";
71
+ return String(value);
72
+ }
73
+ /** The `$schema` values this converter recognises, normalised, and the release each names. */
74
+ const SCHEMA_URI_DRAFTS = {
75
+ "https://json-schema.org/draft/2020-12/schema": "2020-12",
76
+ "https://json-schema.org/draft-07/schema": "draft-07",
77
+ };
78
+ /**
79
+ * The release a document declares.
80
+ *
81
+ * @throws {JsonSchemaUnsupportedError} On a release this converter cannot read
82
+ *
83
+ * @remarks
84
+ * A document that declares a release is taken at its word, so one written for
85
+ * draft-04 (or a release later than these) is refused by name rather than
86
+ * structurally guessed at and quietly mis-read. The scheme and a trailing `#`
87
+ * carry no meaning in a `$schema` value, so both are normalised away.
88
+ */
89
+ function draftOfSchemaUri(uri, path) {
90
+ const key = uri.replace(/#$/, "").replace(/^http:/, "https:");
91
+ const draft = SCHEMA_URI_DRAFTS[key];
92
+ if (draft === undefined) {
93
+ fail(`typeFromJsonSchema cannot read the JSON Schema release "${uri}" — it reads 2020-12, ` +
94
+ "draft-07, and OpenAPI 3.0 schema objects, which carry no $schema of their own", path);
95
+ }
96
+ return draft;
97
+ }
98
+ /**
99
+ * Where a document keeps its definitions.
100
+ *
101
+ * @remarks
102
+ * The declared release says which keyword to expect, but a document that
103
+ * declares one and uses the other still resolves: only the prefix its `$ref`s
104
+ * are written against actually matters, and that is read back from whichever
105
+ * keyword is present.
106
+ */
107
+ function definitionsOf(root, draft) {
108
+ const asDefs = (v) => v !== undefined && typeof v === "object" && v !== null && !Array.isArray(v)
109
+ ? v
110
+ : null;
111
+ const order = draft === "draft-07" ? ["definitions", "$defs"] : ["$defs", "definitions"];
112
+ for (const keyword of order) {
113
+ const defs = asDefs(root[keyword]);
114
+ if (defs !== null)
115
+ return { defs, keyword };
116
+ }
117
+ return { defs: {}, keyword: draft === "draft-07" ? "definitions" : "$defs" };
118
+ }
119
+ /** The definition name a local `$ref` points at, or null when it is not local. */
120
+ function refTarget(ref, keyword) {
121
+ const prefix = `#/${keyword}/`;
122
+ if (!ref.startsWith(prefix))
123
+ return null;
124
+ return ref.slice(prefix.length).replace(/~1/g, "/").replace(/~0/g, "~");
125
+ }
126
+ /**
127
+ * Builds an East type from a JSON Schema document.
128
+ *
129
+ * @param schema - The schema document
130
+ * @returns The East type the schema describes
131
+ * @throws {JsonSchemaUnsupportedError} When the schema uses a keyword East's
132
+ * type system cannot express, naming the keyword and its RFC 6901 pointer
133
+ *
134
+ * @remarks
135
+ * This is the one place the full JSON Schema vocabulary is confronted, and it
136
+ * runs at build time, so nothing it rejects can reach a runtime.
137
+ *
138
+ * A document emitted by {@link jsonSchemaFor} carries `x-east-type`
139
+ * annotations and inverts exactly — JSON Schema alone cannot tell `DateTime`
140
+ * from a `String` with `format: date-time`, `Set` from `Array`, or `Dict`
141
+ * from an array of two-property objects. A foreign document without those
142
+ * annotations still converts, under the structural mapping below, but does
143
+ * not promise to round-trip:
144
+ *
145
+ * | schema | East type |
146
+ * |---|---|
147
+ * | `{"type":"null"}`, or OpenAPI 3.0's `nullable` + `enum: [null]` | `Null` |
148
+ * | `{"type":"boolean"}` | `Boolean` |
149
+ * | `{"type":"string"}` | `String` |
150
+ * | `{"type":"number"}`, `{"type":"integer"}` | `Float`, `Integer` |
151
+ * | `{"type":"array","items":X}` | `Array<X>` |
152
+ * | a closed object with `required` covering every property | `Struct` |
153
+ * | `oneOf` of objects tagged by a constant `type` | `Variant` |
154
+ *
155
+ * OpenAPI 3.0's `nullable: true` beside a type is refused rather than dropped:
156
+ * East JSON has no bare null for any type but `Null`, so the only reading
157
+ * would silently admit a schema whose nulls the reader then rejects — model
158
+ * the value as an Option instead.
159
+ *
160
+ * Definitions are resolved through `$defs` or `definitions`, whichever the
161
+ * document uses. Cycles among definitions become `RecursiveType`s, one per
162
+ * cycle group: `Node → NodeList → Node`, the ordinary way a recursive schema is
163
+ * written, is the single type `RecursiveType(self => Struct({ children:
164
+ * Array(self) }))` with the alias inlined. A group whose cycles do not all pass
165
+ * through one definition would need two binders, which East does not support,
166
+ * and is refused naming the group.
167
+ *
168
+ * A `$schema` is honoured when present, and a release this cannot read — a
169
+ * draft-04 document, say — is refused by name instead of being structurally
170
+ * guessed at. It is not required: an OpenAPI 3.0 schema object is a fragment of
171
+ * a larger document and carries none, so demanding one would reject what
172
+ * `jsonSchemaFor(T, { draft: "openapi-3.0" })` emits.
173
+ *
174
+ * @example
175
+ * ```ts
176
+ * const T = typeFromJsonSchema(JSON.parse(readFileSync("contract.schema.json", "utf-8")));
177
+ * ```
178
+ */
179
+ export function typeFromJsonSchema(schema) {
180
+ // A declared release is honoured; its absence is not an error, because an
181
+ // OpenAPI 3.0 schema object is a fragment of a larger document and carries no
182
+ // $schema of its own — refusing that would refuse what jsonSchemaFor writes
183
+ // for `draft: "openapi-3.0"`. An explicit null is present, not absent.
184
+ let draft;
185
+ if (has(schema, "$schema")) {
186
+ const declared = schema["$schema"];
187
+ if (typeof declared !== "string") {
188
+ fail("typeFromJsonSchema expected \"$schema\" to be a string", ["$schema"]);
189
+ }
190
+ draft = draftOfSchemaUri(declared, ["$schema"]);
191
+ }
192
+ const { defs, keyword } = definitionsOf(schema, draft);
193
+ const ctx = {
194
+ defsKeyword: keyword,
195
+ defs,
196
+ groups: cycleGroups(defs, keyword),
197
+ building: new Map(),
198
+ done: new Map(),
199
+ };
200
+ return build(schema, ctx, []);
201
+ }
202
+ /**
203
+ * The cyclic groups among the definitions, each with the one definition its
204
+ * cycles all pass through.
205
+ *
206
+ * @throws {JsonSchemaUnsupportedError} On a group whose cycles do not all
207
+ * pass through one definition — East binds one `RecursiveType` per group, so
208
+ * such a group would need two
209
+ *
210
+ * @remarks
211
+ * East's rule is one recursive binder per strongly connected group of
212
+ * definitions, not one definition per cycle. The binder is the first
213
+ * definition, in document order, whose removal leaves the rest of its group
214
+ * acyclic; document order alone decides it, so the two language twins choose
215
+ * the same one. Reachability is a closure, never a walk that stops at its
216
+ * first hit, so nothing here depends on the order `$ref`s appear in.
217
+ */
218
+ function cycleGroups(defs, keyword) {
219
+ const names = Object.keys(defs);
220
+ const edges = new Map();
221
+ for (const name of names) {
222
+ const seen = new Set();
223
+ collectRefs(defs[name], keyword, seen);
224
+ edges.set(name, [...seen].filter(target => has(defs, target)));
225
+ }
226
+ /** Every definition reachable from `from` through definitions `allowed` admits. */
227
+ const reach = (from, allowed) => {
228
+ const out = new Set();
229
+ const stack = [from];
230
+ while (stack.length > 0) {
231
+ const at = stack.pop();
232
+ for (const next of edges.get(at) ?? []) {
233
+ if (!allowed(next) || out.has(next))
234
+ continue;
235
+ out.add(next);
236
+ stack.push(next);
237
+ }
238
+ }
239
+ return out;
240
+ };
241
+ const closure = new Map();
242
+ for (const name of names)
243
+ closure.set(name, reach(name, () => true));
244
+ const groups = new Map();
245
+ for (const name of names) {
246
+ if (groups.has(name) || !closure.get(name).has(name))
247
+ continue;
248
+ const members = names.filter(other => other === name || (closure.get(name).has(other) && closure.get(other).has(name)));
249
+ const inGroup = new Set(members);
250
+ let binder = null;
251
+ for (const candidate of members) {
252
+ const allowed = (other) => inGroup.has(other) && other !== candidate;
253
+ if (members.every(member => member === candidate || !reach(member, allowed).has(member))) {
254
+ binder = candidate;
255
+ break;
256
+ }
257
+ }
258
+ if (binder === null) {
259
+ const quoted = members.map(member => `"${member}"`);
260
+ const list = `${quoted.slice(0, -1).join(", ")} and ${quoted[quoted.length - 1]}`;
261
+ throw new JsonSchemaUnsupportedError(`definitions ${list} are mutually recursive in a way East cannot express — every cycle ` +
262
+ "among them must pass through one definition, and East binds one RecursiveType per group", pointerOf([keyword, name]));
263
+ }
264
+ const group = { members, binder };
265
+ for (const member of members)
266
+ groups.set(member, group);
267
+ }
268
+ return groups;
269
+ }
270
+ /** Every local definition name referenced anywhere inside a schema node. */
271
+ function collectRefs(node, keyword, out) {
272
+ if (node === null || typeof node !== "object")
273
+ return;
274
+ if (Array.isArray(node)) {
275
+ for (const item of node)
276
+ collectRefs(item, keyword, out);
277
+ return;
278
+ }
279
+ for (const [key, value] of Object.entries(node)) {
280
+ if (key === "$ref" && typeof value === "string") {
281
+ const target = refTarget(value, keyword);
282
+ if (target !== null)
283
+ out.add(target);
284
+ continue;
285
+ }
286
+ collectRefs(value, keyword, out);
287
+ }
288
+ }
289
+ function build(node, ctx, path) {
290
+ for (const [keyword, reason] of Object.entries(UNSUPPORTED)) {
291
+ if (has(node, keyword)) {
292
+ fail(`typeFromJsonSchema cannot express "${keyword}" — ${reason}`, [...path, keyword]);
293
+ }
294
+ }
295
+ // OpenAPI 3.0 spells "this or null" as `nullable: true`. East JSON has no
296
+ // bare null for any type but Null itself — an Option is a tagged object — so
297
+ // the only reading is the Null spelling: `nullable` with no type, $ref, oneOf
298
+ // or annotation. Beside anything else it would be dropped silently, and the
299
+ // reader would then refuse the nulls the partner's contract permits.
300
+ if (node["nullable"] === true
301
+ && (has(node, "type") || has(node, "$ref") || has(node, "oneOf") || has(node, "x-east-type"))) {
302
+ fail("typeFromJsonSchema cannot express \"nullable\" beside a type — East JSON has no bare null " +
303
+ "for it; model the value as an Option (a oneOf tagged none and some)", [...path, "nullable"]);
304
+ }
305
+ const ref = node["$ref"];
306
+ if (typeof ref === "string")
307
+ return buildRef(ref, ctx, [...path, "$ref"]);
308
+ // An annotated document says outright what it came from.
309
+ const annotation = node["x-east-type"];
310
+ if (typeof annotation === "string")
311
+ return buildAnnotated(annotation, node, ctx, path);
312
+ if (has(node, "oneOf"))
313
+ return buildVariant(node, ctx, path);
314
+ // OpenAPI 3.0 has no "null" type and spells it with `nullable`.
315
+ if (!has(node, "type") && node["nullable"] === true)
316
+ return NullType;
317
+ const type = node["type"];
318
+ if (Array.isArray(type)) {
319
+ fail(`typeFromJsonSchema cannot express a union of primitive types [${type.map(spell).join(", ")}] — ` +
320
+ "East unions are discriminated variants", [...path, "type"]);
321
+ }
322
+ switch (type) {
323
+ case "null": return NullType;
324
+ case "boolean": return BooleanType;
325
+ case "string": return StringType;
326
+ case "number": return FloatType;
327
+ case "integer": return IntegerType;
328
+ case "array": return ArrayType(buildItems(node, ctx, path));
329
+ case "object": return buildStruct(node, ctx, path);
330
+ case undefined:
331
+ fail("typeFromJsonSchema needs a \"type\" (or a $ref, oneOf, or x-east-type annotation) — " +
332
+ "an unconstrained schema has no East type", path);
333
+ break;
334
+ default:
335
+ fail(`typeFromJsonSchema does not recognise the type "${spell(type)}"`, [...path, "type"]);
336
+ }
337
+ }
338
+ function buildRef(ref, ctx, path) {
339
+ const name = refTarget(ref, ctx.defsKeyword);
340
+ if (name === null) {
341
+ fail(`typeFromJsonSchema cannot resolve "${ref}" — only local #/${ctx.defsKeyword}/… references are supported`, path);
342
+ }
343
+ if (!has(ctx.defs, name)) {
344
+ fail(`typeFromJsonSchema cannot resolve "${ref}" — no such definition`, path);
345
+ }
346
+ const defPath = [ctx.defsKeyword, name];
347
+ const def = asSchema(ctx.defs[name], defPath, `definition "${name}"`);
348
+ const group = ctx.groups.get(name);
349
+ if (group === undefined) {
350
+ // On no cycle: nothing it builds captures a marker, so build once and share.
351
+ const cached = ctx.done.get(name);
352
+ if (cached !== undefined)
353
+ return cached;
354
+ const built = build(def, ctx, defPath);
355
+ ctx.done.set(name, built);
356
+ return built;
357
+ }
358
+ const scope = ctx.building.get(group.binder);
359
+ if (name === group.binder) {
360
+ if (scope !== undefined)
361
+ return scope.marker;
362
+ const cached = ctx.done.get(name);
363
+ if (cached !== undefined)
364
+ return cached;
365
+ const built = RecursiveType(self => {
366
+ ctx.building.set(name, { marker: self, built: new Map() });
367
+ try {
368
+ return build(def, ctx, defPath);
369
+ }
370
+ finally {
371
+ ctx.building.delete(name);
372
+ }
373
+ });
374
+ ctx.done.set(name, built);
375
+ return built;
376
+ }
377
+ if (scope !== undefined) {
378
+ // Inside its binder: the member captures the marker, so it is built inline
379
+ // and shared only within this scope.
380
+ const cached = scope.built.get(name);
381
+ if (cached !== undefined)
382
+ return cached;
383
+ const built = build(def, ctx, defPath);
384
+ scope.built.set(name, built);
385
+ return built;
386
+ }
387
+ // Outside its binder: references to the binder resolve to the completed
388
+ // RecursiveType, so the member captures nothing and can be shared.
389
+ const cached = ctx.done.get(name);
390
+ if (cached !== undefined)
391
+ return cached;
392
+ const built = build(def, ctx, defPath);
393
+ ctx.done.set(name, built);
394
+ return built;
395
+ }
396
+ function buildItems(node, ctx, path) {
397
+ if (!has(node, "items")) {
398
+ fail("typeFromJsonSchema needs \"items\" on an array — East arrays are homogeneous", path);
399
+ }
400
+ return build(asSchema(node["items"], [...path, "items"], "items"), ctx, [...path, "items"]);
401
+ }
402
+ function buildStruct(node, ctx, path) {
403
+ const additional = node["additionalProperties"];
404
+ if (additional !== false) {
405
+ fail("typeFromJsonSchema needs \"additionalProperties\": false on an object — " +
406
+ "East structs are closed, so an open record has no East type", path);
407
+ }
408
+ if (!has(node, "properties")) {
409
+ fail("typeFromJsonSchema needs \"properties\" on an object", path);
410
+ }
411
+ const props = asSchema(node["properties"], [...path, "properties"], "properties");
412
+ const required = node["required"];
413
+ const requiredNames = new Set(Array.isArray(required) ? required.filter((r) => typeof r === "string") : []);
414
+ // Names come from the document, so the accumulator must have no prototype:
415
+ // assigning "__proto__" on a plain object sets the prototype instead of a
416
+ // field, silently dropping it. The python twin uses a list of pairs.
417
+ const fields = Object.create(null);
418
+ for (const [name, value] of Object.entries(props)) {
419
+ if (!requiredNames.has(name)) {
420
+ fail(`typeFromJsonSchema needs every property required — "${name}" is optional, and East ` +
421
+ "structs have no absent field; model it as an Option", [...path, "properties", name]);
422
+ }
423
+ fields[name] = build(asSchema(value, [...path, "properties", name], `property "${name}"`), ctx, [...path, "properties", name]);
424
+ }
425
+ return StructType(fields);
426
+ }
427
+ /** The constant tag an alternative pins, or null when it pins none. */
428
+ function tagOf(alternative) {
429
+ const properties = alternative["properties"];
430
+ if (properties === null || typeof properties !== "object" || Array.isArray(properties))
431
+ return null;
432
+ const tag = properties["type"];
433
+ if (tag === null || typeof tag !== "object" || Array.isArray(tag))
434
+ return null;
435
+ const constant = tag["const"];
436
+ if (typeof constant === "string")
437
+ return constant;
438
+ // draft-04 (and so OpenAPI 3.0) has no `const`; a single-valued enum is the
439
+ // same assertion.
440
+ const choices = tag["enum"];
441
+ if (Array.isArray(choices) && choices.length === 1 && typeof choices[0] === "string") {
442
+ return choices[0];
443
+ }
444
+ return null;
445
+ }
446
+ function buildVariant(node, ctx, path) {
447
+ const alternatives = node["oneOf"];
448
+ if (!Array.isArray(alternatives) || alternatives.length === 0) {
449
+ fail("typeFromJsonSchema needs a non-empty \"oneOf\"", [...path, "oneOf"]);
450
+ }
451
+ // As above — and reading `cases["constructor"]` on a plain object finds
452
+ // Object.prototype's, which reported a false duplicate case.
453
+ const cases = Object.create(null);
454
+ for (let i = 0; i < alternatives.length; i++) {
455
+ const altPath = [...path, "oneOf", String(i)];
456
+ const alternative = asSchema(alternatives[i], altPath, `oneOf[${i}]`);
457
+ const tag = tagOf(alternative);
458
+ if (tag === null) {
459
+ fail("typeFromJsonSchema needs each oneOf alternative to pin a constant \"type\" tag — " +
460
+ "an untagged union is not an East variant", altPath);
461
+ }
462
+ const properties = asSchema(alternative["properties"], [...altPath, "properties"], "properties");
463
+ if (!has(properties, "value")) {
464
+ fail("typeFromJsonSchema needs a \"value\" property on each variant case", [...altPath, "properties"]);
465
+ }
466
+ if (cases[tag] !== undefined) {
467
+ fail(`typeFromJsonSchema found the variant case "${tag}" twice`, altPath);
468
+ }
469
+ cases[tag] = build(asSchema(properties["value"], [...altPath, "properties", "value"], "value"), ctx, [...altPath, "properties", "value"]);
470
+ }
471
+ return VariantType(cases);
472
+ }
473
+ function buildAnnotated(annotation, node, ctx, path) {
474
+ switch (annotation) {
475
+ case "Integer": return IntegerType;
476
+ case "Float": return FloatType;
477
+ case "DateTime": return DateTimeType;
478
+ case "Blob": return BlobType;
479
+ case "Set": return SetType(buildItems(node, ctx, path));
480
+ case "Vector": return VectorType(buildItems(node, ctx, path));
481
+ case "Matrix": {
482
+ const rows = asSchema(node["items"], [...path, "items"], "items");
483
+ return MatrixType(buildItems(rows, ctx, [...path, "items"]));
484
+ }
485
+ case "Dict": {
486
+ const entry = asSchema(node["items"], [...path, "items"], "items");
487
+ const entryPath = [...path, "items"];
488
+ const properties = asSchema(entry["properties"], [...entryPath, "properties"], "properties");
489
+ if (!has(properties, "key") || !has(properties, "value")) {
490
+ fail("typeFromJsonSchema needs \"key\" and \"value\" on a Dict entry", [...entryPath, "properties"]);
491
+ }
492
+ return DictType(build(asSchema(properties["key"], [...entryPath, "properties", "key"], "key"), ctx, [...entryPath, "properties", "key"]), build(asSchema(properties["value"], [...entryPath, "properties", "value"], "value"), ctx, [...entryPath, "properties", "value"]));
493
+ }
494
+ case "Ref":
495
+ return RefType(buildItems(node, ctx, path));
496
+ default:
497
+ fail(`typeFromJsonSchema does not recognise the x-east-type "${annotation}"`, [...path, "x-east-type"]);
498
+ }
499
+ }
500
+ //# sourceMappingURL=json_schema_to_type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json_schema_to_type.js","sourceRoot":"","sources":["../../../src/serialization/json_schema_to_type.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=json_schema_to_type.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json_schema_to_type.spec.d.ts","sourceRoot":"","sources":["../../../src/serialization/json_schema_to_type.spec.ts"],"names":[],"mappings":""}