quicktype-core 23.0.158 → 23.0.160

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 (167) hide show
  1. package/dist/Annotation.js +1 -0
  2. package/dist/ConvenienceRenderer.d.ts +11 -11
  3. package/dist/ConvenienceRenderer.js +18 -14
  4. package/dist/CycleBreaker.d.ts +1 -1
  5. package/dist/CycleBreaker.js +1 -1
  6. package/dist/DateTime.d.ts +3 -3
  7. package/dist/DateTime.js +3 -2
  8. package/dist/DeclarationIR.d.ts +3 -3
  9. package/dist/DeclarationIR.js +1 -1
  10. package/dist/GatherNames.d.ts +1 -1
  11. package/dist/GatherNames.js +3 -3
  12. package/dist/Graph.d.ts +1 -1
  13. package/dist/GraphRewriting.d.ts +8 -8
  14. package/dist/GraphRewriting.js +4 -3
  15. package/dist/MakeTransformations.d.ts +3 -3
  16. package/dist/MakeTransformations.js +7 -7
  17. package/dist/MarkovChain.d.ts +6 -6
  18. package/dist/MarkovChain.js +2 -2
  19. package/dist/Messages.d.ts +9 -8
  20. package/dist/Messages.js +1 -0
  21. package/dist/Naming.d.ts +6 -5
  22. package/dist/Naming.js +32 -31
  23. package/dist/Renderer.d.ts +27 -27
  24. package/dist/Renderer.js +6 -3
  25. package/dist/RendererOptions.d.ts +16 -23
  26. package/dist/RendererOptions.js +3 -2
  27. package/dist/Run.d.ts +49 -49
  28. package/dist/Run.js +12 -12
  29. package/dist/Source.d.ts +12 -13
  30. package/dist/Source.js +1 -1
  31. package/dist/TargetLanguage.d.ts +12 -15
  32. package/dist/TargetLanguage.js +3 -2
  33. package/dist/Transformers.d.ts +24 -24
  34. package/dist/Transformers.js +1 -3
  35. package/dist/Type.d.ts +12 -12
  36. package/dist/Type.js +6 -3
  37. package/dist/TypeBuilder.d.ts +4 -4
  38. package/dist/TypeBuilder.js +6 -4
  39. package/dist/TypeGraph.d.ts +10 -10
  40. package/dist/TypeGraph.js +10 -6
  41. package/dist/TypeUtils.d.ts +11 -12
  42. package/dist/TypeUtils.js +6 -5
  43. package/dist/UnifyClasses.d.ts +5 -5
  44. package/dist/UnifyClasses.js +5 -3
  45. package/dist/UnionBuilder.d.ts +6 -6
  46. package/dist/UnionBuilder.js +3 -3
  47. package/dist/attributes/AccessorNames.d.ts +5 -5
  48. package/dist/attributes/AccessorNames.js +2 -2
  49. package/dist/attributes/Constraints.d.ts +4 -4
  50. package/dist/attributes/Constraints.js +2 -2
  51. package/dist/attributes/Description.d.ts +2 -2
  52. package/dist/attributes/Description.js +3 -2
  53. package/dist/attributes/EnumValues.d.ts +4 -4
  54. package/dist/attributes/StringTypes.d.ts +4 -4
  55. package/dist/attributes/StringTypes.js +6 -5
  56. package/dist/attributes/TypeAttributes.d.ts +3 -3
  57. package/dist/attributes/TypeAttributes.js +2 -0
  58. package/dist/attributes/TypeNames.d.ts +1 -1
  59. package/dist/attributes/TypeNames.js +3 -3
  60. package/dist/attributes/URIAttributes.d.ts +3 -3
  61. package/dist/attributes/URIAttributes.js +3 -3
  62. package/dist/index.d.ts +14 -14
  63. package/dist/index.js +2 -0
  64. package/dist/input/CompressedJSON.d.ts +17 -17
  65. package/dist/input/CompressedJSON.js +12 -12
  66. package/dist/input/FetchingJSONSchemaStore.d.ts +1 -1
  67. package/dist/input/FetchingJSONSchemaStore.js +2 -1
  68. package/dist/input/Inference.d.ts +7 -7
  69. package/dist/input/Inference.js +7 -7
  70. package/dist/input/Inputs.d.ts +10 -10
  71. package/dist/input/Inputs.js +8 -6
  72. package/dist/input/JSONSchemaInput.d.ts +21 -21
  73. package/dist/input/JSONSchemaInput.js +44 -50
  74. package/dist/input/JSONSchemaStore.d.ts +1 -1
  75. package/dist/input/JSONSchemaStore.js +3 -1
  76. package/dist/input/PostmanCollection.d.ts +2 -2
  77. package/dist/input/PostmanCollection.js +1 -0
  78. package/dist/input/io/NodeIO.d.ts +1 -1
  79. package/dist/input/io/NodeIO.js +6 -3
  80. package/dist/input/io/get-stream/buffer-stream.d.ts +1 -1
  81. package/dist/input/io/get-stream/buffer-stream.js +3 -0
  82. package/dist/input/io/get-stream/index.d.ts +2 -2
  83. package/dist/input/io/get-stream/index.js +47 -34
  84. package/dist/language/All.d.ts +1 -1
  85. package/dist/language/All.js +19 -18
  86. package/dist/language/CJSON.d.ts +38 -39
  87. package/dist/language/CJSON.js +353 -217
  88. package/dist/language/CPlusPlus.d.ts +64 -65
  89. package/dist/language/CPlusPlus.js +44 -43
  90. package/dist/language/CSharp.d.ts +19 -20
  91. package/dist/language/CSharp.js +21 -41
  92. package/dist/language/Crystal.d.ts +8 -7
  93. package/dist/language/Crystal.js +4 -4
  94. package/dist/language/Dart.d.ts +11 -12
  95. package/dist/language/Dart.js +18 -14
  96. package/dist/language/Elixir.d.ts +9 -10
  97. package/dist/language/Elixir.js +5 -5
  98. package/dist/language/Elm.d.ts +9 -10
  99. package/dist/language/Elm.js +6 -6
  100. package/dist/language/Golang.d.ts +10 -11
  101. package/dist/language/Golang.js +8 -8
  102. package/dist/language/Haskell.d.ts +9 -10
  103. package/dist/language/Haskell.js +4 -4
  104. package/dist/language/JSONSchema.d.ts +8 -9
  105. package/dist/language/JSONSchema.js +4 -4
  106. package/dist/language/Java.d.ts +11 -12
  107. package/dist/language/Java.js +3 -1
  108. package/dist/language/JavaScript.d.ts +18 -19
  109. package/dist/language/JavaScript.js +11 -11
  110. package/dist/language/JavaScriptPropTypes.d.ts +11 -11
  111. package/dist/language/JavaScriptPropTypes.js +18 -18
  112. package/dist/language/JavaScriptUnicodeMaps.js +1 -0
  113. package/dist/language/Kotlin.d.ts +14 -15
  114. package/dist/language/Kotlin.js +7 -6
  115. package/dist/language/Objective-C.d.ts +12 -13
  116. package/dist/language/Objective-C.js +25 -45
  117. package/dist/language/Php.d.ts +13 -14
  118. package/dist/language/Php.js +25 -25
  119. package/dist/language/Pike.d.ts +8 -7
  120. package/dist/language/Pike.js +2 -2
  121. package/dist/language/Python.d.ts +17 -18
  122. package/dist/language/Python.js +69 -61
  123. package/dist/language/Rust.d.ts +14 -15
  124. package/dist/language/Rust.js +15 -12
  125. package/dist/language/Scala3.d.ts +14 -15
  126. package/dist/language/Scala3.js +9 -9
  127. package/dist/language/Smithy4s.d.ts +10 -11
  128. package/dist/language/Smithy4s.js +7 -7
  129. package/dist/language/Swift.d.ts +14 -15
  130. package/dist/language/Swift.js +19 -20
  131. package/dist/language/TypeScriptEffectSchema.d.ts +12 -14
  132. package/dist/language/TypeScriptEffectSchema.js +13 -13
  133. package/dist/language/TypeScriptFlow.d.ts +13 -18
  134. package/dist/language/TypeScriptFlow.js +6 -6
  135. package/dist/language/TypeScriptZod.d.ts +10 -11
  136. package/dist/language/TypeScriptZod.js +24 -22
  137. package/dist/language/ruby/index.d.ts +10 -11
  138. package/dist/language/ruby/index.js +12 -12
  139. package/dist/language/ruby/keywords.js +4 -4
  140. package/dist/rewrites/CombineClasses.d.ts +2 -2
  141. package/dist/rewrites/CombineClasses.js +1 -1
  142. package/dist/rewrites/ExpandStrings.d.ts +2 -2
  143. package/dist/rewrites/ExpandStrings.js +6 -4
  144. package/dist/rewrites/FlattenStrings.d.ts +2 -2
  145. package/dist/rewrites/FlattenStrings.js +2 -2
  146. package/dist/rewrites/FlattenUnions.d.ts +2 -2
  147. package/dist/rewrites/FlattenUnions.js +4 -4
  148. package/dist/rewrites/InferMaps.d.ts +2 -2
  149. package/dist/rewrites/InferMaps.js +2 -2
  150. package/dist/rewrites/ReplaceObjectType.d.ts +2 -2
  151. package/dist/rewrites/ReplaceObjectType.js +1 -1
  152. package/dist/rewrites/ResolveIntersections.d.ts +2 -2
  153. package/dist/rewrites/ResolveIntersections.js +4 -3
  154. package/dist/support/Acronyms.d.ts +2 -2
  155. package/dist/support/Acronyms.js +3 -2
  156. package/dist/support/Chance.d.ts +2 -2
  157. package/dist/support/Chance.js +2 -1
  158. package/dist/support/Comments.d.ts +10 -10
  159. package/dist/support/Converters.d.ts +2 -2
  160. package/dist/support/Converters.js +1 -1
  161. package/dist/support/Strings.d.ts +3 -3
  162. package/dist/support/Strings.js +21 -38
  163. package/dist/support/Support.d.ts +13 -14
  164. package/dist/support/Support.js +7 -2
  165. package/dist/types.d.ts +2 -0
  166. package/dist/types.js +3 -0
  167. package/package.json +6 -4
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.nullTypeIssueAnnotation = exports.anyTypeIssueAnnotation = exports.IssueAnnotationData = exports.AnnotationData = void 0;
4
+ // eslint-disable-next-line @typescript-eslint/no-extraneous-class
4
5
  class AnnotationData {
5
6
  }
6
7
  exports.AnnotationData = AnnotationData;
@@ -1,17 +1,17 @@
1
- import { Type, ClassType, EnumType, UnionType, TypeKind, ClassProperty, ObjectType } from "./Type";
2
- import { Namespace, Name, Namer, DependencyName } from "./Naming";
3
- import { Renderer, BlankLineConfig, RenderContext, ForEachPosition } from "./Renderer";
4
- import { Sourcelike } from "./Source";
5
- import { Declaration } from "./DeclarationIR";
6
- import { Transformation } from "./Transformers";
7
- import { TargetLanguage } from "./TargetLanguage";
1
+ import { type Declaration } from "./DeclarationIR";
2
+ import { DependencyName, type Name, type Namer, Namespace } from "./Naming";
3
+ import { type BlankLineConfig, type ForEachPosition, type RenderContext, Renderer } from "./Renderer";
4
+ import { type Sourcelike } from "./Source";
8
5
  import { type Comment, type CommentOptions } from "./support/Comments";
6
+ import { type TargetLanguage } from "./TargetLanguage";
7
+ import { type Transformation } from "./Transformers";
8
+ import { type ClassProperty, ClassType, EnumType, ObjectType, type Type, type TypeKind, UnionType } from "./Type";
9
9
  export declare const topLevelNameOrder = 1;
10
10
  export declare const inferredNameOrder = 30;
11
- export type ForbiddenWordsInfo = {
12
- names: (Name | string)[];
11
+ export interface ForbiddenWordsInfo {
13
12
  includeGlobalForbidden: boolean;
14
- };
13
+ names: Array<Name | string>;
14
+ }
15
15
  export declare abstract class ConvenienceRenderer extends Renderer {
16
16
  private _globalForbiddenNamespace;
17
17
  private _otherForbiddenNamespaces;
@@ -121,7 +121,7 @@ export declare abstract class ConvenienceRenderer extends Renderer {
121
121
  protected forEachUnionMember(u: UnionType, members: ReadonlySet<Type> | null, blankLocations: BlankLineConfig, sortOrder: ((n: Name, t: Type) => string) | null, f: (name: Name, t: Type, position: ForEachPosition) => void): void;
122
122
  protected forEachEnumCase(e: EnumType, blankLocations: BlankLineConfig, f: (name: Name, jsonName: string, position: ForEachPosition) => void): void;
123
123
  protected forEachTransformation(blankLocations: BlankLineConfig, f: (n: Name, t: Type, position: ForEachPosition) => void): void;
124
- protected forEachSpecificNamedType<T extends Type>(blankLocations: BlankLineConfig, types: Iterable<[any, T]>, f: (t: T, name: Name, position: ForEachPosition) => void): void;
124
+ protected forEachSpecificNamedType<T extends Type>(blankLocations: BlankLineConfig, types: Iterable<[T, T]>, f: (t: T, name: Name, position: ForEachPosition) => void): void;
125
125
  protected forEachObject(blankLocations: BlankLineConfig, f: ((c: ClassType, className: Name, position: ForEachPosition) => void) | ((o: ObjectType, objectName: Name, position: ForEachPosition) => void)): void;
126
126
  protected forEachEnum(blankLocations: BlankLineConfig, f: (u: EnumType, enumName: Name, position: ForEachPosition) => void): void;
127
127
  protected forEachUnion(blankLocations: BlankLineConfig, f: (u: UnionType, unionName: Name, position: ForEachPosition) => void): void;
@@ -1,22 +1,26 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.ConvenienceRenderer = exports.inferredNameOrder = exports.topLevelNameOrder = void 0;
4
7
  const collection_utils_1 = require("collection-utils");
5
- const Type_1 = require("./Type");
6
- const TypeUtils_1 = require("./TypeUtils");
8
+ const wordwrap_1 = __importDefault(require("wordwrap"));
9
+ const AccessorNames_1 = require("./attributes/AccessorNames");
10
+ const Description_1 = require("./attributes/Description");
11
+ const TypeAttributes_1 = require("./attributes/TypeAttributes");
12
+ const DeclarationIR_1 = require("./DeclarationIR");
7
13
  const Naming_1 = require("./Naming");
8
14
  const Renderer_1 = require("./Renderer");
9
- const Support_1 = require("./support/Support");
10
- const Strings_1 = require("./support/Strings");
11
15
  const Source_1 = require("./Source");
12
- const DeclarationIR_1 = require("./DeclarationIR");
13
- const TypeGraph_1 = require("./TypeGraph");
14
- const TypeAttributes_1 = require("./attributes/TypeAttributes");
15
- const Description_1 = require("./attributes/Description");
16
- const AccessorNames_1 = require("./attributes/AccessorNames");
17
- const Transformers_1 = require("./Transformers");
18
16
  const Comments_1 = require("./support/Comments");
19
- const wordWrap = require("wordwrap")(90);
17
+ const Strings_1 = require("./support/Strings");
18
+ const Support_1 = require("./support/Support");
19
+ const Transformers_1 = require("./Transformers");
20
+ const Type_1 = require("./Type");
21
+ const TypeGraph_1 = require("./TypeGraph");
22
+ const TypeUtils_1 = require("./TypeUtils");
23
+ const wordWrap = (0, wordwrap_1.default)(90);
20
24
  exports.topLevelNameOrder = 1;
21
25
  const givenNameOrder = 10;
22
26
  exports.inferredNameOrder = 30;
@@ -482,9 +486,9 @@ class ConvenienceRenderer extends Renderer_1.Renderer {
482
486
  return (0, Support_1.defined)(caseNames.get(caseName));
483
487
  }
484
488
  forEachUnionMember(u, members, blankLocations, sortOrder, f) {
485
- const iterateMembers = members === null ? u.members : members;
489
+ const iterateMembers = members !== null && members !== void 0 ? members : u.members;
486
490
  if (sortOrder === null) {
487
- sortOrder = n => (0, Support_1.defined)(this.names.get(n));
491
+ sortOrder = (n) => (0, Support_1.defined)(this.names.get(n));
488
492
  }
489
493
  const memberNames = (0, collection_utils_1.mapFilter)((0, Support_1.defined)(this._memberNamesStoreView).get(u), (_, t) => iterateMembers.has(t));
490
494
  const sortedMemberNames = (0, collection_utils_1.mapSortBy)(memberNames, sortOrder);
@@ -616,7 +620,7 @@ class ConvenienceRenderer extends Renderer_1.Renderer {
616
620
  emitTable();
617
621
  }
618
622
  processGraph() {
619
- this._declarationIR = (0, DeclarationIR_1.declarationsForGraph)(this.typeGraph, this.needsTypeDeclarationBeforeUse ? t => this.canBeForwardDeclared(t) : undefined, t => this.childrenOfType(t), t => {
623
+ this._declarationIR = (0, DeclarationIR_1.declarationsForGraph)(this.typeGraph, this.needsTypeDeclarationBeforeUse ? (t) => this.canBeForwardDeclared(t) : undefined, t => this.childrenOfType(t), t => {
620
624
  if (t instanceof Type_1.UnionType) {
621
625
  return this.unionNeedsName(t);
622
626
  }
@@ -1 +1 @@
1
- export declare function breakCycles<T>(outEdges: number[][], chooseBreaker: (cycle: number[]) => [number, T]): [number, T][];
1
+ export declare function breakCycles<T>(outEdges: number[][], chooseBreaker: (cycle: number[]) => [number, T]): Array<[number, T]>;
@@ -86,7 +86,7 @@ function breakCycles(outEdges, chooseBreaker) {
86
86
  // We found a cycle - break it
87
87
  const cycle = path.slice(maybeFirst);
88
88
  const [breakNode, info] = chooseBreaker(cycle);
89
- (0, Support_1.assert)(cycle.indexOf(breakNode) >= 0, "Breaker chose an invalid node");
89
+ (0, Support_1.assert)(cycle.includes(breakNode), "Breaker chose an invalid node");
90
90
  removeNode(breakNode);
91
91
  results.push([breakNode, info]);
92
92
  break;
@@ -1,7 +1,7 @@
1
1
  export interface DateTimeRecognizer {
2
- isDate(s: string): boolean;
3
- isTime(s: string): boolean;
4
- isDateTime(s: string): boolean;
2
+ isDate: (s: string) => boolean;
3
+ isDateTime: (s: string) => boolean;
4
+ isTime: (s: string) => boolean;
5
5
  }
6
6
  export declare class DefaultDateTimeRecognizer implements DateTimeRecognizer {
7
7
  isDate(str: string): boolean;
package/dist/DateTime.js CHANGED
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ /* eslint-disable */
2
3
  // https://github.com/epoberezkin/ajv/blob/4d76c6fb813b136b6ec4fe74990bc97233d75dea/lib/compile/formats.js
3
4
  Object.defineProperty(exports, "__esModule", { value: true });
4
5
  exports.DefaultDateTimeRecognizer = void 0;
@@ -32,7 +33,7 @@ const DATE_TIME_SEPARATOR = /t|\s/i;
32
33
  class DefaultDateTimeRecognizer {
33
34
  isDate(str) {
34
35
  // full-date from http://tools.ietf.org/html/rfc3339#section-5.6
35
- const matches = str.match(DATE);
36
+ const matches = DATE.exec(str);
36
37
  if (matches === null)
37
38
  return false;
38
39
  const month = +matches[2];
@@ -40,7 +41,7 @@ class DefaultDateTimeRecognizer {
40
41
  return month >= 1 && month <= 12 && day >= 1 && day <= DAYS[month];
41
42
  }
42
43
  isTime(str) {
43
- const matches = str.match(TIME);
44
+ const matches = TIME.exec(str);
44
45
  if (matches === null)
45
46
  return false;
46
47
  const hour = +matches[1];
@@ -1,5 +1,5 @@
1
- import { TypeGraph } from "./TypeGraph";
2
- import { Type } from "./Type";
1
+ import { type Type } from "./Type";
2
+ import { type TypeGraph } from "./TypeGraph";
3
3
  export type DeclarationKind = "forward" | "define";
4
4
  export interface Declaration {
5
5
  readonly kind: DeclarationKind;
@@ -7,7 +7,7 @@ export interface Declaration {
7
7
  }
8
8
  export declare class DeclarationIR {
9
9
  readonly forwardedTypes: Set<Type>;
10
- readonly declarations: ReadonlyArray<Declaration>;
10
+ readonly declarations: readonly Declaration[];
11
11
  constructor(declarations: Iterable<Declaration>, forwardedTypes: Set<Type>);
12
12
  }
13
13
  export declare function cycleBreakerTypesForGraph(graph: TypeGraph, isImplicitCycleBreaker: (t: Type) => boolean, canBreakCycles: (t: Type) => boolean): Set<Type>;
@@ -2,9 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.declarationsForGraph = exports.cycleBreakerTypesForGraph = exports.DeclarationIR = void 0;
4
4
  const collection_utils_1 = require("collection-utils");
5
- const Support_1 = require("./support/Support");
6
5
  const Graph_1 = require("./Graph");
7
6
  const Messages_1 = require("./Messages");
7
+ const Support_1 = require("./support/Support");
8
8
  class DeclarationIR {
9
9
  constructor(declarations, forwardedTypes) {
10
10
  this.forwardedTypes = forwardedTypes;
@@ -1,2 +1,2 @@
1
- import { TypeGraph } from "./TypeGraph";
1
+ import { type TypeGraph } from "./TypeGraph";
2
2
  export declare function gatherNames(graph: TypeGraph, destructive: boolean, debugPrint: boolean): void;
@@ -24,13 +24,13 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.gatherNames = void 0;
27
- const pluralize = __importStar(require("pluralize"));
28
27
  const collection_utils_1 = require("collection-utils");
29
- const Type_1 = require("./Type");
30
- const TypeUtils_1 = require("./TypeUtils");
28
+ const pluralize = __importStar(require("pluralize"));
31
29
  const TypeNames_1 = require("./attributes/TypeNames");
32
30
  const Support_1 = require("./support/Support");
33
31
  const Transformers_1 = require("./Transformers");
32
+ const Type_1 = require("./Type");
33
+ const TypeUtils_1 = require("./TypeUtils");
34
34
  class UniqueQueue {
35
35
  constructor() {
36
36
  this._present = new Set();
package/dist/Graph.d.ts CHANGED
@@ -4,7 +4,7 @@ export declare class Graph<T> {
4
4
  private readonly _successors;
5
5
  constructor(nodes: Iterable<T>, invertDirection: boolean, edges: number[][] | ((node: T) => ReadonlySet<T>));
6
6
  get size(): number;
7
- get nodes(): ReadonlyArray<T>;
7
+ get nodes(): readonly T[];
8
8
  findRoots(): ReadonlySet<T>;
9
9
  dfsTraversal(root: T, preOrder: boolean, process: (node: T) => void): void;
10
10
  stronglyConnectedComponents(): Graph<ReadonlySet<T>>;
@@ -1,10 +1,10 @@
1
- import { PrimitiveTypeKind, Type, ClassProperty, MaybeTypeIdentity } from "./Type";
2
- import { TypeGraph, TypeRef } from "./TypeGraph";
3
- import { TypeAttributes } from "./attributes/TypeAttributes";
4
- import { TypeBuilder, StringTypeMapping } from "./TypeBuilder";
1
+ import { type TypeAttributes } from "./attributes/TypeAttributes";
2
+ import { type ClassProperty, type MaybeTypeIdentity, type PrimitiveTypeKind, type Type } from "./Type";
3
+ import { type StringTypeMapping, TypeBuilder } from "./TypeBuilder";
4
+ import { type TypeGraph, type TypeRef } from "./TypeGraph";
5
5
  export interface TypeLookerUp {
6
- lookupTypeRefs(typeRefs: TypeRef[], forwardingRef?: TypeRef): TypeRef | undefined;
7
- reconstituteTypeRef(typeRef: TypeRef, attributes?: TypeAttributes, forwardingRef?: TypeRef): TypeRef;
6
+ lookupTypeRefs: (typeRefs: TypeRef[], forwardingRef?: TypeRef) => TypeRef | undefined;
7
+ reconstituteTypeRef: (typeRef: TypeRef, attributes?: TypeAttributes, forwardingRef?: TypeRef) => TypeRef;
8
8
  }
9
9
  export declare class TypeReconstituter<TBuilder extends BaseGraphRewriteBuilder> {
10
10
  private readonly _typeBuilder;
@@ -21,10 +21,10 @@ export declare class TypeReconstituter<TBuilder extends BaseGraphRewriteBuilder>
21
21
  private register;
22
22
  private registerAndAddAttributes;
23
23
  lookup(tref: TypeRef): TypeRef | undefined;
24
- lookup(trefs: Iterable<TypeRef>): ReadonlyArray<TypeRef> | undefined;
24
+ lookup(trefs: Iterable<TypeRef>): readonly TypeRef[] | undefined;
25
25
  lookupMap<K>(trefs: ReadonlyMap<K, TypeRef>): ReadonlyMap<K, TypeRef> | undefined;
26
26
  reconstitute(tref: TypeRef): TypeRef;
27
- reconstitute(trefs: Iterable<TypeRef>): ReadonlyArray<TypeRef>;
27
+ reconstitute(trefs: Iterable<TypeRef>): readonly TypeRef[];
28
28
  reconstituteMap<K>(trefs: ReadonlyMap<K, TypeRef>): ReadonlyMap<K, TypeRef>;
29
29
  getPrimitiveType(kind: PrimitiveTypeKind): void;
30
30
  getEnumType(cases: ReadonlySet<string>): void;
@@ -2,11 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GraphRewriteBuilder = exports.GraphRemapBuilder = exports.BaseGraphRewriteBuilder = exports.TypeReconstituter = void 0;
4
4
  const collection_utils_1 = require("collection-utils");
5
- const TypeUtils_1 = require("./TypeUtils");
6
- const TypeGraph_1 = require("./TypeGraph");
7
5
  const TypeAttributes_1 = require("./attributes/TypeAttributes");
8
6
  const Support_1 = require("./support/Support");
7
+ // eslint-disable-next-line import/no-cycle
9
8
  const TypeBuilder_1 = require("./TypeBuilder");
9
+ const TypeGraph_1 = require("./TypeGraph");
10
+ const TypeUtils_1 = require("./TypeUtils");
10
11
  class TypeReconstituter {
11
12
  constructor(_typeBuilder, _makeClassUnique, _typeAttributes, _forwardingRef, _register) {
12
13
  this._typeBuilder = _typeBuilder;
@@ -356,7 +357,7 @@ class GraphRewriteBuilder extends BaseGraphRewriteBuilder {
356
357
  return reconstituter.getResult();
357
358
  }
358
359
  /*
359
- reconstituteTypeUnmodified(originalType: Type): TypeRef {
360
+ public reconstituteTypeUnmodified(originalType: Type): TypeRef {
360
361
  const reconstituter = new TypeReconstituter(
361
362
  this,
362
363
  this.alphabetizeProperties,
@@ -1,4 +1,4 @@
1
- import { TypeGraph } from "./TypeGraph";
2
- import { TargetLanguage } from "./TargetLanguage";
3
- import { RunContext } from "./Run";
1
+ import { type RunContext } from "./Run";
2
+ import { type TargetLanguage } from "./TargetLanguage";
3
+ import { type TypeGraph } from "./TypeGraph";
4
4
  export declare function makeTransformations(ctx: RunContext, graph: TypeGraph, targetLanguage: TargetLanguage): TypeGraph;
@@ -2,19 +2,19 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeTransformations = void 0;
4
4
  const collection_utils_1 = require("collection-utils");
5
- const TypeGraph_1 = require("./TypeGraph");
6
- const Type_1 = require("./Type");
5
+ const Constraints_1 = require("./attributes/Constraints");
6
+ const StringTypes_1 = require("./attributes/StringTypes");
7
+ const TypeAttributes_1 = require("./attributes/TypeAttributes");
7
8
  const Support_1 = require("./support/Support");
8
9
  const Transformers_1 = require("./Transformers");
9
- const TypeAttributes_1 = require("./attributes/TypeAttributes");
10
- const StringTypes_1 = require("./attributes/StringTypes");
11
- const Constraints_1 = require("./attributes/Constraints");
10
+ const Type_1 = require("./Type");
11
+ const TypeGraph_1 = require("./TypeGraph");
12
12
  function transformationAttributes(graph, reconstitutedTargetType, transformer, debugPrintTransformations) {
13
13
  const transformation = new Transformers_1.Transformation(graph, reconstitutedTargetType, transformer);
14
14
  if (debugPrintTransformations) {
15
15
  console.log(`transformation for ${(0, TypeGraph_1.typeRefIndex)(reconstitutedTargetType)}:`);
16
16
  transformation.debugPrint();
17
- console.log(`reverse:`);
17
+ console.log("reverse:");
18
18
  transformation.reverse.debugPrint();
19
19
  }
20
20
  return Transformers_1.transformationTypeAttributeKind.makeAttributes(transformation);
@@ -109,7 +109,7 @@ function replaceUnion(union, builder, forwardingRef, transformedTypes, debugPrin
109
109
  const transformerForClass = transformerForKind("class");
110
110
  const transformerForMap = transformerForKind("map");
111
111
  (0, Support_1.assert)(transformerForClass === undefined || transformerForMap === undefined, "Can't have both class and map in a transformed union");
112
- const transformerForObject = transformerForClass !== undefined ? transformerForClass : transformerForMap;
112
+ const transformerForObject = transformerForClass !== null && transformerForClass !== void 0 ? transformerForClass : transformerForMap;
113
113
  const transformer = new Transformers_1.DecodingChoiceTransformer(graph, builder.getPrimitiveType("any"), transformerForKind("null"), transformerForKind("integer"), transformerForKind("double"), transformerForKind("bool"), transformerForString, transformerForKind("array"), transformerForObject);
114
114
  const attributes = transformationAttributes(graph, reconstitutedTargetType, transformer, debugPrintTransformations);
115
115
  return builder.getPrimitiveType("any", (0, TypeAttributes_1.combineTypeAttributes)("union", attributes, additionalAttributes), forwardingRef);
@@ -1,12 +1,12 @@
1
1
  export type SubTrie = number | null | Trie;
2
- export type Trie = {
3
- count: number;
2
+ export interface Trie {
4
3
  arr: SubTrie[];
5
- };
6
- export type MarkovChain = {
7
- trie: Trie;
4
+ count: number;
5
+ }
6
+ export interface MarkovChain {
8
7
  depth: number;
9
- };
8
+ trie: Trie;
9
+ }
10
10
  export declare function train(lines: string[], depth: number): MarkovChain;
11
11
  export declare function load(): MarkovChain;
12
12
  export declare function evaluateFull(mc: MarkovChain, word: string): [number, number[]];
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.test = exports.generate = exports.evaluate = exports.evaluateFull = exports.load = exports.train = void 0;
4
- const Support_1 = require("./support/Support");
5
4
  const EncodedMarkovChain_1 = require("./EncodedMarkovChain");
5
+ const Support_1 = require("./support/Support");
6
6
  function makeTrie() {
7
7
  const arr = [];
8
8
  for (let i = 0; i < 128; i++) {
@@ -56,7 +56,7 @@ function increment(t, seq, i) {
56
56
  if (typeof st !== "object") {
57
57
  return (0, Support_1.panic)("Malformed trie");
58
58
  }
59
- return increment(st, seq, i + 1);
59
+ increment(st, seq, i + 1);
60
60
  }
61
61
  function train(lines, depth) {
62
62
  const trie = makeTrie();
@@ -1,5 +1,5 @@
1
- import { StringMap } from "./support/Support";
2
- import { Ref } from "./input/JSONSchemaInput";
1
+ import { type Ref } from "./input/JSONSchemaInput";
2
+ import { type StringMap } from "./support/Support";
3
3
  export type ErrorProperties = {
4
4
  kind: "InternalError";
5
5
  properties: {
@@ -8,8 +8,8 @@ export type ErrorProperties = {
8
8
  } | {
9
9
  kind: "MiscJSONParseError";
10
10
  properties: {
11
- description: string;
12
11
  address: string;
12
+ description: string;
13
13
  message: string;
14
14
  };
15
15
  } | {
@@ -24,8 +24,8 @@ export type ErrorProperties = {
24
24
  } | {
25
25
  kind: "MiscInvalidMinMaxConstraint";
26
26
  properties: {
27
- min: number;
28
27
  max: number;
28
+ min: number;
29
29
  };
30
30
  } | {
31
31
  kind: "InferenceJSONReferenceNotRooted";
@@ -76,8 +76,8 @@ export type ErrorProperties = {
76
76
  } | {
77
77
  kind: "SchemaInvalidType";
78
78
  properties: {
79
- type: string;
80
79
  ref: Ref;
80
+ type: string;
81
81
  };
82
82
  } | {
83
83
  kind: "SchemaFalseNotSupported";
@@ -87,8 +87,8 @@ export type ErrorProperties = {
87
87
  } | {
88
88
  kind: "SchemaInvalidJSONSchemaType";
89
89
  properties: {
90
- type: string;
91
90
  ref: Ref;
91
+ type: string;
92
92
  };
93
93
  } | {
94
94
  kind: "SchemaRequiredMustBeStringOrStringArray";
@@ -134,8 +134,8 @@ export type ErrorProperties = {
134
134
  } | {
135
135
  kind: "SchemaSetOperationCasesIsNotArray";
136
136
  properties: {
137
- operation: string;
138
137
  cases: any;
138
+ operation: string;
139
139
  ref: Ref;
140
140
  };
141
141
  } | {
@@ -267,8 +267,8 @@ export type ErrorProperties = {
267
267
  } | {
268
268
  kind: "RendererUnknownOptionValue";
269
269
  properties: {
270
- value: string;
271
270
  name: string;
271
+ value: string;
272
272
  };
273
273
  } | {
274
274
  kind: "TypeScriptCompilerError";
@@ -287,6 +287,7 @@ export type ErrorPropertiesForName<K> = Extract<ErrorProperties, {
287
287
  export declare class QuickTypeError extends Error {
288
288
  readonly errorMessage: string;
289
289
  readonly messageName: string;
290
+ userMessage: string;
290
291
  readonly properties: StringMap;
291
292
  constructor(errorMessage: string, messageName: string, userMessage: string, properties: StringMap);
292
293
  }
package/dist/Messages.js CHANGED
@@ -70,6 +70,7 @@ class QuickTypeError extends Error {
70
70
  super(userMessage);
71
71
  this.errorMessage = errorMessage;
72
72
  this.messageName = messageName;
73
+ this.userMessage = userMessage;
73
74
  this.properties = properties;
74
75
  }
75
76
  }
package/dist/Naming.d.ts CHANGED
@@ -14,6 +14,7 @@ export type NameStyle = (rawName: string) => string;
14
14
  export declare class Namer {
15
15
  readonly name: string;
16
16
  readonly nameStyle: NameStyle;
17
+ prefixes: string[];
17
18
  private readonly _prefixes;
18
19
  constructor(name: string, nameStyle: NameStyle, prefixes: string[]);
19
20
  assignNames(names: ReadonlyMap<Name, string>, forbiddenNamesIterable: Iterable<string>, namesToAssignIterable: Iterable<Name>): ReadonlyMap<Name, string>;
@@ -25,7 +26,7 @@ export declare abstract class Name {
25
26
  private readonly _associates;
26
27
  constructor(_namingFunction: Namer | undefined, order: number);
27
28
  addAssociate(associate: AssociatedName): void;
28
- abstract get dependencies(): ReadonlyArray<Name>;
29
+ abstract get dependencies(): readonly Name[];
29
30
  isFixed(): this is FixedName;
30
31
  get namingFunction(): Namer;
31
32
  abstract proposeUnstyledNames(names: ReadonlyMap<Name, string>): ReadonlySet<string>;
@@ -35,7 +36,7 @@ export declare abstract class Name {
35
36
  export declare class FixedName extends Name {
36
37
  private readonly _fixedName;
37
38
  constructor(_fixedName: string);
38
- get dependencies(): ReadonlyArray<Name>;
39
+ get dependencies(): readonly Name[];
39
40
  addAssociate(_: AssociatedName): never;
40
41
  get fixedName(): string;
41
42
  proposeUnstyledNames(_?: ReadonlyMap<Name, string>): ReadonlySet<string>;
@@ -43,21 +44,21 @@ export declare class FixedName extends Name {
43
44
  export declare class SimpleName extends Name {
44
45
  private readonly _unstyledNames;
45
46
  constructor(unstyledNames: Iterable<string>, namingFunction: Namer, order: number);
46
- get dependencies(): ReadonlyArray<Name>;
47
+ get dependencies(): readonly Name[];
47
48
  proposeUnstyledNames(_?: ReadonlyMap<Name, string>): ReadonlySet<string>;
48
49
  }
49
50
  export declare class AssociatedName extends Name {
50
51
  private readonly _sponsor;
51
52
  readonly getName: (sponsorName: string) => string;
52
53
  constructor(_sponsor: Name, order: number, getName: (sponsorName: string) => string);
53
- get dependencies(): ReadonlyArray<Name>;
54
+ get dependencies(): readonly Name[];
54
55
  proposeUnstyledNames(_?: ReadonlyMap<Name, string>): never;
55
56
  }
56
57
  export declare class DependencyName extends Name {
57
58
  private readonly _proposeUnstyledName;
58
59
  private readonly _dependencies;
59
60
  constructor(namingFunction: Namer | undefined, order: number, _proposeUnstyledName: (lookup: (n: Name) => string) => string);
60
- get dependencies(): ReadonlyArray<Name>;
61
+ get dependencies(): readonly Name[];
61
62
  proposeUnstyledNames(names: ReadonlyMap<Name, string>): ReadonlySet<string>;
62
63
  }
63
64
  export declare function keywordNamespace(name: string, keywords: string[]): Namespace;
package/dist/Naming.js CHANGED
@@ -50,6 +50,7 @@ class Namer {
50
50
  constructor(name, nameStyle, prefixes) {
51
51
  this.name = name;
52
52
  this.nameStyle = nameStyle;
53
+ this.prefixes = prefixes;
53
54
  this._prefixes = new Set(prefixes);
54
55
  }
55
56
  // The namesIterable comes directly out of the context and will
@@ -250,43 +251,43 @@ class NamingContext {
250
251
  constructor(rootNamespaces) {
251
252
  this._names = new Map();
252
253
  this._namedsForName = new Map();
253
- this.isReadyToBeNamed = (named) => {
254
- if (this._names.has(named))
255
- return false;
256
- return named.dependencies.every((n) => this._names.has(n));
257
- };
258
- this.isConflicting = (namedNamespace, proposed) => {
259
- const namedsForProposed = this._namedsForName.get(proposed);
260
- // If the name is not assigned at all, there is no conflict.
261
- if (namedsForProposed === undefined)
262
- return false;
263
- // The name is assigned, but it might still not be forbidden.
264
- for (const n of namedsForProposed) {
265
- if (namedNamespace.members.has(n) || namedNamespace.forbiddenNameds.has(n)) {
266
- return true;
267
- }
268
- }
269
- return false;
270
- };
271
- this.assign = (named, namedNamespace, name) => {
272
- (0, Support_1.assert)(!this.names.has(named), `Name "${name}" assigned twice`);
273
- (0, Support_1.assert)(!this.isConflicting(namedNamespace, name), `Assigned name "${name}" conflicts`);
274
- this._names.set(named, name);
275
- let namedsForName = this._namedsForName.get(name);
276
- if (namedsForName === undefined) {
277
- namedsForName = new Set();
278
- this._namedsForName.set(name, namedsForName);
279
- }
280
- namedsForName.add(named);
281
- };
282
254
  this.namespaces = allNamespacesRecursively(rootNamespaces);
283
255
  }
284
256
  get names() {
285
257
  return this._names;
286
258
  }
259
+ isReadyToBeNamed(named) {
260
+ if (this._names.has(named))
261
+ return false;
262
+ return named.dependencies.every((n) => this._names.has(n));
263
+ }
287
264
  areForbiddensFullyNamed(namespace) {
288
265
  return (0, collection_utils_1.iterableEvery)(namespace.forbiddenNameds, n => this._names.has(n));
289
266
  }
267
+ isConflicting(namedNamespace, proposed) {
268
+ const namedsForProposed = this._namedsForName.get(proposed);
269
+ // If the name is not assigned at all, there is no conflict.
270
+ if (namedsForProposed === undefined)
271
+ return false;
272
+ // The name is assigned, but it might still not be forbidden.
273
+ for (const n of namedsForProposed) {
274
+ if (namedNamespace.members.has(n) || namedNamespace.forbiddenNameds.has(n)) {
275
+ return true;
276
+ }
277
+ }
278
+ return false;
279
+ }
280
+ assign(named, namedNamespace, name) {
281
+ (0, Support_1.assert)(!this.names.has(named), `Name "${name}" assigned twice`);
282
+ (0, Support_1.assert)(!this.isConflicting(namedNamespace, name), `Assigned name "${name}" conflicts`);
283
+ this._names.set(named, name);
284
+ let namedsForName = this._namedsForName.get(name);
285
+ if (namedsForName === undefined) {
286
+ namedsForName = new Set();
287
+ this._namedsForName.set(name, namedsForName);
288
+ }
289
+ namedsForName.add(named);
290
+ }
290
291
  }
291
292
  // Naming algorithm
292
293
  function assignNames(rootNamespaces) {
@@ -305,7 +306,7 @@ function assignNames(rootNamespaces) {
305
306
  // If no such namespace exists we're either done, or there's an unallowed
306
307
  // cycle.
307
308
  const unfinishedNamespaces = (0, collection_utils_1.setFilter)(ctx.namespaces, ns => ctx.areForbiddensFullyNamed(ns));
308
- const readyNamespace = (0, collection_utils_1.iterableFind)(unfinishedNamespaces, ns => (0, collection_utils_1.iterableSome)(ns.members, ctx.isReadyToBeNamed));
309
+ const readyNamespace = (0, collection_utils_1.iterableFind)(unfinishedNamespaces, ns => (0, collection_utils_1.iterableSome)(ns.members, member => ctx.isReadyToBeNamed(member)));
309
310
  if (readyNamespace === undefined) {
310
311
  // FIXME: Check for cycles?
311
312
  return ctx.names;
@@ -316,7 +317,7 @@ function assignNames(rootNamespaces) {
316
317
  // members of a set propose the same name and have the same naming
317
318
  // function.
318
319
  for (;;) {
319
- const allReadyNames = (0, collection_utils_1.setFilter)(readyNamespace.members, ctx.isReadyToBeNamed);
320
+ const allReadyNames = (0, collection_utils_1.setFilter)(readyNamespace.members, member => ctx.isReadyToBeNamed(member));
320
321
  const minOrderName = (0, collection_utils_1.iterableMinBy)(allReadyNames, n => n.order);
321
322
  if (minOrderName === undefined)
322
323
  break;