@fncts/schema 0.0.23 → 0.0.25

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 (146) hide show
  1. package/AST.d.ts +60 -29
  2. package/ASTAnnotationMap.d.ts +4 -1
  3. package/LICENSE +26 -0
  4. package/ParseError/ParseError.d.ts +28 -13
  5. package/_cjs/AST.cjs +1096 -1087
  6. package/_cjs/AST.cjs.map +1 -1
  7. package/_cjs/ASTAnnotation.cjs +114 -83
  8. package/_cjs/ASTAnnotation.cjs.map +1 -1
  9. package/_cjs/ASTAnnotationMap.cjs +43 -32
  10. package/_cjs/ASTAnnotationMap.cjs.map +1 -1
  11. package/_cjs/Eq.cjs +113 -145
  12. package/_cjs/Eq.cjs.map +1 -1
  13. package/_cjs/Gen.cjs +131 -167
  14. package/_cjs/Gen.cjs.map +1 -1
  15. package/_cjs/Guard.cjs +167 -267
  16. package/_cjs/Guard.cjs.map +1 -1
  17. package/_cjs/InvalidInterpretationError.cjs +9 -15
  18. package/_cjs/InvalidInterpretationError.cjs.map +1 -1
  19. package/_cjs/ParseError/ParseError.cjs +285 -209
  20. package/_cjs/ParseError/ParseError.cjs.map +1 -1
  21. package/_cjs/ParseError/ParseErrorFormatter.cjs +0 -2
  22. package/_cjs/ParseError/PathFormatter.cjs +55 -87
  23. package/_cjs/ParseError/PathFormatter.cjs.map +1 -1
  24. package/_cjs/ParseError/TreeFormatter.cjs +70 -102
  25. package/_cjs/ParseError/TreeFormatter.cjs.map +1 -1
  26. package/_cjs/ParseError.cjs +35 -50
  27. package/_cjs/ParseResult.cjs +15 -15
  28. package/_cjs/ParseResult.cjs.map +1 -1
  29. package/_cjs/Parser/api.cjs +54 -50
  30. package/_cjs/Parser/api.cjs.map +1 -1
  31. package/_cjs/Parser/definition.cjs +17 -16
  32. package/_cjs/Parser/definition.cjs.map +1 -1
  33. package/_cjs/Parser/interpreter.cjs +276 -358
  34. package/_cjs/Parser/interpreter.cjs.map +1 -1
  35. package/_cjs/Parser.cjs +12 -39
  36. package/_cjs/Schema/api/conc.cjs +64 -59
  37. package/_cjs/Schema/api/conc.cjs.map +1 -1
  38. package/_cjs/Schema/api/either.cjs +73 -72
  39. package/_cjs/Schema/api/either.cjs.map +1 -1
  40. package/_cjs/Schema/api/hashMap.cjs +85 -85
  41. package/_cjs/Schema/api/hashMap.cjs.map +1 -1
  42. package/_cjs/Schema/api/hashSet.cjs +75 -69
  43. package/_cjs/Schema/api/hashSet.cjs.map +1 -1
  44. package/_cjs/Schema/api/list.cjs +74 -64
  45. package/_cjs/Schema/api/list.cjs.map +1 -1
  46. package/_cjs/Schema/api/map.cjs +81 -83
  47. package/_cjs/Schema/api/map.cjs.map +1 -1
  48. package/_cjs/Schema/api/maybe.cjs +56 -49
  49. package/_cjs/Schema/api/maybe.cjs.map +1 -1
  50. package/_cjs/Schema/api/set.cjs +68 -61
  51. package/_cjs/Schema/api/set.cjs.map +1 -1
  52. package/_cjs/Schema/api.cjs +332 -350
  53. package/_cjs/Schema/api.cjs.map +1 -1
  54. package/_cjs/Schema/definition.cjs +28 -27
  55. package/_cjs/Schema/definition.cjs.map +1 -1
  56. package/_cjs/Schema/derivations.cjs +85 -100
  57. package/_cjs/Schema/derivations.cjs.map +1 -1
  58. package/_cjs/Schema.cjs +95 -127
  59. package/_cjs/Show.cjs +91 -151
  60. package/_cjs/Show.cjs.map +1 -1
  61. package/_cjs/chunk.cjs +28 -0
  62. package/_cjs/global.cjs +0 -2
  63. package/_cjs/index.cjs +0 -2
  64. package/_cjs/utils.cjs +41 -46
  65. package/_cjs/utils.cjs.map +1 -1
  66. package/_mjs/AST.mjs +1007 -1031
  67. package/_mjs/AST.mjs.map +1 -1
  68. package/_mjs/ASTAnnotation.mjs +77 -71
  69. package/_mjs/ASTAnnotation.mjs.map +1 -1
  70. package/_mjs/ASTAnnotationMap.mjs +36 -25
  71. package/_mjs/ASTAnnotationMap.mjs.map +1 -1
  72. package/_mjs/Eq.mjs +101 -134
  73. package/_mjs/Eq.mjs.map +1 -1
  74. package/_mjs/Gen.mjs +117 -157
  75. package/_mjs/Gen.mjs.map +1 -1
  76. package/_mjs/Guard.mjs +154 -257
  77. package/_mjs/Guard.mjs.map +1 -1
  78. package/_mjs/InvalidInterpretationError.mjs +8 -9
  79. package/_mjs/InvalidInterpretationError.mjs.map +1 -1
  80. package/_mjs/ParseError/ParseError.mjs +270 -190
  81. package/_mjs/ParseError/ParseError.mjs.map +1 -1
  82. package/_mjs/ParseError/ParseErrorFormatter.mjs +0 -2
  83. package/_mjs/ParseError/PathFormatter.mjs +51 -80
  84. package/_mjs/ParseError/PathFormatter.mjs.map +1 -1
  85. package/_mjs/ParseError/TreeFormatter.mjs +62 -94
  86. package/_mjs/ParseError/TreeFormatter.mjs.map +1 -1
  87. package/_mjs/ParseError.mjs +5 -6
  88. package/_mjs/ParseResult.mjs +13 -9
  89. package/_mjs/ParseResult.mjs.map +1 -1
  90. package/_mjs/Parser/api.mjs +43 -39
  91. package/_mjs/Parser/api.mjs.map +1 -1
  92. package/_mjs/Parser/definition.mjs +12 -8
  93. package/_mjs/Parser/definition.mjs.map +1 -1
  94. package/_mjs/Parser/interpreter.mjs +262 -348
  95. package/_mjs/Parser/interpreter.mjs.map +1 -1
  96. package/_mjs/Parser.mjs +4 -5
  97. package/_mjs/Schema/api/conc.mjs +41 -45
  98. package/_mjs/Schema/api/conc.mjs.map +1 -1
  99. package/_mjs/Schema/api/either.mjs +55 -61
  100. package/_mjs/Schema/api/either.mjs.map +1 -1
  101. package/_mjs/Schema/api/hashMap.mjs +61 -71
  102. package/_mjs/Schema/api/hashMap.mjs.map +1 -1
  103. package/_mjs/Schema/api/hashSet.mjs +53 -56
  104. package/_mjs/Schema/api/hashSet.mjs.map +1 -1
  105. package/_mjs/Schema/api/list.mjs +50 -51
  106. package/_mjs/Schema/api/list.mjs.map +1 -1
  107. package/_mjs/Schema/api/map.mjs +59 -69
  108. package/_mjs/Schema/api/map.mjs.map +1 -1
  109. package/_mjs/Schema/api/maybe.mjs +34 -36
  110. package/_mjs/Schema/api/maybe.mjs.map +1 -1
  111. package/_mjs/Schema/api/set.mjs +47 -48
  112. package/_mjs/Schema/api/set.mjs.map +1 -1
  113. package/_mjs/Schema/api.mjs +304 -346
  114. package/_mjs/Schema/api.mjs.map +1 -1
  115. package/_mjs/Schema/definition.mjs +21 -18
  116. package/_mjs/Schema/definition.mjs.map +1 -1
  117. package/_mjs/Schema/derivations.mjs +71 -90
  118. package/_mjs/Schema/derivations.mjs.map +1 -1
  119. package/_mjs/Schema.mjs +12 -15
  120. package/_mjs/Show.mjs +79 -139
  121. package/_mjs/Show.mjs.map +1 -1
  122. package/_mjs/global.mjs +0 -2
  123. package/_mjs/index.mjs +0 -2
  124. package/_mjs/utils.mjs +35 -37
  125. package/_mjs/utils.mjs.map +1 -1
  126. package/_src/AST.ts +226 -28
  127. package/_src/ASTAnnotationMap.ts +14 -1
  128. package/_src/ParseError/ParseError.ts +128 -13
  129. package/_src/Schema/api/hashMap.ts +1 -1
  130. package/_src/Schema/api/hashSet.ts +1 -1
  131. package/_src/Schema/api/list.ts +3 -1
  132. package/_src/Schema/api/map.ts +1 -1
  133. package/_src/Schema/api/set.ts +1 -1
  134. package/package.json +7 -3
  135. package/_cjs/ParseError/ParseErrorFormatter.cjs.map +0 -1
  136. package/_cjs/ParseError.cjs.map +0 -1
  137. package/_cjs/Parser.cjs.map +0 -1
  138. package/_cjs/Schema.cjs.map +0 -1
  139. package/_cjs/global.cjs.map +0 -1
  140. package/_cjs/index.cjs.map +0 -1
  141. package/_mjs/ParseError/ParseErrorFormatter.mjs.map +0 -1
  142. package/_mjs/ParseError.mjs.map +0 -1
  143. package/_mjs/Parser.mjs.map +0 -1
  144. package/_mjs/Schema.mjs.map +0 -1
  145. package/_mjs/global.mjs.map +0 -1
  146. package/_mjs/index.mjs.map +0 -1
package/_mjs/Show.mjs CHANGED
@@ -1,166 +1,106 @@
1
+ import * as tsplus_module_3 from "@fncts/base/collection/immutable/Vector/api";
1
2
  import * as tsplus_module_1 from "@fncts/schema/AST";
2
3
  import * as tsplus_module_2 from "@fncts/base/data/Maybe/api";
3
- import * as tsplus_module_3 from "@fncts/base/collection/immutable/Vector/api";
4
4
  import * as tsplus_module_4 from "@fncts/base/data/Maybe/constructors";
5
5
  import * as tsplus_module_5 from "@fncts/base/data/Maybe/destructors";
6
6
  import { globalValue } from "@fncts/base/data/Global";
7
7
  import { formatUnknown } from "@fncts/schema/utils";
8
- const showMemoMap = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for("fncts.schema.Guard.showMemoMap"), () => new WeakMap());
9
- const showMemoMapVerbose = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for("fncts.schema.Guard.showMemoMapVerbose"), () => new WeakMap());
8
+ //#region build/esm/Show.js
9
+ const showMemoMap = globalValue(Symbol.for("fncts.schema.Guard.showMemoMap"), () => /* @__PURE__ */ new WeakMap());
10
+ const showMemoMapVerbose = globalValue(Symbol.for("fncts.schema.Guard.showMemoMapVerbose"), () => /* @__PURE__ */ new WeakMap());
10
11
  function goMemo(ast, verbose) {
11
- const memoMap = verbose ? showMemoMapVerbose : showMemoMap;
12
- const memo = memoMap.get(ast);
13
- if (memo) {
14
- return memo;
15
- }
16
- const s = go(ast, verbose);
17
- memoMap.set(ast, s);
18
- return s;
12
+ const memoMap = verbose ? showMemoMapVerbose : showMemoMap;
13
+ const memo = memoMap.get(ast);
14
+ if (memo) return memo;
15
+ const s = go(ast, verbose);
16
+ memoMap.set(ast, s);
17
+ return s;
19
18
  }
20
19
  /**
21
- * @tsplus pipeable fncts.schema.Schema show
22
- */
23
- export function show(verbose = false) {
24
- return self => goMemo(self.ast, verbose);
20
+ * @tsplus pipeable fncts.schema.Schema show
21
+ */
22
+ function show(verbose = false) {
23
+ return (self) => goMemo(self.ast, verbose);
25
24
  }
26
25
  /**
27
- * @tsplus pipeable fncts.schema.AST show
28
- */
29
- export function showAST(verbose = false) {
30
- return self => goMemo(self, verbose);
26
+ * @tsplus pipeable fncts.schema.AST show
27
+ */
28
+ function showAST(verbose = false) {
29
+ return (self) => goMemo(self, verbose);
31
30
  }
32
31
  function go(ast, verbose) {
33
- void 0;
34
- switch (ast._tag) {
35
- case 0 /* ASTTag.Declaration */:
36
- {
37
- return tsplus_module_2.getOrElse(() => "<declaration schema>")(tsplus_module_1.getFormattedExpected(verbose)(ast));
38
- }
39
- case 1 /* ASTTag.Literal */:
40
- return tsplus_module_2.getOrElse(() => formatUnknown(ast.literal))(tsplus_module_1.getFormattedExpected(verbose)(ast));
41
- case 2 /* ASTTag.UniqueSymbol */:
42
- return tsplus_module_2.getOrElse(() => formatUnknown(ast.symbol))(tsplus_module_1.getFormattedExpected(verbose)(ast));
43
- case 3 /* ASTTag.UndefinedKeyword */:
44
- return tsplus_module_2.getOrElse(() => "undefined")(tsplus_module_1.getFormattedExpected(verbose)(ast));
45
- case 4 /* ASTTag.VoidKeyword */:
46
- return tsplus_module_2.getOrElse(() => "void")(tsplus_module_1.getFormattedExpected(verbose)(ast));
47
- case 5 /* ASTTag.NeverKeyword */:
48
- return tsplus_module_2.getOrElse(() => "never")(tsplus_module_1.getFormattedExpected(verbose)(ast));
49
- case 6 /* ASTTag.UnknownKeyword */:
50
- return tsplus_module_2.getOrElse(() => "unknown")(tsplus_module_1.getFormattedExpected(verbose)(ast));
51
- case 7 /* ASTTag.AnyKeyword */:
52
- return tsplus_module_2.getOrElse(() => "any")(tsplus_module_1.getFormattedExpected(verbose)(ast));
53
- case 8 /* ASTTag.StringKeyword */:
54
- return tsplus_module_2.getOrElse(() => "string")(tsplus_module_1.getFormattedExpected(verbose)(ast));
55
- case 9 /* ASTTag.NumberKeyword */:
56
- return tsplus_module_2.getOrElse(() => "number")(tsplus_module_1.getFormattedExpected(verbose)(ast));
57
- case 10 /* ASTTag.BooleanKeyword */:
58
- return tsplus_module_2.getOrElse(() => "boolean")(tsplus_module_1.getFormattedExpected(verbose)(ast));
59
- case 11 /* ASTTag.BigIntKeyword */:
60
- return tsplus_module_2.getOrElse(() => "bigint")(tsplus_module_1.getFormattedExpected(verbose)(ast));
61
- case 12 /* ASTTag.SymbolKeyword */:
62
- return tsplus_module_2.getOrElse(() => "symbol")(tsplus_module_1.getFormattedExpected(verbose)(ast));
63
- case 13 /* ASTTag.ObjectKeyword */:
64
- return tsplus_module_2.getOrElse(() => "object")(tsplus_module_1.getFormattedExpected(verbose)(ast));
65
- case 15 /* ASTTag.TemplateLiteral */:
66
- return tsplus_module_2.getOrElse(() => formatTemplateLiteral(ast))(tsplus_module_1.getFormattedExpected(verbose)(ast));
67
- case 16 /* ASTTag.Tuple */:
68
- {
69
- return tsplus_module_2.getOrElse(() => formatTuple(ast, verbose))(tsplus_module_1.getFormattedExpected(verbose)(ast));
70
- }
71
- case 17 /* ASTTag.TypeLiteral */:
72
- {
73
- return tsplus_module_2.getOrElse(() => formatTypeLiteral(ast, verbose))(tsplus_module_1.getFormattedExpected(verbose)(ast));
74
- }
75
- case 18 /* ASTTag.Union */:
76
- {
77
- return tsplus_module_2.getOrElse(() => tsplus_module_3.join(" | ")(tsplus_module_3.map(ast => goMemo(ast, verbose))(ast.types)))(tsplus_module_1.getFormattedExpected(verbose)(ast));
78
- }
79
- case 19 /* ASTTag.Lazy */:
80
- {
81
- return tsplus_module_2.getOrElse(() => "<lazy schema>")(tsplus_module_2.orElse(() => tsplus_module_2.flatMap(ast => tsplus_module_1.getFormattedExpected(verbose)(ast))(tsplus_module_4.tryCatch(ast.getAST)))(tsplus_module_1.getFormattedExpected(verbose)(ast)));
82
- }
83
- case 14 /* ASTTag.Enum */:
84
- {
85
- return tsplus_module_2.getOrElse(() => `<enum ${ast.enums.length} values(s): ${tsplus_module_3.join(" | ")(tsplus_module_3.map(([_, value]) => JSON.stringify(value))(ast.enums))}`)(tsplus_module_1.getFormattedExpected(verbose)(ast));
86
- }
87
- case 20 /* ASTTag.Refinement */:
88
- {
89
- return tsplus_module_2.getOrElse(() => `{ ${goMemo(ast.from, verbose)} | filter }`)(tsplus_module_1.getFormattedExpected(verbose)(ast));
90
- }
91
- case 21 /* ASTTag.Transform */:
92
- {
93
- return tsplus_module_2.getOrElse(() => `(${goMemo(ast.from, verbose)} <-> ${goMemo(ast.to, verbose)})`)(tsplus_module_1.getFormattedExpected(verbose)(ast));
94
- }
95
- case 22 /* ASTTag.Validation */:
96
- {
97
- return tsplus_module_2.getOrElse(() => `${goMemo(ast.from, verbose)} (${tsplus_module_3.join(" & ")(tsplus_module_3.map(v => v.name)(ast.validation))})`)(tsplus_module_1.getFormattedExpected(verbose)(ast));
98
- }
99
- }
32
+ switch (ast._tag) {
33
+ case 0: return tsplus_module_2.getOrElse(() => "<declaration schema>")(tsplus_module_1.getFormattedExpected(verbose)(ast));
34
+ case 1: return tsplus_module_2.getOrElse(() => formatUnknown(ast.literal))(tsplus_module_1.getFormattedExpected(verbose)(ast));
35
+ case 2: return tsplus_module_2.getOrElse(() => formatUnknown(ast.symbol))(tsplus_module_1.getFormattedExpected(verbose)(ast));
36
+ case 3: return tsplus_module_2.getOrElse(() => "undefined")(tsplus_module_1.getFormattedExpected(verbose)(ast));
37
+ case 4: return tsplus_module_2.getOrElse(() => "void")(tsplus_module_1.getFormattedExpected(verbose)(ast));
38
+ case 5: return tsplus_module_2.getOrElse(() => "never")(tsplus_module_1.getFormattedExpected(verbose)(ast));
39
+ case 6: return tsplus_module_2.getOrElse(() => "unknown")(tsplus_module_1.getFormattedExpected(verbose)(ast));
40
+ case 7: return tsplus_module_2.getOrElse(() => "any")(tsplus_module_1.getFormattedExpected(verbose)(ast));
41
+ case 8: return tsplus_module_2.getOrElse(() => "string")(tsplus_module_1.getFormattedExpected(verbose)(ast));
42
+ case 9: return tsplus_module_2.getOrElse(() => "number")(tsplus_module_1.getFormattedExpected(verbose)(ast));
43
+ case 10: return tsplus_module_2.getOrElse(() => "boolean")(tsplus_module_1.getFormattedExpected(verbose)(ast));
44
+ case 11: return tsplus_module_2.getOrElse(() => "bigint")(tsplus_module_1.getFormattedExpected(verbose)(ast));
45
+ case 12: return tsplus_module_2.getOrElse(() => "symbol")(tsplus_module_1.getFormattedExpected(verbose)(ast));
46
+ case 13: return tsplus_module_2.getOrElse(() => "object")(tsplus_module_1.getFormattedExpected(verbose)(ast));
47
+ case 15: return tsplus_module_2.getOrElse(() => formatTemplateLiteral(ast))(tsplus_module_1.getFormattedExpected(verbose)(ast));
48
+ case 16: return tsplus_module_2.getOrElse(() => formatTuple(ast, verbose))(tsplus_module_1.getFormattedExpected(verbose)(ast));
49
+ case 17: return tsplus_module_2.getOrElse(() => formatTypeLiteral(ast, verbose))(tsplus_module_1.getFormattedExpected(verbose)(ast));
50
+ case 18: return tsplus_module_2.getOrElse(() => tsplus_module_3.join(" | ")(tsplus_module_3.map((ast) => goMemo(ast, verbose))(ast.types)))(tsplus_module_1.getFormattedExpected(verbose)(ast));
51
+ case 19: return tsplus_module_2.getOrElse(() => "<lazy schema>")(tsplus_module_2.orElse(() => tsplus_module_2.flatMap((ast) => tsplus_module_1.getFormattedExpected(verbose)(ast))(tsplus_module_4.tryCatch(ast.getAST)))(tsplus_module_1.getFormattedExpected(verbose)(ast)));
52
+ case 14: return tsplus_module_2.getOrElse(() => `<enum ${ast.enums.length} values(s): ${tsplus_module_3.join(" | ")(tsplus_module_3.map(([_, value]) => JSON.stringify(value))(ast.enums))}`)(tsplus_module_1.getFormattedExpected(verbose)(ast));
53
+ case 20: return tsplus_module_2.getOrElse(() => `{ ${goMemo(ast.from, verbose)} | filter }`)(tsplus_module_1.getFormattedExpected(verbose)(ast));
54
+ case 21: return tsplus_module_2.getOrElse(() => `(${goMemo(ast.from, verbose)} <-> ${goMemo(ast.to, verbose)})`)(tsplus_module_1.getFormattedExpected(verbose)(ast));
55
+ case 22: return tsplus_module_2.getOrElse(() => `${goMemo(ast.from, verbose)} (${tsplus_module_3.join(" & ")(tsplus_module_3.map((v) => v.name)(ast.validation))})`)(tsplus_module_1.getFormattedExpected(verbose)(ast));
56
+ }
100
57
  }
101
58
  function formatTemplateLiteralSpan(span) {
102
- switch (span.type._tag) {
103
- case 8 /* ASTTag.StringKeyword */:
104
- return "${string}";
105
- case 9 /* ASTTag.NumberKeyword */:
106
- return "${number}";
107
- }
59
+ switch (span.type._tag) {
60
+ case 8: return "${string}";
61
+ case 9: return "${number}";
62
+ }
108
63
  }
109
64
  function formatTemplateLiteral(ast) {
110
- return "`" + ast.head + tsplus_module_3.join("")(tsplus_module_3.map(span => formatTemplateLiteralSpan(span) + span.literal)(ast.spans)) + "`";
65
+ return "`" + ast.head + tsplus_module_3.join("")(tsplus_module_3.map((span) => formatTemplateLiteralSpan(span) + span.literal)(ast.spans)) + "`";
111
66
  }
112
67
  function formatElement(ast, verbose) {
113
- return goMemo(ast.type, verbose) + (ast.isOptional ? "?" : "");
68
+ return goMemo(ast.type, verbose) + (ast.isOptional ? "?" : "");
114
69
  }
115
70
  function getParameterBase(self) {
116
- switch (self._tag) {
117
- case 9 /* ASTTag.NumberKeyword */:
118
- case 8 /* ASTTag.StringKeyword */:
119
- case 12 /* ASTTag.SymbolKeyword */:
120
- case 15 /* ASTTag.TemplateLiteral */:
121
- return self;
122
- case 20 /* ASTTag.Refinement */:
123
- return getParameterBase(self);
124
- }
71
+ switch (self._tag) {
72
+ case 9:
73
+ case 8:
74
+ case 12:
75
+ case 15: return self;
76
+ case 20: return getParameterBase(self);
77
+ }
125
78
  }
126
79
  function formatTuple(ast, verbose) {
127
- const formattedElements = tsplus_module_3.join(", ")(tsplus_module_3.map(element => formatElement(element, verbose))(ast.elements));
128
- return tsplus_module_5.match(() => `${ast.isReadonly ? "readonly " : ""}[${formattedElements}]`, rest => {
129
- const head = tsplus_module_3.unsafeHead(rest);
130
- const tail = tsplus_module_3.tail(rest);
131
- const formattedHead = goMemo(head, verbose);
132
- const wrappedHead = formattedHead.includes(" | ") ? `(${formattedHead})` : formattedHead;
133
- if (tail.length > 0) {
134
- const formattedTail = tsplus_module_3.join(", ")(tsplus_module_3.map(ast => goMemo(ast, verbose))(tail));
135
- if (ast.elements.length > 0) {
136
- return `${ast.isReadonly ? "readonly " : " "}[${formattedElements}, ...${wrappedHead}[], ${formattedTail}]`;
137
- } else {
138
- return `${ast.isReadonly ? "readonly " : " "}[...${wrappedHead}[], ${formattedTail}]`;
139
- }
140
- } else {
141
- if (ast.elements.length > 0) {
142
- return `${ast.isReadonly ? "readonly " : " "}[${formattedElements}, ...${wrappedHead}[]]`;
143
- } else {
144
- return `${ast.isReadonly ? "Readonly" : ""}Array<${formattedHead}>`;
145
- }
146
- }
147
- })(tsplus_module_2.filter(rest => tsplus_module_3.isNonEmpty(rest))(ast.rest));
80
+ const formattedElements = tsplus_module_3.join(", ")(tsplus_module_3.map((element) => formatElement(element, verbose))(ast.elements));
81
+ return tsplus_module_5.match(() => `${ast.isReadonly ? "readonly " : ""}[${formattedElements}]`, (rest) => {
82
+ const head = tsplus_module_3.unsafeHead(rest);
83
+ const tail = tsplus_module_3.tail(rest);
84
+ const formattedHead = goMemo(head, verbose);
85
+ const wrappedHead = formattedHead.includes(" | ") ? `(${formattedHead})` : formattedHead;
86
+ if (tail.length > 0) {
87
+ const formattedTail = tsplus_module_3.join(", ")(tsplus_module_3.map((ast) => goMemo(ast, verbose))(tail));
88
+ if (ast.elements.length > 0) return `${ast.isReadonly ? "readonly " : " "}[${formattedElements}, ...${wrappedHead}[], ${formattedTail}]`;
89
+ else return `${ast.isReadonly ? "readonly " : " "}[...${wrappedHead}[], ${formattedTail}]`;
90
+ } else if (ast.elements.length > 0) return `${ast.isReadonly ? "readonly " : " "}[${formattedElements}, ...${wrappedHead}[]]`;
91
+ else return `${ast.isReadonly ? "Readonly" : ""}Array<${formattedHead}>`;
92
+ })(tsplus_module_2.filter((rest) => tsplus_module_3.isNonEmpty(rest))(ast.rest));
148
93
  }
149
94
  function formatTypeLiteral(ast, verbose) {
150
- const formattedPropertySignatures = tsplus_module_3.join("; ")(tsplus_module_3.map(ps => (ps.isReadonly ? "readonly " : "") + String(ps.name) + (ps.isOptional ? "?" : "") + ": " + goMemo(ps.type, verbose))(ast.propertySignatures));
151
- if (ast.indexSignatures.length > 0) {
152
- const formattedIndexSignatures = tsplus_module_3.join("; ")(tsplus_module_3.map(is => (is.isReadonly ? "readonly " : "") + `[x: ${goMemo(getParameterBase(is.parameter), verbose)}]: ${goMemo(is.type, verbose)}`)(ast.indexSignatures));
153
- if (ast.propertySignatures.length > 0) {
154
- return `{ ${formattedPropertySignatures}; ${formattedIndexSignatures} }`;
155
- } else {
156
- return `{ ${formattedIndexSignatures} }`;
157
- }
158
- } else {
159
- if (ast.propertySignatures.length > 0) {
160
- return `{ ${formattedPropertySignatures} }`;
161
- } else {
162
- return "{}";
163
- }
164
- }
95
+ const formattedPropertySignatures = tsplus_module_3.join("; ")(tsplus_module_3.map((ps) => (ps.isReadonly ? "readonly " : "") + String(ps.name) + (ps.isOptional ? "?" : "") + ": " + goMemo(ps.type, verbose))(ast.propertySignatures));
96
+ if (ast.indexSignatures.length > 0) {
97
+ const formattedIndexSignatures = tsplus_module_3.join("; ")(tsplus_module_3.map((is) => (is.isReadonly ? "readonly " : "") + `[x: ${goMemo(getParameterBase(is.parameter), verbose)}]: ${goMemo(is.type, verbose)}`)(ast.indexSignatures));
98
+ if (ast.propertySignatures.length > 0) return `{ ${formattedPropertySignatures}; ${formattedIndexSignatures} }`;
99
+ else return `{ ${formattedIndexSignatures} }`;
100
+ } else if (ast.propertySignatures.length > 0) return `{ ${formattedPropertySignatures} }`;
101
+ else return "{}";
165
102
  }
103
+ //#endregion
104
+ export { show, showAST };
105
+
166
106
  //# sourceMappingURL=Show.mjs.map
package/_mjs/Show.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Show.mjs","names":["globalValue","formatUnknown","showMemoMap","Symbol","for","WeakMap","showMemoMapVerbose","goMemo","ast","verbose","memoMap","memo","get","s","go","set","show","self","showAST","_tag","tsplus_module_2","getOrElse","tsplus_module_1","getFormattedExpected","literal","symbol","formatTemplateLiteral","formatTuple","formatTypeLiteral","tsplus_module_3","join","map","types","orElse","flatMap","tsplus_module_4","tryCatch","getAST","enums","length","_","value","JSON","stringify","from","to","v","name","validation","formatTemplateLiteralSpan","span","type","head","spans","formatElement","isOptional","getParameterBase","formattedElements","element","elements","tsplus_module_5","match","isReadonly","rest","unsafeHead","tail","formattedHead","wrappedHead","includes","formattedTail","filter","isNonEmpty","formattedPropertySignatures","ps","String","propertySignatures","indexSignatures","formattedIndexSignatures","is","parameter"],"sources":["../_src/Show.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Show.mjs","names":[],"sources":["../esm/Show.js"],"sourcesContent":["import * as tsplus_module_1 from \"@fncts/schema/AST\";\nimport * as tsplus_module_2 from \"@fncts/base/data/Maybe/api\";\nimport * as tsplus_module_3 from \"@fncts/base/collection/immutable/Vector/api\";\nimport * as tsplus_module_4 from \"@fncts/base/data/Maybe/constructors\";\nimport * as tsplus_module_5 from \"@fncts/base/data/Maybe/destructors\";\nimport { globalValue } from \"@fncts/base/data/Global\";\nimport { formatUnknown } from \"@fncts/schema/utils\";\nconst showMemoMap = globalValue(Symbol.for(\"fncts.schema.Guard.showMemoMap\"), () => new WeakMap());\nconst showMemoMapVerbose = globalValue(Symbol.for(\"fncts.schema.Guard.showMemoMapVerbose\"), () => new WeakMap());\nfunction goMemo(ast, verbose) {\n const memoMap = verbose ? showMemoMapVerbose : showMemoMap;\n const memo = memoMap.get(ast);\n if (memo) {\n return memo;\n }\n const s = go(ast, verbose);\n memoMap.set(ast, s);\n return s;\n}\n/**\n * @tsplus pipeable fncts.schema.Schema show\n */\nexport function show(verbose = false) {\n return (self) => goMemo(self.ast, verbose);\n}\n/**\n * @tsplus pipeable fncts.schema.AST show\n */\nexport function showAST(verbose = false) {\n return (self) => goMemo(self, verbose);\n}\nfunction go(ast, verbose) {\n void 0;\n switch (ast._tag) {\n case 0 /* ASTTag.Declaration */: {\n return tsplus_module_2.getOrElse(() => \"<declaration schema>\")(tsplus_module_1.getFormattedExpected(verbose)(ast));\n }\n case 1 /* ASTTag.Literal */:\n return tsplus_module_2.getOrElse(() => formatUnknown(ast.literal))(tsplus_module_1.getFormattedExpected(verbose)(ast));\n case 2 /* ASTTag.UniqueSymbol */:\n return tsplus_module_2.getOrElse(() => formatUnknown(ast.symbol))(tsplus_module_1.getFormattedExpected(verbose)(ast));\n case 3 /* ASTTag.UndefinedKeyword */:\n return tsplus_module_2.getOrElse(() => \"undefined\")(tsplus_module_1.getFormattedExpected(verbose)(ast));\n case 4 /* ASTTag.VoidKeyword */:\n return tsplus_module_2.getOrElse(() => \"void\")(tsplus_module_1.getFormattedExpected(verbose)(ast));\n case 5 /* ASTTag.NeverKeyword */:\n return tsplus_module_2.getOrElse(() => \"never\")(tsplus_module_1.getFormattedExpected(verbose)(ast));\n case 6 /* ASTTag.UnknownKeyword */:\n return tsplus_module_2.getOrElse(() => \"unknown\")(tsplus_module_1.getFormattedExpected(verbose)(ast));\n case 7 /* ASTTag.AnyKeyword */:\n return tsplus_module_2.getOrElse(() => \"any\")(tsplus_module_1.getFormattedExpected(verbose)(ast));\n case 8 /* ASTTag.StringKeyword */:\n return tsplus_module_2.getOrElse(() => \"string\")(tsplus_module_1.getFormattedExpected(verbose)(ast));\n case 9 /* ASTTag.NumberKeyword */:\n return tsplus_module_2.getOrElse(() => \"number\")(tsplus_module_1.getFormattedExpected(verbose)(ast));\n case 10 /* ASTTag.BooleanKeyword */:\n return tsplus_module_2.getOrElse(() => \"boolean\")(tsplus_module_1.getFormattedExpected(verbose)(ast));\n case 11 /* ASTTag.BigIntKeyword */:\n return tsplus_module_2.getOrElse(() => \"bigint\")(tsplus_module_1.getFormattedExpected(verbose)(ast));\n case 12 /* ASTTag.SymbolKeyword */:\n return tsplus_module_2.getOrElse(() => \"symbol\")(tsplus_module_1.getFormattedExpected(verbose)(ast));\n case 13 /* ASTTag.ObjectKeyword */:\n return tsplus_module_2.getOrElse(() => \"object\")(tsplus_module_1.getFormattedExpected(verbose)(ast));\n case 15 /* ASTTag.TemplateLiteral */:\n return tsplus_module_2.getOrElse(() => formatTemplateLiteral(ast))(tsplus_module_1.getFormattedExpected(verbose)(ast));\n case 16 /* ASTTag.Tuple */: {\n return tsplus_module_2.getOrElse(() => formatTuple(ast, verbose))(tsplus_module_1.getFormattedExpected(verbose)(ast));\n }\n case 17 /* ASTTag.TypeLiteral */: {\n return tsplus_module_2.getOrElse(() => formatTypeLiteral(ast, verbose))(tsplus_module_1.getFormattedExpected(verbose)(ast));\n }\n case 18 /* ASTTag.Union */: {\n return tsplus_module_2.getOrElse(() => tsplus_module_3.join(\" | \")(tsplus_module_3.map((ast) => goMemo(ast, verbose))(ast.types)))(tsplus_module_1.getFormattedExpected(verbose)(ast));\n }\n case 19 /* ASTTag.Lazy */: {\n return tsplus_module_2.getOrElse(() => \"<lazy schema>\")(tsplus_module_2.orElse(() => tsplus_module_2.flatMap((ast) => tsplus_module_1.getFormattedExpected(verbose)(ast))(tsplus_module_4.tryCatch(ast.getAST)))(tsplus_module_1.getFormattedExpected(verbose)(ast)));\n }\n case 14 /* ASTTag.Enum */: {\n return tsplus_module_2.getOrElse(() => `<enum ${ast.enums.length} values(s): ${tsplus_module_3.join(\" | \")(tsplus_module_3.map(([_, value]) => JSON.stringify(value))(ast.enums))}`)(tsplus_module_1.getFormattedExpected(verbose)(ast));\n }\n case 20 /* ASTTag.Refinement */: {\n return tsplus_module_2.getOrElse(() => `{ ${goMemo(ast.from, verbose)} | filter }`)(tsplus_module_1.getFormattedExpected(verbose)(ast));\n }\n case 21 /* ASTTag.Transform */: {\n return tsplus_module_2.getOrElse(() => `(${goMemo(ast.from, verbose)} <-> ${goMemo(ast.to, verbose)})`)(tsplus_module_1.getFormattedExpected(verbose)(ast));\n }\n case 22 /* ASTTag.Validation */: {\n return tsplus_module_2.getOrElse(() => `${goMemo(ast.from, verbose)} (${tsplus_module_3.join(\" & \")(tsplus_module_3.map((v) => v.name)(ast.validation))})`)(tsplus_module_1.getFormattedExpected(verbose)(ast));\n }\n }\n}\nfunction formatTemplateLiteralSpan(span) {\n switch (span.type._tag) {\n case 8 /* ASTTag.StringKeyword */:\n return \"${string}\";\n case 9 /* ASTTag.NumberKeyword */:\n return \"${number}\";\n }\n}\nfunction formatTemplateLiteral(ast) {\n return \"`\" + ast.head + tsplus_module_3.join(\"\")(tsplus_module_3.map((span) => formatTemplateLiteralSpan(span) + span.literal)(ast.spans)) + \"`\";\n}\nfunction formatElement(ast, verbose) {\n return goMemo(ast.type, verbose) + (ast.isOptional ? \"?\" : \"\");\n}\nfunction getParameterBase(self) {\n switch (self._tag) {\n case 9 /* ASTTag.NumberKeyword */:\n case 8 /* ASTTag.StringKeyword */:\n case 12 /* ASTTag.SymbolKeyword */:\n case 15 /* ASTTag.TemplateLiteral */:\n return self;\n case 20 /* ASTTag.Refinement */:\n return getParameterBase(self);\n }\n}\nfunction formatTuple(ast, verbose) {\n const formattedElements = tsplus_module_3.join(\", \")(tsplus_module_3.map((element) => formatElement(element, verbose))(ast.elements));\n return tsplus_module_5.match(() => `${ast.isReadonly ? \"readonly \" : \"\"}[${formattedElements}]`, (rest) => {\n const head = tsplus_module_3.unsafeHead(rest);\n const tail = tsplus_module_3.tail(rest);\n const formattedHead = goMemo(head, verbose);\n const wrappedHead = formattedHead.includes(\" | \") ? `(${formattedHead})` : formattedHead;\n if (tail.length > 0) {\n const formattedTail = tsplus_module_3.join(\", \")(tsplus_module_3.map((ast) => goMemo(ast, verbose))(tail));\n if (ast.elements.length > 0) {\n return `${ast.isReadonly ? \"readonly \" : \" \"}[${formattedElements}, ...${wrappedHead}[], ${formattedTail}]`;\n }\n else {\n return `${ast.isReadonly ? \"readonly \" : \" \"}[...${wrappedHead}[], ${formattedTail}]`;\n }\n }\n else {\n if (ast.elements.length > 0) {\n return `${ast.isReadonly ? \"readonly \" : \" \"}[${formattedElements}, ...${wrappedHead}[]]`;\n }\n else {\n return `${ast.isReadonly ? \"Readonly\" : \"\"}Array<${formattedHead}>`;\n }\n }\n })(tsplus_module_2.filter((rest) => tsplus_module_3.isNonEmpty(rest))(ast.rest));\n}\nfunction formatTypeLiteral(ast, verbose) {\n const formattedPropertySignatures = tsplus_module_3.join(\"; \")(tsplus_module_3.map((ps) => (ps.isReadonly ? \"readonly \" : \"\") +\n String(ps.name) +\n (ps.isOptional ? \"?\" : \"\") +\n \": \" +\n goMemo(ps.type, verbose))(ast.propertySignatures));\n if (ast.indexSignatures.length > 0) {\n const formattedIndexSignatures = tsplus_module_3.join(\"; \")(tsplus_module_3.map((is) => (is.isReadonly ? \"readonly \" : \"\") +\n `[x: ${goMemo(getParameterBase(is.parameter), verbose)}]: ${goMemo(is.type, verbose)}`)(ast.indexSignatures));\n if (ast.propertySignatures.length > 0) {\n return `{ ${formattedPropertySignatures}; ${formattedIndexSignatures} }`;\n }\n else {\n return `{ ${formattedIndexSignatures} }`;\n }\n }\n else {\n if (ast.propertySignatures.length > 0) {\n return `{ ${formattedPropertySignatures} }`;\n }\n else {\n return \"{}\";\n }\n }\n}\n//# sourceMappingURL=Show.js.map"],"mappings":"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"}
package/_mjs/global.mjs CHANGED
@@ -1,2 +0,0 @@
1
-
2
- //# sourceMappingURL=global.mjs.map
package/_mjs/index.mjs CHANGED
@@ -1,2 +0,0 @@
1
-
2
- //# sourceMappingURL=index.mjs.map
package/_mjs/utils.mjs CHANGED
@@ -1,46 +1,44 @@
1
1
  import * as tsplus_module_1 from "@fncts/base/collection/immutable/Vector/api";
2
2
  import * as tsplus_module_2 from "@fncts/schema/AST";
3
3
  import { showWithOptions } from "@fncts/base/data/Showable";
4
- export function memoize(f) {
5
- const cache = new Map();
6
- return a => {
7
- if (!cache.has(a)) {
8
- const b = f(a);
9
- cache.set(a, b);
10
- return b;
11
- }
12
- return cache.get(a);
13
- };
4
+ //#region build/esm/utils.js
5
+ function memoize(f) {
6
+ const cache = /* @__PURE__ */ new Map();
7
+ return (a) => {
8
+ if (!cache.has(a)) {
9
+ const b = f(a);
10
+ cache.set(a, b);
11
+ return b;
12
+ }
13
+ return cache.get(a);
14
+ };
14
15
  }
15
- export function ownKeys(o) {
16
- return o ? tsplus_module_1.from(Reflect.ownKeys(o)) : tsplus_module_1.empty();
16
+ function ownKeys(o) {
17
+ return o ? tsplus_module_1.from(Reflect.ownKeys(o)) : tsplus_module_1.empty();
17
18
  }
18
- export function getTemplateLiteralRegex(ast) {
19
- let pattern = `^${ast.head}`;
20
- for (const span of ast.spans) {
21
- if (tsplus_module_2.isStringKeyword(span.type)) {
22
- pattern += ".*";
23
- } else if (tsplus_module_2.isNumberKeyword(span.type)) {
24
- pattern += "-?\\d+(\\.\\d+)?";
25
- }
26
- pattern += span.literal;
27
- }
28
- pattern += "$";
29
- return new RegExp(pattern);
19
+ function getTemplateLiteralRegex(ast) {
20
+ let pattern = `^${ast.head}`;
21
+ for (const span of ast.spans) {
22
+ if (tsplus_module_2.isStringKeyword(span.type)) pattern += ".*";
23
+ else if (tsplus_module_2.isNumberKeyword(span.type)) pattern += "-?\\d+(\\.\\d+)?";
24
+ pattern += span.literal;
25
+ }
26
+ pattern += "$";
27
+ return new RegExp(pattern);
30
28
  }
31
- export function getKeysForIndexSignature(input, parameter) {
32
- switch (parameter._tag) {
33
- case 9 /* ASTTag.NumberKeyword */:
34
- case 8 /* ASTTag.StringKeyword */:
35
- case 15 /* ASTTag.TemplateLiteral */:
36
- return tsplus_module_1.from(Object.keys(input));
37
- case 12 /* ASTTag.SymbolKeyword */:
38
- return tsplus_module_1.from(Object.getOwnPropertySymbols(input));
39
- case 20 /* ASTTag.Refinement */:
40
- return getKeysForIndexSignature(input, parameter.from);
41
- }
29
+ function getKeysForIndexSignature(input, parameter) {
30
+ switch (parameter._tag) {
31
+ case 9:
32
+ case 8:
33
+ case 15: return tsplus_module_1.from(Object.keys(input));
34
+ case 12: return tsplus_module_1.from(Object.getOwnPropertySymbols(input));
35
+ case 20: return getKeysForIndexSignature(input, parameter.from);
36
+ }
42
37
  }
43
- export function formatUnknown(u) {
44
- return showWithOptions(u, {});
38
+ function formatUnknown(u) {
39
+ return showWithOptions(u, {});
45
40
  }
41
+ //#endregion
42
+ export { formatUnknown, getKeysForIndexSignature, getTemplateLiteralRegex, memoize, ownKeys };
43
+
46
44
  //# sourceMappingURL=utils.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.mjs","names":["showWithOptions","memoize","f","cache","Map","a","has","b","set","get","ownKeys","o","tsplus_module_1","from","Reflect","empty","getTemplateLiteralRegex","ast","pattern","head","span","spans","tsplus_module_2","isStringKeyword","type","isNumberKeyword","literal","RegExp","getKeysForIndexSignature","input","parameter","_tag","Object","keys","getOwnPropertySymbols","formatUnknown","u"],"sources":["../_src/utils.ts"],"sourcesContent":[null],"mappings":";;AAEA,SAASA,eAAe,QAAQ,2BAA2B;AAI3D,OAAM,SAAUC,OAAOA,CAAOC,CAAc;EAC1C,MAAMC,KAAK,GAAG,IAAIC,GAAG,EAAE;EACvB,OAAQC,CAAC,IAAI;IACX,IAAI,CAACF,KAAK,CAACG,GAAG,CAACD,CAAC,CAAC,EAAE;MACjB,MAAME,CAAC,GAAGL,CAAC,CAACG,CAAC,CAAC;MACdF,KAAK,CAACK,GAAG,CAACH,CAAC,EAAEE,CAAC,CAAC;MACf,OAAOA,CAAC;IACV;IACA,OAAOJ,KAAK,CAACM,GAAG,CAACJ,CAAC,CAAC;EACrB,CAAC;AACH;AAEA,OAAM,SAAUK,OAAOA,CAACC,CAAqB;EAC3C,OAAOA,CAAC,GAAGC,eAAA,CAAAC,IAAA,CAAYC,OAAO,CAACJ,OAAO,CAACC,CAAC,CAAC,CAAC,GAAGC,eAAA,CAAAG,KAAA,EAAc;AAC7D;AAEA,OAAM,SAAUC,uBAAuBA,CAACC,GAAoB;EAC1D,IAAIC,OAAO,GAAG,IAAID,GAAG,CAACE,IAAI,EAAE;EAC5B,KAAK,MAAMC,IAAI,IAAIH,GAAG,CAACI,KAAK,EAAE;IAC5B,IAAIC,eAAA,CAAAC,eAAA,CAAAH,IAAI,CAACI,IAAI,CAAkB,EAAE;MAC/BN,OAAO,IAAI,IAAI;IACjB,CAAC,MAAM,IAAII,eAAA,CAAAG,eAAA,CAAAL,IAAI,CAACI,IAAI,CAAkB,EAAE;MACtCN,OAAO,IAAI,kBAAkB;IAC/B;IACAA,OAAO,IAAIE,IAAI,CAACM,OAAO;EACzB;EACAR,OAAO,IAAI,GAAG;EACd,OAAO,IAAIS,MAAM,CAACT,OAAO,CAAC;AAC5B;AAEA,OAAM,SAAUU,wBAAwBA,CACtCC,KAA6C,EAC7CC,SAAsC;EAEtC,QAAQA,SAAS,CAACC,IAAI;IACpB;IACA;IACA;MACE,OAAOnB,eAAA,CAAAC,IAAA,CAAYmB,MAAM,CAACC,IAAI,CAACJ,KAAK,CAAC,CAAC;IACxC;MACE,OAAOjB,eAAA,CAAAC,IAAA,CAAYmB,MAAM,CAACE,qBAAqB,CAACL,KAAK,CAAC,CAAC;IACzD;MACE,OAAOD,wBAAwB,CAACC,KAAK,EAAEC,SAAS,CAACjB,IAAW,CAAC;EACjE;AACF;AAEA,OAAM,SAAUsB,aAAaA,CAACC,CAAU;EACtC,OAAOpC,eAAe,CAACoC,CAAC,EAAE,EAAE,CAAC;AAC/B","ignoreList":[]}
1
+ {"version":3,"file":"utils.mjs","names":[],"sources":["../esm/utils.js"],"sourcesContent":["import * as tsplus_module_1 from \"@fncts/base/collection/immutable/Vector/api\";\nimport * as tsplus_module_2 from \"@fncts/schema/AST\";\nimport { showWithOptions } from \"@fncts/base/data/Showable\";\nexport function memoize(f) {\n const cache = new Map();\n return (a) => {\n if (!cache.has(a)) {\n const b = f(a);\n cache.set(a, b);\n return b;\n }\n return cache.get(a);\n };\n}\nexport function ownKeys(o) {\n return o ? tsplus_module_1.from(Reflect.ownKeys(o)) : tsplus_module_1.empty();\n}\nexport function getTemplateLiteralRegex(ast) {\n let pattern = `^${ast.head}`;\n for (const span of ast.spans) {\n if (tsplus_module_2.isStringKeyword(span.type)) {\n pattern += \".*\";\n }\n else if (tsplus_module_2.isNumberKeyword(span.type)) {\n pattern += \"-?\\\\d+(\\\\.\\\\d+)?\";\n }\n pattern += span.literal;\n }\n pattern += \"$\";\n return new RegExp(pattern);\n}\nexport function getKeysForIndexSignature(input, parameter) {\n switch (parameter._tag) {\n case 9 /* ASTTag.NumberKeyword */:\n case 8 /* ASTTag.StringKeyword */:\n case 15 /* ASTTag.TemplateLiteral */:\n return tsplus_module_1.from(Object.keys(input));\n case 12 /* ASTTag.SymbolKeyword */:\n return tsplus_module_1.from(Object.getOwnPropertySymbols(input));\n case 20 /* ASTTag.Refinement */:\n return getKeysForIndexSignature(input, parameter.from);\n }\n}\nexport function formatUnknown(u) {\n return showWithOptions(u, {});\n}\n//# sourceMappingURL=utils.js.map"],"mappings":";;;;AAGA,SAAgB,QAAQ,GAAG;CACvB,MAAM,wBAAQ,IAAI,KAAK;AACvB,SAAQ,MAAM;AACV,MAAI,CAAC,MAAM,IAAI,EAAE,EAAE;GACf,MAAM,IAAI,EAAE,EAAE;AACd,SAAM,IAAI,GAAG,EAAE;AACf,UAAO;;AAEX,SAAO,MAAM,IAAI,EAAE;;;AAG3B,SAAgB,QAAQ,GAAG;AACvB,QAAO,IAAI,gBAAgB,KAAK,QAAQ,QAAQ,EAAE,CAAC,GAAG,gBAAgB,OAAO;;AAEjF,SAAgB,wBAAwB,KAAK;CACzC,IAAI,UAAU,IAAI,IAAI;AACtB,MAAK,MAAM,QAAQ,IAAI,OAAO;AAC1B,MAAI,gBAAgB,gBAAgB,KAAK,KAAK,CAC1C,YAAW;WAEN,gBAAgB,gBAAgB,KAAK,KAAK,CAC/C,YAAW;AAEf,aAAW,KAAK;;AAEpB,YAAW;AACX,QAAO,IAAI,OAAO,QAAQ;;AAE9B,SAAgB,yBAAyB,OAAO,WAAW;AACvD,SAAQ,UAAU,MAAlB;EACI,KAAK;EACL,KAAK;EACL,KAAK,GACD,QAAO,gBAAgB,KAAK,OAAO,KAAK,MAAM,CAAC;EACnD,KAAK,GACD,QAAO,gBAAgB,KAAK,OAAO,sBAAsB,MAAM,CAAC;EACpE,KAAK,GACD,QAAO,yBAAyB,OAAO,UAAU,KAAK;;;AAGlE,SAAgB,cAAc,GAAG;AAC7B,QAAO,gBAAgB,GAAG,EAAE,CAAC"}