ramda-adjunct 2.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (719) hide show
  1. package/.nvmrc +1 -0
  2. package/CHANGELOG.md +973 -0
  3. package/LICENSE.md +25 -0
  4. package/README.md +297 -0
  5. package/SECURITY.md +43 -0
  6. package/dist/RA.node.js +11172 -0
  7. package/dist/RA.node.min.js +2 -0
  8. package/dist/RA.node.min.js.LICENSE.txt +22 -0
  9. package/dist/RA.web.js +11172 -0
  10. package/dist/RA.web.min.js +2 -0
  11. package/dist/RA.web.min.js.LICENSE.txt +22 -0
  12. package/dist/RA.web.standalone.js +27797 -0
  13. package/dist/RA.web.standalone.min.js +2 -0
  14. package/dist/RA.web.standalone.min.js.LICENSE.txt +22 -0
  15. package/es/Y.js +38 -0
  16. package/es/allEqual.js +25 -0
  17. package/es/allEqualTo.js +26 -0
  18. package/es/allIdentical.js +24 -0
  19. package/es/allIdenticalTo.js +26 -0
  20. package/es/allP.js +26 -0
  21. package/es/allSettledP.js +29 -0
  22. package/es/allUnique.js +23 -0
  23. package/es/anyP.js +28 -0
  24. package/es/appendFlipped.js +23 -0
  25. package/es/argsPass.js +38 -0
  26. package/es/async.js +57 -0
  27. package/es/cata.js +101 -0
  28. package/es/catchP.js +24 -0
  29. package/es/ceil.js +26 -0
  30. package/es/compact.js +21 -0
  31. package/es/concatAll.js +30 -0
  32. package/es/concatRight.js +29 -0
  33. package/es/contained.js +29 -0
  34. package/es/curryRight.js +24 -0
  35. package/es/curryRightN.js +32 -0
  36. package/es/defaultWhen.js +25 -0
  37. package/es/delayP.js +44 -0
  38. package/es/dispatch.js +75 -0
  39. package/es/divideNum.js +19 -0
  40. package/es/dropArgs.js +22 -0
  41. package/es/ensureArray.js +22 -0
  42. package/es/escapeRegExp.js +20 -0
  43. package/es/fantasy-land/Identity.js +309 -0
  44. package/es/fantasy-land/mapping.js +20 -0
  45. package/es/fantasy-land/traits.js +41 -0
  46. package/es/fantasy-land/util.js +11 -0
  47. package/es/filterIndexed.js +27 -0
  48. package/es/findOr.js +28 -0
  49. package/es/flattenDepth.js +50 -0
  50. package/es/flattenPath.js +27 -0
  51. package/es/flattenProp.js +28 -0
  52. package/es/floor.js +25 -0
  53. package/es/fnull.js +37 -0
  54. package/es/hasPath.js +38 -0
  55. package/es/inRange.js +29 -0
  56. package/es/index.js +252 -0
  57. package/es/internal/ap.js +20 -0
  58. package/es/internal/compareLength.js +5 -0
  59. package/es/internal/isOfTypeObject.js +7 -0
  60. package/es/internal/makeFlat.js +46 -0
  61. package/es/internal/ponyfills/Array.from.js +40 -0
  62. package/es/internal/ponyfills/Math.sign.js +5 -0
  63. package/es/internal/ponyfills/Math.trunc.js +14 -0
  64. package/es/internal/ponyfills/Number.MAX_SAFE_INTEGER.js +2 -0
  65. package/es/internal/ponyfills/Number.MIN_SAFE_INTEGER.js +2 -0
  66. package/es/internal/ponyfills/Number.isFinite.js +5 -0
  67. package/es/internal/ponyfills/Number.isInteger.js +4 -0
  68. package/es/internal/ponyfills/Number.isNaN.js +5 -0
  69. package/es/internal/ponyfills/Number.isSafeInteger.js +7 -0
  70. package/es/internal/ponyfills/Promise.allSettled.js +38 -0
  71. package/es/internal/ponyfills/Promise.any.js +77 -0
  72. package/es/internal/ponyfills/String.padEnd.js +24 -0
  73. package/es/internal/ponyfills/String.padStart.js +26 -0
  74. package/es/internal/ponyfills/String.repeat.js +46 -0
  75. package/es/internal/ponyfills/String.replaceAll.js +34 -0
  76. package/es/internal/ponyfills/String.trimEnd.js +3 -0
  77. package/es/internal/ponyfills/String.trimStart.js +3 -0
  78. package/es/invoke.js +20 -0
  79. package/es/invokeArgs.js +30 -0
  80. package/es/isArray.js +22 -0
  81. package/es/isArrayLike.js +87 -0
  82. package/es/isAsyncFunction.js +22 -0
  83. package/es/isBigInt.js +23 -0
  84. package/es/isBoolean.js +21 -0
  85. package/es/isDate.js +20 -0
  86. package/es/isEmptyArray.js +26 -0
  87. package/es/isEmptyString.js +27 -0
  88. package/es/isError.js +20 -0
  89. package/es/isEven.js +29 -0
  90. package/es/isFalse.js +29 -0
  91. package/es/isFalsy.js +26 -0
  92. package/es/isFinite.js +33 -0
  93. package/es/isFloat.js +34 -0
  94. package/es/isFunction.js +26 -0
  95. package/es/isGeneratorFunction.js +33 -0
  96. package/es/isIndexed.js +21 -0
  97. package/es/isInteger.js +35 -0
  98. package/es/isInteger32.js +28 -0
  99. package/es/isIterable.js +33 -0
  100. package/es/isMap.js +23 -0
  101. package/es/isNaN.js +41 -0
  102. package/es/isNaturalNumber.js +25 -0
  103. package/es/isNegative.js +25 -0
  104. package/es/isNegativeZero.js +22 -0
  105. package/es/isNilOrEmpty.js +25 -0
  106. package/es/isNonEmptyArray.js +27 -0
  107. package/es/isNonEmptyString.js +30 -0
  108. package/es/isNonNegative.js +28 -0
  109. package/es/isNonPositive.js +28 -0
  110. package/es/isNotArray.js +22 -0
  111. package/es/isNotArrayLike.js +24 -0
  112. package/es/isNotAsyncFunction.js +27 -0
  113. package/es/isNotBoolean.js +22 -0
  114. package/es/isNotDate.js +21 -0
  115. package/es/isNotEmpty.js +25 -0
  116. package/es/isNotFinite.js +29 -0
  117. package/es/isNotFloat.js +33 -0
  118. package/es/isNotFunction.js +29 -0
  119. package/es/isNotGeneratorFunction.js +27 -0
  120. package/es/isNotInteger.js +34 -0
  121. package/es/isNotMap.js +24 -0
  122. package/es/isNotNaN.js +35 -0
  123. package/es/isNotNil.js +22 -0
  124. package/es/isNotNilOrEmpty.js +26 -0
  125. package/es/isNotNull.js +22 -0
  126. package/es/isNotNumber.js +23 -0
  127. package/es/isNotObj.js +29 -0
  128. package/es/isNotObjLike.js +29 -0
  129. package/es/isNotPair.js +25 -0
  130. package/es/isNotPlainObj.js +35 -0
  131. package/es/isNotPrimitive.js +22 -0
  132. package/es/isNotRegExp.js +22 -0
  133. package/es/isNotSet.js +23 -0
  134. package/es/isNotString.js +21 -0
  135. package/es/isNotUndefined.js +22 -0
  136. package/es/isNotValidDate.js +22 -0
  137. package/es/isNotValidNumber.js +25 -0
  138. package/es/isNull.js +21 -0
  139. package/es/isNumber.js +23 -0
  140. package/es/isObj.js +31 -0
  141. package/es/isObjLike.js +30 -0
  142. package/es/isOdd.js +24 -0
  143. package/es/isPair.js +25 -0
  144. package/es/isPlainObj.js +52 -0
  145. package/es/isPositive.js +24 -0
  146. package/es/isPositiveZero.js +22 -0
  147. package/es/isPrimitive.js +31 -0
  148. package/es/isPromise.js +27 -0
  149. package/es/isPrototypeOf.js +34 -0
  150. package/es/isRegExp.js +21 -0
  151. package/es/isSafeInteger.js +34 -0
  152. package/es/isSentinelValue.js +26 -0
  153. package/es/isSet.js +22 -0
  154. package/es/isSparseArray.js +30 -0
  155. package/es/isString.js +20 -0
  156. package/es/isSymbol.js +27 -0
  157. package/es/isThenable.js +26 -0
  158. package/es/isTrue.js +25 -0
  159. package/es/isTruthy.js +27 -0
  160. package/es/isUndefined.js +22 -0
  161. package/es/isValidDate.js +26 -0
  162. package/es/isValidNumber.js +26 -0
  163. package/es/lastP.js +63 -0
  164. package/es/lengthEq.js +22 -0
  165. package/es/lengthGt.js +22 -0
  166. package/es/lengthGte.js +24 -0
  167. package/es/lengthLt.js +22 -0
  168. package/es/lengthLte.js +23 -0
  169. package/es/lengthNotEq.js +22 -0
  170. package/es/lensEq.js +27 -0
  171. package/es/lensIso.js +55 -0
  172. package/es/lensNotEq.js +26 -0
  173. package/es/lensNotSatisfy.js +28 -0
  174. package/es/lensSatisfies.js +31 -0
  175. package/es/lensTraverse.js +42 -0
  176. package/es/liftF.js +37 -0
  177. package/es/liftFN.js +47 -0
  178. package/es/list.js +19 -0
  179. package/es/mapIndexed.js +26 -0
  180. package/es/mergePath.js +30 -0
  181. package/es/mergePaths.js +27 -0
  182. package/es/mergeProp.js +30 -0
  183. package/es/mergeProps.js +26 -0
  184. package/es/mergeRight.js +26 -0
  185. package/es/move.js +25 -0
  186. package/es/nand.js +27 -0
  187. package/es/neither.js +39 -0
  188. package/es/noneP.js +28 -0
  189. package/es/nonePass.js +31 -0
  190. package/es/noop.js +19 -0
  191. package/es/nor.js +28 -0
  192. package/es/notAllPass.js +31 -0
  193. package/es/notAllUnique.js +23 -0
  194. package/es/notBoth.js +39 -0
  195. package/es/notEqual.js +30 -0
  196. package/es/omitBy.js +26 -0
  197. package/es/omitIndexes.js +27 -0
  198. package/es/overlaps.js +29 -0
  199. package/es/padCharsEnd.js +31 -0
  200. package/es/padCharsStart.js +29 -0
  201. package/es/padEnd.js +24 -0
  202. package/es/padStart.js +22 -0
  203. package/es/pathNotEq.js +32 -0
  204. package/es/pathOrLazy.js +25 -0
  205. package/es/paths.js +27 -0
  206. package/es/pickIndexes.js +30 -0
  207. package/es/propNotEq.js +29 -0
  208. package/es/rangeStep.js +36 -0
  209. package/es/reduceIndexed.js +30 -0
  210. package/es/reduceP.js +111 -0
  211. package/es/reduceRightP.js +117 -0
  212. package/es/rejectP.js +23 -0
  213. package/es/renameKeyWith.js +28 -0
  214. package/es/renameKeys.js +42 -0
  215. package/es/renameKeysWith.js +26 -0
  216. package/es/repeatStr.js +24 -0
  217. package/es/replaceAll.js +29 -0
  218. package/es/resolveP.js +29 -0
  219. package/es/round.js +24 -0
  220. package/es/seq.js +44 -0
  221. package/es/sign.js +27 -0
  222. package/es/skipTake.js +22 -0
  223. package/es/sliceFrom.js +22 -0
  224. package/es/sliceTo.js +22 -0
  225. package/es/sortByProps.js +52 -0
  226. package/es/spreadPath.js +25 -0
  227. package/es/spreadProp.js +25 -0
  228. package/es/stubArray.js +19 -0
  229. package/es/stubNull.js +18 -0
  230. package/es/stubObj.js +20 -0
  231. package/es/stubString.js +18 -0
  232. package/es/stubUndefined.js +19 -0
  233. package/es/subtractNum.js +19 -0
  234. package/es/thenCatchP.js +26 -0
  235. package/es/thenP.js +28 -0
  236. package/es/toArray.js +27 -0
  237. package/es/toInteger32.js +24 -0
  238. package/es/toUinteger32.js +26 -0
  239. package/es/trimCharsEnd.js +22 -0
  240. package/es/trimCharsStart.js +22 -0
  241. package/es/trimEnd.js +23 -0
  242. package/es/trimStart.js +22 -0
  243. package/es/trunc.js +27 -0
  244. package/es/unzipObjWith.js +26 -0
  245. package/es/viewOr.js +30 -0
  246. package/es/weave.js +36 -0
  247. package/es/weaveLazy.js +38 -0
  248. package/es/zipObjWith.js +26 -0
  249. package/lib/Y.js +44 -0
  250. package/lib/allEqual.js +35 -0
  251. package/lib/allEqualTo.js +32 -0
  252. package/lib/allIdentical.js +33 -0
  253. package/lib/allIdenticalTo.js +32 -0
  254. package/lib/allP.js +32 -0
  255. package/lib/allSettledP.js +41 -0
  256. package/lib/allUnique.js +32 -0
  257. package/lib/anyP.js +47 -0
  258. package/lib/appendFlipped.js +29 -0
  259. package/lib/argsPass.js +48 -0
  260. package/lib/async.js +67 -0
  261. package/lib/cata.js +110 -0
  262. package/lib/catchP.js +30 -0
  263. package/lib/ceil.js +32 -0
  264. package/lib/compact.js +30 -0
  265. package/lib/concatAll.js +40 -0
  266. package/lib/concatRight.js +35 -0
  267. package/lib/contained.js +35 -0
  268. package/lib/curryRight.js +33 -0
  269. package/lib/curryRightN.js +38 -0
  270. package/lib/defaultWhen.js +31 -0
  271. package/lib/delayP.js +54 -0
  272. package/lib/dispatch.js +50 -0
  273. package/lib/divideNum.js +25 -0
  274. package/lib/dropArgs.js +28 -0
  275. package/lib/ensureArray.js +31 -0
  276. package/lib/escapeRegExp.js +29 -0
  277. package/lib/fantasy-land/Identity.js +323 -0
  278. package/lib/fantasy-land/mapping.js +44 -0
  279. package/lib/fantasy-land/traits.js +77 -0
  280. package/lib/fantasy-land/util.js +21 -0
  281. package/lib/filterIndexed.js +33 -0
  282. package/lib/findOr.js +34 -0
  283. package/lib/flattenDepth.js +58 -0
  284. package/lib/flattenPath.js +33 -0
  285. package/lib/flattenProp.js +37 -0
  286. package/lib/floor.js +31 -0
  287. package/lib/fnull.js +47 -0
  288. package/lib/hasPath.js +47 -0
  289. package/lib/inRange.js +37 -0
  290. package/lib/index.js +863 -0
  291. package/lib/internal/ap.js +37 -0
  292. package/lib/internal/compareLength.js +12 -0
  293. package/lib/internal/isOfTypeObject.js +13 -0
  294. package/lib/internal/makeFlat.js +54 -0
  295. package/lib/internal/ponyfills/Array.from.js +52 -0
  296. package/lib/internal/ponyfills/Math.sign.js +11 -0
  297. package/lib/internal/ponyfills/Math.trunc.js +22 -0
  298. package/lib/internal/ponyfills/Number.MAX_SAFE_INTEGER.js +7 -0
  299. package/lib/internal/ponyfills/Number.MIN_SAFE_INTEGER.js +7 -0
  300. package/lib/internal/ponyfills/Number.isFinite.js +15 -0
  301. package/lib/internal/ponyfills/Number.isInteger.js +14 -0
  302. package/lib/internal/ponyfills/Number.isNaN.js +15 -0
  303. package/lib/internal/ponyfills/Number.isSafeInteger.js +18 -0
  304. package/lib/internal/ponyfills/Promise.allSettled.js +48 -0
  305. package/lib/internal/ponyfills/Promise.any.js +89 -0
  306. package/lib/internal/ponyfills/String.padEnd.js +34 -0
  307. package/lib/internal/ponyfills/String.padStart.js +36 -0
  308. package/lib/internal/ponyfills/String.repeat.js +55 -0
  309. package/lib/internal/ponyfills/String.replaceAll.js +44 -0
  310. package/lib/internal/ponyfills/String.trimEnd.js +10 -0
  311. package/lib/internal/ponyfills/String.trimStart.js +10 -0
  312. package/lib/invoke.js +29 -0
  313. package/lib/invokeArgs.js +40 -0
  314. package/lib/isArray.js +31 -0
  315. package/lib/isArrayLike.js +98 -0
  316. package/lib/isAsyncFunction.js +28 -0
  317. package/lib/isBigInt.js +29 -0
  318. package/lib/isBoolean.js +27 -0
  319. package/lib/isDate.js +26 -0
  320. package/lib/isEmptyArray.js +35 -0
  321. package/lib/isEmptyString.js +33 -0
  322. package/lib/isError.js +26 -0
  323. package/lib/isEven.js +39 -0
  324. package/lib/isFalse.js +35 -0
  325. package/lib/isFalsy.js +35 -0
  326. package/lib/isFinite.js +46 -0
  327. package/lib/isFloat.js +44 -0
  328. package/lib/isFunction.js +36 -0
  329. package/lib/isGeneratorFunction.js +40 -0
  330. package/lib/isIndexed.js +31 -0
  331. package/lib/isInteger.js +47 -0
  332. package/lib/isInteger32.js +37 -0
  333. package/lib/isIterable.js +42 -0
  334. package/lib/isMap.js +29 -0
  335. package/lib/isNaN.js +54 -0
  336. package/lib/isNaturalNumber.js +35 -0
  337. package/lib/isNegative.js +34 -0
  338. package/lib/isNegativeZero.js +28 -0
  339. package/lib/isNilOrEmpty.js +31 -0
  340. package/lib/isNonEmptyArray.js +37 -0
  341. package/lib/isNonEmptyString.js +41 -0
  342. package/lib/isNonNegative.js +37 -0
  343. package/lib/isNonPositive.js +37 -0
  344. package/lib/isNotArray.js +31 -0
  345. package/lib/isNotArrayLike.js +33 -0
  346. package/lib/isNotAsyncFunction.js +36 -0
  347. package/lib/isNotBoolean.js +31 -0
  348. package/lib/isNotDate.js +30 -0
  349. package/lib/isNotEmpty.js +31 -0
  350. package/lib/isNotFinite.js +38 -0
  351. package/lib/isNotFloat.js +42 -0
  352. package/lib/isNotFunction.js +38 -0
  353. package/lib/isNotGeneratorFunction.js +36 -0
  354. package/lib/isNotInteger.js +43 -0
  355. package/lib/isNotMap.js +33 -0
  356. package/lib/isNotNaN.js +44 -0
  357. package/lib/isNotNil.js +28 -0
  358. package/lib/isNotNilOrEmpty.js +35 -0
  359. package/lib/isNotNull.js +31 -0
  360. package/lib/isNotNumber.js +32 -0
  361. package/lib/isNotObj.js +38 -0
  362. package/lib/isNotObjLike.js +38 -0
  363. package/lib/isNotPair.js +34 -0
  364. package/lib/isNotPlainObj.js +44 -0
  365. package/lib/isNotPrimitive.js +31 -0
  366. package/lib/isNotRegExp.js +31 -0
  367. package/lib/isNotSet.js +32 -0
  368. package/lib/isNotString.js +30 -0
  369. package/lib/isNotUndefined.js +31 -0
  370. package/lib/isNotValidDate.js +31 -0
  371. package/lib/isNotValidNumber.js +34 -0
  372. package/lib/isNull.js +27 -0
  373. package/lib/isNumber.js +29 -0
  374. package/lib/isObj.js +42 -0
  375. package/lib/isObjLike.js +40 -0
  376. package/lib/isOdd.js +33 -0
  377. package/lib/isPair.js +34 -0
  378. package/lib/isPlainObj.js +64 -0
  379. package/lib/isPositive.js +33 -0
  380. package/lib/isPositiveZero.js +28 -0
  381. package/lib/isPrimitive.js +47 -0
  382. package/lib/isPromise.js +36 -0
  383. package/lib/isPrototypeOf.js +43 -0
  384. package/lib/isRegExp.js +27 -0
  385. package/lib/isSafeInteger.js +46 -0
  386. package/lib/isSentinelValue.js +35 -0
  387. package/lib/isSet.js +28 -0
  388. package/lib/isSparseArray.js +39 -0
  389. package/lib/isString.js +26 -0
  390. package/lib/isSymbol.js +33 -0
  391. package/lib/isThenable.js +35 -0
  392. package/lib/isTrue.js +31 -0
  393. package/lib/isTruthy.js +33 -0
  394. package/lib/isUndefined.js +31 -0
  395. package/lib/isValidDate.js +36 -0
  396. package/lib/isValidNumber.js +36 -0
  397. package/lib/lastP.js +76 -0
  398. package/lib/lengthEq.js +31 -0
  399. package/lib/lengthGt.js +31 -0
  400. package/lib/lengthGte.js +33 -0
  401. package/lib/lengthLt.js +31 -0
  402. package/lib/lengthLte.js +32 -0
  403. package/lib/lengthNotEq.js +31 -0
  404. package/lib/lensEq.js +33 -0
  405. package/lib/lensIso.js +62 -0
  406. package/lib/lensNotEq.js +35 -0
  407. package/lib/lensNotSatisfy.js +37 -0
  408. package/lib/lensSatisfies.js +40 -0
  409. package/lib/lensTraverse.js +51 -0
  410. package/lib/liftF.js +46 -0
  411. package/lib/liftFN.js +56 -0
  412. package/lib/list.js +25 -0
  413. package/lib/mapIndexed.js +32 -0
  414. package/lib/mergePath.js +39 -0
  415. package/lib/mergePaths.js +36 -0
  416. package/lib/mergeProp.js +39 -0
  417. package/lib/mergeProps.js +32 -0
  418. package/lib/mergeRight.js +32 -0
  419. package/lib/move.js +31 -0
  420. package/lib/nand.js +33 -0
  421. package/lib/neither.js +45 -0
  422. package/lib/noneP.js +39 -0
  423. package/lib/nonePass.js +37 -0
  424. package/lib/noop.js +28 -0
  425. package/lib/nor.js +34 -0
  426. package/lib/notAllPass.js +37 -0
  427. package/lib/notAllUnique.js +32 -0
  428. package/lib/notBoth.js +45 -0
  429. package/lib/notEqual.js +36 -0
  430. package/lib/omitBy.js +32 -0
  431. package/lib/omitIndexes.js +34 -0
  432. package/lib/overlaps.js +38 -0
  433. package/lib/padCharsEnd.js +44 -0
  434. package/lib/padCharsStart.js +42 -0
  435. package/lib/padEnd.js +32 -0
  436. package/lib/padStart.js +30 -0
  437. package/lib/pathNotEq.js +38 -0
  438. package/lib/pathOrLazy.js +31 -0
  439. package/lib/paths.js +33 -0
  440. package/lib/pickIndexes.js +37 -0
  441. package/lib/propNotEq.js +35 -0
  442. package/lib/rangeStep.js +45 -0
  443. package/lib/reduceIndexed.js +36 -0
  444. package/lib/reduceP.js +122 -0
  445. package/lib/reduceRightP.js +129 -0
  446. package/lib/rejectP.js +29 -0
  447. package/lib/renameKeyWith.js +37 -0
  448. package/lib/renameKeys.js +51 -0
  449. package/lib/renameKeysWith.js +32 -0
  450. package/lib/repeatStr.js +37 -0
  451. package/lib/replaceAll.js +42 -0
  452. package/lib/resolveP.js +35 -0
  453. package/lib/round.js +30 -0
  454. package/lib/seq.js +50 -0
  455. package/lib/sign.js +39 -0
  456. package/lib/skipTake.js +28 -0
  457. package/lib/sliceFrom.js +28 -0
  458. package/lib/sliceTo.js +28 -0
  459. package/lib/sortByProps.js +58 -0
  460. package/lib/spreadPath.js +31 -0
  461. package/lib/spreadProp.js +34 -0
  462. package/lib/stubArray.js +25 -0
  463. package/lib/stubNull.js +24 -0
  464. package/lib/stubObj.js +26 -0
  465. package/lib/stubString.js +24 -0
  466. package/lib/stubUndefined.js +25 -0
  467. package/lib/subtractNum.js +25 -0
  468. package/lib/thenCatchP.js +33 -0
  469. package/lib/thenP.js +34 -0
  470. package/lib/toArray.js +40 -0
  471. package/lib/toInteger32.js +30 -0
  472. package/lib/toUinteger32.js +32 -0
  473. package/lib/trimCharsEnd.js +31 -0
  474. package/lib/trimCharsStart.js +31 -0
  475. package/lib/trimEnd.js +36 -0
  476. package/lib/trimStart.js +35 -0
  477. package/lib/trunc.js +39 -0
  478. package/lib/unzipObjWith.js +35 -0
  479. package/lib/viewOr.js +36 -0
  480. package/lib/weave.js +42 -0
  481. package/lib/weaveLazy.js +44 -0
  482. package/lib/zipObjWith.js +32 -0
  483. package/package.json +204 -0
  484. package/src/Y.js +32 -0
  485. package/src/allEqual.js +28 -0
  486. package/src/allEqualTo.js +25 -0
  487. package/src/allIdentical.js +26 -0
  488. package/src/allIdenticalTo.js +25 -0
  489. package/src/allP.js +27 -0
  490. package/src/allSettledP.js +34 -0
  491. package/src/allUnique.js +25 -0
  492. package/src/anyP.js +33 -0
  493. package/src/appendFlipped.js +24 -0
  494. package/src/argsPass.js +40 -0
  495. package/src/async.js +60 -0
  496. package/src/cata.js +86 -0
  497. package/src/catchP.js +25 -0
  498. package/src/ceil.js +28 -0
  499. package/src/compact.js +23 -0
  500. package/src/concatAll.js +34 -0
  501. package/src/concatRight.js +30 -0
  502. package/src/contained.js +30 -0
  503. package/src/curryRight.js +26 -0
  504. package/src/curryRightN.js +29 -0
  505. package/src/defaultWhen.js +26 -0
  506. package/src/delayP.js +45 -0
  507. package/src/dispatch.js +74 -0
  508. package/src/divideNum.js +20 -0
  509. package/src/dropArgs.js +23 -0
  510. package/src/ensureArray.js +24 -0
  511. package/src/escapeRegExp.js +22 -0
  512. package/src/fantasy-land/Identity.js +270 -0
  513. package/src/fantasy-land/mapping.js +20 -0
  514. package/src/fantasy-land/traits.js +57 -0
  515. package/src/fantasy-land/util.js +23 -0
  516. package/src/filterIndexed.js +28 -0
  517. package/src/findOr.js +30 -0
  518. package/src/flattenDepth.js +39 -0
  519. package/src/flattenPath.js +26 -0
  520. package/src/flattenProp.js +28 -0
  521. package/src/floor.js +27 -0
  522. package/src/fnull.js +38 -0
  523. package/src/hasPath.js +40 -0
  524. package/src/inRange.js +34 -0
  525. package/src/index.js +241 -0
  526. package/src/internal/ap.js +30 -0
  527. package/src/internal/compareLength.js +7 -0
  528. package/src/internal/isOfTypeObject.js +3 -0
  529. package/src/internal/makeFlat.js +42 -0
  530. package/src/internal/ponyfills/Array.from.js +34 -0
  531. package/src/internal/ponyfills/Math.sign.js +3 -0
  532. package/src/internal/ponyfills/Math.trunc.js +14 -0
  533. package/src/internal/ponyfills/Number.MAX_SAFE_INTEGER.js +3 -0
  534. package/src/internal/ponyfills/Number.MIN_SAFE_INTEGER.js +3 -0
  535. package/src/internal/ponyfills/Number.isFinite.js +8 -0
  536. package/src/internal/ponyfills/Number.isInteger.js +10 -0
  537. package/src/internal/ponyfills/Number.isNaN.js +8 -0
  538. package/src/internal/ponyfills/Number.isSafeInteger.js +11 -0
  539. package/src/internal/ponyfills/Promise.allSettled.js +18 -0
  540. package/src/internal/ponyfills/Promise.any.js +29 -0
  541. package/src/internal/ponyfills/String.padEnd.js +25 -0
  542. package/src/internal/ponyfills/String.padStart.js +27 -0
  543. package/src/internal/ponyfills/String.repeat.js +49 -0
  544. package/src/internal/ponyfills/String.replaceAll.js +44 -0
  545. package/src/internal/ponyfills/String.trimEnd.js +5 -0
  546. package/src/internal/ponyfills/String.trimStart.js +5 -0
  547. package/src/invoke.js +22 -0
  548. package/src/invokeArgs.js +36 -0
  549. package/src/isArray.js +27 -0
  550. package/src/isArrayLike.js +79 -0
  551. package/src/isAsyncFunction.js +23 -0
  552. package/src/isBigInt.js +24 -0
  553. package/src/isBoolean.js +22 -0
  554. package/src/isDate.js +21 -0
  555. package/src/isEmptyArray.js +28 -0
  556. package/src/isEmptyString.js +28 -0
  557. package/src/isError.js +21 -0
  558. package/src/isEven.js +31 -0
  559. package/src/isFalse.js +31 -0
  560. package/src/isFalsy.js +28 -0
  561. package/src/isFinite.js +37 -0
  562. package/src/isFloat.js +36 -0
  563. package/src/isFunction.js +32 -0
  564. package/src/isGeneratorFunction.js +43 -0
  565. package/src/isIndexed.js +24 -0
  566. package/src/isInteger.js +40 -0
  567. package/src/isInteger32.js +28 -0
  568. package/src/isIterable.js +37 -0
  569. package/src/isMap.js +25 -0
  570. package/src/isNaN.js +45 -0
  571. package/src/isNaturalNumber.js +28 -0
  572. package/src/isNegative.js +27 -0
  573. package/src/isNegativeZero.js +23 -0
  574. package/src/isNilOrEmpty.js +26 -0
  575. package/src/isNonEmptyArray.js +29 -0
  576. package/src/isNonEmptyString.js +32 -0
  577. package/src/isNonNegative.js +30 -0
  578. package/src/isNonPositive.js +30 -0
  579. package/src/isNotArray.js +24 -0
  580. package/src/isNotArrayLike.js +26 -0
  581. package/src/isNotAsyncFunction.js +27 -0
  582. package/src/isNotBoolean.js +24 -0
  583. package/src/isNotDate.js +23 -0
  584. package/src/isNotEmpty.js +26 -0
  585. package/src/isNotFinite.js +31 -0
  586. package/src/isNotFloat.js +35 -0
  587. package/src/isNotFunction.js +29 -0
  588. package/src/isNotGeneratorFunction.js +27 -0
  589. package/src/isNotInteger.js +36 -0
  590. package/src/isNotMap.js +27 -0
  591. package/src/isNotNaN.js +37 -0
  592. package/src/isNotNil.js +23 -0
  593. package/src/isNotNilOrEmpty.js +28 -0
  594. package/src/isNotNull.js +24 -0
  595. package/src/isNotNumber.js +25 -0
  596. package/src/isNotObj.js +29 -0
  597. package/src/isNotObjLike.js +29 -0
  598. package/src/isNotPair.js +27 -0
  599. package/src/isNotPlainObj.js +35 -0
  600. package/src/isNotPrimitive.js +25 -0
  601. package/src/isNotRegExp.js +24 -0
  602. package/src/isNotSet.js +26 -0
  603. package/src/isNotString.js +23 -0
  604. package/src/isNotUndefined.js +24 -0
  605. package/src/isNotValidDate.js +24 -0
  606. package/src/isNotValidNumber.js +27 -0
  607. package/src/isNull.js +22 -0
  608. package/src/isNumber.js +24 -0
  609. package/src/isObj.js +31 -0
  610. package/src/isObjLike.js +30 -0
  611. package/src/isOdd.js +29 -0
  612. package/src/isPair.js +27 -0
  613. package/src/isPlainObj.js +65 -0
  614. package/src/isPositive.js +26 -0
  615. package/src/isPositiveZero.js +23 -0
  616. package/src/isPrimitive.js +45 -0
  617. package/src/isPromise.js +32 -0
  618. package/src/isPrototypeOf.js +36 -0
  619. package/src/isRegExp.js +22 -0
  620. package/src/isSafeInteger.js +40 -0
  621. package/src/isSentinelValue.js +26 -0
  622. package/src/isSet.js +24 -0
  623. package/src/isSparseArray.js +43 -0
  624. package/src/isString.js +21 -0
  625. package/src/isSymbol.js +29 -0
  626. package/src/isThenable.js +28 -0
  627. package/src/isTrue.js +27 -0
  628. package/src/isTruthy.js +28 -0
  629. package/src/isUndefined.js +24 -0
  630. package/src/isValidDate.js +29 -0
  631. package/src/isValidNumber.js +28 -0
  632. package/src/lastP.js +54 -0
  633. package/src/lengthEq.js +24 -0
  634. package/src/lengthGt.js +24 -0
  635. package/src/lengthGte.js +26 -0
  636. package/src/lengthLt.js +24 -0
  637. package/src/lengthLte.js +25 -0
  638. package/src/lengthNotEq.js +24 -0
  639. package/src/lensEq.js +28 -0
  640. package/src/lensIso.js +51 -0
  641. package/src/lensNotEq.js +28 -0
  642. package/src/lensNotSatisfy.js +30 -0
  643. package/src/lensSatisfies.js +33 -0
  644. package/src/lensTraverse.js +44 -0
  645. package/src/liftF.js +37 -0
  646. package/src/liftFN.js +45 -0
  647. package/src/list.js +20 -0
  648. package/src/mapIndexed.js +27 -0
  649. package/src/mergePath.js +32 -0
  650. package/src/mergePaths.js +29 -0
  651. package/src/mergeProp.js +30 -0
  652. package/src/mergeProps.js +27 -0
  653. package/src/mergeRight.js +27 -0
  654. package/src/move.js +26 -0
  655. package/src/nand.js +27 -0
  656. package/src/neither.js +38 -0
  657. package/src/noneP.js +35 -0
  658. package/src/nonePass.js +32 -0
  659. package/src/noop.js +21 -0
  660. package/src/nor.js +28 -0
  661. package/src/notAllPass.js +32 -0
  662. package/src/notAllUnique.js +25 -0
  663. package/src/notBoth.js +38 -0
  664. package/src/notEqual.js +31 -0
  665. package/src/omitBy.js +25 -0
  666. package/src/omitIndexes.js +27 -0
  667. package/src/overlaps.js +32 -0
  668. package/src/padCharsEnd.js +37 -0
  669. package/src/padCharsStart.js +35 -0
  670. package/src/padEnd.js +25 -0
  671. package/src/padStart.js +23 -0
  672. package/src/pathNotEq.js +31 -0
  673. package/src/pathOrLazy.js +30 -0
  674. package/src/paths.js +26 -0
  675. package/src/pickIndexes.js +30 -0
  676. package/src/propNotEq.js +30 -0
  677. package/src/rangeStep.js +37 -0
  678. package/src/reduceIndexed.js +31 -0
  679. package/src/reduceP.js +96 -0
  680. package/src/reduceRightP.js +101 -0
  681. package/src/rejectP.js +24 -0
  682. package/src/renameKeyWith.js +30 -0
  683. package/src/renameKeys.js +40 -0
  684. package/src/renameKeysWith.js +27 -0
  685. package/src/repeatStr.js +30 -0
  686. package/src/replaceAll.js +35 -0
  687. package/src/resolveP.js +28 -0
  688. package/src/round.js +26 -0
  689. package/src/seq.js +38 -0
  690. package/src/sign.js +33 -0
  691. package/src/skipTake.js +33 -0
  692. package/src/sliceFrom.js +23 -0
  693. package/src/sliceTo.js +23 -0
  694. package/src/sortByProps.js +31 -0
  695. package/src/spreadPath.js +26 -0
  696. package/src/spreadProp.js +25 -0
  697. package/src/stubArray.js +18 -0
  698. package/src/stubNull.js +19 -0
  699. package/src/stubObj.js +19 -0
  700. package/src/stubString.js +19 -0
  701. package/src/stubUndefined.js +19 -0
  702. package/src/subtractNum.js +20 -0
  703. package/src/thenCatchP.js +27 -0
  704. package/src/thenP.js +29 -0
  705. package/src/toArray.js +32 -0
  706. package/src/toInteger32.js +22 -0
  707. package/src/toUinteger32.js +26 -0
  708. package/src/trimCharsEnd.js +25 -0
  709. package/src/trimCharsStart.js +25 -0
  710. package/src/trimEnd.js +30 -0
  711. package/src/trimStart.js +29 -0
  712. package/src/trunc.js +33 -0
  713. package/src/unzipObjWith.js +40 -0
  714. package/src/viewOr.js +32 -0
  715. package/src/weave.js +35 -0
  716. package/src/weaveLazy.js +37 -0
  717. package/src/zipObjWith.js +27 -0
  718. package/tonicExample.js +4 -0
  719. package/types/index.d.ts +1553 -0
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports["default"] = void 0;
5
+
6
+ var _ramda = require("ramda");
7
+
8
+ /* eslint-disable max-len */
9
+
10
+ /**
11
+ * Determines whether a nested path on an object doesn't have a specific value,
12
+ * in R.equals terms. Most likely used to filter a list.
13
+ *
14
+ * @func pathNotEq
15
+ * @memberOf RA
16
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.4.0|v2.4.0}
17
+ * @category Relation
18
+ * @sig [Idx] => a => {a} => Boolean
19
+ * @sig Idx = String | Int
20
+ * @param {Array} path The path of the nested property to use
21
+ * @param {a} val The value to compare the nested property with
22
+ * @param {Object} object The object to check the nested property in
23
+ * @return {boolean} Returns Boolean `false` if the value equals the nested object property, `true` otherwise
24
+ * @see {@link http://ramdajs.com/docs/#pathEq|R.pathEq}
25
+ * @example
26
+ *
27
+ * const user1 = { address: { zipCode: 90210 } };
28
+ * const user2 = { address: { zipCode: 55555 } };
29
+ * const user3 = { name: 'Bob' };
30
+ * const users = [ user1, user2, user3 ];
31
+ * const isFamous = R.pathNotEq(['address', 'zipCode'], 90210);
32
+ * R.filter(isFamous, users); //=> [ user2, user3 ]
33
+ */
34
+
35
+ /* eslint-enable max-len */
36
+ var pathNotEq = (0, _ramda.complement)(_ramda.pathEq);
37
+ var _default = pathNotEq;
38
+ exports["default"] = _default;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports["default"] = void 0;
5
+
6
+ var _ramda = require("ramda");
7
+
8
+ /**
9
+ * If the given, non-null object has a value at the given path, returns the value at that path.
10
+ * Otherwise returns the result of invoking the provided function with the object.
11
+ *
12
+ * @func pathOrLazy
13
+ * @memberOf RA
14
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}
15
+ * @category Object
16
+ * @typedef Idx = String | Int
17
+ * @sig ({a} -> a) -> [Idx] -> {a} -> a
18
+ * @param {Function} defaultFn The function that will return the default value.
19
+ * @param {Array} path The path to use.
20
+ * @param {Object} obj The object to retrieve the nested property from.
21
+ * @return {*} The data at `path` of the supplied object or the default value.
22
+ * @example
23
+ *
24
+ * RA.pathOrLazy(() => 'N/A', ['a', 'b'], {a: {b: 2}}); //=> 2
25
+ * RA.pathOrLazy(() => 'N/A', ['a', 'b'], {c: {b: 2}}); //=> "N/A"
26
+ */
27
+ var pathOrLazy = (0, _ramda.curryN)(3, function (defaultFn, path, obj) {
28
+ return (0, _ramda.when)((0, _ramda.identical)(defaultFn), (0, _ramda.partial)((0, _ramda.unary)(defaultFn), [obj]), (0, _ramda.pathOr)(defaultFn, path, obj));
29
+ });
30
+ var _default = pathOrLazy;
31
+ exports["default"] = _default;
package/lib/paths.js ADDED
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports["default"] = void 0;
5
+
6
+ var _ramda = require("ramda");
7
+
8
+ /**
9
+ * Acts as multiple path: arrays of paths in, array of values out. Preserves order.
10
+ *
11
+ * @func paths
12
+ * @memberOf RA
13
+ * @since {@link https://char0n.github.io/ramda-adjunct/1.2.0|v1.2.0}
14
+ * @category List
15
+ * @sig [[k]] -> {k: v} - [v]
16
+ * @param {Array} ps The property paths to fetch
17
+ * @param {Object} obj The object to query
18
+ * @return {Array} The corresponding values or partially applied function
19
+ * @see {@link https://github.com/ramda/ramda/wiki/Cookbook#derivative-of-rprops-for-deep-fields|Ramda Cookbook}, {@link http://ramdajs.com/docs/#props|R.props}
20
+ * @example
21
+ *
22
+ * const obj = {
23
+ * a: { b: { c: 1 } },
24
+ * x: 2,
25
+ * };
26
+ *
27
+ * RA.paths([['a', 'b', 'c'], ['x']], obj); //=> [1, 2]
28
+ */
29
+ var paths = (0, _ramda.curry)(function (ps, obj) {
30
+ return (0, _ramda.ap)([(0, _ramda.path)(_ramda.__, obj)], ps);
31
+ });
32
+ var _default = paths;
33
+ exports["default"] = _default;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports["default"] = void 0;
5
+
6
+ var _ramda = require("ramda");
7
+
8
+ // helpers
9
+ var filterIndexed = (0, _ramda.addIndex)(_ramda.filter);
10
+ var containsIndex = (0, _ramda.curry)(function (indexes, val, index) {
11
+ return (0, _ramda.contains)(index, indexes);
12
+ });
13
+ /**
14
+ * Picks values from list by indexes.
15
+ *
16
+ * Note: pickIndexes will skip non existing indexes. If you want to include them
17
+ * use ramda's `props` function.
18
+ *
19
+ * @func pickIndexes
20
+ * @memberOf RA
21
+ * @since {@link https://char0n.github.io/ramda-adjunct/1.1.0|v1.1.0}
22
+ * @category List
23
+ * @sig [Number] -> [a] -> [a]
24
+ * @param {Array} indexes The indexes to pick
25
+ * @param {Array} list The list to pick values from
26
+ * @return {Array} New array containing only values at `indexes`
27
+ * @see {@link http://ramdajs.com/docs/#pick|R.pick}, {@link RA.omitIndexes|omitIndexes}
28
+ * @example
29
+ *
30
+ * RA.pickIndexes([0, 2], ['a', 'b', 'c']); //=> ['a', 'c']
31
+ */
32
+
33
+ var pickIndexes = (0, _ramda.curry)(function (indexes, list) {
34
+ return filterIndexed(containsIndex(indexes), list);
35
+ });
36
+ var _default = pickIndexes;
37
+ exports["default"] = _default;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports["default"] = void 0;
5
+
6
+ var _ramda = require("ramda");
7
+
8
+ /**
9
+ * Returns true if the specified object property is not equal,
10
+ * in R.equals terms, to the given value; false otherwise.
11
+ *
12
+ * @func propNotEq
13
+ * @memberOf RA
14
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.3.0|v2.3.0}
15
+ * @category Relation
16
+ * @sig String -> a -> Object -> Boolean
17
+ * @param {String} name The property to pick
18
+ * @param {a} val The value to compare to
19
+ * @param {Object} object The object, that presumably contains value under the property
20
+ * @return {boolean} Comparison result
21
+ * @see {@link http://ramdajs.com/docs/#propEq|R.propEq}
22
+ * @example
23
+ *
24
+ * const abby = { name: 'Abby', age: 7, hair: 'blond' };
25
+ * const fred = { name: 'Fred', age: 12, hair: 'brown' };
26
+ * const rusty = { name: 'Rusty', age: 10, hair: 'brown' };
27
+ * const alois = { name: 'Alois', age: 15, disposition: 'surly' };
28
+ * const kids = [abby, fred, rusty, alois];
29
+ * const hasNotBrownHair = RA.propNotEq('hair', 'brown');
30
+ *
31
+ * R.filter(hasNotBrownHair, kids); //=> [abby, alois]
32
+ */
33
+ var propNotEq = (0, _ramda.complement)(_ramda.propEq);
34
+ var _default = propNotEq;
35
+ exports["default"] = _default;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports["default"] = void 0;
5
+
6
+ var _ramda = require("ramda");
7
+
8
+ var _floor = _interopRequireDefault(require("./floor"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
+
12
+ /**
13
+ * Creates an array of numbers (positive and/or negative) progressing from start up to, but not including, end.
14
+ *
15
+ * `Note`: JavaScript follows the IEEE-754 standard for resolving floating-point values which can produce unexpected results.
16
+ *
17
+ * @func rangeStep
18
+ * @memberOf RA
19
+ * @category List
20
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.30.0|v2.30.0}
21
+ * @sig Number -> Number -> Number -> [Number]
22
+ * @param {number} step The value to increment or decrement by
23
+ * @param {number} from The start of the range
24
+ * @param {number} to The end of the range
25
+ * @return {number[]} Returns the range of numbers
26
+ * @see {@link http://ramdajs.com/docs/#range|R.range}
27
+ * @example
28
+ *
29
+ * RA.rangeStep(1, 0, 4); // => [0, 1 ,2, 3]
30
+ * RA.rangeStep(-1, 0, -4); // => [0, -1, -2, -3]
31
+ * RA.rangeStep(1, 1, 5); // => [1, 2, 3, 4]
32
+ * RA.rangeStep(5, 0, 20); // => [0, 5, 10, 15]
33
+ * RA.rangeStep(-1, 0, -4); // => [0, -1, -2, -3]
34
+ * RA.rangeStep(0, 1, 4); // => [1, 1, 1]
35
+ * RA.rangeStep(1, 0, 0); // => []
36
+ */
37
+ var rangeStep = (0, _ramda.curryN)(3, function (step, from, to) {
38
+ var callback = step === 0 ? (0, _ramda.always)(from) : function (n) {
39
+ return from + step * n;
40
+ };
41
+ var rangeEnd = step === 0 ? to - from : (0, _floor["default"])((to - from) / step);
42
+ return (0, _ramda.map)(callback, (0, _ramda.range)(0, rangeEnd));
43
+ });
44
+ var _default = rangeStep;
45
+ exports["default"] = _default;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports["default"] = void 0;
5
+
6
+ var _ramda = require("ramda");
7
+
8
+ /**
9
+ * {@link http://ramdajs.com/docs/#reduce|R.reduce} function that more closely resembles Array.prototype.reduce.
10
+ * It takes two new parameters to its callback function: the current index, and the entire list.
11
+ *
12
+ * `reduceIndexed` implementation is simple : `
13
+ * const reduceIndexed = R.addIndex(R.reduce);
14
+ * `
15
+ * @func reduceIndexed
16
+ * @memberOf RA
17
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.5.0|v2.5.0}
18
+ * @category List
19
+ * @typedef Idx = Number
20
+ * @sig ((a, b, Idx, [b]) => a) -> a -> [b] -> a
21
+ * @param {Function} fn The iterator function. Receives four values,
22
+ * the accumulator, the current element from the array, index and the entire list
23
+ * @param {*} acc The accumulator value
24
+ * @param {Array} list The list to iterate over
25
+ * @return {*} The final, accumulated value
26
+ * @see {@link http://ramdajs.com/docs/#addIndex|R.addIndex}, {@link http://ramdajs.com/docs/#reduce|R.reduce}
27
+ * @example
28
+ *
29
+ * const initialList = ['f', 'o', 'o', 'b', 'a', 'r'];
30
+ *
31
+ * reduceIndexed((acc, val, idx, list) => acc + '-' + val + idx, '', initialList);
32
+ * //=> "-f0-o1-o2-b3-a4-r5"
33
+ */
34
+ var reduceIndexed = (0, _ramda.addIndex)(_ramda.reduce);
35
+ var _default = reduceIndexed;
36
+ exports["default"] = _default;
package/lib/reduceP.js ADDED
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports["default"] = void 0;
5
+
6
+ var _ramda = require("ramda");
7
+
8
+ var _isUndefined = _interopRequireDefault(require("./isUndefined"));
9
+
10
+ var _resolveP = _interopRequireDefault(require("./resolveP"));
11
+
12
+ var _allP = _interopRequireDefault(require("./allP"));
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
+
16
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
17
+
18
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
19
+
20
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
21
+
22
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
23
+
24
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
25
+
26
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
27
+
28
+ /* eslint-disable max-len */
29
+
30
+ /**
31
+ * Given an `Iterable`(arrays are `Iterable`), or a promise of an `Iterable`,
32
+ * which produces promises (or a mix of promises and values),
33
+ * iterate over all the values in the `Iterable` into an array and
34
+ * reduce the array to a value using the given iterator function.
35
+ *
36
+ * If the iterator function returns a promise, then the result of the promise is awaited,
37
+ * before continuing with next iteration. If any promise in the array is rejected or a promise
38
+ * returned by the iterator function is rejected, the result is rejected as well.
39
+ *
40
+ * If `initialValue` is `undefined` (or a promise that resolves to `undefined`) and
41
+ * the `Iterable` contains only 1 item, the callback will not be called and
42
+ * the `Iterable's` single item is returned. If the `Iterable` is empty, the callback
43
+ * will not be called and `initialValue` is returned (which may be undefined).
44
+ *
45
+ * This function is basically equivalent to {@link http://bluebirdjs.com/docs/api/promise.reduce.html|bluebird.reduce}.
46
+ *
47
+ * @func reduceP
48
+ * @memberOf RA
49
+ * @since {@link https://char0n.github.io/ramda-adjunct/1.13.0|v1.13.0}
50
+ * @category List
51
+ * @typedef MaybePromise = Promise.<*> | *
52
+ * @sig ((Promise a, MaybePromise b) -> Promise a) -> MaybePromise a -> MaybePromise [MaybePromise b] -> Promise a
53
+ * @param {Function} fn The iterator function. Receives two values, the accumulator and the current element from the list
54
+ * @param {*|Promise.<*>} acc The accumulator value
55
+ * @param {Array.<*>|Promise.<Array<*|Promise.<*>>>} list The list to iterate over
56
+ * @return {Promise} The final, accumulated value
57
+ * @see {@link http://ramdajs.com/docs/#reduce|R.reduce}, {@link RA.reduceRightP|reduceRightP}, {@link http://bluebirdjs.com/docs/api/promise.reduce.html|bluebird.reduce}
58
+ * @example
59
+ *
60
+ * RA.reduceP(
61
+ * (total, fileName) => fs
62
+ * .readFileAsync(fileName, 'utf8')
63
+ * .then(contents => total + parseInt(contents, 10)),
64
+ * 0,
65
+ * ['file1.txt', 'file2.txt', 'file3.txt']
66
+ * ); // => Promise(10)
67
+ *
68
+ * RA.reduceP(
69
+ * (total, fileName) => fs
70
+ * .readFileAsync(fileName, 'utf8')
71
+ * .then(contents => total + parseInt(contents, 10)),
72
+ * Promise.resolve(0),
73
+ * ['file1.txt', 'file2.txt', 'file3.txt']
74
+ * ); // => Promise(10)
75
+ *
76
+ * RA.reduceP(
77
+ * (total, fileName) => fs
78
+ * .readFileAsync(fileName, 'utf8')
79
+ * .then(contents => total + parseInt(contents, 10)),
80
+ * 0,
81
+ * [Promise.resolve('file1.txt'), 'file2.txt', 'file3.txt']
82
+ * ); // => Promise(10)
83
+ *
84
+ * RA.reduceP(
85
+ * (total, fileName) => fs
86
+ * .readFileAsync(fileName, 'utf8')
87
+ * .then(contents => total + parseInt(contents, 10)),
88
+ * 0,
89
+ * Promise.resolve([Promise.resolve('file1.txt'), 'file2.txt', 'file3.txt'])
90
+ * ); // => Promise(10)
91
+ *
92
+ */
93
+
94
+ /* esline-enable max-len */
95
+ var reduceP = (0, _ramda.curryN)(3, function (fn, acc, list) {
96
+ return (0, _resolveP["default"])(list).then(function (iterable) {
97
+ var listLength = (0, _ramda.length)(iterable);
98
+
99
+ if (listLength === 0) {
100
+ return acc;
101
+ }
102
+
103
+ var reducer = (0, _ramda.reduce)(function (accP, currentValueP) {
104
+ return accP.then(function (previousValue) {
105
+ return (0, _allP["default"])([previousValue, currentValueP]);
106
+ }).then(function (_ref) {
107
+ var _ref2 = _slicedToArray(_ref, 2),
108
+ previousValue = _ref2[0],
109
+ currentValue = _ref2[1];
110
+
111
+ if ((0, _isUndefined["default"])(previousValue) && listLength === 1) {
112
+ return currentValue;
113
+ }
114
+
115
+ return fn(previousValue, currentValue);
116
+ });
117
+ });
118
+ return reducer((0, _resolveP["default"])(acc), iterable);
119
+ });
120
+ });
121
+ var _default = reduceP;
122
+ exports["default"] = _default;
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports["default"] = void 0;
5
+
6
+ var _ramda = require("ramda");
7
+
8
+ var _isUndefined = _interopRequireDefault(require("./isUndefined"));
9
+
10
+ var _resolveP = _interopRequireDefault(require("./resolveP"));
11
+
12
+ var _allP = _interopRequireDefault(require("./allP"));
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
+
16
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
17
+
18
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
19
+
20
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
21
+
22
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
23
+
24
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
25
+
26
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
27
+
28
+ // in older ramda versions the order of the arguments is flipped
29
+ var flipArgs = (0, _ramda.pipe)((0, _ramda.reduceRight)(_ramda.concat, ''), (0, _ramda.equals)('ba'))(['a', 'b']);
30
+ /* eslint-disable max-len */
31
+
32
+ /**
33
+ * Given an `Iterable`(arrays are `Iterable`), or a promise of an `Iterable`,
34
+ * which produces promises (or a mix of promises and values),
35
+ * iterate over all the values in the `Iterable` into an array and
36
+ * reduce the array to a value using the given iterator function.
37
+ *
38
+ * Similar to {@link RA.reduceP|reduceP} except moves through the input list from the right to the left.
39
+ * The iterator function receives two values: (value, acc),
40
+ * while the arguments' order of reduceP's iterator function is (acc, value).
41
+ *
42
+ * @func reduceRightP
43
+ * @memberOf RA
44
+ * @since {@link https://char0n.github.io/ramda-adjunct/1.13.0|v1.13.0}
45
+ * @category List
46
+ * @typedef MaybePromise = Promise.<*> | *
47
+ * @sig ((MaybePromise b, Promise a) -> Promise a) -> MaybePromise a -> MaybePromise [MaybePromise b] -> Promise a
48
+ * @param {Function} fn The iterator function. Receives two values, the current element from the list and the accumulator
49
+ * @param {*|Promise.<*>} acc The accumulator value
50
+ * @param {Array.<*>|Promise.<Array<*|Promise.<*>>>} list The list to iterate over
51
+ * @return {Promise} The final, accumulated value
52
+ * @see {@link RA.reduceP|reduceP}, {@link http://bluebirdjs.com/docs/api/promise.reduce.html|bluebird.reduce}
53
+ * @example
54
+ *
55
+ * RA.reduceRightP(
56
+ * (fileName, total) => fs
57
+ * .readFileAsync(fileName, 'utf8')
58
+ * .then(contents => total + parseInt(contents, 10)),
59
+ * 0,
60
+ * ['file1.txt', 'file2.txt', 'file3.txt']
61
+ * ); // => Promise(10)
62
+ *
63
+ * RA.reduceRightP(
64
+ * (fileName, total) => fs
65
+ * .readFileAsync(fileName, 'utf8')
66
+ * .then(contents => total + parseInt(contents, 10)),
67
+ * Promise.resolve(0),
68
+ * ['file1.txt', 'file2.txt', 'file3.txt']
69
+ * ); // => Promise(10)
70
+ *
71
+ * RA.reduceRightP(
72
+ * (fileName, total) => fs
73
+ * .readFileAsync(fileName, 'utf8')
74
+ * .then(contents => total + parseInt(contents, 10)),
75
+ * 0,
76
+ * [Promise.resolve('file1.txt'), 'file2.txt', 'file3.txt']
77
+ * ); // => Promise(10)
78
+ *
79
+ * RA.reduceRightP(
80
+ * (fileName, total) => fs
81
+ * .readFileAsync(fileName, 'utf8')
82
+ * .then(contents => total + parseInt(contents, 10)),
83
+ * 0,
84
+ * Promise.resolve([Promise.resolve('file1.txt'), 'file2.txt', 'file3.txt'])
85
+ * ); // => Promise(10)
86
+ *
87
+ */
88
+
89
+ /* esline-enable max-len */
90
+
91
+ var reduceRightP = (0, _ramda.curryN)(3, function (fn, acc, list) {
92
+ return (0, _resolveP["default"])(list).then(function (iterable) {
93
+ var listLength = (0, _ramda.length)(iterable);
94
+
95
+ if (listLength === 0) {
96
+ return acc;
97
+ }
98
+
99
+ var reducer = (0, _ramda.reduceRight)(function (arg1, arg2) {
100
+ var accP;
101
+ var currentValueP;
102
+
103
+ if (flipArgs) {
104
+ accP = arg1;
105
+ currentValueP = arg2;
106
+ } else {
107
+ accP = arg2;
108
+ currentValueP = arg1;
109
+ }
110
+
111
+ return accP.then(function (previousValue) {
112
+ return (0, _allP["default"])([previousValue, currentValueP]);
113
+ }).then(function (_ref) {
114
+ var _ref2 = _slicedToArray(_ref, 2),
115
+ previousValue = _ref2[0],
116
+ currentValue = _ref2[1];
117
+
118
+ if ((0, _isUndefined["default"])(previousValue) && listLength === 1) {
119
+ return currentValue;
120
+ }
121
+
122
+ return fn(currentValue, previousValue);
123
+ });
124
+ });
125
+ return reducer((0, _resolveP["default"])(acc), iterable);
126
+ });
127
+ });
128
+ var _default = reduceRightP;
129
+ exports["default"] = _default;
package/lib/rejectP.js ADDED
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports["default"] = void 0;
5
+
6
+ var _ramda = require("ramda");
7
+
8
+ /**
9
+ * Composable shortcut for `Promise.reject`.
10
+ *
11
+ * Returns a Promise object that is rejected with the given reason.
12
+ *
13
+ * @func rejectP
14
+ * @memberOf RA
15
+ * @since {@link https://char0n.github.io/ramda-adjunct/1.16.0|v1.16.0}
16
+ * @category Function
17
+ * @sig a -> Promise a
18
+ * @param {*} [reason=undefined] Reason why this Promise rejected
19
+ * @return {Promise} A Promise that is rejected with the given reason
20
+ * @see {@link RA.resolveP|resolveP}
21
+ * @example
22
+ *
23
+ * RA.rejectP(); //=> Promise(undefined)
24
+ * RA.rejectP('a'); //=> Promise('a')
25
+ * RA.rejectP([1, 2, 3]); //=> Promise([1, 2, 3])
26
+ */
27
+ var rejectP = (0, _ramda.bind)(Promise.reject, Promise);
28
+ var _default = rejectP;
29
+ exports["default"] = _default;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports["default"] = void 0;
5
+
6
+ var _ramda = require("ramda");
7
+
8
+ var _renameKeysWith = _interopRequireDefault(require("./renameKeysWith"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
+
12
+ /**
13
+ * Creates a new object with the own properties of the provided object, but the
14
+ * key `key` renamed according to logic of renaming function.
15
+ *
16
+ * Keep in mind that in case the new key name already existed on the object,
17
+ * the behaviour is undefined and the result may vary between various JS engines!
18
+ *
19
+ * @func renameKeyWith
20
+ * @memberOf RA
21
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.29.0|v2.29.0}
22
+ * @category Object
23
+ * @sig (k -> k) -> k -> {k: v} -> {k: v}
24
+ * @param {Function} fn Function that renames the keys
25
+ * @param {!string} key Key to rename
26
+ * @param {!Object} obj Provided object
27
+ * @return {!Object} New object with renamed key
28
+ * @see {@link RA.renameKeysWith|renameKeysWith}
29
+ * @example
30
+ *
31
+ * RA.renameKeyWith(R.concat('a'), 'A', { A: 1 }) //=> { aA: 1 }
32
+ */
33
+ var renameKeyWith = (0, _ramda.curry)(function (fn, key, obj) {
34
+ return (0, _renameKeysWith["default"])((0, _ramda.when)((0, _ramda.equals)(key), fn), obj);
35
+ });
36
+ var _default = renameKeyWith;
37
+ exports["default"] = _default;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports["default"] = void 0;
5
+
6
+ var _ramda = require("ramda");
7
+
8
+ var _renameKeysWith = _interopRequireDefault(require("./renameKeysWith"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
+
12
+ var valueOrKey = function valueOrKey(keysMap) {
13
+ return function (key) {
14
+ if ((0, _ramda.has)(key, keysMap)) {
15
+ return keysMap[key];
16
+ }
17
+
18
+ return key;
19
+ };
20
+ };
21
+ /**
22
+ * Creates a new object with the own properties of the provided object, but the
23
+ * keys renamed according to the keysMap object as `{oldKey: newKey}`.
24
+ * When some key is not found in the keysMap, then it's passed as-is.
25
+ *
26
+ * Keep in mind that in the case of keys conflict is behaviour undefined and
27
+ * the result may vary between various JS engines!
28
+ *
29
+ * @func renameKeys
30
+ * @memberOf RA
31
+ * @since {@link https://char0n.github.io/ramda-adjunct/1.5.0|v1.5.0}
32
+ * @category Object
33
+ * @sig {a: b} -> {a: *} -> {b: *}
34
+ * @param {!Object} keysMap
35
+ * @param {!Object} obj
36
+ * @return {!Object} New object with renamed keys
37
+ * @see {@link https://github.com/ramda/ramda/wiki/Cookbook#rename-keys-of-an-object|Ramda Cookbook}, {@link RA.renameKeysWith|renameKeysWith}
38
+ * @example
39
+ *
40
+ * const input = { firstName: 'Elisia', age: 22, type: 'human' };
41
+ *
42
+ * RA.renameKeys({ firstName: 'name', type: 'kind', foo: 'bar' })(input);
43
+ * //=> { name: 'Elisia', age: 22, kind: 'human' }
44
+ */
45
+
46
+
47
+ var renameKeys = (0, _ramda.curry)(function (keysMap, obj) {
48
+ return (0, _renameKeysWith["default"])(valueOrKey(keysMap), obj);
49
+ });
50
+ var _default = renameKeys;
51
+ exports["default"] = _default;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports["default"] = void 0;
5
+
6
+ var _ramda = require("ramda");
7
+
8
+ /**
9
+ * Creates a new object with the own properties of the provided object, but the
10
+ * keys renamed according to logic of renaming function.
11
+ *
12
+ * Keep in mind that in the case of keys conflict is behaviour undefined and
13
+ * the result may vary between various JS engines!
14
+ *
15
+ * @func renameKeysWith
16
+ * @memberOf RA
17
+ * @since {@link https://char0n.github.io/ramda-adjunct/1.5.0|v1.5.0}
18
+ * @category Object
19
+ * @sig (a -> b) -> {a: *} -> {b: *}
20
+ * @param {Function} fn Function that renames the keys
21
+ * @param {!Object} obj Provided object
22
+ * @return {!Object} New object with renamed keys
23
+ * @see {@link https://github.com/ramda/ramda/wiki/Cookbook#rename-keys-of-an-object-by-a-function|Ramda Cookbook}, {@link RA.renameKeys|renameKeys}
24
+ * @example
25
+ *
26
+ * RA.renameKeysWith(R.concat('a'), { A: 1, B: 2, C: 3 }) //=> { aA: 1, aB: 2, aC: 3 }
27
+ */
28
+ var renameKeysWith = (0, _ramda.curry)(function (fn, obj) {
29
+ return (0, _ramda.pipe)(_ramda.toPairs, (0, _ramda.map)((0, _ramda.over)((0, _ramda.lensIndex)(0), fn)), _ramda.fromPairs)(obj);
30
+ });
31
+ var _default = renameKeysWith;
32
+ exports["default"] = _default;