rowpipe 2.0.0 → 2.2.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 (314) hide show
  1. package/README.md +420 -59
  2. package/dist/analytics/profiler.d.ts +56 -0
  3. package/dist/analytics/profiler.d.ts.map +1 -0
  4. package/dist/analytics/profiler.js +277 -0
  5. package/dist/analytics/profiler.js.map +1 -0
  6. package/dist/analytics/schema-inference.d.ts.map +1 -1
  7. package/dist/analytics/schema-inference.js +14 -0
  8. package/dist/analytics/schema-inference.js.map +1 -1
  9. package/dist/cli/commands/clean.d.ts +15 -0
  10. package/dist/cli/commands/clean.d.ts.map +1 -0
  11. package/dist/cli/commands/clean.js +108 -0
  12. package/dist/cli/commands/clean.js.map +1 -0
  13. package/dist/cli/commands/convert.d.ts +6 -0
  14. package/dist/cli/commands/convert.d.ts.map +1 -1
  15. package/dist/cli/commands/convert.js +6 -6
  16. package/dist/cli/commands/convert.js.map +1 -1
  17. package/dist/cli/commands/count.d.ts +12 -0
  18. package/dist/cli/commands/count.d.ts.map +1 -0
  19. package/dist/cli/commands/count.js +49 -0
  20. package/dist/cli/commands/count.js.map +1 -0
  21. package/dist/cli/commands/db.d.ts +35 -0
  22. package/dist/cli/commands/db.d.ts.map +1 -0
  23. package/dist/cli/commands/db.js +173 -0
  24. package/dist/cli/commands/db.js.map +1 -0
  25. package/dist/cli/commands/explain.d.ts +10 -0
  26. package/dist/cli/commands/explain.d.ts.map +1 -0
  27. package/dist/cli/commands/explain.js +98 -0
  28. package/dist/cli/commands/explain.js.map +1 -0
  29. package/dist/cli/commands/files.d.ts +2 -1
  30. package/dist/cli/commands/files.d.ts.map +1 -1
  31. package/dist/cli/commands/files.js +5 -2
  32. package/dist/cli/commands/files.js.map +1 -1
  33. package/dist/cli/commands/group.d.ts +12 -0
  34. package/dist/cli/commands/group.d.ts.map +1 -0
  35. package/dist/cli/commands/group.js +51 -0
  36. package/dist/cli/commands/group.js.map +1 -0
  37. package/dist/cli/commands/head.d.ts +7 -0
  38. package/dist/cli/commands/head.d.ts.map +1 -0
  39. package/dist/cli/commands/head.js +6 -0
  40. package/dist/cli/commands/head.js.map +1 -0
  41. package/dist/cli/commands/join.d.ts +23 -0
  42. package/dist/cli/commands/join.d.ts.map +1 -0
  43. package/dist/cli/commands/join.js +97 -0
  44. package/dist/cli/commands/join.js.map +1 -0
  45. package/dist/cli/commands/limit.d.ts +11 -0
  46. package/dist/cli/commands/limit.d.ts.map +1 -0
  47. package/dist/cli/commands/limit.js +40 -0
  48. package/dist/cli/commands/limit.js.map +1 -0
  49. package/dist/cli/commands/offset.d.ts +11 -0
  50. package/dist/cli/commands/offset.d.ts.map +1 -0
  51. package/dist/cli/commands/offset.js +39 -0
  52. package/dist/cli/commands/offset.js.map +1 -0
  53. package/dist/cli/commands/pipeline.d.ts +63 -0
  54. package/dist/cli/commands/pipeline.d.ts.map +1 -0
  55. package/dist/cli/commands/pipeline.js +239 -0
  56. package/dist/cli/commands/pipeline.js.map +1 -0
  57. package/dist/cli/commands/profile.d.ts +22 -0
  58. package/dist/cli/commands/profile.d.ts.map +1 -0
  59. package/dist/cli/commands/profile.js +53 -0
  60. package/dist/cli/commands/profile.js.map +1 -0
  61. package/dist/cli/commands/sort.d.ts +17 -0
  62. package/dist/cli/commands/sort.d.ts.map +1 -0
  63. package/dist/cli/commands/sort.js +55 -0
  64. package/dist/cli/commands/sort.js.map +1 -0
  65. package/dist/cli/commands/tail.d.ts +13 -0
  66. package/dist/cli/commands/tail.d.ts.map +1 -0
  67. package/dist/cli/commands/tail.js +39 -0
  68. package/dist/cli/commands/tail.js.map +1 -0
  69. package/dist/cli/commands/top.d.ts +19 -0
  70. package/dist/cli/commands/top.d.ts.map +1 -0
  71. package/dist/cli/commands/top.js +51 -0
  72. package/dist/cli/commands/top.js.map +1 -0
  73. package/dist/cli/commands/unique.d.ts +15 -0
  74. package/dist/cli/commands/unique.d.ts.map +1 -0
  75. package/dist/cli/commands/unique.js +44 -0
  76. package/dist/cli/commands/unique.js.map +1 -0
  77. package/dist/cli/commands/view.d.ts +12 -0
  78. package/dist/cli/commands/view.d.ts.map +1 -0
  79. package/dist/cli/commands/view.js +52 -0
  80. package/dist/cli/commands/view.js.map +1 -0
  81. package/dist/cli/commands/window.d.ts +10 -0
  82. package/dist/cli/commands/window.d.ts.map +1 -0
  83. package/dist/cli/commands/window.js +87 -0
  84. package/dist/cli/commands/window.js.map +1 -0
  85. package/dist/cli/index.js +448 -3
  86. package/dist/cli/index.js.map +1 -1
  87. package/dist/core/batch.d.ts +1 -1
  88. package/dist/core/batch.d.ts.map +1 -1
  89. package/dist/core/batch.js.map +1 -1
  90. package/dist/core/pipeline.d.ts +42 -2
  91. package/dist/core/pipeline.d.ts.map +1 -1
  92. package/dist/core/pipeline.js +70 -2
  93. package/dist/core/pipeline.js.map +1 -1
  94. package/dist/core/types.d.ts +21 -1
  95. package/dist/core/types.d.ts.map +1 -1
  96. package/dist/db/adapters/index.d.ts +6 -0
  97. package/dist/db/adapters/index.d.ts.map +1 -0
  98. package/dist/db/adapters/index.js +21 -0
  99. package/dist/db/adapters/index.js.map +1 -0
  100. package/dist/db/adapters/mysql.d.ts +16 -0
  101. package/dist/db/adapters/mysql.d.ts.map +1 -0
  102. package/dist/db/adapters/mysql.js +230 -0
  103. package/dist/db/adapters/mysql.js.map +1 -0
  104. package/dist/db/adapters/postgres.d.ts +17 -0
  105. package/dist/db/adapters/postgres.d.ts.map +1 -0
  106. package/dist/db/adapters/postgres.js +239 -0
  107. package/dist/db/adapters/postgres.js.map +1 -0
  108. package/dist/db/adapters/sqlite.d.ts +18 -0
  109. package/dist/db/adapters/sqlite.d.ts.map +1 -0
  110. package/dist/db/adapters/sqlite.js +210 -0
  111. package/dist/db/adapters/sqlite.js.map +1 -0
  112. package/dist/db/index.d.ts +11 -0
  113. package/dist/db/index.d.ts.map +1 -0
  114. package/dist/db/index.js +11 -0
  115. package/dist/db/index.js.map +1 -0
  116. package/dist/db/mapping.d.ts +45 -0
  117. package/dist/db/mapping.d.ts.map +1 -0
  118. package/dist/db/mapping.js +222 -0
  119. package/dist/db/mapping.js.map +1 -0
  120. package/dist/db/pushdown.d.ts +25 -0
  121. package/dist/db/pushdown.d.ts.map +1 -0
  122. package/dist/db/pushdown.js +165 -0
  123. package/dist/db/pushdown.js.map +1 -0
  124. package/dist/db/sink.d.ts +15 -0
  125. package/dist/db/sink.d.ts.map +1 -0
  126. package/dist/db/sink.js +47 -0
  127. package/dist/db/sink.js.map +1 -0
  128. package/dist/db/source.d.ts +14 -0
  129. package/dist/db/source.d.ts.map +1 -0
  130. package/dist/db/source.js +69 -0
  131. package/dist/db/source.js.map +1 -0
  132. package/dist/db/types.d.ts +80 -0
  133. package/dist/db/types.d.ts.map +1 -0
  134. package/dist/db/types.js +2 -0
  135. package/dist/db/types.js.map +1 -0
  136. package/dist/db/url.d.ts +15 -0
  137. package/dist/db/url.d.ts.map +1 -0
  138. package/dist/db/url.js +145 -0
  139. package/dist/db/url.js.map +1 -0
  140. package/dist/diff/hash.d.ts.map +1 -1
  141. package/dist/diff/hash.js +4 -3
  142. package/dist/diff/hash.js.map +1 -1
  143. package/dist/diff/key.d.ts.map +1 -1
  144. package/dist/diff/key.js +8 -1
  145. package/dist/diff/key.js.map +1 -1
  146. package/dist/diff/reporter.d.ts.map +1 -1
  147. package/dist/diff/reporter.js +5 -3
  148. package/dist/diff/reporter.js.map +1 -1
  149. package/dist/diff/storage/disk-index.d.ts.map +1 -1
  150. package/dist/diff/storage/disk-index.js +2 -1
  151. package/dist/diff/storage/disk-index.js.map +1 -1
  152. package/dist/diff/storage/memory-index.d.ts.map +1 -1
  153. package/dist/diff/storage/memory-index.js +3 -2
  154. package/dist/diff/storage/memory-index.js.map +1 -1
  155. package/dist/index.d.ts +20 -1
  156. package/dist/index.d.ts.map +1 -1
  157. package/dist/index.js +22 -1
  158. package/dist/index.js.map +1 -1
  159. package/dist/planner/executor.d.ts +8 -0
  160. package/dist/planner/executor.d.ts.map +1 -0
  161. package/dist/planner/executor.js +93 -0
  162. package/dist/planner/executor.js.map +1 -0
  163. package/dist/planner/explain.d.ts +6 -0
  164. package/dist/planner/explain.d.ts.map +1 -0
  165. package/dist/planner/explain.js +91 -0
  166. package/dist/planner/explain.js.map +1 -0
  167. package/dist/planner/index.d.ts +5 -0
  168. package/dist/planner/index.d.ts.map +1 -0
  169. package/dist/planner/index.js +5 -0
  170. package/dist/planner/index.js.map +1 -0
  171. package/dist/planner/optimizer.d.ts +9 -0
  172. package/dist/planner/optimizer.d.ts.map +1 -0
  173. package/dist/planner/optimizer.js +78 -0
  174. package/dist/planner/optimizer.js.map +1 -0
  175. package/dist/planner/types.d.ts +67 -0
  176. package/dist/planner/types.d.ts.map +1 -0
  177. package/dist/planner/types.js +2 -0
  178. package/dist/planner/types.js.map +1 -0
  179. package/dist/readers/csv.d.ts.map +1 -1
  180. package/dist/readers/csv.js +1 -2
  181. package/dist/readers/csv.js.map +1 -1
  182. package/dist/readers/index.d.ts +5 -1
  183. package/dist/readers/index.d.ts.map +1 -1
  184. package/dist/readers/index.js +43 -0
  185. package/dist/readers/index.js.map +1 -1
  186. package/dist/readers/json.d.ts.map +1 -1
  187. package/dist/readers/json.js +1 -2
  188. package/dist/readers/json.js.map +1 -1
  189. package/dist/readers/jsonl.d.ts.map +1 -1
  190. package/dist/readers/jsonl.js +1 -2
  191. package/dist/readers/jsonl.js.map +1 -1
  192. package/dist/readers/multi-file.d.ts +29 -0
  193. package/dist/readers/multi-file.d.ts.map +1 -0
  194. package/dist/readers/multi-file.js +169 -0
  195. package/dist/readers/multi-file.js.map +1 -0
  196. package/dist/transforms/clean.d.ts +18 -0
  197. package/dist/transforms/clean.d.ts.map +1 -0
  198. package/dist/transforms/clean.js +118 -0
  199. package/dist/transforms/clean.js.map +1 -0
  200. package/dist/transforms/count.d.ts +21 -0
  201. package/dist/transforms/count.d.ts.map +1 -0
  202. package/dist/transforms/count.js +65 -0
  203. package/dist/transforms/count.js.map +1 -0
  204. package/dist/transforms/expression.d.ts.map +1 -1
  205. package/dist/transforms/expression.js +12 -0
  206. package/dist/transforms/expression.js.map +1 -1
  207. package/dist/transforms/group.d.ts +25 -0
  208. package/dist/transforms/group.d.ts.map +1 -0
  209. package/dist/transforms/group.js +71 -0
  210. package/dist/transforms/group.js.map +1 -0
  211. package/dist/transforms/jit-compiler.d.ts +50 -0
  212. package/dist/transforms/jit-compiler.d.ts.map +1 -0
  213. package/dist/transforms/jit-compiler.js +275 -0
  214. package/dist/transforms/jit-compiler.js.map +1 -0
  215. package/dist/transforms/join/index-storage.d.ts +33 -0
  216. package/dist/transforms/join/index-storage.d.ts.map +1 -0
  217. package/dist/transforms/join/index-storage.js +139 -0
  218. package/dist/transforms/join/index-storage.js.map +1 -0
  219. package/dist/transforms/join/index.d.ts +4 -0
  220. package/dist/transforms/join/index.d.ts.map +1 -0
  221. package/dist/transforms/join/index.js +4 -0
  222. package/dist/transforms/join/index.js.map +1 -0
  223. package/dist/transforms/join/join.d.ts +15 -0
  224. package/dist/transforms/join/join.d.ts.map +1 -0
  225. package/dist/transforms/join/join.js +216 -0
  226. package/dist/transforms/join/join.js.map +1 -0
  227. package/dist/transforms/join/types.d.ts +29 -0
  228. package/dist/transforms/join/types.d.ts.map +1 -0
  229. package/dist/transforms/join/types.js +2 -0
  230. package/dist/transforms/join/types.js.map +1 -0
  231. package/dist/transforms/limit.d.ts +7 -0
  232. package/dist/transforms/limit.d.ts.map +1 -0
  233. package/dist/transforms/limit.js +40 -0
  234. package/dist/transforms/limit.js.map +1 -0
  235. package/dist/transforms/offset.d.ts +7 -0
  236. package/dist/transforms/offset.d.ts.map +1 -0
  237. package/dist/transforms/offset.js +38 -0
  238. package/dist/transforms/offset.js.map +1 -0
  239. package/dist/transforms/sort/comparator.d.ts +43 -0
  240. package/dist/transforms/sort/comparator.d.ts.map +1 -0
  241. package/dist/transforms/sort/comparator.js +131 -0
  242. package/dist/transforms/sort/comparator.js.map +1 -0
  243. package/dist/transforms/sort/external-sort.d.ts +8 -0
  244. package/dist/transforms/sort/external-sort.d.ts.map +1 -0
  245. package/dist/transforms/sort/external-sort.js +159 -0
  246. package/dist/transforms/sort/external-sort.js.map +1 -0
  247. package/dist/transforms/sort/index.d.ts +10 -0
  248. package/dist/transforms/sort/index.d.ts.map +1 -0
  249. package/dist/transforms/sort/index.js +11 -0
  250. package/dist/transforms/sort/index.js.map +1 -0
  251. package/dist/transforms/tail.d.ts +6 -0
  252. package/dist/transforms/tail.d.ts.map +1 -0
  253. package/dist/transforms/tail.js +27 -0
  254. package/dist/transforms/tail.js.map +1 -0
  255. package/dist/transforms/top.d.ts +17 -0
  256. package/dist/transforms/top.d.ts.map +1 -0
  257. package/dist/transforms/top.js +52 -0
  258. package/dist/transforms/top.js.map +1 -0
  259. package/dist/transforms/unique.d.ts +13 -0
  260. package/dist/transforms/unique.d.ts.map +1 -0
  261. package/dist/transforms/unique.js +91 -0
  262. package/dist/transforms/unique.js.map +1 -0
  263. package/dist/transforms/window.d.ts +24 -0
  264. package/dist/transforms/window.d.ts.map +1 -0
  265. package/dist/transforms/window.js +317 -0
  266. package/dist/transforms/window.js.map +1 -0
  267. package/dist/ui/colors.d.ts +57 -0
  268. package/dist/ui/colors.d.ts.map +1 -0
  269. package/dist/ui/colors.js +94 -0
  270. package/dist/ui/colors.js.map +1 -0
  271. package/dist/ui/viewer.d.ts +67 -0
  272. package/dist/ui/viewer.d.ts.map +1 -0
  273. package/dist/ui/viewer.js +673 -0
  274. package/dist/ui/viewer.js.map +1 -0
  275. package/dist/utils/compression.d.ts +68 -19
  276. package/dist/utils/compression.d.ts.map +1 -1
  277. package/dist/utils/compression.js +222 -34
  278. package/dist/utils/compression.js.map +1 -1
  279. package/dist/utils/formatting.d.ts +5 -0
  280. package/dist/utils/formatting.d.ts.map +1 -1
  281. package/dist/utils/formatting.js +15 -0
  282. package/dist/utils/formatting.js.map +1 -1
  283. package/dist/utils/heap.d.ts +25 -0
  284. package/dist/utils/heap.d.ts.map +1 -0
  285. package/dist/utils/heap.js +90 -0
  286. package/dist/utils/heap.js.map +1 -0
  287. package/dist/utils/keystore.d.ts +80 -0
  288. package/dist/utils/keystore.d.ts.map +1 -0
  289. package/dist/utils/keystore.js +217 -0
  290. package/dist/utils/keystore.js.map +1 -0
  291. package/dist/utils/ring-buffer.d.ts +15 -0
  292. package/dist/utils/ring-buffer.d.ts.map +1 -0
  293. package/dist/utils/ring-buffer.js +40 -0
  294. package/dist/utils/ring-buffer.js.map +1 -0
  295. package/dist/writers/csv.d.ts.map +1 -1
  296. package/dist/writers/csv.js +13 -14
  297. package/dist/writers/csv.js.map +1 -1
  298. package/dist/writers/index.d.ts +1 -0
  299. package/dist/writers/index.d.ts.map +1 -1
  300. package/dist/writers/index.js +35 -0
  301. package/dist/writers/index.js.map +1 -1
  302. package/dist/writers/json.d.ts.map +1 -1
  303. package/dist/writers/json.js +6 -5
  304. package/dist/writers/json.js.map +1 -1
  305. package/dist/writers/jsonl.d.ts.map +1 -1
  306. package/dist/writers/jsonl.js +6 -5
  307. package/dist/writers/jsonl.js.map +1 -1
  308. package/dist/writers/markdown.d.ts.map +1 -1
  309. package/dist/writers/markdown.js +5 -4
  310. package/dist/writers/markdown.js.map +1 -1
  311. package/dist/writers/parquet.d.ts +1 -1
  312. package/dist/writers/parquet.d.ts.map +1 -1
  313. package/package.json +11 -2
  314. package/skills/rowpipe/SKILL.md +16 -3
@@ -0,0 +1,277 @@
1
+ import { classifyPrimitiveType } from "./schema-inference.js";
2
+ import { detectSemanticType } from "./semantic-types.js";
3
+ import { HyperLogLog } from "./stats.js";
4
+ import { formatNumber, formatTable } from "../utils/formatting.js";
5
+ class ColumnProfiler {
6
+ name;
7
+ totalCount = 0;
8
+ nullCount = 0;
9
+ emptyStringCount = 0;
10
+ typeCounts = {
11
+ string: 0,
12
+ integer: 0,
13
+ bigint: 0,
14
+ number: 0,
15
+ decimal: 0,
16
+ boolean: 0,
17
+ date: 0,
18
+ datetime: 0,
19
+ binary: 0,
20
+ json: 0,
21
+ null: 0,
22
+ mixed: 0,
23
+ };
24
+ semanticCounts = {};
25
+ hll = new HyperLogLog(10);
26
+ frequencies = new Map();
27
+ // Numeric tracking (Welford's algorithm)
28
+ numericCount = 0;
29
+ numMin = Number.POSITIVE_INFINITY;
30
+ numMax = Number.NEGATIVE_INFINITY;
31
+ numSum = 0;
32
+ welfordMean = 0;
33
+ welfordM2 = 0;
34
+ zerosCount = 0;
35
+ negativeCount = 0;
36
+ // String tracking
37
+ stringCount = 0;
38
+ strMinLen = Number.POSITIVE_INFINITY;
39
+ strMaxLen = 0;
40
+ strSumLen = 0;
41
+ // Anomaly tracking
42
+ anomalies = [];
43
+ constructor(name) {
44
+ this.name = name;
45
+ }
46
+ add(val) {
47
+ this.totalCount++;
48
+ if (val === null || val === undefined) {
49
+ this.nullCount++;
50
+ this.typeCounts.null++;
51
+ return;
52
+ }
53
+ if (val === "") {
54
+ this.emptyStringCount++;
55
+ this.typeCounts.null++;
56
+ return;
57
+ }
58
+ const valStr = String(val);
59
+ this.hll.add(valStr);
60
+ // Track top frequency for up to 1000 distinct items
61
+ if (this.frequencies.size < 1000 || this.frequencies.has(valStr)) {
62
+ this.frequencies.set(valStr, (this.frequencies.get(valStr) || 0) + 1);
63
+ }
64
+ const primType = classifyPrimitiveType(val);
65
+ this.typeCounts[primType] = (this.typeCounts[primType] || 0) + 1;
66
+ // Semantic type detection
67
+ if (typeof val === "string" && val.length > 2) {
68
+ const sem = detectSemanticType(val);
69
+ if (sem) {
70
+ this.semanticCounts[sem] = (this.semanticCounts[sem] || 0) + 1;
71
+ }
72
+ }
73
+ // Numeric aggregation
74
+ const numVal = typeof val === "number" ? val : (typeof val === "string" && /^-?\d+(?:\.\d+)?$/.test(val.trim()) ? Number(val) : NaN);
75
+ if (!Number.isNaN(numVal)) {
76
+ this.numericCount++;
77
+ this.numSum += numVal;
78
+ if (numVal < this.numMin)
79
+ this.numMin = numVal;
80
+ if (numVal > this.numMax)
81
+ this.numMax = numVal;
82
+ if (numVal === 0)
83
+ this.zerosCount++;
84
+ if (numVal < 0)
85
+ this.negativeCount++;
86
+ // Welford's algorithm for online variance
87
+ const delta = numVal - this.welfordMean;
88
+ this.welfordMean += delta / this.numericCount;
89
+ const delta2 = numVal - this.welfordMean;
90
+ this.welfordM2 += delta * delta2;
91
+ }
92
+ // String aggregation
93
+ if (typeof val === "string") {
94
+ this.stringCount++;
95
+ const len = val.length;
96
+ if (len < this.strMinLen)
97
+ this.strMinLen = len;
98
+ if (len > this.strMaxLen)
99
+ this.strMaxLen = len;
100
+ this.strSumLen += len;
101
+ }
102
+ }
103
+ computeResult() {
104
+ const nonNullRows = this.totalCount - this.nullCount - this.emptyStringCount;
105
+ let dominantType = "string";
106
+ let maxTypeCount = 0;
107
+ for (const [t, count] of Object.entries(this.typeCounts)) {
108
+ if (t === "null")
109
+ continue;
110
+ if (count > maxTypeCount) {
111
+ maxTypeCount = count;
112
+ dominantType = t;
113
+ }
114
+ }
115
+ const typeConfidence = nonNullRows > 0 ? maxTypeCount / nonNullRows : 1;
116
+ const isNumeric = dominantType === "integer" || dominantType === "number" || dominantType === "decimal" || dominantType === "bigint";
117
+ const isString = dominantType === "string" || dominantType === "date" || dominantType === "datetime";
118
+ // Top values calculation
119
+ const sortedFreq = Array.from(this.frequencies.entries())
120
+ .sort((a, b) => b[1] - a[1])
121
+ .slice(0, 5)
122
+ .map(([value, count]) => ({
123
+ value,
124
+ count,
125
+ percentage: this.totalCount > 0 ? Math.round((count / this.totalCount) * 1000) / 10 : 0,
126
+ }));
127
+ // Semantic type
128
+ let semanticType;
129
+ let semanticConfidence;
130
+ let maxSemCount = 0;
131
+ for (const [sem, count] of Object.entries(this.semanticCounts)) {
132
+ if (count > maxSemCount) {
133
+ maxSemCount = count;
134
+ semanticType = sem;
135
+ }
136
+ }
137
+ if (semanticType && nonNullRows > 0) {
138
+ semanticConfidence = Math.round((maxSemCount / nonNullRows) * 100) / 100;
139
+ }
140
+ const approxDistinct = this.hll.count();
141
+ const res = {
142
+ name: this.name,
143
+ inferredType: dominantType,
144
+ typeConfidence: Math.round(typeConfidence * 100) / 100,
145
+ typeBreakdown: { ...this.typeCounts },
146
+ anomalies: this.anomalies,
147
+ totalRows: this.totalCount,
148
+ nullCount: this.nullCount + this.emptyStringCount,
149
+ nullPercentage: this.totalCount > 0 ? Math.round(((this.nullCount + this.emptyStringCount) / this.totalCount) * 1000) / 10 : 0,
150
+ emptyStringCount: this.emptyStringCount,
151
+ approxDistinctCount: approxDistinct,
152
+ distinctPercentage: this.totalCount > 0 ? Math.round((approxDistinct / this.totalCount) * 1000) / 10 : 0,
153
+ semanticType,
154
+ semanticConfidence,
155
+ isNumeric,
156
+ isString,
157
+ topValues: sortedFreq,
158
+ };
159
+ if (isNumeric && this.numericCount > 0) {
160
+ res.min = this.numMin === Number.POSITIVE_INFINITY ? undefined : this.numMin;
161
+ res.max = this.numMax === Number.NEGATIVE_INFINITY ? undefined : this.numMax;
162
+ res.sum = this.numSum;
163
+ res.mean = this.welfordMean;
164
+ res.stddev = this.numericCount > 1 ? Math.sqrt(this.welfordM2 / (this.numericCount - 1)) : 0;
165
+ res.zerosCount = this.zerosCount;
166
+ res.negativeCount = this.negativeCount;
167
+ }
168
+ if (isString && this.stringCount > 0) {
169
+ res.minLength = this.strMinLen === Number.POSITIVE_INFINITY ? 0 : this.strMinLen;
170
+ res.maxLength = this.strMaxLen;
171
+ res.avgLength = Math.round((this.strSumLen / this.stringCount) * 10) / 10;
172
+ }
173
+ return res;
174
+ }
175
+ }
176
+ /**
177
+ * Single-pass Streaming Dataset Profiler.
178
+ */
179
+ export class DatasetProfiler {
180
+ columnProfilers = new Map();
181
+ totalRows = 0;
182
+ add(row) {
183
+ this.totalRows++;
184
+ for (const [col, val] of Object.entries(row)) {
185
+ let profiler = this.columnProfilers.get(col);
186
+ if (!profiler) {
187
+ profiler = new ColumnProfiler(col);
188
+ this.columnProfilers.set(col, profiler);
189
+ }
190
+ profiler.add(val);
191
+ }
192
+ }
193
+ result() {
194
+ const columns = [];
195
+ for (const profiler of this.columnProfilers.values()) {
196
+ columns.push(profiler.computeResult());
197
+ }
198
+ return {
199
+ totalRows: this.totalRows,
200
+ totalColumns: columns.length,
201
+ columns,
202
+ };
203
+ }
204
+ }
205
+ /**
206
+ * Formats profile results as an aligned terminal table.
207
+ */
208
+ export function formatProfileTerminal(profile) {
209
+ const headers = ["COLUMN", "TYPE", "DISTINCT", "NULLS (%)", "MIN / MIN-LEN", "MAX / MAX-LEN", "MEAN / TOP-VALUE"];
210
+ const rows = profile.columns.map((c) => {
211
+ const nullStr = `${formatNumber(c.nullCount)} (${c.nullPercentage}%)`;
212
+ const distinctStr = `${formatNumber(c.approxDistinctCount)} (${c.distinctPercentage}%)`;
213
+ let minStr = "-";
214
+ let maxStr = "-";
215
+ let meanStr = "-";
216
+ if (c.isNumeric && c.min !== undefined && c.max !== undefined) {
217
+ minStr = String(c.min);
218
+ maxStr = String(c.max);
219
+ meanStr = c.mean !== undefined ? (Math.round(c.mean * 100) / 100).toString() : "-";
220
+ }
221
+ else if (c.isString) {
222
+ minStr = `${c.minLength ?? 0} chars`;
223
+ maxStr = `${c.maxLength ?? 0} chars`;
224
+ if (c.topValues && c.topValues.length > 0) {
225
+ meanStr = `${c.topValues[0].value} (${c.topValues[0].count})`;
226
+ }
227
+ }
228
+ return [
229
+ c.name,
230
+ c.semanticType ? `${c.inferredType} (${c.semanticType})` : c.inferredType,
231
+ distinctStr,
232
+ nullStr,
233
+ minStr,
234
+ maxStr,
235
+ meanStr,
236
+ ];
237
+ });
238
+ let out = `\n======================================================\n`;
239
+ out += ` Rowpipe Dataset Profile (${formatNumber(profile.totalRows)} rows, ${profile.totalColumns} columns)\n`;
240
+ out += `======================================================\n\n`;
241
+ out += formatTable(headers, rows);
242
+ out += "\n";
243
+ return out;
244
+ }
245
+ /**
246
+ * Formats profile results as a GitHub Flavored Markdown document.
247
+ */
248
+ export function formatProfileMarkdown(profile) {
249
+ let md = `# Dataset Profile Report\n\n`;
250
+ md += `* **Total Rows**: ${formatNumber(profile.totalRows)}\n`;
251
+ md += `* **Total Columns**: ${profile.totalColumns}\n\n`;
252
+ md += `| Column | Type | Distinct | Nulls (%) | Min | Max | Mean / Top Value |\n`;
253
+ md += `| :--- | :--- | :--- | :--- | :--- | :--- | :--- |\n`;
254
+ for (const c of profile.columns) {
255
+ const typeStr = c.semanticType ? `${c.inferredType} (${c.semanticType})` : c.inferredType;
256
+ const nullStr = `${formatNumber(c.nullCount)} (${c.nullPercentage}%)`;
257
+ const distinctStr = `${formatNumber(c.approxDistinctCount)} (${c.distinctPercentage}%)`;
258
+ let minStr = "-";
259
+ let maxStr = "-";
260
+ let meanStr = "-";
261
+ if (c.isNumeric && c.min !== undefined && c.max !== undefined) {
262
+ minStr = String(c.min);
263
+ maxStr = String(c.max);
264
+ meanStr = c.mean !== undefined ? (Math.round(c.mean * 100) / 100).toString() : "-";
265
+ }
266
+ else if (c.isString) {
267
+ minStr = `${c.minLength ?? 0} chars`;
268
+ maxStr = `${c.maxLength ?? 0} chars`;
269
+ if (c.topValues && c.topValues.length > 0) {
270
+ meanStr = `${c.topValues[0].value} (${c.topValues[0].count})`;
271
+ }
272
+ }
273
+ md += `| **${c.name}** | \`${typeStr}\` | ${distinctStr} | ${nullStr} | ${minStr} | ${maxStr} | ${meanStr} |\n`;
274
+ }
275
+ return md;
276
+ }
277
+ //# sourceMappingURL=profiler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profiler.js","sourceRoot":"","sources":["../../src/analytics/profiler.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema-inference.d.ts","sourceRoot":"","sources":["../../src/analytics/schema-inference.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGlF,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,qBAAqB,EAAE,CAAC;CAClC;AAKD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAuChE;AAED,qBAAa,yBAA0B,YAAW,UAAU,CAAC,oBAAoB,CAAC;IAChF,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAQf;gBAEQ,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAIzC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IAuCnB,MAAM,IAAI,oBAAoB;CA6F/B"}
1
+ {"version":3,"file":"schema-inference.d.ts","sourceRoot":"","sources":["../../src/analytics/schema-inference.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGlF,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,qBAAqB,EAAE,CAAC;CAClC;AAKD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CA+ChE;AAED,qBAAa,yBAA0B,YAAW,UAAU,CAAC,oBAAoB,CAAC;IAChF,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAQf;gBAEQ,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAIzC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IA2CnB,MAAM,IAAI,oBAAoB;CA6F/B"}
@@ -10,9 +10,19 @@ export function classifyPrimitiveType(value) {
10
10
  }
11
11
  if (typeof value === "boolean")
12
12
  return "boolean";
13
+ if (typeof value === "bigint")
14
+ return "bigint";
13
15
  if (typeof value === "number") {
14
16
  return Number.isInteger(value) ? "integer" : "number";
15
17
  }
18
+ if (Buffer.isBuffer(value) || value instanceof Uint8Array) {
19
+ return "binary";
20
+ }
21
+ if (typeof value === "object") {
22
+ if (value instanceof Date)
23
+ return "datetime";
24
+ return "json";
25
+ }
16
26
  const str = String(value).trim();
17
27
  // Boolean strings
18
28
  if (["true", "false"].includes(str.toLowerCase())) {
@@ -56,10 +66,14 @@ export class SchemaInferenceAggregator {
56
66
  counts: {
57
67
  string: 0,
58
68
  integer: 0,
69
+ bigint: 0,
59
70
  number: 0,
71
+ decimal: 0,
60
72
  boolean: 0,
61
73
  date: 0,
62
74
  datetime: 0,
75
+ binary: 0,
76
+ json: 0,
63
77
  null: 0,
64
78
  mixed: 0,
65
79
  },
@@ -1 +1 @@
1
- {"version":3,"file":"schema-inference.js","sourceRoot":"","sources":["../../src/analytics/schema-inference.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-inference.js","sourceRoot":"","sources":["../../src/analytics/schema-inference.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { UnifiedPipelineCliOptions } from "./pipeline.js";
2
+ export interface CleanCommandOptions extends UnifiedPipelineCliOptions {
3
+ trim?: boolean;
4
+ nullValues?: string;
5
+ fillNulls?: string | string[];
6
+ coerce?: boolean;
7
+ stripChars?: string;
8
+ case?: "lower" | "upper" | "title";
9
+ dropEmptyRows?: boolean;
10
+ }
11
+ /**
12
+ * Handles `rowpipe clean [input] [options]`
13
+ */
14
+ export declare function cleanCommand(inputPath?: string, options?: CleanCommandOptions): Promise<void>;
15
+ //# sourceMappingURL=clean.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clean.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/clean.ts"],"names":[],"mappings":"AASA,OAAO,EAA8B,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAEtF,MAAM,WAAW,mBAAoB,SAAQ,yBAAyB;IACpE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,SAAS,SAAM,EACf,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,IAAI,CAAC,CAqGf"}
@@ -0,0 +1,108 @@
1
+ import { cleanRows } from "../../transforms/clean.js";
2
+ import { uniqueRows } from "../../transforms/unique.js";
3
+ import { createReader, inferFormatFromPath as inferReaderFormat } from "../../readers/index.js";
4
+ import { createWriter, inferFormatFromPath as inferWriterFormat } from "../../writers/index.js";
5
+ import { openReadableStream } from "../../utils/compression.js";
6
+ import { logMemoryDebug } from "../../utils/formatting.js";
7
+ import { ProgressReporter } from "../../utils/progress.js";
8
+ import { executePlannedPipeline, optimizePipeline } from "../../planner/index.js";
9
+ import { buildOperationsFromOptions } from "./pipeline.js";
10
+ /**
11
+ * Handles `rowpipe clean [input] [options]`
12
+ */
13
+ export async function cleanCommand(inputPath = "-", options = {}) {
14
+ const progress = new ProgressReporter(options);
15
+ const effectiveBatchSize = Number(options.batchSize) || 1000;
16
+ let fromFormat = options.from?.toLowerCase();
17
+ if (!fromFormat && inputPath !== "-") {
18
+ fromFormat = inferReaderFormat(inputPath) ?? undefined;
19
+ }
20
+ if (!fromFormat) {
21
+ fromFormat = "csv";
22
+ }
23
+ let toFormat = options.to?.toLowerCase();
24
+ if (options.json) {
25
+ toFormat = "json";
26
+ }
27
+ else if (!toFormat && options.output && options.output !== "-") {
28
+ toFormat = inferWriterFormat(options.output) ?? undefined;
29
+ }
30
+ if (!toFormat) {
31
+ toFormat = fromFormat === "xlsx" ? "csv" : fromFormat;
32
+ }
33
+ const readerInput = inputPath === "-" ? openReadableStream("-", options) : inputPath;
34
+ const reader = createReader(readerInput, {
35
+ format: fromFormat,
36
+ sheet: options.sheet,
37
+ delimiter: options.delimiter,
38
+ filePath: inputPath,
39
+ ...options,
40
+ batchSize: effectiveBatchSize,
41
+ });
42
+ // Parse fill-nulls specs (e.g. --fill-nulls 'revenue=0' or --fill-nulls '0')
43
+ let fillNullsParsed = undefined;
44
+ if (options.fillNulls) {
45
+ const rawList = Array.isArray(options.fillNulls) ? options.fillNulls : [options.fillNulls];
46
+ const fillMap = {};
47
+ let isGlobal = false;
48
+ let globalVal = undefined;
49
+ for (const item of rawList) {
50
+ const eqIdx = item.indexOf("=");
51
+ if (eqIdx > 0) {
52
+ const col = item.slice(0, eqIdx).trim();
53
+ const valStr = item.slice(eqIdx + 1).trim();
54
+ try {
55
+ fillMap[col] = JSON.parse(valStr);
56
+ }
57
+ catch {
58
+ fillMap[col] = valStr;
59
+ }
60
+ }
61
+ else {
62
+ isGlobal = true;
63
+ try {
64
+ globalVal = JSON.parse(item);
65
+ }
66
+ catch {
67
+ globalVal = item;
68
+ }
69
+ }
70
+ }
71
+ fillNullsParsed = isGlobal ? globalVal : fillMap;
72
+ }
73
+ const nullVals = options.nullValues ? options.nullValues.split(",").map((s) => s.trim()) : undefined;
74
+ const cleanTransform = cleanRows({
75
+ trim: options.trim !== false,
76
+ nullValues: nullVals,
77
+ fillNulls: fillNullsParsed,
78
+ coerce: options.coerce === true,
79
+ stripChars: options.stripChars,
80
+ case: options.case,
81
+ dropEmptyRows: options.dropEmptyRows,
82
+ });
83
+ const rawOps = buildOperationsFromOptions(options);
84
+ const plan = optimizePipeline(rawOps);
85
+ const writer = createWriter(options.output || "-", {
86
+ format: toFormat,
87
+ delimiter: options.delimiter,
88
+ ...options,
89
+ });
90
+ const pipeline = executePlannedPipeline(reader, plan, { batchSize: effectiveBatchSize });
91
+ pipeline.pipe(cleanTransform);
92
+ if (options.unique !== undefined && options.unique !== false) {
93
+ pipeline.pipe(uniqueRows({ by: typeof options.unique === "string" ? options.unique.split(",") : undefined }));
94
+ }
95
+ pipeline.onProgress((info) => progress.update(info));
96
+ try {
97
+ await pipeline.to(writer);
98
+ }
99
+ finally {
100
+ if (reader.close)
101
+ await reader.close();
102
+ if (writer.close)
103
+ await writer.close();
104
+ }
105
+ progress.done();
106
+ logMemoryDebug();
107
+ }
108
+ //# sourceMappingURL=clean.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clean.js","sourceRoot":"","sources":["../../../src/cli/commands/clean.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,12 @@ export interface ConvertCommandOptions {
7
7
  path?: string;
8
8
  delimiter?: string;
9
9
  header?: boolean;
10
+ gzip?: boolean;
11
+ brotli?: boolean;
12
+ zstd?: boolean;
13
+ deflate?: boolean;
14
+ compress?: string;
15
+ compression?: string;
10
16
  batchSize?: string | number;
11
17
  quiet?: boolean;
12
18
  noProgress?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/convert.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,cAAc,CAClC,SAAS,SAAM,EACf,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,IAAI,CAAC,CAmGf"}
1
+ {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/convert.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,cAAc,CAClC,SAAS,SAAM,EACf,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,IAAI,CAAC,CAmGf"}
@@ -4,7 +4,6 @@ import { createPipeline } from "../../core/pipeline.js";
4
4
  import { createReader, inferFormatFromPath as inferReaderFormat } from "../../readers/index.js";
5
5
  import { XLSXReader } from "../../readers/xlsx.js";
6
6
  import { createWriter, inferFormatFromPath as inferWriterFormat } from "../../writers/index.js";
7
- import { openReadableStream, openWritableStream } from "../../utils/compression.js";
8
7
  import { formatNumber, logMemoryDebug } from "../../utils/formatting.js";
9
8
  import { ProgressReporter } from "../../utils/progress.js";
10
9
  export async function convertCommand(inputPath = "-", outputPath, options = {}) {
@@ -43,6 +42,7 @@ export async function convertCommand(inputPath = "-", outputPath, options = {})
43
42
  format: toFormat,
44
43
  delimiter: options.delimiter,
45
44
  header: options.header,
45
+ ...options,
46
46
  });
47
47
  const pipeline = createPipeline(sheetReader, { batchSize: effectiveBatchSize });
48
48
  await pipeline.to(sheetWriter);
@@ -63,22 +63,22 @@ export async function convertCommand(inputPath = "-", outputPath, options = {})
63
63
  }
64
64
  const progress = new ProgressReporter(options);
65
65
  const effectiveOutput = outputPath || "-";
66
- const inputStream = openReadableStream(inputPath);
67
- const outputStream = openWritableStream(effectiveOutput);
68
- const reader = createReader(inputStream, {
66
+ const reader = createReader(inputPath, {
69
67
  format: fromFormat,
70
68
  sheet: options.sheet,
71
69
  path: options.path,
72
70
  delimiter: options.delimiter,
73
71
  header: options.header,
74
- batchSize: effectiveBatchSize,
75
72
  filePath: inputPath,
73
+ ...options,
74
+ batchSize: effectiveBatchSize,
76
75
  });
77
- const writer = createWriter(outputStream, {
76
+ const writer = createWriter(effectiveOutput, {
78
77
  format: toFormat,
79
78
  delimiter: options.delimiter,
80
79
  header: options.header,
81
80
  sheet: options.sheet,
81
+ ...options,
82
82
  });
83
83
  const pipeline = createPipeline(reader, { batchSize: effectiveBatchSize });
84
84
  pipeline.onProgress((info) => progress.update(info));
@@ -1 +1 @@
1
- {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/cli/commands/convert.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/cli/commands/convert.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export interface CountCommandOptions {
2
+ by?: string | string[];
3
+ distinct?: string;
4
+ approx?: boolean;
5
+ from?: string;
6
+ sheet?: string;
7
+ delimiter?: string;
8
+ json?: boolean;
9
+ quiet?: boolean;
10
+ }
11
+ export declare function countCommand(inputPath?: string, options?: CountCommandOptions): Promise<void>;
12
+ //# sourceMappingURL=count.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"count.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/count.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,mBAAmB;IAClC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,YAAY,CAChC,SAAS,SAAM,EACf,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,IAAI,CAAC,CAmDf"}