ts-json-schema-generator 2.5.0-next.8 → 2.5.0

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 (145) hide show
  1. package/dist/factory/parser.js +3 -0
  2. package/dist/factory/parser.js.map +1 -1
  3. package/dist/factory/program.js +6 -3
  4. package/dist/factory/program.js.map +1 -1
  5. package/dist/package.json +28 -33
  6. package/dist/src/AnnotationsReader/BasicAnnotationsReader.js +6 -0
  7. package/dist/src/AnnotationsReader/BasicAnnotationsReader.js.map +1 -1
  8. package/dist/src/AnnotationsReader/ExtendedAnnotationsReader.d.ts +4 -0
  9. package/dist/src/AnnotationsReader/ExtendedAnnotationsReader.js +7 -0
  10. package/dist/src/AnnotationsReader/ExtendedAnnotationsReader.js.map +1 -1
  11. package/dist/src/Config.d.ts +99 -0
  12. package/dist/src/Error/BaseError.d.ts +6 -1
  13. package/dist/src/Error/BaseError.js +8 -2
  14. package/dist/src/Error/BaseError.js.map +1 -1
  15. package/dist/src/Error/Errors.d.ts +3 -0
  16. package/dist/src/Error/Errors.js +5 -0
  17. package/dist/src/Error/Errors.js.map +1 -1
  18. package/dist/src/NodeParser/AnnotatedNodeParser.js +5 -0
  19. package/dist/src/NodeParser/AnnotatedNodeParser.js.map +1 -1
  20. package/dist/src/NodeParser/ArrayNodeParser.js +1 -0
  21. package/dist/src/NodeParser/ArrayNodeParser.js.map +1 -1
  22. package/dist/src/NodeParser/AsExpressionNodeParser.js +1 -0
  23. package/dist/src/NodeParser/AsExpressionNodeParser.js.map +1 -1
  24. package/dist/src/NodeParser/BinaryExpressionNodeParser.d.ts +13 -0
  25. package/dist/src/NodeParser/BinaryExpressionNodeParser.js +84 -0
  26. package/dist/src/NodeParser/BinaryExpressionNodeParser.js.map +1 -0
  27. package/dist/src/NodeParser/CallExpressionParser.js +6 -0
  28. package/dist/src/NodeParser/CallExpressionParser.js.map +1 -1
  29. package/dist/src/NodeParser/ConditionalTypeNodeParser.d.ts +16 -0
  30. package/dist/src/NodeParser/ConditionalTypeNodeParser.js +22 -0
  31. package/dist/src/NodeParser/ConditionalTypeNodeParser.js.map +1 -1
  32. package/dist/src/NodeParser/FunctionNodeParser.js +1 -0
  33. package/dist/src/NodeParser/FunctionNodeParser.js.map +1 -1
  34. package/dist/src/NodeParser/IdentifierNodeParser.d.ts +3 -0
  35. package/dist/src/NodeParser/IdentifierNodeParser.js +3 -0
  36. package/dist/src/NodeParser/IdentifierNodeParser.js.map +1 -1
  37. package/dist/src/NodeParser/IndexedAccessTypeNodeParser.js +4 -1
  38. package/dist/src/NodeParser/IndexedAccessTypeNodeParser.js.map +1 -1
  39. package/dist/src/NodeParser/InterfaceAndClassNodeParser.d.ts +7 -0
  40. package/dist/src/NodeParser/InterfaceAndClassNodeParser.js +10 -0
  41. package/dist/src/NodeParser/InterfaceAndClassNodeParser.js.map +1 -1
  42. package/dist/src/NodeParser/IntersectionNodeParser.d.ts +4 -0
  43. package/dist/src/NodeParser/IntersectionNodeParser.js +8 -0
  44. package/dist/src/NodeParser/IntersectionNodeParser.js.map +1 -1
  45. package/dist/src/NodeParser/MappedTypeNodeParser.js +12 -5
  46. package/dist/src/NodeParser/MappedTypeNodeParser.js.map +1 -1
  47. package/dist/src/NodeParser/ObjectLiteralExpressionNodeParser.js +1 -0
  48. package/dist/src/NodeParser/ObjectLiteralExpressionNodeParser.js.map +1 -1
  49. package/dist/src/NodeParser/PrefixUnaryExpressionNodeParser.js +1 -0
  50. package/dist/src/NodeParser/PrefixUnaryExpressionNodeParser.js.map +1 -1
  51. package/dist/src/NodeParser/PromiseNodeParser.d.ts +3 -0
  52. package/dist/src/NodeParser/PromiseNodeParser.js +19 -1
  53. package/dist/src/NodeParser/PromiseNodeParser.js.map +1 -1
  54. package/dist/src/NodeParser/SpreadElementNodeParser.d.ts +4 -0
  55. package/dist/src/NodeParser/SpreadElementNodeParser.js +4 -0
  56. package/dist/src/NodeParser/SpreadElementNodeParser.js.map +1 -1
  57. package/dist/src/NodeParser/TypeLiteralNodeParser.js +5 -0
  58. package/dist/src/NodeParser/TypeLiteralNodeParser.js.map +1 -1
  59. package/dist/src/NodeParser/TypeOperatorNodeParser.js +1 -0
  60. package/dist/src/NodeParser/TypeOperatorNodeParser.js.map +1 -1
  61. package/dist/src/NodeParser/TypeReferenceNodeParser.js +6 -0
  62. package/dist/src/NodeParser/TypeReferenceNodeParser.js.map +1 -1
  63. package/dist/src/NodeParser/TypeofNodeParser.js +1 -0
  64. package/dist/src/NodeParser/TypeofNodeParser.js.map +1 -1
  65. package/dist/src/SchemaGenerator.js +28 -1
  66. package/dist/src/SchemaGenerator.js.map +1 -1
  67. package/dist/src/Type/AnnotatedType.d.ts +1 -3
  68. package/dist/src/Type/AnnotatedType.js.map +1 -1
  69. package/dist/src/Type/BaseType.d.ts +3 -0
  70. package/dist/src/Type/BaseType.js +3 -0
  71. package/dist/src/Type/BaseType.js.map +1 -1
  72. package/dist/src/Type/ObjectType.js +3 -1
  73. package/dist/src/Type/ObjectType.js.map +1 -1
  74. package/dist/src/Type/UnionType.d.ts +3 -0
  75. package/dist/src/Type/UnionType.js +3 -0
  76. package/dist/src/Type/UnionType.js.map +1 -1
  77. package/dist/src/Type/UnknownType.d.ts +11 -1
  78. package/dist/src/Type/UnknownType.js +8 -1
  79. package/dist/src/Type/UnknownType.js.map +1 -1
  80. package/dist/src/TypeFormatter/AnnotatedTypeFormatter.js +2 -1
  81. package/dist/src/TypeFormatter/AnnotatedTypeFormatter.js.map +1 -1
  82. package/dist/src/TypeFormatter/EnumTypeFormatter.d.ts +3 -0
  83. package/dist/src/TypeFormatter/EnumTypeFormatter.js +7 -0
  84. package/dist/src/TypeFormatter/EnumTypeFormatter.js.map +1 -1
  85. package/dist/src/TypeFormatter/IntersectionTypeFormatter.js +3 -0
  86. package/dist/src/TypeFormatter/IntersectionTypeFormatter.js.map +1 -1
  87. package/dist/src/TypeFormatter/LiteralUnionTypeFormatter.js +7 -0
  88. package/dist/src/TypeFormatter/LiteralUnionTypeFormatter.js.map +1 -1
  89. package/dist/src/TypeFormatter/ReferenceTypeFormatter.js +6 -0
  90. package/dist/src/TypeFormatter/ReferenceTypeFormatter.js.map +1 -1
  91. package/dist/src/TypeFormatter/TupleTypeFormatter.js +12 -5
  92. package/dist/src/TypeFormatter/TupleTypeFormatter.js.map +1 -1
  93. package/dist/src/TypeFormatter/UnionTypeFormatter.js +1 -0
  94. package/dist/src/TypeFormatter/UnionTypeFormatter.js.map +1 -1
  95. package/dist/src/Utils/allOfDefinition.js +5 -0
  96. package/dist/src/Utils/allOfDefinition.js.map +1 -1
  97. package/dist/src/Utils/deepMerge.d.ts +8 -0
  98. package/dist/src/Utils/deepMerge.js +9 -0
  99. package/dist/src/Utils/deepMerge.js.map +1 -1
  100. package/dist/src/Utils/derefType.d.ts +6 -0
  101. package/dist/src/Utils/derefType.js +6 -0
  102. package/dist/src/Utils/derefType.js.map +1 -1
  103. package/dist/src/Utils/intersectionOfArrays.js +1 -0
  104. package/dist/src/Utils/intersectionOfArrays.js.map +1 -1
  105. package/dist/src/Utils/isAssignableTo.d.ts +12 -0
  106. package/dist/src/Utils/isAssignableTo.js +54 -0
  107. package/dist/src/Utils/isAssignableTo.js.map +1 -1
  108. package/dist/src/Utils/modifiers.d.ts +19 -0
  109. package/dist/src/Utils/modifiers.js +19 -0
  110. package/dist/src/Utils/modifiers.js.map +1 -1
  111. package/dist/src/Utils/narrowType.d.ts +12 -0
  112. package/dist/src/Utils/narrowType.js +15 -0
  113. package/dist/src/Utils/narrowType.js.map +1 -1
  114. package/dist/src/Utils/nodeKey.d.ts +1 -1
  115. package/dist/src/Utils/nodeKey.js +7 -1
  116. package/dist/src/Utils/nodeKey.js.map +1 -1
  117. package/dist/src/Utils/preserveAnnotation.d.ts +6 -0
  118. package/dist/src/Utils/preserveAnnotation.js +6 -0
  119. package/dist/src/Utils/preserveAnnotation.js.map +1 -1
  120. package/dist/src/Utils/removeUndefined.d.ts +3 -0
  121. package/dist/src/Utils/removeUndefined.js +3 -0
  122. package/dist/src/Utils/removeUndefined.js.map +1 -1
  123. package/dist/src/Utils/removeUnreachable.js +1 -0
  124. package/dist/src/Utils/removeUnreachable.js.map +1 -1
  125. package/dist/src/Utils/symbolAtNode.js +1 -0
  126. package/dist/src/Utils/symbolAtNode.js.map +1 -1
  127. package/dist/src/Utils/typeKeys.js +1 -0
  128. package/dist/src/Utils/typeKeys.js.map +1 -1
  129. package/dist/ts-json-schema-generator.js +6 -7
  130. package/dist/ts-json-schema-generator.js.map +1 -1
  131. package/dist/tsconfig.tsbuildinfo +1 -1
  132. package/factory/parser.ts +2 -0
  133. package/factory/program.ts +8 -4
  134. package/package.json +28 -33
  135. package/src/Error/BaseError.ts +1 -3
  136. package/src/NodeParser/BinaryExpressionNodeParser.ts +99 -0
  137. package/src/NodeParser/IndexedAccessTypeNodeParser.ts +4 -1
  138. package/src/NodeParser/MappedTypeNodeParser.ts +12 -8
  139. package/src/SchemaGenerator.ts +18 -3
  140. package/src/Type/AnnotatedType.ts +1 -3
  141. package/src/Type/UnknownType.ts +1 -1
  142. package/src/TypeFormatter/AnnotatedTypeFormatter.ts +2 -2
  143. package/src/Utils/narrowType.ts +1 -6
  144. package/src/Utils/nodeKey.ts +3 -1
  145. package/ts-json-schema-generator.ts +2 -11
@@ -19,6 +19,7 @@ class LiteralUnionTypeFormatter {
19
19
  let allStrings = true;
20
20
  let hasNull = false;
21
21
  const literals = unionType.getFlattenedTypes();
22
+ // filter out String types since we need to be more careful about them
22
23
  const types = literals.filter((literal) => {
23
24
  if (literal instanceof StringType_js_1.StringType) {
24
25
  hasString = true;
@@ -67,6 +68,9 @@ function isLiteralUnion(type) {
67
68
  item instanceof StringType_js_1.StringType ||
68
69
  item instanceof EnumType_js_1.EnumType);
69
70
  }
71
+ /**
72
+ * Appends all possible type names of a type to the given set.
73
+ */
70
74
  function appendTypeNames(type, names) {
71
75
  if (type instanceof EnumType_js_1.EnumType) {
72
76
  for (const value of type.getValues()) {
@@ -80,6 +84,9 @@ function appendTypeNames(type, names) {
80
84
  }
81
85
  names.add((0, typeName_js_1.typeName)(null));
82
86
  }
87
+ /**
88
+ * Appends all possible values of a type to the given set.
89
+ */
83
90
  function appendTypeValues(type, values) {
84
91
  if (type instanceof EnumType_js_1.EnumType) {
85
92
  for (const value of type.getValues()) {
@@ -1 +1 @@
1
- {"version":3,"file":"LiteralUnionTypeFormatter.js","sourceRoot":"","sources":["../../../src/TypeFormatter/LiteralUnionTypeFormatter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LiteralUnionTypeFormatter.js","sourceRoot":"","sources":["../../../src/TypeFormatter/LiteralUnionTypeFormatter.ts"],"names":[],"mappings":"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"}
@@ -20,8 +20,14 @@ class ReferenceTypeFormatter {
20
20
  getChildren(type) {
21
21
  const referredType = type.getType();
22
22
  if (referredType instanceof DefinitionType_js_1.DefinitionType) {
23
+ // We probably already have the definitions for the children created so we could return `[]`.
24
+ // There are cases where we may not have (in particular intersections of unions with recursion).
25
+ // To make sure we create the necessary definitions, we return the children of the referred type here.
26
+ // Because we cache definitions, this should not incur any performance impact.
23
27
  return this.childTypeFormatter.getChildren(referredType);
24
28
  }
29
+ // this means that the referred interface is protected
30
+ // so we have to expose it in the schema definitions
25
31
  return this.childTypeFormatter.getChildren(new DefinitionType_js_1.DefinitionType(type.getName(), type.getType()));
26
32
  }
27
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ReferenceTypeFormatter.js","sourceRoot":"","sources":["../../../src/TypeFormatter/ReferenceTypeFormatter.ts"],"names":[],"mappings":";;;AAGA,iEAA2D;AAC3D,+DAAyD;AAGzD,MAAa,sBAAsB;IAEjB;IACA;IAFd,YACc,kBAAiC,EACjC,UAAmB;QADnB,uBAAkB,GAAlB,kBAAkB,CAAe;QACjC,eAAU,GAAV,UAAU,CAAS;IAC9B,CAAC;IAEG,YAAY,CAAC,IAAc;QAC9B,OAAO,IAAI,YAAY,gCAAa,CAAC;IACzC,CAAC;IACM,aAAa,CAAC,IAAmB;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3B,OAAO,EAAE,IAAI,EAAE,iBAAiB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;IACxF,CAAC;IACM,WAAW,CAAC,IAAmB;QAClC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QACpC,IAAI,YAAY,YAAY,kCAAc,EAAE,CAAC;YAKzC,OAAO,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC7D,CAAC;QAID,OAAO,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,IAAI,kCAAc,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACnG,CAAC;CACJ;AA3BD,wDA2BC"}
1
+ {"version":3,"file":"ReferenceTypeFormatter.js","sourceRoot":"","sources":["../../../src/TypeFormatter/ReferenceTypeFormatter.ts"],"names":[],"mappings":";;;AAGA,iEAA2D;AAC3D,+DAAyD;AAGzD,MAAa,sBAAsB;IAEjB;IACA;IAFd,YACc,kBAAiC,EACjC,UAAmB;QADnB,uBAAkB,GAAlB,kBAAkB,CAAe;QACjC,eAAU,GAAV,UAAU,CAAS;IAC9B,CAAC;IAEG,YAAY,CAAC,IAAc;QAC9B,OAAO,IAAI,YAAY,gCAAa,CAAC;IACzC,CAAC;IACM,aAAa,CAAC,IAAmB;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3B,OAAO,EAAE,IAAI,EAAE,iBAAiB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;IACxF,CAAC;IACM,WAAW,CAAC,IAAmB;QAClC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QACpC,IAAI,YAAY,YAAY,kCAAc,EAAE,CAAC;YACzC,6FAA6F;YAC7F,gGAAgG;YAChG,sGAAsG;YACtG,8EAA8E;YAC9E,OAAO,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC7D,CAAC;QAED,sDAAsD;QACtD,oDAAoD;QACpD,OAAO,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,IAAI,kCAAc,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACnG,CAAC;CACJ;AA3BD,wDA2BC"}
@@ -32,12 +32,19 @@ class TupleTypeFormatter {
32
32
  const subTypes = type.getTypes().filter(notNever_js_1.notNever);
33
33
  const requiredElements = subTypes.filter((t) => !(t instanceof OptionalType_js_1.OptionalType) && !(t instanceof RestType_js_1.RestType));
34
34
  const optionalElements = subTypes.filter((t) => t instanceof OptionalType_js_1.OptionalType);
35
+ // NOTE: A maximum of one rest type is assumed.
35
36
  const restType = subTypes.find((t) => t instanceof RestType_js_1.RestType);
36
37
  const firstItemType = requiredElements.length > 0 ? requiredElements[0] : optionalElements[0]?.getType();
38
+ // Check whether the tuple is of any of the following forms:
39
+ // [A, A, A]
40
+ // [A, A, A?]
41
+ // [A?, A?]
42
+ // [A, A, A, ...A[]],
37
43
  const isUniformArray = firstItemType &&
38
44
  requiredElements.every((item) => item.getId() === firstItemType.getId()) &&
39
45
  optionalElements.every((item) => item.getType().getId() === firstItemType.getId()) &&
40
46
  (!restType || uniformRestType(restType, firstItemType));
47
+ // If so, generate a simple array with minItems (and possibly maxItems) instead.
41
48
  if (isUniformArray) {
42
49
  return {
43
50
  type: "array",
@@ -53,13 +60,13 @@ class TupleTypeFormatter {
53
60
  return {
54
61
  type: "array",
55
62
  minItems: requiredDefinitions.length,
56
- ...(itemsTotal ? { items: requiredDefinitions.concat(optionalDefinitions) } : {}),
57
- ...(!itemsTotal && additionalItems ? { items: additionalItems } : {}),
58
- ...(!itemsTotal && !additionalItems ? { maxItems: 0 } : {}),
63
+ ...(itemsTotal ? { items: requiredDefinitions.concat(optionalDefinitions) } : {}), // with items
64
+ ...(!itemsTotal && additionalItems ? { items: additionalItems } : {}), // with only rest param
65
+ ...(!itemsTotal && !additionalItems ? { maxItems: 0 } : {}), // empty
59
66
  ...(additionalItems && !Array.isArray(additionalItems) && itemsTotal
60
67
  ? { additionalItems: additionalItems }
61
- : {}),
62
- ...(!additionalItems && itemsTotal ? { maxItems: itemsTotal } : {}),
68
+ : {}), // with rest items
69
+ ...(!additionalItems && itemsTotal ? { maxItems: itemsTotal } : {}), // without rest
63
70
  };
64
71
  }
65
72
  getChildren(type) {
@@ -1 +1 @@
1
- {"version":3,"file":"TupleTypeFormatter.js","sourceRoot":"","sources":["../../../src/TypeFormatter/TupleTypeFormatter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TupleTypeFormatter.js","sourceRoot":"","sources":["../../../src/TypeFormatter/TupleTypeFormatter.ts"],"names":[],"mappings":"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"}
@@ -84,6 +84,7 @@ class UnionTypeFormatter {
84
84
  }
85
85
  const definitions = this.getTypeDefinitions(type);
86
86
  const flattenedDefinitions = [];
87
+ // Flatten anyOf inside anyOf unless the anyOf has an annotation
87
88
  for (const def of definitions) {
88
89
  const keys = Object.keys(def);
89
90
  if (keys.length === 1 && keys[0] === "anyOf") {
@@ -1 +1 @@
1
- {"version":3,"file":"UnionTypeFormatter.js","sourceRoot":"","sources":["../../../src/TypeFormatter/UnionTypeFormatter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UnionTypeFormatter.js","sourceRoot":"","sources":["../../../src/TypeFormatter/UnionTypeFormatter.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,10 @@ exports.getAllOfDefinitionReducer = getAllOfDefinitionReducer;
4
4
  const uniqueArray_js_1 = require("./uniqueArray.js");
5
5
  const deepMerge_js_1 = require("./deepMerge.js");
6
6
  const derefType_js_1 = require("./derefType.js");
7
+ // TODO: Can we do this at parse time? See heritage clause in interfaces.
8
+ // TODO: We really only need this if the children use additionalProperties: false.
7
9
  function getAllOfDefinitionReducer(childTypeFormatter) {
10
+ // combine object instead of using allOf because allOf does not work well with additional properties
8
11
  return (definition, baseType) => {
9
12
  const other = childTypeFormatter.getDefinition((0, derefType_js_1.derefType)(baseType));
10
13
  definition.properties = (0, deepMerge_js_1.deepMerge)(other.properties || {}, definition.properties || {});
@@ -13,6 +16,8 @@ function getAllOfDefinitionReducer(childTypeFormatter) {
13
16
  }
14
17
  if (additionalPropsDefinition(definition.additionalProperties) &&
15
18
  additionalPropsDefinition(other.additionalProperties)) {
19
+ // additional properties is false only if all children also set additional properties to false
20
+ // collect additional properties and merge into a single definition
16
21
  let additionalProps = [];
17
22
  let additionalTypes = [];
18
23
  const addAdditionalProps = (addProps) => {
@@ -1 +1 @@
1
- {"version":3,"file":"allOfDefinition.js","sourceRoot":"","sources":["../../../src/Utils/allOfDefinition.ts"],"names":[],"mappings":";;AAUA,8DAqFC;AA3FD,qDAA+C;AAC/C,iDAA2C;AAC3C,iDAA2C;AAI3C,SAAgB,yBAAyB,CAAC,kBAAiC;IAEvE,OAAO,CAAC,UAAsB,EAAE,QAAkB,EAAc,EAAE;QAC9D,MAAM,KAAK,GAAG,kBAAkB,CAAC,aAAa,CAAC,IAAA,wBAAS,EAAC,QAAQ,CAAC,CAAC,CAAC;QAEpE,UAAU,CAAC,UAAU,GAAG,IAAA,wBAAS,EAAC,KAAK,CAAC,UAAU,IAAI,EAAE,EAAE,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;QAEvF,SAAS,yBAAyB,CAAC,KAA4B;YAC3D,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;QACjD,CAAC;QAED,IACI,yBAAyB,CAAC,UAAU,CAAC,oBAAoB,CAAC;YAC1D,yBAAyB,CAAC,KAAK,CAAC,oBAAoB,CAAC,EACvD,CAAC;YAGC,IAAI,eAAe,GAAiB,EAAE,CAAC;YACvC,IAAI,eAAe,GAAkB,EAAE,CAAC;YACxC,MAAM,kBAAkB,GAAmC,CAAC,QAAoB,EAAE,EAAE;gBAChF,IAAI,QAAQ,EAAE,CAAC;oBACX,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;wBACjB,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAqB,EAAE,CAAC;4BAChD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gCACZ,eAAe,GAAG,eAAe,CAAC,MAAM,CACpC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACrD,CAAC;4BACN,CAAC;iCAAM,CAAC;gCACJ,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BAC/B,CAAC;wBACL,CAAC;oBACL,CAAC;yBAAM,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;wBACvB,eAAe,GAAG,eAAe,CAAC,MAAM,CACpC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CACjE,CAAC;oBACN,CAAC;yBAAM,CAAC;wBACJ,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACnC,CAAC;gBACL,CAAC;YACL,CAAC,CAAC;YAEF,kBAAkB,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;YACpD,kBAAkB,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YAE/C,eAAe,GAAG,IAAA,4BAAW,EAAC,eAAe,CAAC,CAAC;YAC/C,eAAe,GAAG,IAAA,4BAAW,EAAC,eAAe,CAAC,CAAC;YAE/C,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,eAAe,CAAC,IAAI,CAAC;oBACjB,IAAI,EAAE,eAAe;iBACxB,CAAC,CAAC;YACP,CAAC;iBAAM,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtC,eAAe,CAAC,IAAI,CAAC;oBACjB,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;iBAC3B,CAAC,CAAC;YACP,CAAC;YAED,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,UAAU,CAAC,oBAAoB,GAAG;oBAC9B,KAAK,EAAE,eAAe;iBACzB,CAAC;YACN,CAAC;iBAAM,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtC,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC/C,OAAO,UAAU,CAAC,oBAAoB,CAAC;gBAC3C,CAAC;qBAAM,CAAC;oBACJ,UAAU,CAAC,oBAAoB,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;gBACzD,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,UAAU,CAAC,oBAAoB,GAAG,KAAK,CAAC;YAC5C,CAAC;QACL,CAAC;QAED,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACjB,UAAU,CAAC,QAAQ,GAAG,IAAA,4BAAW,EAAC,CAAC,UAAU,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACjG,CAAC;QAED,IACI,CAAC,KAAK,CAAC,oBAAoB,IAAI,KAAK,CAAC,oBAAoB,KAAK,SAAS,CAAC;YACxE,UAAU,CAAC,oBAAoB,IAAI,KAAK,EAC1C,CAAC;YACC,OAAO,UAAU,CAAC,oBAAoB,CAAC;QAC3C,CAAC;QAED,OAAO,UAAU,CAAC;IACtB,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"allOfDefinition.js","sourceRoot":"","sources":["../../../src/Utils/allOfDefinition.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,12 @@
1
1
  import type { JSONSchema7Definition } from "json-schema";
2
+ /**
3
+ * Merges nested objects and arrays.
4
+ *
5
+ * @param a - lhs to merge.
6
+ * @param b - rhs to merge.
7
+ * @param intersectArrays - compute intersection of arrays (otherwise take the array from b).
8
+ * @returns a and b merged together.
9
+ */
2
10
  export declare function deepMerge(a: {
3
11
  [key: string]: JSONSchema7Definition;
4
12
  }, b: {
@@ -2,6 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.deepMerge = deepMerge;
4
4
  const intersectionOfArrays_js_1 = require("./intersectionOfArrays.js");
5
+ /**
6
+ * Merges nested objects and arrays.
7
+ *
8
+ * @param a - lhs to merge.
9
+ * @param b - rhs to merge.
10
+ * @param intersectArrays - compute intersection of arrays (otherwise take the array from b).
11
+ * @returns a and b merged together.
12
+ */
5
13
  function deepMerge(a, b) {
6
14
  const output = { ...structuredClone(a), ...structuredClone(b) };
7
15
  for (const key in a) {
@@ -28,6 +36,7 @@ function deepMerge(a, b) {
28
36
  return output;
29
37
  }
30
38
  function mergeConstsAndEnums(a, b) {
39
+ // NOTE: const is basically a syntactic sugar for an enum with a single element.
31
40
  const enumA = a.const !== undefined ? [a.const] : a.enum;
32
41
  const enumB = b.const !== undefined ? [b.const] : b.enum;
33
42
  if (enumA == null && enumB != null) {
@@ -1 +1 @@
1
- {"version":3,"file":"deepMerge.js","sourceRoot":"","sources":["../../../src/Utils/deepMerge.ts"],"names":[],"mappings":";;AAaA,8BAgCC;AA1CD,uEAAiE;AAUjE,SAAgB,SAAS,CACrB,CAA2C,EAC3C,CAA2C;IAE3C,MAAM,MAAM,GAAG,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IAEhE,KAAK,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAuB,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAuB,CAAC,CAAC;YAE5C,IACI,QAAQ,IAAI,IAAI;gBAChB,QAAQ,IAAI,IAAI;gBAChB,OAAO,QAAQ,KAAK,QAAQ;gBAC5B,OAAO,QAAQ,KAAK,QAAQ;gBAC5B,MAAM,IAAI,QAAQ;gBAClB,MAAM,IAAI,QAAQ,EACpB,CAAC;gBACC,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACjC,MAAM,KAAK,GAAG,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBACtD,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;wBAChB,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;wBACnC,MAAc,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;wBAChF,OAAQ,MAAc,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;oBAC7D,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,mBAAmB,CAAC,CAAa,EAAE,CAAa;IAErD,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzD,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEzD,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACjB,CAAC;SAAM,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACjB,CAAC;SAAM,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QACxC,OAAO,IAAA,8CAAoB,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACJ,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"deepMerge.js","sourceRoot":"","sources":["../../../src/Utils/deepMerge.ts"],"names":[],"mappings":";;AAaA,8BAgCC;AA1CD,uEAAiE;AAEjE;;;;;;;GAOG;AACH,SAAgB,SAAS,CACrB,CAA2C,EAC3C,CAA2C;IAE3C,MAAM,MAAM,GAAG,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IAEhE,KAAK,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAuB,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAuB,CAAC,CAAC;YAE5C,IACI,QAAQ,IAAI,IAAI;gBAChB,QAAQ,IAAI,IAAI;gBAChB,OAAO,QAAQ,KAAK,QAAQ;gBAC5B,OAAO,QAAQ,KAAK,QAAQ;gBAC5B,MAAM,IAAI,QAAQ;gBAClB,MAAM,IAAI,QAAQ,EACpB,CAAC;gBACC,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACjC,MAAM,KAAK,GAAG,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBACtD,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;wBAChB,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;wBACnC,MAAc,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;wBAChF,OAAQ,MAAc,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;oBAC7D,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,mBAAmB,CAAC,CAAa,EAAE,CAAa;IACrD,gFAAgF;IAChF,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzD,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEzD,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACjB,CAAC;SAAM,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACjB,CAAC;SAAM,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QACxC,OAAO,IAAA,8CAAoB,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACJ,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC"}
@@ -1,6 +1,12 @@
1
1
  import type { BaseType } from "../Type/BaseType.js";
2
+ /**
3
+ * Dereference the type as far as possible.
4
+ */
2
5
  export declare function derefType(type: BaseType): BaseType;
3
6
  export declare function derefAnnotatedType(type: BaseType): BaseType;
4
7
  export declare function isHiddenType(type: BaseType): boolean;
8
+ /**
9
+ * Recursively checks whether the given type is a union composed entirely of literal types.
10
+ */
5
11
  export declare function isDeepLiteralUnion(type: BaseType): boolean;
6
12
  export declare function derefAliasedType(type: BaseType): BaseType;
@@ -13,6 +13,9 @@ const LiteralType_js_1 = require("../Type/LiteralType.js");
13
13
  const NeverType_js_1 = require("../Type/NeverType.js");
14
14
  const ReferenceType_js_1 = require("../Type/ReferenceType.js");
15
15
  const UnionType_js_1 = require("../Type/UnionType.js");
16
+ /**
17
+ * Dereference the type as far as possible.
18
+ */
16
19
  function derefType(type) {
17
20
  if (type instanceof DefinitionType_js_1.DefinitionType || type instanceof AliasType_js_1.AliasType || type instanceof AnnotatedType_js_1.AnnotatedType) {
18
21
  return derefType(type.getType());
@@ -37,6 +40,9 @@ function isHiddenType(type) {
37
40
  }
38
41
  return false;
39
42
  }
43
+ /**
44
+ * Recursively checks whether the given type is a union composed entirely of literal types.
45
+ */
40
46
  function isDeepLiteralUnion(type) {
41
47
  const resolved = derefType(type);
42
48
  if (resolved instanceof LiteralType_js_1.LiteralType) {
@@ -1 +1 @@
1
- {"version":3,"file":"derefType.js","sourceRoot":"","sources":["../../../src/Utils/derefType.ts"],"names":[],"mappings":";;AAaA,8BASC;AAED,gDAMC;AAED,oCAQC;AAKD,gDAYC;AAED,4CAMC;AAjED,uDAAiD;AACjD,+DAAyD;AAEzD,iEAA2D;AAC3D,yDAAmD;AACnD,2DAAqD;AACrD,uDAAiD;AACjD,+DAAyD;AACzD,uDAAiD;AAKjD,SAAgB,SAAS,CAAC,IAAc;IACpC,IAAI,IAAI,YAAY,kCAAc,IAAI,IAAI,YAAY,wBAAS,IAAI,IAAI,YAAY,gCAAa,EAAE,CAAC;QAC/F,OAAO,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,IAAI,YAAY,gCAAa,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QAClD,OAAO,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAgB,kBAAkB,CAAC,IAAc;IAC7C,IAAI,IAAI,YAAY,gCAAa,IAAI,IAAI,YAAY,wBAAS,EAAE,CAAC;QAC7D,OAAO,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAgB,YAAY,CAAC,IAAc;IACvC,IAAI,IAAI,YAAY,0BAAU,IAAI,IAAI,YAAY,wBAAS,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC;IAChB,CAAC;SAAM,IAAI,IAAI,YAAY,kCAAc,IAAI,IAAI,YAAY,wBAAS,IAAI,IAAI,YAAY,gCAAa,EAAE,CAAC;QACtG,OAAO,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAKD,SAAgB,kBAAkB,CAAC,IAAc;IAC7C,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAEjC,IAAI,QAAQ,YAAY,4BAAW,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,QAAQ,YAAY,wBAAS,EAAE,CAAC;QAChC,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAgB,gBAAgB,CAAC,IAAc;IAC3C,IAAI,IAAI,YAAY,wBAAS,EAAE,CAAC;QAC5B,OAAO,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"derefType.js","sourceRoot":"","sources":["../../../src/Utils/derefType.ts"],"names":[],"mappings":";;AAaA,8BASC;AAED,gDAMC;AAED,oCAQC;AAKD,gDAYC;AAED,4CAMC;AAjED,uDAAiD;AACjD,+DAAyD;AAEzD,iEAA2D;AAC3D,yDAAmD;AACnD,2DAAqD;AACrD,uDAAiD;AACjD,+DAAyD;AACzD,uDAAiD;AAEjD;;GAEG;AACH,SAAgB,SAAS,CAAC,IAAc;IACpC,IAAI,IAAI,YAAY,kCAAc,IAAI,IAAI,YAAY,wBAAS,IAAI,IAAI,YAAY,gCAAa,EAAE,CAAC;QAC/F,OAAO,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,IAAI,YAAY,gCAAa,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QAClD,OAAO,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAgB,kBAAkB,CAAC,IAAc;IAC7C,IAAI,IAAI,YAAY,gCAAa,IAAI,IAAI,YAAY,wBAAS,EAAE,CAAC;QAC7D,OAAO,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAgB,YAAY,CAAC,IAAc;IACvC,IAAI,IAAI,YAAY,0BAAU,IAAI,IAAI,YAAY,wBAAS,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC;IAChB,CAAC;SAAM,IAAI,IAAI,YAAY,kCAAc,IAAI,IAAI,YAAY,wBAAS,IAAI,IAAI,YAAY,gCAAa,EAAE,CAAC;QACtG,OAAO,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,IAAc;IAC7C,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAEjC,IAAI,QAAQ,YAAY,4BAAW,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,QAAQ,YAAY,wBAAS,EAAE,CAAC;QAChC,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAgB,gBAAgB,CAAC,IAAc;IAC3C,IAAI,IAAI,YAAY,wBAAS,EAAE,CAAC;QAC5B,OAAO,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.intersectionOfArrays = intersectionOfArrays;
4
4
  const tslib_1 = require("tslib");
5
+ /* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */
5
6
  const safe_stable_stringify_1 = tslib_1.__importDefault(require("safe-stable-stringify"));
6
7
  function intersectionOfArrays(a, b) {
7
8
  const output = [];
@@ -1 +1 @@
1
- {"version":3,"file":"intersectionOfArrays.js","sourceRoot":"","sources":["../../../src/Utils/intersectionOfArrays.ts"],"names":[],"mappings":";;AAGA,oDASC;;AAXD,0FAA8C;AAE9C,SAAgB,oBAAoB,CAAI,CAAM,EAAE,CAAM;IAClD,MAAM,MAAM,GAAQ,EAAE,CAAC;IACvB,MAAM,GAAG,GAAgB,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAO,EAAE,EAAE,CAAC,IAAA,+BAAS,EAAC,IAAK,CAAC,CAAC,CAAC,CAAC;IACvE,KAAK,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC;QACpB,IAAI,GAAG,CAAC,GAAG,CAAC,IAAA,+BAAS,EAAC,KAAM,CAAC,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"intersectionOfArrays.js","sourceRoot":"","sources":["../../../src/Utils/intersectionOfArrays.ts"],"names":[],"mappings":";;AAGA,oDASC;;AAZD,qEAAqE;AACrE,0FAA8C;AAE9C,SAAgB,oBAAoB,CAAI,CAAM,EAAE,CAAM;IAClD,MAAM,MAAM,GAAQ,EAAE,CAAC;IACvB,MAAM,GAAG,GAAgB,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAO,EAAE,EAAE,CAAC,IAAA,+BAAS,EAAC,IAAK,CAAC,CAAC,CAAC,CAAC;IACvE,KAAK,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC;QACpB,IAAI,GAAG,CAAC,GAAG,CAAC,IAAA,+BAAS,EAAC,KAAM,CAAC,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC"}
@@ -1,2 +1,14 @@
1
1
  import type { BaseType } from "../Type/BaseType.js";
2
+ /**
3
+ * Checks if given source type is assignable to given target type.
4
+ *
5
+ * The logic of this function is heavily inspired by
6
+ * https://github.com/runem/ts-simple-type/blob/master/src/is-assignable-to-simple-type.ts
7
+ *
8
+ * @param source - The source type.
9
+ * @param target - The target type.
10
+ * @param inferMap - Optional parameter that keeps track of the inferred types.
11
+ * @param insideTypes - Optional parameter used internally to solve circular dependencies.
12
+ * @return True if source type is assignable to target type.
13
+ */
2
14
  export declare function isAssignableTo(target: BaseType, source: BaseType, inferMap?: Map<string, BaseType>, insideTypes?: Set<BaseType>): boolean;
@@ -21,6 +21,13 @@ const BooleanType_js_1 = require("../Type/BooleanType.js");
21
21
  const InferType_js_1 = require("../Type/InferType.js");
22
22
  const RestType_js_1 = require("../Type/RestType.js");
23
23
  const NeverType_js_1 = require("../Type/NeverType.js");
24
+ /**
25
+ * Returns the combined types from the given intersection. Currently only object types are combined. Maybe more
26
+ * types needs to be combined to properly support complex intersections.
27
+ *
28
+ * @param intersection - The intersection type to combine.
29
+ * @return The combined types within the intersection.
30
+ */
24
31
  function combineIntersectingTypes(intersection) {
25
32
  const objectTypes = [];
26
33
  const combined = intersection.getTypes().filter((type) => {
@@ -40,6 +47,13 @@ function combineIntersectingTypes(intersection) {
40
47
  }
41
48
  return combined;
42
49
  }
50
+ /**
51
+ * Returns all object properties of the given type and all its base types.
52
+ *
53
+ * @param type - The type for which to return the properties. If type is not an object type or object has no properties
54
+ * Then an empty list ist returned.
55
+ * @return All object properties of the type. Empty if none.
56
+ */
43
57
  function getObjectProperties(type) {
44
58
  type = (0, derefType_js_1.derefType)(type);
45
59
  const properties = [];
@@ -61,15 +75,31 @@ function getPrimitiveType(value) {
61
75
  return new BooleanType_js_1.BooleanType();
62
76
  }
63
77
  }
78
+ /**
79
+ * Checks if given source type is assignable to given target type.
80
+ *
81
+ * The logic of this function is heavily inspired by
82
+ * https://github.com/runem/ts-simple-type/blob/master/src/is-assignable-to-simple-type.ts
83
+ *
84
+ * @param source - The source type.
85
+ * @param target - The target type.
86
+ * @param inferMap - Optional parameter that keeps track of the inferred types.
87
+ * @param insideTypes - Optional parameter used internally to solve circular dependencies.
88
+ * @return True if source type is assignable to target type.
89
+ */
64
90
  function isAssignableTo(target, source, inferMap = new Map(), insideTypes = new Set()) {
91
+ // Dereference source and target
65
92
  source = (0, derefType_js_1.derefType)(source);
66
93
  target = (0, derefType_js_1.derefType)(target);
94
+ // Type "never" can be assigned to anything
67
95
  if (source instanceof NeverType_js_1.NeverType) {
68
96
  return true;
69
97
  }
98
+ // Nothing can be assigned to "never"
70
99
  if (target instanceof NeverType_js_1.NeverType) {
71
100
  return false;
72
101
  }
102
+ // Infer type can become anything
73
103
  if (target instanceof InferType_js_1.InferType) {
74
104
  const key = target.getName();
75
105
  const infer = inferMap.get(key);
@@ -81,27 +111,36 @@ function isAssignableTo(target, source, inferMap = new Map(), insideTypes = new
81
111
  }
82
112
  return true;
83
113
  }
114
+ // Check for simple type equality
84
115
  if (source.getId() === target.getId()) {
85
116
  return true;
86
117
  }
118
+ /** Don't check types when already inside them. This solves circular dependencies. */
87
119
  if (insideTypes.has(source) || insideTypes.has(target)) {
88
120
  return true;
89
121
  }
122
+ // Assigning from or to any-type is always possible
90
123
  if (source instanceof AnyType_js_1.AnyType || target instanceof AnyType_js_1.AnyType) {
91
124
  return true;
92
125
  }
126
+ // assigning to unknown type is always possible
93
127
  if (target instanceof UnknownType_js_1.UnknownType) {
94
128
  return true;
95
129
  }
130
+ // 'null', or 'undefined' can be assigned to the void
96
131
  if (target instanceof VoidType_js_1.VoidType) {
97
132
  return source instanceof NullType_js_1.NullType || source instanceof UndefinedType_js_1.UndefinedType;
98
133
  }
134
+ // Union and enum type is assignable to target when all types in the union/enum are assignable to it
99
135
  if (source instanceof UnionType_js_1.UnionType || source instanceof EnumType_js_1.EnumType) {
100
136
  return source.getTypes().every((type) => isAssignableTo(target, type, inferMap, insideTypes));
101
137
  }
138
+ // When source is an intersection type then it can be assigned to target if any of the sub types matches. Object
139
+ // types within the intersection must be combined first
102
140
  if (source instanceof IntersectionType_js_1.IntersectionType) {
103
141
  return combineIntersectingTypes(source).some((type) => isAssignableTo(target, type, inferMap, insideTypes));
104
142
  }
143
+ // For arrays check if item types are assignable
105
144
  if (target instanceof ArrayType_js_1.ArrayType) {
106
145
  const targetItemType = target.getItem();
107
146
  if (source instanceof ArrayType_js_1.ArrayType) {
@@ -114,28 +153,36 @@ function isAssignableTo(target, source, inferMap = new Map(), insideTypes = new
114
153
  return false;
115
154
  }
116
155
  }
156
+ // When target is a union or enum type then check if source type can be assigned to any variant
117
157
  if (target instanceof UnionType_js_1.UnionType || target instanceof EnumType_js_1.EnumType) {
118
158
  return target.getTypes().some((type) => isAssignableTo(type, source, inferMap, insideTypes));
119
159
  }
160
+ // When target is an intersection type then source can be assigned to it if it matches all sub types. Object
161
+ // types within the intersection must be combined first
120
162
  if (target instanceof IntersectionType_js_1.IntersectionType) {
121
163
  return combineIntersectingTypes(target).every((type) => isAssignableTo(type, source, inferMap, insideTypes));
122
164
  }
165
+ // Check literal types
123
166
  if (source instanceof LiteralType_js_1.LiteralType) {
124
167
  return isAssignableTo(target, getPrimitiveType(source.getValue()), inferMap);
125
168
  }
126
169
  if (target instanceof ObjectType_js_1.ObjectType) {
170
+ // primitives are not assignable to `object`
127
171
  if (target.getNonPrimitive() &&
128
172
  (source instanceof NumberType_js_1.NumberType || source instanceof StringType_js_1.StringType || source instanceof BooleanType_js_1.BooleanType)) {
129
173
  return false;
130
174
  }
131
175
  const targetMembers = getObjectProperties(target);
132
176
  if (targetMembers.length === 0) {
177
+ // When target object is empty then anything except null and undefined can be assigned to it
133
178
  return !isAssignableTo(new UnionType_js_1.UnionType([new UndefinedType_js_1.UndefinedType(), new NullType_js_1.NullType()]), source, inferMap, insideTypes);
134
179
  }
135
180
  else if (source instanceof ObjectType_js_1.ObjectType) {
136
181
  const sourceMembers = getObjectProperties(source);
182
+ // Check if target has properties in common with source
137
183
  const inCommon = targetMembers.some((targetMember) => sourceMembers.some((sourceMember) => targetMember.getName() === sourceMember.getName()));
138
184
  return (targetMembers.every((targetMember) => {
185
+ // Make sure that every required property in target type is present
139
186
  const sourceMember = sourceMembers.find((member) => targetMember.getName() === member.getName());
140
187
  return sourceMember == null ? inCommon && !targetMember.isRequired() : true;
141
188
  }) &&
@@ -164,10 +211,14 @@ function isAssignableTo(target, source, inferMap = new Map(), insideTypes = new
164
211
  }
165
212
  }
166
213
  }
214
+ // Check if tuple types are compatible
167
215
  if (target instanceof TupleType_js_1.TupleType) {
168
216
  if (source instanceof TupleType_js_1.TupleType) {
169
217
  const sourceMembers = source.getTypes();
170
218
  const targetMembers = target.getTypes();
219
+ // TODO: Currently, the final element of the target tuple may be a
220
+ // rest type. However, since TypeScript 4.0, a tuple may contain
221
+ // multiple rest types at arbitrary locations.
171
222
  return targetMembers.every((targetMember, i) => {
172
223
  const numTarget = targetMembers.length;
173
224
  const numSource = sourceMembers.length;
@@ -180,6 +231,9 @@ function isAssignableTo(target, source, inferMap = new Map(), insideTypes = new
180
231
  }
181
232
  return isAssignableTo(targetMember.getType(), new TupleType_js_1.TupleType(remaining), inferMap, insideTypes);
182
233
  }
234
+ // The type cannot be assigned if more than one source
235
+ // member is remaining and the final target type is not
236
+ // a rest type.
183
237
  else if (numTarget < numSource) {
184
238
  return false;
185
239
  }
@@ -1 +1 @@
1
- {"version":3,"file":"isAssignableTo.js","sourceRoot":"","sources":["../../../src/Utils/isAssignableTo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"isAssignableTo.js","sourceRoot":"","sources":["../../../src/Utils/isAssignableTo.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,23 @@
1
1
  import ts from "typescript";
2
+ /**
3
+ * Checks if given node has the given modifier.
4
+ *
5
+ * @param node - The node to check.
6
+ * @param modifier - The modifier to look for.
7
+ * @return True if node has the modifier, false if not.
8
+ */
2
9
  export declare function hasModifier(node: ts.HasModifiers, modifier: ts.SyntaxKind): boolean;
10
+ /**
11
+ * Checks if given node is public. A node is public if it has the public modifier or has no modifiers at all.
12
+ *
13
+ * @param node - The node to check.
14
+ * @return True if node is public, false if not.
15
+ */
3
16
  export declare function isPublic(node: ts.HasModifiers): boolean;
17
+ /**
18
+ * Checks if given node has the static modifier.
19
+ *
20
+ * @param node - The node to check.
21
+ * @return True if node is static, false if not.
22
+ */
4
23
  export declare function isStatic(node: ts.HasModifiers): boolean;
@@ -5,6 +5,13 @@ exports.isPublic = isPublic;
5
5
  exports.isStatic = isStatic;
6
6
  const tslib_1 = require("tslib");
7
7
  const typescript_1 = tslib_1.__importDefault(require("typescript"));
8
+ /**
9
+ * Checks if given node has the given modifier.
10
+ *
11
+ * @param node - The node to check.
12
+ * @param modifier - The modifier to look for.
13
+ * @return True if node has the modifier, false if not.
14
+ */
8
15
  function hasModifier(node, modifier) {
9
16
  const nodeModifiers = node.modifiers;
10
17
  if (nodeModifiers == null) {
@@ -14,9 +21,21 @@ function hasModifier(node, modifier) {
14
21
  return nodeModifiers.some((nodeModifier) => nodeModifier.kind === modifier);
15
22
  }
16
23
  }
24
+ /**
25
+ * Checks if given node is public. A node is public if it has the public modifier or has no modifiers at all.
26
+ *
27
+ * @param node - The node to check.
28
+ * @return True if node is public, false if not.
29
+ */
17
30
  function isPublic(node) {
18
31
  return !(hasModifier(node, typescript_1.default.SyntaxKind.PrivateKeyword) || hasModifier(node, typescript_1.default.SyntaxKind.ProtectedKeyword));
19
32
  }
33
+ /**
34
+ * Checks if given node has the static modifier.
35
+ *
36
+ * @param node - The node to check.
37
+ * @return True if node is static, false if not.
38
+ */
20
39
  function isStatic(node) {
21
40
  return hasModifier(node, typescript_1.default.SyntaxKind.StaticKeyword);
22
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"modifiers.js","sourceRoot":"","sources":["../../../src/Utils/modifiers.ts"],"names":[],"mappings":";;AASA,kCAOC;AAQD,4BAEC;AAQD,4BAEC;;AApCD,oEAA4B;AAS5B,SAAgB,WAAW,CAAC,IAAqB,EAAE,QAAuB;IACtE,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;IACrC,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACjB,CAAC;SAAM,CAAC;QACJ,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAChF,CAAC;AACL,CAAC;AAQD,SAAgB,QAAQ,CAAC,IAAqB;IAC1C,OAAO,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,oBAAE,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,oBAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACnH,CAAC;AAQD,SAAgB,QAAQ,CAAC,IAAqB;IAC1C,OAAO,WAAW,CAAC,IAAI,EAAE,oBAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAC1D,CAAC"}
1
+ {"version":3,"file":"modifiers.js","sourceRoot":"","sources":["../../../src/Utils/modifiers.ts"],"names":[],"mappings":";;AASA,kCAOC;AAQD,4BAEC;AAQD,4BAEC;;AApCD,oEAA4B;AAE5B;;;;;;GAMG;AACH,SAAgB,WAAW,CAAC,IAAqB,EAAE,QAAuB;IACtE,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;IACrC,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACjB,CAAC;SAAM,CAAC;QACJ,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAChF,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,SAAgB,QAAQ,CAAC,IAAqB;IAC1C,OAAO,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,oBAAE,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,oBAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACnH,CAAC;AAED;;;;;GAKG;AACH,SAAgB,QAAQ,CAAC,IAAqB;IAC1C,OAAO,WAAW,CAAC,IAAI,EAAE,oBAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAC1D,CAAC"}
@@ -1,2 +1,14 @@
1
1
  import type { BaseType } from "../Type/BaseType.js";
2
+ /**
3
+ * Narrows the given type by passing all variants to the given predicate function. So when type is a union type then
4
+ * the predicate function is called for each type within the union and only the types for which this function returns
5
+ * true will remain in the returned type. Union types with only one sub type left are replaced by this one-and-only
6
+ * type. Empty union types are removed completely. Definition types are kept if possible. When in the end none of
7
+ * the type candidates match the predicate then undefined is returned.
8
+ *
9
+ * @param type - The type to narrow down.
10
+ * @param predicate - The predicate function to filter the type variants. If it returns true then the type variant is
11
+ * kept, when returning false it is removed.
12
+ * @return The narrowed down type.
13
+ */
2
14
  export declare function narrowType(type: BaseType, predicate: (type: BaseType) => boolean): BaseType;