effect 3.11.3 → 3.11.5

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 (63) hide show
  1. package/dist/cjs/Cron.js +122 -68
  2. package/dist/cjs/Cron.js.map +1 -1
  3. package/dist/cjs/Effect.js.map +1 -1
  4. package/dist/cjs/Function.js +1 -1
  5. package/dist/cjs/JSONSchema.js +226 -134
  6. package/dist/cjs/JSONSchema.js.map +1 -1
  7. package/dist/cjs/Schema.js +29 -10
  8. package/dist/cjs/Schema.js.map +1 -1
  9. package/dist/cjs/SchemaAST.js +34 -9
  10. package/dist/cjs/SchemaAST.js.map +1 -1
  11. package/dist/cjs/internal/core.js +11 -9
  12. package/dist/cjs/internal/core.js.map +1 -1
  13. package/dist/cjs/internal/effect/circular.js +2 -2
  14. package/dist/cjs/internal/effect/circular.js.map +1 -1
  15. package/dist/cjs/internal/fiberRuntime.js +1 -1
  16. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  17. package/dist/cjs/internal/mailbox.js +4 -4
  18. package/dist/cjs/internal/mailbox.js.map +1 -1
  19. package/dist/cjs/internal/version.js +1 -1
  20. package/dist/dts/Cron.d.ts +1 -1
  21. package/dist/dts/Cron.d.ts.map +1 -1
  22. package/dist/dts/Effect.d.ts +50 -19
  23. package/dist/dts/Effect.d.ts.map +1 -1
  24. package/dist/dts/Function.d.ts +1 -1
  25. package/dist/dts/JSONSchema.d.ts +57 -1
  26. package/dist/dts/JSONSchema.d.ts.map +1 -1
  27. package/dist/dts/Schema.d.ts +1 -1
  28. package/dist/dts/Schema.d.ts.map +1 -1
  29. package/dist/dts/SchemaAST.d.ts +1 -1
  30. package/dist/dts/SchemaAST.d.ts.map +1 -1
  31. package/dist/dts/internal/core.d.ts +5 -0
  32. package/dist/dts/internal/core.d.ts.map +1 -1
  33. package/dist/esm/Cron.js +121 -67
  34. package/dist/esm/Cron.js.map +1 -1
  35. package/dist/esm/Effect.js.map +1 -1
  36. package/dist/esm/Function.js +1 -1
  37. package/dist/esm/JSONSchema.js +224 -133
  38. package/dist/esm/JSONSchema.js.map +1 -1
  39. package/dist/esm/Schema.js +29 -10
  40. package/dist/esm/Schema.js.map +1 -1
  41. package/dist/esm/SchemaAST.js +31 -7
  42. package/dist/esm/SchemaAST.js.map +1 -1
  43. package/dist/esm/internal/core.js +8 -5
  44. package/dist/esm/internal/core.js.map +1 -1
  45. package/dist/esm/internal/effect/circular.js +2 -2
  46. package/dist/esm/internal/effect/circular.js.map +1 -1
  47. package/dist/esm/internal/fiberRuntime.js +1 -1
  48. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  49. package/dist/esm/internal/mailbox.js +4 -4
  50. package/dist/esm/internal/mailbox.js.map +1 -1
  51. package/dist/esm/internal/version.js +1 -1
  52. package/package.json +1 -1
  53. package/src/Cron.ts +154 -66
  54. package/src/Effect.ts +68 -20
  55. package/src/Function.ts +1 -1
  56. package/src/JSONSchema.ts +233 -134
  57. package/src/Schema.ts +25 -10
  58. package/src/SchemaAST.ts +31 -7
  59. package/src/internal/core.ts +16 -5
  60. package/src/internal/effect/circular.ts +2 -2
  61. package/src/internal/fiberRuntime.ts +1 -1
  62. package/src/internal/mailbox.ts +4 -4
  63. package/src/internal/version.ts +1 -1
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.make = exports.DEFINITION_PREFIX = void 0;
6
+ exports.make = exports.fromAST = void 0;
7
7
  var errors_ = _interopRequireWildcard(require("./internal/schema/errors.js"));
8
8
  var Option = _interopRequireWildcard(require("./Option.js"));
9
9
  var Predicate = _interopRequireWildcard(require("./Predicate.js"));
@@ -20,34 +20,70 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
20
20
  * @since 3.10.0
21
21
  */
22
22
  const make = schema => {
23
- const $defs = {};
24
- const jsonSchema = go(schema.ast, $defs, true, []);
25
- const out = {
26
- $schema,
27
- ...jsonSchema
28
- };
29
- // clean up self-referencing entries
30
- for (const id in $defs) {
31
- if ($defs[id]["$ref"] === get$ref(id)) {
32
- delete $defs[id];
33
- }
34
- }
35
- if (!Record.isEmptyRecord($defs)) {
36
- out.$defs = $defs;
23
+ const definitions = {};
24
+ const ast = AST.isTransformation(schema.ast) && isParseJsonTransformation(schema.ast.from)
25
+ // Special case top level `parseJson` transformations
26
+ ? schema.ast.to : schema.ast;
27
+ const out = fromAST(ast, {
28
+ definitions
29
+ });
30
+ out.$schema = $schema;
31
+ if (!Record.isEmptyRecord(definitions)) {
32
+ out.$defs = definitions;
37
33
  }
38
34
  return out;
39
35
  };
36
+ /**
37
+ * Returns a JSON Schema with additional options and definitions.
38
+ *
39
+ * **Warning**
40
+ *
41
+ * This function is experimental and subject to change.
42
+ *
43
+ * **Details**
44
+ *
45
+ * - `definitions`: A record of definitions that are included in the schema.
46
+ * - `definitionPath`: The path to the definitions within the schema (defaults
47
+ * to "#/$defs/").
48
+ * - `target`: Which spec to target. Possible values are:
49
+ * - `'jsonSchema7'`: JSON Schema draft-07 (default behavior).
50
+ * - `'jsonSchema2019-09'`: JSON Schema draft-2019-09.
51
+ * - `'openApi3.1'`: OpenAPI 3.1.
52
+ * - `topLevelReferenceStrategy`: Controls the handling of the top-level
53
+ * reference. Possible values are:
54
+ * - `"keep"`: Keep the top-level reference (default behavior).
55
+ * - `"skip"`: Skip the top-level reference.
56
+ *
57
+ * @category encoding
58
+ * @since 3.11.5
59
+ * @experimental
60
+ */
40
61
  exports.make = make;
41
- const anyJsonSchema = {
42
- $id: "/schemas/any"
62
+ const fromAST = (ast, options) => {
63
+ const definitionPath = options.definitionPath ?? "#/$defs/";
64
+ const getRef = id => definitionPath + id;
65
+ const target = options.target ?? "jsonSchema7";
66
+ const handleIdentifier = options.topLevelReferenceStrategy !== "skip";
67
+ return go(ast, options.definitions, handleIdentifier, [], {
68
+ getRef,
69
+ target
70
+ });
71
+ };
72
+ exports.fromAST = fromAST;
73
+ const constNever = {
74
+ "$id": "/schemas/never",
75
+ "not": {}
43
76
  };
44
- const unknownJsonSchema = {
45
- $id: "/schemas/unknown"
77
+ const constAny = {
78
+ "$id": "/schemas/any"
46
79
  };
47
- const voidJsonSchema = {
48
- $id: "/schemas/void"
80
+ const constUnknown = {
81
+ "$id": "/schemas/unknown"
49
82
  };
50
- const objectJsonSchema = {
83
+ const constVoid = {
84
+ "$id": "/schemas/void"
85
+ };
86
+ const constAnyObject = {
51
87
  "$id": "/schemas/object",
52
88
  "anyOf": [{
53
89
  "type": "object"
@@ -55,14 +91,14 @@ const objectJsonSchema = {
55
91
  "type": "array"
56
92
  }]
57
93
  };
58
- const empty = () => ({
94
+ const constEmpty = {
59
95
  "$id": "/schemas/{}",
60
96
  "anyOf": [{
61
97
  "type": "object"
62
98
  }, {
63
99
  "type": "array"
64
100
  }]
65
- });
101
+ };
66
102
  const $schema = "http://json-schema.org/draft-07/schema#";
67
103
  const getJsonSchemaAnnotations = annotated => Record.getSomes({
68
104
  description: AST.getDescriptionAnnotation(annotated),
@@ -95,90 +131,104 @@ const getASTJsonSchemaAnnotations = ast => {
95
131
  const pruneUndefinedFromPropertySignature = ast => {
96
132
  if (Option.isNone(AST.getJSONSchemaAnnotation(ast))) {
97
133
  switch (ast._tag) {
134
+ case "UndefinedKeyword":
135
+ return AST.neverKeyword;
98
136
  case "Union":
99
137
  {
100
- const types = ast.types.filter(type => !AST.isUndefinedKeyword(type));
101
- if (types.length < ast.types.length) {
102
- return AST.Union.make(types, ast.annotations);
138
+ const types = [];
139
+ let hasUndefined = false;
140
+ for (const type of ast.types) {
141
+ const pruned = pruneUndefinedFromPropertySignature(type);
142
+ if (pruned) {
143
+ hasUndefined = true;
144
+ if (!AST.isNeverKeyword(pruned)) {
145
+ types.push(pruned);
146
+ }
147
+ } else {
148
+ types.push(type);
149
+ }
150
+ }
151
+ if (hasUndefined) {
152
+ return AST.Union.make(types);
103
153
  }
104
154
  break;
105
155
  }
156
+ case "Suspend":
157
+ return pruneUndefinedFromPropertySignature(ast.f());
106
158
  case "Transformation":
107
- return pruneUndefinedFromPropertySignature(isParseJsonTransformation(ast.from) ? ast.to : ast.from);
159
+ return pruneUndefinedFromPropertySignature(ast.from);
108
160
  }
109
161
  }
110
162
  };
111
- /** @internal */
112
- const DEFINITION_PREFIX = exports.DEFINITION_PREFIX = "#/$defs/";
113
- const get$ref = id => `${DEFINITION_PREFIX}${id}`;
114
- const getRefinementInnerTransformation = ast => {
115
- switch (ast.from._tag) {
116
- case "Transformation":
117
- return ast.from;
118
- case "Refinement":
119
- return getRefinementInnerTransformation(ast.from);
120
- case "Suspend":
121
- {
122
- const from = ast.from.f();
123
- if (AST.isRefinement(from)) {
124
- return getRefinementInnerTransformation(from);
125
- }
126
- }
127
- }
128
- };
129
163
  const isParseJsonTransformation = ast => ast.annotations[AST.SchemaIdAnnotationId] === AST.ParseJsonSchemaId;
130
- function merge(a, b) {
131
- return {
132
- ...a,
133
- ...b
134
- };
135
- }
136
164
  const isOverrideAnnotation = jsonSchema => {
137
165
  return "type" in jsonSchema || "oneOf" in jsonSchema || "anyOf" in jsonSchema || "const" in jsonSchema || "enum" in jsonSchema || "$ref" in jsonSchema;
138
166
  };
139
- const go = (ast, $defs, handleIdentifier, path) => {
140
- const hook = AST.getJSONSchemaAnnotation(ast);
141
- if (Option.isSome(hook)) {
142
- const handler = hook.value;
143
- if (AST.isRefinement(ast)) {
144
- const t = getRefinementInnerTransformation(ast);
145
- if (t === undefined) {
146
- try {
147
- return {
148
- ...go(ast.from, $defs, true, path),
149
- ...getJsonSchemaAnnotations(ast),
150
- ...handler
151
- };
152
- } catch (e) {
153
- return {
154
- ...getJsonSchemaAnnotations(ast),
155
- ...handler
156
- };
157
- }
158
- } else if (!isOverrideAnnotation(handler)) {
159
- return go(t, $defs, true, path);
160
- }
167
+ // Returns true if the schema is an enum with no other properties.
168
+ // This is used to merge enums together.
169
+ const isEnumOnly = schema => "enum" in schema && Object.keys(schema).length === 1;
170
+ const mergeRefinements = (from, jsonSchema, annotations) => {
171
+ const out = {
172
+ ...from,
173
+ ...annotations,
174
+ ...jsonSchema
175
+ };
176
+ out.allOf ??= [];
177
+ const handle = (name, filter) => {
178
+ if (name in jsonSchema && name in from) {
179
+ out.allOf.unshift({
180
+ [name]: from[name]
181
+ });
182
+ out.allOf = out.allOf.filter(filter);
161
183
  }
162
- return handler;
163
- }
164
- const surrogate = AST.getSurrogateAnnotation(ast);
165
- if (Option.isSome(surrogate)) {
166
- return go(surrogate.value, $defs, handleIdentifier, path);
184
+ };
185
+ handle("minLength", i => i.minLength > jsonSchema.minLength);
186
+ handle("maxLength", i => i.maxLength < jsonSchema.maxLength);
187
+ handle("pattern", i => i.pattern !== jsonSchema.pattern);
188
+ handle("minItems", i => i.minItems > jsonSchema.minItems);
189
+ handle("maxItems", i => i.maxItems < jsonSchema.maxItems);
190
+ handle("minimum", i => i.minimum > jsonSchema.minimum);
191
+ handle("maximum", i => i.maximum < jsonSchema.maximum);
192
+ handle("exclusiveMinimum", i => i.exclusiveMinimum > jsonSchema.exclusiveMinimum);
193
+ handle("exclusiveMaximum", i => i.exclusiveMaximum < jsonSchema.exclusiveMaximum);
194
+ handle("multipleOf", i => i.multipleOf !== jsonSchema.multipleOf);
195
+ if (out.allOf.length === 0) {
196
+ delete out.allOf;
167
197
  }
168
- if (handleIdentifier && !AST.isTransformation(ast) && !AST.isRefinement(ast)) {
198
+ return out;
199
+ };
200
+ const go = (ast, $defs, handleIdentifier, path, options) => {
201
+ if (handleIdentifier) {
169
202
  const identifier = AST.getJSONIdentifier(ast);
170
203
  if (Option.isSome(identifier)) {
171
204
  const id = identifier.value;
172
205
  const out = {
173
- $ref: get$ref(id)
206
+ $ref: options.getRef(id)
174
207
  };
175
208
  if (!Record.has($defs, id)) {
176
209
  $defs[id] = out;
177
- $defs[id] = go(ast, $defs, false, path);
210
+ $defs[id] = go(ast, $defs, false, path, options);
178
211
  }
179
212
  return out;
180
213
  }
181
214
  }
215
+ const hook = AST.getJSONSchemaAnnotation(ast);
216
+ if (Option.isSome(hook)) {
217
+ const handler = hook.value;
218
+ if (AST.isRefinement(ast)) {
219
+ const t = AST.getTransformationFrom(ast);
220
+ if (t === undefined) {
221
+ return mergeRefinements(go(ast.from, $defs, handleIdentifier, path, options), handler, getJsonSchemaAnnotations(ast));
222
+ } else if (!isOverrideAnnotation(handler)) {
223
+ return go(t, $defs, handleIdentifier, path, options);
224
+ }
225
+ }
226
+ return handler;
227
+ }
228
+ const surrogate = AST.getSurrogateAnnotation(ast);
229
+ if (Option.isSome(surrogate)) {
230
+ return go(surrogate.value, $defs, handleIdentifier, path, options);
231
+ }
182
232
  switch (ast._tag) {
183
233
  case "Declaration":
184
234
  throw new Error(errors_.getJSONSchemaMissingAnnotationErrorMessage(path, ast));
@@ -186,13 +236,15 @@ const go = (ast, $defs, handleIdentifier, path) => {
186
236
  {
187
237
  const literal = ast.literal;
188
238
  if (literal === null) {
189
- return merge({
190
- enum: [null]
191
- }, getJsonSchemaAnnotations(ast));
239
+ return {
240
+ enum: [null],
241
+ ...getJsonSchemaAnnotations(ast)
242
+ };
192
243
  } else if (Predicate.isString(literal) || Predicate.isNumber(literal) || Predicate.isBoolean(literal)) {
193
- return merge({
194
- enum: [literal]
195
- }, getJsonSchemaAnnotations(ast));
244
+ return {
245
+ enum: [literal],
246
+ ...getJsonSchemaAnnotations(ast)
247
+ };
196
248
  }
197
249
  throw new Error(errors_.getJSONSchemaMissingAnnotationErrorMessage(path, ast));
198
250
  }
@@ -201,15 +253,30 @@ const go = (ast, $defs, handleIdentifier, path) => {
201
253
  case "UndefinedKeyword":
202
254
  throw new Error(errors_.getJSONSchemaMissingAnnotationErrorMessage(path, ast));
203
255
  case "VoidKeyword":
204
- return merge(voidJsonSchema, getJsonSchemaAnnotations(ast));
256
+ return {
257
+ ...constVoid,
258
+ ...getJsonSchemaAnnotations(ast)
259
+ };
205
260
  case "NeverKeyword":
206
- throw new Error(errors_.getJSONSchemaMissingAnnotationErrorMessage(path, ast));
261
+ return {
262
+ ...constNever,
263
+ ...getJsonSchemaAnnotations(ast)
264
+ };
207
265
  case "UnknownKeyword":
208
- return merge(unknownJsonSchema, getJsonSchemaAnnotations(ast));
266
+ return {
267
+ ...constUnknown,
268
+ ...getJsonSchemaAnnotations(ast)
269
+ };
209
270
  case "AnyKeyword":
210
- return merge(anyJsonSchema, getJsonSchemaAnnotations(ast));
271
+ return {
272
+ ...constAny,
273
+ ...getJsonSchemaAnnotations(ast)
274
+ };
211
275
  case "ObjectKeyword":
212
- return merge(objectJsonSchema, getJsonSchemaAnnotations(ast));
276
+ return {
277
+ ...constAnyObject,
278
+ ...getJsonSchemaAnnotations(ast)
279
+ };
213
280
  case "StringKeyword":
214
281
  return {
215
282
  type: "string",
@@ -231,8 +298,14 @@ const go = (ast, $defs, handleIdentifier, path) => {
231
298
  throw new Error(errors_.getJSONSchemaMissingAnnotationErrorMessage(path, ast));
232
299
  case "TupleType":
233
300
  {
234
- const elements = ast.elements.map((e, i) => merge(go(e.type, $defs, true, path.concat(i)), getJsonSchemaAnnotations(e)));
235
- const rest = ast.rest.map(annotatedAST => merge(go(annotatedAST.type, $defs, true, path), getJsonSchemaAnnotations(annotatedAST)));
301
+ const elements = ast.elements.map((e, i) => ({
302
+ ...go(e.type, $defs, true, path.concat(i), options),
303
+ ...getJsonSchemaAnnotations(e)
304
+ }));
305
+ const rest = ast.rest.map(annotatedAST => ({
306
+ ...go(annotatedAST.type, $defs, true, path, options),
307
+ ...getJsonSchemaAnnotations(annotatedAST)
308
+ }));
236
309
  const output = {
237
310
  type: "array"
238
311
  };
@@ -269,12 +342,18 @@ const go = (ast, $defs, handleIdentifier, path) => {
269
342
  output.maxItems = 0;
270
343
  }
271
344
  }
272
- return merge(output, getJsonSchemaAnnotations(ast));
345
+ return {
346
+ ...output,
347
+ ...getJsonSchemaAnnotations(ast)
348
+ };
273
349
  }
274
350
  case "TypeLiteral":
275
351
  {
276
352
  if (ast.propertySignatures.length === 0 && ast.indexSignatures.length === 0) {
277
- return merge(empty(), getJsonSchemaAnnotations(ast));
353
+ return {
354
+ ...constEmpty,
355
+ ...getJsonSchemaAnnotations(ast)
356
+ };
278
357
  }
279
358
  let patternProperties = undefined;
280
359
  let propertyNames = undefined;
@@ -283,12 +362,12 @@ const go = (ast, $defs, handleIdentifier, path) => {
283
362
  switch (parameter._tag) {
284
363
  case "StringKeyword":
285
364
  {
286
- patternProperties = go(is.type, $defs, true, path);
365
+ patternProperties = go(is.type, $defs, true, path, options);
287
366
  break;
288
367
  }
289
368
  case "TemplateLiteral":
290
369
  {
291
- patternProperties = go(is.type, $defs, true, path);
370
+ patternProperties = go(is.type, $defs, true, path, options);
292
371
  propertyNames = {
293
372
  type: "string",
294
373
  pattern: AST.getTemplateLiteralRegExp(parameter).source
@@ -297,8 +376,8 @@ const go = (ast, $defs, handleIdentifier, path) => {
297
376
  }
298
377
  case "Refinement":
299
378
  {
300
- patternProperties = go(is.type, $defs, true, path);
301
- propertyNames = go(parameter, $defs, true, path);
379
+ patternProperties = go(is.type, $defs, true, path, options);
380
+ propertyNames = go(parameter, $defs, true, path, options);
302
381
  break;
303
382
  }
304
383
  case "SymbolKeyword":
@@ -319,7 +398,10 @@ const go = (ast, $defs, handleIdentifier, path) => {
319
398
  const name = ps.name;
320
399
  if (Predicate.isString(name)) {
321
400
  const pruned = pruneUndefinedFromPropertySignature(ps.type);
322
- output.properties[name] = merge(go(pruned ? pruned : ps.type, $defs, true, path.concat(ps.name)), getJsonSchemaAnnotations(ps));
401
+ output.properties[name] = {
402
+ ...go(pruned ?? ps.type, $defs, true, path.concat(ps.name), options),
403
+ ...getJsonSchemaAnnotations(ps)
404
+ };
323
405
  // ---------------------------------------------
324
406
  // handle optional property signatures
325
407
  // ---------------------------------------------
@@ -342,67 +424,74 @@ const go = (ast, $defs, handleIdentifier, path) => {
342
424
  if (propertyNames !== undefined) {
343
425
  output.propertyNames = propertyNames;
344
426
  }
345
- return merge(output, getJsonSchemaAnnotations(ast));
427
+ return {
428
+ ...output,
429
+ ...getJsonSchemaAnnotations(ast)
430
+ };
346
431
  }
347
432
  case "Union":
348
433
  {
349
- const enums = [];
350
434
  const anyOf = [];
351
435
  for (const type of ast.types) {
352
- const schema = go(type, $defs, true, path);
436
+ const schema = go(type, $defs, true, path, options);
353
437
  if ("enum" in schema) {
354
438
  if (Object.keys(schema).length > 1) {
355
439
  anyOf.push(schema);
356
440
  } else {
357
- for (const e of schema.enum) {
358
- enums.push(e);
441
+ const last = anyOf[anyOf.length - 1];
442
+ if (last !== undefined && isEnumOnly(last)) {
443
+ for (const e of schema.enum) {
444
+ last.enum.push(e);
445
+ }
446
+ } else {
447
+ anyOf.push(schema);
359
448
  }
360
449
  }
361
450
  } else {
362
451
  anyOf.push(schema);
363
452
  }
364
453
  }
365
- if (anyOf.length === 0) {
366
- return merge({
367
- enum: enums
368
- }, getJsonSchemaAnnotations(ast));
454
+ if (anyOf.length === 1 && isEnumOnly(anyOf[0])) {
455
+ return {
456
+ enum: anyOf[0].enum,
457
+ ...getJsonSchemaAnnotations(ast)
458
+ };
369
459
  } else {
370
- if (enums.length >= 1) {
371
- anyOf.push({
372
- enum: enums
373
- });
374
- }
375
- return merge({
376
- anyOf
377
- }, getJsonSchemaAnnotations(ast));
460
+ return {
461
+ anyOf,
462
+ ...getJsonSchemaAnnotations(ast)
463
+ };
378
464
  }
379
465
  }
380
466
  case "Enums":
381
467
  {
382
- return merge({
468
+ return {
383
469
  $comment: "/schemas/enums",
384
470
  anyOf: ast.enums.map(e => ({
385
471
  title: e[0],
386
472
  enum: [e[1]]
387
- }))
388
- }, getJsonSchemaAnnotations(ast));
473
+ })),
474
+ ...getJsonSchemaAnnotations(ast)
475
+ };
389
476
  }
390
477
  case "Refinement":
391
478
  {
392
- if (AST.encodedBoundAST(ast) === ast) {
479
+ // The jsonSchema annotation is required only if the refinement does not have a transformation
480
+ if (AST.getTransformationFrom(ast) === undefined) {
393
481
  throw new Error(errors_.getJSONSchemaMissingAnnotationErrorMessage(path, ast));
394
482
  }
395
- return go(ast.from, $defs, true, path);
483
+ return go(ast.from, $defs, handleIdentifier, path, options);
396
484
  }
397
485
  case "TemplateLiteral":
398
486
  {
399
487
  const regex = AST.getTemplateLiteralRegExp(ast);
400
- return merge({
488
+ return {
401
489
  type: "string",
402
490
  title: String(ast),
403
491
  description: "a template literal",
404
- pattern: regex.source
405
- }, getJsonSchemaAnnotations(ast));
492
+ pattern: regex.source,
493
+ ...getJsonSchemaAnnotations(ast)
494
+ };
406
495
  }
407
496
  case "Suspend":
408
497
  {
@@ -410,16 +499,19 @@ const go = (ast, $defs, handleIdentifier, path) => {
410
499
  if (Option.isNone(identifier)) {
411
500
  throw new Error(errors_.getJSONSchemaMissingIdentifierAnnotationErrorMessage(path, ast));
412
501
  }
413
- return go(ast.f(), $defs, true, path);
502
+ return go(ast.f(), $defs, handleIdentifier, path, options);
414
503
  }
415
504
  case "Transformation":
416
505
  {
417
- // Properly handle S.parseJson transformations by focusing on
418
- // the 'to' side of the AST. This approach prevents the generation of useless schemas
419
- // derived from the 'from' side (type: string), ensuring the output matches the intended
420
- // complex schema type.
421
506
  if (isParseJsonTransformation(ast.from)) {
422
- return go(ast.to, $defs, true, path);
507
+ const out = {
508
+ "type": "string",
509
+ "contentMediaType": "application/json"
510
+ };
511
+ if (options.target !== "jsonSchema7") {
512
+ out["contentSchema"] = go(ast.to, $defs, handleIdentifier, path, options);
513
+ }
514
+ return out;
423
515
  }
424
516
  let next = ast.from;
425
517
  if (AST.isTypeLiteralTransformation(ast.transformation)) {
@@ -444,7 +536,7 @@ const go = (ast, $defs, handleIdentifier, path) => {
444
536
  });
445
537
  }
446
538
  }
447
- return go(next, $defs, true, path);
539
+ return go(next, $defs, handleIdentifier, path, options);
448
540
  }
449
541
  }
450
542
  };
@@ -1 +1 @@
1
- {"version":3,"file":"JSONSchema.js","names":["errors_","_interopRequireWildcard","require","Option","Predicate","Record","AST","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","make","schema","$defs","jsonSchema","go","ast","out","$schema","id","get$ref","isEmptyRecord","exports","anyJsonSchema","$id","unknownJsonSchema","voidJsonSchema","objectJsonSchema","empty","getJsonSchemaAnnotations","annotated","getSomes","description","getDescriptionAnnotation","title","getTitleAnnotation","examples","getExamplesAnnotation","getDefaultAnnotation","removeDefaultJsonSchemaAnnotations","jsonSchemaAnnotations","annotations","TitleAnnotationId","DescriptionAnnotationId","getASTJsonSchemaAnnotations","_tag","stringKeyword","numberKeyword","booleanKeyword","pruneUndefinedFromPropertySignature","isNone","getJSONSchemaAnnotation","types","filter","type","isUndefinedKeyword","length","Union","isParseJsonTransformation","from","to","DEFINITION_PREFIX","getRefinementInnerTransformation","f","isRefinement","SchemaIdAnnotationId","ParseJsonSchemaId","merge","b","isOverrideAnnotation","handleIdentifier","path","hook","isSome","handler","value","undefined","surrogate","getSurrogateAnnotation","isTransformation","identifier","getJSONIdentifier","$ref","Error","getJSONSchemaMissingAnnotationErrorMessage","literal","enum","isString","isNumber","isBoolean","elements","map","concat","rest","annotatedAST","output","len","minItems","element","isOptional","items","restLength","head","isHomogeneous","every","additionalItems","getJSONSchemaUnsupportedPostRestElementsErrorMessage","maxItems","propertySignatures","indexSignatures","patternProperties","propertyNames","is","parameter","pattern","getTemplateLiteralRegExp","source","getJSONSchemaUnsupportedParameterErrorMessage","required","properties","additionalProperties","ps","name","pruned","push","getJSONSchemaUnsupportedKeyErrorMessage","enums","anyOf","keys","$comment","encodedBoundAST","regex","String","orElse","getJSONSchemaMissingIdentifierAnnotationErrorMessage","next","isTypeLiteralTransformation","transformation","getIdentifierAnnotation","IdentifierAnnotationId"],"sources":["../../src/JSONSchema.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"JSONSchema.js","names":["errors_","_interopRequireWildcard","require","Option","Predicate","Record","AST","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","make","schema","definitions","ast","isTransformation","isParseJsonTransformation","from","to","out","fromAST","$schema","isEmptyRecord","$defs","exports","options","definitionPath","getRef","id","target","handleIdentifier","topLevelReferenceStrategy","go","constNever","constAny","constUnknown","constVoid","constAnyObject","constEmpty","getJsonSchemaAnnotations","annotated","getSomes","description","getDescriptionAnnotation","title","getTitleAnnotation","examples","getExamplesAnnotation","getDefaultAnnotation","removeDefaultJsonSchemaAnnotations","jsonSchemaAnnotations","annotations","TitleAnnotationId","DescriptionAnnotationId","getASTJsonSchemaAnnotations","_tag","stringKeyword","numberKeyword","booleanKeyword","pruneUndefinedFromPropertySignature","isNone","getJSONSchemaAnnotation","neverKeyword","types","hasUndefined","type","pruned","isNeverKeyword","push","Union","f","SchemaIdAnnotationId","ParseJsonSchemaId","isOverrideAnnotation","jsonSchema","isEnumOnly","keys","length","mergeRefinements","allOf","handle","name","filter","unshift","minLength","maxLength","pattern","minItems","maxItems","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","path","identifier","getJSONIdentifier","isSome","value","$ref","hook","handler","isRefinement","getTransformationFrom","undefined","surrogate","getSurrogateAnnotation","Error","getJSONSchemaMissingAnnotationErrorMessage","literal","enum","isString","isNumber","isBoolean","elements","map","concat","rest","annotatedAST","output","len","element","isOptional","items","restLength","head","isHomogeneous","every","additionalItems","getJSONSchemaUnsupportedPostRestElementsErrorMessage","propertySignatures","indexSignatures","patternProperties","propertyNames","is","parameter","getTemplateLiteralRegExp","source","getJSONSchemaUnsupportedParameterErrorMessage","required","properties","additionalProperties","ps","getJSONSchemaUnsupportedKeyErrorMessage","anyOf","last","$comment","enums","regex","String","orElse","getJSONSchemaMissingIdentifierAnnotationErrorMessage","next","isTypeLiteralTransformation","transformation","getIdentifierAnnotation","IdentifierAnnotationId"],"sources":["../../src/JSONSchema.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}