rambda 9.4.1 → 10.0.0-alpha.0

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 (257) hide show
  1. package/CHANGELOG.md +84 -1
  2. package/README.md +4661 -13439
  3. package/dist/rambda.esm.js +1487 -0
  4. package/dist/rambda.js +952 -2113
  5. package/dist/rambda.umd.js +1595 -1
  6. package/immutable.d.ts +1060 -1295
  7. package/index.d.ts +1060 -1295
  8. package/package.json +95 -102
  9. package/rambda.js +10 -138
  10. package/src/_internals/baseSlice.js +5 -7
  11. package/src/_internals/createPath.js +4 -6
  12. package/src/_internals/includes.js +8 -4
  13. package/src/_internals/set.js +11 -11
  14. package/src/all.js +8 -6
  15. package/src/allPass.js +4 -4
  16. package/src/any.js +10 -10
  17. package/src/anyPass.js +4 -4
  18. package/src/append.js +4 -6
  19. package/src/checkObjectWithSpec.js +16 -0
  20. package/src/complement.js +1 -1
  21. package/src/concat.js +2 -4
  22. package/src/count.js +5 -4
  23. package/src/countBy.js +6 -7
  24. package/src/defaultTo.js +4 -6
  25. package/src/drop.js +4 -2
  26. package/src/dropLast.js +4 -8
  27. package/src/dropLastWhile.js +17 -26
  28. package/src/dropWhile.js +14 -22
  29. package/src/eqBy.js +3 -8
  30. package/src/eqProps.js +3 -8
  31. package/src/equals.js +99 -58
  32. package/src/evolve.js +19 -52
  33. package/src/excludes.js +5 -0
  34. package/src/filter.js +10 -40
  35. package/src/filterObject.js +13 -0
  36. package/src/find.js +6 -6
  37. package/src/findIndex.js +5 -5
  38. package/src/findLast.js +6 -6
  39. package/src/findLastIndex.js +5 -5
  40. package/src/flatMap.js +3 -0
  41. package/src/flatten.js +5 -5
  42. package/src/groupBy.js +9 -7
  43. package/src/head.js +5 -3
  44. package/src/includes.js +10 -7
  45. package/src/indexOf.js +2 -6
  46. package/src/init.js +6 -8
  47. package/src/innerJoin.js +11 -19
  48. package/src/intersection.js +2 -4
  49. package/src/intersperse.js +7 -7
  50. package/src/join.js +2 -4
  51. package/src/last.js +4 -4
  52. package/src/lastIndexOf.js +2 -6
  53. package/src/map.js +9 -49
  54. package/src/mapAsync.js +11 -0
  55. package/src/mapObject.js +18 -0
  56. package/src/mapObjectAsync.js +10 -0
  57. package/src/match.js +6 -6
  58. package/src/maxBy.js +2 -8
  59. package/src/merge.js +4 -1
  60. package/src/mergeTypes.js +3 -0
  61. package/src/minBy.js +2 -8
  62. package/src/modifyPath.js +22 -25
  63. package/src/none.js +8 -6
  64. package/src/objOf.js +2 -6
  65. package/src/omit.js +26 -11
  66. package/src/partition.js +20 -23
  67. package/src/path.js +14 -15
  68. package/src/pick.js +15 -15
  69. package/src/pipe.js +70 -13
  70. package/src/pipeAsync.js +10 -0
  71. package/src/pluck.js +7 -9
  72. package/src/prepend.js +2 -6
  73. package/src/prop.js +2 -10
  74. package/src/propEq.js +8 -10
  75. package/src/propOr.js +7 -8
  76. package/src/propSatisfies.js +2 -7
  77. package/src/range.js +3 -3
  78. package/src/reduce.js +15 -30
  79. package/src/reject.js +2 -4
  80. package/src/replace.js +2 -8
  81. package/src/replaceItemAtIndex.js +15 -0
  82. package/src/sort.js +2 -4
  83. package/src/sortBy.js +3 -3
  84. package/src/sortWith.js +9 -13
  85. package/src/split.js +2 -4
  86. package/src/splitEvery.js +6 -8
  87. package/src/symmetricDifference.js +5 -8
  88. package/src/tail.js +2 -2
  89. package/src/take.js +11 -9
  90. package/src/takeLast.js +14 -14
  91. package/src/takeLastWhile.js +19 -20
  92. package/src/takeWhile.js +12 -21
  93. package/src/tap.js +3 -3
  94. package/src/test.js +2 -8
  95. package/src/tryCatch.js +5 -14
  96. package/src/type.js +6 -5
  97. package/src/union.js +10 -8
  98. package/src/uniq.js +2 -2
  99. package/src/uniqBy.js +5 -6
  100. package/src/uniqWith.js +10 -14
  101. package/src/unless.js +7 -9
  102. package/src/unwind.js +6 -14
  103. package/src/update.js +8 -11
  104. package/src/when.js +7 -9
  105. package/src/zip.js +8 -8
  106. package/src/zipWith.js +5 -7
  107. package/src/F.js +0 -3
  108. package/src/T.js +0 -3
  109. package/src/_internals/_arity.js +0 -64
  110. package/src/_internals/compare.js +0 -3
  111. package/src/_internals/constants.js +0 -1
  112. package/src/_internals/createPathInput.js +0 -7
  113. package/src/_internals/isFalsy.js +0 -13
  114. package/src/_internals/isInteger.js +0 -10
  115. package/src/_internals/isIterable.js +0 -5
  116. package/src/_internals/isObject.js +0 -5
  117. package/src/_internals/isTruthy.js +0 -13
  118. package/src/_internals/objectIs.js +0 -9
  119. package/src/_internals/utils.js +0 -21
  120. package/src/add.js +0 -5
  121. package/src/addIndex.js +0 -23
  122. package/src/addIndexRight.js +0 -9
  123. package/src/adjust.js +0 -16
  124. package/src/always.js +0 -3
  125. package/src/and.js +0 -5
  126. package/src/ap.js +0 -7
  127. package/src/aperture.js +0 -15
  128. package/src/apply.js +0 -7
  129. package/src/applySpec.js +0 -132
  130. package/src/applyTo.js +0 -7
  131. package/src/ascend.js +0 -23
  132. package/src/assoc.js +0 -11
  133. package/src/assocPath.js +0 -46
  134. package/src/binary.js +0 -5
  135. package/src/bind.js +0 -9
  136. package/src/both.js +0 -5
  137. package/src/call.js +0 -1
  138. package/src/chain.js +0 -7
  139. package/src/clamp.js +0 -15
  140. package/src/clone.js +0 -18
  141. package/src/collectBy.js +0 -27
  142. package/src/comparator.js +0 -5
  143. package/src/compose.js +0 -9
  144. package/src/composeWith.js +0 -33
  145. package/src/cond.js +0 -14
  146. package/src/converge.js +0 -18
  147. package/src/curry.js +0 -7
  148. package/src/curryN.js +0 -40
  149. package/src/dec.js +0 -1
  150. package/src/descend.js +0 -17
  151. package/src/difference.js +0 -8
  152. package/src/differenceWith.js +0 -20
  153. package/src/dissoc.js +0 -13
  154. package/src/dissocPath.js +0 -47
  155. package/src/divide.js +0 -5
  156. package/src/dropRepeats.js +0 -20
  157. package/src/dropRepeatsBy.js +0 -21
  158. package/src/dropRepeatsWith.js +0 -28
  159. package/src/either.js +0 -8
  160. package/src/empty.js +0 -15
  161. package/src/endsWith.js +0 -23
  162. package/src/flip.js +0 -23
  163. package/src/forEach.js +0 -19
  164. package/src/forEachObjIndexed.js +0 -24
  165. package/src/fromPairs.js +0 -6
  166. package/src/groupWith.js +0 -46
  167. package/src/gt.js +0 -6
  168. package/src/gte.js +0 -6
  169. package/src/has.js +0 -7
  170. package/src/hasIn.js +0 -9
  171. package/src/hasPath.js +0 -9
  172. package/src/identical.js +0 -7
  173. package/src/identity.js +0 -3
  174. package/src/ifElse.js +0 -17
  175. package/src/inc.js +0 -1
  176. package/src/indexBy.js +0 -29
  177. package/src/insert.js +0 -11
  178. package/src/insertAll.js +0 -7
  179. package/src/is.js +0 -8
  180. package/src/isEmpty.js +0 -18
  181. package/src/isNil.js +0 -3
  182. package/src/isNotEmpty.js +0 -5
  183. package/src/isNotNil.js +0 -3
  184. package/src/isPromise.js +0 -5
  185. package/src/juxt.js +0 -3
  186. package/src/keys.js +0 -3
  187. package/src/length.js +0 -8
  188. package/src/lens.js +0 -7
  189. package/src/lensIndex.js +0 -7
  190. package/src/lensPath.js +0 -7
  191. package/src/lensProp.js +0 -7
  192. package/src/lt.js +0 -6
  193. package/src/lte.js +0 -6
  194. package/src/mathMod.js +0 -8
  195. package/src/max.js +0 -5
  196. package/src/maybe.js +0 -13
  197. package/src/mean.js +0 -5
  198. package/src/median.js +0 -17
  199. package/src/mergeAll.js +0 -11
  200. package/src/mergeDeepLeft.js +0 -5
  201. package/src/mergeDeepRight.js +0 -24
  202. package/src/mergeLeft.js +0 -7
  203. package/src/mergeRight.js +0 -8
  204. package/src/mergeWith.js +0 -25
  205. package/src/min.js +0 -5
  206. package/src/modify.js +0 -23
  207. package/src/modulo.js +0 -5
  208. package/src/move.js +0 -19
  209. package/src/multiply.js +0 -5
  210. package/src/negate.js +0 -3
  211. package/src/not.js +0 -3
  212. package/src/nth.js +0 -9
  213. package/src/of.js +0 -3
  214. package/src/on.js +0 -16
  215. package/src/once.js +0 -24
  216. package/src/or.js +0 -5
  217. package/src/over.js +0 -14
  218. package/src/partial.js +0 -17
  219. package/src/partialObject.js +0 -5
  220. package/src/pathEq.js +0 -11
  221. package/src/pathOr.js +0 -11
  222. package/src/pathSatisfies.js +0 -9
  223. package/src/paths.js +0 -9
  224. package/src/pickAll.js +0 -23
  225. package/src/pickBy.js +0 -11
  226. package/src/product.js +0 -4
  227. package/src/propIs.js +0 -10
  228. package/src/props.js +0 -13
  229. package/src/reduceBy.js +0 -29
  230. package/src/removeIndex.js +0 -7
  231. package/src/repeat.js +0 -7
  232. package/src/reverse.js +0 -9
  233. package/src/set.js +0 -9
  234. package/src/slice.js +0 -9
  235. package/src/splitAt.js +0 -21
  236. package/src/splitWhen.js +0 -25
  237. package/src/startsWith.js +0 -23
  238. package/src/subtract.js +0 -5
  239. package/src/sum.js +0 -3
  240. package/src/swap.js +0 -42
  241. package/src/times.js +0 -12
  242. package/src/toLower.js +0 -3
  243. package/src/toPairs.js +0 -3
  244. package/src/toString.js +0 -3
  245. package/src/toUpper.js +0 -3
  246. package/src/transpose.js +0 -10
  247. package/src/trim.js +0 -3
  248. package/src/unapply.js +0 -5
  249. package/src/unnest.js +0 -9
  250. package/src/values.js +0 -6
  251. package/src/view.js +0 -10
  252. package/src/where.js +0 -15
  253. package/src/whereAny.js +0 -12
  254. package/src/whereEq.js +0 -14
  255. package/src/without.js +0 -15
  256. package/src/xor.js +0 -5
  257. package/src/zipObj.js +0 -13
@@ -1 +1,1595 @@
1
- !function(n,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r((n="undefined"!=typeof globalThis?globalThis:n||self).R={})}(this,function(n){function a(n,l){switch(n){case 0:return function(){return l.apply(this,arguments)};case 1:return function(n){return l.apply(this,arguments)};case 2:return function(n,r){return l.apply(this,arguments)};case 3:return function(n,r,t){return l.apply(this,arguments)};case 4:return function(n,r,t,e){return l.apply(this,arguments)};case 5:return function(n,r,t,e,u){return l.apply(this,arguments)};case 6:return function(n,r,t,e,u,i){return l.apply(this,arguments)};case 7:return function(n,r,t,e,u,i,o){return l.apply(this,arguments)};case 8:return function(n,r,t,e,u,i,o,c){return l.apply(this,arguments)};case 9:return function(n,r,t,e,u,i,o,c,f){return l.apply(this,arguments)};default:return function(n,r,t,e,u,i,o,c,f,a){return l.apply(this,arguments)}}}function t(r,n){if(1===arguments.length)return function(n){return t(r,n)};if(10<r)throw Error("First argument to _arity must be a non-negative integer no greater than ten");return a(r,function i(o,c,f){return function(){for(var n=0,r=0,t=c.length,e=arguments.length,u=Array(t+e);n<t;)u[n]=c[n],n++;for(;r<e;)u[t+r]=arguments[r],r++;return u.length<o?a(o-u.length,i(o,u,f)):f.apply(this,u)}}(r,[],n))}function q(u){var i=1<arguments.length&&void 0!==arguments[1]?arguments[1]:function(){return 0},o=2<arguments.length&&void 0!==arguments[2]?arguments[2]:function(n){return n+1};return t(u.length,function(){var r=arguments[0],t=arguments[arguments.length-1],e=i(t.length),n=Array.prototype.slice.call(arguments,0);return n[0]=function(){var n=r.apply(this,function(n,r){for(var t=(n=n||[]).length,e=(r=r||[]).length,u=[],i=0;i<t;)u[u.length]=n[i],i+=1;for(i=0;i<e;)u[u.length]=r[i],i+=1;return u}(arguments,[e,t]));return e=o(e),n},u.apply(this,n)})}function l(n){return Array.prototype.slice.call(n)}function e(n,r){for(var t=0,e=Array(r=null!=r&&r<=n.length?r:n.length);t<r;t++)e[t]=n[t];return e}function C(n,r){if(!(n instanceof r))throw new TypeError("Cannot call a class as a function")}function U(n,r){if(r)for(var t=n.prototype,e=r,u=0;u<e.length;u++){var i=e[u];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,L(i.key),i)}return Object.defineProperty(n,"prototype",{writable:!1}),n}function c(n,r,t){return(r=L(r))in n?Object.defineProperty(n,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[r]=t,n}function D(r,n){var t,e=Object.keys(r);return Object.getOwnPropertySymbols&&(t=Object.getOwnPropertySymbols(r),n&&(t=t.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),e.push.apply(e,t)),e}function f(r){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?D(Object(t),!0).forEach(function(n){c(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):D(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}function o(n,r){return function(n){if(Array.isArray(n))return n}(n)||function(n,r){var t=null==n?null:"undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(null!=t){var e,u,i,o,c=[],f=!0,a=!1;try{if(i=(t=t.call(n)).next,0!==r)for(;!(f=(e=i.call(t)).done)&&(c.push(e.value),c.length!==r);f=!0);}catch(n){a=!0,u=n}finally{try{if(!f&&null!=t.return&&Object(o=t.return())!==o)return}finally{if(a)throw u}}return c}}(n,r)||z(n,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function h(n){return function(n){if(Array.isArray(n))return e(n)}(n)||function(n){if("undefined"!=typeof Symbol&&null!=n[Symbol.iterator]||null!=n["@@iterator"])return Array.from(n)}(n)||z(n)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function L(n){n=function(n,r){if("object"!=typeof n||!n)return n;var t=n[Symbol.toPrimitive];if(void 0===t)return("string"===r?String:Number)(n);if("object"!=typeof(t=t.call(n,r||"default")))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}(n,"string");return"symbol"==typeof n?n:n+""}function s(n){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n})(n)}function z(n,r){var t;if(n)return"string"==typeof n?e(n,r):"Map"===(t="Object"===(t={}.toString.call(n).slice(8,-1))&&n.constructor?n.constructor.name:t)||"Set"===t?Array.from(n):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?e(n,r):void 0}function p(u){var i=1<arguments.length&&void 0!==arguments[1]?arguments[1]:[];return function(){for(var n,r=arguments.length,t=Array(r),e=0;e<r;e++)t[e]=arguments[e];return(n=[].concat(h(i),t)).length<u.length?p(u,n):u.apply(void 0,h(n))}}var M=p(function(n,r,t){var e=n<0?t.length+n:n;return t.length<=n||e<0?t:((n=l(t))[e]=r(n[e]),n)});function _(r){return function(n){return r}}var g=Array.isArray;function i(n){var r,t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:0;for(r in n)!1!=n.hasOwnProperty(r)&&"constructor"!==r&&("object"===s(n[r])&&(t=Math.max(t,i(n[r]))),"function"==typeof n[r])&&(t=Math.max(t,n[r].length));return t}function v(){for(var n=[],r=0,t=arguments.length;r<t&&void 0!==arguments[r];)n[r]=arguments[r],r++;return n}function u(n,r,t,e){return n===r?0:n<r?t:e}function y(n,r,t){return Object.assign({},t,c({},n,r))}var J=p(y);function H(n){return Number.isInteger(+(""+n))}var d=Number.isInteger||function(n){return n<<0===n};function m(n,r){return"string"==typeof n?n.split(1<arguments.length&&void 0!==r?r:".").map(function(n){return d(n)?+(""+n):n}):n}function $(n,r,t){var e,u,n=m(n);return 0===n.length?r:(e=n[0],1<n.length&&(u="object"!==s(t)||null===t||!t.hasOwnProperty(e)?H(n[1])?[]:{}:t[e],r=$(Array.prototype.slice.call(n,1),r,u)),H(e)&&g(t)?((n=l(t))[e]=r,n):y(e,r,t))}var G=p($);var K=p(function(n,r,t){if(r<n)throw Error("min must not be greater than max in clamp(min, max, value)");return t<n||r<t?r<t?r:t<n?n:void 0:t});function b(n){var r,t=g(n)?Array(n.length):{};if(n&&n.getTime)return new Date(n.getTime());for(r in n){var e=n[r];t[r]="object"===s(e)&&null!==e?e.getTime?new Date(e.getTime()):b(e):e}return t}var Q=U(function n(r){C(this,n),this.value=r});function V(n,r,t){if(null!=t){if(!g(t))throw new TypeError("reduce: list must be array or iterable");for(var e=0,u=t.length;e<u;){if((r=n(r,t[e],e,t))instanceof Q)return r.value;e++}}return r}var w=p(V);function X(n,r){return function(){return r.call(this,n.apply(this,arguments))}}function Y(){if(0===arguments.length)throw Error("pipe requires at least one argument");return a(arguments[0].length,V(X,arguments[0],Array.prototype.slice.call(arguments,1,1/0)))}function Z(n){return"string"==typeof n?n[0]||"":n[0]}function nn(n){return n}function rn(n){return"string"==typeof n?n.split("").reverse().join(""):n.slice().reverse()}function j(r,n){return 1===arguments.length?function(n){return j(r,n)}:n.slice(0<r?r:0)}function tn(n){return j(1,n)}function en(t,n){var r,e;return 0<n.length?(r=Z(n),e=tn(n),a(r.length,function(){return w(function(n,r){return t.call(this,r,n)},r.apply(this,arguments),e)})):nn}function un(r,n){return 1===arguments.length?function(n){return un(r,n)}:"string"==typeof r?"".concat(r).concat(n):[].concat(h(r),h(n))}var on="Incorrect iterable input",cn=Object.keys;function O(n,r){for(var t=2<arguments.length&&void 0!==arguments[2]&&arguments[2],e=0,u=Array(r.length);e<r.length;)u[e]=t?n(r[e],e):n(r[e]),e++;return u}function A(r,n){if(1===arguments.length)return function(n){return A(r,n)};for(var t=0,e=cn(n),u=e.length,i={};t<u;){var o=e[t];i[o]=r(n[o],o,n),t++}return i}var fn=A;function E(r,n){if(1===arguments.length)return function(n){return E(r,n)};if(n)return(g(n)?O:A)(r,n);throw Error(on)}function an(r,n){return 1===arguments.length?function(n){return an(r,n)}:r<n?n:r}function N(r,n){return 1===arguments.length?function(n){return N(r,n)}:null==(t=n)||!0===Number.isNaN(t)?r:n;var t}function x(n){return null===n?"Null":void 0===n?"Undefined":Number.isNaN(n)?"NaN":"AsyncFunction"===(n=Object.prototype.toString.call(n).slice(8,-1))?"Promise":n}function ln(n,r){if(!g(r))throw Error("Cannot read property 'indexOf' of ".concat(r));var t=x(n);if(!["Array","NaN","Object","RegExp"].includes(t))return r.lastIndexOf(n);for(var e=r.length,u=-1;-1<--e&&-1===u;)S(r[e],n)&&(u=e);return u}function P(n,r){if(!g(r))throw Error("Cannot read property 'indexOf' of ".concat(r));var t=x(n);if(!["Array","NaN","Object","RegExp"].includes(t))return r.indexOf(n);for(var e=-1,u=-1,i=r.length;++e<i&&-1===u;)S(r[e],n)&&(u=e);return u}function hn(n){for(var r,t=[];!(r=n.next()).done;)t.push(r.value);return t}function sn(n){return n.toDateString?[!0,n.getTime()]:[!1]}function pn(n){return n.constructor!==RegExp?[!1]:[!0,""+n]}function S(t,e){var n,u,i,r,o,c,f,a;return 1===arguments.length?function(n){return S(t,n)}:!!Object.is(t,e)||(n=x(t))===x(e)&&("Function"===n?void 0!==t.name&&t.name===e.name:!!["NaN","Null","Undefined"].includes(n)||(["BigInt","Number"].includes(n)?Object.is(-0,t)===Object.is(-0,e)&&""+t==""+e:["Boolean","String"].includes(n)?""+t==""+e:"Array"===n?""+(r=Array.from(t))==""+(u=Array.from(e))&&(i=!0,r.forEach(function(n,r){!i||n===u[r]||S(n,u[r])||(i=!1)}),i):(r=pn(t),o=pn(e),r[0]?!!o[0]&&r[1]===o[1]:!o[0]&&(r=sn(t),o=sn(e),r[0]?!!o[0]&&r[1]===o[1]:!o[0]&&(t instanceof Error?e instanceof Error&&(r=t).message===(o=e).message&&r.toString===o.toString&&""+r==""+o:"Set"===n?(o=t).size===(f=e).size&&(o=hn(o.values()),c=hn(f.values()),0===o.filter(function(n){return-1===P(n,c)}).length):"Object"===n&&(f=Object.keys(t)).length===Object.keys(e).length&&(a=!0,f.forEach(function(n){var r;a&&(r=t[n])!==(n=e[n])&&!S(r,n)&&(a=!1)}),a))))))}function k(r,n){if(1===arguments.length)return function(n){return k(r,n)};if("string"==typeof n)return n.includes(r);if(n)return!!g(n)&&-1<P(r,n);throw new TypeError("Cannot read property 'indexOf' of ".concat(n))}var gn=function(){return U(function n(){C(this,n),this.set=new Set,this.items={}},[{key:"checkUniqueness",value:function(n){var r=x(n);return["Null","Undefined","NaN"].includes(r)?!(r in this.items)&&(this.items[r]=!0):["Object","Array"].includes(r)?r in this.items?-1===P(n,this.items[r])&&(this.items[r].push(n),!0):(this.items[r]=[n],!0):(r=this.set.size,this.set.add(n),this.set.size!==r)}}])}();function vn(n){var r=new gn,t=[];return n.forEach(function(n){r.checkUniqueness(n)&&t.push(n)}),t}function yn(t,n,r){var e=[],n=o(n.length<r.length?[r,n]:[n,r],2),r=n[0],u=n[1];return r.forEach(function(r){u.some(function(n){return t(r,n)})||-1!==P(r,e)||e.push(r)}),e}var dn=p(yn);function mn(r,n){if(1===arguments.length)return function(n){return mn(r,n)};if(null!=n){var t,e=m(r,","),u={};for(t in n)!function(n,r){for(var t=-1,e=r.length;++t<e;)if(""+r[t]==""+n)return 1}(t,e)&&(u[t]=n[t]);return u}}function bn(n,r){for(var t=r,e=0,u=m(n);e<u.length;){if(null==t)return;if(null===t[u[e]])return;t=t[u[e]],e++}return t}function F(r,n){return 1===arguments.length?function(n){return F(r,n)}:null!=n?bn(r,n):void 0}function wn(r,n){return 1===arguments.length?function(n){return wn(r,n)}:0<r?r<n.length-1?[].concat(h(n.slice(0,r)),h(n.slice(r+1))):n.slice(0,n.length-1):n.slice(1)}function jn(n,r,t){t=l(t);return-1===n?t.fill(r,n):t.fill(r,n,n+1)}var On=p(jn);function An(n,r,t){return S(n(r),n(t))}var En=p(An);function Nn(n,r){if(r)return r[n]}function I(r,n){return 1===arguments.length?function(n){return I(r,n)}:Nn(r,n)}var xn=p(function(n,r,t){return S(I(n,r),I(n,t))});function Pn(t,n){return O(function(n,r){return"Function"===x(t[r])?t[r](n):n},n,!0)}function Sn(e,n){return A(function(n,r){var t;return"Object"===x(n)?"Function"===(t=x(e[r]))?e[r](n):"Object"===t?kn(e[r],n):n:"Function"===x(e[r])?e[r](n):n},n)}function kn(r,n){if(1===arguments.length)return function(n){return kn(r,n)};var t=x(r),e=x(n);if(e!==t)throw Error("iterableType !== rulesType");if(["Object","Array"].includes(t))return("Object"===e?Sn:Pn)(r,n);throw Error("'iterable' and 'rules' are from wrong type ".concat(t))}function Fn(n,r){var t,e={};for(t in r)n(r[t],t,r)&&(e[t]=r[t]);return e}function In(n,r){for(var t=2<arguments.length&&void 0!==arguments[2]&&arguments[2],e=0,u=r.length,i=[];e<u;)(t?n(r[e],e):n(r[e]))&&i.push(r[e]),e++;return i}function T(r,n){if(1===arguments.length)return function(n){return T(r,n)};if(n)return g(n)?In(r,n,!1):Fn(r,n);throw Error("Incorrect iterable input")}function Tn(n,r){for(var t=0,e=cn(r),u=e.length;t<u;){var i=e[t];n(r[i],i,r),t++}return r}function Wn(r,n){return 1===arguments.length?function(n){return Wn(r,n)}:!!n&&n.hasOwnProperty(r)}var Bn=Object.is||function(n,r){return n===r?0!==n||1/n==1/r:n!=n&&r!=r};var Rn=p(function(n,r,t){return function(){return(("boolean"==typeof n?n:n.apply(void 0,arguments))?r:t).apply(void 0,arguments)}});function qn(n,r,t){for(var e=-1,u=n.length,i=((t=u<t?u:t)<0&&(t+=u),u=t<r?0:t-r>>>0,r>>>=0,Array(u));++e<u;)i[e]=n[e+r];return i}function Cn(o,n,c){for(var r=function(n){for(var r=o,t=n,e=c,u=0,i=e.length;u<i;){if(r(t,e[u]))return 1;u+=1}},t=n,e=0,u=t.length,i=[];e<u;)r(t[e])&&(i[i.length]=t[e]),e+=1;return i}var Un=p(Cn);function Dn(n,r,t){return[].concat(h(t.slice(0,n)),[r],h(t.slice(n)))}var Ln=p(Dn);function zn(n,r,t){return[].concat(h(t.slice(0,n)),h(r),h(t.slice(n)))}var Mn=p(zn);function _n(r,n){return 1===arguments.length?function(n){return _n(r,n)}:null!=n&&n.constructor===r||n instanceof r}function Jn(n){var r=x(n);return!(["Undefined","NaN","Number","Null"].includes(r)||n&&("Object"===r?0!==Object.keys(n).length:"Array"!==r||0!==n.length))}function r(t,e){return function(n){return function(r){return n(t(r)).map(function(n){return e(n,r)})}}}function Hn(r,n){var t;return 1===arguments.length?function(n){return Hn(r,n)}:(t=r<0?n.length+r:r,"[object String]"===Object.prototype.toString.call(n)?n[0|t]||"":n[t])}function $n(n,r,t){return n(t)>n(r)?t:r}var Gn=p($n);function Kn(n){return n.reduce(function(n,r){return n+r},0)}function Qn(n){return Kn(n)/n.length}function W(r,n){return 1===arguments.length?function(n){return W(r,n)}:Object.assign({},r||{},n||{})}function B(r,t){var e;return 1===arguments.length?function(n){return B(r,n)}:(e=b(r),Object.keys(t).forEach(function(n){"Object"===x(t[n])&&"Object"===x(r[n])?e[n]=B(r[n],t[n]):e[n]=t[n]}),e)}function Vn(r,n,t){var e=null!=n?n:{},u=null!=t?t:{},i={};return Object.keys(e).forEach(function(n){i[n]=void 0===u[n]?e[n]:r(e[n],u[n])}),Object.keys(u).forEach(function(n){void 0===i[n]&&(i[n]=void 0===e[n]?u[n]:r(e[n],u[n]))}),i}var Xn=p(Vn);function Yn(n,r,t){return n(t)<n(r)?t:r}var Zn=p(Yn);var nr=p(function(n,r,t){var e;return!Array.isArray(e=t)&&"Object"!==x(e)||void 0===t[n]?t:g(t)?jn(n,r(t[n]),t):f(f({},t),{},c({},n,r(t[n])))});function rr(n,r,t){n=m(n);return 1===n.length?f(f({},t),{},c({},n[0],r(t[n[0]]))):void 0===F(n,t)||(r=tr(Array.prototype.slice.call(n,1),r,t[n[0]]))===t[n[0]]?t:J(n[0],r,t)}var tr=p(rr);var er=p(function(n,r,t){if(n<0||r<0)throw Error("Rambda.move does not support negative indexes");var e;return t.length-1<n||t.length-1<r?t:((e=l(t))[n]=t[r],e[r]=t[n],e)});function ur(r,n){return 1===arguments.length?function(n){return ur(r,n)}:r*n}function ir(n,r){var t;return function(){return n&&(t=n.apply(r||this,arguments),n=null),t}}var or=function(r){return{x:r,map:function(n){return or(n(r))}}};var cr=p(function(n,r,t){return n(function(n){return or(r(n))})(t).x});function fr(e){for(var u=e.length,n=arguments.length,r=Array(1<n?n-1:0),t=1;t<n;t++)r[t-1]=arguments[t];var i=1===r.length&&g(r[0])?r[0]:r;return function(){for(var n=arguments.length,r=Array(n),t=0;t<n;t++)r[t]=arguments[t];return i.length+r.length<u?fr.apply(void 0,[e].concat([].concat(h(i),r))):e.apply(void 0,h(i).concat(r))}}function ar(t,n){var e={},u={};return Object.entries(n).forEach(function(n){var n=o(n,2),r=n[0],n=n[1];t(n,r)?e[r]=n:u[r]=n}),[e,u]}function lr(n,r){for(var t=2<arguments.length&&void 0!==arguments[2]&&arguments[2],e=[],u=[],i=-1;i++<r.length-1;)((t?n(r[i],i):n(r[i]))?e:u).push(r[i]);return[e,u]}var hr=p(function(n,r,t){return S(F(n,t),r)});var sr=p(function(n,r,t){return N(n,F(r,t))});function pr(n,r,t){if(0===r.length)throw Error("R.pathSatisfies received an empty path");return!!n(F(r,t))}var gr=p(pr);var vr=w(ur,1);var yr=p(function(n,r,t){return!!t&&S(n,I(r,t))});var dr=p(function(n,r,t){return _n(n,t[r])});var mr=p(function(n,r,t){return t?N(n,t[r]):n});var br=p(function(n,r,t){return n(I(r,t))});function wr(r,n){if(1===arguments.length)return function(n){return wr(r,n)};if(Number.isNaN(+(""+r))||Number.isNaN(+(""+n)))throw new TypeError("Both arguments to range must be numbers");if(n<r)return[];for(var t=n-r,e=Array(t),u=0;u<t;u++)e[u]=r+u;return e}function jr(i,o,c,n){return w(function(n,r){return t=i,e=o,n=n,u=(u=c)(r=r),t=t(Wn(u,n)?n[u]:b(e),r),n[u]=t,n;var t,e,u},{},n)}var Or=p(jr);var Ar=p(function(n,r,t){return t.replace(n,r)});var Er=p(function(n,r,t){return cr(n,_(r),t)});var Nr=p(function(n,r,t){return t.slice(n,r)});function R(r,n){return 1===arguments.length?function(n){return R(r,n)}:r<0?n.slice():"string"==typeof n?n.slice(0,r):qn(n,0,r)}var xr=p(function(n,r,t){var e,u,i,o;return g(t)||"string"==typeof t?(i=t,(e=(e=n)<0?i.length+e:e)===(u=(u=r)<0?i.length+u:u)||Math.min(e,u)<0||i.length<=Math.max(e,u)?i:"string"==typeof i?i.slice(0,e)+i[u]+i.slice(e+1,u)+i[e]+i.slice(u+1):(o=(i=i.slice())[e],i[e]=i[u],i[u]=o,i)):void 0===t[n]||void 0===t[r]?t:f(f({},t),{},c(c({},n,t[r]),r,t[n]))});function Pr(n){return["Promise","Function"].includes(x(n))}var Sr=p(function(n,r,t){return n(t)?t:r(t)});var kr=function(r){return{x:r,map:function(n){return kr(r)}}};var Fr=p(function(n,r,t){return n(t)?r(t):t});var Ir=p(function(t,n,e){return R((e.length<n.length?e:n).length,n).map(function(n,r){return t(n,e[r])})});n.F=function(){return!1},n.T=function(){return!0},n.__findHighestArity=i,n._indexOf=P,n._lastIndexOf=ln,n._pipe=X,n.add=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:+(""+t)+ +(""+n)},n.addIndex=q,n.addIndexRight=function(n){return q(n,function(n){return n-1},function(n){return n-1})},n.adjust=M,n.all=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};for(var e=0;e<n.length;e++)if(!t(n[e]))return!1;return!0},n.allPass=function(r){return function(){for(var n=0;n<r.length;){if(!r[n].apply(r,arguments))return!1;n++}return!0}},n.always=_,n.and=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:t&&n},n.any=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};for(var e=0;e<n.length;){if(t(n[e],e))return!0;e++}return!1},n.anyPass=function(r){return function(){for(var n=0;n<r.length;){if(r[n].apply(r,arguments))return!0;n++}return!1}},n.ap=function r(t,e){return 1===arguments.length?function(n){return r(t,n)}:t.reduce(function(n,r){return[].concat(h(n),h(e.map(r)))},[])},n.aperture=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if(n.length<t)return[];for(var e=0,u=n.length-(t-1),i=Array(u);e<u;)i[e]=n.slice(e,e+t),e+=1;return i},n.append=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:"string"==typeof n?n.split("").concat(t):((n=l(n)).push(t),n)},n.apply=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:t.apply(this,n)},n.applySpec=function(n){var r=i(n);if(0===r)return function(){return{}};for(var t=arguments.length,e=Array(1<t?t-1:0),u=1;u<t;u++)e[u-1]=arguments[u];return function u(i,o,c){var n=o-c.length;if(1==n)return function(n){return u(i,o,v.apply(void 0,h(c).concat([n])))};if(2==n)return function(n,r){return u(i,o,v.apply(void 0,h(c).concat([n,r])))};if(3==n)return function(n,r,t){return u(i,o,v.apply(void 0,h(c).concat([n,r,t])))};if(4==n)return function(n,r,t,e){return u(i,o,v.apply(void 0,h(c).concat([n,r,t,e])))};if(4<n)return function(){for(var n=arguments.length,r=Array(n),t=0;t<n;t++)r[t]=arguments[t];return u(i,o,v.apply(void 0,h(c).concat(r)))};if(g(i)){for(var r=[],t=0,e=i.length;t<e;t++)"object"!==s(i[t])&&!g(i[t])||(r[t]=u(i[t],o,c)),"function"==typeof i[t]&&(r[t]=i[t].apply(i,h(c)));return r}var f,a={};for(f in i)0!=i.hasOwnProperty(f)&&"constructor"!==f&&("object"===s(i[f])?a[f]=u(i[f],o,c):"function"==typeof i[f]&&(a[f]=i[f].apply(i,h(c))));return a}(n,r,e)},n.applyTo=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:n(t)},n.ascend=function t(e,n,r){return 1===arguments.length?function(n,r){return t(e,n,r)}:u(e(n),e(r),-1,1)},n.assoc=J,n.assocFn=y,n.assocPath=G,n.assocPathFn=$,n.binary=function(t){return 2<t.length?function(n,r){return t(n,r)}:t},n.bind=function r(e,u){return 1===arguments.length?function(n){return r(e,n)}:t(e.length,function(){for(var n=arguments.length,r=Array(n),t=0;t<n;t++)r[t]=arguments[t];return e.apply(u,r)})},n.both=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:function(){return t.apply(void 0,arguments)&&n.apply(void 0,arguments)}},n.call=function(n){for(var r=arguments.length,t=Array(1<r?r-1:0),e=1;e<r;e++)t[e-1]=arguments[e];return n.apply(void 0,t)},n.chain=function r(t,n){var e;return 1===arguments.length?function(n){return r(t,n)}:(e=[]).concat.apply(e,h(n.map(t)))},n.clamp=K,n.clone=b,n.collectBy=function r(e,n){if(1===arguments.length)return function(n){return r(e,n)};var t,u=w(function(n,r){var t=e(r);return void 0===n[t]&&(n[t]=[]),n[t].push(r),n},{},n),i=[];for(t in u)i.push(u[t]);return i},n.comparator=function(t){return function(n,r){return t(n,r)?-1:t(r,n)?1:0}},n.complement=function(n){return function(){return!n.apply(void 0,arguments)}},n.compose=function(){if(0===arguments.length)throw Error("compose requires at least one argument");return Y.apply(this,Array.prototype.slice.call(arguments,0).reverse())},n.composeWith=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:en(t,rn(n))},n.concat=un,n.cond=function(i){return function(){for(var n=arguments.length,t=Array(n),r=0;r<n;r++)t[r]=arguments[r];var e,u=!1;return i.forEach(function(n){var n=o(n,2),r=n[0],n=n[1];!u&&r.apply(void 0,t)&&(u=!0,e=n.apply(void 0,t))}),e}},n.converge=function r(e,n){return 1===arguments.length?function(n){return r(e,n)}:t(w(function(n,r){return an(n,r.length)},0,n),function(){var r=arguments,t=this;return e.apply(this,E(function(n){return n.apply(t,r)},n))})},n.count=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:g(n)?n.filter(function(n){return t(n)}).length:0},n.countBy=function r(t,n){var e;return 1===arguments.length?function(n){return r(t,n)}:(e={},n.forEach(function(n){n=t(n),e[n]?e[n]++:e[n]=1}),e)},n.createCompareFunction=u,n.curry=p,n.curryN=t,n.dec=function(n){return n-1},n.defaultTo=N,n.descend=function t(e,n,r){return 1===arguments.length?function(n,r){return t(e,n,r)}:u(e(n),e(r),1,-1)},n.difference=function r(t,e){return 1===arguments.length?function(n){return r(t,n)}:vn(t).filter(function(n){return!k(n,e)})},n.differenceWith=dn,n.differenceWithFn=yn,n.dissoc=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if(null==n)return{};var e,u={};for(e in n)u[e]=n[e];return delete u[t],u},n.dissocPath=function r(t,n){var e,u,i;return 1===arguments.length?function(n){return r(t,n)}:0===(i=m(t)).length||void 0===F(i,n)?n:(e=i[0],u="object"!==s(n)||null===n||!n.hasOwnProperty(e),1<i.length?(u=u?H(i[1])?[]:{}:n[e],i=r(Array.prototype.slice.call(i,1),u,n),g(n)?On(e,i,n):f(f({},n),{},c({},e,i))):g(n)?wn(e,n):mn([e],n))},n.divide=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:t/n},n.drop=j,n.dropLast=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:0<t?n.slice(0,-t):n.slice()},n.dropLastWhile=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if(0===n.length)return n;var e=g(n);if("function"!=typeof t)throw Error("'predicate' is from wrong type ".concat(s(t)));if(!e&&"string"!=typeof n)throw Error("'iterable' is from wrong type ".concat(s(n)));for(var u=[],i=n.length;i;){var o=n[--i];if(!t(o)){u.push(o);break}}for(;i;)u.push(n[--i]);return e?u.reverse():u.reverse().join("")},n.dropRepeats=function(n){var t;if(g(n))return t=[],n.reduce(function(n,r){return S(n,r)||t.push(r),r},void 0),t;throw Error("".concat(n," is not a list"))},n.dropRepeatsBy=function r(t,n){var e;return 1===arguments.length?function(n){return r(t,n)}:(e=null,n.slice().filter(function(n){if(null===e)e=t(n);else{if(n=t(n),S(e,n))return!1;e=n}return!0}))},n.dropRepeatsWith=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};var e;if(g(n))return e=[],n.reduce(function(n,r){return void 0!==n&&t(n,r)||e.push(r),r},void 0),e;throw Error("".concat(n," is not a list"))},n.dropWhile=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};var e=g(n);if(!e&&"string"!=typeof n)throw Error("`iterable` is neither list nor a string");for(var u=[],i=0;i<n.length;){var o=n[i++];if(!t(o)){u.push(o);break}}for(;i<n.length;)u.push(n[i++]);return e?u:u.join("")},n.either=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:function(){return!(!t.apply(void 0,arguments)&&!n.apply(void 0,arguments))}},n.empty=function(n){var r;return"string"==typeof n?"":Array.isArray(n)?"Uint8Array"===(r=n.constructor.name)?Uint8Array.from(""):"Float32Array"===r?new Float32Array([]):[]:"Object"===x(n)?{}:void 0},n.endsWith=function r(t,e){var u,i;return 1===arguments.length?function(n){return r(t,n)}:"string"==typeof e?e.endsWith(t):!!g(t)&&(u=e.length-t.length,i=!0,t.filter(function(n,r){return!!i&&((n=S(n,e[r+u]))||(i=!1),n)}).length===t.length)},n.eqBy=En,n.eqByFn=An,n.eqProps=xn,n.equals=S,n.evolve=kn,n.evolveArray=Pn,n.evolveObject=Sn,n.filter=T,n.filterArray=In,n.filterObject=Fn,n.find=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};for(var e=0,u=n.length;e<u;){var i=n[e];if(t(i))return i;e++}},n.findIndex=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};for(var e=n.length,u=-1;++u<e;)if(t(n[u]))return u;return-1},n.findLast=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};for(var e=n.length;0<=--e;)if(t(n[e]))return n[e]},n.findLastIndex=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};for(var e=n.length;0<=--e;)if(t(n[e]))return e;return-1},n.flatten=function n(r,t){for(var e=void 0===t?[]:t,u=0;u<r.length;u++)g(r[u])?n(r[u],e):e.push(r[u]);return e},n.flip=function(n){return e=n,function(){for(var n=arguments.length,r=Array(n),t=0;t<n;t++)r[t]=arguments[t];if(1===r.length)return function(n){return e(n,r[0])};if(2===r.length)return e(r[1],r[0]);if(3===r.length)return e(r[1],r[0],r[2]);if(4===r.length)return e(r[1],r[0],r[2],r[3]);throw Error("R.flip doesn't work with arity > 4")};var e},n.forEach=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if(void 0!==n){if(!g(n))return Tn(t,n);for(var e=0,u=n.length;e<u;)t(n[e]),e++;return n}},n.forEachObjIndexed=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:void 0!==n?Tn(t,n):void 0},n.forEachObjIndexedFn=Tn,n.fromPairs=function(n){var r={};return n.forEach(function(n){n=o(n,2);return r[n[0]]=n[1]}),r},n.groupBy=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};for(var e={},u=0;u<n.length;u++){var i=n[u],o=t(i);e[o]||(e[o]=[]),e[o].push(i)}return e},n.groupWith=function(i,o){var n,c,f;if(g(o))return n=l(o),1===o.length?[n]:(c=[],f=[],n.reduce(function(n,r,t){var e,u;return 0!==t&&(e=i(n,r),u=0===f.length,t=t===o.length-1,e?(u&&f.push(n),f.push(r),t&&c.push(f)):u?(c.push([n]),t&&c.push([r])):(c.push(f),t&&c.push([r]),f=[])),r},void 0),c);throw new TypeError("list.reduce is not a function")},n.gt=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:n<t},n.gte=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:n<=t},n.has=Wn,n.hasIn=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:void 0!==Nn(t,n)},n.hasPath=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:void 0!==F(t,n)},n.head=Z,n.identical=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:Bn(t,n)},n.identity=nn,n.ifElse=Rn,n.inc=function(n){return n+1},n.includes=k,n.indexBy=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if("string"==typeof t){for(var e=t,u=n,i={},o=0;o<u.length;o++){var c=u[o];i[F(e,c)]=c}return i}for(var f={},a=0;a<n.length;a++){var l=n[a];f[t(l)]=l}return f},n.indexOf=function(r,n){return 1===arguments.length?function(n){return P(r,n)}:P(r,n)},n.init=function(n){return"string"==typeof n?n.slice(0,-1):n.length?qn(n,0,-1):[]},n.innerJoin=Un,n.innerJoinFn=Cn,n.insert=Ln,n.insertAll=Mn,n.insertAllFn=zn,n.insertFn=Dn,n.intersection=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:T(function(n){return k(n,t)},n)},n.intersperse=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};for(var e=-1,u=n.length,i=[];++e<u;)e===u-1?i.push(n[e]):i.push(n[e],t);return i},n.is=_n,n.isEmpty=Jn,n.isNil=function(n){return null==n},n.isNotEmpty=function(n){return!Jn(n)},n.isNotNil=function(n){return null!=n},n.join=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:n.join(t)},n.juxt=function(e){return function(){for(var n=arguments.length,r=Array(n),t=0;t<n;t++)r[t]=arguments[t];return e.map(function(n){return n.apply(void 0,r)})}},n.keys=function(n){return Object.keys(n)},n.last=function(n){return"string"==typeof n?n[n.length-1]||"":n[n.length-1]},n.lastIndexOf=function(r,n){return 1===arguments.length?function(n){return ln(r,n)}:ln(r,n)},n.length=function(n){return g(n)||"string"==typeof n?n.length:NaN},n.lens=r,n.lensIndex=function(n){return r(Hn(n),On(n))},n.lensPath=function(n){return r(F(n),G(n))},n.lensProp=function(n){return r(I(n),J(n))},n.lt=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:t<n},n.lte=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:t<=n},n.map=E,n.mapArray=O,n.mapObjIndexed=fn,n.mapObject=A,n.match=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:null===(n=n.match(t))?[]:n},n.mathMod=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:d(t)&&d(n)&&1<=n?(t%n+n)%n:NaN},n.max=an,n.maxBy=Gn,n.maxByFn=$n,n.mean=Qn,n.median=function(n){var r,t=n.length;return 0===t?NaN:(r=(t-(t=2-t%2))/2,Qn(Array.prototype.slice.call(n,0).sort(function(n,r){return n===r?0:n<r?-1:1}).slice(r,r+t)))},n.merge=W,n.mergeAll=function(n){var r={};return E(function(n){r=W(r,n)},n),r},n.mergeDeepLeft=function(n,r){return B(r,n)},n.mergeDeepRight=B,n.mergeLeft=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:W(n,t)},n.mergeRight=W,n.mergeWith=Xn,n.mergeWithFn=Vn,n.min=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:n<t?n:t},n.minBy=Zn,n.minByFn=Yn,n.modify=nr,n.modifyPath=tr,n.modifyPathFn=rr,n.modulo=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:t%n},n.move=er,n.multiply=ur,n.negate=function(n){return-n},n.none=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};for(var e=0;e<n.length;e++)if(t(n[e]))return!1;return!0},n.not=function(n){return!n},n.nth=Hn,n.objOf=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:c({},t,n)},n.of=function(n){return[n]},n.omit=mn,n.on=function t(e,u,r,n){return 3===arguments.length?function(n){return t(e,u,r,n)}:2===arguments.length?function(n,r){return t(e,u,n,r)}:e(u(r),u(n))},n.once=function(n,r){return 1===arguments.length?p(ir(n,r)):ir(n,r)},n.or=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:t||n},n.over=cr,n.partial=fr,n.partialObject=function(r,t){return function(n){return r(B(n,t))}},n.partition=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:(g(n)?lr:ar)(t,n)},n.partitionArray=lr,n.partitionObject=ar,n.path=F,n.pathEq=hr,n.pathFn=bn,n.pathOr=sr,n.pathSatisfies=gr,n.pathSatisfiesFn=pr,n.paths=function r(t,e){return 1===arguments.length?function(n){return r(t,n)}:t.map(function(n){return F(n,e)})},n.pick=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if(null!=n){for(var e=m(t,","),u={},i=0;i<e.length;)e[i]in n&&(u[e[i]]=n[e[i]]),i++;return u}},n.pickAll=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if(null!=n){for(var e=m(t,","),u={},i=0;i<e.length;)u[e[i]]=e[i]in n?n[e[i]]:void 0,i++;return u}},n.pickBy=function r(t,e){return 1===arguments.length?function(n){return r(t,n)}:Object.keys(e).reduce(function(n,r){return t(e[r],r,e)&&(n[r]=e[r]),n},{})},n.pipe=Y,n.pipeWith=en,n.pluck=function r(t,n){var e;return 1===arguments.length?function(n){return r(t,n)}:(e=[],E(function(n){void 0!==n[t]&&e.push(n[t])},n),e)},n.prepend=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:[t].concat("string"==typeof n?n.split(""):n)},n.product=vr,n.prop=I,n.propEq=yr,n.propFn=Nn,n.propIs=dr,n.propOr=mr,n.propSatisfies=br,n.props=function r(t,e){if(1===arguments.length)return function(n){return r(t,n)};if(g(t))return O(function(n){return e[n]},t);throw Error("propsToPick is not a list")},n.range=wr,n.reduce=w,n.reduceBy=Or,n.reduceByFn=jr,n.reduceFn=V,n.reduceStopper=function(n){return new Q(n)},n.reject=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:T(function(n){return!t(n)},n)},n.removeIndex=wn,n.repeat=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:Array(n).fill(t)},n.replace=Ar,n.reverse=rn,n.set=Er,n.slice=Nr,n.sort=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:l(n).sort(t)},n.sortBy=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:l(n).sort(function(n,r){return n=t(n),r=t(r),n===r?0:n<r?-1:1})},n.sortWith=function r(c,n){return 1===arguments.length?function(n){return r(c,n)}:!1===Array.isArray(n)?[]:((n=n.slice()).sort(function(n,r){for(var t=n,e=r,u=c,i=0,o=0;0===i&&o<u.length;)i=u[o](t,e),o+=1;return i}),n)},n.split=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:n.split(t)},n.splitAt=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};var e,u,i;if(n)return g(n)||"string"==typeof n?(u=n.length+t<0?0:n.length+t,u=(e=(i=t)<0)&&"Function"===x(u)?u():u,i=e||"Function"!==x(i)?i:i(),[R(e=e?u:i,n),j(e,n)]):[[],[]];throw new TypeError("Cannot read property 'slice' of ".concat(n))},n.splitEvery=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if(t<1)throw Error("First argument to splitEvery must be a positive integer");for(var e=[],u=0;u<n.length;)e.push(n.slice(u,u+=t));return e},n.splitWhen=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if(!n)throw new TypeError("Cannot read property 'length' of ".concat(n));for(var e=[],u=[],i=!1,o=-1;o++<n.length-1;)i?u.push(n[o]):t(n[o])?(u.push(n[o]),i=!0):e.push(n[o]);return[e,u]},n.startsWith=function r(t,e){var u;return 1===arguments.length?function(n){return r(t,n)}:"string"==typeof e?e.startsWith(t):!!g(t)&&(u=!0,t.filter(function(n,r){return!!u&&((n=S(n,e[r]))||(u=!1),n)}).length===t.length)},n.subtract=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:t-n},n.sum=Kn,n.swap=xr,n.symmetricDifference=function r(t,e){return 1===arguments.length?function(n){return r(t,n)}:un(T(function(n){return!k(n,e)},t),T(function(n){return!k(n,t)},e))},n.tail=tn,n.take=R,n.takeLast=function r(t,n){var e,u;return 1===arguments.length?function(n){return r(t,n)}:(e=n.length,t<0?n.slice():(u=e<t?e:t,"string"==typeof n?n.slice(e-u):qn(n,u=e-u,e)))},n.takeLastWhile=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if(0===n.length)return n;for(var e=[],u=n.length;u;){var i=n[--u];if(!t(i))break;e.push(i)}return g(n)?e.reverse():e.reverse().join("")},n.takeWhile=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};var e=g(n);if(!e&&"string"!=typeof n)throw Error("`iterable` is neither list nor a string");for(var u=[],i=0;i<n.length;){var o=n[i++];if(!t(o))break;u.push(o)}return e?u:u.join("")},n.tap=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:(t(n),n)},n.test=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if("string"==typeof t)throw new TypeError('R.test requires a value of type RegExp as its first argument; received "'.concat(t,'"'));return-1!=n.search(t)},n.times=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};if(!d(n)||n<0)throw new RangeError("n must be an integer");return E(t,wr(0,n))},n.toLower=function(n){return n.toLowerCase()},n.toPairs=function(n){return Object.entries(n)},n.toString=function(n){return""+n},n.toUpper=function(n){return n.toUpperCase()},n.transpose=function(n){return n.reduce(function(t,n){return n.forEach(function(n,r){return g(t[r])?t[r].push(n):t.push([n])}),t},[])},n.trim=function(n){return n.trim()},n.tryCatch=function(e,u){var i;if(Pr(e))return i=Pr(u),function(){for(var n=arguments.length,r=Array(n),t=0;t<n;t++)r[t]=arguments[t];try{return e.apply(void 0,r)}catch(n){return i?u.apply(void 0,[n].concat(r)):u}};throw Error("R.tryCatch | fn '".concat(e,"'"))},n.type=x,n.unapply=function(e){return function(){for(var n=arguments.length,r=Array(n),t=0;t<n;t++)r[t]=arguments[t];return e.call(this,r)}},n.union=function r(t,n){var e;return 1===arguments.length?function(n){return r(t,n)}:(e=l(t),n.forEach(function(n){k(n,t)||e.push(n)}),e)},n.uniq=vn,n.uniqBy=function r(t,n){var e;return 1===arguments.length?function(n){return r(t,n)}:(e=new gn,n.filter(function(n){return e.checkUniqueness(t(n))}))},n.uniqWith=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};for(var e=-1,u=[];++e<n.length;){var i=n[e];!function(n,r,t){for(var e=!1,u=-1;++u<t.length&&!e;)n(r,t[u])&&(e=!0);return e}(t,i,u)&&u.push(i)}return u},n.unless=Sr,n.unnest=function(n){return n.reduce(function(n,r){return[].concat(h(n),Array.isArray(r)?h(r):[r])},[])},n.unwind=function r(t,e){return 1===arguments.length?function(n){return r(t,n)}:g(e[t])?O(function(n){return f(f({},e),{},c({},t,n))},e[t]):[e]},n.update=On,n.updateFn=jn,n.values=function(n){return"Object"!==x(n)?[]:Object.values(n)},n.view=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:t(kr)(n).x},n.when=Fr,n.where=function r(t,n){if(void 0===n)return function(n){return r(t,n)};var e,u,i=!0;for(e in t)i&&(u=t[e](n[e]),i)&&!1===u&&(i=!1);return i},n.whereAny=function r(t,n){if(void 0===n)return function(n){return r(t,n)};for(var e in t)if(t[e](n[e]))return!0;return!1},n.whereEq=function r(t,e){return 1===arguments.length?function(n){return r(t,n)}:Object.keys(T(function(n,r){return S(n,e[r])},t)).length===Object.keys(t).length},n.without=function r(t,n){return void 0===n?function(n){return r(t,n)}:w(function(n,r){return-1<P(r,t)?n:n.concat(r)},[],n)},n.xor=function r(t,n){return 1===arguments.length?function(n){return r(t,n)}:!!t&&!n||!!n&&!t},n.zip=function r(t,n){if(1===arguments.length)return function(n){return r(t,n)};for(var e=[],u=Math.min(t.length,n.length),i=0;i<u;i++)e[i]=[t[i],n[i]];return e},n.zipObj=function r(t,e){return 1===arguments.length?function(n){return r(t,n)}:R(e.length,t).reduce(function(n,r,t){return n[r]=e[t],n},{})},n.zipWith=Ir});
1
+ (function (global, factory) {
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
3
+ typeof define === 'function' && define.amd ? define(['exports'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.R = {}));
5
+ })(this, (function (exports) { 'use strict';
6
+
7
+ function all(predicate) {
8
+ return list => {
9
+ for (let i = 0; i < list.length; i++) {
10
+ if (!predicate(list[i])) {
11
+ return false
12
+ }
13
+ }
14
+
15
+ return true
16
+ }
17
+ }
18
+
19
+ function allPass(predicates) {
20
+ return input => {
21
+ let counter = 0;
22
+ while (counter < predicates.length) {
23
+ if (!predicates[counter](input)) {
24
+ return false
25
+ }
26
+ counter++;
27
+ }
28
+
29
+ return true
30
+ }
31
+ }
32
+
33
+ function any(predicate) {
34
+ return list => {
35
+ let counter = 0;
36
+ while (counter < list.length) {
37
+ if (predicate(list[counter], counter)) {
38
+ return true
39
+ }
40
+ counter++;
41
+ }
42
+
43
+ return false
44
+ }
45
+ }
46
+
47
+ function anyPass(predicates) {
48
+ return input => {
49
+ let counter = 0;
50
+ while (counter < predicates.length) {
51
+ if (predicates[counter](input)) {
52
+ return true
53
+ }
54
+ counter++;
55
+ }
56
+
57
+ return false
58
+ }
59
+ }
60
+
61
+ const cloneList = list => Array.prototype.slice.call(list);
62
+
63
+ function append(x) {
64
+ return list=> {
65
+ const clone = cloneList(list);
66
+ clone.push(x);
67
+
68
+ return clone
69
+ }
70
+ }
71
+
72
+ function checkObjectWithSpec(conditions) {
73
+ return input => {
74
+ let shouldProceed = true;
75
+ for (const prop in conditions) {
76
+ if (!shouldProceed) {
77
+ continue
78
+ }
79
+ const result = conditions[prop](input[prop]);
80
+ if (shouldProceed && result === false) {
81
+ shouldProceed = false;
82
+ }
83
+ }
84
+
85
+ return shouldProceed
86
+ }
87
+ }
88
+
89
+ function complement(fn) {
90
+ return (...input) => !fn(...input)
91
+ }
92
+
93
+ function concat(x) {
94
+ return y => typeof x === 'string' ? `${x}${y}` : [...x, ...y]
95
+ }
96
+
97
+ const { isArray } = Array;
98
+
99
+ function count(predicate, ) {
100
+ return list => {
101
+ if (!isArray(list)) {
102
+ return 0
103
+ }
104
+
105
+ return list.filter(x => predicate(x)).length
106
+ }
107
+ }
108
+
109
+ function countBy(fn) {
110
+ return list => {
111
+ const willReturn = {};
112
+
113
+ list.forEach(item => {
114
+ const key = fn(item);
115
+ if (!willReturn[key]) {
116
+ willReturn[key] = 1;
117
+ } else {
118
+ willReturn[key]++;
119
+ }
120
+ });
121
+
122
+ return willReturn
123
+ }
124
+ }
125
+
126
+ function isFalsy(input) {
127
+ return input === undefined || input === null || Number.isNaN(input) === true
128
+ }
129
+
130
+ function defaultTo(defaultArgument, input) {
131
+ if (arguments.length === 1) {
132
+ return _input => defaultTo(defaultArgument, _input)
133
+ }
134
+
135
+ return isFalsy(input) ? defaultArgument : input
136
+ }
137
+
138
+ function drop(howManyToDrop, listOrString) {
139
+ if (arguments.length === 1) {
140
+ return _list => drop(howManyToDrop, _list)
141
+ }
142
+
143
+ return listOrString.slice(howManyToDrop > 0 ? howManyToDrop : 0)
144
+ }
145
+
146
+ function dropLast(numberItems) {
147
+ return list => numberItems > 0
148
+ ? list.slice(0, -numberItems)
149
+ : list.slice()
150
+ }
151
+
152
+ function dropLastWhile(predicate) {
153
+ return list => {
154
+ if (list.length === 0) {
155
+ return list
156
+ }
157
+
158
+ const toReturn = [];
159
+ let counter = list.length;
160
+
161
+ while (counter) {
162
+ const item = list[--counter];
163
+ if (!predicate(item, counter)) {
164
+ toReturn.push(item);
165
+ break
166
+ }
167
+ }
168
+
169
+ while (counter) {
170
+ toReturn.push(list[--counter]);
171
+ }
172
+
173
+ return toReturn.reverse()
174
+ }
175
+ }
176
+
177
+ function dropWhile(predicate) {
178
+ return iterable => {
179
+ const toReturn = [];
180
+ let counter = 0;
181
+
182
+ while (counter < iterable.length) {
183
+ const item = iterable[counter++];
184
+ if (!predicate(item, counter)) {
185
+ toReturn.push(item);
186
+ break
187
+ }
188
+ }
189
+
190
+ while (counter < iterable.length) {
191
+ toReturn.push(iterable[counter++]);
192
+ }
193
+
194
+ return toReturn
195
+ }
196
+ }
197
+
198
+ function type(input) {
199
+ if (input === null) {
200
+ return 'Null'
201
+ }
202
+ if (input === undefined) {
203
+ return 'Undefined'
204
+ }
205
+ if (Number.isNaN(input)) {
206
+ return 'NaN'
207
+ }
208
+ const typeResult = Object.prototype.toString.call(input).slice(8, -1);
209
+ return typeResult === 'AsyncFunction' ? 'Promise' : typeResult
210
+ }
211
+
212
+ function _lastIndexOf(valueToFind, list) {
213
+ if (!isArray(list)) {
214
+ throw new Error(`Cannot read property 'indexOf' of ${list}`)
215
+ }
216
+
217
+ const typeOfValue = type(valueToFind);
218
+ if (!['Array', 'NaN', 'Object', 'RegExp'].includes(typeOfValue)) {
219
+ return list.lastIndexOf(valueToFind)
220
+ }
221
+
222
+ const { length } = list;
223
+ let index = length;
224
+ let foundIndex = -1;
225
+
226
+ while (--index > -1 && foundIndex === -1) {
227
+ if (equalsFn(list[index], valueToFind)) {
228
+ foundIndex = index;
229
+ }
230
+ }
231
+
232
+ return foundIndex
233
+ }
234
+
235
+ function _indexOf(valueToFind, list) {
236
+ if (!isArray(list)) {
237
+ throw new Error(`Cannot read property 'indexOf' of ${list}`)
238
+ }
239
+
240
+ const typeOfValue = type(valueToFind);
241
+ if (!['Array', 'NaN', 'Object', 'RegExp'].includes(typeOfValue)) {
242
+ return list.indexOf(valueToFind)
243
+ }
244
+
245
+ let index = -1;
246
+ let foundIndex = -1;
247
+ const { length } = list;
248
+
249
+ while (++index < length && foundIndex === -1) {
250
+ if (equalsFn(list[index], valueToFind)) {
251
+ foundIndex = index;
252
+ }
253
+ }
254
+
255
+ return foundIndex
256
+ }
257
+
258
+ function _arrayFromIterator(iter) {
259
+ const list = [];
260
+ let next;
261
+ while (!(next = iter.next()).done) {
262
+ list.push(next.value);
263
+ }
264
+
265
+ return list
266
+ }
267
+
268
+ function _compareSets(a, b) {
269
+ if (a.size !== b.size) {
270
+ return false
271
+ }
272
+
273
+ const aList = _arrayFromIterator(a.values());
274
+ const bList = _arrayFromIterator(b.values());
275
+
276
+ const filtered = aList.filter(aInstance => _indexOf(aInstance, bList) === -1);
277
+
278
+ return filtered.length === 0
279
+ }
280
+
281
+ function compareErrors(a, b) {
282
+ if (a.message !== b.message) {
283
+ return false
284
+ }
285
+ if (a.toString !== b.toString) {
286
+ return false
287
+ }
288
+
289
+ return a.toString() === b.toString()
290
+ }
291
+
292
+ function parseDate(maybeDate) {
293
+ if (!maybeDate.toDateString) {
294
+ return [false]
295
+ }
296
+
297
+ return [true, maybeDate.getTime()]
298
+ }
299
+
300
+ function parseRegex(maybeRegex) {
301
+ if (maybeRegex.constructor !== RegExp) {
302
+ return [false]
303
+ }
304
+
305
+ return [true, maybeRegex.toString()]
306
+ }
307
+
308
+ function equalsFn(a, b) {
309
+ if (Object.is(a, b)) {
310
+ return true
311
+ }
312
+
313
+ const aType = type(a);
314
+
315
+ if (aType !== type(b)) {
316
+ return false
317
+ }
318
+ if (aType === 'Function') {
319
+ return a.name === undefined ? false : a.name === b.name
320
+ }
321
+
322
+ if (['NaN', 'Null', 'Undefined'].includes(aType)) {
323
+ return true
324
+ }
325
+
326
+ if (['BigInt', 'Number'].includes(aType)) {
327
+ if (Object.is(-0, a) !== Object.is(-0, b)) {
328
+ return false
329
+ }
330
+
331
+ return a.toString() === b.toString()
332
+ }
333
+
334
+ if (['Boolean', 'String'].includes(aType)) {
335
+ return a.toString() === b.toString()
336
+ }
337
+
338
+ if (aType === 'Array') {
339
+ const aClone = Array.from(a);
340
+ const bClone = Array.from(b);
341
+
342
+ if (aClone.toString() !== bClone.toString()) {
343
+ return false
344
+ }
345
+
346
+ let loopArrayFlag = true;
347
+ aClone.forEach((aCloneInstance, aCloneIndex) => {
348
+ if (loopArrayFlag) {
349
+ if (
350
+ aCloneInstance !== bClone[aCloneIndex] &&
351
+ !equalsFn(aCloneInstance, bClone[aCloneIndex])
352
+ ) {
353
+ loopArrayFlag = false;
354
+ }
355
+ }
356
+ });
357
+
358
+ return loopArrayFlag
359
+ }
360
+
361
+ const aRegex = parseRegex(a);
362
+ const bRegex = parseRegex(b);
363
+
364
+ if (aRegex[0]) {
365
+ return bRegex[0] ? aRegex[1] === bRegex[1] : false
366
+ }
367
+ if (bRegex[0]) {
368
+ return false
369
+ }
370
+
371
+ const aDate = parseDate(a);
372
+ const bDate = parseDate(b);
373
+
374
+ if (aDate[0]) {
375
+ return bDate[0] ? aDate[1] === bDate[1] : false
376
+ }
377
+ if (bDate[0]) {
378
+ return false
379
+ }
380
+
381
+ if (a instanceof Error) {
382
+ if (!(b instanceof Error)) {
383
+ return false
384
+ }
385
+
386
+ return compareErrors(a, b)
387
+ }
388
+
389
+ if (aType === 'Set') {
390
+ return _compareSets(a, b)
391
+ }
392
+
393
+ if (aType === 'Object') {
394
+ const aKeys = Object.keys(a);
395
+
396
+ if (aKeys.length !== Object.keys(b).length) {
397
+ return false
398
+ }
399
+
400
+ let loopObjectFlag = true;
401
+ aKeys.forEach(aKeyInstance => {
402
+ if (loopObjectFlag) {
403
+ const aValue = a[aKeyInstance];
404
+ const bValue = b[aKeyInstance];
405
+
406
+ if (aValue !== bValue && !equalsFn(aValue, bValue)) {
407
+ loopObjectFlag = false;
408
+ }
409
+ }
410
+ });
411
+
412
+ return loopObjectFlag
413
+ }
414
+
415
+ return false
416
+ }
417
+ function equals(a) {
418
+ return b => equalsFn(a, b)
419
+ }
420
+
421
+ function eqBy(fn, a) {
422
+ return b => equalsFn(fn(a), fn(b))
423
+ }
424
+
425
+ function prop(searchProperty) {
426
+ return obj => (obj ? obj[searchProperty] : undefined)
427
+ }
428
+
429
+ function eqProps(property, objA) {
430
+ return objB => equalsFn(prop(property)(objA), prop(property)(objB))
431
+ }
432
+
433
+ const { keys } = Object;
434
+
435
+ function mapObject(fn) {
436
+ return obj => {
437
+ let index = 0;
438
+ const objKeys = keys(obj);
439
+ const len = objKeys.length;
440
+ const willReturn = {};
441
+
442
+ while (index < len) {
443
+ const key = objKeys[index];
444
+ willReturn[key] = fn(obj[key], key, obj);
445
+ index++;
446
+ }
447
+
448
+ return willReturn
449
+ }
450
+ }
451
+
452
+ function evolveFn(rules, obj) {
453
+ return mapObject((x, prop) => {
454
+ if (type(x) === 'Object') {
455
+ const typeRule = type(rules[prop]);
456
+ if (typeRule === 'Function') {
457
+ return rules[prop](x)
458
+ }
459
+ if (typeRule === 'Object') {
460
+ return evolveFn(rules[prop], x)
461
+ }
462
+
463
+ return x
464
+ }
465
+ if (type(rules[prop]) === 'Function') {
466
+ return rules[prop](x)
467
+ }
468
+
469
+ return x
470
+ })(obj)
471
+ }
472
+
473
+ function evolve(rules) {
474
+ return obj => evolveFn(rules, obj)
475
+ }
476
+
477
+ function includes(valueToFind) {
478
+ return iterable =>
479
+ {
480
+ if (typeof iterable === 'string') {
481
+ return iterable.includes(valueToFind)
482
+ }
483
+ if (!iterable) {
484
+ throw new TypeError(`Cannot read property \'indexOf\' of ${iterable}`)
485
+ }
486
+ if (!isArray(iterable)) {
487
+ return false
488
+ }
489
+
490
+ return _indexOf(valueToFind, iterable) > -1
491
+ }
492
+ }
493
+
494
+ function excludes(valueToFind) {
495
+ return iterable => !includes(valueToFind)(iterable)
496
+ }
497
+
498
+ function filter(predicate) {
499
+ return list => {
500
+ if (!list) {
501
+ throw new Error('Incorrect iterable input')
502
+ }
503
+ let index = 0;
504
+ const len = list.length;
505
+ const willReturn = [];
506
+
507
+ while (index < len) {
508
+ if (predicate(list[index], index)) {
509
+ willReturn.push(list[index]);
510
+ }
511
+
512
+ index++;
513
+ }
514
+
515
+ return willReturn
516
+ }
517
+ }
518
+
519
+ function filterObject(predicate) {
520
+ return obj => {
521
+ const willReturn = {};
522
+
523
+ for (const prop in obj) {
524
+ if (predicate(obj[prop], prop, obj)) {
525
+ willReturn[prop] = obj[prop];
526
+ }
527
+ }
528
+
529
+ return willReturn
530
+ }
531
+ }
532
+
533
+ function find(predicate) {
534
+ return list => {
535
+ let index = 0;
536
+ const len = list.length;
537
+
538
+ while (index < len) {
539
+ const x = list[index];
540
+ if (predicate(x)) {
541
+ return x
542
+ }
543
+
544
+ index++;
545
+ }
546
+ }
547
+ }
548
+
549
+ function findIndex(predicate) {
550
+ return list => {
551
+ const len = list.length;
552
+ let index = -1;
553
+
554
+ while (++index < len) {
555
+ if (predicate(list[index])) {
556
+ return index
557
+ }
558
+ }
559
+
560
+ return -1
561
+ }
562
+ }
563
+
564
+ function findLast(predicate) {
565
+ return list => {
566
+ let index = list.length;
567
+
568
+ while (--index >= 0) {
569
+ if (predicate(list[index])) {
570
+ return list[index]
571
+ }
572
+ }
573
+
574
+ return undefined
575
+ }
576
+ }
577
+
578
+ function findLastIndex(fn) {
579
+ return list => {
580
+ let index = list.length;
581
+
582
+ while (--index >= 0) {
583
+ if (fn(list[index])) {
584
+ return index
585
+ }
586
+ }
587
+
588
+ return -1
589
+ }
590
+ }
591
+
592
+ function flatMap(fn) {
593
+ return list => [].concat(...list.map(fn))
594
+ }
595
+
596
+ function flatten(list, input) {
597
+ const willReturn = input === undefined ? [] : input;
598
+
599
+ for (let i = 0; i < list.length; i++) {
600
+ if (isArray(list[i])) {
601
+ flatten(list[i], willReturn);
602
+ } else {
603
+ willReturn.push(list[i]);
604
+ }
605
+ }
606
+
607
+ return willReturn
608
+ }
609
+
610
+ function groupBy(groupFn, list) {
611
+ if (arguments.length === 1) {
612
+ return _list => groupBy(groupFn, _list)
613
+ }
614
+
615
+ const result = {};
616
+ for (let i = 0; i < list.length; i++) {
617
+ const item = list[i];
618
+ const key = groupFn(item);
619
+
620
+ if (!result[key]) {
621
+ result[key] = [];
622
+ }
623
+
624
+ result[key].push(item);
625
+ }
626
+
627
+ return result
628
+ }
629
+
630
+ function head(listOrString) {
631
+ if (typeof listOrString === 'string') {
632
+ return listOrString[0] || ''
633
+ }
634
+
635
+ return listOrString[0]
636
+ }
637
+
638
+ function indexOf(valueToFind) {
639
+ return list => _indexOf(valueToFind, list)
640
+ }
641
+
642
+ function baseSlice(array, start, end) {
643
+ let index = -1;
644
+ let { length } = array;
645
+
646
+ end = end > length ? length : end;
647
+ if (end < 0) {
648
+ end += length;
649
+ }
650
+ length = start > end ? 0 : (end - start) >>> 0;
651
+ start >>>= 0;
652
+
653
+ const result = Array(length);
654
+
655
+ while (++index < length) {
656
+ result[index] = array[index + start];
657
+ }
658
+
659
+ return result
660
+ }
661
+
662
+ function init(input) {
663
+ if (typeof input === 'string') {
664
+ return input.slice(0, -1)
665
+ }
666
+
667
+ return input.length ? baseSlice(input, 0, -1) : []
668
+ }
669
+
670
+ function _includesWith(pred, x, list) {
671
+ let idx = 0;
672
+ const len = list.length;
673
+
674
+ while (idx < len) {
675
+ if (pred(x, list[idx])) {
676
+ return true
677
+ }
678
+
679
+ idx += 1;
680
+ }
681
+
682
+ return false
683
+ }
684
+ function _filter(fn, list) {
685
+ let idx = 0;
686
+ const len = list.length;
687
+ const result = [];
688
+
689
+ while (idx < len) {
690
+ if (fn(list[idx])) {
691
+ result[result.length] = list[idx];
692
+ }
693
+
694
+ idx += 1;
695
+ }
696
+
697
+ return result
698
+ }
699
+
700
+ function innerJoin(pred, xs) {
701
+ return ys => _filter(x => _includesWith(pred, x, ys), xs)
702
+ }
703
+
704
+ function intersection(listA) {
705
+ return listB =>filter(x => includes(x)(listA))(listB)
706
+ }
707
+
708
+ function intersperse(separator) {
709
+ return list => {
710
+ let index = -1;
711
+ const len = list.length;
712
+ const willReturn = [];
713
+
714
+ while (++index < len) {
715
+ if (index === len - 1) {
716
+ willReturn.push(list[index]);
717
+ } else {
718
+ willReturn.push(list[index], separator);
719
+ }
720
+ }
721
+
722
+ return willReturn
723
+ }
724
+ }
725
+
726
+ function join(glue) {
727
+ return list=> list.join(glue)
728
+ }
729
+
730
+ function last(listOrString) {
731
+ if (typeof listOrString === 'string') {
732
+ return listOrString[listOrString.length - 1] || ''
733
+ }
734
+
735
+ return listOrString[listOrString.length - 1]
736
+ }
737
+
738
+ function lastIndexOf(valueToFind) {
739
+ return list => _lastIndexOf(valueToFind, list)
740
+ }
741
+
742
+ function map(fn) {
743
+ return list => {
744
+ let index = 0;
745
+ const willReturn = Array(list.length);
746
+ while (index < list.length) {
747
+ willReturn[index] = fn(list[index], index);
748
+ index++;
749
+ }
750
+ return willReturn
751
+ }
752
+ }
753
+
754
+ function mapAsync(fn) {
755
+ return async list => {
756
+ const willReturn = [];
757
+ let i = 0;
758
+ for (const a of list) {
759
+ willReturn.push(await fn(a, i++));
760
+ }
761
+
762
+ return willReturn
763
+ }
764
+ }
765
+
766
+ function mapObjectAsync(fn) {
767
+ return async obj => {
768
+ const willReturn = {};
769
+ for (const prop in obj){
770
+ willReturn[ prop ] = await fn(obj[ prop ], prop);
771
+ }
772
+
773
+ return willReturn
774
+ }
775
+ }
776
+
777
+ function match(pattern) {
778
+ return input => {
779
+ const willReturn = input.match(pattern);
780
+
781
+ return willReturn === null ? [] : willReturn
782
+ }
783
+ }
784
+
785
+ function maxBy(compareFn, x) {
786
+ return y => (compareFn(y) > compareFn(x) ? y : x)
787
+ }
788
+
789
+ function merge(target) {
790
+ return objectWithNewProps =>
791
+ Object.assign({}, target || {}, objectWithNewProps || {})
792
+ }
793
+
794
+ function mergeTypes(x) {
795
+ return x
796
+ }
797
+
798
+ function minBy(compareFn, x) {
799
+ return y => (compareFn(y) < compareFn(x) ? y : x)
800
+ }
801
+
802
+ function createPath(path, delimiter = '.') {
803
+ return typeof path === 'string'
804
+ ? path.split(delimiter).map(x => (Number.isInteger(Number(x)) ? Number(x) : x))
805
+ : path
806
+ }
807
+
808
+ function path(pathInput, obj) {
809
+ if (arguments.length === 1) {
810
+ return _obj => path(pathInput, _obj)
811
+ }
812
+
813
+ if (!obj) {
814
+ return undefined
815
+ }
816
+ let willReturn = obj;
817
+ let counter = 0;
818
+
819
+ const pathArrValue = createPath(pathInput);
820
+
821
+ while (counter < pathArrValue.length) {
822
+ if (willReturn === null || willReturn === undefined) {
823
+ return undefined
824
+ }
825
+ if (willReturn[pathArrValue[counter]] === null) {
826
+ return undefined
827
+ }
828
+
829
+ willReturn = willReturn[pathArrValue[counter]];
830
+ counter++;
831
+ }
832
+
833
+ return willReturn
834
+ }
835
+
836
+ function assoc(prop, newValue) {
837
+ return obj => Object.assign({}, obj, { [prop]: newValue })
838
+ }
839
+
840
+ function modifyPathFn(pathInput, fn, obj) {
841
+ const path$1 = createPath(pathInput);
842
+ if (path$1.length === 1) {
843
+ return {
844
+ ...obj,
845
+ [path$1[0]]: fn(obj[path$1[0]]),
846
+ }
847
+ }
848
+ if (path(path$1)(obj) === undefined) {
849
+ return obj
850
+ }
851
+
852
+ const val = modifyPathFn(Array.prototype.slice.call(path$1, 1), fn, obj[path$1[0]]);
853
+ if (val === obj[path$1[0]]) {
854
+ return obj
855
+ }
856
+
857
+ return assoc(path$1[0], val)(obj)
858
+ }
859
+
860
+ function modifyPath(pathInput, fn) {
861
+ return obj => modifyPathFn(pathInput, fn, obj)
862
+ }
863
+
864
+ function none(predicate) {
865
+ return list => {
866
+ for (let i = 0; i < list.length; i++) {
867
+ if (predicate(list[i])) {
868
+ return false
869
+ }
870
+ }
871
+
872
+ return true
873
+ }
874
+ }
875
+
876
+ function objOf(key) {
877
+ return value => ({ [key]: value })
878
+ }
879
+
880
+ function _includes(x, list) {
881
+ let index = -1;
882
+ const { length } = list;
883
+
884
+ while (++index < length) {
885
+ if (String(list[index]) === String(x)) {
886
+ return true
887
+ }
888
+ }
889
+
890
+ return false
891
+ }
892
+
893
+ function omit(propsToOmit) {
894
+ return obj => {
895
+ if (!obj) {
896
+ return undefined
897
+ }
898
+
899
+ const propsToOmitValue = createPath(propsToOmit, ',');
900
+ const willReturn = {};
901
+
902
+ for (const key in obj) {
903
+ if (!_includes(key, propsToOmitValue)) {
904
+ willReturn[key] = obj[key];
905
+ }
906
+ }
907
+
908
+ return willReturn
909
+ }
910
+ }
911
+
912
+ function partitionObject(predicate, iterable) {
913
+ const yes = {};
914
+ const no = {};
915
+ Object.entries(iterable).forEach(([prop, value]) => {
916
+ if (predicate(value, prop)) {
917
+ yes[prop] = value;
918
+ } else {
919
+ no[prop] = value;
920
+ }
921
+ });
922
+
923
+ return [yes, no]
924
+ }
925
+
926
+ function partitionArray(predicate, list, indexed = false) {
927
+ const yes = [];
928
+ const no = [];
929
+ let counter = -1;
930
+
931
+ while (counter++ < list.length - 1) {
932
+ if (indexed ? predicate(list[counter], counter) : predicate(list[counter])) {
933
+ yes.push(list[counter]);
934
+ } else {
935
+ no.push(list[counter]);
936
+ }
937
+ }
938
+
939
+ return [yes, no]
940
+ }
941
+
942
+ function partition(predicate) {
943
+ return iterable => {
944
+ if (!isArray(iterable)) {
945
+ return partitionObject(predicate, iterable)
946
+ }
947
+
948
+ return partitionArray(predicate, iterable)
949
+ }
950
+ }
951
+
952
+ function pick(propsToPick) {
953
+ return input => {
954
+ if (!input === null) {
955
+ return undefined
956
+ }
957
+ const keys = createPath(propsToPick, ',');
958
+ const willReturn = {};
959
+ let counter = 0;
960
+
961
+ while (counter < keys.length) {
962
+ if (keys[counter] in input) {
963
+ willReturn[keys[counter]] = input[keys[counter]];
964
+ }
965
+ counter++;
966
+ }
967
+
968
+ return willReturn
969
+ }
970
+ }
971
+
972
+ function reduce(reducer, acc) {
973
+ return list => {
974
+ if (list == null) {
975
+ return acc
976
+ }
977
+ if (!isArray(list)) {
978
+ throw new TypeError('reduce: list must be array or iterable')
979
+ }
980
+ let index = 0;
981
+ const len = list.length;
982
+
983
+ while (index < len) {
984
+ acc = reducer(acc, list[index], index, list);
985
+ index++;
986
+ }
987
+
988
+ return acc
989
+ }
990
+ }
991
+
992
+ function _arity(n, fn) {
993
+ switch (n) {
994
+ case 0:
995
+ return function () {
996
+ return fn.apply(this, arguments)
997
+ }
998
+ case 1:
999
+ return function (a0) {
1000
+ return fn.apply(this, arguments)
1001
+ }
1002
+ case 2:
1003
+ return function (a0, a1) {
1004
+ return fn.apply(this, arguments)
1005
+ }
1006
+ case 3:
1007
+ return function (a0, a1, a2) {
1008
+ return fn.apply(this, arguments)
1009
+ }
1010
+ case 4:
1011
+ return function (a0, a1, a2, a3) {
1012
+ return fn.apply(this, arguments)
1013
+ }
1014
+ case 5:
1015
+ return function (a0, a1, a2, a3, a4) {
1016
+ return fn.apply(this, arguments)
1017
+ }
1018
+ case 6:
1019
+ return function (a0, a1, a2, a3, a4, a5) {
1020
+ return fn.apply(this, arguments)
1021
+ }
1022
+ case 7:
1023
+ return function (a0, a1, a2, a3, a4, a5, a6) {
1024
+ return fn.apply(this, arguments)
1025
+ }
1026
+ case 8:
1027
+ return function (a0, a1, a2, a3, a4, a5, a6, a7) {
1028
+ return fn.apply(this, arguments)
1029
+ }
1030
+ case 9:
1031
+ return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {
1032
+ return fn.apply(this, arguments)
1033
+ }
1034
+ case 10:
1035
+ return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {
1036
+ return fn.apply(this, arguments)
1037
+ }
1038
+ default:
1039
+ throw new Error(
1040
+ 'First argument to _arity must be a non-negative integer no greater than ten',
1041
+ )
1042
+ }
1043
+ }
1044
+
1045
+ function _pipe(f, g) {
1046
+ return function () {
1047
+ return g.call(this, f.apply(this, arguments))
1048
+ }
1049
+ }
1050
+
1051
+ function pipeFn() {
1052
+ if (arguments.length === 0) {
1053
+ throw new Error('pipe requires at least one argument')
1054
+ }
1055
+
1056
+ return _arity(
1057
+ arguments[0].length,
1058
+ reduce(
1059
+ _pipe,
1060
+ arguments[0],
1061
+ )(Array.prototype.slice.call(arguments, 1, Number.POSITIVE_INFINITY)),
1062
+ )
1063
+ }
1064
+
1065
+ function pipe(...inputs) {
1066
+ const [input, ...fnList] = inputs;
1067
+
1068
+ return pipeFn(...fnList)(input)
1069
+ }
1070
+
1071
+ async function pipeAsync(input, ...fnList) {
1072
+ let willReturn = input;
1073
+ for (const fn of fnList) {
1074
+ const initialResult = fn(willReturn);
1075
+ willReturn = type(initialResult) === 'Promise' ? await initialResult : initialResult;
1076
+ }
1077
+ return willReturn
1078
+ }
1079
+
1080
+ function pluck(property) {
1081
+ return list => {
1082
+ const willReturn = [];
1083
+
1084
+ list.forEach(x => {
1085
+ if (x[property] !== undefined) {
1086
+ willReturn.push(x[property]);
1087
+ }
1088
+ });
1089
+
1090
+ return willReturn
1091
+ }
1092
+ }
1093
+
1094
+ function prepend(x) {
1095
+ return list=> [x].concat(list)
1096
+ }
1097
+
1098
+ function propEq(valueToMatch, propToFind) {
1099
+ return obj => {
1100
+ if (!obj) {
1101
+ return false
1102
+ }
1103
+
1104
+ return equalsFn(valueToMatch, obj[propToFind])
1105
+ }
1106
+ }
1107
+
1108
+ function propOr(defaultValue, property) {
1109
+ return obj => {
1110
+ if (!obj) {
1111
+ return defaultValue
1112
+ }
1113
+
1114
+ return defaultTo(defaultValue, obj[property])
1115
+ }
1116
+ }
1117
+
1118
+ function propSatisfies(predicate, property) {
1119
+ return obj => predicate(prop(property))
1120
+ }
1121
+
1122
+ function range(start){
1123
+ return end => {
1124
+ if (Number.isNaN(Number(start)) || Number.isNaN(Number(end))){
1125
+ throw new TypeError('Both arguments to range must be numbers')
1126
+ }
1127
+
1128
+ if (end < start) return []
1129
+
1130
+ const len = end - start;
1131
+ const willReturn = Array(len);
1132
+
1133
+ for (let i = 0; i < len; i++){
1134
+ willReturn[ i ] = start + i;
1135
+ }
1136
+
1137
+ return willReturn
1138
+ }
1139
+ }
1140
+
1141
+ function reject(predicate) {
1142
+ return list => filter(x => !predicate(x))
1143
+ }
1144
+
1145
+ function replace(pattern, replacer) {
1146
+ return str => str.replace(pattern, replacer)
1147
+ }
1148
+
1149
+ function replaceItemAtIndex(index, replaceFn) {
1150
+ return list => {
1151
+ const actualIndex = index < 0 ? list.length + index : index;
1152
+ if (index >= list.length || actualIndex < 0) {
1153
+ return list
1154
+ }
1155
+
1156
+ const clone = cloneList(list);
1157
+ clone[actualIndex] = replaceFn(clone[actualIndex]);
1158
+
1159
+ return clone
1160
+ }
1161
+ }
1162
+
1163
+ function sort(sortFn){
1164
+ return list => cloneList(list).sort(sortFn)
1165
+ }
1166
+
1167
+ function sortBy(sortFn){
1168
+ return list => {
1169
+ const clone = cloneList(list);
1170
+
1171
+ return clone.sort((a, b) => {
1172
+ const aSortResult = sortFn(a);
1173
+ const bSortResult = sortFn(b);
1174
+
1175
+ if (aSortResult === bSortResult) return 0
1176
+
1177
+ return aSortResult < bSortResult ? -1 : 1
1178
+ })
1179
+ }
1180
+ }
1181
+
1182
+ function sortHelper(a, b, listOfSortingFns) {
1183
+ let result = 0;
1184
+ let i = 0;
1185
+ while (result === 0 && i < listOfSortingFns.length) {
1186
+ result = listOfSortingFns[i](a, b);
1187
+ i += 1;
1188
+ }
1189
+
1190
+ return result
1191
+ }
1192
+
1193
+ function sortWith(listOfSortingFns) {
1194
+ return list => {
1195
+ if (Array.isArray(list) === false) {
1196
+ return []
1197
+ }
1198
+
1199
+ const clone = list.slice();
1200
+ clone.sort((a, b) => sortHelper(a, b, listOfSortingFns));
1201
+
1202
+ return clone
1203
+ }
1204
+ }
1205
+
1206
+ function split(separator){
1207
+ return str => str.split(separator)
1208
+ }
1209
+
1210
+ function splitEvery(sliceLength) {
1211
+ return list => {
1212
+ if (sliceLength < 1) {
1213
+ throw new Error('First argument to splitEvery must be a positive integer')
1214
+ }
1215
+
1216
+ const willReturn = [];
1217
+ let counter = 0;
1218
+
1219
+ while (counter < list.length) {
1220
+ willReturn.push(list.slice(counter, (counter += sliceLength)));
1221
+ }
1222
+
1223
+ return willReturn
1224
+ }
1225
+ }
1226
+
1227
+ function symmetricDifference(x) {
1228
+ return y => [
1229
+ ...filter(value => !includes(value)(y))(x),
1230
+ ...filter(value => !includes(value)(x))(y),
1231
+ ]
1232
+ }
1233
+
1234
+ function tail(listOrString) {
1235
+ return drop(1)(listOrString)
1236
+ }
1237
+
1238
+ function take(numberOfItems) {
1239
+ return input => {
1240
+ if (numberOfItems < 0) {
1241
+ return input.slice()
1242
+ }
1243
+ if (typeof input === 'string') {
1244
+ return input.slice(0, numberOfItems)
1245
+ }
1246
+
1247
+ return baseSlice(input, 0, numberOfItems)
1248
+ }
1249
+ }
1250
+
1251
+ function takeLast(numberOfItems) {
1252
+ return input => {
1253
+ const len = input.length;
1254
+ if (numberOfItems < 0) {
1255
+ return input.slice()
1256
+ }
1257
+ let numValue = numberOfItems > len ? len : numberOfItems;
1258
+
1259
+ if (typeof input === 'string') {
1260
+ return input.slice(len - numValue)
1261
+ }
1262
+
1263
+ numValue = len - numValue;
1264
+
1265
+ return baseSlice(input, numValue, len)
1266
+ }
1267
+ }
1268
+
1269
+ function takeLastWhile(predicate) {
1270
+ return input => {
1271
+ if (input.length === 0) {
1272
+ return input
1273
+ }
1274
+
1275
+ const toReturn = [];
1276
+ let counter = input.length;
1277
+
1278
+ while (counter) {
1279
+ const item = input[--counter];
1280
+ if (!predicate(item)) {
1281
+ break
1282
+ }
1283
+ toReturn.push(item);
1284
+ }
1285
+
1286
+ return toReturn.reverse()
1287
+ }
1288
+ }
1289
+
1290
+ function takeWhile(predicate) {
1291
+ return iterable => {
1292
+ const toReturn = [];
1293
+ let counter = 0;
1294
+
1295
+ while (counter < iterable.length) {
1296
+ const item = iterable[counter++];
1297
+ if (!predicate(item)) {
1298
+ break
1299
+ }
1300
+ toReturn.push(item);
1301
+ }
1302
+ return toReturn
1303
+ }
1304
+ }
1305
+
1306
+ function tap(fn) {
1307
+ return x => {
1308
+ fn(x);
1309
+
1310
+ return x
1311
+ }
1312
+ }
1313
+
1314
+ function test(pattern) {
1315
+ return str => str.search(pattern) !== -1
1316
+ }
1317
+
1318
+ function tryCatch(fn, fallback) {
1319
+ return input => {
1320
+ try {
1321
+ return fn(input)
1322
+ } catch (e) {
1323
+ return fallback
1324
+ }
1325
+ }
1326
+ }
1327
+
1328
+ function union(x) {
1329
+ return y => {
1330
+ const toReturn = cloneList(x);
1331
+
1332
+ y.forEach(yInstance => {
1333
+ if (!includes(yInstance)(x)) {
1334
+ toReturn.push(yInstance);
1335
+ }
1336
+ });
1337
+
1338
+ return toReturn
1339
+ }
1340
+ }
1341
+
1342
+ class _Set {
1343
+ constructor() {
1344
+ this.set = new Set();
1345
+ this.items = {};
1346
+ }
1347
+
1348
+ checkUniqueness(item) {
1349
+ const type$1 = type(item);
1350
+ if (['Null', 'Undefined', 'NaN'].includes(type$1)) {
1351
+ if (type$1 in this.items) {
1352
+ return false
1353
+ }
1354
+ this.items[type$1] = true;
1355
+
1356
+ return true
1357
+ }
1358
+ if (!['Object', 'Array'].includes(type$1)) {
1359
+ const prevSize = this.set.size;
1360
+ this.set.add(item);
1361
+
1362
+ return this.set.size !== prevSize
1363
+ }
1364
+
1365
+ if (!(type$1 in this.items)) {
1366
+ this.items[type$1] = [item];
1367
+
1368
+ return true
1369
+ }
1370
+
1371
+ if (_indexOf(item, this.items[type$1]) === -1) {
1372
+ this.items[type$1].push(item);
1373
+
1374
+ return true
1375
+ }
1376
+
1377
+ return false
1378
+ }
1379
+ }
1380
+
1381
+ function uniq(list) {
1382
+ const set = new _Set();
1383
+ const willReturn = [];
1384
+ list.forEach(item => {
1385
+ if (set.checkUniqueness(item)) {
1386
+ willReturn.push(item);
1387
+ }
1388
+ });
1389
+
1390
+ return willReturn
1391
+ }
1392
+
1393
+ function uniqBy(fn) {
1394
+ return list => {
1395
+ const set = new _Set();
1396
+
1397
+ return list.filter(item => set.checkUniqueness(fn(item)))
1398
+ }
1399
+ }
1400
+
1401
+ function includesWith(predicate, target, list) {
1402
+ let willReturn = false;
1403
+ let index = -1;
1404
+
1405
+ while (++index < list.length && !willReturn) {
1406
+ const value = list[index];
1407
+
1408
+ if (predicate(target, value)) {
1409
+ willReturn = true;
1410
+ }
1411
+ }
1412
+
1413
+ return willReturn
1414
+ }
1415
+
1416
+ function uniqWith(predicate) {
1417
+ return list => {
1418
+ let index = -1;
1419
+ const willReturn = [];
1420
+
1421
+ while (++index < list.length) {
1422
+ const value = list[index];
1423
+
1424
+ if (!includesWith(predicate, value, willReturn)) {
1425
+ willReturn.push(value);
1426
+ }
1427
+ }
1428
+
1429
+ return willReturn
1430
+ }
1431
+ }
1432
+
1433
+ function unless(predicate, whenFalseFn) {
1434
+ return input => {
1435
+ if (predicate(input)) {
1436
+ return input
1437
+ }
1438
+
1439
+ return whenFalseFn(input)
1440
+ }
1441
+ }
1442
+
1443
+ function unwind(property) {
1444
+ return obj => {
1445
+ return obj[property].map(x => ({
1446
+ ...obj,
1447
+ [property]: x,
1448
+ }))
1449
+ }
1450
+ }
1451
+
1452
+ function update(index, newValue) {
1453
+ return list => {
1454
+ const clone = cloneList(list);
1455
+ if (index === -1) {
1456
+ return clone.fill(newValue, index)
1457
+ }
1458
+
1459
+ return clone.fill(newValue, index, index + 1)
1460
+ }
1461
+ }
1462
+
1463
+ function when(predicate, whenTrueFn) {
1464
+ return input => {
1465
+ if (!predicate(input)) {
1466
+ return input
1467
+ }
1468
+
1469
+ return whenTrueFn(input)
1470
+ }
1471
+ }
1472
+
1473
+ function zip(left) {
1474
+ return right => {
1475
+ const result = [];
1476
+ const length = Math.min(left.length, right.length);
1477
+
1478
+ for (let i = 0; i < length; i++) {
1479
+ result[i] = [left[i], right[i]];
1480
+ }
1481
+
1482
+ return result
1483
+ }
1484
+ }
1485
+
1486
+ function zipWith(fn, x) {
1487
+ return y =>
1488
+ take(x.length > y.length ? y.length : x.length)(x).map((xInstance, i) =>
1489
+ fn(xInstance, y[i]),
1490
+ )
1491
+ }
1492
+
1493
+ exports._arity = _arity;
1494
+ exports._includes = _includes;
1495
+ exports._indexOf = _indexOf;
1496
+ exports._lastIndexOf = _lastIndexOf;
1497
+ exports.all = all;
1498
+ exports.allPass = allPass;
1499
+ exports.any = any;
1500
+ exports.anyPass = anyPass;
1501
+ exports.append = append;
1502
+ exports.checkObjectWithSpec = checkObjectWithSpec;
1503
+ exports.complement = complement;
1504
+ exports.concat = concat;
1505
+ exports.count = count;
1506
+ exports.countBy = countBy;
1507
+ exports.defaultTo = defaultTo;
1508
+ exports.drop = drop;
1509
+ exports.dropLast = dropLast;
1510
+ exports.dropLastWhile = dropLastWhile;
1511
+ exports.dropWhile = dropWhile;
1512
+ exports.eqBy = eqBy;
1513
+ exports.eqProps = eqProps;
1514
+ exports.equals = equals;
1515
+ exports.equalsFn = equalsFn;
1516
+ exports.evolve = evolve;
1517
+ exports.evolveFn = evolveFn;
1518
+ exports.excludes = excludes;
1519
+ exports.filter = filter;
1520
+ exports.filterObject = filterObject;
1521
+ exports.find = find;
1522
+ exports.findIndex = findIndex;
1523
+ exports.findLast = findLast;
1524
+ exports.findLastIndex = findLastIndex;
1525
+ exports.flatMap = flatMap;
1526
+ exports.flatten = flatten;
1527
+ exports.groupBy = groupBy;
1528
+ exports.head = head;
1529
+ exports.includes = includes;
1530
+ exports.indexOf = indexOf;
1531
+ exports.init = init;
1532
+ exports.innerJoin = innerJoin;
1533
+ exports.intersection = intersection;
1534
+ exports.intersperse = intersperse;
1535
+ exports.join = join;
1536
+ exports.last = last;
1537
+ exports.lastIndexOf = lastIndexOf;
1538
+ exports.map = map;
1539
+ exports.mapAsync = mapAsync;
1540
+ exports.mapObject = mapObject;
1541
+ exports.mapObjectAsync = mapObjectAsync;
1542
+ exports.match = match;
1543
+ exports.maxBy = maxBy;
1544
+ exports.merge = merge;
1545
+ exports.mergeTypes = mergeTypes;
1546
+ exports.minBy = minBy;
1547
+ exports.modifyPath = modifyPath;
1548
+ exports.none = none;
1549
+ exports.objOf = objOf;
1550
+ exports.omit = omit;
1551
+ exports.partition = partition;
1552
+ exports.partitionArray = partitionArray;
1553
+ exports.partitionObject = partitionObject;
1554
+ exports.path = path;
1555
+ exports.pick = pick;
1556
+ exports.pipe = pipe;
1557
+ exports.pipeAsync = pipeAsync;
1558
+ exports.pluck = pluck;
1559
+ exports.prepend = prepend;
1560
+ exports.prop = prop;
1561
+ exports.propEq = propEq;
1562
+ exports.propOr = propOr;
1563
+ exports.propSatisfies = propSatisfies;
1564
+ exports.range = range;
1565
+ exports.reduce = reduce;
1566
+ exports.reject = reject;
1567
+ exports.replace = replace;
1568
+ exports.replaceItemAtIndex = replaceItemAtIndex;
1569
+ exports.sort = sort;
1570
+ exports.sortBy = sortBy;
1571
+ exports.sortWith = sortWith;
1572
+ exports.split = split;
1573
+ exports.splitEvery = splitEvery;
1574
+ exports.symmetricDifference = symmetricDifference;
1575
+ exports.tail = tail;
1576
+ exports.take = take;
1577
+ exports.takeLast = takeLast;
1578
+ exports.takeLastWhile = takeLastWhile;
1579
+ exports.takeWhile = takeWhile;
1580
+ exports.tap = tap;
1581
+ exports.test = test;
1582
+ exports.tryCatch = tryCatch;
1583
+ exports.type = type;
1584
+ exports.union = union;
1585
+ exports.uniq = uniq;
1586
+ exports.uniqBy = uniqBy;
1587
+ exports.uniqWith = uniqWith;
1588
+ exports.unless = unless;
1589
+ exports.unwind = unwind;
1590
+ exports.update = update;
1591
+ exports.when = when;
1592
+ exports.zip = zip;
1593
+ exports.zipWith = zipWith;
1594
+
1595
+ }));