rowpipe 2.2.1 → 2.10.1
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.
- package/README.md +35 -4
- package/dist/analytics/abtest.d.ts +39 -0
- package/dist/analytics/abtest.d.ts.map +1 -0
- package/dist/analytics/abtest.js +266 -0
- package/dist/analytics/abtest.js.map +1 -0
- package/dist/analytics/cluster.d.ts +25 -0
- package/dist/analytics/cluster.d.ts.map +1 -0
- package/dist/analytics/cluster.js +212 -0
- package/dist/analytics/cluster.js.map +1 -0
- package/dist/analytics/cohort.d.ts +22 -0
- package/dist/analytics/cohort.d.ts.map +1 -0
- package/dist/analytics/cohort.js +170 -0
- package/dist/analytics/cohort.js.map +1 -0
- package/dist/analytics/correlation.d.ts +15 -0
- package/dist/analytics/correlation.d.ts.map +1 -0
- package/dist/analytics/correlation.js +116 -0
- package/dist/analytics/correlation.js.map +1 -0
- package/dist/analytics/crosstab.d.ts +27 -0
- package/dist/analytics/crosstab.d.ts.map +1 -0
- package/dist/analytics/crosstab.js +90 -0
- package/dist/analytics/crosstab.js.map +1 -0
- package/dist/analytics/entropy.d.ts +23 -0
- package/dist/analytics/entropy.d.ts.map +1 -0
- package/dist/analytics/entropy.js +180 -0
- package/dist/analytics/entropy.js.map +1 -0
- package/dist/analytics/funnel.d.ts +29 -0
- package/dist/analytics/funnel.d.ts.map +1 -0
- package/dist/analytics/funnel.js +170 -0
- package/dist/analytics/funnel.js.map +1 -0
- package/dist/analytics/ngrams.d.ts +25 -0
- package/dist/analytics/ngrams.d.ts.map +1 -0
- package/dist/analytics/ngrams.js +110 -0
- package/dist/analytics/ngrams.js.map +1 -0
- package/dist/analytics/outliers.d.ts +25 -0
- package/dist/analytics/outliers.d.ts.map +1 -0
- package/dist/analytics/outliers.js +114 -0
- package/dist/analytics/outliers.js.map +1 -0
- package/dist/analytics/pareto.d.ts +36 -0
- package/dist/analytics/pareto.d.ts.map +1 -0
- package/dist/analytics/pareto.js +140 -0
- package/dist/analytics/pareto.js.map +1 -0
- package/dist/analytics/quantiles.d.ts +18 -0
- package/dist/analytics/quantiles.d.ts.map +1 -0
- package/dist/analytics/quantiles.js +62 -0
- package/dist/analytics/quantiles.js.map +1 -0
- package/dist/analytics/regression.d.ts +18 -0
- package/dist/analytics/regression.d.ts.map +1 -0
- package/dist/analytics/regression.js +79 -0
- package/dist/analytics/regression.js.map +1 -0
- package/dist/analytics/rfm.d.ts +41 -0
- package/dist/analytics/rfm.d.ts.map +1 -0
- package/dist/analytics/rfm.js +221 -0
- package/dist/analytics/rfm.js.map +1 -0
- package/dist/analytics/stats.d.ts.map +1 -1
- package/dist/analytics/stats.js +65 -15
- package/dist/analytics/stats.js.map +1 -1
- package/dist/analytics/technical.d.ts +19 -0
- package/dist/analytics/technical.d.ts.map +1 -0
- package/dist/analytics/technical.js +365 -0
- package/dist/analytics/technical.js.map +1 -0
- package/dist/cli/commands/abtest.d.ts +10 -0
- package/dist/cli/commands/abtest.d.ts.map +1 -0
- package/dist/cli/commands/abtest.js +68 -0
- package/dist/cli/commands/abtest.js.map +1 -0
- package/dist/cli/commands/cluster.d.ts +9 -0
- package/dist/cli/commands/cluster.d.ts.map +1 -0
- package/dist/cli/commands/cluster.js +77 -0
- package/dist/cli/commands/cluster.js.map +1 -0
- package/dist/cli/commands/cohort.d.ts +10 -0
- package/dist/cli/commands/cohort.d.ts.map +1 -0
- package/dist/cli/commands/cohort.js +66 -0
- package/dist/cli/commands/cohort.js.map +1 -0
- package/dist/cli/commands/completion.d.ts +5 -0
- package/dist/cli/commands/completion.d.ts.map +1 -0
- package/dist/cli/commands/completion.js +7 -0
- package/dist/cli/commands/completion.js.map +1 -0
- package/dist/cli/commands/concat.d.ts +9 -0
- package/dist/cli/commands/concat.d.ts.map +1 -0
- package/dist/cli/commands/concat.js +62 -0
- package/dist/cli/commands/concat.js.map +1 -0
- package/dist/cli/commands/convert.d.ts +2 -0
- package/dist/cli/commands/convert.d.ts.map +1 -1
- package/dist/cli/commands/convert.js.map +1 -1
- package/dist/cli/commands/corr.d.ts +7 -0
- package/dist/cli/commands/corr.d.ts.map +1 -0
- package/dist/cli/commands/corr.js +70 -0
- package/dist/cli/commands/corr.js.map +1 -0
- package/dist/cli/commands/crosstab.d.ts +11 -0
- package/dist/cli/commands/crosstab.d.ts.map +1 -0
- package/dist/cli/commands/crosstab.js +71 -0
- package/dist/cli/commands/crosstab.js.map +1 -0
- package/dist/cli/commands/entropy.d.ts +9 -0
- package/dist/cli/commands/entropy.d.ts.map +1 -0
- package/dist/cli/commands/entropy.js +71 -0
- package/dist/cli/commands/entropy.js.map +1 -0
- package/dist/cli/commands/explode.d.ts +8 -0
- package/dist/cli/commands/explode.d.ts.map +1 -0
- package/dist/cli/commands/explode.js +61 -0
- package/dist/cli/commands/explode.js.map +1 -0
- package/dist/cli/commands/fetch.d.ts +8 -0
- package/dist/cli/commands/fetch.d.ts.map +1 -0
- package/dist/cli/commands/fetch.js +41 -0
- package/dist/cli/commands/fetch.js.map +1 -0
- package/dist/cli/commands/files.d.ts +1 -1
- package/dist/cli/commands/files.d.ts.map +1 -1
- package/dist/cli/commands/flatten.d.ts +8 -0
- package/dist/cli/commands/flatten.d.ts.map +1 -0
- package/dist/cli/commands/flatten.js +57 -0
- package/dist/cli/commands/flatten.js.map +1 -0
- package/dist/cli/commands/freq.d.ts +10 -0
- package/dist/cli/commands/freq.d.ts.map +1 -0
- package/dist/cli/commands/freq.js +122 -0
- package/dist/cli/commands/freq.js.map +1 -0
- package/dist/cli/commands/funnel.d.ts +11 -0
- package/dist/cli/commands/funnel.d.ts.map +1 -0
- package/dist/cli/commands/funnel.js +69 -0
- package/dist/cli/commands/funnel.js.map +1 -0
- package/dist/cli/commands/fuzzy-join.d.ts +25 -0
- package/dist/cli/commands/fuzzy-join.d.ts.map +1 -0
- package/dist/cli/commands/fuzzy-join.js +85 -0
- package/dist/cli/commands/fuzzy-join.js.map +1 -0
- package/dist/cli/commands/generate.d.ts +8 -0
- package/dist/cli/commands/generate.d.ts.map +1 -0
- package/dist/cli/commands/generate.js +34 -0
- package/dist/cli/commands/generate.js.map +1 -0
- package/dist/cli/commands/mask.d.ts +6 -0
- package/dist/cli/commands/mask.d.ts.map +1 -0
- package/dist/cli/commands/mask.js +58 -0
- package/dist/cli/commands/mask.js.map +1 -0
- package/dist/cli/commands/ngrams.d.ts +11 -0
- package/dist/cli/commands/ngrams.d.ts.map +1 -0
- package/dist/cli/commands/ngrams.js +70 -0
- package/dist/cli/commands/ngrams.js.map +1 -0
- package/dist/cli/commands/outliers.d.ts +13 -0
- package/dist/cli/commands/outliers.d.ts.map +1 -0
- package/dist/cli/commands/outliers.js +58 -0
- package/dist/cli/commands/outliers.js.map +1 -0
- package/dist/cli/commands/pareto.d.ts +8 -0
- package/dist/cli/commands/pareto.d.ts.map +1 -0
- package/dist/cli/commands/pareto.js +80 -0
- package/dist/cli/commands/pareto.js.map +1 -0
- package/dist/cli/commands/partition.d.ts +8 -0
- package/dist/cli/commands/partition.d.ts.map +1 -0
- package/dist/cli/commands/partition.js +44 -0
- package/dist/cli/commands/partition.js.map +1 -0
- package/dist/cli/commands/pipeline.d.ts +6 -0
- package/dist/cli/commands/pipeline.d.ts.map +1 -1
- package/dist/cli/commands/pipeline.js +22 -0
- package/dist/cli/commands/pipeline.js.map +1 -1
- package/dist/cli/commands/pivot.d.ts +11 -0
- package/dist/cli/commands/pivot.d.ts.map +1 -0
- package/dist/cli/commands/pivot.js +58 -0
- package/dist/cli/commands/pivot.js.map +1 -0
- package/dist/cli/commands/plot.d.ts +12 -0
- package/dist/cli/commands/plot.d.ts.map +1 -0
- package/dist/cli/commands/plot.js +123 -0
- package/dist/cli/commands/plot.js.map +1 -0
- package/dist/cli/commands/quantiles.d.ts +7 -0
- package/dist/cli/commands/quantiles.d.ts.map +1 -0
- package/dist/cli/commands/quantiles.js +94 -0
- package/dist/cli/commands/quantiles.js.map +1 -0
- package/dist/cli/commands/regression.d.ts +7 -0
- package/dist/cli/commands/regression.d.ts.map +1 -0
- package/dist/cli/commands/regression.js +86 -0
- package/dist/cli/commands/regression.js.map +1 -0
- package/dist/cli/commands/report.d.ts +8 -0
- package/dist/cli/commands/report.d.ts.map +1 -0
- package/dist/cli/commands/report.js +36 -0
- package/dist/cli/commands/report.js.map +1 -0
- package/dist/cli/commands/rfm.d.ts +11 -0
- package/dist/cli/commands/rfm.d.ts.map +1 -0
- package/dist/cli/commands/rfm.js +78 -0
- package/dist/cli/commands/rfm.js.map +1 -0
- package/dist/cli/commands/serve.d.ts +7 -0
- package/dist/cli/commands/serve.d.ts.map +1 -0
- package/dist/cli/commands/serve.js +43 -0
- package/dist/cli/commands/serve.js.map +1 -0
- package/dist/cli/commands/split.d.ts +8 -0
- package/dist/cli/commands/split.d.ts.map +1 -0
- package/dist/cli/commands/split.js +43 -0
- package/dist/cli/commands/split.js.map +1 -0
- package/dist/cli/commands/table.d.ts +9 -0
- package/dist/cli/commands/table.d.ts.map +1 -0
- package/dist/cli/commands/table.js +9 -0
- package/dist/cli/commands/table.js.map +1 -0
- package/dist/cli/commands/technical.d.ts +8 -0
- package/dist/cli/commands/technical.d.ts.map +1 -0
- package/dist/cli/commands/technical.js +54 -0
- package/dist/cli/commands/technical.js.map +1 -0
- package/dist/cli/commands/test.d.ts +7 -0
- package/dist/cli/commands/test.d.ts.map +1 -0
- package/dist/cli/commands/test.js +53 -0
- package/dist/cli/commands/test.js.map +1 -0
- package/dist/cli/commands/timeseries.d.ts +11 -0
- package/dist/cli/commands/timeseries.d.ts.map +1 -0
- package/dist/cli/commands/timeseries.js +82 -0
- package/dist/cli/commands/timeseries.js.map +1 -0
- package/dist/cli/commands/unpivot.d.ts +12 -0
- package/dist/cli/commands/unpivot.d.ts.map +1 -0
- package/dist/cli/commands/unpivot.js +59 -0
- package/dist/cli/commands/unpivot.js.map +1 -0
- package/dist/cli/completion.d.ts +5 -0
- package/dist/cli/completion.d.ts.map +1 -0
- package/dist/cli/completion.js +194 -0
- package/dist/cli/completion.js.map +1 -0
- package/dist/cli/index.js +816 -15
- package/dist/cli/index.js.map +1 -1
- package/dist/core/error-handler.d.ts +38 -0
- package/dist/core/error-handler.d.ts.map +1 -0
- package/dist/core/error-handler.js +81 -0
- package/dist/core/error-handler.js.map +1 -0
- package/dist/core/pipeline.d.ts +10 -0
- package/dist/core/pipeline.d.ts.map +1 -1
- package/dist/core/pipeline.js +14 -0
- package/dist/core/pipeline.js.map +1 -1
- package/dist/core/types.d.ts +4 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/dataops/fetch.d.ts +27 -0
- package/dist/dataops/fetch.d.ts.map +1 -0
- package/dist/dataops/fetch.js +150 -0
- package/dist/dataops/fetch.js.map +1 -0
- package/dist/dataops/generate.d.ts +16 -0
- package/dist/dataops/generate.d.ts.map +1 -0
- package/dist/dataops/generate.js +201 -0
- package/dist/dataops/generate.js.map +1 -0
- package/dist/dataops/mask.d.ts +25 -0
- package/dist/dataops/mask.d.ts.map +1 -0
- package/dist/dataops/mask.js +133 -0
- package/dist/dataops/mask.js.map +1 -0
- package/dist/dataops/report.d.ts +7 -0
- package/dist/dataops/report.d.ts.map +1 -0
- package/dist/dataops/report.js +139 -0
- package/dist/dataops/report.js.map +1 -0
- package/dist/dataops/server.d.ts +10 -0
- package/dist/dataops/server.d.ts.map +1 -0
- package/dist/dataops/server.js +137 -0
- package/dist/dataops/server.js.map +1 -0
- package/dist/dataops/test-runner.d.ts +34 -0
- package/dist/dataops/test-runner.d.ts.map +1 -0
- package/dist/dataops/test-runner.js +128 -0
- package/dist/dataops/test-runner.js.map +1 -0
- package/dist/db/adapters/sqlite.d.ts.map +1 -1
- package/dist/db/adapters/sqlite.js +4 -1
- package/dist/db/adapters/sqlite.js.map +1 -1
- package/dist/diff/engine.d.ts.map +1 -1
- package/dist/diff/engine.js +73 -16
- package/dist/diff/engine.js.map +1 -1
- package/dist/diff/storage/disk-index.d.ts +10 -1
- package/dist/diff/storage/disk-index.d.ts.map +1 -1
- package/dist/diff/storage/disk-index.js +95 -13
- package/dist/diff/storage/disk-index.js.map +1 -1
- package/dist/files/hash.d.ts +9 -2
- package/dist/files/hash.d.ts.map +1 -1
- package/dist/files/hash.js +9 -10
- package/dist/files/hash.js.map +1 -1
- package/dist/files/reader.d.ts.map +1 -1
- package/dist/files/reader.js +17 -10
- package/dist/files/reader.js.map +1 -1
- package/dist/files/types.d.ts +2 -1
- package/dist/files/types.d.ts.map +1 -1
- package/dist/index.d.ts +65 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +66 -1
- package/dist/index.js.map +1 -1
- package/dist/planner/executor.d.ts.map +1 -1
- package/dist/planner/executor.js +17 -0
- package/dist/planner/executor.js.map +1 -1
- package/dist/planner/types.d.ts +11 -0
- package/dist/planner/types.d.ts.map +1 -1
- package/dist/readers/csv.d.ts.map +1 -1
- package/dist/readers/csv.js +206 -164
- package/dist/readers/csv.js.map +1 -1
- package/dist/readers/json.d.ts.map +1 -1
- package/dist/readers/json.js +145 -121
- package/dist/readers/json.js.map +1 -1
- package/dist/readers/jsonl.d.ts.map +1 -1
- package/dist/readers/jsonl.js +51 -31
- package/dist/readers/jsonl.js.map +1 -1
- package/dist/rowpipe +4 -0
- package/dist/transforms/concat.d.ts +26 -0
- package/dist/transforms/concat.d.ts.map +1 -0
- package/dist/transforms/concat.js +57 -0
- package/dist/transforms/concat.js.map +1 -0
- package/dist/transforms/explode.d.ts +14 -0
- package/dist/transforms/explode.d.ts.map +1 -0
- package/dist/transforms/explode.js +81 -0
- package/dist/transforms/explode.js.map +1 -0
- package/dist/transforms/flatten.d.ts +12 -0
- package/dist/transforms/flatten.d.ts.map +1 -0
- package/dist/transforms/flatten.js +65 -0
- package/dist/transforms/flatten.js.map +1 -0
- package/dist/transforms/fuzzy-join.d.ts +53 -0
- package/dist/transforms/fuzzy-join.d.ts.map +1 -0
- package/dist/transforms/fuzzy-join.js +347 -0
- package/dist/transforms/fuzzy-join.js.map +1 -0
- package/dist/transforms/jit-compiler.d.ts.map +1 -1
- package/dist/transforms/jit-compiler.js +103 -14
- package/dist/transforms/jit-compiler.js.map +1 -1
- package/dist/transforms/map.d.ts +6 -2
- package/dist/transforms/map.d.ts.map +1 -1
- package/dist/transforms/map.js +64 -26
- package/dist/transforms/map.js.map +1 -1
- package/dist/transforms/partition.d.ts +35 -0
- package/dist/transforms/partition.d.ts.map +1 -0
- package/dist/transforms/partition.js +150 -0
- package/dist/transforms/partition.js.map +1 -0
- package/dist/transforms/pivot.d.ts +16 -0
- package/dist/transforms/pivot.d.ts.map +1 -0
- package/dist/transforms/pivot.js +194 -0
- package/dist/transforms/pivot.js.map +1 -0
- package/dist/transforms/sort/comparator.d.ts.map +1 -1
- package/dist/transforms/sort/comparator.js +153 -24
- package/dist/transforms/sort/comparator.js.map +1 -1
- package/dist/transforms/sort/external-sort.js +1 -1
- package/dist/transforms/sort/external-sort.js.map +1 -1
- package/dist/transforms/split.d.ts +17 -0
- package/dist/transforms/split.d.ts.map +1 -0
- package/dist/transforms/split.js +88 -0
- package/dist/transforms/split.js.map +1 -0
- package/dist/transforms/timeseries.d.ts +42 -0
- package/dist/transforms/timeseries.d.ts.map +1 -0
- package/dist/transforms/timeseries.js +276 -0
- package/dist/transforms/timeseries.js.map +1 -0
- package/dist/transforms/unpivot.d.ts +14 -0
- package/dist/transforms/unpivot.d.ts.map +1 -0
- package/dist/transforms/unpivot.js +56 -0
- package/dist/transforms/unpivot.js.map +1 -0
- package/dist/ui/chart.d.ts +30 -0
- package/dist/ui/chart.d.ts.map +1 -0
- package/dist/ui/chart.js +91 -0
- package/dist/ui/chart.js.map +1 -0
- package/dist/writers/index.d.ts +1 -0
- package/dist/writers/index.d.ts.map +1 -1
- package/dist/writers/index.js +10 -0
- package/dist/writers/index.js.map +1 -1
- package/dist/writers/table.d.ts +23 -0
- package/dist/writers/table.d.ts.map +1 -0
- package/dist/writers/table.js +156 -0
- package/dist/writers/table.js.map +1 -0
- package/package.json +6 -3
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* High-performance streaming Explode transform.
|
|
3
|
+
* Expands arrays or delimited string values into multiple rows (1 -> N).
|
|
4
|
+
*/
|
|
5
|
+
export function explodeRows(columnOrOptions, options) {
|
|
6
|
+
const opts = typeof columnOrOptions === "string"
|
|
7
|
+
? { column: columnOrOptions, ...options }
|
|
8
|
+
: columnOrOptions;
|
|
9
|
+
const column = opts.column;
|
|
10
|
+
const delimiter = opts.delimiter ?? ",";
|
|
11
|
+
const trim = opts.trim !== false;
|
|
12
|
+
const dropEmpty = opts.dropEmpty !== false;
|
|
13
|
+
const preserveNull = opts.preserveNullAndEmpty === true;
|
|
14
|
+
return (input) => {
|
|
15
|
+
return (async function* () {
|
|
16
|
+
let offset = 0;
|
|
17
|
+
for await (const batch of input) {
|
|
18
|
+
const explodedRows = [];
|
|
19
|
+
for (const row of batch.rows) {
|
|
20
|
+
const val = row[column];
|
|
21
|
+
if (val === null || val === undefined) {
|
|
22
|
+
if (preserveNull) {
|
|
23
|
+
explodedRows.push(row);
|
|
24
|
+
}
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
let items = [];
|
|
28
|
+
if (Array.isArray(val)) {
|
|
29
|
+
items = val;
|
|
30
|
+
}
|
|
31
|
+
else if (typeof val === "string") {
|
|
32
|
+
const trimmed = val.trim();
|
|
33
|
+
if (trimmed.startsWith("[") && trimmed.endsWith("]")) {
|
|
34
|
+
try {
|
|
35
|
+
const parsed = JSON.parse(trimmed);
|
|
36
|
+
if (Array.isArray(parsed)) {
|
|
37
|
+
items = parsed;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
// Not valid JSON array, proceed to delimiter split
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (items.length === 0) {
|
|
45
|
+
items = val.split(delimiter);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
items = [val];
|
|
50
|
+
}
|
|
51
|
+
let produced = 0;
|
|
52
|
+
for (let item of items) {
|
|
53
|
+
if (typeof item === "string") {
|
|
54
|
+
if (trim)
|
|
55
|
+
item = item.trim();
|
|
56
|
+
if (dropEmpty && item === "")
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
else if (item === null || item === undefined) {
|
|
60
|
+
if (dropEmpty)
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
explodedRows.push({ ...row, [column]: item });
|
|
64
|
+
produced++;
|
|
65
|
+
}
|
|
66
|
+
if (produced === 0 && preserveNull) {
|
|
67
|
+
explodedRows.push({ ...row, [column]: null });
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
if (explodedRows.length > 0) {
|
|
71
|
+
yield {
|
|
72
|
+
rows: explodedRows,
|
|
73
|
+
offset,
|
|
74
|
+
};
|
|
75
|
+
offset += explodedRows.length;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
})();
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=explode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"explode.js","sourceRoot":"","sources":["../../src/transforms/explode.ts"],"names":[],"mappings":"AAUA;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,eAAwC,EACxC,OAAiC;IAEjC,MAAM,IAAI,GACR,OAAO,eAAe,KAAK,QAAQ;QACjC,CAAC,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,EAAE;QACzC,CAAC,CAAC,eAAe,CAAC;IAEtB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC;IACjC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC;IAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,KAAK,IAAI,CAAC;IAExD,OAAO,CAAC,KAAiB,EAAc,EAAE;QACvC,OAAO,CAAC,KAAK,SAAS,CAAC;YACrB,IAAI,MAAM,GAAG,CAAC,CAAC;YAEf,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;gBAChC,MAAM,YAAY,GAAU,EAAE,CAAC;gBAE/B,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBAC7B,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;oBAExB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;wBACtC,IAAI,YAAY,EAAE,CAAC;4BACjB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACzB,CAAC;wBACD,SAAS;oBACX,CAAC;oBAED,IAAI,KAAK,GAAc,EAAE,CAAC;oBAE1B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;wBACvB,KAAK,GAAG,GAAG,CAAC;oBACd,CAAC;yBAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;wBACnC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;wBAC3B,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;4BACrD,IAAI,CAAC;gCACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gCACnC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;oCAC1B,KAAK,GAAG,MAAM,CAAC;gCACjB,CAAC;4BACH,CAAC;4BAAC,MAAM,CAAC;gCACP,mDAAmD;4BACrD,CAAC;wBACH,CAAC;wBAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;4BACvB,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;wBAC/B,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;oBAChB,CAAC;oBAED,IAAI,QAAQ,GAAG,CAAC,CAAC;oBACjB,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;wBACvB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;4BAC7B,IAAI,IAAI;gCAAE,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;4BAC7B,IAAI,SAAS,IAAI,IAAI,KAAK,EAAE;gCAAE,SAAS;wBACzC,CAAC;6BAAM,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;4BAC/C,IAAI,SAAS;gCAAE,SAAS;wBAC1B,CAAC;wBAED,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;wBAC9C,QAAQ,EAAE,CAAC;oBACb,CAAC;oBAED,IAAI,QAAQ,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC;wBACnC,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;oBAChD,CAAC;gBACH,CAAC;gBAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5B,MAAM;wBACJ,IAAI,EAAE,YAAY;wBAClB,MAAM;qBACP,CAAC;oBACF,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC;gBAChC,CAAC;YACH,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { TransformFunction } from "../core/types.js";
|
|
2
|
+
export interface FlattenOptions {
|
|
3
|
+
separator?: string;
|
|
4
|
+
maxDepth?: number;
|
|
5
|
+
arrays?: boolean;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* High-performance streaming Flatten transform.
|
|
9
|
+
* Flattens nested JSON objects into flat dot-notated columns.
|
|
10
|
+
*/
|
|
11
|
+
export declare function flattenRows(options?: FlattenOptions): TransformFunction;
|
|
12
|
+
//# sourceMappingURL=flatten.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flatten.d.ts","sourceRoot":"","sources":["../../src/transforms/flatten.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA8B,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEtF,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAmDD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,iBAAiB,CAwBvE"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
function isPlainObject(val) {
|
|
2
|
+
return (val !== null &&
|
|
3
|
+
typeof val === "object" &&
|
|
4
|
+
!Array.isArray(val) &&
|
|
5
|
+
!(val instanceof Date) &&
|
|
6
|
+
!Buffer.isBuffer(val) &&
|
|
7
|
+
!(val instanceof Uint8Array));
|
|
8
|
+
}
|
|
9
|
+
function flattenObject(obj, separator, maxDepth, flattenArrays, currentDepth = 1, prefix = "") {
|
|
10
|
+
const result = {};
|
|
11
|
+
for (const [key, val] of Object.entries(obj)) {
|
|
12
|
+
const fullKey = prefix ? `${prefix}${separator}${key}` : key;
|
|
13
|
+
if (currentDepth < maxDepth && isPlainObject(val)) {
|
|
14
|
+
const nested = flattenObject(val, separator, maxDepth, flattenArrays, currentDepth + 1, fullKey);
|
|
15
|
+
Object.assign(result, nested);
|
|
16
|
+
}
|
|
17
|
+
else if (currentDepth < maxDepth && flattenArrays && Array.isArray(val)) {
|
|
18
|
+
if (val.length === 0) {
|
|
19
|
+
result[fullKey] = val;
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
val.forEach((item, index) => {
|
|
23
|
+
const arrayKey = `${fullKey}${separator}${index}`;
|
|
24
|
+
if (isPlainObject(item)) {
|
|
25
|
+
const nested = flattenObject(item, separator, maxDepth, flattenArrays, currentDepth + 1, arrayKey);
|
|
26
|
+
Object.assign(result, nested);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
result[arrayKey] = item;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
result[fullKey] = val;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return result;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* High-performance streaming Flatten transform.
|
|
42
|
+
* Flattens nested JSON objects into flat dot-notated columns.
|
|
43
|
+
*/
|
|
44
|
+
export function flattenRows(options) {
|
|
45
|
+
const separator = options?.separator ?? ".";
|
|
46
|
+
const maxDepth = options?.maxDepth ?? 10;
|
|
47
|
+
const flattenArrays = options?.arrays === true;
|
|
48
|
+
return (input) => {
|
|
49
|
+
return (async function* () {
|
|
50
|
+
let offset = 0;
|
|
51
|
+
for await (const batch of input) {
|
|
52
|
+
const flattenedRows = new Array(batch.rows.length);
|
|
53
|
+
for (let i = 0; i < batch.rows.length; i++) {
|
|
54
|
+
flattenedRows[i] = flattenObject(batch.rows[i], separator, maxDepth, flattenArrays);
|
|
55
|
+
}
|
|
56
|
+
yield {
|
|
57
|
+
rows: flattenedRows,
|
|
58
|
+
offset,
|
|
59
|
+
};
|
|
60
|
+
offset += flattenedRows.length;
|
|
61
|
+
}
|
|
62
|
+
})();
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=flatten.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flatten.js","sourceRoot":"","sources":["../../src/transforms/flatten.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { TabularReader, TransformFunction } from "../core/types.js";
|
|
2
|
+
export type FuzzyMethod = "levenshtein" | "jaro-winkler" | "jaccard" | "soundex";
|
|
3
|
+
export type FuzzyJoinType = "inner" | "left" | "right" | "full";
|
|
4
|
+
export interface FuzzyJoinOptions {
|
|
5
|
+
rightReader: TabularReader;
|
|
6
|
+
leftKey: string;
|
|
7
|
+
rightKey?: string;
|
|
8
|
+
type?: FuzzyJoinType;
|
|
9
|
+
method?: FuzzyMethod;
|
|
10
|
+
threshold?: number;
|
|
11
|
+
bestMatch?: boolean;
|
|
12
|
+
scoreCol?: string;
|
|
13
|
+
prefixRight?: string;
|
|
14
|
+
suffixRight?: string;
|
|
15
|
+
prefixLeft?: string;
|
|
16
|
+
suffixLeft?: string;
|
|
17
|
+
caseInsensitive?: boolean;
|
|
18
|
+
trim?: boolean;
|
|
19
|
+
batchSize?: number;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Levenshtein distance between two strings using single-row dynamic programming buffer.
|
|
23
|
+
*/
|
|
24
|
+
export declare function levenshteinDistance(a: string, b: string): number;
|
|
25
|
+
/**
|
|
26
|
+
* Normalized Levenshtein similarity score in [0.0, 1.0].
|
|
27
|
+
*/
|
|
28
|
+
export declare function levenshteinSimilarity(a: string, b: string): number;
|
|
29
|
+
/**
|
|
30
|
+
* Jaro similarity score between two strings.
|
|
31
|
+
*/
|
|
32
|
+
export declare function jaroSimilarity(s1: string, s2: string): number;
|
|
33
|
+
/**
|
|
34
|
+
* Jaro-Winkler similarity score with standard scaling factor (p = 0.1).
|
|
35
|
+
*/
|
|
36
|
+
export declare function jaroWinklerSimilarity(s1: string, s2: string, p?: number): number;
|
|
37
|
+
/**
|
|
38
|
+
* Character N-gram Jaccard similarity score in [0.0, 1.0].
|
|
39
|
+
*/
|
|
40
|
+
export declare function jaccardSimilarity(s1: string, s2: string, n?: number): number;
|
|
41
|
+
/**
|
|
42
|
+
* Soundex phonetic representation (Letter + 3 digits).
|
|
43
|
+
*/
|
|
44
|
+
export declare function soundex(s: string): string;
|
|
45
|
+
/**
|
|
46
|
+
* Computes similarity between two string values based on chosen fuzzy method.
|
|
47
|
+
*/
|
|
48
|
+
export declare function computeSimilarity(a: string, b: string, method: FuzzyMethod): number;
|
|
49
|
+
/**
|
|
50
|
+
* Creates a stream transform that performs streaming fuzzy approximate string joins.
|
|
51
|
+
*/
|
|
52
|
+
export declare function fuzzyJoinTransform(options: FuzzyJoinOptions): TransformFunction;
|
|
53
|
+
//# sourceMappingURL=fuzzy-join.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fuzzy-join.d.ts","sourceRoot":"","sources":["../../src/transforms/fuzzy-join.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA8B,aAAa,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrG,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,cAAc,GAAG,SAAS,GAAG,SAAS,CAAC;AACjF,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAEhE,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,aAAa,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAiChE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAMlE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAsC7D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,GAAE,MAAY,GAAG,MAAM,CAYrF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,GAAE,MAAU,GAAG,MAAM,CAuB/E;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CA2BzC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM,CAanF;AAkFD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,GAAG,iBAAiB,CAiH/E"}
|
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Levenshtein distance between two strings using single-row dynamic programming buffer.
|
|
3
|
+
*/
|
|
4
|
+
export function levenshteinDistance(a, b) {
|
|
5
|
+
if (a === b)
|
|
6
|
+
return 0;
|
|
7
|
+
if (a.length === 0)
|
|
8
|
+
return b.length;
|
|
9
|
+
if (b.length === 0)
|
|
10
|
+
return a.length;
|
|
11
|
+
const lenA = a.length;
|
|
12
|
+
const lenB = b.length;
|
|
13
|
+
let prevRow = new Int32Array(lenB + 1);
|
|
14
|
+
let currRow = new Int32Array(lenB + 1);
|
|
15
|
+
for (let j = 0; j <= lenB; j++) {
|
|
16
|
+
prevRow[j] = j;
|
|
17
|
+
}
|
|
18
|
+
for (let i = 1; i <= lenA; i++) {
|
|
19
|
+
currRow[0] = i;
|
|
20
|
+
const charA = a.charCodeAt(i - 1);
|
|
21
|
+
for (let j = 1; j <= lenB; j++) {
|
|
22
|
+
const cost = charA === b.charCodeAt(j - 1) ? 0 : 1;
|
|
23
|
+
currRow[j] = Math.min(prevRow[j] + 1, // deletion
|
|
24
|
+
currRow[j - 1] + 1, // insertion
|
|
25
|
+
prevRow[j - 1] + cost // substitution
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
const tmp = prevRow;
|
|
29
|
+
prevRow = currRow;
|
|
30
|
+
currRow = tmp;
|
|
31
|
+
}
|
|
32
|
+
return prevRow[lenB];
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Normalized Levenshtein similarity score in [0.0, 1.0].
|
|
36
|
+
*/
|
|
37
|
+
export function levenshteinSimilarity(a, b) {
|
|
38
|
+
if (a === b)
|
|
39
|
+
return 1.0;
|
|
40
|
+
const maxLen = Math.max(a.length, b.length);
|
|
41
|
+
if (maxLen === 0)
|
|
42
|
+
return 1.0;
|
|
43
|
+
const dist = levenshteinDistance(a, b);
|
|
44
|
+
return Math.max(0, 1 - dist / maxLen);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Jaro similarity score between two strings.
|
|
48
|
+
*/
|
|
49
|
+
export function jaroSimilarity(s1, s2) {
|
|
50
|
+
if (s1 === s2)
|
|
51
|
+
return 1.0;
|
|
52
|
+
const len1 = s1.length;
|
|
53
|
+
const len2 = s2.length;
|
|
54
|
+
if (len1 === 0 || len2 === 0)
|
|
55
|
+
return 0.0;
|
|
56
|
+
const matchWindow = Math.floor(Math.max(len1, len2) / 2) - 1;
|
|
57
|
+
const s1Matches = new Uint8Array(len1);
|
|
58
|
+
const s2Matches = new Uint8Array(len2);
|
|
59
|
+
let matches = 0;
|
|
60
|
+
for (let i = 0; i < len1; i++) {
|
|
61
|
+
const start = Math.max(0, i - matchWindow);
|
|
62
|
+
const end = Math.min(i + matchWindow + 1, len2);
|
|
63
|
+
for (let j = start; j < end; j++) {
|
|
64
|
+
if (s2Matches[j])
|
|
65
|
+
continue;
|
|
66
|
+
if (s1[i] !== s2[j])
|
|
67
|
+
continue;
|
|
68
|
+
s1Matches[i] = 1;
|
|
69
|
+
s2Matches[j] = 1;
|
|
70
|
+
matches++;
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
if (matches === 0)
|
|
75
|
+
return 0.0;
|
|
76
|
+
let transpositions = 0;
|
|
77
|
+
let k = 0;
|
|
78
|
+
for (let i = 0; i < len1; i++) {
|
|
79
|
+
if (!s1Matches[i])
|
|
80
|
+
continue;
|
|
81
|
+
while (!s2Matches[k])
|
|
82
|
+
k++;
|
|
83
|
+
if (s1[i] !== s2[k])
|
|
84
|
+
transpositions++;
|
|
85
|
+
k++;
|
|
86
|
+
}
|
|
87
|
+
const m = matches;
|
|
88
|
+
const t = transpositions / 2;
|
|
89
|
+
return (m / len1 + m / len2 + (m - t) / m) / 3;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Jaro-Winkler similarity score with standard scaling factor (p = 0.1).
|
|
93
|
+
*/
|
|
94
|
+
export function jaroWinklerSimilarity(s1, s2, p = 0.1) {
|
|
95
|
+
const jaro = jaroSimilarity(s1, s2);
|
|
96
|
+
if (jaro < 0.7)
|
|
97
|
+
return jaro;
|
|
98
|
+
let prefix = 0;
|
|
99
|
+
const maxPrefix = Math.min(4, Math.min(s1.length, s2.length));
|
|
100
|
+
for (let i = 0; i < maxPrefix; i++) {
|
|
101
|
+
if (s1[i] === s2[i])
|
|
102
|
+
prefix++;
|
|
103
|
+
else
|
|
104
|
+
break;
|
|
105
|
+
}
|
|
106
|
+
return jaro + prefix * p * (1 - jaro);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Character N-gram Jaccard similarity score in [0.0, 1.0].
|
|
110
|
+
*/
|
|
111
|
+
export function jaccardSimilarity(s1, s2, n = 2) {
|
|
112
|
+
if (s1 === s2)
|
|
113
|
+
return 1.0;
|
|
114
|
+
if (s1.length < n || s2.length < n) {
|
|
115
|
+
return s1 === s2 ? 1.0 : 0.0;
|
|
116
|
+
}
|
|
117
|
+
const ngrams1 = new Set();
|
|
118
|
+
for (let i = 0; i <= s1.length - n; i++) {
|
|
119
|
+
ngrams1.add(s1.slice(i, i + n));
|
|
120
|
+
}
|
|
121
|
+
const ngrams2 = new Set();
|
|
122
|
+
for (let i = 0; i <= s2.length - n; i++) {
|
|
123
|
+
ngrams2.add(s2.slice(i, i + n));
|
|
124
|
+
}
|
|
125
|
+
let intersection = 0;
|
|
126
|
+
for (const gram of ngrams1) {
|
|
127
|
+
if (ngrams2.has(gram))
|
|
128
|
+
intersection++;
|
|
129
|
+
}
|
|
130
|
+
const union = ngrams1.size + ngrams2.size - intersection;
|
|
131
|
+
return union === 0 ? 1.0 : intersection / union;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Soundex phonetic representation (Letter + 3 digits).
|
|
135
|
+
*/
|
|
136
|
+
export function soundex(s) {
|
|
137
|
+
const clean = s.toUpperCase().replace(/[^A-Z]/g, "");
|
|
138
|
+
if (!clean)
|
|
139
|
+
return "0000";
|
|
140
|
+
const map = {
|
|
141
|
+
B: "1", F: "1", P: "1", V: "1",
|
|
142
|
+
C: "2", G: "2", J: "2", K: "2", Q: "2", S: "2", X: "2", Z: "2",
|
|
143
|
+
D: "3", T: "3",
|
|
144
|
+
L: "4",
|
|
145
|
+
M: "5", N: "5",
|
|
146
|
+
R: "6",
|
|
147
|
+
};
|
|
148
|
+
const firstChar = clean[0];
|
|
149
|
+
let result = firstChar;
|
|
150
|
+
let lastCode = map[firstChar] || "0";
|
|
151
|
+
for (let i = 1; i < clean.length && result.length < 4; i++) {
|
|
152
|
+
const char = clean[i];
|
|
153
|
+
const code = map[char] || "0";
|
|
154
|
+
if (code !== "0" && code !== lastCode) {
|
|
155
|
+
result += code;
|
|
156
|
+
}
|
|
157
|
+
lastCode = code;
|
|
158
|
+
}
|
|
159
|
+
return (result + "0000").slice(0, 4);
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Computes similarity between two string values based on chosen fuzzy method.
|
|
163
|
+
*/
|
|
164
|
+
export function computeSimilarity(a, b, method) {
|
|
165
|
+
switch (method) {
|
|
166
|
+
case "levenshtein":
|
|
167
|
+
return levenshteinSimilarity(a, b);
|
|
168
|
+
case "jaro-winkler":
|
|
169
|
+
return jaroWinklerSimilarity(a, b);
|
|
170
|
+
case "jaccard":
|
|
171
|
+
return jaccardSimilarity(a, b, 2);
|
|
172
|
+
case "soundex":
|
|
173
|
+
return soundex(a) === soundex(b) ? 1.0 : 0.0;
|
|
174
|
+
default:
|
|
175
|
+
return levenshteinSimilarity(a, b);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Helper to normalize string for comparison.
|
|
180
|
+
*/
|
|
181
|
+
function normalizeKey(val, caseInsensitive, trim) {
|
|
182
|
+
if (val === null || val === undefined)
|
|
183
|
+
return "";
|
|
184
|
+
let str = String(val);
|
|
185
|
+
if (trim)
|
|
186
|
+
str = str.trim();
|
|
187
|
+
if (caseInsensitive)
|
|
188
|
+
str = str.toLowerCase();
|
|
189
|
+
return str;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Merges a left row and right row, handling key/value formatting and score column.
|
|
193
|
+
*/
|
|
194
|
+
function mergeFuzzyRows(leftRow, rightRow, leftKey, rightKey, score, options, sampleLeftCols, sampleRightCols) {
|
|
195
|
+
const result = {};
|
|
196
|
+
const prefixRight = options.prefixRight || "";
|
|
197
|
+
const suffixRight = options.suffixRight !== undefined ? options.suffixRight : (prefixRight ? "" : "_right");
|
|
198
|
+
const prefixLeft = options.prefixLeft || "";
|
|
199
|
+
const suffixLeft = options.suffixLeft || "";
|
|
200
|
+
if (leftRow) {
|
|
201
|
+
for (const [k, v] of Object.entries(leftRow)) {
|
|
202
|
+
const isKey = k === leftKey;
|
|
203
|
+
const outKey = isKey ? k : `${prefixLeft}${k}${suffixLeft}`;
|
|
204
|
+
result[outKey] = v;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
else if (sampleLeftCols) {
|
|
208
|
+
for (const col of sampleLeftCols) {
|
|
209
|
+
const isKey = col === leftKey;
|
|
210
|
+
const outKey = isKey ? col : `${prefixLeft}${col}${suffixLeft}`;
|
|
211
|
+
result[outKey] = null;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
if (rightRow) {
|
|
215
|
+
for (const [k, v] of Object.entries(rightRow)) {
|
|
216
|
+
if (k === rightKey) {
|
|
217
|
+
if (!leftRow) {
|
|
218
|
+
result[leftKey] = v;
|
|
219
|
+
}
|
|
220
|
+
continue;
|
|
221
|
+
}
|
|
222
|
+
let targetKey = k;
|
|
223
|
+
if (leftRow && k in leftRow) {
|
|
224
|
+
targetKey = `${prefixRight}${k}${suffixRight}`;
|
|
225
|
+
}
|
|
226
|
+
else if (prefixRight || (suffixRight && suffixRight !== "_right")) {
|
|
227
|
+
targetKey = `${prefixRight}${k}${suffixRight}`;
|
|
228
|
+
}
|
|
229
|
+
result[targetKey] = v;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
else if (sampleRightCols) {
|
|
233
|
+
for (const col of sampleRightCols) {
|
|
234
|
+
if (col === rightKey)
|
|
235
|
+
continue;
|
|
236
|
+
let targetKey = col;
|
|
237
|
+
if (leftRow && col in leftRow) {
|
|
238
|
+
targetKey = `${prefixRight}${col}${suffixRight}`;
|
|
239
|
+
}
|
|
240
|
+
else if (prefixRight || (suffixRight && suffixRight !== "_right")) {
|
|
241
|
+
targetKey = `${prefixRight}${col}${suffixRight}`;
|
|
242
|
+
}
|
|
243
|
+
result[targetKey] = null;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
if (options.scoreCol) {
|
|
247
|
+
result[options.scoreCol] = score !== null ? Math.round(score * 1e4) / 1e4 : null;
|
|
248
|
+
}
|
|
249
|
+
return result;
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Creates a stream transform that performs streaming fuzzy approximate string joins.
|
|
253
|
+
*/
|
|
254
|
+
export function fuzzyJoinTransform(options) {
|
|
255
|
+
const leftKey = options.leftKey;
|
|
256
|
+
const rightKey = options.rightKey || leftKey;
|
|
257
|
+
const joinType = options.type || "left";
|
|
258
|
+
const method = options.method || "levenshtein";
|
|
259
|
+
const threshold = options.threshold !== undefined ? options.threshold : 0.75;
|
|
260
|
+
const bestMatch = options.bestMatch !== false;
|
|
261
|
+
const caseInsensitive = options.caseInsensitive !== false;
|
|
262
|
+
const trim = options.trim !== false;
|
|
263
|
+
const batchSize = options.batchSize || 1000;
|
|
264
|
+
return async function* (leftStream) {
|
|
265
|
+
const rightEntries = [];
|
|
266
|
+
let sampleRightCols;
|
|
267
|
+
for await (const batch of options.rightReader.read()) {
|
|
268
|
+
for (const row of batch.rows) {
|
|
269
|
+
if (!sampleRightCols) {
|
|
270
|
+
sampleRightCols = Object.keys(row);
|
|
271
|
+
}
|
|
272
|
+
const normKey = normalizeKey(row[rightKey], caseInsensitive, trim);
|
|
273
|
+
rightEntries.push({ normKey, row, matched: false });
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
let sampleLeftCols;
|
|
277
|
+
let outRows = [];
|
|
278
|
+
let offset = 0;
|
|
279
|
+
// 2. Stream through left table and fuzzy match
|
|
280
|
+
for await (const batch of leftStream) {
|
|
281
|
+
for (const leftRow of batch.rows) {
|
|
282
|
+
if (!sampleLeftCols) {
|
|
283
|
+
sampleLeftCols = Object.keys(leftRow);
|
|
284
|
+
}
|
|
285
|
+
const leftNormKey = normalizeKey(leftRow[leftKey], caseInsensitive, trim);
|
|
286
|
+
if (!leftNormKey) {
|
|
287
|
+
// Left row has null / empty key
|
|
288
|
+
if (joinType === "left" || joinType === "full") {
|
|
289
|
+
outRows.push(mergeFuzzyRows(leftRow, null, leftKey, rightKey, null, options, sampleLeftCols, sampleRightCols));
|
|
290
|
+
}
|
|
291
|
+
continue;
|
|
292
|
+
}
|
|
293
|
+
let candidates = [];
|
|
294
|
+
for (const entry of rightEntries) {
|
|
295
|
+
if (!entry.normKey)
|
|
296
|
+
continue;
|
|
297
|
+
const score = computeSimilarity(leftNormKey, entry.normKey, method);
|
|
298
|
+
if (score >= threshold) {
|
|
299
|
+
candidates.push({ entry, score });
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
if (candidates.length > 0) {
|
|
303
|
+
if (bestMatch) {
|
|
304
|
+
candidates.sort((a, b) => b.score - a.score);
|
|
305
|
+
const best = candidates[0];
|
|
306
|
+
best.entry.matched = true;
|
|
307
|
+
outRows.push(mergeFuzzyRows(leftRow, best.entry.row, leftKey, rightKey, best.score, options, sampleLeftCols, sampleRightCols));
|
|
308
|
+
}
|
|
309
|
+
else {
|
|
310
|
+
for (const cand of candidates) {
|
|
311
|
+
cand.entry.matched = true;
|
|
312
|
+
outRows.push(mergeFuzzyRows(leftRow, cand.entry.row, leftKey, rightKey, cand.score, options, sampleLeftCols, sampleRightCols));
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
else {
|
|
317
|
+
// No match found
|
|
318
|
+
if (joinType === "left" || joinType === "full") {
|
|
319
|
+
outRows.push(mergeFuzzyRows(leftRow, null, leftKey, rightKey, null, options, sampleLeftCols, sampleRightCols));
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
if (outRows.length >= batchSize) {
|
|
323
|
+
yield { rows: outRows, offset };
|
|
324
|
+
offset += outRows.length;
|
|
325
|
+
outRows = [];
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
// 3. Emit unmatched right rows for right/full joins
|
|
330
|
+
if (joinType === "right" || joinType === "full") {
|
|
331
|
+
for (const entry of rightEntries) {
|
|
332
|
+
if (!entry.matched) {
|
|
333
|
+
outRows.push(mergeFuzzyRows(null, entry.row, leftKey, rightKey, null, options, sampleLeftCols, sampleRightCols));
|
|
334
|
+
if (outRows.length >= batchSize) {
|
|
335
|
+
yield { rows: outRows, offset };
|
|
336
|
+
offset += outRows.length;
|
|
337
|
+
outRows = [];
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
if (outRows.length > 0) {
|
|
343
|
+
yield { rows: outRows, offset };
|
|
344
|
+
}
|
|
345
|
+
};
|
|
346
|
+
}
|
|
347
|
+
//# sourceMappingURL=fuzzy-join.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fuzzy-join.js","sourceRoot":"","sources":["../../src/transforms/fuzzy-join.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jit-compiler.d.ts","sourceRoot":"","sources":["../../src/transforms/jit-compiler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AA8D/C;;GAEG;AACH,eAAO,MAAM,WAAW;eACX,GAAG,QAAQ,MAAM,KAAG,OAAO;YAC9B,OAAO,KAAK,OAAO,KAAG,OAAO;aAQ5B,OAAO,KAAK,OAAO,KAAG,OAAO;YAQ9B,OAAO,KAAK,OAAO,KAAG,OAAO;aAI5B,OAAO,KAAK,OAAO,KAAG,OAAO;YAI9B,OAAO,KAAK,OAAO,KAAG,OAAO;aAI5B,OAAO,KAAK,OAAO,KAAG,OAAO;aAI7B,OAAO,KAAK,OAAO,KAAG,OAAO;kBAMxB,OAAO,KAAK,OAAO,KAAG,OAAO;oBAG3B,OAAO,KAAK,OAAO,KAAG,OAAO;kBAG/B,OAAO,KAAK,OAAO,KAAG,OAAO;eAGhC,OAAO,KAAG,MAAM;eAChB,OAAO,KAAG,MAAM;cACjB,OAAO,KAAG,MAAM;gBACd,OAAO,KAAG,MAAM;sBACV,OAAO,EAAE,KAAG,MAAM;gBACxB,OAAO,wBAAmB,MAAM,KAAG,MAAM;mBAItC,OAAO,wBAAmB,MAAM,KAAG,MAAM;iBAI3C,OAAO,UAAU,OAAO,eAAe,OAAO,KAAG,MAAM;eAGzD,OAAO,wBAAiB,MAAM;aAMhC,OAAO,KAAG,MAAM;cACf,OAAO,KAAG,MAAM;eACf,OAAO,KAAG,MAAM;cACjB,OAAO,KAAG,MAAM;mBACX,OAAO,EAAE,KAAG,MAAM;mBAClB,OAAO,EAAE,KAAG,MAAM;wBACb,OAAO,EAAE,KAAG,OAAO;eAM5B,OAAO,WAAW,OAAO,WAAW,OAAO,KAAG,OAAO;gBACpD,OAAO,WAAW,OAAO,WAAW,OAAO,KAAG,OAAO;gBACrD,OAAO,KAAG,OAAO;mBACd,OAAO,KAAG,OAAO;mBACjB,OAAO,QAAQ,OAAO,KAAG,OAAO;CAChD,CAAC;
|
|
1
|
+
{"version":3,"file":"jit-compiler.d.ts","sourceRoot":"","sources":["../../src/transforms/jit-compiler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AA8D/C;;GAEG;AACH,eAAO,MAAM,WAAW;eACX,GAAG,QAAQ,MAAM,KAAG,OAAO;YAC9B,OAAO,KAAK,OAAO,KAAG,OAAO;aAQ5B,OAAO,KAAK,OAAO,KAAG,OAAO;YAQ9B,OAAO,KAAK,OAAO,KAAG,OAAO;aAI5B,OAAO,KAAK,OAAO,KAAG,OAAO;YAI9B,OAAO,KAAK,OAAO,KAAG,OAAO;aAI5B,OAAO,KAAK,OAAO,KAAG,OAAO;aAI7B,OAAO,KAAK,OAAO,KAAG,OAAO;kBAMxB,OAAO,KAAK,OAAO,KAAG,OAAO;oBAG3B,OAAO,KAAK,OAAO,KAAG,OAAO;kBAG/B,OAAO,KAAK,OAAO,KAAG,OAAO;eAGhC,OAAO,KAAG,MAAM;eAChB,OAAO,KAAG,MAAM;cACjB,OAAO,KAAG,MAAM;gBACd,OAAO,KAAG,MAAM;sBACV,OAAO,EAAE,KAAG,MAAM;gBACxB,OAAO,wBAAmB,MAAM,KAAG,MAAM;mBAItC,OAAO,wBAAmB,MAAM,KAAG,MAAM;iBAI3C,OAAO,UAAU,OAAO,eAAe,OAAO,KAAG,MAAM;eAGzD,OAAO,wBAAiB,MAAM;aAMhC,OAAO,KAAG,MAAM;cACf,OAAO,KAAG,MAAM;eACf,OAAO,KAAG,MAAM;cACjB,OAAO,KAAG,MAAM;mBACX,OAAO,EAAE,KAAG,MAAM;mBAClB,OAAO,EAAE,KAAG,MAAM;wBACb,OAAO,EAAE,KAAG,OAAO;eAM5B,OAAO,WAAW,OAAO,WAAW,OAAO,KAAG,OAAO;gBACpD,OAAO,WAAW,OAAO,WAAW,OAAO,KAAG,OAAO;gBACrD,OAAO,KAAG,OAAO;mBACd,OAAO,KAAG,OAAO;mBACjB,OAAO,QAAQ,OAAO,KAAG,OAAO;CAChD,CAAC;AAuLF;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,IAAI,CAYnF;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,IAAI,CAW/E"}
|