jtcsv 2.2.7 → 3.0.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.
- package/README.md +31 -1
- package/bin/jtcsv.js +891 -821
- package/bin/jtcsv.ts +2534 -0
- package/csv-to-json.js +168 -145
- package/dist/jtcsv-core.cjs.js +1407 -0
- package/dist/jtcsv-core.cjs.js.map +1 -0
- package/dist/jtcsv-core.esm.js +1379 -0
- package/dist/jtcsv-core.esm.js.map +1 -0
- package/dist/jtcsv-core.umd.js +1413 -0
- package/dist/jtcsv-core.umd.js.map +1 -0
- package/dist/jtcsv-full.cjs.js +1912 -0
- package/dist/jtcsv-full.cjs.js.map +1 -0
- package/dist/jtcsv-full.esm.js +1880 -0
- package/dist/jtcsv-full.esm.js.map +1 -0
- package/dist/jtcsv-full.umd.js +1918 -0
- package/dist/jtcsv-full.umd.js.map +1 -0
- package/dist/jtcsv-workers.esm.js +759 -0
- package/dist/jtcsv-workers.esm.js.map +1 -0
- package/dist/jtcsv-workers.umd.js +773 -0
- package/dist/jtcsv-workers.umd.js.map +1 -0
- package/dist/jtcsv.cjs.js +61 -19
- package/dist/jtcsv.cjs.js.map +1 -1
- package/dist/jtcsv.esm.js +61 -19
- package/dist/jtcsv.esm.js.map +1 -1
- package/dist/jtcsv.umd.js +61 -19
- package/dist/jtcsv.umd.js.map +1 -1
- package/errors.js +188 -2
- package/examples/advanced/conditional-transformations.js +446 -0
- package/examples/advanced/conditional-transformations.ts +446 -0
- package/examples/advanced/csv-parser.worker.js +89 -0
- package/examples/advanced/csv-parser.worker.ts +89 -0
- package/examples/advanced/nested-objects-example.js +306 -0
- package/examples/advanced/nested-objects-example.ts +306 -0
- package/examples/advanced/performance-optimization.js +504 -0
- package/examples/advanced/performance-optimization.ts +504 -0
- package/examples/advanced/run-demo-server.js +116 -0
- package/examples/advanced/run-demo-server.ts +116 -0
- package/examples/advanced/web-worker-usage.html +874 -0
- package/examples/async-multithreaded-example.ts +335 -0
- package/examples/cli-advanced-usage.md +288 -0
- package/examples/cli-batch-processing.ts +38 -0
- package/examples/cli-tool.js +0 -3
- package/examples/cli-tool.ts +183 -0
- package/examples/error-handling.js +21 -7
- package/examples/error-handling.ts +356 -0
- package/examples/express-api.js +0 -3
- package/examples/express-api.ts +164 -0
- package/examples/large-dataset-example.js +0 -3
- package/examples/large-dataset-example.ts +204 -0
- package/examples/ndjson-processing.js +1 -1
- package/examples/ndjson-processing.ts +456 -0
- package/examples/plugin-excel-exporter.js +3 -4
- package/examples/plugin-excel-exporter.ts +406 -0
- package/examples/react-integration.tsx +637 -0
- package/examples/schema-validation.ts +640 -0
- package/examples/simple-usage.js +254 -254
- package/examples/simple-usage.ts +194 -0
- package/examples/streaming-example.js +4 -5
- package/examples/streaming-example.ts +419 -0
- package/examples/web-workers-advanced.ts +28 -0
- package/index.d.ts +1 -3
- package/index.js +15 -1
- package/json-save.js +9 -3
- package/json-to-csv.js +168 -21
- package/package.json +69 -10
- package/plugins/express-middleware/README.md +21 -2
- package/plugins/express-middleware/example.js +3 -4
- package/plugins/express-middleware/example.ts +135 -0
- package/plugins/express-middleware/index.d.ts +1 -1
- package/plugins/express-middleware/index.js +270 -118
- package/plugins/express-middleware/index.ts +557 -0
- package/plugins/fastify-plugin/index.js +2 -4
- package/plugins/fastify-plugin/index.ts +443 -0
- package/plugins/hono/index.ts +226 -0
- package/plugins/nestjs/index.ts +201 -0
- package/plugins/nextjs-api/examples/ConverterComponent.tsx +386 -0
- package/plugins/nextjs-api/examples/api-convert.js +0 -2
- package/plugins/nextjs-api/examples/api-convert.ts +67 -0
- package/plugins/nextjs-api/index.tsx +339 -0
- package/plugins/nextjs-api/route.js +2 -3
- package/plugins/nextjs-api/route.ts +370 -0
- package/plugins/nuxt/index.ts +94 -0
- package/plugins/nuxt/runtime/composables/useJtcsv.ts +100 -0
- package/plugins/nuxt/runtime/plugin.ts +71 -0
- package/plugins/remix/index.js +1 -1
- package/plugins/remix/index.ts +260 -0
- package/plugins/sveltekit/index.js +1 -1
- package/plugins/sveltekit/index.ts +301 -0
- package/plugins/trpc/index.ts +267 -0
- package/src/browser/browser-functions.ts +402 -0
- package/src/browser/core.js +92 -0
- package/src/browser/core.ts +152 -0
- package/src/browser/csv-to-json-browser.d.ts +3 -0
- package/src/browser/csv-to-json-browser.js +36 -14
- package/src/browser/csv-to-json-browser.ts +264 -0
- package/src/browser/errors-browser.ts +303 -0
- package/src/browser/extensions/plugins.js +92 -0
- package/src/browser/extensions/plugins.ts +93 -0
- package/src/browser/extensions/workers.js +39 -0
- package/src/browser/extensions/workers.ts +39 -0
- package/src/browser/globals.d.ts +5 -0
- package/src/browser/index.ts +192 -0
- package/src/browser/json-to-csv-browser.d.ts +3 -0
- package/src/browser/json-to-csv-browser.js +13 -3
- package/src/browser/json-to-csv-browser.ts +262 -0
- package/src/browser/streams.js +12 -2
- package/src/browser/streams.ts +336 -0
- package/src/browser/workers/csv-parser.worker.ts +377 -0
- package/src/browser/workers/worker-pool.ts +548 -0
- package/src/core/delimiter-cache.js +22 -8
- package/src/core/delimiter-cache.ts +310 -0
- package/src/core/node-optimizations.ts +449 -0
- package/src/core/plugin-system.js +29 -11
- package/src/core/plugin-system.ts +400 -0
- package/src/core/transform-hooks.ts +558 -0
- package/src/engines/fast-path-engine-new.ts +347 -0
- package/src/engines/fast-path-engine.ts +854 -0
- package/src/errors.ts +72 -0
- package/src/formats/ndjson-parser.ts +469 -0
- package/src/formats/tsv-parser.ts +334 -0
- package/src/index-with-plugins.js +16 -9
- package/src/index-with-plugins.ts +395 -0
- package/src/types/index.ts +255 -0
- package/src/utils/bom-utils.js +259 -0
- package/src/utils/bom-utils.ts +373 -0
- package/src/utils/encoding-support.js +124 -0
- package/src/utils/encoding-support.ts +155 -0
- package/src/utils/schema-validator.js +19 -19
- package/src/utils/schema-validator.ts +819 -0
- package/src/utils/transform-loader.js +1 -1
- package/src/utils/transform-loader.ts +389 -0
- package/src/utils/zod-adapter.js +170 -0
- package/src/utils/zod-adapter.ts +280 -0
- package/src/web-server/index.js +10 -10
- package/src/web-server/index.ts +683 -0
- package/src/workers/csv-multithreaded.ts +310 -0
- package/src/workers/csv-parser.worker.ts +227 -0
- package/src/workers/worker-pool.ts +409 -0
- package/stream-csv-to-json.js +26 -8
- package/stream-json-to-csv.js +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jtcsv-workers.umd.js","sources":["../src/browser/errors-browser.ts","../src/browser/workers/worker-pool.ts","../src/browser/extensions/workers.ts"],"sourcesContent":[null,null,null],"names":[],"mappings":"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"}
|
package/dist/jtcsv.cjs.js
CHANGED
|
@@ -389,8 +389,18 @@ function jsonToCsv(data, options = {}) {
|
|
|
389
389
|
|
|
390
390
|
// Защита от CSV инъекций
|
|
391
391
|
let escapedValue = stringValue;
|
|
392
|
-
if (preventCsvInjection
|
|
393
|
-
|
|
392
|
+
if (preventCsvInjection) {
|
|
393
|
+
// Dangerous prefixes: =, +, -, @, tab (\t), carriage return (\r)
|
|
394
|
+
if (/^[=+\-@\t\r]/.test(stringValue)) {
|
|
395
|
+
escapedValue = "'" + stringValue;
|
|
396
|
+
}
|
|
397
|
+
// Unicode Bidi override characters
|
|
398
|
+
const bidiChars = ['\u202A', '\u202B', '\u202C', '\u202D', '\u202E'];
|
|
399
|
+
for (const bidi of bidiChars) {
|
|
400
|
+
if (stringValue.includes(bidi)) {
|
|
401
|
+
escapedValue = escapedValue.replace(new RegExp(bidi, 'g'), '');
|
|
402
|
+
}
|
|
403
|
+
}
|
|
394
404
|
}
|
|
395
405
|
|
|
396
406
|
// Соответствие RFC 4180
|
|
@@ -703,10 +713,18 @@ function parseCsvValue(value, options) {
|
|
|
703
713
|
}
|
|
704
714
|
|
|
705
715
|
// Парсинг чисел
|
|
706
|
-
if (parseNumbers
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
716
|
+
if (parseNumbers) {
|
|
717
|
+
// Быстрая проверка числа: первый символ цифра, минус или точка
|
|
718
|
+
const trimmed = result.trim();
|
|
719
|
+
const firstChar = trimmed.charAt(0);
|
|
720
|
+
if (firstChar >= '0' && firstChar <= '9' || firstChar === '-' || firstChar === '.') {
|
|
721
|
+
const num = parseFloat(trimmed);
|
|
722
|
+
if (!isNaN(num) && isFinite(num)) {
|
|
723
|
+
// Убедимся, что строка полностью соответствует числу (без лишних символов)
|
|
724
|
+
if (String(num) === trimmed || trimmed.includes('.') && !isNaN(Number(trimmed))) {
|
|
725
|
+
return num;
|
|
726
|
+
}
|
|
727
|
+
}
|
|
710
728
|
}
|
|
711
729
|
}
|
|
712
730
|
|
|
@@ -818,28 +836,42 @@ function autoDetectDelimiter(csv, candidates = [';', ',', '\t', '|']) {
|
|
|
818
836
|
|
|
819
837
|
// Использование первой непустой строки для определения
|
|
820
838
|
const firstLine = lines[0];
|
|
839
|
+
|
|
840
|
+
// Быстрый подсчёт вхождений кандидатов за один проход
|
|
821
841
|
const counts = {};
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
const
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
842
|
+
const candidateSet = new Set(candidates);
|
|
843
|
+
for (let i = 0; i < firstLine.length; i++) {
|
|
844
|
+
const char = firstLine[i];
|
|
845
|
+
if (candidateSet.has(char)) {
|
|
846
|
+
counts[char] = (counts[char] || 0) + 1;
|
|
847
|
+
}
|
|
848
|
+
}
|
|
849
|
+
// Убедимся, что все кандидаты присутствуют в counts (даже с нулём)
|
|
850
|
+
for (const delim of candidates) {
|
|
851
|
+
if (!(delim in counts)) {
|
|
852
|
+
counts[delim] = 0;
|
|
853
|
+
}
|
|
854
|
+
}
|
|
828
855
|
|
|
829
856
|
// Поиск разделителя с максимальным количеством
|
|
830
857
|
let maxCount = -1;
|
|
831
858
|
let detectedDelimiter = ';'; // значение по умолчанию
|
|
832
|
-
|
|
859
|
+
const maxDelimiters = [];
|
|
833
860
|
for (const [delim, count] of Object.entries(counts)) {
|
|
834
861
|
if (count > maxCount) {
|
|
835
862
|
maxCount = count;
|
|
836
|
-
|
|
863
|
+
maxDelimiters.length = 0;
|
|
864
|
+
maxDelimiters.push(delim);
|
|
865
|
+
} else if (count === maxCount) {
|
|
866
|
+
maxDelimiters.push(delim);
|
|
837
867
|
}
|
|
838
868
|
}
|
|
839
869
|
|
|
840
|
-
// Если разделитель не найден или
|
|
841
|
-
if (maxCount === 0) {
|
|
842
|
-
|
|
870
|
+
// Если разделитель не найден или есть ничья, возвращаем стандартный
|
|
871
|
+
if (maxCount === 0 || maxDelimiters.length > 1) {
|
|
872
|
+
detectedDelimiter = ';';
|
|
873
|
+
} else {
|
|
874
|
+
detectedDelimiter = maxDelimiters[0];
|
|
843
875
|
}
|
|
844
876
|
return detectedDelimiter;
|
|
845
877
|
}
|
|
@@ -1338,8 +1370,18 @@ function escapeCsvValue(value, options) {
|
|
|
1338
1370
|
}
|
|
1339
1371
|
const stringValue = String(value);
|
|
1340
1372
|
let escapedValue = stringValue;
|
|
1341
|
-
if (preventCsvInjection
|
|
1342
|
-
|
|
1373
|
+
if (preventCsvInjection) {
|
|
1374
|
+
// Dangerous prefixes: =, +, -, @, tab (\t), carriage return (\r)
|
|
1375
|
+
if (/^[=+\-@\t\r]/.test(stringValue)) {
|
|
1376
|
+
escapedValue = "'" + stringValue;
|
|
1377
|
+
}
|
|
1378
|
+
// Unicode Bidi override characters
|
|
1379
|
+
const bidiChars = ['\u202A', '\u202B', '\u202C', '\u202D', '\u202E'];
|
|
1380
|
+
for (const bidi of bidiChars) {
|
|
1381
|
+
if (stringValue.includes(bidi)) {
|
|
1382
|
+
escapedValue = escapedValue.replace(new RegExp(bidi, 'g'), '');
|
|
1383
|
+
}
|
|
1384
|
+
}
|
|
1343
1385
|
}
|
|
1344
1386
|
const needsQuoting = rfc4180Compliant ? escapedValue.includes(delimiter) || escapedValue.includes('"') || escapedValue.includes('\n') || escapedValue.includes('\r') : escapedValue.includes(delimiter) || escapedValue.includes('"') || escapedValue.includes('\n') || escapedValue.includes('\r');
|
|
1345
1387
|
if (needsQuoting) {
|