@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
@@ -1,34 +1,45 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ASTAnnotationMap = void 0;
7
- var tsplus_module_1 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/collection/immutable/HashMap/api"));
8
- var tsplus_module_2 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/data/Maybe/destructors"));
9
- var tsplus_module_3 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/collection/immutable/Conc/constructors"));
10
- var tsplus_module_4 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/collection/immutable/Conc/api"));
11
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
12
- class ASTAnnotationMap {
13
- constructor(map) {
14
- this.map = map;
15
- }
16
- combine(that) {
17
- return new ASTAnnotationMap(tsplus_module_4.foldLeft(tsplus_module_1.empty(), (acc, [k, v]) => tsplus_module_1.set(k, tsplus_module_2.match(() => v, _ => k.combine(_, v))(tsplus_module_1.get(k)(acc)))(acc))(tsplus_module_4.concat(tsplus_module_3.from(that.map))(tsplus_module_3.from(this.map))));
18
- }
19
- get(key) {
20
- return tsplus_module_1.get(key)(this.map);
21
- }
22
- overwrite(key, value) {
23
- return new ASTAnnotationMap(tsplus_module_1.set(key, value)(this.map));
24
- }
25
- update(key, f) {
26
- return this.overwrite(key, f(this.get(key)));
27
- }
28
- annotate(key, value) {
29
- return this.update(key, v => tsplus_module_2.match(() => value, v => key.combine(v, value))(v));
30
- }
31
- }
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_chunk = require("./chunk.cjs");
3
+ let _fncts_base_data_Maybe_destructors = require("@fncts/base/data/Maybe/destructors");
4
+ _fncts_base_data_Maybe_destructors = require_chunk.__toESM(_fncts_base_data_Maybe_destructors, 1);
5
+ let _fncts_base_data_Equatable_definition = require("@fncts/base/data/Equatable/definition");
6
+ _fncts_base_data_Equatable_definition = require_chunk.__toESM(_fncts_base_data_Equatable_definition, 1);
7
+ let _fncts_base_collection_Iterable_api = require("@fncts/base/collection/Iterable/api");
8
+ _fncts_base_collection_Iterable_api = require_chunk.__toESM(_fncts_base_collection_Iterable_api, 1);
9
+ let _fncts_base_collection_immutable_HashMap_api = require("@fncts/base/collection/immutable/HashMap/api");
10
+ _fncts_base_collection_immutable_HashMap_api = require_chunk.__toESM(_fncts_base_collection_immutable_HashMap_api, 1);
11
+ let _fncts_base_collection_immutable_Conc_constructors = require("@fncts/base/collection/immutable/Conc/constructors");
12
+ _fncts_base_collection_immutable_Conc_constructors = require_chunk.__toESM(_fncts_base_collection_immutable_Conc_constructors, 1);
13
+ let _fncts_base_collection_immutable_Conc_api = require("@fncts/base/collection/immutable/Conc/api");
14
+ _fncts_base_collection_immutable_Conc_api = require_chunk.__toESM(_fncts_base_collection_immutable_Conc_api, 1);
15
+ //#region build/esm/ASTAnnotationMap.js
16
+ var ASTAnnotationMap = class ASTAnnotationMap {
17
+ map;
18
+ constructor(map) {
19
+ this.map = map;
20
+ }
21
+ [_fncts_base_data_Equatable_definition.equalsSymbol](that, context) {
22
+ if (!(that instanceof ASTAnnotationMap) || this.map.size !== that.map.size) return false;
23
+ return _fncts_base_collection_Iterable_api.corresponds(that.map, ([k1, v1], [k2, v2]) => context.comparator(k1, k2) && context.comparator(v1, v2))(this.map);
24
+ }
25
+ combine(that) {
26
+ return new ASTAnnotationMap(_fncts_base_collection_immutable_Conc_api.foldLeft(_fncts_base_collection_immutable_HashMap_api.empty(), (acc, [k, v]) => _fncts_base_collection_immutable_HashMap_api.set(k, _fncts_base_data_Maybe_destructors.match(() => v, (_) => k.combine(_, v))(_fncts_base_collection_immutable_HashMap_api.get(k)(acc)))(acc))(_fncts_base_collection_immutable_Conc_api.concat(_fncts_base_collection_immutable_Conc_constructors.from(that.map))(_fncts_base_collection_immutable_Conc_constructors.from(this.map))));
27
+ }
28
+ get(key) {
29
+ return _fncts_base_collection_immutable_HashMap_api.get(key)(this.map);
30
+ }
31
+ overwrite(key, value) {
32
+ return new ASTAnnotationMap(_fncts_base_collection_immutable_HashMap_api.set(key, value)(this.map));
33
+ }
34
+ update(key, f) {
35
+ return this.overwrite(key, f(this.get(key)));
36
+ }
37
+ annotate(key, value) {
38
+ return this.update(key, (v) => _fncts_base_data_Maybe_destructors.match(() => value, (v) => key.combine(v, value))(v));
39
+ }
40
+ static empty = new ASTAnnotationMap(_fncts_base_collection_immutable_HashMap_api.empty());
41
+ };
42
+ //#endregion
32
43
  exports.ASTAnnotationMap = ASTAnnotationMap;
33
- ASTAnnotationMap.empty = /*#__PURE__*/new ASTAnnotationMap(/*#__PURE__*/tsplus_module_1.empty());
44
+
34
45
  //# sourceMappingURL=ASTAnnotationMap.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ASTAnnotationMap.cjs","names":["ASTAnnotationMap","constructor","map","combine","that","tsplus_module_4","foldLeft","tsplus_module_1","empty","acc","k","v","set","tsplus_module_2","match","_","get","concat","tsplus_module_3","from","key","overwrite","value","update","f","annotate"],"sources":["../_src/ASTAnnotationMap.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;AAEM,MAAOA,gBAAgB;EAC3BC,YAAqBC,GAAqC;IAArC,KAAAA,GAAG,GAAHA,GAAG;EAAqC;EAC7DC,OAAOA,CAACC,IAAsB;IAC5B,OAAO,IAAIJ,gBAAgB,CACzBK,eAAA,CAAAC,QAAA,CAEYC,eAAA,CAAAC,KAAA,EAAe,EAAE,CAACC,GAAG,EAAE,CAACC,CAAC,EAAEC,CAAC,CAAC,KACrCJ,eAAA,CAAAK,GAAA,CACEF,CAAC,EACDG,eAAA,CAAAC,KAAA,CACE,MAAMH,CAAC,EACNI,CAAC,IAAKL,CAAC,CAACP,OAAO,CAACY,CAAC,EAAEJ,CAAC,CAAC,EAFxBJ,eAAA,CAAAS,GAAA,CAAQN,CAAC,EAATD,GAAG,CAAO,CAGT,EALHA,GAAG,CAMF,EATLJ,eAAA,CAAAY,MAAA,CACUC,eAAA,CAAAC,IAAA,CAAUf,IAAI,CAACF,GAAG,CAAC,EAD7BgB,eAAA,CAAAC,IAAA,CAAU,IAAI,CAACjB,GAAG,CAAC,CACW,CAS3B,CACJ;EACH;EACAc,GAAGA,CAAII,GAAqB;IAC1B,OAAOb,eAAA,CAAAS,GAAA,CAAaI,GAAG,EAAhB,IAAI,CAAClB,GAAG,CAAS;EAC1B;EACQmB,SAASA,CAAID,GAAqB,EAAEE,KAAQ;IAClD,OAAO,IAAItB,gBAAgB,CAACO,eAAA,CAAAK,GAAA,CAAaQ,GAAG,EAAEE,KAAK,EAAvB,IAAI,CAACpB,GAAG,CAAgB,CAAC;EACvD;EACQqB,MAAMA,CAAIH,GAAqB,EAAEI,CAAqB;IAC5D,OAAO,IAAI,CAACH,SAAS,CAACD,GAAG,EAAEI,CAAC,CAAC,IAAI,CAACR,GAAG,CAACI,GAAG,CAAC,CAAC,CAAC;EAC9C;EACAK,QAAQA,CAAIL,GAAqB,EAAEE,KAAQ;IACzC,OAAO,IAAI,CAACC,MAAM,CAACH,GAAG,EAAGT,CAAC,IACxBE,eAAA,CAAAC,KAAA,CACE,MAAMQ,KAAK,EACVX,CAAC,IAAKS,GAAG,CAACjB,OAAO,CAACQ,CAAC,EAAEW,KAAK,CAAC,EAF9BX,CAAC,CAGA,CACF;EACH;;;AACOX,gBAAA,CAAAQ,KAAK,gBAAqB,IAAIR,gBAAgB,cAACO,eAAA,CAAAC,KAAA,EAAe,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"ASTAnnotationMap.cjs","names":["tsplus_module_1","tsplus_module_2","tsplus_module_6","tsplus_module_3","tsplus_module_4","tsplus_module_5"],"sources":["../esm/ASTAnnotationMap.js"],"sourcesContent":["import * as tsplus_module_1 from \"@fncts/base/data/Equatable/definition\";\nimport * as tsplus_module_2 from \"@fncts/base/collection/Iterable/api\";\nimport * as tsplus_module_3 from \"@fncts/base/collection/immutable/HashMap/api\";\nimport * as tsplus_module_4 from \"@fncts/base/data/Maybe/destructors\";\nimport * as tsplus_module_5 from \"@fncts/base/collection/immutable/Conc/constructors\";\nimport * as tsplus_module_6 from \"@fncts/base/collection/immutable/Conc/api\";\nexport class ASTAnnotationMap {\n map;\n constructor(map) {\n this.map = map;\n }\n [tsplus_module_1.equalsSymbol](that, context) {\n if (!(that instanceof ASTAnnotationMap) || this.map.size !== that.map.size) {\n return false;\n }\n return tsplus_module_2.corresponds(that.map, ([k1, v1], [k2, v2]) => context.comparator(k1, k2) && context.comparator(v1, v2))(this.map);\n }\n combine(that) {\n return new ASTAnnotationMap(tsplus_module_6.foldLeft(tsplus_module_3.empty(), (acc, [k, v]) => tsplus_module_3.set(k, tsplus_module_4.match(() => v, (_) => k.combine(_, v))(tsplus_module_3.get(k)(acc)))(acc))(tsplus_module_6.concat(tsplus_module_5.from(that.map))(tsplus_module_5.from(this.map))));\n }\n get(key) {\n return tsplus_module_3.get(key)(this.map);\n }\n overwrite(key, value) {\n return new ASTAnnotationMap(tsplus_module_3.set(key, value)(this.map));\n }\n update(key, f) {\n return this.overwrite(key, f(this.get(key)));\n }\n annotate(key, value) {\n return this.update(key, (v) => tsplus_module_4.match(() => value, (v) => key.combine(v, value))(v));\n }\n static empty = new ASTAnnotationMap(tsplus_module_3.empty());\n}\n//# sourceMappingURL=ASTAnnotationMap.js.map"],"mappings":";;;;;;;;;;;;;;;AAMA,IAAa,mBAAb,MAAa,iBAAiB;CAC1B;CACA,YAAY,KAAK;AACb,OAAK,MAAM;;CAEf,CAACA,sCAAgB,cAAc,MAAM,SAAS;AAC1C,MAAI,EAAE,gBAAgB,qBAAqB,KAAK,IAAI,SAAS,KAAK,IAAI,KAClE,QAAO;AAEX,SAAOC,oCAAgB,YAAY,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,QAAQ,QAAQ,WAAW,IAAI,GAAG,IAAI,QAAQ,WAAW,IAAI,GAAG,CAAC,CAAC,KAAK,IAAI;;CAE5I,QAAQ,MAAM;AACV,SAAO,IAAI,iBAAiBC,0CAAgB,SAASC,6CAAgB,OAAO,GAAG,KAAK,CAAC,GAAG,OAAOA,6CAAgB,IAAI,GAAGC,mCAAgB,YAAY,IAAI,MAAM,EAAE,QAAQ,GAAG,EAAE,CAAC,CAACD,6CAAgB,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAACD,0CAAgB,OAAOG,mDAAgB,KAAK,KAAK,IAAI,CAAC,CAACA,mDAAgB,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC;;CAE7S,IAAI,KAAK;AACL,SAAOF,6CAAgB,IAAI,IAAI,CAAC,KAAK,IAAI;;CAE7C,UAAU,KAAK,OAAO;AAClB,SAAO,IAAI,iBAAiBA,6CAAgB,IAAI,KAAK,MAAM,CAAC,KAAK,IAAI,CAAC;;CAE1E,OAAO,KAAK,GAAG;AACX,SAAO,KAAK,UAAU,KAAK,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC;;CAEhD,SAAS,KAAK,OAAO;AACjB,SAAO,KAAK,OAAO,MAAM,MAAMC,mCAAgB,YAAY,QAAQ,MAAM,IAAI,QAAQ,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC;;CAEvG,OAAO,QAAQ,IAAI,iBAAiBD,6CAAgB,OAAO,CAAC"}
package/_cjs/Eq.cjs CHANGED
@@ -1,156 +1,124 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.eq = void 0;
7
- exports.equals = equals;
8
- var tsplus_module_1 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/data/Eq/api"));
9
- var tsplus_module_2 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/collection/immutable/Vector/api"));
10
- var tsplus_module_3 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/schema/ASTAnnotation"));
11
- var tsplus_module_4 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/data/Maybe/api"));
12
- var tsplus_module_5 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/data/Maybe/definition"));
13
- var tsplus_module_6 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/data/Eq/definition"));
14
- var _Global = /*#__PURE__*/require("@fncts/base/data/Global");
15
- var _utils = /*#__PURE__*/require("./utils.cjs");
16
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
17
- const eq = exports.eq = eq_1;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_chunk = require("./chunk.cjs");
3
+ const require_utils = require("./utils.cjs");
4
+ let _fncts_base_collection_immutable_Vector_api = require("@fncts/base/collection/immutable/Vector/api");
5
+ _fncts_base_collection_immutable_Vector_api = require_chunk.__toESM(_fncts_base_collection_immutable_Vector_api, 1);
6
+ let _fncts_base_data_Maybe_api = require("@fncts/base/data/Maybe/api");
7
+ _fncts_base_data_Maybe_api = require_chunk.__toESM(_fncts_base_data_Maybe_api, 1);
8
+ let _fncts_base_data_Global = require("@fncts/base/data/Global");
9
+ let _fncts_schema_ASTAnnotation = require("@fncts/schema/ASTAnnotation");
10
+ _fncts_schema_ASTAnnotation = require_chunk.__toESM(_fncts_schema_ASTAnnotation, 1);
11
+ let _fncts_base_data_Maybe_definition = require("@fncts/base/data/Maybe/definition");
12
+ _fncts_base_data_Maybe_definition = require_chunk.__toESM(_fncts_base_data_Maybe_definition, 1);
13
+ let _fncts_base_data_Eq_api = require("@fncts/base/data/Eq/api");
14
+ _fncts_base_data_Eq_api = require_chunk.__toESM(_fncts_base_data_Eq_api, 1);
15
+ let _fncts_base_data_Eq_definition = require("@fncts/base/data/Eq/definition");
16
+ _fncts_base_data_Eq_definition = require_chunk.__toESM(_fncts_base_data_Eq_definition, 1);
17
+ //#region build/esm/Eq.js
18
+ const eq = eq_1;
18
19
  /**
19
- * @tsplus getter fncts.schema.Schema equals
20
- */
20
+ * @tsplus getter fncts.schema.Schema equals
21
+ */
21
22
  function equals(self) {
22
- const eq = eq_1(self);
23
- return (a, b) => eq.equals(b)(a);
23
+ const eq = eq_1(self);
24
+ return (a, b) => eq.equals(b)(a);
24
25
  }
25
26
  /**
26
- * @tsplus getter fncts.schema.Schema eq
27
- */
27
+ * @tsplus getter fncts.schema.Schema eq
28
+ */
28
29
  function eq_1(self) {
29
- return goMemo(self.ast);
30
+ return goMemo(self.ast);
30
31
  }
31
- const eqMemoMap = /*#__PURE__*/(0, _Global.globalValue)(/*#__PURE__*/Symbol.for("fncts.schema.Eq.eqMemoMap"), () => new WeakMap());
32
+ const eqMemoMap = (0, _fncts_base_data_Global.globalValue)(Symbol.for("fncts.schema.Eq.eqMemoMap"), () => /* @__PURE__ */ new WeakMap());
32
33
  function goMemo(ast) {
33
- const memo = eqMemoMap.get(ast);
34
- if (memo) {
35
- return memo;
36
- }
37
- const eq = go(ast);
38
- eqMemoMap.set(ast, eq);
39
- return eq;
34
+ const memo = eqMemoMap.get(ast);
35
+ if (memo) return memo;
36
+ const eq = go(ast);
37
+ eqMemoMap.set(ast, eq);
38
+ return eq;
40
39
  }
41
40
  function go(ast) {
42
- void 0;
43
- switch (ast._tag) {
44
- case 0 /* ASTTag.Declaration */:
45
- return tsplus_module_4.getOrElse(() => tsplus_module_1.strict)(tsplus_module_4.map(eq => eq(...tsplus_module_2.map(go)(ast.typeParameters)))(ast.annotations.get(tsplus_module_3.EqHook)));
46
- case 1 /* ASTTag.Literal */:
47
- case 2 /* ASTTag.UniqueSymbol */:
48
- case 3 /* ASTTag.UndefinedKeyword */:
49
- case 4 /* ASTTag.VoidKeyword */:
50
- case 6 /* ASTTag.UnknownKeyword */:
51
- case 7 /* ASTTag.AnyKeyword */:
52
- case 9 /* ASTTag.NumberKeyword */:
53
- case 10 /* ASTTag.BooleanKeyword */:
54
- case 11 /* ASTTag.BigIntKeyword */:
55
- case 12 /* ASTTag.SymbolKeyword */:
56
- case 13 /* ASTTag.ObjectKeyword */:
57
- case 15 /* ASTTag.TemplateLiteral */:
58
- case 8 /* ASTTag.StringKeyword */:
59
- return tsplus_module_1.strict;
60
- case 5 /* ASTTag.NeverKeyword */:
61
- return tsplus_module_1.never;
62
- case 16 /* ASTTag.Tuple */:
63
- {
64
- const elements = tsplus_module_2.map(element => goMemo(element.type))(ast.elements);
65
- const rest = tsplus_module_4.map(rest => tsplus_module_2.map(ast => goMemo(ast))(rest))(ast.rest);
66
- return tsplus_module_6.makeEq({
67
- equals: y => x => {
68
- if (x.length !== y.length) {
69
- return false;
70
- }
71
- let i = 0;
72
- for (; i < elements.length; i++) {
73
- const eq = tsplus_module_2.unsafeGet(i)(elements);
74
- const xi = x[i];
75
- const yi = y[i];
76
- if (!eq.equals(yi)(xi)) {
77
- return false;
78
- }
79
- }
80
- if (tsplus_module_5.isJust(rest)) {
81
- const head = tsplus_module_2.unsafeHead(rest.value);
82
- const tail = tsplus_module_2.tail(rest.value);
83
- for (; i < x.length - tail.length; i++) {
84
- if (!head.equals(y[i])(x[i])) {
85
- return false;
86
- }
87
- }
88
- for (let j = 0; j < tail.length; j++) {
89
- i += j;
90
- const eq = tsplus_module_2.unsafeGet(i)(elements);
91
- const xi = x[i];
92
- const yi = y[i];
93
- if (!eq.equals(yi)(xi)) {
94
- return false;
95
- }
96
- }
97
- }
98
- return true;
99
- }
100
- });
101
- }
102
- case 17 /* ASTTag.TypeLiteral */:
103
- {
104
- const propertySignatureTypes = tsplus_module_2.map(ps => go(ps.type))(ast.propertySignatures);
105
- const indexSignatures = tsplus_module_2.map(is => [go(is.parameter), go(is.type)])(ast.indexSignatures);
106
- const requiredEqs = {};
107
- const optionalEqs = {};
108
- for (let i = 0; i < propertySignatureTypes.length; i++) {
109
- const ps = tsplus_module_2.unsafeGet(i)(ast.propertySignatures);
110
- const name = ps.name;
111
- if (!ps.isOptional) {
112
- requiredEqs[name] = tsplus_module_2.unsafeGet(i)(propertySignatureTypes);
113
- } else {
114
- optionalEqs[name] = tsplus_module_2.unsafeGet(i)(propertySignatureTypes);
115
- }
116
- }
117
- let output = tsplus_module_1.struct(requiredEqs, optionalEqs);
118
- for (let i = 0; i < indexSignatures.length; i++) {
119
- const [, type] = tsplus_module_2.unsafeGet(i)(indexSignatures);
120
- output = tsplus_module_1.intersection(tsplus_module_6.makeEq({
121
- equals: y => x => {
122
- for (const key of (0, _utils.getKeysForIndexSignature)(x, tsplus_module_2.unsafeGet(i)(ast.indexSignatures).parameter)) {
123
- if (key in requiredEqs || key in optionalEqs) {
124
- continue;
125
- }
126
- if (!type.equals(y[key])(x[key])) {
127
- return false;
128
- }
129
- }
130
- return true;
131
- }
132
- }))(output);
133
- }
134
- return output;
135
- }
136
- case 18 /* ASTTag.Union */:
137
- return tsplus_module_1.union(tsplus_module_2.toArray(tsplus_module_2.map(goMemo)(ast.types)));
138
- case 19 /* ASTTag.Lazy */:
139
- {
140
- const f = () => goMemo(ast.getAST());
141
- const get = (0, _utils.memoize)(f);
142
- return tsplus_module_6.makeEq({
143
- equals: y => x => get(f).equals(y)(x)
144
- });
145
- }
146
- case 14 /* ASTTag.Enum */:
147
- return tsplus_module_1.strict;
148
- case 21 /* ASTTag.Transform */:
149
- return goMemo(ast.to);
150
- case 20 /* ASTTag.Refinement */:
151
- return goMemo(ast.from);
152
- case 22 /* ASTTag.Validation */:
153
- return goMemo(ast.from);
154
- }
41
+ switch (ast._tag) {
42
+ case 0: return _fncts_base_data_Maybe_api.getOrElse(() => _fncts_base_data_Eq_api.strict)(_fncts_base_data_Maybe_api.map((eq) => eq(..._fncts_base_collection_immutable_Vector_api.map(go)(ast.typeParameters)))(ast.annotations.get(_fncts_schema_ASTAnnotation.EqHook)));
43
+ case 1:
44
+ case 2:
45
+ case 3:
46
+ case 4:
47
+ case 6:
48
+ case 7:
49
+ case 9:
50
+ case 10:
51
+ case 11:
52
+ case 12:
53
+ case 13:
54
+ case 15:
55
+ case 8: return _fncts_base_data_Eq_api.strict;
56
+ case 5: return _fncts_base_data_Eq_api.never;
57
+ case 16: {
58
+ const elements = _fncts_base_collection_immutable_Vector_api.map((element) => goMemo(element.type))(ast.elements);
59
+ const rest = _fncts_base_data_Maybe_api.map((rest) => _fncts_base_collection_immutable_Vector_api.map((ast) => goMemo(ast))(rest))(ast.rest);
60
+ return _fncts_base_data_Eq_definition.makeEq({ equals: (y) => (x) => {
61
+ if (x.length !== y.length) return false;
62
+ let i = 0;
63
+ for (; i < elements.length; i++) {
64
+ const eq = _fncts_base_collection_immutable_Vector_api.unsafeGet(i)(elements);
65
+ const xi = x[i];
66
+ const yi = y[i];
67
+ if (!eq.equals(yi)(xi)) return false;
68
+ }
69
+ if (_fncts_base_data_Maybe_definition.isJust(rest)) {
70
+ const head = _fncts_base_collection_immutable_Vector_api.unsafeHead(rest.value);
71
+ const tail = _fncts_base_collection_immutable_Vector_api.tail(rest.value);
72
+ for (; i < x.length - tail.length; i++) if (!head.equals(y[i])(x[i])) return false;
73
+ for (let j = 0; j < tail.length; j++) {
74
+ i += j;
75
+ const eq = _fncts_base_collection_immutable_Vector_api.unsafeGet(i)(elements);
76
+ const xi = x[i];
77
+ const yi = y[i];
78
+ if (!eq.equals(yi)(xi)) return false;
79
+ }
80
+ }
81
+ return true;
82
+ } });
83
+ }
84
+ case 17: {
85
+ const propertySignatureTypes = _fncts_base_collection_immutable_Vector_api.map((ps) => go(ps.type))(ast.propertySignatures);
86
+ const indexSignatures = _fncts_base_collection_immutable_Vector_api.map((is) => [go(is.parameter), go(is.type)])(ast.indexSignatures);
87
+ const requiredEqs = {};
88
+ const optionalEqs = {};
89
+ for (let i = 0; i < propertySignatureTypes.length; i++) {
90
+ const ps = _fncts_base_collection_immutable_Vector_api.unsafeGet(i)(ast.propertySignatures);
91
+ const name = ps.name;
92
+ if (!ps.isOptional) requiredEqs[name] = _fncts_base_collection_immutable_Vector_api.unsafeGet(i)(propertySignatureTypes);
93
+ else optionalEqs[name] = _fncts_base_collection_immutable_Vector_api.unsafeGet(i)(propertySignatureTypes);
94
+ }
95
+ let output = _fncts_base_data_Eq_api.struct(requiredEqs, optionalEqs);
96
+ for (let i = 0; i < indexSignatures.length; i++) {
97
+ const [, type] = _fncts_base_collection_immutable_Vector_api.unsafeGet(i)(indexSignatures);
98
+ output = _fncts_base_data_Eq_api.intersection(_fncts_base_data_Eq_definition.makeEq({ equals: (y) => (x) => {
99
+ for (const key of require_utils.getKeysForIndexSignature(x, _fncts_base_collection_immutable_Vector_api.unsafeGet(i)(ast.indexSignatures).parameter)) {
100
+ if (key in requiredEqs || key in optionalEqs) continue;
101
+ if (!type.equals(y[key])(x[key])) return false;
102
+ }
103
+ return true;
104
+ } }))(output);
105
+ }
106
+ return output;
107
+ }
108
+ case 18: return _fncts_base_data_Eq_api.union(_fncts_base_collection_immutable_Vector_api.toArray(_fncts_base_collection_immutable_Vector_api.map(goMemo)(ast.types)));
109
+ case 19: {
110
+ const f = () => goMemo(ast.getAST());
111
+ const get = require_utils.memoize(f);
112
+ return _fncts_base_data_Eq_definition.makeEq({ equals: (y) => (x) => get(f).equals(y)(x) });
113
+ }
114
+ case 14: return _fncts_base_data_Eq_api.strict;
115
+ case 21: return goMemo(ast.to);
116
+ case 20: return goMemo(ast.from);
117
+ case 22: return goMemo(ast.from);
118
+ }
155
119
  }
120
+ //#endregion
121
+ exports.eq = eq;
122
+ exports.equals = equals;
123
+
156
124
  //# sourceMappingURL=Eq.cjs.map
package/_cjs/Eq.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Eq.cjs","names":["_Global","require","_utils","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","eq","exports","eq_1","equals","self","a","b","goMemo","ast","eqMemoMap","globalValue","Symbol","for","memo","go","_tag","tsplus_module_4","getOrElse","tsplus_module_1","strict","map","tsplus_module_2","typeParameters","annotations","tsplus_module_3","EqHook","never","elements","element","type","rest","tsplus_module_6","makeEq","y","x","length","unsafeGet","xi","yi","tsplus_module_5","isJust","head","unsafeHead","value","tail","j","propertySignatureTypes","ps","propertySignatures","indexSignatures","is","parameter","requiredEqs","optionalEqs","name","isOptional","output","struct","intersection","key","getKeysForIndexSignature","union","toArray","types","getAST","memoize","to","from"],"sources":["../_src/Eq.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;AAAA,IAAAA,OAAA,gBAAAC,OAAA;AAGA,IAAAC,MAAA,gBAAAD,OAAA;AAA+D,SAAAE,wBAAAC,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAH,uBAAA,YAAAA,CAAAC,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;MAa/CkB,EAAE,GAAAC,OAAA,CAAAD,EAAA,GAAAE,IAAA;AAXlB;;;AAGM,SAAUC,MAAMA,CAAIC,IAAe;EACvC,MAAMJ,EAAE,GAAAE,IAAA,CAAGE,IAAI,CAAG;EAClB,OAAO,CAACC,CAAC,EAAEC,CAAC,KAAKN,EAAE,CAACG,MAAM,CAACG,CAAC,CAAC,CAACD,CAAC,CAAC;AAClC;AAEA;;;AAGA,SAAAH,KAAsBE,IAAe;EACnC,OAAOG,MAAM,CAACH,IAAI,CAACI,GAAG,CAAC;AACzB;AAEA,MAAMC,SAAS,gBAAG,IAAAC,mBAAW,eAACC,MAAM,CAACC,GAAG,CAAC,2BAA2B,CAAC,EAAE,MAAM,IAAI7B,OAAO,EAAgB,CAAC;AAEzG,SAASwB,MAAMA,CAACC,GAAQ;EACtB,MAAMK,IAAI,GAAGJ,SAAS,CAAChB,GAAG,CAACe,GAAG,CAAC;EAC/B,IAAIK,IAAI,EAAE;IACR,OAAOA,IAAI;EACb;EACA,MAAMb,EAAE,GAAGc,EAAE,CAACN,GAAG,CAAC;EAClBC,SAAS,CAACf,GAAG,CAACc,GAAG,EAAER,EAAE,CAAC;EACtB,OAAOA,EAAE;AACX;AAEA,SAASc,EAAEA,CAACN,GAAQ;EAClB;EACA,QAAQA,GAAG,CAACO,IAAI;IACd;MACE,OAAOC,eAAA,CAAAC,SAAA,OAAAC,eAAA,CAAAC,MAAA,EAAAH,eAAA,CAAAI,GAAA,CAECpB,EAAE,IAAKA,EAAE,CAAC,GAAGqB,eAAA,CAAAD,GAAA,CAAuBN,EAAE,EAAzBN,GAAG,CAACc,cAAc,CAAQ,CAAC,EAFzCd,GAAG,CAACe,WAAW,CACnB9B,GAAG,CAAA+B,eAAA,CAAAC,MAAA,CAAsB,CACqB,CAC1B;IACzB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;MACE,OAAAP,eAAA,CAAAC,MAAA;IACF;MACE,OAAOD,eAAA,CAAAQ,KAAmB;IAC5B;MAAmB;QACjB,MAAMC,QAAQ,GAAGN,eAAA,CAAAD,GAAA,CAAkBQ,OAAO,IAAKrB,MAAM,CAACqB,OAAO,CAACC,IAAI,CAAC,EAAlDrB,GAAG,CAACmB,QAAQ,CAAuC;QACpE,MAAMG,IAAI,GAAOd,eAAA,CAAAI,GAAA,CAAcU,IAAI,IAAKT,eAAA,CAAAD,GAAA,CAAUZ,GAAG,IAAKD,MAAM,CAACC,GAAG,CAAC,EAA7BsB,IAAI,CAA0B,EAArDtB,GAAG,CAACsB,IAAI,CAA8C;QACvE,OAAOC,eAAA,CAAAC,MAAA,CAAe;UACpB7B,MAAM,EAAG8B,CAAC,IAAMC,CAAC,IAAI;YACnB,IAAIA,CAAC,CAACC,MAAM,KAAKF,CAAC,CAACE,MAAM,EAAE;cACzB,OAAO,KAAK;YACd;YAEA,IAAI/C,CAAC,GAAG,CAAC;YAET,OAAOA,CAAC,GAAGuC,QAAQ,CAACQ,MAAM,EAAE/C,CAAC,EAAE,EAAE;cAC/B,MAAMY,EAAE,GAAGqB,eAAA,CAAAe,SAAA,CAAShD,CAAC,EAAVuC,QAAQ,CAAI;cACvB,MAAMU,EAAE,GAAGH,CAAC,CAAC9C,CAAC,CAAC;cACf,MAAMkD,EAAE,GAAGL,CAAC,CAAC7C,CAAC,CAAC;cACf,IAAI,CAACY,EAAE,CAACG,MAAM,CAACmC,EAAE,CAAC,CAACD,EAAE,CAAC,EAAE;gBACtB,OAAO,KAAK;cACd;YACF;YAEA,IAAIE,eAAA,CAAAC,MAAA,CAAAV,IAAI,CAAS,EAAE;cACjB,MAAMW,IAAI,GAAGpB,eAAA,CAAAqB,UAAA,CAAAZ,IAAI,CAACa,KAAK,CAAY;cACnC,MAAMC,IAAI,GAAAvB,eAAA,CAAAuB,IAAA,CAAGd,IAAI,CAACa,KAAK,CAAK;cAC5B,OAAOvD,CAAC,GAAG8C,CAAC,CAACC,MAAM,GAAGS,IAAI,CAACT,MAAM,EAAE/C,CAAC,EAAE,EAAE;gBACtC,IAAI,CAACqD,IAAI,CAACtC,MAAM,CAAC8B,CAAC,CAAC7C,CAAC,CAAC,CAAC,CAAC8C,CAAC,CAAC9C,CAAC,CAAC,CAAC,EAAE;kBAC5B,OAAO,KAAK;gBACd;cACF;cACA,KAAK,IAAIyD,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,IAAI,CAACT,MAAM,EAAEU,CAAC,EAAE,EAAE;gBACpCzD,CAAC,IAAUyD,CAAC;gBACZ,MAAM7C,EAAE,GAAGqB,eAAA,CAAAe,SAAA,CAAShD,CAAC,EAAVuC,QAAQ,CAAI;gBACvB,MAAMU,EAAE,GAAGH,CAAC,CAAC9C,CAAC,CAAC;gBACf,MAAMkD,EAAE,GAAGL,CAAC,CAAC7C,CAAC,CAAC;gBACf,IAAI,CAACY,EAAE,CAACG,MAAM,CAACmC,EAAE,CAAC,CAACD,EAAE,CAAC,EAAE;kBACtB,OAAO,KAAK;gBACd;cACF;YACF;YAEA,OAAO,IAAI;UACb;SACD,CAAC;MACJ;IACA;MAAyB;QACvB,MAAMS,sBAAsB,GAAGzB,eAAA,CAAAD,GAAA,CAA4B2B,EAAE,IAAKjC,EAAE,CAACiC,EAAE,CAAClB,IAAI,CAAC,EAA9CrB,GAAG,CAACwC,kBAAkB,CAAyB;QAC9E,MAAMC,eAAe,GAAU5B,eAAA,CAAAD,GAAA,CAAyB8B,EAAE,IAAK,CAACpC,EAAE,CAACoC,EAAE,CAACC,SAAS,CAAC,EAAErC,EAAE,CAACoC,EAAE,CAACrB,IAAI,CAAC,CAAU,EAAxErB,GAAG,CAACyC,eAAe,CAAsD;QACxG,MAAMG,WAAW,GAAiC,EAAE;QACpD,MAAMC,WAAW,GAAiC,EAAE;QACpD,KAAK,IAAIjE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG0D,sBAAsB,CAACX,MAAM,EAAE/C,CAAC,EAAE,EAAE;UACtD,MAAM2D,EAAE,GAAK1B,eAAA,CAAAe,SAAA,CAAuBhD,CAAC,EAAxBoB,GAAG,CAACwC,kBAAkB,CAAI;UACvC,MAAMM,IAAI,GAAGP,EAAE,CAACO,IAAI;UACpB,IAAI,CAACP,EAAE,CAACQ,UAAU,EAAE;YAClBH,WAAW,CAACE,IAAI,CAAC,GAAGjC,eAAA,CAAAe,SAAA,CAAuBhD,CAAC,EAAxB0D,sBAAsB,CAAI;UAChD,CAAC,MAAM;YACLO,WAAW,CAACC,IAAI,CAAC,GAAGjC,eAAA,CAAAe,SAAA,CAAuBhD,CAAC,EAAxB0D,sBAAsB,CAAI;UAChD;QACF;QACA,IAAIU,MAAM,GAAGtC,eAAA,CAAAuC,MAAA,CAAUL,WAAW,EAAEC,WAAW,CAAC;QAEhD,KAAK,IAAIjE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG6D,eAAe,CAACd,MAAM,EAAE/C,CAAC,EAAE,EAAE;UAC/C,MAAM,GAAGyC,IAAI,CAAC,GAAGR,eAAA,CAAAe,SAAA,CAAgBhD,CAAC,EAAjB6D,eAAe,CAAI;UAEpCO,MAAM,GAAGtC,eAAA,CAAAwC,YAAA,CACP3B,eAAA,CAAAC,MAAA,CAA6B;YAC3B7B,MAAM,EAAG8B,CAAC,IAAMC,CAAC,IAAI;cACnB,KAAK,MAAMyB,GAAG,IAAI,IAAAC,+BAAwB,EAAC1B,CAAC,EAAEb,eAAA,CAAAe,SAAA,CAAoBhD,CAAC,EAArBoB,GAAG,CAACyC,eAAe,CAAI,CAACE,SAAS,CAAC,EAAE;gBAChF,IAAIQ,GAAG,IAAIP,WAAW,IAAIO,GAAG,IAAIN,WAAW,EAAE;kBAC5C;gBACF;gBACA,IAAI,CAACxB,IAAI,CAAC1B,MAAM,CAAC8B,CAAC,CAAC0B,GAAG,CAAC,CAAC,CAACzB,CAAC,CAACyB,GAAG,CAAC,CAAC,EAAE;kBAChC,OAAO,KAAK;gBACd;cACF;cAEA,OAAO,IAAI;YACb;WACD,CAAC,EAdKH,MAAM,CAed;QACH;QACA,OAAOA,MAAM;MACf;IACA;MACE,OAAOtC,eAAA,CAAA2C,KAAA,CAAAxC,eAAA,CAAAyC,OAAA,CAASzC,eAAA,CAAAD,GAAA,CAAcb,MAAM,EAApBC,GAAG,CAACuD,KAAK,CAAY,EAAS;IAChD;MAAkB;QAChB,MAAM1E,CAAC,GAAKA,CAAA,KAAMkB,MAAM,CAACC,GAAG,CAACwD,MAAM,EAAE,CAAC;QACtC,MAAMvE,GAAG,GAAG,IAAAwE,cAAO,EAAoB5E,CAAC,CAAC;QACzC,OAAO0C,eAAA,CAAAC,MAAA,CAAG;UACR7B,MAAM,EAAG8B,CAAC,IAAMC,CAAC,IAAKzC,GAAG,CAACJ,CAAC,CAAC,CAACc,MAAM,CAAC8B,CAAC,CAAC,CAACC,CAAC;SACzC,CAAC;MACJ;IACA;MACE,OAAAhB,eAAA,CAAAC,MAAA;IACF;MACE,OAAOZ,MAAM,CAACC,GAAG,CAAC0D,EAAE,CAAC;IACvB;MACE,OAAO3D,MAAM,CAACC,GAAG,CAAC2D,IAAI,CAAC;IACzB;MACE,OAAO5D,MAAM,CAACC,GAAG,CAAC2D,IAAI,CAAC;EAC3B;AACF","ignoreList":[]}
1
+ {"version":3,"file":"Eq.cjs","names":["tsplus_module_4","tsplus_module_1","tsplus_module_2","tsplus_module_3","tsplus_module_6","tsplus_module_5","getKeysForIndexSignature","memoize"],"sources":["../esm/Eq.js"],"sourcesContent":["import * as tsplus_module_1 from \"@fncts/base/data/Eq/api\";\nimport * as tsplus_module_2 from \"@fncts/base/collection/immutable/Vector/api\";\nimport * as tsplus_module_3 from \"@fncts/schema/ASTAnnotation\";\nimport * as tsplus_module_4 from \"@fncts/base/data/Maybe/api\";\nimport * as tsplus_module_5 from \"@fncts/base/data/Maybe/definition\";\nimport * as tsplus_module_6 from \"@fncts/base/data/Eq/definition\";\nexport const eq = eq_1;\nimport { globalValue } from \"@fncts/base/data/Global\";\nimport { getKeysForIndexSignature, memoize } from \"./utils.js\";\n/**\n * @tsplus getter fncts.schema.Schema equals\n */\nexport function equals(self) {\n const eq = eq_1(self);\n return (a, b) => eq.equals(b)(a);\n}\n/**\n * @tsplus getter fncts.schema.Schema eq\n */\nfunction eq_1(self) {\n return goMemo(self.ast);\n}\nconst eqMemoMap = globalValue(Symbol.for(\"fncts.schema.Eq.eqMemoMap\"), () => new WeakMap());\nfunction goMemo(ast) {\n const memo = eqMemoMap.get(ast);\n if (memo) {\n return memo;\n }\n const eq = go(ast);\n eqMemoMap.set(ast, eq);\n return eq;\n}\nfunction go(ast) {\n void 0;\n switch (ast._tag) {\n case 0 /* ASTTag.Declaration */:\n return tsplus_module_4.getOrElse(() => tsplus_module_1.strict)(tsplus_module_4.map((eq) => eq(...tsplus_module_2.map(go)(ast.typeParameters)))(ast.annotations\n .get(tsplus_module_3.EqHook)));\n case 1 /* ASTTag.Literal */:\n case 2 /* ASTTag.UniqueSymbol */:\n case 3 /* ASTTag.UndefinedKeyword */:\n case 4 /* ASTTag.VoidKeyword */:\n case 6 /* ASTTag.UnknownKeyword */:\n case 7 /* ASTTag.AnyKeyword */:\n case 9 /* ASTTag.NumberKeyword */:\n case 10 /* ASTTag.BooleanKeyword */:\n case 11 /* ASTTag.BigIntKeyword */:\n case 12 /* ASTTag.SymbolKeyword */:\n case 13 /* ASTTag.ObjectKeyword */:\n case 15 /* ASTTag.TemplateLiteral */:\n case 8 /* ASTTag.StringKeyword */:\n return tsplus_module_1.strict;\n case 5 /* ASTTag.NeverKeyword */:\n return tsplus_module_1.never;\n case 16 /* ASTTag.Tuple */: {\n const elements = tsplus_module_2.map((element) => goMemo(element.type))(ast.elements);\n const rest = tsplus_module_4.map((rest) => tsplus_module_2.map((ast) => goMemo(ast))(rest))(ast.rest);\n return tsplus_module_6.makeEq({\n equals: (y) => (x) => {\n if (x.length !== y.length) {\n return false;\n }\n let i = 0;\n for (; i < elements.length; i++) {\n const eq = tsplus_module_2.unsafeGet(i)(elements);\n const xi = x[i];\n const yi = y[i];\n if (!eq.equals(yi)(xi)) {\n return false;\n }\n }\n if (tsplus_module_5.isJust(rest)) {\n const head = tsplus_module_2.unsafeHead(rest.value);\n const tail = tsplus_module_2.tail(rest.value);\n for (; i < x.length - tail.length; i++) {\n if (!head.equals(y[i])(x[i])) {\n return false;\n }\n }\n for (let j = 0; j < tail.length; j++) {\n i += j;\n const eq = tsplus_module_2.unsafeGet(i)(elements);\n const xi = x[i];\n const yi = y[i];\n if (!eq.equals(yi)(xi)) {\n return false;\n }\n }\n }\n return true;\n },\n });\n }\n case 17 /* ASTTag.TypeLiteral */: {\n const propertySignatureTypes = tsplus_module_2.map((ps) => go(ps.type))(ast.propertySignatures);\n const indexSignatures = tsplus_module_2.map((is) => [go(is.parameter), go(is.type)])(ast.indexSignatures);\n const requiredEqs = {};\n const optionalEqs = {};\n for (let i = 0; i < propertySignatureTypes.length; i++) {\n const ps = tsplus_module_2.unsafeGet(i)(ast.propertySignatures);\n const name = ps.name;\n if (!ps.isOptional) {\n requiredEqs[name] = tsplus_module_2.unsafeGet(i)(propertySignatureTypes);\n }\n else {\n optionalEqs[name] = tsplus_module_2.unsafeGet(i)(propertySignatureTypes);\n }\n }\n let output = tsplus_module_1.struct(requiredEqs, optionalEqs);\n for (let i = 0; i < indexSignatures.length; i++) {\n const [, type] = tsplus_module_2.unsafeGet(i)(indexSignatures);\n output = tsplus_module_1.intersection(tsplus_module_6.makeEq({\n equals: (y) => (x) => {\n for (const key of getKeysForIndexSignature(x, tsplus_module_2.unsafeGet(i)(ast.indexSignatures).parameter)) {\n if (key in requiredEqs || key in optionalEqs) {\n continue;\n }\n if (!type.equals(y[key])(x[key])) {\n return false;\n }\n }\n return true;\n },\n }))(output);\n }\n return output;\n }\n case 18 /* ASTTag.Union */:\n return tsplus_module_1.union(tsplus_module_2.toArray(tsplus_module_2.map(goMemo)(ast.types)));\n case 19 /* ASTTag.Lazy */: {\n const f = () => goMemo(ast.getAST());\n const get = memoize(f);\n return tsplus_module_6.makeEq({\n equals: (y) => (x) => get(f).equals(y)(x),\n });\n }\n case 14 /* ASTTag.Enum */:\n return tsplus_module_1.strict;\n case 21 /* ASTTag.Transform */:\n return goMemo(ast.to);\n case 20 /* ASTTag.Refinement */:\n return goMemo(ast.from);\n case 22 /* ASTTag.Validation */:\n return goMemo(ast.from);\n }\n}\n//# sourceMappingURL=Eq.js.map"],"mappings":"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"}