@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
@@ -1,4 +1,4 @@
1
- import type { Reducer } from "../api";
1
+ import type { Reducer } from "./api.js";
2
2
  /**
3
3
  * Reducer to compute sum of values with given `init` value. Default: 0
4
4
  */
@@ -1,4 +1,4 @@
1
- import { __mathop } from "../internal/mathop";
1
+ import { __mathop } from "./internal/mathop.js";
2
2
  export function add(...args) {
3
3
  return __mathop(add, (acc, x) => acc + x, 0, args);
4
4
  }
package/api.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { Comparator, Fn, IObjectOf } from "@thi.ng/api";
2
- import type { Reduced } from "./reduced";
2
+ import type { Reduced } from "./reduced.js";
3
3
  export declare type Transducer<A, B> = (rfn: Reducer<any, B>) => Reducer<any, A>;
4
4
  export declare type TxLike<A, B> = Transducer<A, B> | IXform<A, B>;
5
5
  export declare type ReductionFn<A, B> = (acc: A, x: B) => A | Reduced<A>;
File without changes
File without changes
@@ -1,5 +1,5 @@
1
1
  import type { Pair } from "@thi.ng/api";
2
- import type { Reducer } from "../api";
2
+ import type { Reducer } from "./api.js";
3
3
  /**
4
4
  * Reducer accepting key-value pairs / tuples and transforming / adding
5
5
  * them to an ES6 Map.
@@ -1,4 +1,4 @@
1
- import { reduce, reducer } from "../reduce";
1
+ import { reduce, reducer } from "./reduce.js";
2
2
  export function assocMap(xs) {
3
3
  return xs
4
4
  ? reduce(assocMap(), xs)
@@ -1,5 +1,5 @@
1
1
  import type { IObjectOf, Pair } from "@thi.ng/api";
2
- import type { Reducer } from "../api";
2
+ import type { Reducer } from "./api.js";
3
3
  /**
4
4
  * Reducer accepting key-value pairs / tuples and updating / adding them
5
5
  * to an object.
@@ -1,4 +1,4 @@
1
- import { reduce, reducer } from "../reduce";
1
+ import { reduce, reducer } from "./reduce.js";
2
2
  export function assocObj(xs) {
3
3
  return xs
4
4
  ? reduce(assocObj(), xs)
@@ -1,5 +1,5 @@
1
1
  import type { IObjectOf } from "@thi.ng/api";
2
- import type { Reducer } from "../api";
2
+ import type { Reducer } from "./api.js";
3
3
  /**
4
4
  * Reducer accepting values of any type and assigning them to auto-labeled keys
5
5
  * in an object. Keys consist of given `prefix` and monotonically increasing ID.
@@ -1,4 +1,4 @@
1
- import { reduce, reducer } from "../reduce";
1
+ import { reduce, reducer } from "./reduce.js";
2
2
  export function autoObj(prefix, xs) {
3
3
  let id = 0;
4
4
  return xs
@@ -1,4 +1,4 @@
1
- import type { Transducer } from "../api";
1
+ import type { Transducer } from "./api.js";
2
2
  /**
3
3
  * Stateful transducer. Ignores the actual input values, but
4
4
  * produces time measurements since last value processed,
@@ -1,6 +1,6 @@
1
- import { isIterable } from "@thi.ng/checks";
2
- import { compR } from "../func/compr";
3
- import { iterator1 } from "../iterator";
1
+ import { isIterable } from "@thi.ng/checks/is-iterable";
2
+ import { compR } from "./compr.js";
3
+ import { iterator1 } from "./iterator.js";
4
4
  export function benchmark(src) {
5
5
  return isIterable(src)
6
6
  ? iterator1(benchmark(), src)
@@ -1,5 +1,5 @@
1
1
  import type { Nullable } from "@thi.ng/api";
2
- import type { Transducer } from "../api";
2
+ import type { Transducer } from "./api.js";
3
3
  /**
4
4
  * Transducer to concatenate iterable values. Iterates over each input
5
5
  * and emits individual values down stream, therefore removing one level
@@ -1,5 +1,5 @@
1
- import { compR } from "../func/compr";
2
- import { ensureReduced, isReduced, unreduced } from "../reduced";
1
+ import { compR } from "./compr.js";
2
+ import { ensureReduced, isReduced, unreduced } from "./reduced.js";
3
3
  /**
4
4
  * Transducer to concatenate iterable values. Iterates over each input
5
5
  * and emits individual values down stream, therefore removing one level
@@ -1,4 +1,4 @@
1
- import { IRandom } from "@thi.ng/random";
1
+ import type { IRandom } from "@thi.ng/random";
2
2
  /**
3
3
  * Returns an infinite iterator of random choices and their (optional)
4
4
  * weights. If `weights` is given, it must have at least the same size
@@ -1,6 +1,7 @@
1
- import { ensureArray } from "@thi.ng/arrays";
2
- import { SYSTEM, weightedRandom } from "@thi.ng/random";
3
- import { repeatedly } from "./repeatedly";
1
+ import { ensureArray } from "@thi.ng/arrays/ensure-array";
2
+ import { SYSTEM } from "@thi.ng/random/system";
3
+ import { weightedRandom } from "@thi.ng/random/weighted-random";
4
+ import { repeatedly } from "./repeatedly.js";
4
5
  /**
5
6
  * Returns an infinite iterator of random choices and their (optional)
6
7
  * weights. If `weights` is given, it must have at least the same size
@@ -1,4 +1,4 @@
1
- import type { Transducer, TxLike } from "../api";
1
+ import type { Transducer, TxLike } from "./api.js";
2
2
  /**
3
3
  * Transducer composition. Returns new transducer which applies given
4
4
  * transducers in left-to-right order.
@@ -1,5 +1,5 @@
1
- import { comp as _comp } from "@thi.ng/compose";
2
- import { ensureTransducer } from "../internal/ensure";
1
+ import { comp as _comp } from "@thi.ng/compose/comp";
2
+ import { ensureTransducer } from "./ensure.js";
3
3
  export function comp(...fns) {
4
4
  fns = fns.map(ensureTransducer);
5
5
  return _comp.apply(null, fns);
@@ -1,4 +1,4 @@
1
- import type { Reducer, ReductionFn } from "../api";
1
+ import type { Reducer, ReductionFn } from "./api.js";
2
2
  /**
3
3
  * Reducer composition helper, internally used by various transducers
4
4
  * during initialization. Takes existing reducer `rfn` (a 3-tuple) and a
File without changes
File without changes
@@ -1,4 +1,4 @@
1
- import { ensureIterable } from "@thi.ng/arrays";
1
+ import { ensureIterable } from "@thi.ng/arrays/ensure-iterable";
2
2
  /**
3
3
  * Yields iterator producing concatenation of given iterables.
4
4
  * Undefined & null inputs are silently ignored, however any
@@ -1,4 +1,4 @@
1
- import type { Reducer } from "../api";
1
+ import type { Reducer } from "./api.js";
2
2
  /**
3
3
  * Reducer. Like {@link (push:1)}, but for ES6 Sets.
4
4
  */
@@ -1,4 +1,4 @@
1
- import { reduce, reducer } from "../reduce";
1
+ import { reduce, reducer } from "./reduce.js";
2
2
  export function conj(xs) {
3
3
  return xs
4
4
  ? reduce(conj(), xs)
@@ -1,5 +1,5 @@
1
- import { Predicate2 } from "@thi.ng/api";
2
- import type { Transducer } from "../api";
1
+ import type { Predicate2 } from "@thi.ng/api";
2
+ import type { Transducer } from "./api.js";
3
3
  /**
4
4
  * Transducer which for each input `x` (apart from the very first one)
5
5
  * applies given predicate `pred` to previous input and `x`. Only passes
@@ -1,9 +1,9 @@
1
- import { SEMAPHORE } from "@thi.ng/api";
2
- import { compR } from "../func/compr";
3
- import { $iter } from "../iterator";
4
- import { ensureReduced } from "../reduced";
1
+ import { SEMAPHORE } from "@thi.ng/api/api";
2
+ import { compR } from "./compr.js";
3
+ import { __iter } from "./iterator.js";
4
+ import { ensureReduced } from "./reduced.js";
5
5
  export function converge(...args) {
6
- return ($iter(converge, args) ||
6
+ return (__iter(converge, args) ||
7
7
  ((rfn) => {
8
8
  const r = rfn[2];
9
9
  const pred = args[0];
@@ -1,5 +1,5 @@
1
1
  import type { Fn0 } from "@thi.ng/api";
2
- import type { Reducer, Transducer } from "../api";
2
+ import type { Reducer, Transducer } from "./api.js";
3
3
  export declare type ConvolutionKernel1D = [number, number][];
4
4
  export declare type ConvolutionKernel2D = [number, [number, number]][];
5
5
  export declare type ConvolutionKernel3D = [number, [number, number, number]][];
@@ -1,11 +1,11 @@
1
- import { illegalArgs } from "@thi.ng/errors";
2
- import { range } from "../iter/range";
3
- import { range2d } from "../iter/range2d";
4
- import { zip } from "../iter/zip";
5
- import { iterator1 } from "../iterator";
6
- import { add } from "../rfn/add";
7
- import { transduce } from "../transduce";
8
- import { map } from "./map";
1
+ import { illegalArgs } from "@thi.ng/errors/illegal-arguments";
2
+ import { add } from "./add.js";
3
+ import { iterator1 } from "./iterator.js";
4
+ import { map } from "./map.js";
5
+ import { range } from "./range.js";
6
+ import { range2d } from "./range2d.js";
7
+ import { transduce } from "./transduce.js";
8
+ import { zip } from "./zip.js";
9
9
  export const buildKernel1d = (weights, w) => {
10
10
  const w2 = w >> 1;
11
11
  return [...zip(weights, range(-w2, w2 + 1))];
@@ -1,4 +1,4 @@
1
- import type { Reducer } from "../api";
1
+ import type { Reducer } from "./api.js";
2
2
  /**
3
3
  * Reducer which ignores incoming values and instead only counts them,
4
4
  * optionally using given `start` and `step` counter values.
@@ -1,4 +1,4 @@
1
- import { $$reduce, reducer } from "../reduce";
1
+ import { $$reduce, reducer } from "./reduce.js";
2
2
  export function count(...args) {
3
3
  const res = $$reduce(count, args);
4
4
  if (res !== undefined) {
File without changes
File without changes
File without changes
File without changes
@@ -1,5 +1,5 @@
1
- import { Predicate2 } from "@thi.ng/api";
2
- import type { Transducer } from "../api";
1
+ import type { Predicate2 } from "@thi.ng/api";
2
+ import type { Transducer } from "./api.js";
3
3
  export declare function dedupe<T>(equiv?: Predicate2<T>): Transducer<T, T>;
4
4
  export declare function dedupe<T>(src: Iterable<T>): IterableIterator<T>;
5
5
  export declare function dedupe<T>(equiv: Predicate2<T>, src: Iterable<T>): IterableIterator<T>;
@@ -1,8 +1,8 @@
1
- import { SEMAPHORE } from "@thi.ng/api";
2
- import { compR } from "../func/compr";
3
- import { $iter } from "../iterator";
1
+ import { SEMAPHORE } from "@thi.ng/api/api";
2
+ import { compR } from "./compr.js";
3
+ import { __iter } from "./iterator.js";
4
4
  export function dedupe(...args) {
5
- return ($iter(dedupe, args) ||
5
+ return (__iter(dedupe, args) ||
6
6
  ((rfn) => {
7
7
  const r = rfn[2];
8
8
  const equiv = args[0];
@@ -1,4 +1,4 @@
1
- import type { TransformSpec } from "../api";
1
+ import type { TransformSpec } from "./api.js";
2
2
  /**
3
3
  * Higher-order deep object transformer used by {@link (mapDeep:1)}.
4
4
  * Accepts a nested `spec` array reflecting same key structure as the
@@ -56,7 +56,7 @@ import type { TransformSpec } from "../api";
56
56
  * // [ "h1", "Hello world" ],
57
57
  * // [ "div.meta",
58
58
  * // [ "a", { href: "mailto:a@.b.com" }, "Alice" ],
59
- * // "(1/2/2003, 12:34:56 PM)" ],
59
+ * // "./2/2003, 12:34:56 PM)" ],
60
60
  * // "Ratione necessitatibus doloremque itaque." ]
61
61
  * ```
62
62
  *
@@ -1,4 +1,4 @@
1
- import { isFunction } from "@thi.ng/checks";
1
+ import { isFunction } from "@thi.ng/checks/is-function";
2
2
  /**
3
3
  * Higher-order deep object transformer used by {@link (mapDeep:1)}.
4
4
  * Accepts a nested `spec` array reflecting same key structure as the
@@ -56,7 +56,7 @@ import { isFunction } from "@thi.ng/checks";
56
56
  * // [ "h1", "Hello world" ],
57
57
  * // [ "div.meta",
58
58
  * // [ "a", { href: "mailto:a@.b.com" }, "Alice" ],
59
- * // "(1/2/2003, 12:34:56 PM)" ],
59
+ * // "./2/2003, 12:34:56 PM)" ],
60
60
  * // "Ratione necessitatibus doloremque itaque." ]
61
61
  * ```
62
62
  *
@@ -68,7 +68,7 @@ export const deepTransform = (spec) => {
68
68
  }
69
69
  const mapfns = Object.keys(spec[1] || {}).reduce((acc, k) => ((acc[k] = deepTransform(spec[1][k])), acc), {});
70
70
  return (x) => {
71
- const res = Object.assign({}, x);
71
+ const res = { ...x };
72
72
  for (let k in mapfns) {
73
73
  res[k] = mapfns[k](res[k]);
74
74
  }
@@ -1,4 +1,4 @@
1
- import type { Transducer } from "../api";
1
+ import type { Transducer } from "./api.js";
2
2
  /**
3
3
  * Yields transducer which wraps incoming values in promises, which each
4
4
  * resolve after specified delay time (in ms).
@@ -1,5 +1,5 @@
1
- import { delayed as _delayed } from "@thi.ng/compose";
2
- import { map } from "./map";
1
+ import { delayed as _delayed } from "@thi.ng/compose/delayed";
2
+ import { map } from "./map.js";
3
3
  /**
4
4
  * Yields transducer which wraps incoming values in promises, which each
5
5
  * resolve after specified delay time (in ms).
@@ -1,5 +1,5 @@
1
1
  import type { Fn, Fn0 } from "@thi.ng/api";
2
- import type { Transducer } from "../api";
2
+ import type { Transducer } from "./api.js";
3
3
  export interface DistinctOpts<T> {
4
4
  /**
5
5
  * Key extractor function.
@@ -1,7 +1,7 @@
1
- import { compR } from "../func/compr";
2
- import { $iter } from "../iterator";
1
+ import { compR } from "./compr.js";
2
+ import { __iter } from "./iterator.js";
3
3
  export function distinct(...args) {
4
- return ($iter(distinct, args) ||
4
+ return (__iter(distinct, args) ||
5
5
  ((rfn) => {
6
6
  const r = rfn[2];
7
7
  const opts = (args[0] || {});
@@ -1,4 +1,4 @@
1
- import type { Reducer } from "../api";
1
+ import type { Reducer } from "./api.js";
2
2
  /**
3
3
  * Reducer to compute successive division of values using given `init`
4
4
  * value.
@@ -1,4 +1,4 @@
1
- import { reduce, reducer } from "../reduce";
1
+ import { reduce, reducer } from "./reduce.js";
2
2
  export function div(init, xs) {
3
3
  return xs
4
4
  ? reduce(div(init), xs)
@@ -1,4 +1,4 @@
1
- import type { Transducer } from "../api";
1
+ import type { Transducer } from "./api.js";
2
2
  export declare function dropNth<T>(n: number): Transducer<T, T>;
3
3
  export declare function dropNth<T>(n: number, src: Iterable<T>): IterableIterator<T>;
4
4
  //# sourceMappingURL=drop-nth.d.ts.map
@@ -1,7 +1,7 @@
1
- import { isIterable } from "@thi.ng/checks";
2
- import { clamp0 } from "@thi.ng/math";
3
- import { iterator1 } from "../iterator";
4
- import { throttle } from "./throttle";
1
+ import { isIterable } from "@thi.ng/checks/is-iterable";
2
+ import { clamp0 } from "@thi.ng/math/interval";
3
+ import { iterator1 } from "./iterator.js";
4
+ import { throttle } from "./throttle.js";
5
5
  export function dropNth(n, src) {
6
6
  if (isIterable(src)) {
7
7
  return iterator1(dropNth(n), src);
@@ -1,5 +1,5 @@
1
1
  import type { Predicate } from "@thi.ng/api";
2
- import type { Transducer } from "../api";
2
+ import type { Transducer } from "./api.js";
3
3
  export declare function dropWhile<T>(pred?: Predicate<T>): Transducer<T, T>;
4
4
  export declare function dropWhile<T>(src: Iterable<T>): IterableIterator<T>;
5
5
  export declare function dropWhile<T>(pred: Predicate<T>, src: Iterable<T>): IterableIterator<T>;
@@ -1,7 +1,7 @@
1
- import { compR } from "../func/compr";
2
- import { $iter } from "../iterator";
1
+ import { compR } from "./compr.js";
2
+ import { __iter } from "./iterator.js";
3
3
  export function dropWhile(...args) {
4
- return ($iter(dropWhile, args) ||
4
+ return (__iter(dropWhile, args) ||
5
5
  ((rfn) => {
6
6
  const r = rfn[2];
7
7
  const pred = args[0];
@@ -1,4 +1,4 @@
1
- import type { Transducer } from "../api";
1
+ import type { Transducer } from "./api.js";
2
2
  export declare function drop<T>(n: number): Transducer<T, T>;
3
3
  export declare function drop<T>(n: number, src: Iterable<T>): IterableIterator<T>;
4
4
  //# sourceMappingURL=drop.d.ts.map
@@ -1,6 +1,6 @@
1
- import { isIterable } from "@thi.ng/checks";
2
- import { compR } from "../func/compr";
3
- import { iterator1 } from "../iterator";
1
+ import { isIterable } from "@thi.ng/checks/is-iterable";
2
+ import { compR } from "./compr.js";
3
+ import { iterator1 } from "./iterator.js";
4
4
  export function drop(n, src) {
5
5
  return isIterable(src)
6
6
  ? iterator1(drop(n), src)
File without changes
package/dup.js ADDED
@@ -0,0 +1,11 @@
1
+ import { ensureArray } from "@thi.ng/arrays/ensure-array";
2
+ import { isArray } from "@thi.ng/checks/is-array";
3
+ import { isString } from "@thi.ng/checks/is-string";
4
+ import { concat } from "./concat.js";
5
+ export function dup(x) {
6
+ return isString(x)
7
+ ? x + x
8
+ : isArray(x)
9
+ ? x.concat(x)
10
+ : ((x = ensureArray(x)), concat(x, x));
11
+ }
@@ -1,4 +1,4 @@
1
- import type { Transducer } from "../api";
1
+ import type { Transducer } from "./api.js";
2
2
  export declare function duplicate<T>(n?: number): Transducer<T, T>;
3
3
  export declare function duplicate<T>(n: number, src: Iterable<T>): IterableIterator<T>;
4
4
  //# sourceMappingURL=duplicate.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 duplicate(n = 1, src) {
6
6
  return isIterable(src)
7
7
  ? iterator(duplicate(n), src)
package/ensure.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import type { Transducer, TxLike } from "./api.js";
2
+ export declare const ensureTransducer: <A, B>(x: TxLike<A, B>) => Transducer<A, B>;
3
+ //# sourceMappingURL=ensure.d.ts.map
@@ -1,2 +1,2 @@
1
- import { implementsFunction } from "@thi.ng/checks";
1
+ import { implementsFunction } from "@thi.ng/checks/implements-function";
2
2
  export const ensureTransducer = (x) => implementsFunction(x, "xform") ? x.xform() : x;
@@ -1,5 +1,5 @@
1
1
  import type { Predicate } from "@thi.ng/api";
2
- import type { Reducer } from "../api";
2
+ import type { Reducer } from "./api.js";
3
3
  /**
4
4
  * Reducer which applies optional `pred` function to each value and
5
5
  * terminates early if the predicate returned a falsy result. If no
@@ -1,5 +1,5 @@
1
- import { $$reduce, reducer } from "../reduce";
2
- import { reduced } from "../reduced";
1
+ import { $$reduce, reducer } from "./reduce.js";
2
+ import { reduced } from "./reduced.js";
3
3
  export function every(...args) {
4
4
  const res = $$reduce(every, args);
5
5
  if (res !== undefined) {
File without changes
@@ -1,5 +1,5 @@
1
- import { SEMAPHORE } from "@thi.ng/api";
2
- import { repeat } from "./repeat";
1
+ import { SEMAPHORE } from "@thi.ng/api/api";
2
+ import { repeat } from "./repeat.js";
3
3
  /**
4
4
  * Yields iterator of given iterable which repeats the first and/or last
5
5
  * value(s) `numLeft`/`numRight` times (default: 1).
@@ -1,5 +1,5 @@
1
1
  import type { NumericArray } from "@thi.ng/api";
2
- import type { Reducer } from "../api";
2
+ import type { Reducer } from "./api.js";
3
3
  /**
4
4
  * Reducer which starts filling array with results from given `start`
5
5
  * index (default: 0). Use {@link (fillN:1)} for typed array targets
@@ -1,4 +1,4 @@
1
- import { $$reduce, reducer } from "../reduce";
1
+ import { $$reduce, reducer } from "./reduce.js";
2
2
  export function fill(...args) {
3
3
  const res = $$reduce(fill, args);
4
4
  if (res !== undefined) {
@@ -1,5 +1,5 @@
1
1
  import type { Fn, Predicate2 } from "@thi.ng/api";
2
- import type { Transducer } from "../api";
2
+ import type { Transducer } from "./api.js";
3
3
  export interface FilterFuzzyOpts<A, B> {
4
4
  /**
5
5
  * Key extractor function.
@@ -1,8 +1,8 @@
1
- import { fuzzyMatch } from "@thi.ng/arrays";
2
- import { $iter } from "../iterator";
3
- import { filter } from "./filter";
1
+ import { fuzzyMatch } from "@thi.ng/arrays/fuzzy-match";
2
+ import { __iter } from "./iterator.js";
3
+ import { filter } from "./filter.js";
4
4
  export function filterFuzzy(...args) {
5
- const iter = args.length > 1 && $iter(filterFuzzy, args);
5
+ const iter = args.length > 1 && __iter(filterFuzzy, args);
6
6
  if (iter) {
7
7
  return iter;
8
8
  }
@@ -1,5 +1,5 @@
1
1
  import type { Predicate } from "@thi.ng/api";
2
- import type { Transducer } from "../api";
2
+ import type { Transducer } from "./api.js";
3
3
  export declare function filter<T>(pred: Predicate<T>): Transducer<T, T>;
4
4
  export declare function filter<T>(pred: Predicate<T>, src: Iterable<T>): IterableIterator<T>;
5
5
  //# sourceMappingURL=filter.d.ts.map
@@ -1,6 +1,6 @@
1
- import { isIterable } from "@thi.ng/checks";
2
- import { compR } from "../func/compr";
3
- import { iterator1 } from "../iterator";
1
+ import { isIterable } from "@thi.ng/checks/is-iterable";
2
+ import { compR } from "./compr.js";
3
+ import { iterator1 } from "./iterator.js";
4
4
  export function filter(pred, src) {
5
5
  return isIterable(src)
6
6
  ? iterator1(filter(pred), src)
@@ -1,5 +1,5 @@
1
1
  import type { DeepArrayValue, Fn, Nullable } from "@thi.ng/api";
2
- import type { Transducer } from "../api";
2
+ import type { Transducer } from "./api.js";
3
3
  declare type MaybeIterable<T> = Nullable<Iterable<T>>;
4
4
  /**
5
5
  * Transducer. Takes a function `fn` which will be applied to each input
@@ -1,7 +1,8 @@
1
- import { isIterable, isString } 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 { isString } from "@thi.ng/checks/is-string";
3
+ import { compR } from "./compr.js";
4
+ import { iterator } from "./iterator.js";
5
+ import { isReduced } from "./reduced.js";
5
6
  export function flattenWith(fn, src) {
6
7
  return isIterable(src)
7
8
  ? iterator(flattenWith(fn), isString(src) ? [src] : src)
@@ -1,5 +1,5 @@
1
1
  import type { DeepArrayValue } from "@thi.ng/api";
2
- import type { Transducer } from "../api";
2
+ import type { Transducer } from "./api.js";
3
3
  /**
4
4
  * Transducer. Recursively flattens input iff it is iterable and NOT a
5
5
  * string.
package/flatten.js ADDED
@@ -0,0 +1,5 @@
1
+ import { isNotStringAndIterable } from "@thi.ng/checks/is-not-string-iterable";
2
+ import { flattenWith } from "./flatten-with.js";
3
+ export function flatten(src) {
4
+ return flattenWith((x) => (isNotStringAndIterable(x) ? x : undefined), src);
5
+ }