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