@fncts/schema 0.0.16 → 0.0.18

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 (173) hide show
  1. package/AST.d.ts +19 -6
  2. package/ASTAnnotation.d.ts +10 -2
  3. package/ParseError/ParseError.d.ts +231 -0
  4. package/ParseError/ParseErrorFormatter.d.ts +2 -0
  5. package/ParseError/PathFormatter.d.ts +13 -0
  6. package/ParseError/TreeFormatter.d.ts +14 -0
  7. package/ParseError.d.ts +4 -144
  8. package/ParseResult.d.ts +1 -8
  9. package/Parser/interpreter.d.ts +0 -1
  10. package/Schema/api/conc.d.ts +0 -2
  11. package/Schema/api/hashMap.d.ts +0 -1
  12. package/Schema/api/hashSet.d.ts +0 -1
  13. package/Schema/api/immutableArray.d.ts +0 -1
  14. package/Schema/api/list.d.ts +1 -2
  15. package/Schema/api/map.d.ts +19 -0
  16. package/Schema/api/set.d.ts +19 -0
  17. package/Schema/api.d.ts +11 -1
  18. package/Schema.d.ts +2 -0
  19. package/Show.d.ts +7 -3
  20. package/_cjs/AST.cjs +181 -114
  21. package/_cjs/AST.cjs.map +1 -1
  22. package/_cjs/ASTAnnotation.cjs +7 -2
  23. package/_cjs/ASTAnnotation.cjs.map +1 -1
  24. package/_cjs/ASTAnnotationMap.cjs +1 -1
  25. package/_cjs/ASTAnnotationMap.cjs.map +1 -1
  26. package/_cjs/Gen.cjs +25 -25
  27. package/_cjs/Gen.cjs.map +1 -1
  28. package/_cjs/Guard.cjs +1 -1
  29. package/_cjs/Guard.cjs.map +1 -1
  30. package/_cjs/InvalidInterpretationError.cjs.map +1 -1
  31. package/_cjs/ParseError/ParseError.cjs +260 -0
  32. package/_cjs/ParseError/ParseError.cjs.map +1 -0
  33. package/_cjs/ParseError/ParseErrorFormatter.cjs +6 -0
  34. package/_cjs/ParseError/ParseErrorFormatter.cjs.map +1 -0
  35. package/_cjs/ParseError/PathFormatter.cjs +94 -0
  36. package/_cjs/ParseError/PathFormatter.cjs.map +1 -0
  37. package/_cjs/ParseError/TreeFormatter.cjs +123 -0
  38. package/_cjs/ParseError/TreeFormatter.cjs.map +1 -0
  39. package/_cjs/ParseError.cjs +43 -289
  40. package/_cjs/ParseError.cjs.map +1 -1
  41. package/_cjs/ParseResult.cjs +2 -11
  42. package/_cjs/ParseResult.cjs.map +1 -1
  43. package/_cjs/Parser/api.cjs +3 -3
  44. package/_cjs/Parser/api.cjs.map +1 -1
  45. package/_cjs/Parser/definition.cjs +2 -2
  46. package/_cjs/Parser/definition.cjs.map +1 -1
  47. package/_cjs/Parser/interpreter.cjs +122 -118
  48. package/_cjs/Parser/interpreter.cjs.map +1 -1
  49. package/_cjs/Parser.cjs.map +1 -1
  50. package/_cjs/Schema/api/conc.cjs +36 -46
  51. package/_cjs/Schema/api/conc.cjs.map +1 -1
  52. package/_cjs/Schema/api/either.cjs +25 -31
  53. package/_cjs/Schema/api/either.cjs.map +1 -1
  54. package/_cjs/Schema/api/hashMap.cjs +42 -102
  55. package/_cjs/Schema/api/hashMap.cjs.map +1 -1
  56. package/_cjs/Schema/api/hashSet.cjs +47 -107
  57. package/_cjs/Schema/api/hashSet.cjs.map +1 -1
  58. package/_cjs/Schema/api/immutableArray.cjs +23 -49
  59. package/_cjs/Schema/api/immutableArray.cjs.map +1 -1
  60. package/_cjs/Schema/api/list.cjs +36 -53
  61. package/_cjs/Schema/api/list.cjs.map +1 -1
  62. package/_cjs/Schema/api/map.cjs +97 -0
  63. package/_cjs/Schema/api/map.cjs.map +1 -0
  64. package/_cjs/Schema/api/maybe.cjs +25 -36
  65. package/_cjs/Schema/api/maybe.cjs.map +1 -1
  66. package/_cjs/Schema/api/set.cjs +76 -0
  67. package/_cjs/Schema/api/set.cjs.map +1 -0
  68. package/_cjs/Schema/api.cjs +21 -3
  69. package/_cjs/Schema/api.cjs.map +1 -1
  70. package/_cjs/Schema/definition.cjs +1 -1
  71. package/_cjs/Schema/definition.cjs.map +1 -1
  72. package/_cjs/Schema/derivations.cjs +1 -1
  73. package/_cjs/Schema/derivations.cjs.map +1 -1
  74. package/_cjs/Schema.cjs +22 -0
  75. package/_cjs/Schema.cjs.map +1 -1
  76. package/_cjs/Show.cjs +107 -90
  77. package/_cjs/Show.cjs.map +1 -1
  78. package/_cjs/global.cjs.map +1 -1
  79. package/_cjs/index.cjs.map +1 -1
  80. package/_cjs/utils.cjs +6 -1
  81. package/_cjs/utils.cjs.map +1 -1
  82. package/_mjs/AST.mjs +177 -112
  83. package/_mjs/AST.mjs.map +1 -1
  84. package/_mjs/ASTAnnotation.mjs +5 -0
  85. package/_mjs/ASTAnnotation.mjs.map +1 -1
  86. package/_mjs/ASTAnnotationMap.mjs.map +1 -1
  87. package/_mjs/Gen.mjs +24 -24
  88. package/_mjs/Gen.mjs.map +1 -1
  89. package/_mjs/Guard.mjs.map +1 -1
  90. package/_mjs/InvalidInterpretationError.mjs.map +1 -1
  91. package/_mjs/ParseError/ParseError.mjs +228 -0
  92. package/_mjs/ParseError/ParseError.mjs.map +1 -0
  93. package/_mjs/ParseError/ParseErrorFormatter.mjs +2 -0
  94. package/_mjs/ParseError/ParseErrorFormatter.mjs.map +1 -0
  95. package/_mjs/ParseError/PathFormatter.mjs +86 -0
  96. package/_mjs/ParseError/PathFormatter.mjs.map +1 -0
  97. package/_mjs/ParseError/TreeFormatter.mjs +113 -0
  98. package/_mjs/ParseError/TreeFormatter.mjs.map +1 -0
  99. package/_mjs/ParseError.mjs +6 -270
  100. package/_mjs/ParseError.mjs.map +1 -1
  101. package/_mjs/ParseResult.mjs +1 -9
  102. package/_mjs/ParseResult.mjs.map +1 -1
  103. package/_mjs/Parser/api.mjs +2 -2
  104. package/_mjs/Parser/api.mjs.map +1 -1
  105. package/_mjs/Parser/definition.mjs +1 -1
  106. package/_mjs/Parser/definition.mjs.map +1 -1
  107. package/_mjs/Parser/interpreter.mjs +121 -117
  108. package/_mjs/Parser/interpreter.mjs.map +1 -1
  109. package/_mjs/Parser.mjs.map +1 -1
  110. package/_mjs/Schema/api/conc.mjs +35 -44
  111. package/_mjs/Schema/api/conc.mjs.map +1 -1
  112. package/_mjs/Schema/api/either.mjs +24 -30
  113. package/_mjs/Schema/api/either.mjs.map +1 -1
  114. package/_mjs/Schema/api/hashMap.mjs +41 -101
  115. package/_mjs/Schema/api/hashMap.mjs.map +1 -1
  116. package/_mjs/Schema/api/hashSet.mjs +46 -106
  117. package/_mjs/Schema/api/hashSet.mjs.map +1 -1
  118. package/_mjs/Schema/api/immutableArray.mjs +23 -49
  119. package/_mjs/Schema/api/immutableArray.mjs.map +1 -1
  120. package/_mjs/Schema/api/list.mjs +35 -52
  121. package/_mjs/Schema/api/list.mjs.map +1 -1
  122. package/_mjs/Schema/api/map.mjs +88 -0
  123. package/_mjs/Schema/api/map.mjs.map +1 -0
  124. package/_mjs/Schema/api/maybe.mjs +24 -35
  125. package/_mjs/Schema/api/maybe.mjs.map +1 -1
  126. package/_mjs/Schema/api/set.mjs +67 -0
  127. package/_mjs/Schema/api/set.mjs.map +1 -0
  128. package/_mjs/Schema/api.mjs +18 -2
  129. package/_mjs/Schema/api.mjs.map +1 -1
  130. package/_mjs/Schema/definition.mjs.map +1 -1
  131. package/_mjs/Schema/derivations.mjs.map +1 -1
  132. package/_mjs/Schema.mjs +2 -0
  133. package/_mjs/Schema.mjs.map +1 -1
  134. package/_mjs/Show.mjs +106 -90
  135. package/_mjs/Show.mjs.map +1 -1
  136. package/_mjs/global.mjs.map +1 -1
  137. package/_mjs/index.mjs.map +1 -1
  138. package/_mjs/utils.mjs +4 -0
  139. package/_mjs/utils.mjs.map +1 -1
  140. package/_src/AST.ts +139 -38
  141. package/_src/ASTAnnotation.ts +8 -1
  142. package/_src/Gen.ts +4 -1
  143. package/_src/ParseError/ParseError.ts +304 -0
  144. package/_src/ParseError/ParseErrorFormatter.ts +1 -0
  145. package/_src/ParseError/PathFormatter.ts +117 -0
  146. package/_src/ParseError/TreeFormatter.ts +127 -0
  147. package/_src/ParseError.ts +7 -331
  148. package/_src/ParseResult.ts +2 -9
  149. package/_src/Parser/api.ts +1 -1
  150. package/_src/Parser/interpreter.ts +98 -75
  151. package/_src/Schema/api/conc.ts +33 -42
  152. package/_src/Schema/api/either.ts +20 -30
  153. package/_src/Schema/api/hashMap.ts +40 -124
  154. package/_src/Schema/api/hashSet.ts +31 -117
  155. package/_src/Schema/api/immutableArray.ts +15 -45
  156. package/_src/Schema/api/list.ts +32 -55
  157. package/_src/Schema/api/map.ts +93 -0
  158. package/_src/Schema/api/maybe.ts +19 -34
  159. package/_src/Schema/api/set.ts +74 -0
  160. package/_src/Schema/api.ts +20 -2
  161. package/_src/Schema.ts +2 -0
  162. package/_src/Show.ts +156 -128
  163. package/_src/global.ts +0 -4
  164. package/_src/utils.ts +6 -0
  165. package/global.d.ts +0 -4
  166. package/package.json +3 -3
  167. package/utils.d.ts +1 -0
  168. package/ParseFailure.d.ts +0 -18
  169. package/_cjs/ParseFailure.cjs +0 -28
  170. package/_cjs/ParseFailure.cjs.map +0 -1
  171. package/_mjs/ParseFailure.mjs +0 -20
  172. package/_mjs/ParseFailure.mjs.map +0 -1
  173. package/_src/ParseFailure.ts +0 -18
package/_mjs/Show.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Show.mjs","names":["globalValue","memoize","showMemoMap","Symbol","for","WeakMap","goMemo","ast","memo","get","s","go","set","show","self","ev","tsplus_module_1","run","_tag","tsplus_module_7","match","tsplus_module_2","now","id","tsplus_module_5","map","ts","length","tsplus_module_3","join","_traverse","typeParameters","tsplus_module_4","Applicative","annotations","tsplus_module_6","Identifier","literal","toString","symbol","formatTemplateLiteral","flatMap","elements","restElements","always","isReadonly","unsafeGet","prefix","middle","suffix","empty","rest","element","type","propertySignatures","indexSignatures","required","optional","forEachWithIndex","i","ps","name","isOptional","push","properties","concat","sort","k1","k2","toLocaleString","localeCompare","propertyKey","String","index","param","is","zip","parameter","types","f","getAST","defer","enums","from","to","validationNames","v","validation","formatTemplateLiteralSpan","span","head","spans"],"sources":["../_src/Show.ts"],"sourcesContent":[null],"mappings":";;;;;;;AAEA,SAASA,WAAW,QAAQ,yBAAyB;AAGrD,SAASC,OAAO,QAAQ,qBAAqB;AAE7C,MAAMC,WAAW,gBAAGF,WAAW,eAACG,MAAM,CAACC,GAAG,CAAC,gCAAgC,CAAC,EAAE,MAAM,IAAIC,OAAO,EAAqB,CAAC;AAErH,SAASC,MAAMA,CAACC,GAAQ;EACtB,MAAMC,IAAI,GAAGN,WAAW,CAACO,GAAG,CAACF,GAAG,CAAC;EACjC,IAAIC,IAAI,EAAE;IACR,OAAOA,IAAI;EACb;EACA,MAAME,CAAC,GAAGC,EAAE,CAACJ,GAAG,CAAC;EACjBL,WAAW,CAACU,GAAG,CAACL,GAAG,EAAEG,CAAC,CAAC;EACvB,OAAOA,CAAC;AACV;AAEA;;;AAGA,OAAM,SAAUG,IAAIA,CAAIC,IAAe;EACrC,MAAMC,EAAE,GAAGT,MAAM,CAACQ,IAAI,CAACP,GAAG,CAAC;EAC3B,OAAAS,eAAA,CAAAC,GAAA,CAAOF,EAAE;AACX;AAEA,SAASJ,EAAEA,CAACJ,GAAQ;EAClB;EACA,QAAQA,GAAG,CAACW,IAAI;IACd;MAAyB;QACvB,OAAOC,eAAA,CAAAC,KAAA,CACL,MAAMC,eAAA,CAAAC,GAAA,CAAS,cAAc,CAAC,EAC7BC,EAAE,IAAI;UACL,OAAOC,eAAA,CAAAC,GAAA,CAECC,EAAE,IAAI;YACV,IAAIA,EAAE,CAACC,MAAM,IAAI,CAAC,EAAE;cAClB,OAAOJ,EAAE;YACX,CAAC,MAAM;cACL,OAAO,GAAGA,EAAE,IAAIK,eAAA,CAAAC,IAAA,CAAQ,IAAI,EAAZH,EAAE,CAAW,GAAG;YAClC;UACF,CAAC,EARIE,eAAA,CAAAE,SAAA,CAAAvB,GAAG,CAACwB,cAAc,EAAAC,eAAA,CAAAC,WAAA,CACI,CAAC3B,MAAM,CAAC,CAOjC;QACN,CAAC,EAZIC,GAAG,CAAC2B,WAAW,CAACzB,GAAG,CAAA0B,eAAA,CAAAC,UAAA,CAA0B,CAanD;MACH;IACA;MAAqB;QACnB,IAAI7B,GAAG,CAAC8B,OAAO,KAAK,IAAI,EAAE;UACxB,OAAOhB,eAAA,CAAAC,GAAA,CAAS,MAAM,CAAC;QACzB,CAAC,MAAM;UACL,OAAOD,eAAA,CAAAC,GAAA,CAASf,GAAG,CAAC8B,OAAO,CAACC,QAAQ,EAAE,CAAC;QACzC;MACF;IACA;MACE,OAAOjB,eAAA,CAAAC,GAAA,CAASf,GAAG,CAACgC,MAAM,CAACD,QAAQ,EAAE,CAAC;IACxC;MACE,OAAOjB,eAAA,CAAAC,GAAA,CAAS,WAAW,CAAC;IAC9B;MACE,OAAOD,eAAA,CAAAC,GAAA,CAAS,MAAM,CAAC;IACzB;MACE,OAAOD,eAAA,CAAAC,GAAA,CAAS,OAAO,CAAC;IAC1B;MACE,OAAOD,eAAA,CAAAC,GAAA,CAAS,SAAS,CAAC;IAC5B;MACE,OAAOD,eAAA,CAAAC,GAAA,CAAS,KAAK,CAAC;IACxB;MACE,OAAOD,eAAA,CAAAC,GAAA,CAAS,QAAQ,CAAC;IAC3B;MACE,OAAOD,eAAA,CAAAC,GAAA,CAAS,QAAQ,CAAC;IAC3B;MACE,OAAOD,eAAA,CAAAC,GAAA,CAAS,SAAS,CAAC;IAC5B;MACE,OAAOD,eAAA,CAAAC,GAAA,CAAS,QAAQ,CAAC;IAC3B;MACE,OAAOD,eAAA,CAAAC,GAAA,CAAS,QAAQ,CAAC;IAC3B;MACE,OAAOD,eAAA,CAAAC,GAAA,CAAS,QAAQ,CAAC;IAC3B;MACE,OAAOD,eAAA,CAAAC,GAAA,CAAS,GAAG,GAAGkB,qBAAqB,CAACjC,GAAG,CAAC,GAAG,GAAG,CAAC;IACzD;MACE,OAAAiB,eAAA,CAAAiB,OAAA,CACQC,QAAQ,IAAAlB,eAAA,CAAAiB,OAAA,CACRE,YAAY,IAQhBtB,eAAA,CAAAuB,MAAA,CAAK,MAAK;QACR,IAAIF,QAAQ,CAACf,MAAM,KAAK,CAAC,IAAIgB,YAAY,CAAChB,MAAM,KAAK,CAAC,EAAE;UACtD,IAAIpB,GAAG,CAACsC,UAAU,EAAE;YAClB,OAAO,iBAAiBjB,eAAA,CAAAkB,SAAA,CAAa,CAAC,EAAdH,YAAY,CAAG,GAAG;UAC5C,CAAC,MAAM;YACL,OAAO,SAASf,eAAA,CAAAkB,SAAA,CAAa,CAAC,EAAdH,YAAY,CAAG,GAAG;UACpC;QACF;QAEA,MAAMI,MAAM,GAAG,CAACxC,GAAG,CAACsC,UAAU,GAAG,WAAW,GAAG,EAAE,IAAI,GAAG,GAAGjB,eAAA,CAAAC,IAAA,CAAc,IAAI,EAAlBa,QAAQ,CAAW;QAC9E,MAAMM,MAAM,GAAGL,YAAY,CAAChB,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE;QAClD,MAAMsB,MAAM,GAAGrB,eAAA,CAAAC,IAAA,CAAwC,IAAI,EAA5CD,eAAA,CAAAH,GAAA,CAAkBf,CAAC,IAAK,MAAMA,CAAC,EAAE,EAAjCiC,YAAY,CAAsB,CAAW,GAAG,GAAG;QAClE,OAAOI,MAAM,GAAGC,MAAM,GAAGC,MAAM;MACjC,CAAC,CAAC,EApBF9B,eAAA,CAAAC,KAAA,CACE,MAAMC,eAAA,CAAAC,GAAA,CAASM,eAAA,CAAAsB,KAAA,EAAsB,CAAC,EACrCC,IAAI,IAAKvB,eAAA,CAAAE,SAAA,CAAAqB,IAAI,EAAAnB,eAAA,CAAAC,WAAA,CAA2B,CAAC3B,MAAM,CAAC,EAFnDC,GAAG,CAAC4C,IAAI,CAGP,GALoBvB,eAAA,CAAAE,SAAA,CAAAvB,GAAG,CAACmC,QAAQ,EAAAV,eAAA,CAAAC,WAAA,CAA2B,CAAEmB,OAAO,IAAK9C,MAAM,CAAC8C,OAAO,CAACC,IAAI,CAAC,CAAC;IAyBrG;MACE,OAAA7B,eAAA,CAAAiB,OAAA,CACQa,kBAAkB,IAAA9B,eAAA,CAAAC,GAAA,CAClB8B,eAAe;QAIrB,MAAMC,QAAQ,GAAiC,EAAE;QACjD,MAAMC,QAAQ,GAAiC,EAAE;QAEjD7B,eAAA,CAAA8B,gBAAA,CAAwC,CAACC,CAAC,EAAEC,EAAE,KAAI;UAChD,MAAMC,IAAI,GAAGD,EAAE,CAACC,IAAI;UACpB,IAAI,CAACD,EAAE,CAACE,UAAU,EAAE;YAClBN,QAAQ,CAACO,IAAI,CAAC,CAACF,IAAI,EAAEjC,eAAA,CAAAkB,SAAA,CAAmBa,CAAC,EAApBL,kBAAkB,CAAI,CAAC,CAAC;UAC/C,CAAC,MAAM;YACLG,QAAQ,CAACM,IAAI,CAAC,CAACF,IAAI,EAAEjC,eAAA,CAAAkB,SAAA,CAAmBa,CAAC,EAApBL,kBAAkB,CAAI,CAAC,CAAC;UAC/C;QACF,CAAC,EAPD/C,GAAG,CAAC+C,kBAAkB,CAOpB;QAEF,MAAMP,MAAM,GAAO,GAAG;QACtB,MAAMiB,UAAU,GAAGR,QAAQ,CACxBS,MAAM,CAACR,QAAQ,CAAC,CAChBS,IAAI,CAAC,CAAC,CAACC,EAAE,CAAC,EAAE,CAACC,EAAE,CAAC,KAAKD,EAAE,CAACE,cAAc,EAAE,CAACC,aAAa,CAACF,EAAE,CAACC,cAAc,EAAE,CAAC,CAAC,CAC5E5C,GAAG,CAAC,CAAC,CAAC8C,WAAW,EAAElB,IAAI,CAAC,KAAK,GAAGmB,MAAM,CAACD,WAAW,CAAC,KAAKlB,IAAI,EAAE,CAAC,CAC/DxB,IAAI,CAAC,IAAI,CAAC;QACb,MAAM4C,KAAK,GAAI7C,eAAA,CAAAC,IAAA,CAAsE,IAAI,EAA1ED,eAAA,CAAAH,GAAA,CAAoB,CAAC,CAACiD,KAAK,EAAErB,IAAI,CAAC,KAAK,OAAOqB,KAAK,MAAMrB,IAAI,EAAE,EAA/DE,eAAe,CAAiD,CAAW;QAC1F,MAAMN,MAAM,GAAG,GAAG;QAElB,OAAOF,MAAM,GAAG,GAAG,GAAGiB,UAAU,IAAIS,KAAK,CAAC9C,MAAM,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG8C,KAAK,GAAG,GAAG,GAAGxB,MAAM;SAxBxFrB,eAAA,CAAAE,SAAA,CAAAvB,GAAG,CAACgD,eAAe,EAAAvB,eAAA,CAAAC,WAAA,CAA2B,CAAE0C,EAAE,IAAKnD,eAAA,CAAAoD,GAAA,CAAyBtE,MAAM,CAACqE,EAAE,CAACtB,IAAI,CAAC,EAAxC/C,MAAM,CAACqE,EAAE,CAACE,SAAS,CAAC,CAAqB,CAAC,GAFtEjD,eAAA,CAAAE,SAAA,CAAAvB,GAAG,CAAC+C,kBAAkB,EAAAtB,eAAA,CAAAC,WAAA,CAA2B,CAAE2B,EAAE,IAAKtD,MAAM,CAACsD,EAAE,CAACP,IAAI,CAAC,CAAC;IA4B3G;MACE,OAAO7B,eAAA,CAAAC,GAAA,CAECC,EAAE,IAAKE,eAAA,CAAAC,IAAA,CAAQ,KAAK,EAAbH,EAAE,CAAY,EAFtBE,eAAA,CAAAE,SAAA,CAAAvB,GAAG,CAACuE,KAAK,EAAA9C,eAAA,CAAAC,WAAA,CACa,CAAC3B,MAAM,CAAC,CACP;IAChC;MAAkB;QAChB,MAAMyE,CAAC,GAAKA,CAAA,KAAMzE,MAAM,CAACC,GAAG,CAACyE,MAAM,EAAE,CAAC;QACtC,MAAMvE,GAAG,GAAGR,OAAO,CAAqB8E,CAAC,CAAC;QAC1C,OAAO1D,eAAA,CAAA4D,KAAA,CAAW,MAAMxE,GAAG,EAAE,CAAC;MAChC;IACA;MAAkB;QAChB,OAAOY,eAAA,CAAAC,GAAA,CAASM,eAAA,CAAAC,IAAA,CAAqC,KAAK,EAA1CD,eAAA,CAAAH,GAAA,CAAc,CAAC,CAACoC,IAAI,CAAC,KAAKA,IAAI,EAA9BtD,GAAG,CAAC2E,KAAK,CAAsB,CAAY,CAAC;MAC9D;IACA;MAAwB;QACtB,OAAO/D,eAAA,CAAAC,KAAA,CACL,MAAMI,eAAA,CAAAC,GAAA,CAAsB0D,IAAI,IAAK,WAAWA,IAAI,GAAG,EAAjD7E,MAAM,CAACC,GAAG,CAAC4E,IAAI,CAAC,CAAkC,EACvD5D,EAAE,IAAKF,eAAA,CAAAC,GAAA,CAASC,EAAE,CAAC,EAFfhB,GAAG,CAAC2B,WAAW,CAACzB,GAAG,CAAA0B,eAAA,CAAAC,UAAA,CAA0B,CAGnD;MACH;IACA;MACE,OAAO9B,MAAM,CAACC,GAAG,CAAC6E,EAAE,CAAC;IACvB;MAAwB;QACtB,OAAO5D,eAAA,CAAAC,GAAA,CAAsB0D,IAAI,IAAI;UACnC,MAAME,eAAe,GAAGzD,eAAA,CAAAC,IAAA,CAAuC,KAAK,EAA5CD,eAAA,CAAAH,GAAA,CAAoB6D,CAAC,IAAKA,CAAC,CAACzB,IAAI,EAAhCtD,GAAG,CAACgF,UAAU,CAAmB,CAAY;UAErE,IAAIF,eAAe,CAAC1D,MAAM,IAAI,CAAC,EAAE;YAC/B,OAAOwD,IAAI;UACb;UAEA,OAAO,GAAGA,IAAI,MAAME,eAAe,EAAE;QACvC,CAAC,EARM/E,MAAM,CAACC,GAAG,CAAC4E,IAAI,CAAC,CAQrB;MACJ;EACF;AACF;AAEA,SAASK,yBAAyBA,CAACC,IAAyB;EAC1D,QAAQA,IAAI,CAACpC,IAAI,CAACnC,IAAI;IACpB;MACE,OAAO,WAAW;IACpB;MACE,OAAO,WAAW;EACtB;AACF;AAEA,SAASsB,qBAAqBA,CAACjC,GAAoB;EACjD,OAAOA,GAAG,CAACmF,IAAI,GAAG9D,eAAA,CAAAC,IAAA,CAA6E,EAAE,EAA/ED,eAAA,CAAAH,GAAA,CAAegE,IAAI,IAAKD,yBAAyB,CAACC,IAAI,CAAC,GAAGA,IAAI,CAACpD,OAAO,EAAtE9B,GAAG,CAACoF,KAAK,CAA8D,CAAS;AACpG"}
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 +1 @@
1
- {"version":3,"file":"global.mjs","names":[],"sources":["../_src/global.ts"],"sourcesContent":[null],"mappings":""}
1
+ {"version":3,"file":"global.mjs","names":[],"sources":["../_src/global.ts"],"sourcesContent":[null],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../_src/index.ts"],"sourcesContent":[null],"mappings":""}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../_src/index.ts"],"sourcesContent":[null],"mappings":"","ignoreList":[]}
package/_mjs/utils.mjs CHANGED
@@ -1,5 +1,6 @@
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
+ import { showWithOptions } from "@fncts/base/data/Showable";
3
4
  export function memoize(f) {
4
5
  const cache = new Map();
5
6
  return a => {
@@ -38,4 +39,7 @@ export function getKeysForIndexSignature(input, parameter) {
38
39
  return getKeysForIndexSignature(input, parameter.from);
39
40
  }
40
41
  }
42
+ export function formatUnknown(u) {
43
+ return showWithOptions(u, {});
44
+ }
41
45
  //# sourceMappingURL=utils.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.mjs","names":["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"],"sources":["../_src/utils.ts"],"sourcesContent":[null],"mappings":";;AAIA,OAAM,SAAUA,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;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"}
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;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":[]}
package/_src/AST.ts CHANGED
@@ -22,6 +22,10 @@ export abstract class AST extends Annotated {
22
22
  readonly [ASTTypeId]: ASTTypeId = ASTTypeId;
23
23
 
24
24
  abstract clone(newProperties: Partial<this>): AST;
25
+
26
+ toString(verbose: boolean = false): string {
27
+ return this.show(verbose);
28
+ }
25
29
  }
26
30
 
27
31
  export declare namespace AST {
@@ -103,14 +107,19 @@ export function getAnnotations<V>(key: ASTAnnotation<V>) {
103
107
  * Declaration
104
108
  */
105
109
 
110
+ /**
111
+ * @tsplus type fncts.schema.AST.Declaration
112
+ */
106
113
  export class Declaration extends AST {
107
114
  readonly _tag = ASTTag.Declaration;
108
115
  constructor(
109
116
  readonly typeParameters: Vector<AST>,
110
- readonly type: AST,
111
117
  readonly decode: (
112
118
  ...typeParameters: ReadonlyArray<AST>
113
119
  ) => (input: any, options?: ParseOptions) => ParseResult<any>,
120
+ readonly encode: (
121
+ ...typeParameters: ReadonlyArray<AST>
122
+ ) => (input: any, options?: ParseOptions) => ParseResult<any>,
114
123
  readonly annotations: ASTAnnotationMap = ASTAnnotationMap.empty,
115
124
  ) {
116
125
  super();
@@ -119,8 +128,8 @@ export class Declaration extends AST {
119
128
  clone(newProperties: Partial<this>): AST {
120
129
  return new Declaration(
121
130
  newProperties.typeParameters ?? this.typeParameters,
122
- newProperties.type ?? this.type,
123
131
  newProperties.decode ?? this.decode,
132
+ newProperties.encode ?? this.encode,
124
133
  newProperties.annotations ?? this.annotations,
125
134
  );
126
135
  }
@@ -131,11 +140,11 @@ export class Declaration extends AST {
131
140
  */
132
141
  export function createDeclaration(
133
142
  typeParameters: Vector<AST>,
134
- type: AST,
135
143
  decode: (...typeParameters: ReadonlyArray<AST>) => (input: any, options?: ParseOptions) => ParseResult<any>,
144
+ encode: (...typeParameters: ReadonlyArray<AST>) => (input: any, options?: ParseOptions) => ParseResult<any>,
136
145
  annotations: ASTAnnotationMap = ASTAnnotationMap.empty,
137
146
  ): Declaration {
138
- return new Declaration(typeParameters, type, decode, annotations);
147
+ return new Declaration(typeParameters, decode, encode, annotations);
139
148
  }
140
149
 
141
150
  /**
@@ -528,6 +537,15 @@ export class TemplateLiteralSpan {
528
537
  readonly type: StringKeyword | NumberKeyword,
529
538
  readonly literal: string,
530
539
  ) {}
540
+
541
+ toString() {
542
+ switch (this.type._tag) {
543
+ case ASTTag.StringKeyword:
544
+ return "${string}";
545
+ case ASTTag.NumberKeyword:
546
+ return "${number}";
547
+ }
548
+ }
531
549
  }
532
550
 
533
551
  /*
@@ -577,6 +595,10 @@ export class Element {
577
595
  readonly type: AST,
578
596
  readonly isOptional: boolean,
579
597
  ) {}
598
+
599
+ toString() {
600
+ return String(this.type) + (this.isOptional ? "?" : "");
601
+ }
580
602
  }
581
603
 
582
604
  /**
@@ -632,18 +654,16 @@ export const unknownArray = AST.createTuple(Vector.empty(), Just(Vector(AST.unkn
632
654
  * PropertySignature
633
655
  */
634
656
 
635
- export class PropertySignature extends AST {
657
+ export class PropertySignature {
636
658
  constructor(
637
659
  readonly name: PropertyKey,
638
660
  readonly type: AST,
639
661
  readonly isOptional: boolean,
640
662
  readonly isReadonly: boolean,
641
663
  readonly annotations: ASTAnnotationMap = ASTAnnotationMap.empty,
642
- ) {
643
- super();
644
- }
664
+ ) {}
645
665
 
646
- clone(newProperties: Partial<this>): AST {
666
+ clone(newProperties: Partial<this>): PropertySignature {
647
667
  return new PropertySignature(
648
668
  newProperties.name ?? this.name,
649
669
  newProperties.type ?? this.type,
@@ -923,6 +943,7 @@ export class Validation extends AST {
923
943
  ) {
924
944
  super();
925
945
  }
946
+
926
947
  clone(newProperties: Partial<this>): AST {
927
948
  return new Validation(
928
949
  newProperties.from ?? this.from,
@@ -949,8 +970,6 @@ export function createValidation(
949
970
  export function getCardinality(ast: AST): number {
950
971
  concrete(ast);
951
972
  switch (ast._tag) {
952
- case ASTTag.Declaration:
953
- return getCardinality(ast.type);
954
973
  case ASTTag.NeverKeyword:
955
974
  return 0;
956
975
  case ASTTag.Literal:
@@ -966,7 +985,7 @@ export function getCardinality(ast: AST): number {
966
985
  case ASTTag.SymbolKeyword:
967
986
  return 3;
968
987
  case ASTTag.ObjectKeyword:
969
- return 4;
988
+ return 5;
970
989
  case ASTTag.UnknownKeyword:
971
990
  case ASTTag.AnyKeyword:
972
991
  return 6;
@@ -975,7 +994,7 @@ export function getCardinality(ast: AST): number {
975
994
  case ASTTag.Transform:
976
995
  return getCardinality(ast.to);
977
996
  default:
978
- return 5;
997
+ return 4;
979
998
  }
980
999
  }
981
1000
 
@@ -983,30 +1002,64 @@ function sortByAscendingCardinality<A extends { readonly type: AST }>(types: Vec
983
1002
  return types.sort(Number.Ord.contramap(({ type }) => getCardinality(type)));
984
1003
  }
985
1004
 
986
- export function getWeight(ast: AST): number {
1005
+ export type Weight = readonly [number, number, number];
1006
+
1007
+ const OrdWeight = Ord.tuple(Number.Ord, Number.Ord, Number.Ord);
1008
+
1009
+ const maxWeight = Ord.max(OrdWeight);
1010
+
1011
+ function maxWeightAll(weights: Iterable<Weight>): Weight {
1012
+ return weights.foldLeft(emptyWeight, (b, a) => maxWeight(b)(a));
1013
+ }
1014
+
1015
+ const emptyWeight: Weight = [0, 0, 0];
1016
+
1017
+ export function getWeight(ast: AST): Weight {
987
1018
  concrete(ast);
988
1019
  switch (ast._tag) {
989
1020
  case ASTTag.Declaration:
990
- return getWeight(ast.type);
1021
+ return ast.annotations.get(ASTAnnotation.Surrogate).match(
1022
+ () => [6, 0, 0],
1023
+ (ast) => {
1024
+ const [_, y, z] = getWeight(ast);
1025
+ return [6, y, z];
1026
+ },
1027
+ );
991
1028
  case ASTTag.Tuple:
992
- return ast.elements.length + (ast.rest.isJust() ? ast.rest.value.length : 0);
993
- case ASTTag.TypeLiteral:
994
- return ast.propertySignatures.length + ast.indexSignatures.length;
1029
+ return [
1030
+ 2,
1031
+ ast.elements.length,
1032
+ ast.rest.match(
1033
+ () => 0,
1034
+ (rest) => rest.length,
1035
+ ),
1036
+ ];
1037
+ case ASTTag.TypeLiteral: {
1038
+ const y = ast.propertySignatures.length;
1039
+ const z = ast.indexSignatures.length;
1040
+ return y + z === 0 ? [-4, 0, 0] : [4, y, z];
1041
+ }
995
1042
  case ASTTag.Union:
996
- return ast.types.foldLeft(0, (n, member) => n + getWeight(member));
1043
+ return maxWeightAll(ast.types.map(getWeight));
997
1044
  case ASTTag.Lazy:
998
- return 10;
1045
+ return [8, 0, 0];
999
1046
  case ASTTag.Refinement:
1000
- return getWeight(ast.from);
1047
+ const [x, y, z] = getWeight(ast.from);
1048
+ return [x + 1, y, z];
1001
1049
  case ASTTag.Transform:
1002
- return getWeight(ast.to);
1050
+ return getWeight(ast.from);
1051
+ case ASTTag.ObjectKeyword:
1052
+ return [-2, 0, 0];
1053
+ case ASTTag.UnknownKeyword:
1054
+ case ASTTag.AnyKeyword:
1055
+ return [-4, 0, 0];
1003
1056
  default:
1004
- return 0;
1057
+ return emptyWeight;
1005
1058
  }
1006
1059
  }
1007
1060
 
1008
1061
  function sortByDescendingWeight(types: Vector<AST>): Vector<AST> {
1009
- return types.sort(Number.Ord.contramap(getWeight));
1062
+ return types.sort(OrdWeight.contramap(getWeight));
1010
1063
  }
1011
1064
 
1012
1065
  function unify(candidates: Vector<AST>): Vector<AST> {
@@ -1094,7 +1147,10 @@ export function getPropertySignatures(self: AST): Vector<PropertySignature> {
1094
1147
  concrete(self);
1095
1148
  switch (self._tag) {
1096
1149
  case ASTTag.Declaration:
1097
- return getPropertySignatures(self.type);
1150
+ return self.annotations.get(ASTAnnotation.Surrogate).match(
1151
+ () => Vector.empty(),
1152
+ (surrogate) => getPropertySignatures(surrogate),
1153
+ );
1098
1154
  case ASTTag.Tuple:
1099
1155
  return self.elements.mapWithIndex((i, element) =>
1100
1156
  createPropertySignature(i, element.type, element.isOptional, self.isReadonly),
@@ -1116,6 +1172,8 @@ export function getPropertySignatures(self: AST): Vector<PropertySignature> {
1116
1172
  return Nothing();
1117
1173
  });
1118
1174
  }
1175
+ case ASTTag.TypeLiteral:
1176
+ return self.propertySignatures;
1119
1177
  case ASTTag.Lazy:
1120
1178
  return getPropertySignatures(self.getAST());
1121
1179
  case ASTTag.Refinement:
@@ -1134,7 +1192,10 @@ export function keysOf(ast: AST): Vector<AST> {
1134
1192
  concrete(ast);
1135
1193
  switch (ast._tag) {
1136
1194
  case ASTTag.Declaration:
1137
- return keysOf(ast.type);
1195
+ return ast.annotations.get(ASTAnnotation.Surrogate).match(
1196
+ () => Vector.empty(),
1197
+ (surrogate) => keysOf(surrogate),
1198
+ );
1138
1199
  case ASTTag.NeverKeyword:
1139
1200
  case ASTTag.AnyKeyword:
1140
1201
  return Vector(stringKeyword, numberKeyword, symbolKeyword);
@@ -1176,9 +1237,6 @@ export function createRecord(key: AST, value: AST, isReadonly: boolean): TypeLit
1176
1237
  function go(key: AST): void {
1177
1238
  concrete(key);
1178
1239
  switch (key._tag) {
1179
- case ASTTag.Declaration:
1180
- go(key.type);
1181
- break;
1182
1240
  case ASTTag.NeverKeyword:
1183
1241
  break;
1184
1242
  case ASTTag.StringKeyword:
@@ -1236,8 +1294,6 @@ export function omit(keys: Vector<PropertyKey>) {
1236
1294
  export function partial(self: AST): AST {
1237
1295
  concrete(self);
1238
1296
  switch (self._tag) {
1239
- case ASTTag.Declaration:
1240
- return partial(self.type);
1241
1297
  case ASTTag.Tuple:
1242
1298
  return createTuple(
1243
1299
  self.elements.map((e) => createElement(e.type, true)),
@@ -1275,8 +1331,13 @@ export function createKey(key: PropertyKey): AST {
1275
1331
  export function getFrom(ast: AST): AST {
1276
1332
  AST.concrete(ast);
1277
1333
  switch (ast._tag) {
1278
- case ASTTag.Declaration:
1279
- return AST.createDeclaration(ast.typeParameters.map(getFrom), ast.type, ast.decode, ast.annotations);
1334
+ case ASTTag.Declaration: {
1335
+ const surrogate = ast.annotations.get(ASTAnnotation.Surrogate);
1336
+ if (surrogate.isJust()) {
1337
+ return getFrom(surrogate.value);
1338
+ }
1339
+ break;
1340
+ }
1280
1341
  case ASTTag.Tuple:
1281
1342
  return AST.createTuple(
1282
1343
  ast.elements.map((element) => AST.createElement(getFrom(element.type), element.isOptional)),
@@ -1309,8 +1370,13 @@ export function getFrom(ast: AST): AST {
1309
1370
  export function getTo(ast: AST): AST {
1310
1371
  AST.concrete(ast);
1311
1372
  switch (ast._tag) {
1312
- case ASTTag.Declaration:
1313
- return AST.createDeclaration(ast.typeParameters.map(getTo), ast.type, ast.decode, ast.annotations);
1373
+ case ASTTag.Declaration: {
1374
+ const surrogate = ast.annotations.get(ASTAnnotation.Surrogate);
1375
+ if (surrogate.isJust()) {
1376
+ return getTo(surrogate.value);
1377
+ }
1378
+ break;
1379
+ }
1314
1380
  case ASTTag.Tuple:
1315
1381
  return AST.createTuple(
1316
1382
  ast.elements.map((element) => AST.createElement(getTo(element.type), element.isOptional)),
@@ -1352,8 +1418,13 @@ export function getCompiler<A>(match: AST.Match<A>): AST.Compiler<A> {
1352
1418
  export function getLiterals(ast: AST, isDecoding: boolean): ReadonlyArray<[PropertyKey, Literal]> {
1353
1419
  AST.concrete(ast);
1354
1420
  switch (ast._tag) {
1355
- case ASTTag.Declaration:
1356
- return getLiterals(ast.type, isDecoding);
1421
+ case ASTTag.Declaration: {
1422
+ const surrogate = ast.annotations.get(ASTAnnotation.Surrogate);
1423
+ if (surrogate.isJust()) {
1424
+ return getLiterals(surrogate.value, isDecoding);
1425
+ }
1426
+ break;
1427
+ }
1357
1428
  case ASTTag.TypeLiteral: {
1358
1429
  const out: Array<[PropertyKey, Literal]> = [];
1359
1430
  for (let i = 0; i < ast.propertySignatures.length; i++) {
@@ -1379,6 +1450,7 @@ export function getSearchTree(
1379
1450
  keys: {
1380
1451
  readonly [key: PropertyKey]: {
1381
1452
  buckets: { [literal: string]: ReadonlyArray<AST> };
1453
+ literals: ReadonlyArray<Literal>;
1382
1454
  ast: AST;
1383
1455
  };
1384
1456
  };
@@ -1387,6 +1459,7 @@ export function getSearchTree(
1387
1459
  const keys: {
1388
1460
  [key: PropertyKey]: {
1389
1461
  buckets: { [literal: string]: Array<AST> };
1462
+ literals: Array<Literal>;
1390
1463
  ast: AST;
1391
1464
  };
1392
1465
  } = {};
@@ -1398,7 +1471,7 @@ export function getSearchTree(
1398
1471
  for (let j = 0; j < tags.length; j++) {
1399
1472
  const [key, literal] = tags[j]!;
1400
1473
  const hash = String(literal.literal);
1401
- keys[key]! ||= { buckets: {}, ast: AST.neverKeyword };
1474
+ keys[key]! ||= { buckets: {}, ast: AST.neverKeyword, literals: [] };
1402
1475
  const buckets = keys[key]!.buckets;
1403
1476
  if (Object.prototype.hasOwnProperty.call(buckets, hash)) {
1404
1477
  if (j < tags.length - 1) {
@@ -1406,9 +1479,11 @@ export function getSearchTree(
1406
1479
  }
1407
1480
  buckets[hash]!.push(member);
1408
1481
  keys[key]!.ast = AST.createUnion(Vector(keys[key]!.ast, literal));
1482
+ keys[key]!.literals.push(literal);
1409
1483
  } else {
1410
1484
  buckets[hash]! = [member];
1411
1485
  keys[key]!.ast = AST.createUnion(Vector(keys[key]!.ast, literal));
1486
+ keys[key]!.literals.push(literal);
1412
1487
  break;
1413
1488
  }
1414
1489
  }
@@ -1418,3 +1493,29 @@ export function getSearchTree(
1418
1493
  }
1419
1494
  return { keys, otherwise };
1420
1495
  }
1496
+
1497
+ /**
1498
+ * @tsplus pipeable fncts.schema.AST getFormattedExpected
1499
+ */
1500
+ export function getFormattedExpected(verbose: boolean = false) {
1501
+ return (self: AST): Maybe<string> => {
1502
+ if (verbose) {
1503
+ const description = self.annotations
1504
+ .get(ASTAnnotation.Description)
1505
+ .orElse(self.annotations.get(ASTAnnotation.Title));
1506
+ return self.annotations.get(ASTAnnotation.Identifier).match(
1507
+ () => description,
1508
+ (identifier) =>
1509
+ description.match(
1510
+ () => Just(identifier),
1511
+ (description) => Just(`${identifier} (${description})`),
1512
+ ),
1513
+ );
1514
+ } else {
1515
+ return self.annotations
1516
+ .get(ASTAnnotation.Identifier)
1517
+ .orElse(self.annotations.get(ASTAnnotation.Title))
1518
+ .orElse(self.annotations.get(ASTAnnotation.Description));
1519
+ }
1520
+ };
1521
+ }
@@ -53,7 +53,7 @@ export const DescriptionTag = Tag<string>();
53
53
  */
54
54
  export const Description = new ASTAnnotation(DescriptionTag, "Description", (_, a) => a);
55
55
 
56
- export const MessageTag = Tag<(_: unknown) => string>();
56
+ export const MessageTag = Tag<(error: ParseError) => string>();
57
57
 
58
58
  /**
59
59
  * @tsplus static fncts.schema.ASTAnnotationOps Message
@@ -81,6 +81,13 @@ export const ParseOptionalTag = Tag<boolean>();
81
81
  */
82
82
  export const ParseOptional = new ASTAnnotation(ParseOptionalTag, "ParseOptional", (_, b) => b);
83
83
 
84
+ export const SurrogateTag = Tag<AST>();
85
+
86
+ /**
87
+ * @tsplus static fncts.schema.ASTAnnotationOps Surrogate
88
+ */
89
+ export const Surrogate = new ASTAnnotation(SurrogateTag, "Surrogate", (_, b) => b);
90
+
84
91
  export type Hook<A> = (...typeParameters: ReadonlyArray<A>) => A;
85
92
 
86
93
  export function hook(handler: (...typeParameters: ReadonlyArray<any>) => any): Hook<any> {
package/_src/Gen.ts CHANGED
@@ -44,7 +44,10 @@ const go = memoize(function go(ast: AST): Gen<Sized, any> {
44
44
  switch (ast._tag) {
45
45
  case ASTTag.Declaration:
46
46
  return getHook(ast).match(
47
- () => go(ast.type),
47
+ () =>
48
+ Gen.fromIO(
49
+ IO.haltNow(new InvalidInterpretationError("cannot build a Gen for a Declaration without a Gen hook")),
50
+ ),
48
51
  (hook) => hook(...ast.typeParameters.map(go)),
49
52
  );
50
53
  case ASTTag.Literal: