functype 0.0.7 → 0.1.1

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 (119) hide show
  1. package/dist/chunk-377WQNCB.mjs +1 -0
  2. package/dist/chunk-3OHJLCSR.mjs +0 -0
  3. package/dist/{chunk-6VKVA3TK.cjs → chunk-3VJERXBP.js} +1 -1
  4. package/dist/chunk-5VTXJIR3.js +1 -0
  5. package/dist/chunk-72IAI5F4.mjs +0 -0
  6. package/dist/chunk-7VFL33KH.js +1 -0
  7. package/dist/chunk-7XCWDOMW.js +1 -0
  8. package/dist/chunk-CFYIJKWF.mjs +1 -0
  9. package/dist/chunk-CZKHN2SM.mjs +1 -0
  10. package/dist/chunk-DOG6HMTN.js +1 -0
  11. package/dist/chunk-HA5XD5KC.mjs +1 -0
  12. package/dist/chunk-LBQXRIXP.mjs +0 -0
  13. package/dist/chunk-PKWOSOD7.mjs +1 -0
  14. package/dist/chunk-SSP26X5Y.js +1 -0
  15. package/dist/chunk-TVZBBVEV.js +1 -0
  16. package/dist/chunk-U237FVPP.mjs +1 -0
  17. package/dist/chunk-U5EUM74A.mjs +1 -0
  18. package/dist/chunk-VM6KG6UB.mjs +1 -0
  19. package/dist/chunk-VTKL7OQI.js +1 -1
  20. package/dist/chunk-VWFTFPZB.mjs +1 -0
  21. package/dist/chunk-WY62QD3C.js +1 -0
  22. package/dist/chunk-XNAZ5QU3.js +1 -0
  23. package/dist/chunk-ZOH672YH.js +1 -0
  24. package/dist/chunk-ZTL76QDL.js +1 -1
  25. package/dist/either/Left.d.mts +2 -0
  26. package/dist/either/Left.js +1 -1
  27. package/dist/either/Left.mjs +1 -0
  28. package/dist/either/Right.d.mts +2 -0
  29. package/dist/either/Right.js +1 -1
  30. package/dist/either/Right.mjs +1 -0
  31. package/dist/either/{index.d.cts → index.d.mts} +2 -2
  32. package/dist/either/index.js +1 -1
  33. package/dist/either/index.mjs +1 -0
  34. package/dist/error/ParseError.js +1 -1
  35. package/dist/error/ParseError.mjs +1 -0
  36. package/dist/index.d.mts +212 -0
  37. package/dist/index.d.ts +147 -47
  38. package/dist/index.js +1 -1
  39. package/dist/index.mjs +1 -0
  40. package/dist/list/List.d.mts +2 -0
  41. package/dist/list/List.js +1 -1
  42. package/dist/list/List.mjs +1 -0
  43. package/dist/list/index.d.mts +2 -0
  44. package/dist/list/index.d.ts +1 -1
  45. package/dist/list/index.js +1 -1
  46. package/dist/list/index.mjs +1 -0
  47. package/dist/map/Map.d.mts +2 -0
  48. package/dist/map/Map.d.ts +2 -0
  49. package/dist/map/Map.js +1 -0
  50. package/dist/map/Map.mjs +1 -0
  51. package/dist/map/index.d.mts +2 -0
  52. package/dist/map/index.d.ts +2 -0
  53. package/dist/map/index.js +1 -0
  54. package/dist/map/index.mjs +1 -0
  55. package/dist/map/shim.d.mts +4 -0
  56. package/dist/map/shim.d.ts +4 -0
  57. package/dist/map/shim.js +1 -0
  58. package/dist/map/shim.mjs +1 -0
  59. package/dist/option/None.d.mts +2 -0
  60. package/dist/option/None.js +1 -1
  61. package/dist/option/None.mjs +1 -0
  62. package/dist/option/Some.d.mts +2 -0
  63. package/dist/option/Some.js +1 -1
  64. package/dist/option/Some.mjs +1 -0
  65. package/dist/option/{index.d.cts → index.d.mts} +2 -2
  66. package/dist/option/index.js +1 -1
  67. package/dist/option/index.mjs +1 -0
  68. package/dist/set/Set.d.mts +2 -0
  69. package/dist/set/Set.d.ts +2 -0
  70. package/dist/set/Set.js +1 -0
  71. package/dist/set/Set.mjs +1 -0
  72. package/dist/set/index.d.mts +2 -0
  73. package/dist/set/index.d.ts +2 -0
  74. package/dist/set/index.js +1 -0
  75. package/dist/set/index.mjs +1 -0
  76. package/dist/set/shim.d.mts +4 -0
  77. package/dist/set/shim.d.ts +4 -0
  78. package/dist/set/shim.js +1 -0
  79. package/dist/set/shim.mjs +1 -0
  80. package/dist/tuple/Tuple.d.mts +2 -0
  81. package/dist/tuple/Tuple.d.ts +2 -0
  82. package/dist/tuple/Tuple.js +1 -0
  83. package/dist/tuple/Tuple.mjs +1 -0
  84. package/dist/tuple/index.d.mts +2 -0
  85. package/dist/tuple/index.d.ts +2 -0
  86. package/dist/tuple/index.js +1 -0
  87. package/dist/tuple/index.mjs +1 -0
  88. package/package.json +13 -7
  89. package/dist/chunk-ALLQJFGO.cjs +0 -1
  90. package/dist/chunk-E4GBAXJ4.js +0 -1
  91. package/dist/chunk-GWLTG6GZ.cjs +0 -1
  92. package/dist/chunk-HJKBTHS6.cjs +0 -1
  93. package/dist/chunk-IU7MDTQA.cjs +0 -1
  94. package/dist/chunk-LXNGDVCQ.js +0 -1
  95. package/dist/chunk-MG5D2OQV.js +0 -1
  96. package/dist/chunk-OAC7TJZK.js +0 -1
  97. package/dist/chunk-OO6BXJDP.cjs +0 -1
  98. package/dist/chunk-PXY4XULG.cjs +0 -1
  99. package/dist/chunk-TZ5KQ47S.js +0 -1
  100. package/dist/chunk-UHHZ2CVW.js +0 -1
  101. package/dist/chunk-WAM77UJL.cjs +0 -1
  102. package/dist/either/Left.cjs +0 -1
  103. package/dist/either/Left.d.cts +0 -2
  104. package/dist/either/Right.cjs +0 -1
  105. package/dist/either/Right.d.cts +0 -2
  106. package/dist/either/index.cjs +0 -1
  107. package/dist/error/ParseError.cjs +0 -1
  108. package/dist/index.cjs +0 -1
  109. package/dist/index.d.cts +0 -112
  110. package/dist/list/List.cjs +0 -1
  111. package/dist/list/List.d.cts +0 -2
  112. package/dist/list/index.cjs +0 -1
  113. package/dist/list/index.d.cts +0 -2
  114. package/dist/option/None.cjs +0 -1
  115. package/dist/option/None.d.cts +0 -2
  116. package/dist/option/Some.cjs +0 -1
  117. package/dist/option/Some.d.cts +0 -2
  118. package/dist/option/index.cjs +0 -1
  119. /package/dist/error/{ParseError.d.cts → ParseError.d.mts} +0 -0
@@ -0,0 +1 @@
1
+ var p=Map;export{p as a};
File without changes
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var e=class extends Error{};exports.a = e;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var t=Set;exports.a = t;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var p=Map;exports.a = p;
File without changes
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk5VTXJIR3js = require('./chunk-5VTXJIR3.js');var _chunkSSP26X5Yjs = require('./chunk-SSP26X5Y.js');var _chunkWY62QD3Cjs = require('./chunk-WY62QD3C.js');var _chunkVTKL7OQIjs = require('./chunk-VTKL7OQI.js');var p=class i{constructor(e=[]){_chunkVTKL7OQIjs.a.call(void 0, this,"internalMap");this.internalMap=new (0, _chunk5VTXJIR3js.a)(e)}add(e){return new i}remove(e){let n=new i([...this.internalMap.entries()]);return n.internalMap.delete(e[0]),n}contains(e){return this.internalMap.get(e[0])===e[1]}get size(){return this.internalMap.size}map(e){let n=[];for(let[t,r]of this.internalMap.entries())n.push([t,e(r)]);return new i(n)}flatMap(e){let n=[];for(let[t,r]of this.internalMap.entries()){let a=e(r);if(a instanceof i)for(let[c,K]of a.internalMap.entries())n.push([c,K])}return new i(n)}reduce(e){let n=Array.from(this.internalMap.entries());if(n.length===0)throw new Error("Cannot reduce empty map");{let t=new (0, _chunkSSP26X5Yjs.a)(n[0]);for(let r=1;r<n.length;r++){let a=n[r];t=e(t,new (0, _chunkSSP26X5Yjs.a)(a))}return t}}foldLeft(e,n){let t=e;for(let r of this.internalMap.entries())t=n(t,new (0, _chunkSSP26X5Yjs.a)(r));return t}foldRight(e,n){let t=e,r=Array.from(this.internalMap.entries()).reverse();for(let a of r)t=n(new (0, _chunkSSP26X5Yjs.a)(a),t);return t}get(e){return _chunkWY62QD3Cjs.c.call(void 0, this.internalMap.get(e))}getOrElse(e,n){return _chunkWY62QD3Cjs.c.call(void 0, this.internalMap.get(e)).getOrElse(n)}get isEmpty(){return this.internalMap.size===0}orElse(e,n){let t=_chunkWY62QD3Cjs.c.call(void 0, this.internalMap.get(e));return n}},w=new p([["a",1],["b",2],["c",3]]);exports.a = p;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkZTL76QDLjs = require('./chunk-ZTL76QDL.js');var _chunkWY62QD3Cjs = require('./chunk-WY62QD3C.js');var i=class t{constructor(e){this.value=e}isLeft(){return!1}isRight(){return!0}map(e){return new t(e(this.value))}flatMap(e){return e(this.value)}toOption(){return _chunkWY62QD3Cjs.d.call(void 0, this.value)}toList(){return new (0, _chunkWY62QD3Cjs.f)([this.value])}};var p=t=>new o(t),u= exports.d =t=>new i(t),h= exports.e =t=>{let e=parseInt(t,10);return isNaN(e)?p(new (0, _chunkZTL76QDLjs.a)(`${e}`)):u(e)};var o=class t{constructor(e){this.value=e}isLeft(){return!0}isRight(){return!1}map(e){return new t(this.value)}flatMap(e){return new t(this.value)}toOption(){return _chunkWY62QD3Cjs.e.call(void 0, )}toList(){return new _chunkWY62QD3Cjs.f}};exports.a = o; exports.b = i; exports.c = p; exports.d = u; exports.e = h;
@@ -0,0 +1 @@
1
+ var e=class extends Error{};export{e as a};
@@ -0,0 +1 @@
1
+ import{a as T}from"./chunk-U5EUM74A.mjs";var o=class t{get isEmpty(){return!0}get(){throw new Error("Cannot call get() on a None")}getOrElse(e){return e}orElse(e){return e}map(e){return new t}flatMap(e){return new t}reduce(e){return e(void 0,void 0)}foldLeft(e,n){return e}foldRight(e,n){return e}toList(){return new r}contains(e){return!1}get size(){return 0}};var u=t=>t?l(t):p(),l=t=>new a(t),p=()=>new o;var r=class t{constructor(e){T(this,"items");this.items=e?[...e]:[]}remove(e){let i=new t().items.indexOf(e);return this.removeAt(i)}contains(e){return this.items.indexOf(e)!==-1}get size(){return this.items.length}get isEmpty(){return this.items.length===0}get length(){return this.items.length}add(e){return new t([...this.items,e])}removeAt(e){if(e<0||e>=this.items.length)return this;let n=[...this.items.slice(0,e),...this.items.slice(e+1)];return new t(n)}get(e){return u(this.items[e])}toArray(){return this.items}map(e){return new t(this.items.map(e))}flatMap(e){let n=[];for(let i of this.items){let s=e(i);s instanceof t&&n.push(...s.items)}return new t(n)}reduce(e){return this.items.reduce(e,void 0)}foldLeft(e,n){return this.items.reduce(n,e)}foldRight(e,n){return this.items.reduceRight((i,s)=>n(s,i),e)}concat(e){return new t([...this.items,...e.items])}toString(){return`List(${this.items.toString()})`}};var O=t=>new r(t);var a=class t{constructor(e){this.value=e}get isEmpty(){return!1}get(){return this.value}getOrElse(e){return this.value}orElse(e){return this}map(e){return new t(e(this.value))}flatMap(e){return e(this.value)}reduce(e){return e(void 0,this.value)}foldLeft(e,n){return n(e,this.value)}foldRight(e,n){return n(this.value,e)}toList(){return new r([this.value])}contains(e){return!1}get size(){return 0}};export{a,o as b,u as c,l as d,p as e,r as f,O as g};
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1 @@
1
+ var t=Set;export{t as a};
File without changes
@@ -0,0 +1 @@
1
+ import{a as u}from"./chunk-377WQNCB.mjs";import{a as s}from"./chunk-VM6KG6UB.mjs";import{c as o}from"./chunk-CZKHN2SM.mjs";import{a as l}from"./chunk-U5EUM74A.mjs";var p=class i{constructor(e=[]){l(this,"internalMap");this.internalMap=new u(e)}add(e){return new i}remove(e){let n=new i([...this.internalMap.entries()]);return n.internalMap.delete(e[0]),n}contains(e){return this.internalMap.get(e[0])===e[1]}get size(){return this.internalMap.size}map(e){let n=[];for(let[t,r]of this.internalMap.entries())n.push([t,e(r)]);return new i(n)}flatMap(e){let n=[];for(let[t,r]of this.internalMap.entries()){let a=e(r);if(a instanceof i)for(let[c,K]of a.internalMap.entries())n.push([c,K])}return new i(n)}reduce(e){let n=Array.from(this.internalMap.entries());if(n.length===0)throw new Error("Cannot reduce empty map");{let t=new s(n[0]);for(let r=1;r<n.length;r++){let a=n[r];t=e(t,new s(a))}return t}}foldLeft(e,n){let t=e;for(let r of this.internalMap.entries())t=n(t,new s(r));return t}foldRight(e,n){let t=e,r=Array.from(this.internalMap.entries()).reverse();for(let a of r)t=n(new s(a),t);return t}get(e){return o(this.internalMap.get(e))}getOrElse(e,n){return o(this.internalMap.get(e)).getOrElse(n)}get isEmpty(){return this.internalMap.size===0}orElse(e,n){let t=o(this.internalMap.get(e));return n}},w=new p([["a",1],["b",2],["c",3]]);export{p as a};
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var t=class s{constructor(e){this.values=e}map(e){let r=e(this.values);return new s(r)}flatMap(e){return e(this.values)}get(e){return this.values[e]}getAs(e,r){let a=this.values[e];if(r){if(r(this.values))return a;throw new Error("Cannot cast tuple value")}else return a}toArray(){return this.values}};exports.a = t;
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1 @@
1
+ import{a as i}from"./chunk-HA5XD5KC.mjs";import{a as l}from"./chunk-U5EUM74A.mjs";var s=class a{constructor(e){l(this,"internalSet");this.internalSet=new i(e)}add(e){return new a([...this.internalSet,e])}remove(e){let t=new a;return t.internalSet.delete(e)?t:this}contains(e){return this.internalSet.has(e)}get size(){return this.internalSet.size}get isEmpty(){return this.internalSet.size===0}map(e){let t=new a;for(let n of this.internalSet)t.internalSet.add(e(n));return t}flatMap(e){let t=new a;for(let n of this.internalSet){let r=e(n);if(r instanceof a)for(let o of r.internalSet)t.internalSet.add(o)}return t}reduce(e){let t=Array.from(this.internalSet);if(t.length===0)throw new Error("Cannot reduce empty set");{let n=t[0];for(let r=1;r<t.length;r++)n=e(n,t[r]);return n}}foldLeft(e,t){let n=e;for(let r of this.internalSet)n=t(n,r);return n}foldRight(e,t){let n=e,r=Array.from(this.internalSet).reverse();for(let o of r)n=t(o,n);return n}has(e){return this.internalSet.has(e)}};export{s as a};
@@ -0,0 +1 @@
1
+ var d=Object.defineProperty;var e=(b,a,c)=>a in b?d(b,a,{enumerable:!0,configurable:!0,writable:!0,value:c}):b[a]=c;var f=(b,a,c)=>(e(b,typeof a!="symbol"?a+"":a,c),c);export{f as a};
@@ -0,0 +1 @@
1
+ var t=class s{constructor(e){this.values=e}map(e){let r=e(this.values);return new s(r)}flatMap(e){return e(this.values)}get(e){return this.values[e]}getAs(e,r){let a=this.values[e];if(r){if(r(this.values))return a;throw new Error("Cannot cast tuple value")}else return a}toArray(){return this.values}};export{t as a};
@@ -1 +1 @@
1
- var d=Object.defineProperty;var e=(b,a,c)=>a in b?d(b,a,{enumerable:!0,configurable:!0,writable:!0,value:c}):b[a]=c;var f=(b,a,c)=>(e(b,typeof a!="symbol"?a+"":a,c),c);export{f as a};
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var d=Object.defineProperty;var e=(b,a,c)=>a in b?d(b,a,{enumerable:!0,configurable:!0,writable:!0,value:c}):b[a]=c;var f=(b,a,c)=>(e(b,typeof a!="symbol"?a+"":a,c),c);exports.a = f;
@@ -0,0 +1 @@
1
+ import{a as n}from"./chunk-CFYIJKWF.mjs";import{d as a,e as s,f as r}from"./chunk-CZKHN2SM.mjs";var i=class t{constructor(e){this.value=e}isLeft(){return!1}isRight(){return!0}map(e){return new t(e(this.value))}flatMap(e){return e(this.value)}toOption(){return a(this.value)}toList(){return new r([this.value])}};var p=t=>new o(t),u=t=>new i(t),h=t=>{let e=parseInt(t,10);return isNaN(e)?p(new n(`${e}`)):u(e)};var o=class t{constructor(e){this.value=e}isLeft(){return!0}isRight(){return!1}map(e){return new t(this.value)}flatMap(e){return new t(this.value)}toOption(){return s()}toList(){return new r}};export{o as a,i as b,p as c,u as d,h as e};
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkVTKL7OQIjs = require('./chunk-VTKL7OQI.js');var o=class t{get isEmpty(){return!0}get(){throw new Error("Cannot call get() on a None")}getOrElse(e){return e}orElse(e){return e}map(e){return new t}flatMap(e){return new t}reduce(e){return e(void 0,void 0)}foldLeft(e,n){return e}foldRight(e,n){return e}toList(){return new r}contains(e){return!1}get size(){return 0}};var u=t=>t?l(t):p(),l= exports.d =t=>new a(t),p= exports.e =()=>new o;var r=class t{constructor(e){_chunkVTKL7OQIjs.a.call(void 0, this,"items");this.items=e?[...e]:[]}remove(e){let i=new t().items.indexOf(e);return this.removeAt(i)}contains(e){return this.items.indexOf(e)!==-1}get size(){return this.items.length}get isEmpty(){return this.items.length===0}get length(){return this.items.length}add(e){return new t([...this.items,e])}removeAt(e){if(e<0||e>=this.items.length)return this;let n=[...this.items.slice(0,e),...this.items.slice(e+1)];return new t(n)}get(e){return u(this.items[e])}toArray(){return this.items}map(e){return new t(this.items.map(e))}flatMap(e){let n=[];for(let i of this.items){let s=e(i);s instanceof t&&n.push(...s.items)}return new t(n)}reduce(e){return this.items.reduce(e,void 0)}foldLeft(e,n){return this.items.reduce(n,e)}foldRight(e,n){return this.items.reduceRight((i,s)=>n(s,i),e)}concat(e){return new t([...this.items,...e.items])}toString(){return`List(${this.items.toString()})`}};var O=t=>new r(t);var a=class t{constructor(e){this.value=e}get isEmpty(){return!1}get(){return this.value}getOrElse(e){return this.value}orElse(e){return this}map(e){return new t(e(this.value))}flatMap(e){return e(this.value)}reduce(e){return e(void 0,this.value)}foldLeft(e,n){return n(e,this.value)}foldRight(e,n){return n(this.value,e)}toList(){return new r([this.value])}contains(e){return!1}get size(){return 0}};exports.a = a; exports.b = o; exports.c = u; exports.d = l; exports.e = p; exports.f = r; exports.g = O;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk3VJERXBPjs = require('./chunk-3VJERXBP.js');var _chunkVTKL7OQIjs = require('./chunk-VTKL7OQI.js');var s=class a{constructor(e){_chunkVTKL7OQIjs.a.call(void 0, this,"internalSet");this.internalSet=new (0, _chunk3VJERXBPjs.a)(e)}add(e){return new a([...this.internalSet,e])}remove(e){let t=new a;return t.internalSet.delete(e)?t:this}contains(e){return this.internalSet.has(e)}get size(){return this.internalSet.size}get isEmpty(){return this.internalSet.size===0}map(e){let t=new a;for(let n of this.internalSet)t.internalSet.add(e(n));return t}flatMap(e){let t=new a;for(let n of this.internalSet){let r=e(n);if(r instanceof a)for(let o of r.internalSet)t.internalSet.add(o)}return t}reduce(e){let t=Array.from(this.internalSet);if(t.length===0)throw new Error("Cannot reduce empty set");{let n=t[0];for(let r=1;r<t.length;r++)n=e(n,t[r]);return n}}foldLeft(e,t){let n=e;for(let r of this.internalSet)n=t(n,r);return n}foldRight(e,t){let n=e,r=Array.from(this.internalSet).reverse();for(let o of r)n=t(o,n);return n}has(e){return this.internalSet.has(e)}};exports.a = s;
@@ -0,0 +1 @@
1
+ "use strict";
@@ -1 +1 @@
1
- var e=class extends Error{};export{e as a};
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var e=class extends Error{};exports.a = e;
@@ -0,0 +1,2 @@
1
+ export { Left } from '../index.mjs';
2
+ import '../error/ParseError.mjs';
@@ -1 +1 @@
1
- import{a}from"../chunk-MG5D2OQV.js";import"../chunk-ZTL76QDL.js";import"../chunk-LXNGDVCQ.js";import"../chunk-TZ5KQ47S.js";import"../chunk-OAC7TJZK.js";import"../chunk-UHHZ2CVW.js";import"../chunk-E4GBAXJ4.js";import"../chunk-VTKL7OQI.js";export{a as Left};
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk7XCWDOMWjs = require('../chunk-7XCWDOMW.js');require('../chunk-DOG6HMTN.js');require('../chunk-XNAZ5QU3.js');require('../chunk-3VJERXBP.js');require('../chunk-ZTL76QDL.js');require('../chunk-ZOH672YH.js');require('../chunk-7VFL33KH.js');require('../chunk-5VTXJIR3.js');require('../chunk-TVZBBVEV.js');require('../chunk-SSP26X5Y.js');require('../chunk-WY62QD3C.js');require('../chunk-VTKL7OQI.js');exports.Left = _chunk7XCWDOMWjs.a;
@@ -0,0 +1 @@
1
+ import{a}from"../chunk-VWFTFPZB.mjs";import"../chunk-72IAI5F4.mjs";import"../chunk-U237FVPP.mjs";import"../chunk-HA5XD5KC.mjs";import"../chunk-CFYIJKWF.mjs";import"../chunk-3OHJLCSR.mjs";import"../chunk-PKWOSOD7.mjs";import"../chunk-377WQNCB.mjs";import"../chunk-LBQXRIXP.mjs";import"../chunk-VM6KG6UB.mjs";import"../chunk-CZKHN2SM.mjs";import"../chunk-U5EUM74A.mjs";export{a as Left};
@@ -0,0 +1,2 @@
1
+ export { Right } from '../index.mjs';
2
+ import '../error/ParseError.mjs';
@@ -1 +1 @@
1
- import{b as a}from"../chunk-MG5D2OQV.js";import"../chunk-ZTL76QDL.js";import"../chunk-LXNGDVCQ.js";import"../chunk-TZ5KQ47S.js";import"../chunk-OAC7TJZK.js";import"../chunk-UHHZ2CVW.js";import"../chunk-E4GBAXJ4.js";import"../chunk-VTKL7OQI.js";export{a as Right};
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk7XCWDOMWjs = require('../chunk-7XCWDOMW.js');require('../chunk-DOG6HMTN.js');require('../chunk-XNAZ5QU3.js');require('../chunk-3VJERXBP.js');require('../chunk-ZTL76QDL.js');require('../chunk-ZOH672YH.js');require('../chunk-7VFL33KH.js');require('../chunk-5VTXJIR3.js');require('../chunk-TVZBBVEV.js');require('../chunk-SSP26X5Y.js');require('../chunk-WY62QD3C.js');require('../chunk-VTKL7OQI.js');exports.Right = _chunk7XCWDOMWjs.b;
@@ -0,0 +1 @@
1
+ import{b as a}from"../chunk-VWFTFPZB.mjs";import"../chunk-72IAI5F4.mjs";import"../chunk-U237FVPP.mjs";import"../chunk-HA5XD5KC.mjs";import"../chunk-CFYIJKWF.mjs";import"../chunk-3OHJLCSR.mjs";import"../chunk-PKWOSOD7.mjs";import"../chunk-377WQNCB.mjs";import"../chunk-LBQXRIXP.mjs";import"../chunk-VM6KG6UB.mjs";import"../chunk-CZKHN2SM.mjs";import"../chunk-U5EUM74A.mjs";export{a as Right};
@@ -1,2 +1,2 @@
1
- import '../error/ParseError.cjs';
2
- export { Either, Left, Right, left, parseNumber, right } from '../index.cjs';
1
+ import '../error/ParseError.mjs';
2
+ export { Either, Left, Right, left, parseNumber, right } from '../index.mjs';
@@ -1 +1 @@
1
- import{a,b,c,d,e}from"../chunk-MG5D2OQV.js";import"../chunk-ZTL76QDL.js";import"../chunk-LXNGDVCQ.js";import"../chunk-TZ5KQ47S.js";import"../chunk-OAC7TJZK.js";import"../chunk-UHHZ2CVW.js";import"../chunk-E4GBAXJ4.js";import"../chunk-VTKL7OQI.js";export{a as Left,b as Right,c as left,e as parseNumber,d as right};
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk7XCWDOMWjs = require('../chunk-7XCWDOMW.js');require('../chunk-DOG6HMTN.js');require('../chunk-XNAZ5QU3.js');require('../chunk-3VJERXBP.js');require('../chunk-ZTL76QDL.js');require('../chunk-ZOH672YH.js');require('../chunk-7VFL33KH.js');require('../chunk-5VTXJIR3.js');require('../chunk-TVZBBVEV.js');require('../chunk-SSP26X5Y.js');require('../chunk-WY62QD3C.js');require('../chunk-VTKL7OQI.js');exports.Left = _chunk7XCWDOMWjs.a; exports.Right = _chunk7XCWDOMWjs.b; exports.left = _chunk7XCWDOMWjs.c; exports.parseNumber = _chunk7XCWDOMWjs.e; exports.right = _chunk7XCWDOMWjs.d;
@@ -0,0 +1 @@
1
+ import{a,b,c,d,e}from"../chunk-VWFTFPZB.mjs";import"../chunk-72IAI5F4.mjs";import"../chunk-U237FVPP.mjs";import"../chunk-HA5XD5KC.mjs";import"../chunk-CFYIJKWF.mjs";import"../chunk-3OHJLCSR.mjs";import"../chunk-PKWOSOD7.mjs";import"../chunk-377WQNCB.mjs";import"../chunk-LBQXRIXP.mjs";import"../chunk-VM6KG6UB.mjs";import"../chunk-CZKHN2SM.mjs";import"../chunk-U5EUM74A.mjs";export{a as Left,b as Right,c as left,e as parseNumber,d as right};
@@ -1 +1 @@
1
- import{a}from"../chunk-ZTL76QDL.js";import"../chunk-VTKL7OQI.js";export{a as ParseError};
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkZTL76QDLjs = require('../chunk-ZTL76QDL.js');require('../chunk-VTKL7OQI.js');exports.ParseError = _chunkZTL76QDLjs.a;
@@ -0,0 +1 @@
1
+ import{a}from"../chunk-CFYIJKWF.mjs";import"../chunk-U5EUM74A.mjs";export{a as ParseError};
@@ -0,0 +1,212 @@
1
+ import { ParseError } from './error/ParseError.mjs';
2
+
3
+ declare class Left<L, R> implements Either<L, R> {
4
+ value: L;
5
+ constructor(value: L);
6
+ isLeft(): this is Left<L, R>;
7
+ isRight(): this is Right<L, R>;
8
+ map<U>(_f: (value: R) => U): Either<L, U>;
9
+ flatMap<U>(_f: (value: R) => Either<L, U>): Either<L, U>;
10
+ toOption(): Option<R>;
11
+ toList(): List<R>;
12
+ }
13
+
14
+ declare class Right<L, R> implements Either<L, R> {
15
+ value: R;
16
+ constructor(value: R);
17
+ isLeft(): this is Left<L, R>;
18
+ isRight(): this is Right<L, R>;
19
+ map<U>(f: (value: R) => U): Either<L, U>;
20
+ flatMap<U>(f: (value: R) => Either<L, U>): Either<L, U>;
21
+ toOption(): Option<R>;
22
+ toList(): List<R>;
23
+ }
24
+
25
+ interface Either<L, R> extends IFunctor<R> {
26
+ value: L | R;
27
+ isLeft(): this is Left<L, R>;
28
+ isRight(): this is Right<L, R>;
29
+ map<U>(f: (value: R) => U): Either<L, U>;
30
+ flatMap<U>(f: (value: R) => Either<L, U>): Either<L, U>;
31
+ toOption(): Option<R>;
32
+ toList(): List<R>;
33
+ }
34
+ declare const left: <L, R>(value: L) => Either<L, R>;
35
+ declare const right: <L, R>(value: R) => Either<L, R>;
36
+ declare const parseNumber: (input: string) => Either<ParseError, number>;
37
+
38
+ declare class Some<T extends Type> implements Option<T> {
39
+ private value;
40
+ constructor(value: T);
41
+ get isEmpty(): boolean;
42
+ get(): T;
43
+ getOrElse(defaultValue: T): T;
44
+ orElse(alternative: Option<T>): Option<T>;
45
+ map<U extends Type>(f: (value: T) => U): Option<U>;
46
+ flatMap<U extends Type>(f: (value: T) => Option<U>): Option<U>;
47
+ reduce<U>(f: (acc: U, value: T) => U): U;
48
+ foldLeft<U>(initialValue: U, f: (acc: U, value: T) => U): U;
49
+ foldRight<U>(initialValue: U, f: (value: T, acc: U) => U): U;
50
+ toList(): List<T>;
51
+ contains(value: T): boolean;
52
+ get size(): number;
53
+ }
54
+
55
+ declare class None<T extends Type> implements Option<T> {
56
+ get isEmpty(): boolean;
57
+ get(): T;
58
+ getOrElse(defaultValue: T): T;
59
+ orElse(alternative: Option<T>): Option<T>;
60
+ map<U extends Type>(f: (value: T) => U): Option<U>;
61
+ flatMap<U extends Type>(f: (value: T) => Option<U>): Option<U>;
62
+ reduce<U>(f: (acc: U, value: T) => U): U;
63
+ foldLeft<U>(initialValue: U, f: (acc: U, value: T) => U): U;
64
+ foldRight<U>(initialValue: U, f: (value: T, acc: U) => U): U;
65
+ toList(): List<T>;
66
+ contains(value: T): boolean;
67
+ get size(): number;
68
+ }
69
+
70
+ interface Option<T extends Type> extends IFunctor<T>, ITraversable<T> {
71
+ get(): T;
72
+ getOrElse(defaultValue: T): T;
73
+ orElse(alternative: Option<T>): Option<T>;
74
+ map<U extends Type>(f: (value: T) => U): Option<U>;
75
+ flatMap<U extends Type>(f: (value: T) => Option<U>): Option<U>;
76
+ toList(): List<T>;
77
+ }
78
+ declare const option: <T extends unknown>(value?: T | undefined) => Option<T>;
79
+ declare const some: <T extends unknown>(value: T) => Option<T>;
80
+ declare const none: <T extends unknown>() => Option<T>;
81
+
82
+ declare class List<T> implements IList<T> {
83
+ private readonly items;
84
+ constructor(iterable?: Iterable<T>);
85
+ readonly [n: number]: T;
86
+ remove(value: T): List<T>;
87
+ contains(value: T): boolean;
88
+ get size(): number;
89
+ get isEmpty(): boolean;
90
+ get length(): number;
91
+ add(item: T): List<T>;
92
+ removeAt(index: number): List<T>;
93
+ get(index: number): Option<T>;
94
+ toArray(): readonly T[];
95
+ map<U>(f: (value: T) => U): List<U>;
96
+ flatMap<U>(f: (value: T) => List<U>): List<U>;
97
+ reduce<U>(f: (acc: U, value: T) => U): U;
98
+ foldLeft<U>(initialValue: U, f: (acc: U, value: T) => U): U;
99
+ foldRight<U>(initialValue: U, f: (value: T, acc: U) => U): U;
100
+ concat(other: List<T>): List<T>;
101
+ toString(): string;
102
+ }
103
+
104
+ interface IList<T extends Type> extends IFunctor<T>, ICollection<T>, ArrayLike<T> {
105
+ map<U extends Type>(f: (value: T) => U): IList<U>;
106
+ flatMap<U extends Type>(f: (value: T) => IList<U>): IList<U>;
107
+ reduce<U extends Type>(f: (acc: U, value: T) => U): U;
108
+ foldLeft<U extends Type>(initialValue: U, f: (acc: U, value: T) => U): U;
109
+ foldRight<U extends Type>(initialValue: U, f: (value: T, acc: U) => U): U;
110
+ }
111
+ declare const list: <T extends unknown>(items: T[] | undefined) => List<T>;
112
+
113
+ declare class Tuple<T extends ArrayType> implements ITuple<T> {
114
+ private readonly values;
115
+ constructor(values: T);
116
+ map<U extends ArrayType>(f: (value: T) => U): Tuple<U>;
117
+ flatMap<U extends ArrayType>(f: (value: T) => Tuple<U>): Tuple<U>;
118
+ get(index: number): T[number];
119
+ getAs<U>(index: number, f?: (item: T) => boolean): U;
120
+ toArray(): T;
121
+ }
122
+
123
+ interface ITuple<T extends ArrayType> extends IArrayFunctor<T> {
124
+ get(index: number): T[number];
125
+ getAs<U>(index: number, f?: (item: T) => boolean): U;
126
+ map<U extends any[]>(f: (value: T) => U): ITuple<U>;
127
+ flatMap<U extends any[]>(f: (value: T) => ITuple<U>): ITuple<U>;
128
+ }
129
+
130
+ declare class Map<K, V> implements IMap<K, V> {
131
+ private internalMap;
132
+ constructor(entries?: [K, V][]);
133
+ add(item: K): Map<K, V>;
134
+ remove(value: ITuple<[K, V]>): Map<K, V>;
135
+ contains(value: ITuple<[K, V]>): boolean;
136
+ get size(): number;
137
+ map<U extends Type>(f: (value: V) => U): IMap<K, U>;
138
+ flatMap<U extends Type>(f: (value: V) => IMap<K, U>): IMap<K, U>;
139
+ reduce<U extends ITuple<[K, V]>>(f: (acc: U, value: ITuple<[K, V]>) => U): U;
140
+ foldLeft<U>(initialValue: U, f: (acc: U, value: ITuple<[K, V]>) => U): U;
141
+ foldRight<U>(initialValue: U, f: (value: ITuple<[K, V]>, acc: U) => U): U;
142
+ get(key: K): Option<V>;
143
+ getOrElse(key: K, defaultValue: V): V;
144
+ get isEmpty(): boolean;
145
+ orElse(key: K, alternative: Option<V>): Option<V>;
146
+ }
147
+
148
+ interface IMap<K, V> extends IFunctor<ITuple<[K, V]>>, ITraversable<ITuple<[K, V]>> {
149
+ map<U>(f: (value: any) => U): IMap<K, U>;
150
+ flatMap<U>(f: (value: any) => IMap<K, U>): IMap<K, U>;
151
+ reduce<U extends ITuple<[K, V]>>(f: (acc: U, value: ITuple<[K, V]>) => U): U;
152
+ foldLeft<U>(initialValue: U, f: (acc: U, value: ITuple<[K, V]>) => U): U;
153
+ foldRight<U>(initialValue: U, f: (value: ITuple<[K, V]>, acc: U) => U): U;
154
+ get(key: K): Option<V>;
155
+ getOrElse(key: K, defaultValue: V): V;
156
+ orElse(key: K, alternative: Option<V>): Option<V>;
157
+ }
158
+
159
+ declare class Set<T> implements ISet<T>, ICollection<T> {
160
+ private readonly internalSet;
161
+ constructor(iterable?: Iterable<T>);
162
+ add(value: T): Set<T>;
163
+ remove(value: T): Set<T>;
164
+ contains(value: T): boolean;
165
+ get size(): number;
166
+ get isEmpty(): boolean;
167
+ map<U>(f: (value: T) => U): ISet<U>;
168
+ flatMap<U>(f: (value: T) => ISet<U>): ISet<U>;
169
+ reduce<U>(f: (acc: U, value: T) => U): U;
170
+ foldLeft<U>(initialValue: U, f: (acc: U, value: T) => U): U;
171
+ foldRight<U>(initialValue: U, f: (value: T, acc: U) => U): U;
172
+ has(value: T): boolean;
173
+ }
174
+
175
+ interface ISet<T> extends IFunctor<T> {
176
+ map<U>(f: (value: T) => U): ISet<U>;
177
+ flatMap<U>(f: (value: T) => ISet<U>): ISet<U>;
178
+ reduce<U>(f: (acc: U, value: T) => U): U;
179
+ foldLeft<U>(initialValue: U, f: (acc: U, value: T) => U): U;
180
+ foldRight<U>(initialValue: U, f: (value: T, acc: U) => U): U;
181
+ has(value: T): boolean;
182
+ }
183
+
184
+ type SingleType = any;
185
+ type ArrayType = SingleType[];
186
+ type Type = SingleType | ArrayType;
187
+ interface AbstractFunctor<T extends Type> {
188
+ map(f: (value: T) => Type): AbstractFunctor<Type>;
189
+ flatMap(f: (value: T) => AbstractFunctor<Type>): AbstractFunctor<Type>;
190
+ }
191
+ interface IFunctor<T extends Type> extends AbstractFunctor<T> {
192
+ map<U extends Type>(f: (value: T) => U): IFunctor<U>;
193
+ flatMap<U extends Type>(f: (value: T) => IFunctor<U>): IFunctor<U>;
194
+ }
195
+ interface IArrayFunctor<T extends ArrayType> extends AbstractFunctor<T> {
196
+ map<U extends ArrayType>(f: (value: T) => U): IArrayFunctor<U>;
197
+ flatMap<U extends ArrayType>(f: (value: T) => IArrayFunctor<U>): IArrayFunctor<U>;
198
+ }
199
+ interface ITraversable<T extends Type> extends IFunctor<T> {
200
+ get size(): number;
201
+ get isEmpty(): boolean;
202
+ contains(value: T): boolean;
203
+ reduce<U extends T>(f: (acc: U, value: T) => U): U;
204
+ foldLeft<U extends Type>(initialValue: U, f: (acc: U, value: T) => U): U;
205
+ foldRight<U extends Type>(initialValue: U, f: (value: T, acc: U) => U): U;
206
+ }
207
+ interface ICollection<T extends Type> extends ITraversable<T> {
208
+ add(value: T): ITraversable<T>;
209
+ remove(value: T): ITraversable<T>;
210
+ }
211
+
212
+ export { AbstractFunctor, ArrayType, Either, IArrayFunctor, ICollection, IFunctor, IList, IMap, ISet, ITraversable, ITuple, Left, List, Map, None, Option, Right, Set, SingleType, Some, Tuple, Type, left, list, none, option, parseNumber, right, some };
package/dist/index.d.ts CHANGED
@@ -7,9 +7,6 @@ declare class Left<L, R> implements Either<L, R> {
7
7
  isRight(): this is Right<L, R>;
8
8
  map<U>(_f: (value: R) => U): Either<L, U>;
9
9
  flatMap<U>(_f: (value: R) => Either<L, U>): Either<L, U>;
10
- reduce<U>(_f: (acc: U, value: R) => U): IFunctor<U>;
11
- foldLeft<U>(initialValue: U, _f: (acc: U, value: R) => U): U;
12
- foldRight<U>(initialValue: U, _f: (value: R, acc: U) => U): U;
13
10
  toOption(): Option<R>;
14
11
  toList(): List<R>;
15
12
  }
@@ -21,9 +18,6 @@ declare class Right<L, R> implements Either<L, R> {
21
18
  isRight(): this is Right<L, R>;
22
19
  map<U>(f: (value: R) => U): Either<L, U>;
23
20
  flatMap<U>(f: (value: R) => Either<L, U>): Either<L, U>;
24
- reduce<U>(f: (acc: U, value: R) => U): IFunctor<U>;
25
- foldLeft<U>(initialValue: U, f: (acc: U, value: R) => U): U;
26
- foldRight<U>(initialValue: U, f: (value: R, acc: U) => U): U;
27
21
  toOption(): Option<R>;
28
22
  toList(): List<R>;
29
23
  }
@@ -41,72 +35,178 @@ declare const left: <L, R>(value: L) => Either<L, R>;
41
35
  declare const right: <L, R>(value: R) => Either<L, R>;
42
36
  declare const parseNumber: (input: string) => Either<ParseError, number>;
43
37
 
44
- declare class List<T> implements IFunctor<T> {
45
- private readonly items;
46
- constructor(items?: T[]);
47
- get length(): number;
48
- add(item: T): List<T>;
49
- removeAt(index: number): List<T>;
50
- get(index: number): T | undefined;
51
- toArray(): readonly T[];
52
- map<U>(f: (value: T) => U): List<U>;
53
- flatMap<U>(f: (value: T) => List<U>): List<U>;
54
- reduce<U>(f: (acc: U, value: T) => U): List<U>;
55
- foldLeft<U>(initialValue: U, f: (acc: U, value: T) => U): U;
56
- foldRight<U>(initialValue: U, f: (value: T, acc: U) => U): U;
57
- concat(other: List<T>): List<T>;
58
- toString(): string;
59
- }
60
-
61
- declare const list: <T>(items: T[] | undefined) => List<T>;
62
-
63
- declare class Some<T> implements Option<T> {
38
+ declare class Some<T extends Type> implements Option<T> {
64
39
  private value;
65
40
  constructor(value: T);
66
- isEmpty(): boolean;
41
+ get isEmpty(): boolean;
67
42
  get(): T;
68
43
  getOrElse(defaultValue: T): T;
69
44
  orElse(alternative: Option<T>): Option<T>;
70
- map<U>(f: (value: T) => U): Option<U>;
71
- flatMap<U>(f: (value: T) => Option<U>): Option<U>;
72
- reduce<U>(f: (acc: U, value: T) => U): Option<U>;
45
+ map<U extends Type>(f: (value: T) => U): Option<U>;
46
+ flatMap<U extends Type>(f: (value: T) => Option<U>): Option<U>;
47
+ reduce<U>(f: (acc: U, value: T) => U): U;
73
48
  foldLeft<U>(initialValue: U, f: (acc: U, value: T) => U): U;
74
49
  foldRight<U>(initialValue: U, f: (value: T, acc: U) => U): U;
75
50
  toList(): List<T>;
51
+ contains(value: T): boolean;
52
+ get size(): number;
76
53
  }
77
54
 
78
- declare class None<T> implements Option<T> {
79
- isEmpty(): boolean;
55
+ declare class None<T extends Type> implements Option<T> {
56
+ get isEmpty(): boolean;
80
57
  get(): T;
81
58
  getOrElse(defaultValue: T): T;
82
59
  orElse(alternative: Option<T>): Option<T>;
83
- map<U>(f: (value: T) => U): Option<U>;
84
- flatMap<U>(f: (value: T) => Option<U>): Option<U>;
85
- reduce<U>(f: (acc: U, value: T) => U): Option<U>;
60
+ map<U extends Type>(f: (value: T) => U): Option<U>;
61
+ flatMap<U extends Type>(f: (value: T) => Option<U>): Option<U>;
62
+ reduce<U>(f: (acc: U, value: T) => U): U;
86
63
  foldLeft<U>(initialValue: U, f: (acc: U, value: T) => U): U;
87
64
  foldRight<U>(initialValue: U, f: (value: T, acc: U) => U): U;
88
65
  toList(): List<T>;
66
+ contains(value: T): boolean;
67
+ get size(): number;
89
68
  }
90
69
 
91
- interface Option<T> extends IFunctor<T> {
92
- isEmpty(): boolean;
70
+ interface Option<T extends Type> extends IFunctor<T>, ITraversable<T> {
93
71
  get(): T;
94
72
  getOrElse(defaultValue: T): T;
95
73
  orElse(alternative: Option<T>): Option<T>;
96
- map<U>(f: (value: T) => U): Option<U>;
97
- flatMap<U>(f: (value: T) => Option<U>): Option<U>;
74
+ map<U extends Type>(f: (value: T) => U): Option<U>;
75
+ flatMap<U extends Type>(f: (value: T) => Option<U>): Option<U>;
98
76
  toList(): List<T>;
99
77
  }
100
- declare const option: <T>(value?: T | undefined) => Option<T>;
101
- declare const some: <T>(value: T) => Option<T>;
102
- declare const none: <T>() => Option<T>;
78
+ declare const option: <T extends unknown>(value?: T | undefined) => Option<T>;
79
+ declare const some: <T extends unknown>(value: T) => Option<T>;
80
+ declare const none: <T extends unknown>() => Option<T>;
103
81
 
104
- interface IFunctor<T> {
105
- map<U>(f: (value: T) => U): IFunctor<U>;
106
- flatMap<U>(f: (value: T) => IFunctor<U>): IFunctor<U>;
107
- reduce<U>(f: (acc: U, value: T) => U): IFunctor<U>;
82
+ declare class List<T> implements IList<T> {
83
+ private readonly items;
84
+ constructor(iterable?: Iterable<T>);
85
+ readonly [n: number]: T;
86
+ remove(value: T): List<T>;
87
+ contains(value: T): boolean;
88
+ get size(): number;
89
+ get isEmpty(): boolean;
90
+ get length(): number;
91
+ add(item: T): List<T>;
92
+ removeAt(index: number): List<T>;
93
+ get(index: number): Option<T>;
94
+ toArray(): readonly T[];
95
+ map<U>(f: (value: T) => U): List<U>;
96
+ flatMap<U>(f: (value: T) => List<U>): List<U>;
97
+ reduce<U>(f: (acc: U, value: T) => U): U;
108
98
  foldLeft<U>(initialValue: U, f: (acc: U, value: T) => U): U;
109
99
  foldRight<U>(initialValue: U, f: (value: T, acc: U) => U): U;
100
+ concat(other: List<T>): List<T>;
101
+ toString(): string;
102
+ }
103
+
104
+ interface IList<T extends Type> extends IFunctor<T>, ICollection<T>, ArrayLike<T> {
105
+ map<U extends Type>(f: (value: T) => U): IList<U>;
106
+ flatMap<U extends Type>(f: (value: T) => IList<U>): IList<U>;
107
+ reduce<U extends Type>(f: (acc: U, value: T) => U): U;
108
+ foldLeft<U extends Type>(initialValue: U, f: (acc: U, value: T) => U): U;
109
+ foldRight<U extends Type>(initialValue: U, f: (value: T, acc: U) => U): U;
110
+ }
111
+ declare const list: <T extends unknown>(items: T[] | undefined) => List<T>;
112
+
113
+ declare class Tuple<T extends ArrayType> implements ITuple<T> {
114
+ private readonly values;
115
+ constructor(values: T);
116
+ map<U extends ArrayType>(f: (value: T) => U): Tuple<U>;
117
+ flatMap<U extends ArrayType>(f: (value: T) => Tuple<U>): Tuple<U>;
118
+ get(index: number): T[number];
119
+ getAs<U>(index: number, f?: (item: T) => boolean): U;
120
+ toArray(): T;
121
+ }
122
+
123
+ interface ITuple<T extends ArrayType> extends IArrayFunctor<T> {
124
+ get(index: number): T[number];
125
+ getAs<U>(index: number, f?: (item: T) => boolean): U;
126
+ map<U extends any[]>(f: (value: T) => U): ITuple<U>;
127
+ flatMap<U extends any[]>(f: (value: T) => ITuple<U>): ITuple<U>;
128
+ }
129
+
130
+ declare class Map<K, V> implements IMap<K, V> {
131
+ private internalMap;
132
+ constructor(entries?: [K, V][]);
133
+ add(item: K): Map<K, V>;
134
+ remove(value: ITuple<[K, V]>): Map<K, V>;
135
+ contains(value: ITuple<[K, V]>): boolean;
136
+ get size(): number;
137
+ map<U extends Type>(f: (value: V) => U): IMap<K, U>;
138
+ flatMap<U extends Type>(f: (value: V) => IMap<K, U>): IMap<K, U>;
139
+ reduce<U extends ITuple<[K, V]>>(f: (acc: U, value: ITuple<[K, V]>) => U): U;
140
+ foldLeft<U>(initialValue: U, f: (acc: U, value: ITuple<[K, V]>) => U): U;
141
+ foldRight<U>(initialValue: U, f: (value: ITuple<[K, V]>, acc: U) => U): U;
142
+ get(key: K): Option<V>;
143
+ getOrElse(key: K, defaultValue: V): V;
144
+ get isEmpty(): boolean;
145
+ orElse(key: K, alternative: Option<V>): Option<V>;
146
+ }
147
+
148
+ interface IMap<K, V> extends IFunctor<ITuple<[K, V]>>, ITraversable<ITuple<[K, V]>> {
149
+ map<U>(f: (value: any) => U): IMap<K, U>;
150
+ flatMap<U>(f: (value: any) => IMap<K, U>): IMap<K, U>;
151
+ reduce<U extends ITuple<[K, V]>>(f: (acc: U, value: ITuple<[K, V]>) => U): U;
152
+ foldLeft<U>(initialValue: U, f: (acc: U, value: ITuple<[K, V]>) => U): U;
153
+ foldRight<U>(initialValue: U, f: (value: ITuple<[K, V]>, acc: U) => U): U;
154
+ get(key: K): Option<V>;
155
+ getOrElse(key: K, defaultValue: V): V;
156
+ orElse(key: K, alternative: Option<V>): Option<V>;
157
+ }
158
+
159
+ declare class Set<T> implements ISet<T>, ICollection<T> {
160
+ private readonly internalSet;
161
+ constructor(iterable?: Iterable<T>);
162
+ add(value: T): Set<T>;
163
+ remove(value: T): Set<T>;
164
+ contains(value: T): boolean;
165
+ get size(): number;
166
+ get isEmpty(): boolean;
167
+ map<U>(f: (value: T) => U): ISet<U>;
168
+ flatMap<U>(f: (value: T) => ISet<U>): ISet<U>;
169
+ reduce<U>(f: (acc: U, value: T) => U): U;
170
+ foldLeft<U>(initialValue: U, f: (acc: U, value: T) => U): U;
171
+ foldRight<U>(initialValue: U, f: (value: T, acc: U) => U): U;
172
+ has(value: T): boolean;
173
+ }
174
+
175
+ interface ISet<T> extends IFunctor<T> {
176
+ map<U>(f: (value: T) => U): ISet<U>;
177
+ flatMap<U>(f: (value: T) => ISet<U>): ISet<U>;
178
+ reduce<U>(f: (acc: U, value: T) => U): U;
179
+ foldLeft<U>(initialValue: U, f: (acc: U, value: T) => U): U;
180
+ foldRight<U>(initialValue: U, f: (value: T, acc: U) => U): U;
181
+ has(value: T): boolean;
182
+ }
183
+
184
+ type SingleType = any;
185
+ type ArrayType = SingleType[];
186
+ type Type = SingleType | ArrayType;
187
+ interface AbstractFunctor<T extends Type> {
188
+ map(f: (value: T) => Type): AbstractFunctor<Type>;
189
+ flatMap(f: (value: T) => AbstractFunctor<Type>): AbstractFunctor<Type>;
190
+ }
191
+ interface IFunctor<T extends Type> extends AbstractFunctor<T> {
192
+ map<U extends Type>(f: (value: T) => U): IFunctor<U>;
193
+ flatMap<U extends Type>(f: (value: T) => IFunctor<U>): IFunctor<U>;
194
+ }
195
+ interface IArrayFunctor<T extends ArrayType> extends AbstractFunctor<T> {
196
+ map<U extends ArrayType>(f: (value: T) => U): IArrayFunctor<U>;
197
+ flatMap<U extends ArrayType>(f: (value: T) => IArrayFunctor<U>): IArrayFunctor<U>;
198
+ }
199
+ interface ITraversable<T extends Type> extends IFunctor<T> {
200
+ get size(): number;
201
+ get isEmpty(): boolean;
202
+ contains(value: T): boolean;
203
+ reduce<U extends T>(f: (acc: U, value: T) => U): U;
204
+ foldLeft<U extends Type>(initialValue: U, f: (acc: U, value: T) => U): U;
205
+ foldRight<U extends Type>(initialValue: U, f: (value: T, acc: U) => U): U;
206
+ }
207
+ interface ICollection<T extends Type> extends ITraversable<T> {
208
+ add(value: T): ITraversable<T>;
209
+ remove(value: T): ITraversable<T>;
110
210
  }
111
211
 
112
- export { Either, IFunctor, Left, List, None, Option, Right, Some, left, list, none, option, parseNumber, right, some };
212
+ export { AbstractFunctor, ArrayType, Either, IArrayFunctor, ICollection, IFunctor, IList, IMap, ISet, ITraversable, ITuple, Left, List, Map, None, Option, Right, Set, SingleType, Some, Tuple, Type, left, list, none, option, parseNumber, right, some };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{a,b,c,d,e}from"./chunk-MG5D2OQV.js";import"./chunk-ZTL76QDL.js";import{a as j,b as k,c as l}from"./chunk-LXNGDVCQ.js";import{a as i}from"./chunk-TZ5KQ47S.js";import{a as h}from"./chunk-OAC7TJZK.js";import{a as g}from"./chunk-UHHZ2CVW.js";import{a as f}from"./chunk-E4GBAXJ4.js";import"./chunk-VTKL7OQI.js";export{a as Left,f as List,i as None,b as Right,h as Some,c as left,g as list,l as none,j as option,e as parseNumber,d as right,k as some};
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk7XCWDOMWjs = require('./chunk-7XCWDOMW.js');require('./chunk-DOG6HMTN.js');var _chunkXNAZ5QU3js = require('./chunk-XNAZ5QU3.js');require('./chunk-3VJERXBP.js');require('./chunk-ZTL76QDL.js');require('./chunk-ZOH672YH.js');var _chunk7VFL33KHjs = require('./chunk-7VFL33KH.js');require('./chunk-5VTXJIR3.js');require('./chunk-TVZBBVEV.js');var _chunkSSP26X5Yjs = require('./chunk-SSP26X5Y.js');var _chunkWY62QD3Cjs = require('./chunk-WY62QD3C.js');require('./chunk-VTKL7OQI.js');exports.Left = _chunk7XCWDOMWjs.a; exports.List = _chunkWY62QD3Cjs.f; exports.Map = _chunk7VFL33KHjs.a; exports.None = _chunkWY62QD3Cjs.b; exports.Right = _chunk7XCWDOMWjs.b; exports.Set = _chunkXNAZ5QU3js.a; exports.Some = _chunkWY62QD3Cjs.a; exports.Tuple = _chunkSSP26X5Yjs.a; exports.left = _chunk7XCWDOMWjs.c; exports.list = _chunkWY62QD3Cjs.g; exports.none = _chunkWY62QD3Cjs.e; exports.option = _chunkWY62QD3Cjs.c; exports.parseNumber = _chunk7XCWDOMWjs.e; exports.right = _chunk7XCWDOMWjs.d; exports.some = _chunkWY62QD3Cjs.d;
package/dist/index.mjs ADDED
@@ -0,0 +1 @@
1
+ import{a,b,c,d,e}from"./chunk-VWFTFPZB.mjs";import"./chunk-72IAI5F4.mjs";import{a as o}from"./chunk-U237FVPP.mjs";import"./chunk-HA5XD5KC.mjs";import"./chunk-CFYIJKWF.mjs";import"./chunk-3OHJLCSR.mjs";import{a as n}from"./chunk-PKWOSOD7.mjs";import"./chunk-377WQNCB.mjs";import"./chunk-LBQXRIXP.mjs";import{a as m}from"./chunk-VM6KG6UB.mjs";import{a as f,b as g,c as h,d as i,e as j,f as k,g as l}from"./chunk-CZKHN2SM.mjs";import"./chunk-U5EUM74A.mjs";export{a as Left,k as List,n as Map,g as None,b as Right,o as Set,f as Some,m as Tuple,c as left,l as list,j as none,h as option,e as parseNumber,d as right,i as some};
@@ -0,0 +1,2 @@
1
+ export { List } from '../index.mjs';
2
+ import '../error/ParseError.mjs';
package/dist/list/List.js CHANGED
@@ -1 +1 @@
1
- import{a}from"../chunk-E4GBAXJ4.js";import"../chunk-VTKL7OQI.js";export{a as List};
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkWY62QD3Cjs = require('../chunk-WY62QD3C.js');require('../chunk-VTKL7OQI.js');exports.List = _chunkWY62QD3Cjs.f;