@thi.ng/transducers 7.9.2 → 8.0.4

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 (326) hide show
  1. package/CHANGELOG.md +354 -420
  2. package/README.md +242 -219
  3. package/{rfn/add.d.ts → add.d.ts} +1 -1
  4. package/{rfn/add.js → add.js} +1 -1
  5. package/api.d.ts +1 -1
  6. package/{iter/as-iterable.d.ts → as-iterable.d.ts} +0 -0
  7. package/{iter/as-iterable.js → as-iterable.js} +0 -0
  8. package/{rfn/assoc-map.d.ts → assoc-map.d.ts} +1 -1
  9. package/{rfn/assoc-map.js → assoc-map.js} +1 -1
  10. package/{rfn/assoc-obj.d.ts → assoc-obj.d.ts} +1 -1
  11. package/{rfn/assoc-obj.js → assoc-obj.js} +1 -1
  12. package/{rfn/auto-obj.d.ts → auto-obj.d.ts} +1 -1
  13. package/{rfn/auto-obj.js → auto-obj.js} +1 -1
  14. package/{xform/benchmark.d.ts → benchmark.d.ts} +1 -1
  15. package/{xform/benchmark.js → benchmark.js} +3 -3
  16. package/{xform/cat.d.ts → cat.d.ts} +1 -1
  17. package/{xform/cat.js → cat.js} +2 -2
  18. package/{iter/choices.d.ts → choices.d.ts} +1 -1
  19. package/{iter/choices.js → choices.js} +4 -3
  20. package/{func/comp.d.ts → comp.d.ts} +1 -1
  21. package/{func/comp.js → comp.js} +2 -2
  22. package/{func/compr.d.ts → compr.d.ts} +1 -1
  23. package/{func/compr.js → compr.js} +0 -0
  24. package/{iter/concat.d.ts → concat.d.ts} +0 -0
  25. package/{iter/concat.js → concat.js} +1 -1
  26. package/{rfn/conj.d.ts → conj.d.ts} +1 -1
  27. package/{rfn/conj.js → conj.js} +1 -1
  28. package/{xform/converge.d.ts → converge.d.ts} +2 -2
  29. package/{xform/converge.js → converge.js} +5 -5
  30. package/{xform/convolve.d.ts → convolve.d.ts} +1 -1
  31. package/{xform/convolve.js → convolve.js} +8 -8
  32. package/{rfn/count.d.ts → count.d.ts} +1 -1
  33. package/{rfn/count.js → count.js} +1 -1
  34. package/{iter/curve.d.ts → curve.d.ts} +0 -0
  35. package/{iter/curve.js → curve.js} +0 -0
  36. package/{iter/cycle.d.ts → cycle.d.ts} +0 -0
  37. package/{iter/cycle.js → cycle.js} +0 -0
  38. package/{xform/dedupe.d.ts → dedupe.d.ts} +2 -2
  39. package/{xform/dedupe.js → dedupe.js} +4 -4
  40. package/{func/deep-transform.d.ts → deep-transform.d.ts} +2 -2
  41. package/{func/deep-transform.js → deep-transform.js} +3 -3
  42. package/{xform/delayed.d.ts → delayed.d.ts} +1 -1
  43. package/{xform/delayed.js → delayed.js} +2 -2
  44. package/{xform/distinct.d.ts → distinct.d.ts} +1 -1
  45. package/{xform/distinct.js → distinct.js} +3 -3
  46. package/{rfn/div.d.ts → div.d.ts} +1 -1
  47. package/{rfn/div.js → div.js} +1 -1
  48. package/{xform/drop-nth.d.ts → drop-nth.d.ts} +1 -1
  49. package/{xform/drop-nth.js → drop-nth.js} +4 -4
  50. package/{xform/drop-while.d.ts → drop-while.d.ts} +1 -1
  51. package/{xform/drop-while.js → drop-while.js} +3 -3
  52. package/{xform/drop.d.ts → drop.d.ts} +1 -1
  53. package/{xform/drop.js → drop.js} +3 -3
  54. package/{iter/dup.d.ts → dup.d.ts} +0 -0
  55. package/dup.js +11 -0
  56. package/{xform/duplicate.d.ts → duplicate.d.ts} +1 -1
  57. package/{xform/duplicate.js → duplicate.js} +4 -4
  58. package/ensure.d.ts +3 -0
  59. package/{internal/ensure.js → ensure.js} +1 -1
  60. package/{rfn/every.d.ts → every.d.ts} +1 -1
  61. package/{rfn/every.js → every.js} +2 -2
  62. package/{iter/extend-sides.d.ts → extend-sides.d.ts} +0 -0
  63. package/{iter/extend-sides.js → extend-sides.js} +2 -2
  64. package/{rfn/fill.d.ts → fill.d.ts} +1 -1
  65. package/{rfn/fill.js → fill.js} +1 -1
  66. package/{xform/filter-fuzzy.d.ts → filter-fuzzy.d.ts} +1 -1
  67. package/{xform/filter-fuzzy.js → filter-fuzzy.js} +4 -4
  68. package/{xform/filter.d.ts → filter.d.ts} +1 -1
  69. package/{xform/filter.js → filter.js} +3 -3
  70. package/{xform/flatten-with.d.ts → flatten-with.d.ts} +1 -1
  71. package/{xform/flatten-with.js → flatten-with.js} +5 -4
  72. package/{xform/flatten.d.ts → flatten.d.ts} +1 -1
  73. package/flatten.js +5 -0
  74. package/{rfn/frequencies.d.ts → frequencies.d.ts} +1 -1
  75. package/frequencies.js +8 -0
  76. package/{rfn/group-binary.d.ts → group-binary.d.ts} +1 -1
  77. package/{rfn/group-binary.js → group-binary.js} +3 -3
  78. package/{rfn/group-by-map.d.ts → group-by-map.d.ts} +1 -1
  79. package/{rfn/group-by-map.js → group-by-map.js} +2 -2
  80. package/{rfn/group-by-obj.d.ts → group-by-obj.d.ts} +1 -1
  81. package/{rfn/group-by-obj.js → group-by-obj.js} +2 -2
  82. package/index.d.ts +145 -144
  83. package/index.js +149 -144
  84. package/{xform/indexed.d.ts → indexed.d.ts} +1 -1
  85. package/{xform/indexed.js → indexed.js} +3 -3
  86. package/{xform/interleave.d.ts → interleave.d.ts} +1 -1
  87. package/{xform/interleave.js → interleave.js} +4 -4
  88. package/internal/drain.d.ts +1 -1
  89. package/internal/drain.js +1 -1
  90. package/internal/group-opts.d.ts +1 -1
  91. package/internal/group-opts.js +6 -3
  92. package/internal/mathop.d.ts +1 -1
  93. package/internal/mathop.js +1 -1
  94. package/internal/sort-opts.d.ts +1 -1
  95. package/internal/sort-opts.js +6 -3
  96. package/{xform/interpolate-hermite.d.ts → interpolate-hermite.d.ts} +1 -1
  97. package/{xform/interpolate-hermite.js → interpolate-hermite.js} +2 -2
  98. package/{xform/interpolate-linear.d.ts → interpolate-linear.d.ts} +1 -1
  99. package/{xform/interpolate-linear.js → interpolate-linear.js} +2 -2
  100. package/{xform/interpolate.d.ts → interpolate.d.ts} +1 -1
  101. package/interpolate.js +12 -0
  102. package/{xform/interpose.d.ts → interpose.d.ts} +1 -1
  103. package/{xform/interpose.js → interpose.js} +4 -4
  104. package/{iter/iterate.d.ts → iterate.d.ts} +0 -0
  105. package/{iter/iterate.js → iterate.js} +0 -0
  106. package/iterator.d.ts +3 -3
  107. package/iterator.js +6 -6
  108. package/{func/juxtr.d.ts → juxtr.d.ts} +1 -1
  109. package/{func/juxtr.js → juxtr.js} +1 -1
  110. package/{xform/keep.d.ts → keep.d.ts} +7 -1
  111. package/{xform/keep.js → keep.js} +4 -4
  112. package/{iter/key-permutations.d.ts → key-permutations.d.ts} +0 -0
  113. package/{iter/key-permutations.js → key-permutations.js} +6 -6
  114. package/{func/key-selector.d.ts → key-selector.d.ts} +0 -0
  115. package/{func/key-selector.js → key-selector.js} +1 -1
  116. package/{iter/keys.d.ts → keys.d.ts} +0 -0
  117. package/{iter/keys.js → keys.js} +0 -0
  118. package/{xform/labeled.d.ts → labeled.d.ts} +1 -1
  119. package/labeled.js +9 -0
  120. package/{rfn/last.d.ts → last.d.ts} +1 -1
  121. package/{rfn/last.js → last.js} +2 -2
  122. package/{iter/line.d.ts → line.d.ts} +0 -0
  123. package/{iter/line.js → line.js} +2 -2
  124. package/{func/lookup.d.ts → lookup.d.ts} +0 -0
  125. package/{func/lookup.js → lookup.js} +0 -0
  126. package/{xform/map-deep.d.ts → map-deep.d.ts} +1 -1
  127. package/map-deep.js +9 -0
  128. package/{xform/map-indexed.d.ts → map-indexed.d.ts} +1 -1
  129. package/{xform/map-indexed.js → map-indexed.js} +3 -3
  130. package/{xform/map-keys.d.ts → map-keys.d.ts} +1 -1
  131. package/{xform/map-keys.js → map-keys.js} +3 -3
  132. package/{xform/map-nth.d.ts → map-nth.d.ts} +1 -1
  133. package/{xform/map-nth.js → map-nth.js} +3 -3
  134. package/{xform/map-vals.d.ts → map-vals.d.ts} +1 -1
  135. package/{xform/map-vals.js → map-vals.js} +3 -3
  136. package/{xform/map.d.ts → map.d.ts} +1 -1
  137. package/{xform/map.js → map.js} +3 -3
  138. package/{xform/mapcat-indexed.d.ts → mapcat-indexed.d.ts} +1 -1
  139. package/mapcat-indexed.js +8 -0
  140. package/{xform/mapcat.d.ts → mapcat.d.ts} +1 -1
  141. package/mapcat.js +8 -0
  142. package/{xform/match-first.d.ts → match-first.d.ts} +1 -1
  143. package/match-first.js +10 -0
  144. package/{xform/match-last.d.ts → match-last.d.ts} +1 -1
  145. package/match-last.js +10 -0
  146. package/{rfn/max-compare.d.ts → max-compare.d.ts} +1 -1
  147. package/{rfn/max-compare.js → max-compare.js} +2 -2
  148. package/{rfn/max-mag.d.ts → max-mag.d.ts} +1 -1
  149. package/{rfn/max-mag.js → max-mag.js} +1 -1
  150. package/{rfn/max.d.ts → max.d.ts} +1 -1
  151. package/{rfn/max.js → max.js} +1 -1
  152. package/{rfn/mean.d.ts → mean.d.ts} +1 -1
  153. package/{rfn/mean.js → mean.js} +1 -1
  154. package/{rfn/min-compare.d.ts → min-compare.d.ts} +1 -1
  155. package/{rfn/min-compare.js → min-compare.js} +2 -2
  156. package/{rfn/min-mag.d.ts → min-mag.d.ts} +1 -1
  157. package/{rfn/min-mag.js → min-mag.js} +1 -1
  158. package/{rfn/min-max.d.ts → min-max.d.ts} +1 -1
  159. package/{rfn/min-max.js → min-max.js} +3 -3
  160. package/{rfn/min.d.ts → min.d.ts} +1 -1
  161. package/{rfn/min.js → min.js} +1 -1
  162. package/{xform/moving-average.d.ts → moving-average.d.ts} +1 -1
  163. package/{xform/moving-average.js → moving-average.js} +4 -4
  164. package/{xform/moving-median.d.ts → moving-median.d.ts} +1 -1
  165. package/{xform/moving-median.js → moving-median.js} +6 -6
  166. package/{rfn/mul.d.ts → mul.d.ts} +1 -1
  167. package/{rfn/mul.js → mul.js} +1 -1
  168. package/{xform/multiplex-obj.d.ts → multiplex-obj.d.ts} +1 -1
  169. package/{xform/multiplex-obj.js → multiplex-obj.js} +5 -5
  170. package/{xform/multiplex.d.ts → multiplex.d.ts} +1 -1
  171. package/multiplex.js +6 -0
  172. package/{xform/noop.d.ts → noop.d.ts} +1 -1
  173. package/{xform/noop.js → noop.js} +0 -0
  174. package/{rfn/norm-count.d.ts → norm-count.d.ts} +1 -1
  175. package/{rfn/norm-count.js → norm-count.js} +1 -1
  176. package/{rfn/norm-frequencies-auto.d.ts → norm-frequencies-auto.d.ts} +1 -1
  177. package/{rfn/norm-frequencies-auto.js → norm-frequencies-auto.js} +2 -2
  178. package/{rfn/norm-frequencies.d.ts → norm-frequencies.d.ts} +1 -1
  179. package/{rfn/norm-frequencies.js → norm-frequencies.js} +4 -4
  180. package/{iter/norm-range.d.ts → norm-range.d.ts} +0 -0
  181. package/{iter/norm-range.js → norm-range.js} +1 -1
  182. package/package.json +470 -34
  183. package/{xform/pad-last.d.ts → pad-last.d.ts} +1 -1
  184. package/{xform/pad-last.js → pad-last.js} +3 -3
  185. package/{iter/pad-sides.d.ts → pad-sides.d.ts} +0 -0
  186. package/{iter/pad-sides.js → pad-sides.js} +2 -2
  187. package/{xform/page.d.ts → page.d.ts} +1 -1
  188. package/page.js +8 -0
  189. package/{iter/pairs.d.ts → pairs.d.ts} +0 -0
  190. package/{iter/pairs.js → pairs.js} +0 -0
  191. package/{iter/palindrome.d.ts → palindrome.d.ts} +0 -0
  192. package/palindrome.js +13 -0
  193. package/{xform/partition-by.d.ts → partition-by.d.ts} +2 -2
  194. package/{xform/partition-by.js → partition-by.js} +4 -4
  195. package/{xform/partition-of.d.ts → partition-of.d.ts} +1 -1
  196. package/{xform/partition-of.js → partition-of.js} +3 -3
  197. package/{xform/partition-sort.d.ts → partition-sort.d.ts} +1 -1
  198. package/partition-sort.js +13 -0
  199. package/{xform/partition-sync.d.ts → partition-sync.d.ts} +1 -1
  200. package/{xform/partition-sync.js → partition-sync.js} +15 -8
  201. package/{xform/partition-time.d.ts → partition-time.d.ts} +1 -1
  202. package/{xform/partition-time.js → partition-time.js} +3 -3
  203. package/{xform/partition-when.d.ts → partition-when.d.ts} +1 -1
  204. package/{xform/partition-when.js → partition-when.js} +3 -3
  205. package/{xform/partition.d.ts → partition.d.ts} +1 -1
  206. package/{xform/partition.js → partition.js} +2 -2
  207. package/{xform/peek.d.ts → peek.d.ts} +1 -1
  208. package/peek.js +5 -0
  209. package/{iter/permutations.d.ts → permutations.d.ts} +0 -0
  210. package/{iter/permutations.js → permutations.js} +3 -3
  211. package/{xform/pluck.d.ts → pluck.d.ts} +1 -1
  212. package/pluck.js +8 -0
  213. package/push-copy.d.ts +3 -0
  214. package/{rfn/push-copy.js → push-copy.js} +1 -1
  215. package/{rfn/push-sort.d.ts → push-sort.d.ts} +1 -1
  216. package/{rfn/push-sort.js → push-sort.js} +1 -1
  217. package/{rfn/push.d.ts → push.d.ts} +1 -1
  218. package/{rfn/push.js → push.js} +1 -1
  219. package/{iter/range-nd.d.ts → range-nd.d.ts} +0 -0
  220. package/{iter/range-nd.js → range-nd.js} +4 -4
  221. package/{iter/range.d.ts → range.d.ts} +2 -2
  222. package/{iter/range.js → range.js} +1 -1
  223. package/{iter/range2d.d.ts → range2d.d.ts} +0 -0
  224. package/{iter/range2d.js → range2d.js} +2 -2
  225. package/{iter/range3d.d.ts → range3d.d.ts} +0 -0
  226. package/{iter/range3d.js → range3d.js} +2 -2
  227. package/reduce.d.ts +1 -1
  228. package/reduce.js +5 -3
  229. package/{rfn/reductions.d.ts → reductions.d.ts} +1 -1
  230. package/{rfn/reductions.js → reductions.js} +2 -2
  231. package/{xform/rename.d.ts → rename.d.ts} +1 -1
  232. package/{xform/rename.js → rename.js} +8 -8
  233. package/renamer.d.ts +9 -0
  234. package/{func/renamer.js → renamer.js} +6 -0
  235. package/{iter/repeat.d.ts → repeat.d.ts} +0 -0
  236. package/{iter/repeat.js → repeat.js} +0 -0
  237. package/{iter/repeatedly.d.ts → repeatedly.d.ts} +0 -0
  238. package/{iter/repeatedly.js → repeatedly.js} +0 -0
  239. package/{iter/reverse.d.ts → reverse.d.ts} +0 -0
  240. package/{iter/reverse.js → reverse.js} +1 -1
  241. package/run.d.ts +2 -2
  242. package/run.js +2 -2
  243. package/{xform/sample.d.ts → sample.d.ts} +2 -2
  244. package/{xform/sample.js → sample.js} +4 -4
  245. package/{xform/scan.d.ts → scan.d.ts} +1 -1
  246. package/{xform/scan.js → scan.js} +3 -3
  247. package/{xform/select-keys.d.ts → select-keys.d.ts} +1 -1
  248. package/select-keys.js +9 -0
  249. package/{xform/side-effect.d.ts → side-effect.d.ts} +1 -1
  250. package/{xform/side-effect.js → side-effect.js} +1 -1
  251. package/{xform/sliding-window.d.ts → sliding-window.d.ts} +2 -2
  252. package/{xform/sliding-window.js → sliding-window.js} +4 -4
  253. package/{rfn/some.d.ts → some.d.ts} +1 -1
  254. package/{rfn/some.js → some.js} +2 -2
  255. package/{iter/sorted-keys.d.ts → sorted-keys.d.ts} +0 -0
  256. package/{iter/sorted-keys.js → sorted-keys.js} +1 -1
  257. package/step.d.ts +1 -1
  258. package/step.js +3 -3
  259. package/{rfn/str.d.ts → str.d.ts} +1 -1
  260. package/{rfn/str.js → str.js} +1 -1
  261. package/{xform/stream-shuffle.d.ts → stream-shuffle.d.ts} +1 -1
  262. package/{xform/stream-shuffle.js → stream-shuffle.js} +4 -4
  263. package/{xform/stream-sort.d.ts → stream-sort.d.ts} +1 -1
  264. package/{xform/stream-sort.js → stream-sort.js} +5 -5
  265. package/{xform/struct.d.ts → struct.d.ts} +1 -1
  266. package/{xform/struct.js → struct.js} +7 -7
  267. package/{rfn/sub.d.ts → sub.d.ts} +1 -1
  268. package/{rfn/sub.js → sub.js} +1 -1
  269. package/{xform/swizzle.d.ts → swizzle.d.ts} +1 -1
  270. package/swizzle.js +9 -0
  271. package/{iter/symmetric.d.ts → symmetric.d.ts} +0 -0
  272. package/{iter/symmetric.js → symmetric.js} +0 -0
  273. package/{xform/take-last.d.ts → take-last.d.ts} +1 -1
  274. package/{xform/take-last.js → take-last.js} +3 -3
  275. package/{xform/take-nth.d.ts → take-nth.d.ts} +1 -1
  276. package/{xform/take-nth.js → take-nth.js} +4 -4
  277. package/{xform/take-while.d.ts → take-while.d.ts} +1 -1
  278. package/{xform/take-while.js → take-while.js} +4 -4
  279. package/{xform/take.d.ts → take.d.ts} +1 -1
  280. package/{xform/take.js → take.js} +4 -4
  281. package/{xform/throttle-time.d.ts → throttle-time.d.ts} +1 -1
  282. package/{xform/throttle-time.js → throttle-time.js} +3 -3
  283. package/{xform/throttle.d.ts → throttle.d.ts} +1 -1
  284. package/{xform/throttle.js → throttle.js} +3 -3
  285. package/{xform/toggle.d.ts → toggle.d.ts} +1 -1
  286. package/{xform/toggle.js → toggle.js} +2 -2
  287. package/trace.d.ts +3 -0
  288. package/{xform/trace.js → trace.js} +1 -1
  289. package/transduce.d.ts +1 -1
  290. package/transduce.js +4 -4
  291. package/{iter/tween.d.ts → tween.d.ts} +0 -0
  292. package/{iter/tween.js → tween.js} +2 -2
  293. package/{iter/vals.d.ts → vals.d.ts} +0 -0
  294. package/{iter/vals.js → vals.js} +0 -0
  295. package/{xform/word-wrap.d.ts → word-wrap.d.ts} +1 -1
  296. package/{xform/word-wrap.js → word-wrap.js} +8 -4
  297. package/{iter/wrap-sides.d.ts → wrap-sides.d.ts} +0 -0
  298. package/{iter/wrap-sides.js → wrap-sides.js} +3 -3
  299. package/{iter/zip.d.ts → zip.d.ts} +0 -0
  300. package/{iter/zip.js → zip.js} +0 -0
  301. package/func/renamer.d.ts +0 -3
  302. package/internal/ensure.d.ts +0 -3
  303. package/iter/dup.js +0 -10
  304. package/iter/palindrome.js +0 -12
  305. package/lib/index.js +0 -2228
  306. package/lib/index.js.map +0 -1
  307. package/lib/index.umd.js +0 -1
  308. package/lib/index.umd.js.map +0 -1
  309. package/rfn/frequencies.js +0 -8
  310. package/rfn/push-copy.d.ts +0 -3
  311. package/xform/flatten.js +0 -5
  312. package/xform/interpolate.js +0 -13
  313. package/xform/labeled.js +0 -8
  314. package/xform/map-deep.js +0 -9
  315. package/xform/mapcat-indexed.js +0 -8
  316. package/xform/mapcat.js +0 -8
  317. package/xform/match-first.js +0 -10
  318. package/xform/match-last.js +0 -10
  319. package/xform/multiplex.js +0 -6
  320. package/xform/page.js +0 -8
  321. package/xform/partition-sort.js +0 -13
  322. package/xform/peek.js +0 -5
  323. package/xform/pluck.js +0 -8
  324. package/xform/select-keys.js +0 -9
  325. package/xform/swizzle.js +0 -9
  326. package/xform/trace.d.ts +0 -3
package/index.js CHANGED
@@ -1,144 +1,149 @@
1
- export * from "./api";
2
- export * from "./iterator";
3
- export * from "./reduce";
4
- export * from "./reduced";
5
- export * from "./run";
6
- export * from "./step";
7
- export * from "./transduce";
8
- export * from "./rfn/add";
9
- export * from "./rfn/assoc-map";
10
- export * from "./rfn/assoc-obj";
11
- export * from "./rfn/auto-obj";
12
- export * from "./rfn/conj";
13
- export * from "./rfn/count";
14
- export * from "./rfn/div";
15
- export * from "./rfn/every";
16
- export * from "./rfn/fill";
17
- export * from "./rfn/frequencies";
18
- export * from "./rfn/group-binary";
19
- export * from "./rfn/group-by-map";
20
- export * from "./rfn/group-by-obj";
21
- export * from "./rfn/last";
22
- export * from "./rfn/max";
23
- export * from "./rfn/max-compare";
24
- export * from "./rfn/max-mag";
25
- export * from "./rfn/mean";
26
- export * from "./rfn/min";
27
- export * from "./rfn/min-compare";
28
- export * from "./rfn/min-mag";
29
- export * from "./rfn/min-max";
30
- export * from "./rfn/mul";
31
- export * from "./rfn/norm-count";
32
- export * from "./rfn/norm-frequencies";
33
- export * from "./rfn/norm-frequencies-auto";
34
- export * from "./rfn/push";
35
- export * from "./rfn/push-copy";
36
- export * from "./rfn/push-sort";
37
- export * from "./rfn/reductions";
38
- export * from "./rfn/some";
39
- export * from "./rfn/str";
40
- export * from "./rfn/sub";
41
- export * from "./xform/benchmark";
42
- export * from "./xform/cat";
43
- export * from "./xform/converge";
44
- export * from "./xform/convolve";
45
- export * from "./xform/dedupe";
46
- export * from "./xform/delayed";
47
- export * from "./xform/distinct";
48
- export * from "./xform/drop-nth";
49
- export * from "./xform/drop-while";
50
- export * from "./xform/drop";
51
- export * from "./xform/duplicate";
52
- export * from "./xform/filter";
53
- export * from "./xform/filter-fuzzy";
54
- export * from "./xform/flatten-with";
55
- export * from "./xform/flatten";
56
- export * from "./xform/indexed";
57
- export * from "./xform/interleave";
58
- export * from "./xform/interpolate";
59
- export * from "./xform/interpolate-hermite";
60
- export * from "./xform/interpolate-linear";
61
- export * from "./xform/interpose";
62
- export * from "./xform/keep";
63
- export * from "./xform/labeled";
64
- export * from "./xform/map-deep";
65
- export * from "./xform/map-indexed";
66
- export * from "./xform/map-keys";
67
- export * from "./xform/map-nth";
68
- export * from "./xform/map-vals";
69
- export * from "./xform/map";
70
- export * from "./xform/mapcat";
71
- export * from "./xform/mapcat-indexed";
72
- export * from "./xform/match-first";
73
- export * from "./xform/match-last";
74
- export * from "./xform/moving-average";
75
- export * from "./xform/moving-median";
76
- export * from "./xform/multiplex";
77
- export * from "./xform/multiplex-obj";
78
- export * from "./xform/noop";
79
- export * from "./xform/pad-last";
80
- export * from "./xform/page";
81
- export * from "./xform/partition-by";
82
- export * from "./xform/partition-of";
83
- export * from "./xform/partition-sort";
84
- export * from "./xform/partition-sync";
85
- export * from "./xform/partition-time";
86
- export * from "./xform/partition-when";
87
- export * from "./xform/partition";
88
- export * from "./xform/peek";
89
- export * from "./xform/pluck";
90
- export * from "./xform/rename";
91
- export * from "./xform/sample";
92
- export * from "./xform/scan";
93
- export * from "./xform/select-keys";
94
- export * from "./xform/side-effect";
95
- export * from "./xform/sliding-window";
96
- export * from "./xform/stream-shuffle";
97
- export * from "./xform/stream-sort";
98
- export * from "./xform/struct";
99
- export * from "./xform/swizzle";
100
- export * from "./xform/take-nth";
101
- export * from "./xform/take-last";
102
- export * from "./xform/take-while";
103
- export * from "./xform/take";
104
- export * from "./xform/throttle";
105
- export * from "./xform/throttle-time";
106
- export * from "./xform/toggle";
107
- export * from "./xform/trace";
108
- export * from "./xform/word-wrap";
109
- export * from "./func/comp";
110
- export * from "./func/compr";
111
- export * from "./func/deep-transform";
112
- export * from "./func/juxtr";
113
- export * from "./func/key-selector";
114
- export * from "./func/lookup";
115
- export * from "./func/renamer";
116
- export * from "./iter/as-iterable";
117
- export * from "./iter/choices";
118
- export * from "./iter/concat";
119
- export * from "./iter/curve";
120
- export * from "./iter/cycle";
121
- export * from "./iter/dup";
122
- export * from "./iter/extend-sides";
123
- export * from "./iter/iterate";
124
- export * from "./iter/key-permutations";
125
- export * from "./iter/keys";
126
- export * from "./iter/line";
127
- export * from "./iter/norm-range";
128
- export * from "./iter/pad-sides";
129
- export * from "./iter/palindrome";
130
- export * from "./iter/pairs";
131
- export * from "./iter/permutations";
132
- export * from "./iter/range";
133
- export * from "./iter/range2d";
134
- export * from "./iter/range3d";
135
- export * from "./iter/range-nd";
136
- export * from "./iter/repeat";
137
- export * from "./iter/repeatedly";
138
- export * from "./iter/reverse";
139
- export * from "./iter/sorted-keys";
140
- export * from "./iter/symmetric";
141
- export * from "./iter/tween";
142
- export * from "./iter/vals";
143
- export * from "./iter/wrap-sides";
144
- export * from "./iter/zip";
1
+ export * from "./api.js";
2
+ export * from "./ensure.js";
3
+ export * from "./iterator.js";
4
+ export * from "./reduce.js";
5
+ export * from "./reduced.js";
6
+ export * from "./run.js";
7
+ export * from "./step.js";
8
+ export * from "./transduce.js";
9
+ // helpers
10
+ export * from "./comp.js";
11
+ export * from "./compr.js";
12
+ export * from "./deep-transform.js";
13
+ export * from "./juxtr.js";
14
+ export * from "./lookup.js";
15
+ export * from "./key-selector.js";
16
+ export * from "./renamer.js";
17
+ // reducers
18
+ export * from "./add.js";
19
+ export * from "./assoc-map.js";
20
+ export * from "./assoc-obj.js";
21
+ export * from "./auto-obj.js";
22
+ export * from "./conj.js";
23
+ export * from "./count.js";
24
+ export * from "./div.js";
25
+ export * from "./every.js";
26
+ export * from "./fill.js";
27
+ export * from "./frequencies.js";
28
+ export * from "./group-binary.js";
29
+ export * from "./group-by-map.js";
30
+ export * from "./group-by-obj.js";
31
+ export * from "./last.js";
32
+ export * from "./max.js";
33
+ export * from "./max-compare.js";
34
+ export * from "./max-mag.js";
35
+ export * from "./mean.js";
36
+ export * from "./min.js";
37
+ export * from "./min-compare.js";
38
+ export * from "./min-mag.js";
39
+ export * from "./min-max.js";
40
+ export * from "./mul.js";
41
+ export * from "./norm-count.js";
42
+ export * from "./norm-frequencies.js";
43
+ export * from "./norm-frequencies-auto.js";
44
+ export * from "./push.js";
45
+ export * from "./push-copy.js";
46
+ export * from "./push-sort.js";
47
+ export * from "./reductions.js";
48
+ export * from "./some.js";
49
+ export * from "./str.js";
50
+ export * from "./sub.js";
51
+ // transducers
52
+ export * from "./benchmark.js";
53
+ export * from "./cat.js";
54
+ export * from "./converge.js";
55
+ export * from "./convolve.js";
56
+ export * from "./dedupe.js";
57
+ export * from "./delayed.js";
58
+ export * from "./distinct.js";
59
+ export * from "./drop-nth.js";
60
+ export * from "./drop-while.js";
61
+ export * from "./drop.js";
62
+ export * from "./duplicate.js";
63
+ export * from "./filter.js";
64
+ export * from "./filter-fuzzy.js";
65
+ export * from "./flatten-with.js";
66
+ export * from "./flatten.js";
67
+ export * from "./indexed.js";
68
+ export * from "./interleave.js";
69
+ export * from "./interpolate.js";
70
+ export * from "./interpolate-hermite.js";
71
+ export * from "./interpolate-linear.js";
72
+ export * from "./interpose.js";
73
+ export * from "./keep.js";
74
+ export * from "./labeled.js";
75
+ export * from "./map-deep.js";
76
+ export * from "./map-indexed.js";
77
+ export * from "./map-keys.js";
78
+ export * from "./map-nth.js";
79
+ export * from "./map-vals.js";
80
+ export * from "./map.js";
81
+ export * from "./mapcat.js";
82
+ export * from "./mapcat-indexed.js";
83
+ export * from "./match-first.js";
84
+ export * from "./match-last.js";
85
+ export * from "./moving-average.js";
86
+ export * from "./moving-median.js";
87
+ export * from "./multiplex.js";
88
+ export * from "./multiplex-obj.js";
89
+ export * from "./noop.js";
90
+ export * from "./pad-last.js";
91
+ export * from "./page.js";
92
+ export * from "./partition-by.js";
93
+ export * from "./partition-of.js";
94
+ export * from "./partition-sort.js";
95
+ export * from "./partition-sync.js";
96
+ export * from "./partition-time.js";
97
+ export * from "./partition-when.js";
98
+ export * from "./partition.js";
99
+ export * from "./peek.js";
100
+ export * from "./pluck.js";
101
+ export * from "./rename.js";
102
+ export * from "./sample.js";
103
+ export * from "./scan.js";
104
+ export * from "./select-keys.js";
105
+ export * from "./side-effect.js";
106
+ export * from "./sliding-window.js";
107
+ export * from "./stream-shuffle.js";
108
+ export * from "./stream-sort.js";
109
+ export * from "./struct.js";
110
+ export * from "./swizzle.js";
111
+ export * from "./take-nth.js";
112
+ export * from "./take-last.js";
113
+ export * from "./take-while.js";
114
+ export * from "./take.js";
115
+ export * from "./throttle.js";
116
+ export * from "./throttle-time.js";
117
+ export * from "./toggle.js";
118
+ export * from "./trace.js";
119
+ export * from "./word-wrap.js";
120
+ // iterators
121
+ export * from "./as-iterable.js";
122
+ export * from "./choices.js";
123
+ export * from "./concat.js";
124
+ export * from "./curve.js";
125
+ export * from "./cycle.js";
126
+ export * from "./dup.js";
127
+ export * from "./extend-sides.js";
128
+ export * from "./iterate.js";
129
+ export * from "./key-permutations.js";
130
+ export * from "./keys.js";
131
+ export * from "./line.js";
132
+ export * from "./norm-range.js";
133
+ export * from "./pad-sides.js";
134
+ export * from "./palindrome.js";
135
+ export * from "./pairs.js";
136
+ export * from "./permutations.js";
137
+ export * from "./range.js";
138
+ export * from "./range2d.js";
139
+ export * from "./range3d.js";
140
+ export * from "./range-nd.js";
141
+ export * from "./repeat.js";
142
+ export * from "./repeatedly.js";
143
+ export * from "./reverse.js";
144
+ export * from "./sorted-keys.js";
145
+ export * from "./symmetric.js";
146
+ export * from "./tween.js";
147
+ export * from "./vals.js";
148
+ export * from "./wrap-sides.js";
149
+ export * from "./zip.js";
@@ -1,4 +1,4 @@
1
- import type { Transducer } from "../api";
1
+ import type { Transducer } from "./api.js";
2
2
  export declare function indexed<T>(from?: number): Transducer<T, [number, T]>;
3
3
  export declare function indexed<T>(src: Iterable<T>): IterableIterator<[number, T]>;
4
4
  export declare function indexed<T>(from: number, src: Iterable<T>): IterableIterator<[number, T]>;
@@ -1,7 +1,7 @@
1
- import { $iter } from "../iterator";
2
- import { mapIndexed } from "./map-indexed";
1
+ import { __iter } from "./iterator.js";
2
+ import { mapIndexed } from "./map-indexed.js";
3
3
  export function indexed(...args) {
4
- const iter = $iter(indexed, args);
4
+ const iter = __iter(indexed, args);
5
5
  if (iter) {
6
6
  return iter;
7
7
  }
@@ -1,5 +1,5 @@
1
1
  import type { Fn0 } from "@thi.ng/api";
2
- import type { Transducer } from "../api";
2
+ import type { Transducer } from "./api.js";
3
3
  export declare function interleave<A, B>(sep: B | Fn0<B>): Transducer<A, A | B>;
4
4
  export declare function interleave<A, B>(sep: B | Fn0<B>, src: Iterable<A>): IterableIterator<A | B>;
5
5
  //# sourceMappingURL=interleave.d.ts.map
@@ -1,7 +1,7 @@
1
- import { isIterable } from "@thi.ng/checks";
2
- import { compR } from "../func/compr";
3
- import { iterator } from "../iterator";
4
- import { isReduced } from "../reduced";
1
+ import { isIterable } from "@thi.ng/checks/is-iterable";
2
+ import { compR } from "./compr.js";
3
+ import { iterator } from "./iterator.js";
4
+ import { isReduced } from "./reduced.js";
5
5
  export function interleave(sep, src) {
6
6
  return isIterable(src)
7
7
  ? iterator(interleave(sep), src)
@@ -1,5 +1,5 @@
1
1
  import type { Fn } from "@thi.ng/api";
2
- import type { ReductionFn } from "../api";
2
+ import type { ReductionFn } from "../api.js";
3
3
  /**
4
4
  * Helper HOF yielding a buffer drain completion function for some
5
5
  * transducers.
package/internal/drain.js CHANGED
@@ -1,4 +1,4 @@
1
- import { isReduced } from "../reduced";
1
+ import { isReduced } from "../reduced.js";
2
2
  /**
3
3
  * Helper HOF yielding a buffer drain completion function for some
4
4
  * transducers.
@@ -1,4 +1,4 @@
1
- import type { GroupByOpts } from "../api";
1
+ import type { GroupByOpts } from "../api.js";
2
2
  /**
3
3
  * Shared helper function for `groupBy*` reducers
4
4
  *
@@ -1,5 +1,4 @@
1
- import { identity } from "@thi.ng/compose";
2
- import { push } from "../rfn/push";
1
+ import { push } from "../push.js";
3
2
  /**
4
3
  * Shared helper function for `groupBy*` reducers
5
4
  *
@@ -7,4 +6,8 @@ import { push } from "../rfn/push";
7
6
  *
8
7
  * @internal
9
8
  */
10
- export const __groupByOpts = (opts) => (Object.assign({ key: identity, group: push() }, opts));
9
+ export const __groupByOpts = (opts) => ({
10
+ key: (x) => x,
11
+ group: push(),
12
+ ...opts,
13
+ });
@@ -1,5 +1,5 @@
1
1
  import type { FnAny } from "@thi.ng/api";
2
- import type { Reducer, ReductionFn } from "../api";
2
+ import type { Reducer, ReductionFn } from "../api.js";
3
3
  /**
4
4
  * Higher-order reducer for math operations.
5
5
  *
@@ -1,4 +1,4 @@
1
- import { $$reduce, reducer } from "../reduce";
1
+ import { $$reduce, reducer } from "../reduce.js";
2
2
  /**
3
3
  * Higher-order reducer for math operations.
4
4
  *
@@ -1,4 +1,4 @@
1
- import type { SortOpts } from "../api";
1
+ import type { SortOpts } from "../api.js";
2
2
  /**
3
3
  * Helper function to inject default {@link SortOpts}.
4
4
  *
@@ -1,5 +1,4 @@
1
- import { compare } from "@thi.ng/compare";
2
- import { identity } from "@thi.ng/compose";
1
+ import { compare } from "@thi.ng/compare/compare";
3
2
  /**
4
3
  * Helper function to inject default {@link SortOpts}.
5
4
  *
@@ -7,4 +6,8 @@ import { identity } from "@thi.ng/compose";
7
6
  *
8
7
  * @internal
9
8
  */
10
- export const __sortOpts = (opts) => (Object.assign({ key: identity, compare }, opts));
9
+ export const __sortOpts = (opts) => ({
10
+ key: (x) => x,
11
+ compare,
12
+ ...opts,
13
+ });
@@ -1,4 +1,4 @@
1
- import type { Transducer } from "../api";
1
+ import type { Transducer } from "./api.js";
2
2
  /**
3
3
  * Pre-configured version of {@link (interpolate:1)} for numeric values
4
4
  * and using cubic hermite interpolation.
@@ -1,5 +1,5 @@
1
- import { mixHermite } from "@thi.ng/math";
2
- import { interpolate } from "./interpolate";
1
+ import { mixHermite } from "@thi.ng/math/mix";
2
+ import { interpolate } from "./interpolate.js";
3
3
  export function interpolateHermite(n, src) {
4
4
  return interpolate((chunk, t) => mixHermite(...chunk, t), 4, n, src);
5
5
  }
@@ -1,4 +1,4 @@
1
- import type { Transducer } from "../api";
1
+ import type { Transducer } from "./api.js";
2
2
  /**
3
3
  * Pre-configured version of {@link (interpolate:1)} for numeric values
4
4
  * and using pairwise linear interpolation.
@@ -1,5 +1,5 @@
1
- import { mix } from "@thi.ng/math";
2
- import { interpolate } from "./interpolate";
1
+ import { mix } from "@thi.ng/math/mix";
2
+ import { interpolate } from "./interpolate.js";
3
3
  export function interpolateLinear(n, src) {
4
4
  return interpolate((chunk, t) => mix(...chunk, t), 2, n, src);
5
5
  }
@@ -1,5 +1,5 @@
1
1
  import type { Fn2 } from "@thi.ng/api";
2
- import type { Transducer } from "../api";
2
+ import type { Transducer } from "./api.js";
3
3
  /**
4
4
  * Higher order interpolation transducer. The resulting transducer forms
5
5
  * a sliding window and calls `fn` (the given interpolation function)
package/interpolate.js ADDED
@@ -0,0 +1,12 @@
1
+ import { isIterable } from "@thi.ng/checks/is-iterable";
2
+ import { comp } from "./comp.js";
3
+ import { iterator } from "./iterator.js";
4
+ import { map } from "./map.js";
5
+ import { mapcat } from "./mapcat.js";
6
+ import { normRange } from "./norm-range.js";
7
+ import { partition } from "./partition.js";
8
+ export function interpolate(fn, window, n, src) {
9
+ return isIterable(src)
10
+ ? iterator(interpolate(fn, window, n), src)
11
+ : comp(partition(window, 1), mapcat((chunk) => map((t) => fn(chunk, t), normRange(n, false))));
12
+ }
@@ -1,5 +1,5 @@
1
1
  import type { Fn0 } from "@thi.ng/api";
2
- import type { Transducer } from "../api";
2
+ import type { Transducer } from "./api.js";
3
3
  export declare function interpose<A, B>(sep: B | Fn0<B>): Transducer<A, A | B>;
4
4
  export declare function interpose<A, B>(sep: B | Fn0<B>, src: Iterable<A>): IterableIterator<A | B>;
5
5
  //# sourceMappingURL=interpose.d.ts.map
@@ -1,7 +1,7 @@
1
- import { isIterable } from "@thi.ng/checks";
2
- import { compR } from "../func/compr";
3
- import { iterator } from "../iterator";
4
- import { isReduced } from "../reduced";
1
+ import { isIterable } from "@thi.ng/checks/is-iterable";
2
+ import { compR } from "./compr.js";
3
+ import { iterator } from "./iterator.js";
4
+ import { isReduced } from "./reduced.js";
5
5
  export function interpose(sep, src) {
6
6
  return isIterable(src)
7
7
  ? iterator(interpose(sep), src)
File without changes
File without changes
package/iterator.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { FnAny } from "@thi.ng/api";
2
- import type { Transducer, TxLike } from "./api";
1
+ import type { FnAny } from "@thi.ng/api";
2
+ import type { Transducer, TxLike } from "./api.js";
3
3
  /**
4
4
  * Takes a transducer and input iterable. Returns iterator of
5
5
  * transformed results.
@@ -29,5 +29,5 @@ export declare function iterator1<A, B>(xform: TxLike<A, B>, xs: Iterable<A>): I
29
29
  *
30
30
  * @internal
31
31
  */
32
- export declare const $iter: (xform: FnAny<Transducer<any, any>>, args: any[], impl?: typeof iterator1) => IterableIterator<any> | undefined;
32
+ export declare const __iter: (xform: FnAny<Transducer<any, any>>, args: any[], impl?: typeof iterator1) => IterableIterator<any> | undefined;
33
33
  //# sourceMappingURL=iterator.d.ts.map
package/iterator.js CHANGED
@@ -1,8 +1,8 @@
1
- import { NO_OP, SEMAPHORE } from "@thi.ng/api";
2
- import { isIterable } from "@thi.ng/checks";
3
- import { ensureTransducer } from "./internal/ensure";
4
- import { isReduced, unreduced } from "./reduced";
5
- import { push } from "./rfn/push";
1
+ import { NO_OP, SEMAPHORE } from "@thi.ng/api/api";
2
+ import { isIterable } from "@thi.ng/checks/is-iterable";
3
+ import { ensureTransducer } from "./ensure.js";
4
+ import { push } from "./push.js";
5
+ import { isReduced, unreduced } from "./reduced.js";
6
6
  /**
7
7
  * Takes a transducer and input iterable. Returns iterator of
8
8
  * transformed results.
@@ -62,7 +62,7 @@ export function* iterator1(xform, xs) {
62
62
  *
63
63
  * @internal
64
64
  */
65
- export const $iter = (xform, args, impl = iterator1) => {
65
+ export const __iter = (xform, args, impl = iterator1) => {
66
66
  const n = args.length - 1;
67
67
  return isIterable(args[n])
68
68
  ? args.length > 1
@@ -1,4 +1,4 @@
1
- import type { Reducer } from "../api";
1
+ import type { Reducer } from "./api.js";
2
2
  /**
3
3
  * Composes a new reducer from the ones given, in order to produce
4
4
  * multiple reductions in parallel from the same input.
@@ -1,4 +1,4 @@
1
- import { isReduced, reduced, unreduced } from "../reduced";
1
+ import { isReduced, reduced, unreduced } from "./reduced.js";
2
2
  export function juxtR(...rs) {
3
3
  let [a, b, c] = rs;
4
4
  const n = rs.length;
@@ -1,5 +1,11 @@
1
1
  import type { Fn, Nullable } from "@thi.ng/api";
2
- import type { Transducer } from "../api";
2
+ import type { Transducer } from "./api.js";
3
+ /**
4
+ * Transducer. Only keeps values for which (optional) predicate returns a
5
+ * non-null result. If no `pred` is given, uses values as is.
6
+ *
7
+ * @param pred
8
+ */
3
9
  export declare function keep<T>(pred?: Fn<Nullable<T>, any>): Transducer<Nullable<T>, T>;
4
10
  export declare function keep<T>(src: Iterable<Nullable<T>>): IterableIterator<T>;
5
11
  export declare function keep<T>(pred: Fn<Nullable<T>, any>, src: Iterable<Nullable<T>>): IterableIterator<T>;
@@ -1,8 +1,8 @@
1
- import { identity } from "@thi.ng/compose";
2
- import { compR } from "../func/compr";
3
- import { $iter } from "../iterator";
1
+ import { identity } from "@thi.ng/compose/identity";
2
+ import { compR } from "./compr.js";
3
+ import { __iter } from "./iterator.js";
4
4
  export function keep(...args) {
5
- return ($iter(keep, args) ||
5
+ return (__iter(keep, args) ||
6
6
  ((rfn) => {
7
7
  const r = rfn[2];
8
8
  const pred = args[0] || identity;
@@ -1,9 +1,9 @@
1
- import { assocObj } from "../rfn/assoc-obj";
2
- import { map } from "../xform/map";
3
- import { mapcat } from "../xform/mapcat";
4
- import { partition } from "../xform/partition";
5
- import { pairs } from "./pairs";
6
- import { permutations } from "./permutations";
1
+ import { assocObj } from "./assoc-obj.js";
2
+ import { map } from "./map.js";
3
+ import { mapcat } from "./mapcat.js";
4
+ import { pairs } from "./pairs.js";
5
+ import { partition } from "./partition.js";
6
+ import { permutations } from "./permutations.js";
7
7
  /**
8
8
  * Similar to {@link permutations}, however takes an object with each
9
9
  * key specifying an array of its possible values. Yields an iterable of
File without changes
@@ -1,2 +1,2 @@
1
- import { renamer } from "./renamer";
1
+ import { renamer } from "./renamer.js";
2
2
  export const keySelector = (keys) => renamer(keys.reduce((acc, x) => ((acc[x] = x), acc), {}));
File without changes
File without changes
@@ -1,4 +1,4 @@
1
- import type { Transducer } from "../api";
1
+ import type { Transducer } from "./api.js";
2
2
  export declare type LabelFn<L, T> = L | ((x: T) => L);
3
3
  export declare function labeled<L, T>(id: LabelFn<L, T>): Transducer<T, [L, T]>;
4
4
  export declare function labeled<L, T>(id: LabelFn<L, T>, src: Iterable<T>): IterableIterator<[L, T]>;