jtcsv 3.0.0 → 3.1.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 (258) hide show
  1. package/README.md +205 -146
  2. package/bin/jtcsv.ts +280 -202
  3. package/browser.d.ts +142 -0
  4. package/dist/benchmark.js +446 -0
  5. package/dist/benchmark.js.map +1 -0
  6. package/dist/bin/jtcsv.js +1940 -0
  7. package/dist/bin/jtcsv.js.map +1 -0
  8. package/dist/csv-to-json.js +1262 -0
  9. package/dist/csv-to-json.js.map +1 -0
  10. package/dist/errors.js +291 -0
  11. package/dist/errors.js.map +1 -0
  12. package/dist/eslint.config.js +147 -0
  13. package/dist/eslint.config.js.map +1 -0
  14. package/dist/index-core.js +95 -0
  15. package/dist/index-core.js.map +1 -0
  16. package/dist/index.js +93 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/json-save.js +229 -0
  19. package/dist/json-save.js.map +1 -0
  20. package/dist/json-to-csv.js +576 -0
  21. package/dist/json-to-csv.js.map +1 -0
  22. package/dist/jtcsv-core.cjs.js +336 -7
  23. package/dist/jtcsv-core.cjs.js.map +1 -1
  24. package/dist/jtcsv-core.esm.js +336 -7
  25. package/dist/jtcsv-core.esm.js.map +1 -1
  26. package/dist/jtcsv-core.umd.js +336 -7
  27. package/dist/jtcsv-core.umd.js.map +1 -1
  28. package/dist/jtcsv-full.cjs.js +336 -7
  29. package/dist/jtcsv-full.cjs.js.map +1 -1
  30. package/dist/jtcsv-full.esm.js +336 -7
  31. package/dist/jtcsv-full.esm.js.map +1 -1
  32. package/dist/jtcsv-full.umd.js +336 -7
  33. package/dist/jtcsv-full.umd.js.map +1 -1
  34. package/dist/jtcsv-workers.esm.js +9 -0
  35. package/dist/jtcsv-workers.esm.js.map +1 -1
  36. package/dist/jtcsv-workers.umd.js +9 -0
  37. package/dist/jtcsv-workers.umd.js.map +1 -1
  38. package/dist/jtcsv.cjs.js +1998 -2092
  39. package/dist/jtcsv.cjs.js.map +1 -1
  40. package/dist/jtcsv.esm.js +1994 -2092
  41. package/dist/jtcsv.esm.js.map +1 -1
  42. package/dist/jtcsv.umd.js +2157 -2251
  43. package/dist/jtcsv.umd.js.map +1 -1
  44. package/dist/plugins/express-middleware/index.js +350 -0
  45. package/dist/plugins/express-middleware/index.js.map +1 -0
  46. package/dist/plugins/fastify-plugin/index.js +315 -0
  47. package/dist/plugins/fastify-plugin/index.js.map +1 -0
  48. package/dist/plugins/hono/index.js +111 -0
  49. package/dist/plugins/hono/index.js.map +1 -0
  50. package/dist/plugins/nestjs/index.js +112 -0
  51. package/dist/plugins/nestjs/index.js.map +1 -0
  52. package/dist/plugins/nuxt/index.js +53 -0
  53. package/dist/plugins/nuxt/index.js.map +1 -0
  54. package/dist/plugins/remix/index.js +133 -0
  55. package/dist/plugins/remix/index.js.map +1 -0
  56. package/dist/plugins/sveltekit/index.js +155 -0
  57. package/dist/plugins/sveltekit/index.js.map +1 -0
  58. package/dist/plugins/trpc/index.js +136 -0
  59. package/dist/plugins/trpc/index.js.map +1 -0
  60. package/dist/run-demo.js +49 -0
  61. package/dist/run-demo.js.map +1 -0
  62. package/dist/src/browser/browser-functions.js +193 -0
  63. package/dist/src/browser/browser-functions.js.map +1 -0
  64. package/dist/src/browser/core.js +123 -0
  65. package/dist/src/browser/core.js.map +1 -0
  66. package/dist/src/browser/csv-to-json-browser.js +353 -0
  67. package/dist/src/browser/csv-to-json-browser.js.map +1 -0
  68. package/dist/src/browser/errors-browser.js +219 -0
  69. package/dist/src/browser/errors-browser.js.map +1 -0
  70. package/dist/src/browser/extensions/plugins.js +106 -0
  71. package/dist/src/browser/extensions/plugins.js.map +1 -0
  72. package/dist/src/browser/extensions/workers.js +66 -0
  73. package/dist/src/browser/extensions/workers.js.map +1 -0
  74. package/dist/src/browser/index.js +140 -0
  75. package/dist/src/browser/index.js.map +1 -0
  76. package/dist/src/browser/json-to-csv-browser.js +225 -0
  77. package/dist/src/browser/json-to-csv-browser.js.map +1 -0
  78. package/dist/src/browser/streams.js +340 -0
  79. package/dist/src/browser/streams.js.map +1 -0
  80. package/dist/src/browser/workers/csv-parser.worker.js +264 -0
  81. package/dist/src/browser/workers/csv-parser.worker.js.map +1 -0
  82. package/dist/src/browser/workers/worker-pool.js +338 -0
  83. package/dist/src/browser/workers/worker-pool.js.map +1 -0
  84. package/dist/src/core/delimiter-cache.js +196 -0
  85. package/dist/src/core/delimiter-cache.js.map +1 -0
  86. package/dist/src/core/node-optimizations.js +279 -0
  87. package/dist/src/core/node-optimizations.js.map +1 -0
  88. package/dist/src/core/plugin-system.js +399 -0
  89. package/dist/src/core/plugin-system.js.map +1 -0
  90. package/dist/src/core/transform-hooks.js +348 -0
  91. package/dist/src/core/transform-hooks.js.map +1 -0
  92. package/dist/src/engines/fast-path-engine-new.js +262 -0
  93. package/dist/src/engines/fast-path-engine-new.js.map +1 -0
  94. package/dist/src/engines/fast-path-engine.js +671 -0
  95. package/dist/src/engines/fast-path-engine.js.map +1 -0
  96. package/dist/src/errors.js +18 -0
  97. package/dist/src/errors.js.map +1 -0
  98. package/dist/src/formats/ndjson-parser.js +332 -0
  99. package/dist/src/formats/ndjson-parser.js.map +1 -0
  100. package/dist/src/formats/tsv-parser.js +230 -0
  101. package/dist/src/formats/tsv-parser.js.map +1 -0
  102. package/dist/src/index-with-plugins.js +259 -0
  103. package/dist/src/index-with-plugins.js.map +1 -0
  104. package/dist/src/types/index.js +3 -0
  105. package/dist/src/types/index.js.map +1 -0
  106. package/dist/src/utils/bom-utils.js +267 -0
  107. package/dist/src/utils/bom-utils.js.map +1 -0
  108. package/dist/src/utils/encoding-support.js +77 -0
  109. package/dist/src/utils/encoding-support.js.map +1 -0
  110. package/dist/src/utils/schema-validator.js +609 -0
  111. package/dist/src/utils/schema-validator.js.map +1 -0
  112. package/dist/src/utils/transform-loader.js +281 -0
  113. package/dist/src/utils/transform-loader.js.map +1 -0
  114. package/dist/src/utils/validators.js +40 -0
  115. package/dist/src/utils/validators.js.map +1 -0
  116. package/dist/src/utils/zod-adapter.js +144 -0
  117. package/dist/src/utils/zod-adapter.js.map +1 -0
  118. package/{src → dist/src}/web-server/index.js +251 -286
  119. package/dist/src/web-server/index.js.map +1 -0
  120. package/dist/src/workers/csv-multithreaded.js +211 -0
  121. package/dist/src/workers/csv-multithreaded.js.map +1 -0
  122. package/dist/src/workers/csv-parser.worker.js +179 -0
  123. package/dist/src/workers/csv-parser.worker.js.map +1 -0
  124. package/dist/src/workers/worker-pool.js +228 -0
  125. package/dist/src/workers/worker-pool.js.map +1 -0
  126. package/dist/stream-csv-to-json.js +665 -0
  127. package/dist/stream-csv-to-json.js.map +1 -0
  128. package/dist/stream-json-to-csv.js +389 -0
  129. package/dist/stream-json-to-csv.js.map +1 -0
  130. package/examples/advanced/conditional-transformations.ts +2 -2
  131. package/examples/advanced/performance-optimization.ts +2 -2
  132. package/examples/cli-advanced-usage.md +2 -0
  133. package/examples/cli-tool.ts +1 -1
  134. package/examples/large-dataset-example.ts +2 -2
  135. package/examples/simple-usage.ts +2 -2
  136. package/examples/streaming-example.ts +1 -1
  137. package/index.d.ts +186 -15
  138. package/package.json +43 -108
  139. package/plugins.d.ts +37 -0
  140. package/schema.d.ts +103 -0
  141. package/src/browser/csv-to-json-browser.ts +233 -3
  142. package/src/browser/errors-browser.ts +45 -28
  143. package/src/browser/json-to-csv-browser.ts +81 -5
  144. package/src/browser/streams.ts +73 -6
  145. package/src/core/delimiter-cache.ts +21 -11
  146. package/src/core/plugin-system.ts +343 -155
  147. package/src/core/transform-hooks.ts +20 -12
  148. package/src/engines/fast-path-engine.ts +48 -32
  149. package/src/errors.ts +1 -72
  150. package/src/formats/ndjson-parser.ts +6 -0
  151. package/src/formats/tsv-parser.ts +6 -0
  152. package/src/types/index.ts +21 -1
  153. package/src/utils/validators.ts +35 -0
  154. package/src/web-server/index.ts +1 -1
  155. package/bin/jtcsv.js +0 -2532
  156. package/csv-to-json.js +0 -711
  157. package/errors.js +0 -394
  158. package/examples/advanced/conditional-transformations.js +0 -446
  159. package/examples/advanced/csv-parser.worker.js +0 -89
  160. package/examples/advanced/nested-objects-example.js +0 -306
  161. package/examples/advanced/performance-optimization.js +0 -504
  162. package/examples/advanced/run-demo-server.js +0 -116
  163. package/examples/cli-batch-processing.js +0 -38
  164. package/examples/cli-tool.js +0 -183
  165. package/examples/error-handling.js +0 -338
  166. package/examples/express-api.js +0 -164
  167. package/examples/large-dataset-example.js +0 -182
  168. package/examples/ndjson-processing.js +0 -434
  169. package/examples/plugin-excel-exporter.js +0 -406
  170. package/examples/schema-validation.js +0 -640
  171. package/examples/simple-usage.js +0 -282
  172. package/examples/streaming-example.js +0 -418
  173. package/examples/web-workers-advanced.js +0 -28
  174. package/index.js +0 -82
  175. package/json-save.js +0 -255
  176. package/json-to-csv.js +0 -668
  177. package/plugins/README.md +0 -91
  178. package/plugins/express-middleware/README.md +0 -83
  179. package/plugins/express-middleware/example.js +0 -135
  180. package/plugins/express-middleware/example.ts +0 -135
  181. package/plugins/express-middleware/index.d.ts +0 -114
  182. package/plugins/express-middleware/index.js +0 -512
  183. package/plugins/express-middleware/index.ts +0 -557
  184. package/plugins/express-middleware/package.json +0 -52
  185. package/plugins/fastify-plugin/index.js +0 -404
  186. package/plugins/fastify-plugin/index.ts +0 -443
  187. package/plugins/fastify-plugin/package.json +0 -55
  188. package/plugins/hono/README.md +0 -28
  189. package/plugins/hono/index.d.ts +0 -12
  190. package/plugins/hono/index.js +0 -36
  191. package/plugins/hono/index.ts +0 -226
  192. package/plugins/hono/package.json +0 -35
  193. package/plugins/nestjs/README.md +0 -35
  194. package/plugins/nestjs/index.d.ts +0 -25
  195. package/plugins/nestjs/index.js +0 -77
  196. package/plugins/nestjs/index.ts +0 -201
  197. package/plugins/nestjs/package.json +0 -37
  198. package/plugins/nextjs-api/README.md +0 -57
  199. package/plugins/nextjs-api/examples/ConverterComponent.jsx +0 -386
  200. package/plugins/nextjs-api/examples/ConverterComponent.tsx +0 -386
  201. package/plugins/nextjs-api/examples/api-convert.js +0 -67
  202. package/plugins/nextjs-api/examples/api-convert.ts +0 -67
  203. package/plugins/nextjs-api/index.js +0 -387
  204. package/plugins/nextjs-api/index.tsx +0 -339
  205. package/plugins/nextjs-api/package.json +0 -63
  206. package/plugins/nextjs-api/route.js +0 -370
  207. package/plugins/nextjs-api/route.ts +0 -370
  208. package/plugins/nuxt/README.md +0 -24
  209. package/plugins/nuxt/index.js +0 -21
  210. package/plugins/nuxt/index.ts +0 -94
  211. package/plugins/nuxt/package.json +0 -35
  212. package/plugins/nuxt/runtime/composables/useJtcsv.js +0 -6
  213. package/plugins/nuxt/runtime/composables/useJtcsv.ts +0 -100
  214. package/plugins/nuxt/runtime/plugin.js +0 -6
  215. package/plugins/nuxt/runtime/plugin.ts +0 -71
  216. package/plugins/remix/README.md +0 -26
  217. package/plugins/remix/index.d.ts +0 -16
  218. package/plugins/remix/index.js +0 -62
  219. package/plugins/remix/index.ts +0 -260
  220. package/plugins/remix/package.json +0 -35
  221. package/plugins/sveltekit/README.md +0 -28
  222. package/plugins/sveltekit/index.d.ts +0 -17
  223. package/plugins/sveltekit/index.js +0 -54
  224. package/plugins/sveltekit/index.ts +0 -301
  225. package/plugins/sveltekit/package.json +0 -33
  226. package/plugins/trpc/README.md +0 -25
  227. package/plugins/trpc/index.d.ts +0 -7
  228. package/plugins/trpc/index.js +0 -32
  229. package/plugins/trpc/index.ts +0 -267
  230. package/plugins/trpc/package.json +0 -34
  231. package/src/browser/browser-functions.js +0 -219
  232. package/src/browser/core.js +0 -92
  233. package/src/browser/csv-to-json-browser.js +0 -722
  234. package/src/browser/errors-browser.js +0 -212
  235. package/src/browser/extensions/plugins.js +0 -92
  236. package/src/browser/extensions/workers.js +0 -39
  237. package/src/browser/index.js +0 -113
  238. package/src/browser/json-to-csv-browser.js +0 -319
  239. package/src/browser/streams.js +0 -403
  240. package/src/browser/workers/csv-parser.worker.js +0 -377
  241. package/src/browser/workers/worker-pool.js +0 -527
  242. package/src/core/delimiter-cache.js +0 -200
  243. package/src/core/node-optimizations.js +0 -408
  244. package/src/core/plugin-system.js +0 -494
  245. package/src/core/transform-hooks.js +0 -350
  246. package/src/engines/fast-path-engine-new.js +0 -338
  247. package/src/engines/fast-path-engine.js +0 -844
  248. package/src/errors.js +0 -26
  249. package/src/formats/ndjson-parser.js +0 -467
  250. package/src/formats/tsv-parser.js +0 -339
  251. package/src/index-with-plugins.js +0 -378
  252. package/src/utils/bom-utils.js +0 -259
  253. package/src/utils/encoding-support.js +0 -124
  254. package/src/utils/schema-validator.js +0 -594
  255. package/src/utils/transform-loader.js +0 -205
  256. package/src/utils/zod-adapter.js +0 -170
  257. package/stream-csv-to-json.js +0 -560
  258. package/stream-json-to-csv.js +0 -465
@@ -1,219 +0,0 @@
1
- // Браузерные специфичные функции для jtcsv
2
- // Функции, которые работают только в браузере
3
-
4
- import { jsonToCsv } from './json-to-csv-browser.js';
5
- import { csvToJson, csvToJsonIterator } from './csv-to-json-browser.js';
6
- import { csvToJsonStream, jsonToCsvStream, jsonToNdjsonStream } from './streams.js';
7
- import { ValidationError } from './errors-browser.js';
8
-
9
- /**
10
- * Скачивает JSON данные как CSV файл
11
- *
12
- * @param {Array<Object>} data - Массив объектов для конвертации
13
- * @param {string} [filename='data.csv'] - Имя файла для скачивания
14
- * @param {Object} [options] - Опции для jsonToCsv
15
- * @returns {void}
16
- *
17
- * @example
18
- * const data = [
19
- * { id: 1, name: 'John' },
20
- * { id: 2, name: 'Jane' }
21
- * ];
22
- * downloadAsCsv(data, 'users.csv', { delimiter: ',' });
23
- */
24
- export function downloadAsCsv(data, filename = 'data.csv', options = {}) {
25
- // Проверка что мы в браузере
26
- if (typeof window === 'undefined') {
27
- throw new ValidationError('downloadAsCsv() работает только в браузере. Используйте saveAsCsv() в Node.js');
28
- }
29
-
30
- // Валидация имени файла
31
- if (typeof filename !== 'string' || filename.trim() === '') {
32
- throw new ValidationError('Filename must be a non-empty string');
33
- }
34
-
35
- // Добавление расширения .csv если его нет
36
- if (!filename.toLowerCase().endsWith('.csv')) {
37
- filename += '.csv';
38
- }
39
-
40
- // Конвертация в CSV
41
- const csv = jsonToCsv(data, options);
42
-
43
- // Создание Blob
44
- const blob = new Blob([csv], {
45
- type: 'text/csv;charset=utf-8;'
46
- });
47
-
48
- // Создание ссылки для скачивания
49
- const link = document.createElement('a');
50
-
51
- // Создание URL для Blob
52
- const url = URL.createObjectURL(blob);
53
-
54
- // Настройка ссылки
55
- link.setAttribute('href', url);
56
- link.setAttribute('download', filename);
57
- link.style.visibility = 'hidden';
58
-
59
- // Добавление в DOM и клик
60
- document.body.appendChild(link);
61
- link.click();
62
-
63
- // Очистка
64
- setTimeout(() => {
65
- document.body.removeChild(link);
66
- URL.revokeObjectURL(url);
67
- }, 100);
68
- }
69
-
70
- /**
71
- * Парсит CSV файл из input[type="file"] в JSON
72
- *
73
- * @param {File} file - File объект из input
74
- * @param {Object} [options] - Опции для csvToJson
75
- * @returns {Promise<Array<Object>>} Promise с JSON данными
76
- *
77
- * @example
78
- * // HTML: <input type="file" id="csvFile" accept=".csv">
79
- * const fileInput = document.getElementById('csvFile');
80
- * const json = await parseCsvFile(fileInput.files[0], { delimiter: ',' });
81
- */
82
- export async function parseCsvFile(file, options = {}) {
83
- // Проверка что мы в браузере
84
- if (typeof window === 'undefined') {
85
- throw new ValidationError('parseCsvFile() работает только в браузере. Используйте readCsvAsJson() в Node.js');
86
- }
87
-
88
- // Валидация файла
89
- if (!(file instanceof File)) {
90
- throw new ValidationError('Input must be a File object');
91
- }
92
-
93
- // Проверка расширения файла
94
- if (!file.name.toLowerCase().endsWith('.csv')) {
95
- throw new ValidationError('File must have .csv extension');
96
- }
97
-
98
- // Проверка размера файла (предупреждение для больших файлов)
99
- const MAX_SIZE_WARNING = 50 * 1024 * 1024; // 50MB
100
- if (file.size > MAX_SIZE_WARNING && process.env.NODE_ENV !== 'production') {
101
- console.warn(
102
- `⚠️ Warning: Processing large file (${(file.size / 1024 / 1024).toFixed(2)}MB).\n` +
103
- '💡 Consider using Web Workers for better performance.\n' +
104
- '🔧 Tip: Use parseCSVWithWorker() for files > 10MB.'
105
- );
106
- }
107
-
108
- return new Promise((resolve, reject) => {
109
- const reader = new FileReader();
110
-
111
- reader.onload = function (event) {
112
- try {
113
- const csvText = event.target.result;
114
- const json = csvToJson(csvText, options);
115
- resolve(json);
116
- } catch (error) {
117
- reject(error);
118
- }
119
- };
120
-
121
- reader.onerror = function () {
122
- reject(new ValidationError('Ошибка чтения файла'));
123
- };
124
-
125
- reader.onabort = function () {
126
- reject(new ValidationError('Чтение файла прервано'));
127
- };
128
-
129
- // Чтение как текст
130
- reader.readAsText(file, 'UTF-8');
131
- });
132
- }
133
-
134
- /**
135
- * Stream CSV file as async iterator without full buffering.
136
- *
137
- * @param {File} file - File selected from input
138
- * @param {Object} [options] - csvToJson options
139
- * @returns {AsyncGenerator<Object>} Async iterator of rows
140
- */
141
- export function parseCsvFileStream(file, options = {}) {
142
- if (typeof window === 'undefined') {
143
- throw new ValidationError('parseCsvFileStream() is browser-only. Use readCsvAsJson() in Node.js');
144
- }
145
-
146
- if (!(file instanceof File)) {
147
- throw new ValidationError('Input must be a File object');
148
- }
149
-
150
- if (!file.name.toLowerCase().endsWith('.csv')) {
151
- throw new ValidationError('File must have .csv extension');
152
- }
153
-
154
- return csvToJsonIterator(file, options);
155
- }
156
-
157
- /**
158
- * Создает CSV файл из JSON данных (альтернатива downloadAsCsv)
159
- * Возвращает Blob вместо автоматического скачивания
160
- *
161
- * @param {Array<Object>} data - Массив объектов
162
- * @param {Object} [options] - Опции для jsonToCsv
163
- * @returns {Blob} CSV Blob
164
- */
165
- export function createCsvBlob(data, options = {}) {
166
- const csv = jsonToCsv(data, options);
167
- return new Blob([csv], {
168
- type: 'text/csv;charset=utf-8;'
169
- });
170
- }
171
-
172
- /**
173
- * Парсит CSV строку из Blob
174
- *
175
- * @param {Blob} blob - CSV Blob
176
- * @param {Object} [options] - Опции для csvToJson
177
- * @returns {Promise<Array<Object>>} Promise с JSON данными
178
- */
179
- export async function parseCsvBlob(blob, options = {}) {
180
- if (!(blob instanceof Blob)) {
181
- throw new ValidationError('Input must be a Blob object');
182
- }
183
-
184
- return new Promise((resolve, reject) => {
185
- const reader = new FileReader();
186
-
187
- reader.onload = function (event) {
188
- try {
189
- const csvText = event.target.result;
190
- const json = csvToJson(csvText, options);
191
- resolve(json);
192
- } catch (error) {
193
- reject(error);
194
- }
195
- };
196
-
197
- reader.onerror = function () {
198
- reject(new ValidationError('Ошибка чтения Blob'));
199
- };
200
-
201
- reader.readAsText(blob, 'UTF-8');
202
- });
203
- }
204
-
205
- // Экспорт для Node.js совместимости
206
- if (typeof module !== 'undefined' && module.exports) {
207
- module.exports = {
208
- downloadAsCsv,
209
- parseCsvFile,
210
- parseCsvFileStream,
211
- createCsvBlob,
212
- parseCsvBlob,
213
- jsonToCsvStream,
214
- jsonToNdjsonStream,
215
- csvToJsonStream
216
- };
217
- }
218
-
219
- export { jsonToCsvStream, jsonToNdjsonStream, csvToJsonStream };
@@ -1,92 +0,0 @@
1
- // Ядро jtcsv - только базовые функции JSON<->CSV
2
- // Минимальный размер, максимальная производительность
3
-
4
- import { jsonToCsv, preprocessData, deepUnwrap } from './json-to-csv-browser.js';
5
- import { csvToJson, csvToJsonIterator, autoDetectDelimiter } from './csv-to-json-browser.js';
6
- import {
7
- downloadAsCsv,
8
- parseCsvFile,
9
- parseCsvFileStream,
10
- jsonToCsvStream,
11
- jsonToNdjsonStream,
12
- csvToJsonStream
13
- } from './browser-functions.js';
14
- import {
15
- ValidationError,
16
- SecurityError,
17
- FileSystemError,
18
- ParsingError,
19
- LimitError,
20
- ConfigurationError,
21
- ERROR_CODES
22
- } from './errors-browser.js';
23
-
24
- // Основной экспорт ядра
25
- const jtcsvCore = {
26
- // JSON to CSV функции
27
- jsonToCsv,
28
- preprocessData,
29
- downloadAsCsv,
30
- deepUnwrap,
31
-
32
- // CSV to JSON функции
33
- csvToJson,
34
- csvToJsonIterator,
35
- parseCsvFile,
36
- parseCsvFileStream,
37
- jsonToCsvStream,
38
- jsonToNdjsonStream,
39
- csvToJsonStream,
40
- autoDetectDelimiter,
41
-
42
- // Error classes
43
- ValidationError,
44
- SecurityError,
45
- FileSystemError,
46
- ParsingError,
47
- LimitError,
48
- ConfigurationError,
49
- ERROR_CODES,
50
-
51
- // Удобные алиасы
52
- parse: csvToJson,
53
- unparse: jsonToCsv,
54
-
55
- // Версия
56
- version: '3.0.0-core'
57
- };
58
-
59
- // Экспорт для разных сред
60
- if (typeof module !== 'undefined' && module.exports) {
61
- // Node.js CommonJS
62
- module.exports = jtcsvCore;
63
- } else if (typeof define === 'function' && define.amd) {
64
- // AMD
65
- define([], () => jtcsvCore);
66
- } else if (typeof window !== 'undefined') {
67
- // Браузер (глобальная переменная)
68
- window.jtcsv = jtcsvCore;
69
- }
70
-
71
- export default jtcsvCore;
72
- export {
73
- jsonToCsv,
74
- preprocessData,
75
- downloadAsCsv,
76
- deepUnwrap,
77
- csvToJson,
78
- csvToJsonIterator,
79
- parseCsvFile,
80
- parseCsvFileStream,
81
- jsonToCsvStream,
82
- jsonToNdjsonStream,
83
- csvToJsonStream,
84
- autoDetectDelimiter,
85
- ValidationError,
86
- SecurityError,
87
- FileSystemError,
88
- ParsingError,
89
- LimitError,
90
- ConfigurationError,
91
- ERROR_CODES
92
- };