quicktype-core 23.1.4 → 23.2.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 (287) hide show
  1. package/dist/ConvenienceRenderer.d.ts +2 -2
  2. package/dist/ConvenienceRenderer.js +36 -26
  3. package/dist/CycleBreaker.js +2 -3
  4. package/dist/DateTime.js +3 -1
  5. package/dist/DeclarationIR.d.ts +2 -2
  6. package/dist/DeclarationIR.js +13 -7
  7. package/dist/GatherNames.d.ts +1 -1
  8. package/dist/GatherNames.js +41 -24
  9. package/dist/Graph.js +3 -3
  10. package/dist/GraphRewriting.d.ts +3 -3
  11. package/dist/GraphRewriting.js +16 -17
  12. package/dist/Inference.d.ts +79 -0
  13. package/dist/Inference.js +75 -0
  14. package/dist/MakeTransformations.d.ts +3 -3
  15. package/dist/MakeTransformations.js +10 -13
  16. package/dist/MarkovChain.js +7 -8
  17. package/dist/Messages.d.ts +2 -2
  18. package/dist/Messages.js +6 -5
  19. package/dist/Naming.js +26 -24
  20. package/dist/Renderer.d.ts +3 -3
  21. package/dist/Renderer.js +9 -3
  22. package/dist/RendererOptions/index.d.ts +4 -4
  23. package/dist/RendererOptions/index.js +13 -13
  24. package/dist/Run.d.ts +5 -83
  25. package/dist/Run.js +109 -123
  26. package/dist/Source.d.ts +1 -1
  27. package/dist/Source.js +26 -20
  28. package/dist/TargetLanguage.d.ts +9 -9
  29. package/dist/TargetLanguage.js +2 -2
  30. package/dist/Transformers.d.ts +2 -2
  31. package/dist/Transformers.js +42 -53
  32. package/dist/Type/ProvenanceTypeAttributeKind.js +1 -1
  33. package/dist/Type/TransformedStringType.d.ts +3 -3
  34. package/dist/Type/TransformedStringType.js +25 -14
  35. package/dist/Type/Type.d.ts +5 -5
  36. package/dist/Type/Type.js +66 -46
  37. package/dist/Type/TypeBuilder.d.ts +1 -1
  38. package/dist/Type/TypeBuilder.js +23 -23
  39. package/dist/Type/TypeBuilderUtils.js +3 -4
  40. package/dist/Type/TypeGraph.d.ts +2 -2
  41. package/dist/Type/TypeGraph.js +11 -7
  42. package/dist/Type/TypeGraphUtils.d.ts +2 -2
  43. package/dist/Type/TypeGraphUtils.js +10 -8
  44. package/dist/Type/TypeRef.d.ts +4 -4
  45. package/dist/Type/TypeRef.js +7 -8
  46. package/dist/Type/TypeUtils.js +38 -36
  47. package/dist/UnifyClasses.d.ts +2 -2
  48. package/dist/UnifyClasses.js +32 -21
  49. package/dist/UnionBuilder.d.ts +2 -2
  50. package/dist/UnionBuilder.js +32 -19
  51. package/dist/attributes/AccessorNames.d.ts +3 -3
  52. package/dist/attributes/AccessorNames.js +22 -18
  53. package/dist/attributes/Constraints.d.ts +3 -3
  54. package/dist/attributes/Constraints.js +11 -9
  55. package/dist/attributes/Description.d.ts +2 -2
  56. package/dist/attributes/Description.js +9 -6
  57. package/dist/attributes/EnumValues.d.ts +3 -3
  58. package/dist/attributes/EnumValues.js +8 -6
  59. package/dist/attributes/StringTypes.d.ts +2 -2
  60. package/dist/attributes/StringTypes.js +17 -14
  61. package/dist/attributes/TypeAttributes.d.ts +2 -2
  62. package/dist/attributes/TypeAttributes.js +4 -4
  63. package/dist/attributes/TypeNames.js +36 -22
  64. package/dist/attributes/URIAttributes.d.ts +2 -2
  65. package/dist/attributes/URIAttributes.js +16 -8
  66. package/dist/index.d.ts +14 -13
  67. package/dist/index.js +5 -4
  68. package/dist/input/CompressedJSON.d.ts +1 -1
  69. package/dist/input/CompressedJSON.js +10 -7
  70. package/dist/input/Inference.d.ts +1 -1
  71. package/dist/input/Inference.js +22 -14
  72. package/dist/input/Inputs.d.ts +4 -4
  73. package/dist/input/Inputs.js +12 -12
  74. package/dist/input/JSONSchemaInput.d.ts +3 -3
  75. package/dist/input/JSONSchemaInput.js +105 -68
  76. package/dist/input/PathElement.js +1 -1
  77. package/dist/input/PostmanCollection.d.ts +1 -1
  78. package/dist/input/PostmanCollection.js +28 -11
  79. package/dist/input/io/NodeIO.d.ts +1 -1
  80. package/dist/input/io/NodeIO.js +35 -16
  81. package/dist/input/io/get-stream/buffer-stream.d.ts +8 -2
  82. package/dist/input/io/get-stream/buffer-stream.js +2 -4
  83. package/dist/input/io/get-stream/index.d.ts +1 -1
  84. package/dist/input/io/get-stream/index.js +8 -9
  85. package/dist/language/All.d.ts +2 -2
  86. package/dist/language/All.js +8 -8
  87. package/dist/language/CJSON/CJSONRenderer.d.ts +9 -11
  88. package/dist/language/CJSON/CJSONRenderer.js +1272 -444
  89. package/dist/language/CJSON/constants.js +1 -1
  90. package/dist/language/CJSON/language.d.ts +3 -3
  91. package/dist/language/CJSON/language.js +7 -7
  92. package/dist/language/CJSON/utils.d.ts +3 -3
  93. package/dist/language/CJSON/utils.js +3 -3
  94. package/dist/language/CPlusPlus/CPlusPlusRenderer.d.ts +5 -5
  95. package/dist/language/CPlusPlus/CPlusPlusRenderer.js +350 -179
  96. package/dist/language/CPlusPlus/constants.js +1 -1
  97. package/dist/language/CPlusPlus/language.d.ts +4 -4
  98. package/dist/language/CPlusPlus/language.js +8 -8
  99. package/dist/language/CPlusPlus/utils.d.ts +3 -3
  100. package/dist/language/CPlusPlus/utils.js +10 -8
  101. package/dist/language/CSharp/CSharpRenderer.d.ts +6 -6
  102. package/dist/language/CSharp/CSharpRenderer.js +57 -19
  103. package/dist/language/CSharp/NewtonSoftCSharpRenderer.d.ts +4 -4
  104. package/dist/language/CSharp/NewtonSoftCSharpRenderer.js +124 -46
  105. package/dist/language/CSharp/SystemTextJsonCSharpRenderer.d.ts +4 -4
  106. package/dist/language/CSharp/SystemTextJsonCSharpRenderer.js +106 -44
  107. package/dist/language/CSharp/constants.js +1 -1
  108. package/dist/language/CSharp/index.d.ts +1 -1
  109. package/dist/language/CSharp/language.d.ts +12 -12
  110. package/dist/language/CSharp/language.js +29 -13
  111. package/dist/language/CSharp/utils.d.ts +2 -2
  112. package/dist/language/CSharp/utils.js +13 -13
  113. package/dist/language/Crystal/CrystalRenderer.d.ts +4 -4
  114. package/dist/language/Crystal/CrystalRenderer.js +14 -4
  115. package/dist/language/Crystal/constants.js +1 -1
  116. package/dist/language/Crystal/language.d.ts +1 -1
  117. package/dist/language/Crystal/language.js +1 -1
  118. package/dist/language/Dart/DartRenderer.d.ts +4 -4
  119. package/dist/language/Dart/DartRenderer.js +120 -38
  120. package/dist/language/Dart/constants.js +1 -1
  121. package/dist/language/Dart/language.d.ts +4 -4
  122. package/dist/language/Dart/language.js +6 -2
  123. package/dist/language/Dart/utils.js +11 -8
  124. package/dist/language/Elixir/ElixirRenderer.d.ts +5 -5
  125. package/dist/language/Elixir/ElixirRenderer.js +302 -178
  126. package/dist/language/Elixir/constants.js +2 -2
  127. package/dist/language/Elixir/language.d.ts +3 -3
  128. package/dist/language/Elixir/language.js +2 -2
  129. package/dist/language/Elixir/utils.js +8 -7
  130. package/dist/language/Elm/ElmRenderer.d.ts +5 -5
  131. package/dist/language/Elm/ElmRenderer.js +32 -32
  132. package/dist/language/Elm/constants.js +1 -1
  133. package/dist/language/Elm/language.d.ts +3 -3
  134. package/dist/language/Elm/language.js +3 -3
  135. package/dist/language/Elm/utils.js +7 -6
  136. package/dist/language/Golang/GolangRenderer.d.ts +4 -4
  137. package/dist/language/Golang/GolangRenderer.js +34 -39
  138. package/dist/language/Golang/language.d.ts +4 -4
  139. package/dist/language/Golang/language.js +2 -2
  140. package/dist/language/Golang/utils.d.ts +1 -1
  141. package/dist/language/Golang/utils.js +13 -5
  142. package/dist/language/Haskell/HaskellRenderer.d.ts +6 -6
  143. package/dist/language/Haskell/HaskellRenderer.js +21 -21
  144. package/dist/language/Haskell/constants.js +1 -1
  145. package/dist/language/Haskell/language.d.ts +3 -3
  146. package/dist/language/Haskell/language.js +3 -3
  147. package/dist/language/Haskell/utils.js +3 -3
  148. package/dist/language/JSONSchema/JSONSchemaRenderer.d.ts +1 -1
  149. package/dist/language/JSONSchema/JSONSchemaRenderer.js +14 -9
  150. package/dist/language/JSONSchema/language.d.ts +3 -3
  151. package/dist/language/JSONSchema/language.js +1 -1
  152. package/dist/language/JSONSchema/utils.js +2 -2
  153. package/dist/language/Java/DateTimeProvider.d.ts +2 -2
  154. package/dist/language/Java/DateTimeProvider.js +25 -9
  155. package/dist/language/Java/JavaJacksonRenderer.d.ts +5 -5
  156. package/dist/language/Java/JavaJacksonRenderer.js +57 -28
  157. package/dist/language/Java/JavaRenderer.d.ts +4 -4
  158. package/dist/language/Java/JavaRenderer.js +65 -46
  159. package/dist/language/Java/constants.js +2 -2
  160. package/dist/language/Java/language.d.ts +4 -4
  161. package/dist/language/Java/language.js +2 -2
  162. package/dist/language/Java/utils.js +11 -4
  163. package/dist/language/JavaScript/JavaScriptRenderer.d.ts +5 -5
  164. package/dist/language/JavaScript/JavaScriptRenderer.js +19 -12
  165. package/dist/language/JavaScript/index.d.ts +1 -1
  166. package/dist/language/JavaScript/language.d.ts +4 -4
  167. package/dist/language/JavaScript/language.js +3 -3
  168. package/dist/language/JavaScript/unicodeMaps.js +127 -79
  169. package/dist/language/JavaScriptPropTypes/JavaScriptPropTypesRenderer.d.ts +5 -5
  170. package/dist/language/JavaScriptPropTypes/JavaScriptPropTypesRenderer.js +32 -16
  171. package/dist/language/JavaScriptPropTypes/index.d.ts +1 -1
  172. package/dist/language/JavaScriptPropTypes/language.d.ts +4 -4
  173. package/dist/language/JavaScriptPropTypes/language.js +3 -3
  174. package/dist/language/Kotlin/KotlinJacksonRenderer.d.ts +5 -5
  175. package/dist/language/Kotlin/KotlinJacksonRenderer.js +58 -23
  176. package/dist/language/Kotlin/KotlinKlaxonRenderer.d.ts +5 -5
  177. package/dist/language/Kotlin/KotlinKlaxonRenderer.js +91 -27
  178. package/dist/language/Kotlin/KotlinRenderer.d.ts +4 -4
  179. package/dist/language/Kotlin/KotlinRenderer.js +45 -22
  180. package/dist/language/Kotlin/KotlinXRenderer.d.ts +6 -6
  181. package/dist/language/Kotlin/KotlinXRenderer.js +6 -2
  182. package/dist/language/Kotlin/constants.js +1 -1
  183. package/dist/language/Kotlin/language.d.ts +5 -5
  184. package/dist/language/Kotlin/language.js +5 -5
  185. package/dist/language/Kotlin/utils.js +2 -3
  186. package/dist/language/Objective-C/ObjectiveCRenderer.d.ts +4 -4
  187. package/dist/language/Objective-C/ObjectiveCRenderer.js +164 -67
  188. package/dist/language/Objective-C/constants.js +3 -3
  189. package/dist/language/Objective-C/language.d.ts +3 -3
  190. package/dist/language/Objective-C/language.js +3 -3
  191. package/dist/language/Objective-C/utils.js +9 -7
  192. package/dist/language/Php/PhpRenderer.d.ts +5 -5
  193. package/dist/language/Php/PhpRenderer.js +168 -70
  194. package/dist/language/Php/language.d.ts +4 -4
  195. package/dist/language/Php/language.js +2 -2
  196. package/dist/language/Php/utils.js +11 -4
  197. package/dist/language/Pike/PikeRenderer.d.ts +1 -1
  198. package/dist/language/Pike/PikeRenderer.js +39 -20
  199. package/dist/language/Pike/constants.js +1 -1
  200. package/dist/language/Pike/language.d.ts +1 -1
  201. package/dist/language/Pike/language.js +1 -1
  202. package/dist/language/Python/JSONPythonRenderer.d.ts +1 -1
  203. package/dist/language/Python/JSONPythonRenderer.js +202 -80
  204. package/dist/language/Python/PythonRenderer.d.ts +4 -4
  205. package/dist/language/Python/PythonRenderer.js +77 -31
  206. package/dist/language/Python/constants.js +2 -2
  207. package/dist/language/Python/language.d.ts +13 -13
  208. package/dist/language/Python/language.js +9 -7
  209. package/dist/language/Python/utils.js +2 -3
  210. package/dist/language/Ruby/RubyRenderer.d.ts +4 -4
  211. package/dist/language/Ruby/RubyRenderer.js +179 -54
  212. package/dist/language/Ruby/constants.js +4 -4
  213. package/dist/language/Ruby/language.d.ts +3 -3
  214. package/dist/language/Ruby/language.js +3 -3
  215. package/dist/language/Ruby/utils.d.ts +1 -1
  216. package/dist/language/Ruby/utils.js +23 -12
  217. package/dist/language/Rust/RustRenderer.d.ts +5 -5
  218. package/dist/language/Rust/RustRenderer.js +18 -6
  219. package/dist/language/Rust/constants.js +1 -1
  220. package/dist/language/Rust/language.d.ts +3 -3
  221. package/dist/language/Rust/language.js +4 -4
  222. package/dist/language/Rust/utils.js +25 -19
  223. package/dist/language/Scala3/CirceRenderer.d.ts +3 -3
  224. package/dist/language/Scala3/CirceRenderer.js +51 -14
  225. package/dist/language/Scala3/Scala3Renderer.d.ts +4 -4
  226. package/dist/language/Scala3/Scala3Renderer.js +34 -19
  227. package/dist/language/Scala3/constants.js +2 -2
  228. package/dist/language/Scala3/language.d.ts +4 -4
  229. package/dist/language/Scala3/language.js +4 -4
  230. package/dist/language/Scala3/utils.js +8 -8
  231. package/dist/language/Smithy4s/Smithy4sRenderer.d.ts +4 -4
  232. package/dist/language/Smithy4s/Smithy4sRenderer.js +34 -23
  233. package/dist/language/Smithy4s/constants.js +2 -2
  234. package/dist/language/Smithy4s/language.d.ts +4 -4
  235. package/dist/language/Smithy4s/language.js +3 -3
  236. package/dist/language/Smithy4s/utils.js +8 -8
  237. package/dist/language/Swift/SwiftRenderer.d.ts +4 -4
  238. package/dist/language/Swift/SwiftRenderer.js +90 -55
  239. package/dist/language/Swift/constants.js +1 -1
  240. package/dist/language/Swift/language.d.ts +5 -5
  241. package/dist/language/Swift/language.js +6 -6
  242. package/dist/language/Swift/utils.d.ts +3 -3
  243. package/dist/language/Swift/utils.js +2 -2
  244. package/dist/language/TypeScriptEffectSchema/TypeScriptEffectSchemaRenderer.d.ts +4 -4
  245. package/dist/language/TypeScriptEffectSchema/TypeScriptEffectSchemaRenderer.js +23 -11
  246. package/dist/language/TypeScriptEffectSchema/index.d.ts +1 -1
  247. package/dist/language/TypeScriptEffectSchema/language.d.ts +3 -3
  248. package/dist/language/TypeScriptEffectSchema/language.js +2 -2
  249. package/dist/language/TypeScriptFlow/FlowRenderer.d.ts +3 -3
  250. package/dist/language/TypeScriptFlow/TypeScriptFlowBaseRenderer.d.ts +4 -4
  251. package/dist/language/TypeScriptFlow/TypeScriptFlowBaseRenderer.js +53 -25
  252. package/dist/language/TypeScriptFlow/TypeScriptRenderer.d.ts +3 -3
  253. package/dist/language/TypeScriptFlow/TypeScriptRenderer.js +17 -3
  254. package/dist/language/TypeScriptFlow/index.d.ts +1 -1
  255. package/dist/language/TypeScriptFlow/language.d.ts +5 -5
  256. package/dist/language/TypeScriptFlow/language.js +3 -3
  257. package/dist/language/TypeScriptFlow/utils.js +3 -3
  258. package/dist/language/TypeScriptZod/TypeScriptZodRenderer.d.ts +5 -5
  259. package/dist/language/TypeScriptZod/TypeScriptZodRenderer.js +23 -14
  260. package/dist/language/TypeScriptZod/language.d.ts +4 -4
  261. package/dist/language/TypeScriptZod/language.js +2 -2
  262. package/dist/language/index.d.ts +1 -1
  263. package/dist/language/types.d.ts +2 -2
  264. package/dist/rewrites/CombineClasses.d.ts +2 -2
  265. package/dist/rewrites/CombineClasses.js +12 -8
  266. package/dist/rewrites/ExpandStrings.d.ts +2 -2
  267. package/dist/rewrites/ExpandStrings.js +16 -12
  268. package/dist/rewrites/FlattenStrings.d.ts +2 -2
  269. package/dist/rewrites/FlattenStrings.js +2 -3
  270. package/dist/rewrites/FlattenUnions.d.ts +2 -2
  271. package/dist/rewrites/FlattenUnions.js +7 -8
  272. package/dist/rewrites/InferMaps.d.ts +2 -2
  273. package/dist/rewrites/InferMaps.js +9 -8
  274. package/dist/rewrites/ReplaceObjectType.d.ts +2 -2
  275. package/dist/rewrites/ReplaceObjectType.js +9 -9
  276. package/dist/rewrites/ResolveIntersections.d.ts +2 -2
  277. package/dist/rewrites/ResolveIntersections.js +43 -31
  278. package/dist/support/Acronyms.const.js +1 -1
  279. package/dist/support/Acronyms.js +10 -12
  280. package/dist/support/Chance.js +37 -17
  281. package/dist/support/Comments.d.ts +1 -1
  282. package/dist/support/Converters.js +4 -4
  283. package/dist/support/Strings.js +58 -50
  284. package/dist/support/Support.d.ts +1 -1
  285. package/dist/support/Support.js +39 -26
  286. package/dist/types.d.ts +0 -2
  287. package/package.json +2 -2
@@ -3,7 +3,7 @@ import { DependencyName, type Name, type Namer, Namespace } from "./Naming";
3
3
  import { type BlankLineConfig, type ForEachPosition, type RenderContext, Renderer } from "./Renderer";
4
4
  import { type Sourcelike } from "./Source";
5
5
  import { type Comment, type CommentOptions } from "./support/Comments";
6
- import { type TargetLanguage } from "./TargetLanguage";
6
+ import type { TargetLanguage } from "./TargetLanguage";
7
7
  import { type Transformation } from "./Transformers";
8
8
  import { type ClassProperty, ClassType, EnumType, ObjectType, type Type, type TypeKind, UnionType } from "./Type";
9
9
  export declare const topLevelNameOrder = 1;
@@ -130,7 +130,7 @@ export declare abstract class ConvenienceRenderer extends Renderer {
130
130
  protected sourcelikeToString(src: Sourcelike): string;
131
131
  protected get commentLineStart(): string;
132
132
  protected emitComments(comments: Comment[]): void;
133
- protected emitCommentLines(lines: Sourcelike[], { lineStart, firstLineStart, lineEnd, beforeComment, afterComment }?: CommentOptions): void;
133
+ protected emitCommentLines(lines: Sourcelike[], { lineStart, firstLineStart, lineEnd, beforeComment, afterComment, }?: CommentOptions): void;
134
134
  protected emitDescription(description: Sourcelike[] | undefined): void;
135
135
  protected emitDescriptionBlock(lines: Sourcelike[]): void;
136
136
  protected emitPropertyTable(c: ClassType, makePropertyRow: (name: Name, jsonName: string, p: ClassProperty) => Sourcelike[]): void;
@@ -37,7 +37,7 @@ function splitDescription(descriptions) {
37
37
  return undefined;
38
38
  return wordWrap(description)
39
39
  .split("\n")
40
- .map(l => l.trim());
40
+ .map((l) => l.trim());
41
41
  }
42
42
  const assignedNameAttributeKind = new TypeAttributes_1.TypeAttributeKind("assignedName");
43
43
  const assignedPropertyNamesAttributeKind = new TypeAttributes_1.TypeAttributeKind("assignedPropertyNames");
@@ -117,7 +117,7 @@ class ConvenienceRenderer extends Renderer_1.Renderer {
117
117
  return (0, Support_1.defined)(this._nameStoreView);
118
118
  }
119
119
  descriptionForType(t) {
120
- let description = this.typeGraph.attributeStore.tryGet(Description_1.descriptionTypeAttributeKind, t);
120
+ const description = this.typeGraph.attributeStore.tryGet(Description_1.descriptionTypeAttributeKind, t);
121
121
  return splitDescription(description);
122
122
  }
123
123
  descriptionForClassProperty(o, name) {
@@ -139,7 +139,7 @@ class ConvenienceRenderer extends Renderer_1.Renderer {
139
139
  this._otherForbiddenNamespaces = new Map();
140
140
  this._globalNamespace = new Naming_1.Namespace("global", undefined, [this._globalForbiddenNamespace], []);
141
141
  const { objects, enums, unions } = this.typeGraph.allNamedTypesSeparated();
142
- const namedUnions = (0, collection_utils_1.setFilter)(unions, u => this.unionNeedsName(u));
142
+ const namedUnions = (0, collection_utils_1.setFilter)(unions, (u) => this.unionNeedsName(u));
143
143
  for (const [name, t] of this.topLevels) {
144
144
  this.nameStoreView.setForTopLevel(name, this.addNameForTopLevel(t, name));
145
145
  }
@@ -263,8 +263,12 @@ class ConvenienceRenderer extends Renderer_1.Renderer {
263
263
  // maybe we'll need global properties for some weird language at
264
264
  // some point.
265
265
  const alternative = `${o.getCombinedName()}_${jsonName}`;
266
- const order = assignedName === undefined ? classPropertyNameOrder : assignedClassPropertyNameOrder;
267
- const names = assignedName === undefined ? [jsonName, alternative] : [assignedName];
266
+ const order = assignedName === undefined
267
+ ? classPropertyNameOrder
268
+ : assignedClassPropertyNameOrder;
269
+ const names = assignedName === undefined
270
+ ? [jsonName, alternative]
271
+ : [assignedName];
268
272
  return new Naming_1.SimpleName(names, namer, order);
269
273
  }
270
274
  makePropertyDependencyNames(_o, _className, _p, _jsonName, _name) {
@@ -301,7 +305,7 @@ class ConvenienceRenderer extends Renderer_1.Renderer {
301
305
  if (isFixed) {
302
306
  return new Naming_1.FixedName((0, Support_1.defined)(assignedName));
303
307
  }
304
- return new Naming_1.DependencyName((0, Support_1.nonNull)(this._unionMemberNamer), unionMemberNameOrder, lookup => {
308
+ return new Naming_1.DependencyName((0, Support_1.nonNull)(this._unionMemberNamer), unionMemberNameOrder, (lookup) => {
305
309
  if (assignedName !== undefined)
306
310
  return assignedName;
307
311
  return this.proposeUnionMemberName(u, unionName, t, lookup);
@@ -319,7 +323,7 @@ class ConvenienceRenderer extends Renderer_1.Renderer {
319
323
  else {
320
324
  ns = new Naming_1.Namespace(u.getCombinedName(), this.globalNamespace, forbiddenNamespaces, forbiddenNames);
321
325
  }
322
- let names = new Map();
326
+ const names = new Map();
323
327
  for (const t of u.members) {
324
328
  const name = this.makeNameForUnionMember(u, unionName, (0, Transformers_1.followTargetType)(t));
325
329
  names.set(t, ns.add(name));
@@ -330,8 +334,12 @@ class ConvenienceRenderer extends Renderer_1.Renderer {
330
334
  // FIXME: See the FIXME in `makeNameForProperty`. We do have global
331
335
  // enum cases, though (in Go), so this is actually useful already.
332
336
  const alternative = `${e.getCombinedName()}_${caseName}`;
333
- const order = assignedName === undefined ? enumCaseNameOrder : assignedEnumCaseNameOrder;
334
- const names = assignedName === undefined ? [caseName, alternative] : [assignedName];
337
+ const order = assignedName === undefined
338
+ ? enumCaseNameOrder
339
+ : assignedEnumCaseNameOrder;
340
+ const names = assignedName === undefined
341
+ ? [caseName, alternative]
342
+ : [assignedName];
335
343
  return new Naming_1.SimpleName(names, (0, Support_1.nonNull)(this._enumCaseNamer), order);
336
344
  }
337
345
  // FIXME: this is very similar to addPropertyNameds and addUnionMemberNames
@@ -346,7 +354,7 @@ class ConvenienceRenderer extends Renderer_1.Renderer {
346
354
  else {
347
355
  ns = new Naming_1.Namespace(e.getCombinedName(), this.globalNamespace, forbiddenNamespaces, forbiddenNames);
348
356
  }
349
- let names = new Map();
357
+ const names = new Map();
350
358
  const accessorNames = (0, AccessorNames_1.enumCaseNames)(e, this.targetLanguage.name);
351
359
  for (const caseName of e.cases) {
352
360
  const [assignedName, isFixed] = (0, AccessorNames_1.getAccessorName)(accessorNames, caseName);
@@ -409,12 +417,12 @@ class ConvenienceRenderer extends Renderer_1.Renderer {
409
417
  if (simpleName !== null) {
410
418
  return simpleName;
411
419
  }
412
- const typeNameForUnionMember = (t) => (0, TypeUtils_1.matchTypeExhaustive)(t, _noneType => {
420
+ const typeNameForUnionMember = (t) => (0, TypeUtils_1.matchTypeExhaustive)(t, (_noneType) => {
413
421
  return (0, Support_1.panic)("none type should have been replaced");
414
- }, _anyType => "anything", _nullType => "null", _boolType => "bool", _integerType => "integer", _doubleType => "double", _stringType => "string", arrayType => typeNameForUnionMember(arrayType.items) + "_array", classType => lookup(this.nameForNamedType(classType)), mapType => typeNameForUnionMember(mapType.values) + "_map", objectType => {
422
+ }, (_anyType) => "anything", (_nullType) => "null", (_boolType) => "bool", (_integerType) => "integer", (_doubleType) => "double", (_stringType) => "string", (arrayType) => typeNameForUnionMember(arrayType.items) + "_array", (classType) => lookup(this.nameForNamedType(classType)), (mapType) => typeNameForUnionMember(mapType.values) + "_map", (objectType) => {
415
423
  (0, Support_1.assert)(this.targetLanguage.supportsFullObjectType, "Object type should have been replaced in `replaceObjectType`");
416
424
  return lookup(this.nameForNamedType(objectType));
417
- }, _enumType => "enum", _unionType => "union", transformedType => transformedType.kind.replace("-", "_"));
425
+ }, (_enumType) => "enum", (_unionType) => "union", (transformedType) => transformedType.kind.replace("-", "_"));
418
426
  return typeNameForUnionMember(fieldType);
419
427
  }
420
428
  nameForNamedType(t) {
@@ -431,7 +439,7 @@ class ConvenienceRenderer extends Renderer_1.Renderer {
431
439
  }
432
440
  isCycleBreakerType(t) {
433
441
  if (this._cycleBreakerTypes === undefined) {
434
- this._cycleBreakerTypes = (0, DeclarationIR_1.cycleBreakerTypesForGraph)(this.typeGraph, s => this.isImplicitCycleBreaker(s), s => this.canBreakCycles(s));
442
+ this._cycleBreakerTypes = (0, DeclarationIR_1.cycleBreakerTypesForGraph)(this.typeGraph, (s) => this.isImplicitCycleBreaker(s), (s) => this.canBreakCycles(s));
435
443
  }
436
444
  return this._cycleBreakerTypes.has(t);
437
445
  }
@@ -466,9 +474,7 @@ class ConvenienceRenderer extends Renderer_1.Renderer {
466
474
  return (0, Support_1.defined)(this.names.get(name));
467
475
  });
468
476
  }
469
- else {
470
- return properties;
471
- }
477
+ return properties;
472
478
  }
473
479
  forEachClassProperty(o, blankLocations, f) {
474
480
  const propertyNames = (0, Support_1.defined)(this._propertyNamesStoreView).get(o);
@@ -496,7 +502,7 @@ class ConvenienceRenderer extends Renderer_1.Renderer {
496
502
  }
497
503
  forEachEnumCase(e, blankLocations, f) {
498
504
  const caseNames = (0, Support_1.defined)(this._caseNamesStoreView).get(e);
499
- const sortedCaseNames = (0, collection_utils_1.mapSortBy)(caseNames, n => (0, Support_1.defined)(this.names.get(n)));
505
+ const sortedCaseNames = (0, collection_utils_1.mapSortBy)(caseNames, (n) => (0, Support_1.defined)(this.names.get(n)));
500
506
  this.forEachWithBlankLines(sortedCaseNames, blankLocations, f);
501
507
  }
502
508
  forEachTransformation(blankLocations, f) {
@@ -554,7 +560,7 @@ class ConvenienceRenderer extends Renderer_1.Renderer {
554
560
  return "// ";
555
561
  }
556
562
  emitComments(comments) {
557
- comments.forEach(comment => {
563
+ comments.forEach((comment) => {
558
564
  if ((0, Comments_1.isStringComment)(comment)) {
559
565
  this.emitCommentLines([comment]);
560
566
  }
@@ -570,7 +576,7 @@ class ConvenienceRenderer extends Renderer_1.Renderer {
570
576
  this.ensureBlankLine();
571
577
  });
572
578
  }
573
- emitCommentLines(lines, { lineStart = this.commentLineStart, firstLineStart = lineStart, lineEnd, beforeComment, afterComment } = {}) {
579
+ emitCommentLines(lines, { lineStart = this.commentLineStart, firstLineStart = lineStart, lineEnd, beforeComment, afterComment, } = {}) {
574
580
  if (beforeComment !== undefined) {
575
581
  this.emitLine(beforeComment);
576
582
  }
@@ -620,18 +626,22 @@ class ConvenienceRenderer extends Renderer_1.Renderer {
620
626
  emitTable();
621
627
  }
622
628
  processGraph() {
623
- this._declarationIR = (0, DeclarationIR_1.declarationsForGraph)(this.typeGraph, this.needsTypeDeclarationBeforeUse ? (t) => this.canBeForwardDeclared(t) : undefined, t => this.childrenOfType(t), t => {
629
+ this._declarationIR = (0, DeclarationIR_1.declarationsForGraph)(this.typeGraph, this.needsTypeDeclarationBeforeUse
630
+ ? (t) => this.canBeForwardDeclared(t)
631
+ : undefined, (t) => this.childrenOfType(t), (t) => {
624
632
  if (t instanceof Type_1.UnionType) {
625
633
  return this.unionNeedsName(t);
626
634
  }
627
635
  return (0, TypeUtils_1.isNamedType)(t);
628
636
  });
629
637
  const types = this.typeGraph.allTypesUnordered();
630
- this._haveUnions = (0, collection_utils_1.iterableSome)(types, t => t instanceof Type_1.UnionType);
631
- this._haveMaps = (0, collection_utils_1.iterableSome)(types, t => t instanceof Type_1.MapType);
632
- const classTypes = (0, collection_utils_1.setFilter)(types, t => t instanceof Type_1.ClassType);
633
- this._haveOptionalProperties = (0, collection_utils_1.iterableSome)(classTypes, c => (0, collection_utils_1.mapSome)(c.getProperties(), p => p.isOptional));
634
- this._namedTypes = this._declarationIR.declarations.filter(d => d.kind === "define").map(d => d.type);
638
+ this._haveUnions = (0, collection_utils_1.iterableSome)(types, (t) => t instanceof Type_1.UnionType);
639
+ this._haveMaps = (0, collection_utils_1.iterableSome)(types, (t) => t instanceof Type_1.MapType);
640
+ const classTypes = (0, collection_utils_1.setFilter)(types, (t) => t instanceof Type_1.ClassType);
641
+ this._haveOptionalProperties = (0, collection_utils_1.iterableSome)(classTypes, (c) => (0, collection_utils_1.mapSome)(c.getProperties(), (p) => p.isOptional));
642
+ this._namedTypes = this._declarationIR.declarations
643
+ .filter((d) => d.kind === "define")
644
+ .map((d) => d.type);
635
645
  const { objects, enums, unions } = (0, TypeUtils_1.separateNamedTypes)(this._namedTypes);
636
646
  this._namedObjects = new Set(objects);
637
647
  this._namedEnums = new Set(enums);
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.breakCycles = void 0;
3
+ exports.breakCycles = breakCycles;
4
4
  const Support_1 = require("./support/Support");
5
5
  function breakCycles(outEdges, chooseBreaker) {
6
6
  const numNodes = outEdges.length;
@@ -72,7 +72,7 @@ function breakCycles(outEdges, chooseBreaker) {
72
72
  // We could count the number of reachable nodes for all nodes in the graph,
73
73
  // and then pick one of the nodes with the lowest number, which would pick
74
74
  // the dependee cycle.
75
- const maybeEdge = outEdges[n].find(x => !done[x]);
75
+ const maybeEdge = outEdges[n].find((x) => !done[x]);
76
76
  if (maybeEdge === undefined) {
77
77
  return (0, Support_1.panic)("Presumed cycle is not a cycle");
78
78
  }
@@ -95,4 +95,3 @@ function breakCycles(outEdges, chooseBreaker) {
95
95
  }
96
96
  return results;
97
97
  }
98
- exports.breakCycles = breakCycles;
package/dist/DateTime.js CHANGED
@@ -52,7 +52,9 @@ class DefaultDateTimeRecognizer {
52
52
  isDateTime(str) {
53
53
  // http://tools.ietf.org/html/rfc3339#section-5.6
54
54
  const dateTime = str.split(DATE_TIME_SEPARATOR);
55
- return dateTime.length === 2 && this.isDate(dateTime[0]) && this.isTime(dateTime[1]);
55
+ return (dateTime.length === 2 &&
56
+ this.isDate(dateTime[0]) &&
57
+ this.isTime(dateTime[1]));
56
58
  }
57
59
  }
58
60
  exports.DefaultDateTimeRecognizer = DefaultDateTimeRecognizer;
@@ -1,5 +1,5 @@
1
- import { type Type } from "./Type/Type";
2
- import { type TypeGraph } from "./Type/TypeGraph";
1
+ import type { Type } from "./Type/Type";
2
+ import type { TypeGraph } from "./Type/TypeGraph";
3
3
  export type DeclarationKind = "forward" | "define";
4
4
  export interface Declaration {
5
5
  readonly kind: DeclarationKind;
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.declarationsForGraph = exports.cycleBreakerTypesForGraph = exports.DeclarationIR = void 0;
3
+ exports.DeclarationIR = void 0;
4
+ exports.cycleBreakerTypesForGraph = cycleBreakerTypesForGraph;
5
+ exports.declarationsForGraph = declarationsForGraph;
4
6
  const collection_utils_1 = require("collection-utils");
5
7
  const Graph_1 = require("./Graph");
6
8
  const Messages_1 = require("./Messages");
@@ -62,7 +64,6 @@ function cycleBreakerTypesForGraph(graph, isImplicitCycleBreaker, canBreakCycles
62
64
  }
63
65
  return cycleBreakerTypes;
64
66
  }
65
- exports.cycleBreakerTypesForGraph = cycleBreakerTypesForGraph;
66
67
  function declarationsForGraph(typeGraph, canBeForwardDeclared, childrenOfType, needsDeclaration) {
67
68
  /*
68
69
  function nodeTitle(t: Type): string {
@@ -92,7 +93,10 @@ function declarationsForGraph(typeGraph, canBeForwardDeclared, childrenOfType, n
92
93
  // 1. Only one node in the cycle needs a declaration, in which
93
94
  // case it's the breaker, and no forward declaration is necessary.
94
95
  if (declarationNeeded.size === 1) {
95
- declarations.push({ kind: "define", type: (0, Support_1.defined)((0, collection_utils_1.iterableFirst)(declarationNeeded)) });
96
+ declarations.push({
97
+ kind: "define",
98
+ type: (0, Support_1.defined)((0, collection_utils_1.iterableFirst)(declarationNeeded)),
99
+ });
96
100
  return;
97
101
  }
98
102
  // 2. No node in the cycle needs a declaration, but it's also
@@ -105,7 +109,10 @@ function declarationsForGraph(typeGraph, canBeForwardDeclared, childrenOfType, n
105
109
  // declaration, so we can pick any one. This is not a forward
106
110
  // declaration, either.
107
111
  if (declarationNeeded.size === 0) {
108
- declarations.push({ kind: "define", type: (0, Support_1.defined)((0, collection_utils_1.iterableFirst)(component)) });
112
+ declarations.push({
113
+ kind: "define",
114
+ type: (0, Support_1.defined)((0, collection_utils_1.iterableFirst)(component)),
115
+ });
109
116
  return;
110
117
  }
111
118
  // 4. More than one node needs a declaration, and we don't need
@@ -125,14 +132,14 @@ function declarationsForGraph(typeGraph, canBeForwardDeclared, childrenOfType, n
125
132
  // we declare the types we previously forward-declared.
126
133
  const forwardDeclarable = (0, collection_utils_1.setFilter)(component, canBeForwardDeclared);
127
134
  if (forwardDeclarable.size === 0) {
128
- return (0, Messages_1.messageError)("IRNoForwardDeclarableTypeInCycle", {});
135
+ (0, Messages_1.messageError)("IRNoForwardDeclarableTypeInCycle", {});
129
136
  }
130
137
  for (const t of forwardDeclarable) {
131
138
  declarations.push({ kind: "forward", type: t });
132
139
  }
133
140
  (0, collection_utils_1.setUnionInto)(forwardedTypes, forwardDeclarable);
134
141
  const rest = (0, collection_utils_1.setSubtract)(component, forwardDeclarable);
135
- const restGraph = new Graph_1.Graph(rest, true, t => (0, collection_utils_1.setIntersect)(childrenOfType(t), rest));
142
+ const restGraph = new Graph_1.Graph(rest, true, (t) => (0, collection_utils_1.setIntersect)(childrenOfType(t), rest));
136
143
  processGraph(restGraph, false);
137
144
  for (const t of forwardDeclarable) {
138
145
  declarations.push({ kind: "define", type: t });
@@ -162,4 +169,3 @@ function declarationsForGraph(typeGraph, canBeForwardDeclared, childrenOfType, n
162
169
  processGraph(fullGraph, true);
163
170
  return new DeclarationIR(declarations, forwardedTypes);
164
171
  }
165
- exports.declarationsForGraph = declarationsForGraph;
@@ -1,2 +1,2 @@
1
- import { type TypeGraph } from "./Type/TypeGraph";
1
+ import type { TypeGraph } from "./Type/TypeGraph";
2
2
  export declare function gatherNames(graph: TypeGraph, destructive: boolean, debugPrint: boolean): void;
@@ -15,15 +15,25 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.gatherNames = void 0;
36
+ exports.gatherNames = gatherNames;
27
37
  const collection_utils_1 = require("collection-utils");
28
38
  const pluralize = __importStar(require("pluralize"));
29
39
  const TypeNames_1 = require("./attributes/TypeNames");
@@ -170,10 +180,12 @@ function gatherNames(graph, destructive, debugPrint) {
170
180
  }
171
181
  }
172
182
  else {
173
- (0, TypeUtils_1.matchCompoundType)(t, arrayType => {
174
- addNames(arrayType.items, names === null ? null : (0, collection_utils_1.setMap)(names, pluralize.singular));
175
- }, _classType => (0, Support_1.panic)("We handled this above"), _mapType => (0, Support_1.panic)("We handled this above"), _objectType => (0, Support_1.panic)("We handled this above"), unionType => {
176
- const members = (0, collection_utils_1.setSortBy)(unionType.members, member => member.kind);
183
+ (0, TypeUtils_1.matchCompoundType)(t, (arrayType) => {
184
+ addNames(arrayType.items, names === null
185
+ ? null
186
+ : (0, collection_utils_1.setMap)(names, pluralize.singular));
187
+ }, (_classType) => (0, Support_1.panic)("We handled this above"), (_mapType) => (0, Support_1.panic)("We handled this above"), (_objectType) => (0, Support_1.panic)("We handled this above"), (unionType) => {
188
+ const members = (0, collection_utils_1.setSortBy)(unionType.members, (member) => member.kind);
177
189
  for (const memberType of members) {
178
190
  addNames(memberType, names);
179
191
  }
@@ -234,15 +246,16 @@ function gatherNames(graph, destructive, debugPrint) {
234
246
  else if (ancestorNames !== undefined) {
235
247
  const alternatives = [];
236
248
  for (const name of names) {
237
- alternatives.push(...Array.from(ancestorNames).map(an => `${an}_${name}`));
249
+ alternatives.push(...Array.from(ancestorNames).map((an) => `${an}_${name}`));
238
250
  // FIXME: add alternatives with the suffix here, too?
239
- alternatives.push(...Array.from(ancestorNames).map(an => `${an}_${name}_${t.kind}`));
251
+ alternatives.push(...Array.from(ancestorNames).map((an) => `${an}_${name}_${t.kind}`));
240
252
  // FIXME: add alternatives with the suffix here, too?
241
253
  }
242
254
  ancestorAlternatives = addAlternatives(ancestorAlternatives, alternatives);
243
255
  }
244
256
  }
245
- if (alternativeSuffix !== undefined && directAlternatives !== null) {
257
+ if (alternativeSuffix !== undefined &&
258
+ directAlternatives !== null) {
246
259
  const alternatives = [];
247
260
  for (const name of names) {
248
261
  // FIXME: we should only add these for names we couldn't singularize
@@ -268,13 +281,16 @@ function gatherNames(graph, destructive, debugPrint) {
268
281
  }
269
282
  }
270
283
  else {
271
- (0, TypeUtils_1.matchCompoundType)(t, arrayType => {
284
+ (0, TypeUtils_1.matchCompoundType)(t, (arrayType) => {
272
285
  processType(ancestor, arrayType.items, "element");
273
- }, _classType => (0, Support_1.panic)("We handled this above"), _mapType => (0, Support_1.panic)("We handled this above"), _objectType => (0, Support_1.panic)("We handled this above"), unionType => {
274
- const members = (0, collection_utils_1.setSortBy)(unionType.members, member => member.kind);
286
+ }, (_classType) => (0, Support_1.panic)("We handled this above"), (_mapType) => (0, Support_1.panic)("We handled this above"), (_objectType) => (0, Support_1.panic)("We handled this above"), (unionType) => {
287
+ const members = (0, collection_utils_1.setSortBy)(unionType.members, (member) => member.kind);
275
288
  const unionHasGivenName = unionType.hasNames && !unionType.getNames().areInferred;
276
- const unionIsAncestor = unionHasGivenName || (0, TypeUtils_1.nullableFromUnion)(unionType) === null;
277
- const ancestorForMembers = unionIsAncestor ? unionType : ancestor;
289
+ const unionIsAncestor = unionHasGivenName ||
290
+ (0, TypeUtils_1.nullableFromUnion)(unionType) === null;
291
+ const ancestorForMembers = unionIsAncestor
292
+ ? unionType
293
+ : ancestor;
278
294
  for (const memberType of members) {
279
295
  processType(ancestorForMembers, memberType, undefined);
280
296
  }
@@ -298,7 +314,7 @@ function gatherNames(graph, destructive, debugPrint) {
298
314
  if (alternatives === undefined) {
299
315
  alternatives = new Set();
300
316
  }
301
- alternatives = (0, collection_utils_1.setUnion)(alternatives, (0, collection_utils_1.setMap)(names, name => `${name}_${t.kind}`));
317
+ alternatives = (0, collection_utils_1.setUnion)(alternatives, (0, collection_utils_1.setMap)(names, (name) => `${name}_${t.kind}`));
302
318
  directAlternativesForType.set(t, alternatives);
303
319
  }
304
320
  for (const t of graph.allTypesUnordered()) {
@@ -317,13 +333,15 @@ function gatherNames(graph, destructive, debugPrint) {
317
333
  alternatives = undefined;
318
334
  }
319
335
  else {
320
- if (directAlternatives !== null && directAlternatives !== undefined) {
336
+ if (directAlternatives !== null &&
337
+ directAlternatives !== undefined) {
321
338
  alternatives = directAlternatives;
322
339
  }
323
340
  else {
324
341
  alternatives = new Set();
325
342
  }
326
- if (ancestorAlternatives !== null && ancestorAlternatives !== undefined) {
343
+ if (ancestorAlternatives !== null &&
344
+ ancestorAlternatives !== undefined) {
327
345
  alternatives = (0, collection_utils_1.setUnion)(alternatives, ancestorAlternatives);
328
346
  }
329
347
  }
@@ -332,4 +350,3 @@ function gatherNames(graph, destructive, debugPrint) {
332
350
  setNames(t, t.hasNames ? t.getNames().add([typeNames]) : typeNames);
333
351
  }
334
352
  }
335
- exports.gatherNames = gatherNames;
package/dist/Graph.js CHANGED
@@ -148,7 +148,7 @@ class Graph {
148
148
  edgesArray = edges;
149
149
  }
150
150
  else {
151
- edgesArray = this._nodes.map(n => Array.from(edges(n)).map(s => (0, Support_1.defined)(this._indexByNode.get(s))));
151
+ edgesArray = this._nodes.map((n) => Array.from(edges(n)).map((s) => (0, Support_1.defined)(this._indexByNode.get(s))));
152
152
  }
153
153
  if (invertDirection) {
154
154
  edgesArray = invertEdges(edgesArray);
@@ -163,7 +163,7 @@ class Graph {
163
163
  }
164
164
  findRoots() {
165
165
  const roots = findRoots(this._successors);
166
- return new Set(roots.map(n => this._nodes[n]));
166
+ return new Set(roots.map((n) => this._nodes[n]));
167
167
  }
168
168
  // The subgraph starting at `root` must be acyclic.
169
169
  dfsTraversal(root, preOrder, process) {
@@ -187,7 +187,7 @@ class Graph {
187
187
  stronglyConnectedComponents() {
188
188
  const components = stronglyConnectedComponents(this._successors);
189
189
  const componentSuccessors = buildMetaSuccessors(this._successors, components);
190
- return new Graph(components.map(ns => (0, collection_utils_1.setMap)(ns, n => this._nodes[n])), false, componentSuccessors);
190
+ return new Graph(components.map((ns) => (0, collection_utils_1.setMap)(ns, (n) => this._nodes[n])), false, componentSuccessors);
191
191
  }
192
192
  makeDot(includeNode, nodeLabel) {
193
193
  const lines = [];
@@ -1,8 +1,8 @@
1
1
  import { type TypeAttributes } from "./attributes/TypeAttributes";
2
- import { type ClassProperty, type MaybeTypeIdentity, type PrimitiveTypeKind, type Type } from "./Type";
2
+ import type { ClassProperty, MaybeTypeIdentity, PrimitiveTypeKind, Type } from "./Type";
3
3
  import { TypeBuilder } from "./Type/TypeBuilder";
4
- import { type StringTypeMapping } from "./Type/TypeBuilderUtils";
5
- import { type TypeGraph } from "./Type/TypeGraph";
4
+ import type { StringTypeMapping } from "./Type/TypeBuilderUtils";
5
+ import type { TypeGraph } from "./Type/TypeGraph";
6
6
  import { type TypeRef } from "./Type/TypeRef";
7
7
  export interface TypeLookerUp {
8
8
  lookupTypeRefs: (typeRefs: TypeRef[], forwardingRef?: TypeRef) => TypeRef | undefined;
@@ -47,12 +47,11 @@ class TypeReconstituter {
47
47
  if ((0, TypeRef_1.isTypeRef)(trefs)) {
48
48
  return this._typeBuilder.lookupTypeRefs([trefs], undefined, false);
49
49
  }
50
- else {
51
- const maybeRefs = Array.from(trefs).map(tref => this._typeBuilder.lookupTypeRefs([tref], undefined, false));
52
- if (maybeRefs.some(tref => tref === undefined))
53
- return undefined;
54
- return maybeRefs;
50
+ const maybeRefs = Array.from(trefs).map((tref) => this._typeBuilder.lookupTypeRefs([tref], undefined, false));
51
+ if (maybeRefs.some((tref) => tref === undefined)) {
52
+ return undefined;
55
53
  }
54
+ return maybeRefs;
56
55
  }
57
56
  lookupMap(trefs) {
58
57
  const resultValues = this.lookup(trefs.values());
@@ -72,12 +71,10 @@ class TypeReconstituter {
72
71
  if ((0, TypeRef_1.isTypeRef)(trefs)) {
73
72
  return this._typeBuilder.reconstituteTypeRef(trefs);
74
73
  }
75
- else {
76
- return Array.from(trefs).map(tref => this._typeBuilder.reconstituteTypeRef(tref));
77
- }
74
+ return Array.from(trefs).map((tref) => this._typeBuilder.reconstituteTypeRef(tref));
78
75
  }
79
76
  reconstituteMap(trefs) {
80
- return (0, collection_utils_1.mapMap)(trefs, tref => this._typeBuilder.reconstituteTypeRef(tref));
77
+ return (0, collection_utils_1.mapMap)(trefs, (tref) => this._typeBuilder.reconstituteTypeRef(tref));
81
78
  }
82
79
  getPrimitiveType(kind) {
83
80
  this.register(this.builderForNewType().getPrimitiveType(kind, this._typeAttributes, this._forwardingRef));
@@ -247,7 +244,7 @@ class GraphRemapBuilder extends BaseGraphRewriteBuilder {
247
244
  const index = (0, TypeRef_1.typeRefIndex)(originalRef);
248
245
  (0, Support_1.assert)(this.reconstitutedTypes.get(index) === undefined, "Type has already been reconstituted");
249
246
  (0, Support_1.assert)(maybeForwardingRef === undefined, "We can't have a forwarding ref when we remap");
250
- return this.withForwardingRef(undefined, forwardingRef => {
247
+ return this.withForwardingRef(undefined, (forwardingRef) => {
251
248
  this.reconstitutedTypes.set(index, forwardingRef);
252
249
  if (this.debugPrint) {
253
250
  console.log(`${this.debugPrintIndentation}reconstituting ${index} as ${(0, TypeRef_1.typeRefIndex)(forwardingRef)}`);
@@ -265,7 +262,7 @@ class GraphRemapBuilder extends BaseGraphRewriteBuilder {
265
262
  attributes = (0, TypeAttributes_1.combineTypeAttributes)("union", attributes, this.reconstituteTypeAttributes((0, TypeUtils_1.combineTypeAttributesOfTypes)("union", attributeSources)));
266
263
  }
267
264
  const newAttributes = attributes;
268
- const reconstituter = new TypeReconstituter(this, this.canonicalOrder, newAttributes, forwardingRef, tref => {
265
+ const reconstituter = new TypeReconstituter(this, this.canonicalOrder, newAttributes, forwardingRef, (tref) => {
269
266
  (0, Support_1.assert)(tref === forwardingRef, "Reconstituted type as a different ref");
270
267
  if (this.debugPrint) {
271
268
  this.changeDebugPrintIndent(-1);
@@ -299,10 +296,10 @@ class GraphRewriteBuilder extends BaseGraphRewriteBuilder {
299
296
  this._reconstitutedUnions.set(set, reconstituted);
300
297
  }
301
298
  replaceSet(typesToReplace, maybeForwardingRef) {
302
- return this.withForwardingRef(maybeForwardingRef, forwardingRef => {
299
+ return this.withForwardingRef(maybeForwardingRef, (forwardingRef) => {
303
300
  if (this.debugPrint) {
304
301
  console.log(`${this.debugPrintIndentation}replacing set ${Array.from(typesToReplace)
305
- .map(t => t.index.toString())
302
+ .map((t) => t.index.toString())
306
303
  .join(",")} as ${(0, TypeRef_1.typeRefIndex)(forwardingRef)}`);
307
304
  this.changeDebugPrintIndent(1);
308
305
  }
@@ -317,7 +314,7 @@ class GraphRewriteBuilder extends BaseGraphRewriteBuilder {
317
314
  if (this.debugPrint) {
318
315
  this.changeDebugPrintIndent(-1);
319
316
  console.log(`${this.debugPrintIndentation}replaced set ${Array.from(typesToReplace)
320
- .map(t => t.index.toString())
317
+ .map((t) => t.index.toString())
321
318
  .join(",")} as ${(0, TypeRef_1.typeRefIndex)(forwardingRef)}`);
322
319
  }
323
320
  return result;
@@ -336,7 +333,7 @@ class GraphRewriteBuilder extends BaseGraphRewriteBuilder {
336
333
  else {
337
334
  attributes = (0, TypeAttributes_1.combineTypeAttributes)("union", attributes, this.reconstituteTypeAttributes(originalAttributes));
338
335
  }
339
- const reconstituter = new TypeReconstituter(this, this.canonicalOrder, attributes, maybeForwardingRef, tref => {
336
+ const reconstituter = new TypeReconstituter(this, this.canonicalOrder, attributes, maybeForwardingRef, (tref) => {
340
337
  if (this.debugPrint) {
341
338
  this.changeDebugPrintIndent(-1);
342
339
  console.log(`${this.debugPrintIndentation}reconstituted ${index} as ${(0, TypeRef_1.typeRefIndex)(tref)}`);
@@ -378,7 +375,8 @@ class GraphRewriteBuilder extends BaseGraphRewriteBuilder {
378
375
  if (maybeRef !== undefined && maybeRef !== forwardingRef) {
379
376
  let allEqual = true;
380
377
  for (let i = 1; i < typeRefs.length; i++) {
381
- if (this.reconstitutedTypes.get((0, TypeRef_1.typeRefIndex)(typeRefs[i])) !== maybeRef) {
378
+ if (this.reconstitutedTypes.get((0, TypeRef_1.typeRefIndex)(typeRefs[i])) !==
379
+ maybeRef) {
382
380
  allEqual = false;
383
381
  break;
384
382
  }
@@ -398,7 +396,8 @@ class GraphRewriteBuilder extends BaseGraphRewriteBuilder {
398
396
  return undefined;
399
397
  }
400
398
  for (let i = 1; i < typeRefs.length; i++) {
401
- if (this._setsToReplaceByMember.get((0, TypeRef_1.typeRefIndex)(typeRefs[i])) !== maybeSet) {
399
+ if (this._setsToReplaceByMember.get((0, TypeRef_1.typeRefIndex)(typeRefs[i])) !==
400
+ maybeSet) {
402
401
  return undefined;
403
402
  }
404
403
  }
@@ -0,0 +1,79 @@
1
+ import type { TransformedStringTypeKind } from "./Type";
2
+ export interface InferenceFlag {
3
+ description: string;
4
+ explanation: string;
5
+ negationDescription: string;
6
+ order: number;
7
+ stringType?: TransformedStringTypeKind;
8
+ }
9
+ export declare const inferenceFlagsObject: {
10
+ /** Whether to infer map types from JSON data */
11
+ inferMaps: {
12
+ description: string;
13
+ negationDescription: string;
14
+ explanation: string;
15
+ order: number;
16
+ };
17
+ /** Whether to infer enum types from JSON data */
18
+ inferEnums: {
19
+ description: string;
20
+ negationDescription: string;
21
+ explanation: string;
22
+ order: number;
23
+ };
24
+ /** Whether to convert UUID strings to UUID objects */
25
+ inferUuids: {
26
+ description: string;
27
+ negationDescription: string;
28
+ explanation: string;
29
+ stringType: TransformedStringTypeKind;
30
+ order: number;
31
+ };
32
+ /** Whether to assume that JSON strings that look like dates are dates */
33
+ inferDateTimes: {
34
+ description: string;
35
+ negationDescription: string;
36
+ explanation: string;
37
+ stringType: TransformedStringTypeKind;
38
+ order: number;
39
+ };
40
+ /** Whether to convert stringified integers to integers */
41
+ inferIntegerStrings: {
42
+ description: string;
43
+ negationDescription: string;
44
+ explanation: string;
45
+ stringType: TransformedStringTypeKind;
46
+ order: number;
47
+ };
48
+ /** Whether to convert stringified booleans to boolean values */
49
+ inferBooleanStrings: {
50
+ description: string;
51
+ negationDescription: string;
52
+ explanation: string;
53
+ stringType: TransformedStringTypeKind;
54
+ order: number;
55
+ };
56
+ /** Combine similar classes. This doesn't apply to classes from a schema, only from inference. */
57
+ combineClasses: {
58
+ description: string;
59
+ negationDescription: string;
60
+ explanation: string;
61
+ order: number;
62
+ };
63
+ /** Whether to treat $ref as references within JSON */
64
+ ignoreJsonRefs: {
65
+ description: string;
66
+ negationDescription: string;
67
+ explanation: string;
68
+ order: number;
69
+ };
70
+ };
71
+ export type InferenceFlagName = keyof typeof inferenceFlagsObject;
72
+ export declare const inferenceFlagNames: InferenceFlagName[];
73
+ export declare const inferenceFlags: {
74
+ [F in InferenceFlagName]: InferenceFlag;
75
+ };
76
+ export type InferenceFlags = {
77
+ [F in InferenceFlagName]: boolean;
78
+ };
79
+ export declare const defaultInferenceFlags: InferenceFlags;