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,25 @@
1
+ import { curryN, converge, merge, dissocPath, pathOr } from 'ramda';
2
+ /**
3
+ * Spreads object under property path onto provided object.
4
+ * It's like {@link RA.flattenPath|flattenPath}, but removes object under the property path.
5
+ *
6
+ * @func spreadPath
7
+ * @memberOf RA
8
+ * @since {@link https://char0n.github.io/ramda-adjunct/1.19.0|v1.19.0}
9
+ * @category Object
10
+ * @typedef Idx = String | Int
11
+ * @sig [Idx] -> {k: v} -> {k: v}
12
+ * @param {!Array.<string|number>} path The property path to spread
13
+ * @param {!Object} obj The provided object
14
+ * @return {!Object} The result of the spread
15
+ * @see {@link RA.spreadProp|spreadProp}, {@link RA.flattenPath|flattenPath}
16
+ * @example
17
+ *
18
+ * RA.spreadPath(
19
+ * ['b1', 'b2'],
20
+ * { a: 1, b1: { b2: { c: 3, d: 4 } } }
21
+ * ); // => { a: 1, c: 3, d: 4, b1: {} };
22
+ */
23
+
24
+ var spreadPath = curryN(2, converge(merge, [dissocPath, pathOr({})]));
25
+ export default spreadPath;
@@ -0,0 +1,25 @@
1
+ import { of, curry } from 'ramda';
2
+ import spreadPath from './spreadPath';
3
+ /**
4
+ * Spreads object under property onto provided object.
5
+ * It's like {@link RA.flattenProp|flattenProp}, but removes object under the property.
6
+ *
7
+ * @func spreadProp
8
+ * @memberOf RA
9
+ * @since {@link https://char0n.github.io/ramda-adjunct/1.19.0|v1.19.0}
10
+ * @category Object
11
+ * @typedef Idx = String | Int
12
+ * @sig Idx -> {k: v} -> {k: v}
13
+ * @param {!string|number} prop The property to spread
14
+ * @param {!Object} obj The provided object
15
+ * @return {!Object} The result of the spread
16
+ * @see {@link RA.spreadPath|spreadPath}, {@link RA.flattenProp|flattenProp}
17
+ * @example
18
+ *
19
+ * RA.spreadProp('b', { a: 1, b: { c: 3, d: 4 } }); // => { a: 1, c: 3, d: 4 };
20
+ */
21
+
22
+ var spreadProp = curry(function (prop, obj) {
23
+ return spreadPath(of(prop), obj);
24
+ });
25
+ export default spreadProp;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * A function that returns new empty array on every call.
3
+ *
4
+ * @func stubArray
5
+ * @memberOf RA
6
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.1.0|v2.1.0}
7
+ * @category Function
8
+ * @sig ... -> Array
9
+ * @return {Array} New empty array
10
+ * @example
11
+ *
12
+ * RA.stubArray(); //=> []
13
+ * RA.stubArray(1, 2, 3); //=> []
14
+ */
15
+ var stubArray = function stubArray() {
16
+ return [];
17
+ };
18
+
19
+ export default stubArray;
package/es/stubNull.js ADDED
@@ -0,0 +1,18 @@
1
+ import { always } from 'ramda';
2
+ /**
3
+ * A function that returns `null`.
4
+ *
5
+ * @func stubNull
6
+ * @memberOf RA
7
+ * @since {@link https://char0n.github.io/ramda-adjunct/1.6.0|v1.6.0}
8
+ * @category Function
9
+ * @sig ... -> null
10
+ * @return {null}
11
+ * @example
12
+ *
13
+ * RA.stubNull(); //=> null
14
+ * RA.stubNull(1, 2, 3); //=> null
15
+ */
16
+
17
+ var stubNull = always(null);
18
+ export default stubNull;
package/es/stubObj.js ADDED
@@ -0,0 +1,20 @@
1
+ /**
2
+ * This function returns a new empty object.
3
+ *
4
+ * @func stubObj
5
+ * @memberOf RA
6
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.1.0|v2.1.0}
7
+ * @category Function
8
+ * @sig ... -> Object
9
+ * @aliases stubObject
10
+ * @return {Object} Returns the new empty object.
11
+ * @example
12
+ *
13
+ * RA.stubObj(); //=> {}
14
+ * RA.stubObj(1, 2, 3); //=> {}
15
+ */
16
+ var stubObj = function stubObj() {
17
+ return {};
18
+ };
19
+
20
+ export default stubObj;
@@ -0,0 +1,18 @@
1
+ import { always } from 'ramda';
2
+ /**
3
+ * A function that returns empty string.
4
+ *
5
+ * @func stubString
6
+ * @memberOf RA
7
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.1.0|v2.1.0}
8
+ * @category Function
9
+ * @sig ... -> String
10
+ * @return {string} The empty string
11
+ * @example
12
+ *
13
+ * RA.stubString(); //=> ''
14
+ * RA.stubString(1, 2, 3); //=> ''
15
+ */
16
+
17
+ var stubString = always('');
18
+ export default stubString;
@@ -0,0 +1,19 @@
1
+ import { always } from 'ramda';
2
+ /**
3
+ * A function that returns `undefined`.
4
+ *
5
+ * @func stubUndefined
6
+ * @memberOf RA
7
+ * @since {@link https://char0n.github.io/ramda-adjunct/1.0.0|v1.0.0}
8
+ * @category Function
9
+ * @sig ... -> undefined
10
+ * @return {undefined}
11
+ * @example
12
+ *
13
+ * RA.stubUndefined(); //=> undefined
14
+ * RA.stubUndefined(1, 2, 3); //=> undefined
15
+ */
16
+
17
+ var stubUndefined = always(void 0); // eslint-disable-line no-void
18
+
19
+ export default stubUndefined;
@@ -0,0 +1,19 @@
1
+ import { flip, subtract } from 'ramda';
2
+ /**
3
+ * Subtracts its first argument from its second argument.
4
+ *
5
+ * @func subtractNum
6
+ * @memberOf RA
7
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}
8
+ * @category Math
9
+ * @sig Number -> Number -> Number
10
+ * @param {number} subtrahend the number to subtract
11
+ * @param {number} minuend the number to subtract from
12
+ * @return {number} A number representing the difference of subtracting the subtrahend from the minuend
13
+ * @example
14
+ *
15
+ * RA.subtractNum(3, 5); //=> 2
16
+ */
17
+
18
+ var subtractNum = flip(subtract);
19
+ export default subtractNum;
@@ -0,0 +1,26 @@
1
+ import { invoker } from 'ramda';
2
+ /**
3
+ * Composable shortcut for `Promise.then` that allows for success and failure callbacks.
4
+ * The thenCatchP function returns a Promise. It takes three arguments: a callback function for the success of the Promise,
5
+ * a callback function for the failure of the Promise, and the promise instance itself.
6
+ *
7
+ * @func thenCatchP
8
+ * @memberOf RA
9
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.27.0|v2.27.0}
10
+ * @category Function
11
+ * @sig (a -> b) -> (c -> d) -> Promise a -> Promise b | d
12
+ * @param {Function} onFulfilled A Function called if the Promise is fulfilled. This function has one argument, the fulfillment value
13
+ * @param {Function} onRejected A Function called if the Promise is rejected. This function has one argument, the error
14
+ * @param {Promise} promise Any Promise or Thenable object
15
+ * @return {Promise}
16
+ * @see {@link RA.resolveP|resolveP}, {@link RA.rejectP|rejectP}, {@link RA.allP|allP}
17
+ * @example
18
+ *
19
+ * const promise = Promise.resolve(1);
20
+ * const add1 = x => x + 1;
21
+ *
22
+ * RA.thenCatchP(add1, console.error, promise); // => Promise(2)
23
+ */
24
+
25
+ export var thenCatchP = invoker(2, 'then');
26
+ export default thenCatchP;
package/es/thenP.js ADDED
@@ -0,0 +1,28 @@
1
+ import { invoker } from 'ramda';
2
+ /**
3
+ * Composable shortcut for `Promise.then`.
4
+ * The thenP function returns a Promise. It takes two arguments: a callback function for the success of the Promise
5
+ * and the promise instance itself.
6
+ *
7
+ * @func thenP
8
+ * @memberOf RA
9
+ * @aliases then
10
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.8.0|v2.8.0}
11
+ * @deprecated since v2.12.0; available in ramda@0.26.0 as R.then
12
+ * @category Function
13
+ * @sig (a -> Promise b | b) -> Promise b
14
+ * @param {Function} onFulfilled A Function called if the Promise is fulfilled. This function has one argument, the fulfillment value
15
+ * @param {Promise} promise Any Promise or Thenable object
16
+ * @return {Promise} A Promise in the pending status
17
+
18
+ * @see {@link RA.resolveP|resolveP}, {@link RA.rejectP|rejectP}, {@link RA.allP|allP}
19
+ * @example
20
+ *
21
+ * const promise = Promise.resolve(1);
22
+ * const add1 = v => v + 1;
23
+ *
24
+ * RA.thenP(add1, promise); // => Promise(2)
25
+ */
26
+
27
+ var thenP = invoker(1, 'then');
28
+ export default thenP;
package/es/toArray.js ADDED
@@ -0,0 +1,27 @@
1
+ import { ifElse, values, curryN } from 'ramda';
2
+ import isIterable from './isIterable';
3
+ import isFunction from './isFunction';
4
+ import ponyfill from './internal/ponyfills/Array.from';
5
+ export var fromPonyfill = curryN(1, ponyfill);
6
+ var fromArray = isFunction(Array.from) ? curryN(1, Array.from) : fromPonyfill;
7
+ /**
8
+ * Converts value to an array.
9
+ *
10
+ * @func toArray
11
+ * @memberOf RA
12
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}
13
+ * @category List
14
+ * @sig * -> [a]
15
+ * @param {*} val The value to convert
16
+ * @return {Array}
17
+ * @example
18
+ *
19
+ * RA.toArray([1, 2]); //=> [1, 2]
20
+ * RA.toArray({'foo': 1, 'bar': 2}); //=> [1, 2]
21
+ * RA.toArray('abc'); //=> ['a', 'b', 'c']
22
+ * RA.toArray(1); //=> []
23
+ * RA.toArray(null); //=> []
24
+ */
25
+
26
+ var toArray = ifElse(isIterable, fromArray, values);
27
+ export default toArray;
@@ -0,0 +1,24 @@
1
+ import { curryN } from 'ramda';
2
+ /**
3
+ * Converts double-precision 64-bit binary format IEEE 754 to signed 32 bit integer number.
4
+ *
5
+ * @func toInteger32
6
+ * @aliases toInt32
7
+ * @memberOf RA
8
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.28.0|v2.28.0}
9
+ * @category Math
10
+ * @sig Number -> Number
11
+ * @param {number} number A number
12
+ * @return {number} A signed 32-bit integer number
13
+ * @see {@link RA.toUInteger32|toUInteger32}, {@link http://speakingjs.com/es5/ch11.html#integers_via_bitwise_operators}
14
+ * @example
15
+ *
16
+ * RA.toInteger32(2 ** 35); // => 0
17
+ * RA.toInteger32(2 ** 30); // => 1073741824
18
+ */
19
+ // eslint-disable-next-line no-bitwise
20
+
21
+ var toInteger32 = curryN(1, function (val) {
22
+ return val >> 0;
23
+ });
24
+ export default toInteger32;
@@ -0,0 +1,26 @@
1
+ import { curryN } from 'ramda';
2
+ /**
3
+ * Converts double-precision 64-bit binary format IEEE 754 to unsigned 32 bit integer number.
4
+ *
5
+ * @func toUinteger32
6
+ * @aliases toUint32
7
+ * @memberOf RA
8
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.28.0|v2.28.0}
9
+ * @category Math
10
+ * @sig Number -> Number
11
+ * @param {number} val Value to be converted.
12
+ * @return {number}
13
+ * @see {@link RA.toInteger32|toInteger32}, {@link http://speakingjs.com/es5/ch11.html#integers_via_bitwise_operators}
14
+ * @example
15
+ *
16
+ * RA.toUinteger32(1.5); //=> 1
17
+ * RA.toInteger32(2 ** 35); // => 0
18
+ * RA.toInteger32(2 ** 31); // => 2147483648
19
+ * RA.toInteger32(2 ** 30); // => 1073741824
20
+ */
21
+ // eslint-disable-next-line no-bitwise
22
+
23
+ var toUinteger32 = curryN(1, function (val) {
24
+ return val >>> 0;
25
+ });
26
+ export default toUinteger32;
@@ -0,0 +1,22 @@
1
+ import { curry, dropLastWhile, join, pipe, split } from 'ramda';
2
+ import contained from './contained';
3
+ /**
4
+ * Removes specified characters from the end of a string.
5
+ *
6
+ * @func trimCharsEnd
7
+ * @memberOf RA
8
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.25.0|v2.25.0}
9
+ * @category String
10
+ * @sig String -> String
11
+ * @param {string} chars The characters to trim
12
+ * @param {string} value The string to trim
13
+ * @return {string} Returns the trimmed string.
14
+ * @example
15
+ *
16
+ * RA.trimCharsEnd('_-', '-_-abc-_-'); //=> '-_-abc'
17
+ */
18
+
19
+ var trimCharsEnd = curry(function (chars, value) {
20
+ return pipe(split(''), dropLastWhile(contained(chars)), join(''))(value);
21
+ });
22
+ export default trimCharsEnd;
@@ -0,0 +1,22 @@
1
+ import { curry, dropWhile, join, pipe, split } from 'ramda';
2
+ import contained from './contained';
3
+ /**
4
+ * Removes specified characters from the beginning of a string.
5
+ *
6
+ * @func trimCharsStart
7
+ * @memberOf RA
8
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.24.0|v2.24.0}
9
+ * @category String
10
+ * @sig String -> String
11
+ * @param {string} chars The characters to trim
12
+ * @param {string} value The string to trim
13
+ * @return {string} Returns the trimmed string.
14
+ * @example
15
+ *
16
+ * RA.trimCharsStart('_-', '-_-abc-_-'); //=> 'abc-_-'
17
+ */
18
+
19
+ var trimCharsStart = curry(function (chars, value) {
20
+ return pipe(split(''), dropWhile(contained(chars)), join(''))(value);
21
+ });
22
+ export default trimCharsStart;
package/es/trimEnd.js ADDED
@@ -0,0 +1,23 @@
1
+ import { invoker } from 'ramda';
2
+ import ponyfill from './internal/ponyfills/String.trimEnd';
3
+ import isFunction from './isFunction';
4
+ export var trimEndPonyfill = ponyfill;
5
+ export var trimEndInvoker = invoker(0, 'trimEnd');
6
+ /**
7
+ * Removes whitespace from the end of a string.
8
+ *
9
+ * @func trimEnd
10
+ * @memberOf RA
11
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}
12
+ * @category String
13
+ * @sig String -> String
14
+ * @param {string} value String value to have the whitespace removed from the end
15
+ * @return {string} A new string representing the calling string stripped of whitespace from its end (right end).
16
+ * @see {@link RA.trimEnd|trimEnd}
17
+ * @example
18
+ *
19
+ * RA.trimEnd('abc '); //=> 'abc'
20
+ */
21
+
22
+ var trimEnd = isFunction(String.prototype.trimEnd) ? trimEndInvoker : trimEndPonyfill;
23
+ export default trimEnd;
@@ -0,0 +1,22 @@
1
+ import { invoker } from 'ramda';
2
+ import ponyfill from './internal/ponyfills/String.trimStart';
3
+ import isFunction from './isFunction';
4
+ export var trimStartPonyfill = ponyfill;
5
+ export var trimStartInvoker = invoker(0, 'trimStart');
6
+ /**
7
+ * Removes whitespace from the beginning of a string.
8
+ *
9
+ * @func trimStart
10
+ * @memberOf RA
11
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}
12
+ * @category String
13
+ * @sig String -> String
14
+ * @param {string} value String value to have the whitespace removed from the beginning
15
+ * @return {string} A new string representing the calling string stripped of whitespace from its beginning (left end).
16
+ * @example
17
+ *
18
+ * RA.trimStart(' abc'); //=> 'abc'
19
+ */
20
+
21
+ var trimStart = isFunction(String.prototype.trimStart) ? trimStartInvoker : trimStartPonyfill;
22
+ export default trimStart;
package/es/trunc.js ADDED
@@ -0,0 +1,27 @@
1
+ import { bind, curryN } from 'ramda';
2
+ import ponyfill from './internal/ponyfills/Math.trunc';
3
+ import isFunction from './isFunction';
4
+ export var truncPonyfill = curryN(1, ponyfill);
5
+ /**
6
+ * Returns the integer part of a number by removing any fractional digits.
7
+ *
8
+ * @func trunc
9
+ * @memberOf RA
10
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.15.0|v2.15.0}
11
+ * @category Math
12
+ * @sig Number | String -> Number
13
+ * @param {number|string} number The number to trunc
14
+ * @return {number} The integer part of the given number
15
+ * @example
16
+ *
17
+ * RA.trunc(13.37); //=> 13
18
+ * RA.trunc(42.84); //=> 42
19
+ * RA.trunc(0.123); //=> 0
20
+ * RA.trunc(-0.123); //=> -0
21
+ * RA.trunc('-1.123'); //=> -1
22
+ * RA.trunc(NaN); //=> NaN
23
+ * RA.trunc('foo'); //=> NaN
24
+ */
25
+
26
+ var trunc = isFunction(Math.trunc) ? curryN(1, bind(Math.trunc, Math)) : truncPonyfill;
27
+ export default trunc;
@@ -0,0 +1,26 @@
1
+ import { apply, curryN, flip, map, pipe, toPairs, transpose, when } from 'ramda';
2
+ import lengthEq from './lengthEq';
3
+ /**
4
+ * Creates a new list out of the supplied object by applying the function to each key/value pairing.
5
+ *
6
+ * @func unzipObjWith
7
+ * @memberOf RA
8
+ * @category Object
9
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}
10
+ * @sig (v, k) => [k, v] -> { k: v } -> [[k], [v]]
11
+ * @param {Function} fn The function to transform each value-key pair
12
+ * @param {Object} obj Object to unzip
13
+ * @return {Array} A pair of tw lists: a list of keys and a list of values
14
+ * @see {@link https://ramdajs.com/docs/#zipObj|zipObj}, {@link RA.zipObjWith|zipObjWith}
15
+ * @example
16
+ *
17
+ * RA.unzipObjWith((v, k) => [`new${k.toUpperCase()}`, 2 * v], { a: 1, b: 2, c: 3 });
18
+ * //=> [['newA', 'newB', 'newC'], [2, 4, 6]]
19
+ */
20
+
21
+ var unzipObjWith = curryN(2, function (fn, obj) {
22
+ return pipe(toPairs, map(pipe(flip, apply)(fn)), transpose, when(lengthEq(0), function () {
23
+ return [[], []];
24
+ }))(obj);
25
+ });
26
+ export default unzipObjWith;
package/es/viewOr.js ADDED
@@ -0,0 +1,30 @@
1
+ import { view, defaultTo, curryN } from 'ramda';
2
+ /**
3
+ * Returns a "view" of the given data structure, determined by the given lens.
4
+ * The lens's focus determines which portion of the data structure is visible.
5
+ * Returns the defaultValue if "view" is null, undefined or NaN; otherwise the "view" is returned.
6
+ *
7
+ * @func viewOr
8
+ * @memberOf RA
9
+ * @since {@link https://char0n.github.io/ramda-adjunct/1.13.0|1.13.0}
10
+ * @category Object
11
+ * @typedef Lens s b = Functor f => (b -> f b) -> s -> f s
12
+ * @sig a -> Lens s b -> s -> b | a
13
+ * @see {@link http://ramdajs.com/docs/#view|R.view}
14
+ * @param {*} defaultValue The default value
15
+ * @param {Function} lens Van Laarhoven lens
16
+ * @param {*} data The data structure
17
+ * @returns {*} "view" or defaultValue
18
+ *
19
+ * @example
20
+ *
21
+ * RA.viewOr('N/A', R.lensProp('x'), {}); // => 'N/A'
22
+ * RA.viewOr('N/A', R.lensProp('x'), { x: 1 }); // => 1
23
+ * RA.viewOr('some', R.lensProp('y'), { y: null }); // => 'some'
24
+ * RA.viewOr('some', R.lensProp('y'), { y: false }); // => false
25
+ */
26
+
27
+ var viewOr = curryN(3, function (defaultValue, lens, data) {
28
+ return defaultTo(defaultValue, view(lens, data));
29
+ });
30
+ export default viewOr;
package/es/weave.js ADDED
@@ -0,0 +1,36 @@
1
+ import { curryN } from 'ramda';
2
+ /**
3
+ * Weaves a configuration into function returning the runnable monad like `Reader` or `Free`.
4
+ * This allows us to pre-bind the configuration in advance and use the weaved function
5
+ * without need to explicitly pass the configuration on every call.
6
+ *
7
+ * @func weave
8
+ * @memberOf RA
9
+ * @since {@link https://char0n.github.io/ramda-adjunct/1.7.0|v1.7.0}
10
+ * @category Function
11
+ * @sig (*... -> *) -> * -> (*... -> *)
12
+ * @param {Function} fn The function to weave
13
+ * @param {*} config The configuration to weave into fn
14
+ * @return {Function} Auto-curried weaved function
15
+ * @example
16
+ *
17
+ * const { Reader: reader } = require('monet');
18
+ *
19
+ * const log = value => reader(
20
+ * config => config.log(value)
21
+ * );
22
+ *
23
+ * // no weaving
24
+ * log('test').run(console); //=> prints 'test'
25
+ *
26
+ * // weaving
27
+ * const wlog = RA.weave(log, console);
28
+ * wlog('test'); //=> prints 'test'
29
+ */
30
+
31
+ var weave = curryN(2, function (fn, config) {
32
+ return curryN(fn.length, function () {
33
+ return fn.apply(void 0, arguments).run(config);
34
+ });
35
+ });
36
+ export default weave;
@@ -0,0 +1,38 @@
1
+ import { curryN } from 'ramda';
2
+ /**
3
+ * Weaves a configuration into function returning the runnable monad like `Reader` or `Free`.
4
+ * This allows us to pre-bind the configuration in advance and use the weaved function
5
+ * without need to explicitly pass the configuration on every call.
6
+ *
7
+ * @func weaveLazy
8
+ * @memberOf RA
9
+ * @since {@link https://char0n.github.io/ramda-adjunct/1.10.0|v1.10.0}
10
+ * @category Function
11
+ * @sig (*... -> *) -> (* -> *) -> (*... -> *)
12
+ * @param {Function} fn The function to weave
13
+ * @param {Function} configAccessor The function that returns the configuration object
14
+ * @return {Function} Auto-curried weaved function
15
+ * @example
16
+ *
17
+ * const { Reader: reader } = require('monet');
18
+ *
19
+ * const log = value => reader(
20
+ * config => config.log(value)
21
+ * );
22
+ *
23
+ * const consoleAccessor = R.always(console);
24
+ *
25
+ * // no weaving
26
+ * log('test').run(console); //=> prints 'test'
27
+ *
28
+ * // weaving
29
+ * const wlog = RA.weaveLazy(log, consoleAccessor);
30
+ * wlog('test'); //=> prints 'test'
31
+ */
32
+
33
+ var weaveLazy = curryN(2, function (fn, configAccessor) {
34
+ return curryN(fn.length, function () {
35
+ return fn.apply(void 0, arguments).run(configAccessor());
36
+ });
37
+ });
38
+ export default weaveLazy;
@@ -0,0 +1,26 @@
1
+ import { apply, curryN, fromPairs, map, pipe, zip } from 'ramda';
2
+ /**
3
+ * Creates a new object out of a list of keys and a list of values by applying the function
4
+ * to each equally-positioned pair in the lists.
5
+ * Key/value pairing is truncated to the length of the shorter of the two lists.
6
+ *
7
+ * @func zipObjWith
8
+ * @memberOf RA
9
+ * @category Object
10
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}
11
+ * @sig (b, a) -> [k, v] -> [a] -> [b] -> { k: v }
12
+ * @param {Function} fn The function to transform each value-key pair
13
+ * @param {Array} keys Array to transform into the properties on the output object
14
+ * @param {Array} values Array to transform into the values on the output object
15
+ * @return {Object} The object made by pairing up and transforming same-indexed elements of `keys` and `values`.
16
+ * @see {@link https://ramdajs.com/docs/#zipObj|zipObj}, {@link RA.unzipObjWith|unzipObjWith}
17
+ * @example
18
+ *
19
+ * RA.zipObjWith((value, key) => [key, `${key}${value + 1}`]), ['a', 'b', 'c'], [1, 2, 3]);
20
+ * // => { a: 'a2', b: 'b3', c: 'c4' }
21
+ */
22
+
23
+ var zipObjWith = curryN(3, function (fn, keys, values) {
24
+ return pipe(zip, map(apply(fn)), fromPairs)(values, keys);
25
+ });
26
+ export default zipObjWith;
package/lib/Y.js ADDED
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports["default"] = void 0;
5
+
6
+ var _ramda = require("ramda");
7
+
8
+ /**
9
+ * Y-combinator
10
+ *
11
+ * The Y combinator is an interesting function which only works with functional languages,
12
+ * showing how recursion can still be done even without any variable or function declarations,
13
+ * only functions and parameters
14
+ *
15
+ * @func Y
16
+ * @memberOf RA
17
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.3.0|v2.3.0}
18
+ * @category Function
19
+ * @sig (a, ... -> b -> b) -> (a, ... -> b)
20
+ * @param {Function} le Recursive function maker
21
+ * @return {Function}
22
+ * @see {@link http://kestas.kuliukas.com/YCombinatorExplained/|Y combinator explained}
23
+ * @example
24
+ *
25
+ * const makeFact = givenFact => (n) => {
26
+ * if (n < 2) { return 1 }
27
+ * return n * givenFact(n - 1);
28
+ * };
29
+ *
30
+ * const factorial = RA.Y(makeFact);
31
+ *
32
+ * factorial(5); //=> 120
33
+ */
34
+ var Y = (0, _ramda.curryN)(1, function (le) {
35
+ return function (f) {
36
+ return f(f);
37
+ }(function (g) {
38
+ return le(function (x) {
39
+ return g(g)(x);
40
+ });
41
+ });
42
+ });
43
+ var _default = Y;
44
+ exports["default"] = _default;