effect 3.11.6 → 3.11.8

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 (36) hide show
  1. package/dist/cjs/Arbitrary.js +46 -4
  2. package/dist/cjs/Arbitrary.js.map +1 -1
  3. package/dist/cjs/JSONSchema.js +157 -38
  4. package/dist/cjs/JSONSchema.js.map +1 -1
  5. package/dist/cjs/Schema.js +63 -51
  6. package/dist/cjs/Schema.js.map +1 -1
  7. package/dist/cjs/internal/schema/{filters.js → schemaId.js} +4 -2
  8. package/dist/cjs/internal/schema/schemaId.js.map +1 -0
  9. package/dist/cjs/internal/version.js +1 -1
  10. package/dist/dts/Arbitrary.d.ts +5 -1
  11. package/dist/dts/Arbitrary.d.ts.map +1 -1
  12. package/dist/dts/JSONSchema.d.ts +11 -2
  13. package/dist/dts/JSONSchema.d.ts.map +1 -1
  14. package/dist/dts/Schema.d.ts +16 -6
  15. package/dist/dts/Schema.d.ts.map +1 -1
  16. package/dist/dts/internal/schema/schemaId.d.ts +2 -0
  17. package/dist/dts/internal/schema/schemaId.d.ts.map +1 -0
  18. package/dist/esm/Arbitrary.js +44 -3
  19. package/dist/esm/Arbitrary.js.map +1 -1
  20. package/dist/esm/JSONSchema.js +157 -38
  21. package/dist/esm/JSONSchema.js.map +1 -1
  22. package/dist/esm/Schema.js +55 -43
  23. package/dist/esm/Schema.js.map +1 -1
  24. package/dist/esm/internal/schema/{filters.js → schemaId.js} +3 -1
  25. package/dist/esm/internal/schema/schemaId.js.map +1 -0
  26. package/dist/esm/internal/version.js +1 -1
  27. package/package.json +1 -1
  28. package/src/Arbitrary.ts +64 -13
  29. package/src/JSONSchema.ts +185 -40
  30. package/src/Schema.ts +65 -50
  31. package/src/internal/schema/{filters.ts → schemaId.ts} +5 -0
  32. package/src/internal/version.ts +1 -1
  33. package/dist/cjs/internal/schema/filters.js.map +0 -1
  34. package/dist/dts/internal/schema/filters.d.ts +0 -2
  35. package/dist/dts/internal/schema/filters.d.ts.map +0 -1
  36. package/dist/esm/internal/schema/filters.js.map +0 -1
@@ -4,7 +4,7 @@
4
4
  import * as Arr from "./Array.js";
5
5
  import * as FastCheck from "./FastCheck.js";
6
6
  import * as errors_ from "./internal/schema/errors.js";
7
- import * as filters_ from "./internal/schema/filters.js";
7
+ import * as schemaId_ from "./internal/schema/schemaId.js";
8
8
  import * as util_ from "./internal/schema/util.js";
9
9
  import * as Option from "./Option.js";
10
10
  import * as Predicate from "./Predicate.js";
@@ -72,6 +72,8 @@ class Deferred {
72
72
  }
73
73
  case "BigIntConstraints":
74
74
  return fc => fc.bigInt(config.constraints);
75
+ case "DateConstraints":
76
+ return fc => fc.date(config.constraints);
75
77
  case "ArrayConstraints":
76
78
  return goTupleType(config.ast, ctx, path, config.constraints);
77
79
  }
@@ -149,6 +151,22 @@ export const makeArrayConstraints = options => {
149
151
  }
150
152
  return out;
151
153
  };
154
+ /** @internal */
155
+ export const makeDateConstraints = options => {
156
+ const out = {
157
+ _tag: "DateConstraints",
158
+ constraints: {
159
+ noInvalidDate: options.noInvalidDate ?? false
160
+ }
161
+ };
162
+ if (Predicate.isDate(options.min)) {
163
+ out.constraints.min = options.min;
164
+ }
165
+ if (Predicate.isDate(options.max)) {
166
+ out.constraints.max = options.max;
167
+ }
168
+ return out;
169
+ };
152
170
  const makeArrayConfig = (options, ast) => {
153
171
  return {
154
172
  ast,
@@ -175,6 +193,9 @@ const go = (ast, ctx, path) => {
175
193
  return hook.value(ctx);
176
194
  }
177
195
  }
196
+ if (AST.isDeclaration(ast)) {
197
+ throw new Error(errors_.getArbitraryMissingAnnotationErrorMessage(path, ast));
198
+ }
178
199
  const op = toOp(ast, ctx, path);
179
200
  switch (op._tag) {
180
201
  case "Succeed":
@@ -190,7 +211,14 @@ const constBigIntConstraints = /*#__PURE__*/makeBigIntConstraints({});
190
211
  export const toOp = (ast, ctx, path) => {
191
212
  switch (ast._tag) {
192
213
  case "Declaration":
193
- throw new Error(errors_.getArbitraryMissingAnnotationErrorMessage(path, ast));
214
+ {
215
+ const TypeAnnotationId = ast.annotations[AST.SchemaIdAnnotationId];
216
+ switch (TypeAnnotationId) {
217
+ case schemaId_.DateFromSelfSchemaId:
218
+ return new Deferred(makeDateConstraints(ast.annotations[TypeAnnotationId]));
219
+ }
220
+ return new Succeed(go(ast, ctx, path));
221
+ }
194
222
  case "Literal":
195
223
  return new Succeed(fc => fc.constant(ast.literal));
196
224
  case "UniqueSymbol":
@@ -378,7 +406,7 @@ const getConstraints = (_tag, ast) => {
378
406
  case "NumberConstraints":
379
407
  {
380
408
  switch (TypeAnnotationId) {
381
- case filters_.NonNaNSchemaId:
409
+ case schemaId_.NonNaNSchemaId:
382
410
  return makeNumberConstraints({
383
411
  noNaN: true
384
412
  });
@@ -396,6 +424,8 @@ const getConstraints = (_tag, ast) => {
396
424
  }
397
425
  case "BigIntConstraints":
398
426
  return makeBigIntConstraints(ast.annotations[TypeAnnotationId]);
427
+ case "DateConstraints":
428
+ return makeDateConstraints(ast.annotations[TypeAnnotationId]);
399
429
  case "ArrayConstraints":
400
430
  return makeArrayConstraints({
401
431
  minLength: jsonSchema.minItems,
@@ -451,6 +481,17 @@ const merge = (c1, c2) => {
451
481
  }
452
482
  break;
453
483
  }
484
+ case "DateConstraints":
485
+ {
486
+ if (c2._tag === "DateConstraints") {
487
+ return makeDateConstraints({
488
+ min: getMax(c1.constraints.min, c2.constraints.min),
489
+ max: getMin(c1.constraints.max, c2.constraints.max),
490
+ noInvalidDate: getOr(c1.constraints.noInvalidDate, c2.constraints.noInvalidDate)
491
+ });
492
+ }
493
+ break;
494
+ }
454
495
  case "ArrayConstraints":
455
496
  {
456
497
  if (c2._tag === "ArrayConstraints") {
@@ -1 +1 @@
1
- {"version":3,"file":"Arbitrary.js","names":["Arr","FastCheck","errors_","filters_","util_","Option","Predicate","AST","makeLazy","schema","go","ast","maxDepth","make","getArbitraryAnnotation","getAnnotation","ArbitraryAnnotationId","Succeed","lazyArbitrary","filters","_tag","constructor","toLazyArbitrary","fc","out","f","filter","Deferred","config","ctx","path","pattern","undefined","stringMatching","RegExp","string","constraints","isInteger","integer","float","bigInt","goTupleType","makeStringConstraints","options","isNumber","minLength","maxLength","isString","makeNumberConstraints","min","Math","fround","isBoolean","minExcluded","max","maxExcluded","noNaN","noDefaultInfinity","makeBigIntConstraints","isBigInt","makeArrayConstraints","makeArrayConfig","hook","isSome","value","typeParameters","map","p","op","toOp","from","constStringConstraints","constNumberConstraints","constBigIntConstraints","Error","getArbitraryMissingAnnotationErrorMessage","constant","literal","symbol","anything","boolean","s","Symbol","for","oneof","object","array","enums","length","getArbitraryEmptyEnumErrorMessage","_","number","n","Number","isNaN","components","head","addArb","push","String","types","forEach","spans","span","type","tuple","join","a","isNone","defaultParseOption","merge","getConstraints","propertySignaturesTypes","propertySignatures","ps","concat","name","indexSignatures","is","parameter","arbs","requiredKeys","i","isOptional","output","record","key","chain","o","item","arr","depthIdentifier","getSuspendedArray","tuples","Object","fromEntries","member","arb","get","memoizeThunk","getSuspendedContext","to","elements","hasOptionals","element","rest","annotatedAST","indexes","booleans","b","reverse","entries","splice","isNonEmptyReadonlyArray","tail","as","j","TypeAnnotationId","annotations","SchemaIdAnnotationId","jsonSchema","getOrElse","getJSONSchemaAnnotation","NonNaNSchemaId","exclusiveMinimum","minimum","exclusiveMaximum","maximum","minItems","maxItems","getMax","n1","n2","getMin","getOr","c1","c2","getIdentifierAnnotation","pipe","orElse"],"sources":["../../src/Arbitrary.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Arbitrary.js","names":["Arr","FastCheck","errors_","schemaId_","util_","Option","Predicate","AST","makeLazy","schema","go","ast","maxDepth","make","getArbitraryAnnotation","getAnnotation","ArbitraryAnnotationId","Succeed","lazyArbitrary","filters","_tag","constructor","toLazyArbitrary","fc","out","f","filter","Deferred","config","ctx","path","pattern","undefined","stringMatching","RegExp","string","constraints","isInteger","integer","float","bigInt","date","goTupleType","makeStringConstraints","options","isNumber","minLength","maxLength","isString","makeNumberConstraints","min","Math","fround","isBoolean","minExcluded","max","maxExcluded","noNaN","noDefaultInfinity","makeBigIntConstraints","isBigInt","makeArrayConstraints","makeDateConstraints","noInvalidDate","isDate","makeArrayConfig","hook","isSome","value","typeParameters","map","p","op","toOp","from","isDeclaration","Error","getArbitraryMissingAnnotationErrorMessage","constStringConstraints","constNumberConstraints","constBigIntConstraints","TypeAnnotationId","annotations","SchemaIdAnnotationId","DateFromSelfSchemaId","constant","literal","symbol","anything","boolean","s","Symbol","for","oneof","object","array","enums","length","getArbitraryEmptyEnumErrorMessage","_","number","n","Number","isNaN","components","head","addArb","push","String","types","forEach","spans","span","type","tuple","join","a","isNone","defaultParseOption","merge","getConstraints","propertySignaturesTypes","propertySignatures","ps","concat","name","indexSignatures","is","parameter","arbs","requiredKeys","i","isOptional","output","record","key","chain","o","item","arr","depthIdentifier","getSuspendedArray","tuples","Object","fromEntries","member","arb","get","memoizeThunk","getSuspendedContext","to","elements","hasOptionals","element","rest","annotatedAST","indexes","booleans","b","reverse","entries","splice","isNonEmptyReadonlyArray","tail","as","j","jsonSchema","getOrElse","getJSONSchemaAnnotation","NonNaNSchemaId","exclusiveMinimum","minimum","exclusiveMaximum","maximum","minItems","maxItems","getMax","n1","n2","getMin","getOr","c1","c2","getIdentifierAnnotation","pipe","orElse"],"sources":["../../src/Arbitrary.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -15,11 +15,17 @@ export const make = schema => {
15
15
  const ast = AST.isTransformation(schema.ast) && isParseJsonTransformation(schema.ast.from)
16
16
  // Special case top level `parseJson` transformations
17
17
  ? schema.ast.to : schema.ast;
18
- const out = fromAST(ast, {
18
+ const jsonSchema = fromAST(ast, {
19
19
  definitions
20
20
  });
21
- out.$schema = $schema;
22
- if (!Record.isEmptyRecord(definitions)) {
21
+ const out = {
22
+ $schema,
23
+ $defs: {},
24
+ ...jsonSchema
25
+ };
26
+ if (Record.isEmptyRecord(definitions)) {
27
+ delete out.$defs;
28
+ } else {
23
29
  out.$defs = definitions;
24
30
  }
25
31
  return out;
@@ -153,9 +159,27 @@ const isParseJsonTransformation = ast => ast.annotations[AST.SchemaIdAnnotationI
153
159
  const isOverrideAnnotation = jsonSchema => {
154
160
  return "type" in jsonSchema || "oneOf" in jsonSchema || "anyOf" in jsonSchema || "const" in jsonSchema || "enum" in jsonSchema || "$ref" in jsonSchema;
155
161
  };
156
- // Returns true if the schema is an enum with no other properties.
157
- // This is used to merge enums together.
158
- const isEnumOnly = schema => "enum" in schema && Object.keys(schema).length === 1;
162
+ // Returns true if the schema is an enum with no other properties other than the
163
+ // optional "type". This is used to merge enums together.
164
+ const isMergeableEnum = jsonSchema => {
165
+ const len = Object.keys(jsonSchema).length;
166
+ return "enum" in jsonSchema && (len === 1 || "type" in jsonSchema && len === 2);
167
+ };
168
+ // Some validators do not support enums without a type keyword. This function
169
+ // adds a type keyword to the schema if it is missing and the enum values are
170
+ // homogeneous.
171
+ const addEnumType = jsonSchema => {
172
+ if ("enum" in jsonSchema && !("type" in jsonSchema)) {
173
+ const type = jsonSchema.enum.every(Predicate.isString) ? "string" : jsonSchema.enum.every(Predicate.isNumber) ? "number" : jsonSchema.enum.every(Predicate.isBoolean) ? "boolean" : undefined;
174
+ if (type !== undefined) {
175
+ return {
176
+ type,
177
+ ...jsonSchema
178
+ };
179
+ }
180
+ }
181
+ return jsonSchema;
182
+ };
159
183
  const mergeRefinements = (from, jsonSchema, annotations) => {
160
184
  const out = {
161
185
  ...from,
@@ -186,6 +210,29 @@ const mergeRefinements = (from, jsonSchema, annotations) => {
186
210
  }
187
211
  return out;
188
212
  };
213
+ const isContentSchemaSupported = options => options.target !== "jsonSchema7";
214
+ const isNullTypeKeywordSupported = options => options.target !== "openApi3.1";
215
+ // https://swagger.io/docs/specification/v3_0/data-models/data-types/#null
216
+ const isNullableKeywordSupported = options => options.target === "openApi3.1";
217
+ const isNeverJSONSchema = jsonSchema => "$id" in jsonSchema && jsonSchema.$id === "/schemas/never";
218
+ const isAnyJSONSchema = jsonSchema => "$id" in jsonSchema && jsonSchema.$id === "/schemas/any";
219
+ const isUnknownJSONSchema = jsonSchema => "$id" in jsonSchema && jsonSchema.$id === "/schemas/unknown";
220
+ const isVoidJSONSchema = jsonSchema => "$id" in jsonSchema && jsonSchema.$id === "/schemas/void";
221
+ const shrink = members => {
222
+ let i = members.findIndex(isAnyJSONSchema);
223
+ if (i !== -1) {
224
+ members = [members[i]];
225
+ }
226
+ i = members.findIndex(isUnknownJSONSchema);
227
+ if (i !== -1) {
228
+ members = [members[i]];
229
+ }
230
+ i = members.findIndex(isVoidJSONSchema);
231
+ if (i !== -1) {
232
+ members = [members[i]];
233
+ }
234
+ return members;
235
+ };
189
236
  const go = (ast, $defs, handleIdentifier, path, options) => {
190
237
  if (handleIdentifier) {
191
238
  const identifier = AST.getJSONIdentifier(ast);
@@ -225,12 +272,37 @@ const go = (ast, $defs, handleIdentifier, path, options) => {
225
272
  {
226
273
  const literal = ast.literal;
227
274
  if (literal === null) {
275
+ if (isNullTypeKeywordSupported(options)) {
276
+ // https://json-schema.org/draft-07/draft-handrews-json-schema-validation-00.pdf
277
+ // Section 6.1.1
278
+ return {
279
+ type: "null",
280
+ ...getJsonSchemaAnnotations(ast)
281
+ };
282
+ } else {
283
+ // OpenAPI 3.1 does not support the "null" type keyword
284
+ // https://swagger.io/docs/specification/v3_0/data-models/data-types/#null
285
+ return {
286
+ // @ts-expect-error
287
+ enum: [null],
288
+ ...getJsonSchemaAnnotations(ast)
289
+ };
290
+ }
291
+ } else if (Predicate.isString(literal)) {
228
292
  return {
229
- enum: [null],
293
+ type: "string",
294
+ enum: [literal],
230
295
  ...getJsonSchemaAnnotations(ast)
231
296
  };
232
- } else if (Predicate.isString(literal) || Predicate.isNumber(literal) || Predicate.isBoolean(literal)) {
297
+ } else if (Predicate.isNumber(literal)) {
233
298
  return {
299
+ type: "number",
300
+ enum: [literal],
301
+ ...getJsonSchemaAnnotations(ast)
302
+ };
303
+ } else if (Predicate.isBoolean(literal)) {
304
+ return {
305
+ type: "boolean",
234
306
  enum: [literal],
235
307
  ...getJsonSchemaAnnotations(ast)
236
308
  };
@@ -420,46 +492,93 @@ const go = (ast, $defs, handleIdentifier, path, options) => {
420
492
  }
421
493
  case "Union":
422
494
  {
423
- const anyOf = [];
495
+ const members = [];
424
496
  for (const type of ast.types) {
425
- const schema = go(type, $defs, true, path, options);
426
- if ("enum" in schema) {
427
- if (Object.keys(schema).length > 1) {
428
- anyOf.push(schema);
497
+ const jsonSchema = go(type, $defs, true, path, options);
498
+ if (!isNeverJSONSchema(jsonSchema)) {
499
+ const last = members[members.length - 1];
500
+ if (isMergeableEnum(jsonSchema) && last !== undefined && isMergeableEnum(last)) {
501
+ members[members.length - 1] = {
502
+ enum: last.enum.concat(jsonSchema.enum)
503
+ };
429
504
  } else {
430
- const last = anyOf[anyOf.length - 1];
431
- if (last !== undefined && isEnumOnly(last)) {
432
- for (const e of schema.enum) {
433
- last.enum.push(e);
505
+ members.push(jsonSchema);
506
+ }
507
+ }
508
+ }
509
+ const anyOf = shrink(members);
510
+ const finalize = anyOf => {
511
+ switch (anyOf.length) {
512
+ case 0:
513
+ return {
514
+ ...constNever,
515
+ ...getJsonSchemaAnnotations(ast)
516
+ };
517
+ case 1:
518
+ {
519
+ return {
520
+ ...addEnumType(anyOf[0]),
521
+ ...getJsonSchemaAnnotations(ast)
522
+ };
523
+ }
524
+ default:
525
+ return {
526
+ anyOf: anyOf.map(addEnumType),
527
+ ...getJsonSchemaAnnotations(ast)
528
+ };
529
+ }
530
+ };
531
+ if (isNullableKeywordSupported(options)) {
532
+ let nullable = false;
533
+ const nonNullables = [];
534
+ for (const s of anyOf) {
535
+ if ("nullable" in s) {
536
+ nullable = true;
537
+ const nn = {
538
+ ...s
539
+ };
540
+ delete nn.nullable;
541
+ nonNullables.push(nn);
542
+ } else if (isMergeableEnum(s)) {
543
+ const nnes = s.enum.filter(e => e !== null);
544
+ if (nnes.length < s.enum.length) {
545
+ nullable = true;
546
+ if (nnes.length === 0) {
547
+ continue;
434
548
  }
435
- } else {
436
- anyOf.push(schema);
549
+ const nn = {
550
+ ...s
551
+ };
552
+ nn.enum = nnes;
553
+ nonNullables.push(nn);
437
554
  }
555
+ } else {
556
+ nonNullables.push(s);
438
557
  }
439
- } else {
440
- anyOf.push(schema);
558
+ }
559
+ if (nullable) {
560
+ const out = finalize(nonNullables);
561
+ if (!isAnyJSONSchema(out) && !isUnknownJSONSchema(out)) {
562
+ // @ts-expect-error
563
+ out.nullable = nullable;
564
+ }
565
+ return out;
441
566
  }
442
567
  }
443
- if (anyOf.length === 1 && isEnumOnly(anyOf[0])) {
444
- return {
445
- enum: anyOf[0].enum,
446
- ...getJsonSchemaAnnotations(ast)
447
- };
448
- } else {
449
- return {
450
- anyOf,
451
- ...getJsonSchemaAnnotations(ast)
452
- };
453
- }
568
+ return finalize(anyOf);
454
569
  }
455
570
  case "Enums":
456
571
  {
457
- return {
572
+ const anyOf = ast.enums.map(e => addEnumType({
573
+ title: e[0],
574
+ enum: [e[1]]
575
+ }));
576
+ return anyOf.length >= 1 ? {
458
577
  $comment: "/schemas/enums",
459
- anyOf: ast.enums.map(e => ({
460
- title: e[0],
461
- enum: [e[1]]
462
- })),
578
+ anyOf,
579
+ ...getJsonSchemaAnnotations(ast)
580
+ } : {
581
+ ...constNever,
463
582
  ...getJsonSchemaAnnotations(ast)
464
583
  };
465
584
  }
@@ -497,7 +616,7 @@ const go = (ast, $defs, handleIdentifier, path, options) => {
497
616
  "type": "string",
498
617
  "contentMediaType": "application/json"
499
618
  };
500
- if (options.target !== "jsonSchema7") {
619
+ if (isContentSchemaSupported(options)) {
501
620
  out["contentSchema"] = go(ast.to, $defs, handleIdentifier, path, options);
502
621
  }
503
622
  return out;
@@ -1 +1 @@
1
- {"version":3,"file":"JSONSchema.js","names":["errors_","Option","Predicate","Record","AST","make","schema","definitions","ast","isTransformation","isParseJsonTransformation","from","to","out","fromAST","$schema","isEmptyRecord","$defs","options","definitionPath","getRef","id","target","handleIdentifier","topLevelReferenceStrategy","go","constNever","constAny","constUnknown","constVoid","constAnyObject","constEmpty","getJsonSchemaAnnotations","annotated","getSomes","description","getDescriptionAnnotation","title","getTitleAnnotation","examples","getExamplesAnnotation","default","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","Object","keys","length","mergeRefinements","allOf","handle","name","filter","unshift","i","minLength","maxLength","pattern","minItems","maxItems","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","path","identifier","getJSONIdentifier","isSome","value","$ref","has","hook","handler","isRefinement","t","getTransformationFrom","undefined","surrogate","getSurrogateAnnotation","Error","getJSONSchemaMissingAnnotationErrorMessage","literal","enum","isString","isNumber","isBoolean","elements","map","e","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":[]}
1
+ {"version":3,"file":"JSONSchema.js","names":["errors_","Option","Predicate","Record","AST","make","schema","definitions","ast","isTransformation","isParseJsonTransformation","from","to","jsonSchema","fromAST","out","$schema","$defs","isEmptyRecord","options","definitionPath","getRef","id","target","handleIdentifier","topLevelReferenceStrategy","go","constNever","constAny","constUnknown","constVoid","constAnyObject","constEmpty","getJsonSchemaAnnotations","annotated","getSomes","description","getDescriptionAnnotation","title","getTitleAnnotation","examples","getExamplesAnnotation","default","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","isMergeableEnum","len","Object","keys","length","addEnumType","enum","every","isString","isNumber","isBoolean","undefined","mergeRefinements","allOf","handle","name","filter","unshift","i","minLength","maxLength","pattern","minItems","maxItems","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","isContentSchemaSupported","isNullTypeKeywordSupported","isNullableKeywordSupported","isNeverJSONSchema","$id","isAnyJSONSchema","isUnknownJSONSchema","isVoidJSONSchema","shrink","members","findIndex","path","identifier","getJSONIdentifier","isSome","value","$ref","has","hook","handler","isRefinement","t","getTransformationFrom","surrogate","getSurrogateAnnotation","Error","getJSONSchemaMissingAnnotationErrorMessage","literal","elements","map","e","concat","rest","annotatedAST","output","element","isOptional","items","restLength","head","isHomogeneous","additionalItems","getJSONSchemaUnsupportedPostRestElementsErrorMessage","propertySignatures","indexSignatures","patternProperties","propertyNames","is","parameter","getTemplateLiteralRegExp","source","getJSONSchemaUnsupportedParameterErrorMessage","required","properties","additionalProperties","ps","getJSONSchemaUnsupportedKeyErrorMessage","last","anyOf","finalize","nullable","nonNullables","s","nn","nnes","enums","$comment","regex","String","orElse","getJSONSchemaMissingIdentifierAnnotationErrorMessage","next","isTypeLiteralTransformation","transformation","getIdentifierAnnotation","IdentifierAnnotationId"],"sources":["../../src/JSONSchema.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}