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,212 +0,0 @@
1
- // Система ошибок для браузерной версии jtcsv
2
- // Адаптирована для работы без Node.js специфичных API
3
-
4
- /**
5
- * Базовый класс ошибки jtcsv
6
- */
7
- export class JTCSVError extends Error {
8
- constructor(message, code = 'JTCSV_ERROR', details = {}) {
9
- super(message);
10
- this.name = 'JTCSVError';
11
- this.code = code;
12
- this.details = details;
13
-
14
- // Сохранение stack trace
15
- if (Error.captureStackTrace) {
16
- Error.captureStackTrace(this, JTCSVError);
17
- }
18
- }
19
- }
20
-
21
- /**
22
- * Ошибка валидации
23
- */
24
- export class ValidationError extends JTCSVError {
25
- constructor(message, details = {}) {
26
- super(message, 'VALIDATION_ERROR', details);
27
- this.name = 'ValidationError';
28
- }
29
- }
30
-
31
- /**
32
- * Ошибка безопасности
33
- */
34
- export class SecurityError extends JTCSVError {
35
- constructor(message, details = {}) {
36
- super(message, 'SECURITY_ERROR', details);
37
- this.name = 'SecurityError';
38
- }
39
- }
40
-
41
- /**
42
- * Ошибка файловой системы (адаптирована для браузера)
43
- */
44
- export class FileSystemError extends JTCSVError {
45
- constructor(message, originalError = null, details = {}) {
46
- super(message, 'FILE_SYSTEM_ERROR', { ...details, originalError });
47
- this.name = 'FileSystemError';
48
-
49
- if (originalError && originalError.code) {
50
- this.code = originalError.code;
51
- }
52
- }
53
- }
54
-
55
- /**
56
- * Ошибка парсинга
57
- */
58
- export class ParsingError extends JTCSVError {
59
- constructor(message, lineNumber = null, details = {}) {
60
- super(message, 'PARSING_ERROR', { ...details, lineNumber });
61
- this.name = 'ParsingError';
62
- this.lineNumber = lineNumber;
63
- }
64
- }
65
-
66
- /**
67
- * Ошибка превышения лимита
68
- */
69
- export class LimitError extends JTCSVError {
70
- constructor(message, limit, actual, details = {}) {
71
- super(message, 'LIMIT_ERROR', { ...details, limit, actual });
72
- this.name = 'LimitError';
73
- this.limit = limit;
74
- this.actual = actual;
75
- }
76
- }
77
-
78
- /**
79
- * Ошибка конфигурации
80
- */
81
- export class ConfigurationError extends JTCSVError {
82
- constructor(message, details = {}) {
83
- super(message, 'CONFIGURATION_ERROR', details);
84
- this.name = 'ConfigurationError';
85
- }
86
- }
87
-
88
- export const ERROR_CODES = {
89
- JTCSV_ERROR: 'JTCSV_ERROR',
90
- VALIDATION_ERROR: 'VALIDATION_ERROR',
91
- SECURITY_ERROR: 'SECURITY_ERROR',
92
- FILE_SYSTEM_ERROR: 'FILE_SYSTEM_ERROR',
93
- PARSING_ERROR: 'PARSING_ERROR',
94
- LIMIT_ERROR: 'LIMIT_ERROR',
95
- CONFIGURATION_ERROR: 'CONFIGURATION_ERROR',
96
- INVALID_INPUT: 'INVALID_INPUT',
97
- SECURITY_VIOLATION: 'SECURITY_VIOLATION',
98
- FILE_NOT_FOUND: 'FILE_NOT_FOUND',
99
- PARSE_FAILED: 'PARSE_FAILED',
100
- SIZE_LIMIT: 'SIZE_LIMIT',
101
- INVALID_CONFIG: 'INVALID_CONFIG',
102
- UNKNOWN_ERROR: 'UNKNOWN_ERROR'
103
- };
104
-
105
- /**
106
- * Безопасное выполнение функции с обработкой ошибок
107
- *
108
- * @param {Function} fn - Функция для выполнения
109
- * @param {string} errorCode - Код ошибки по умолчанию
110
- * @param {Object} errorDetails - Детали ошибки
111
- * @returns {*} Результат выполнения функции
112
- */
113
- export function safeExecute(fn, errorCode = 'UNKNOWN_ERROR', errorDetails = {}) {
114
- try {
115
- if (typeof fn === 'function') {
116
- return fn();
117
- }
118
- throw new ValidationError('Function expected');
119
- } catch (error) {
120
- // Если ошибка уже является JTCSVError, перебросить её
121
- if (error instanceof JTCSVError) {
122
- throw error;
123
- }
124
-
125
- // Определить тип ошибки на основе сообщения или кода
126
- let enhancedError;
127
- const errorMessage = error.message || String(error);
128
-
129
- if (errorMessage.includes('validation') || errorMessage.includes('Validation')) {
130
- enhancedError = new ValidationError(errorMessage, { ...errorDetails, originalError: error });
131
- } else if (errorMessage.includes('security') || errorMessage.includes('Security')) {
132
- enhancedError = new SecurityError(errorMessage, { ...errorDetails, originalError: error });
133
- } else if (errorMessage.includes('parsing') || errorMessage.includes('Parsing')) {
134
- enhancedError = new ParsingError(errorMessage, null, { ...errorDetails, originalError: error });
135
- } else if (errorMessage.includes('limit') || errorMessage.includes('Limit')) {
136
- enhancedError = new LimitError(errorMessage, null, null, { ...errorDetails, originalError: error });
137
- } else if (errorMessage.includes('configuration') || errorMessage.includes('Configuration')) {
138
- enhancedError = new ConfigurationError(errorMessage, { ...errorDetails, originalError: error });
139
- } else if (errorMessage.includes('file') || errorMessage.includes('File')) {
140
- enhancedError = new FileSystemError(errorMessage, error, errorDetails);
141
- } else {
142
- // Общая ошибка
143
- enhancedError = new JTCSVError(errorMessage, errorCode, { ...errorDetails, originalError: error });
144
- }
145
-
146
- // Сохранить оригинальный stack trace если возможно
147
- if (error.stack) {
148
- enhancedError.stack = error.stack;
149
- }
150
-
151
- throw enhancedError;
152
- }
153
- }
154
-
155
- /**
156
- * Асинхронная версия safeExecute
157
- */
158
- export async function safeExecuteAsync(fn, errorCode = 'UNKNOWN_ERROR', errorDetails = {}) {
159
- try {
160
- if (typeof fn === 'function') {
161
- return await fn();
162
- }
163
- throw new ValidationError('Function expected');
164
- } catch (error) {
165
- // Если ошибка уже является JTCSVError, перебросить её
166
- if (error instanceof JTCSVError) {
167
- throw error;
168
- }
169
-
170
- // Определить тип ошибки
171
- let enhancedError;
172
- const errorMessage = error.message || String(error);
173
-
174
- if (errorMessage.includes('validation') || errorMessage.includes('Validation')) {
175
- enhancedError = new ValidationError(errorMessage, { ...errorDetails, originalError: error });
176
- } else if (errorMessage.includes('security') || errorMessage.includes('Security')) {
177
- enhancedError = new SecurityError(errorMessage, { ...errorDetails, originalError: error });
178
- } else if (errorMessage.includes('parsing') || errorMessage.includes('Parsing')) {
179
- enhancedError = new ParsingError(errorMessage, null, { ...errorDetails, originalError: error });
180
- } else if (errorMessage.includes('limit') || errorMessage.includes('Limit')) {
181
- enhancedError = new LimitError(errorMessage, null, null, { ...errorDetails, originalError: error });
182
- } else if (errorMessage.includes('configuration') || errorMessage.includes('Configuration')) {
183
- enhancedError = new ConfigurationError(errorMessage, { ...errorDetails, originalError: error });
184
- } else if (errorMessage.includes('file') || errorMessage.includes('File')) {
185
- enhancedError = new FileSystemError(errorMessage, error, errorDetails);
186
- } else {
187
- enhancedError = new JTCSVError(errorMessage, errorCode, { ...errorDetails, originalError: error });
188
- }
189
-
190
- if (error.stack) {
191
- enhancedError.stack = error.stack;
192
- }
193
-
194
- throw enhancedError;
195
- }
196
- }
197
-
198
- // Экспорт для Node.js совместимости
199
- if (typeof module !== 'undefined' && module.exports) {
200
- module.exports = {
201
- JTCSVError,
202
- ValidationError,
203
- SecurityError,
204
- FileSystemError,
205
- ParsingError,
206
- LimitError,
207
- ConfigurationError,
208
- ERROR_CODES,
209
- safeExecute,
210
- safeExecuteAsync
211
- };
212
- }
@@ -1,92 +0,0 @@
1
- // Расширение плагинов для jtcsv
2
- // Подключает все плагины (express, fastify, nextjs и т.д.)
3
-
4
- const jtcsvPlugins = {
5
- // Плагины будут добавлены динамически при импорте
6
- // Это placeholder для будущей реализации
7
- };
8
-
9
- // Динамический импорт плагинов (ленивая загрузка)
10
- // Пути относительно корня проекта (плагины находятся в plugins/)
11
- async function loadExpressPlugin() {
12
- const mod = await import('../../../plugins/express-middleware/index.js');
13
- return mod.default || mod;
14
- }
15
-
16
- async function loadFastifyPlugin() {
17
- const mod = await import('../../../plugins/fastify-plugin/index.js');
18
- return mod.default || mod;
19
- }
20
-
21
- async function loadNextJsPlugin() {
22
- const mod = await import('../../../plugins/nextjs-api/index.js');
23
- return mod.default || mod;
24
- }
25
-
26
- async function loadNestJsPlugin() {
27
- const mod = await import('../../../plugins/nestjs/index.js');
28
- return mod.default || mod;
29
- }
30
-
31
- async function loadRemixPlugin() {
32
- const mod = await import('../../../plugins/remix/index.js');
33
- return mod.default || mod;
34
- }
35
-
36
- async function loadNuxtPlugin() {
37
- const mod = await import('../../../plugins/nuxt/index.js');
38
- return mod.default || mod;
39
- }
40
-
41
- async function loadSvelteKitPlugin() {
42
- const mod = await import('../../../plugins/sveltekit/index.js');
43
- return mod.default || mod;
44
- }
45
-
46
- async function loadHonoPlugin() {
47
- const mod = await import('../../../plugins/hono/index.js');
48
- return mod.default || mod;
49
- }
50
-
51
- async function loadTrpcPlugin() {
52
- const mod = await import('../../../plugins/trpc/index.js');
53
- return mod.default || mod;
54
- }
55
-
56
- Object.assign(jtcsvPlugins, {
57
- loadExpressPlugin,
58
- loadFastifyPlugin,
59
- loadNextJsPlugin,
60
- loadNestJsPlugin,
61
- loadRemixPlugin,
62
- loadNuxtPlugin,
63
- loadSvelteKitPlugin,
64
- loadHonoPlugin,
65
- loadTrpcPlugin
66
- });
67
-
68
- // Экспорт
69
- if (typeof module !== 'undefined' && module.exports) {
70
- module.exports = jtcsvPlugins;
71
- } else if (typeof define === 'function' && define.amd) {
72
- define([], () => jtcsvPlugins);
73
- } else if (typeof window !== 'undefined' && window.jtcsv) {
74
- // Расширяем глобальный jtcsv, если он существует
75
- if (!window.jtcsv.plugins) {
76
- window.jtcsv.plugins = {};
77
- }
78
- Object.assign(window.jtcsv.plugins, jtcsvPlugins);
79
- }
80
-
81
- export default jtcsvPlugins;
82
- export {
83
- loadExpressPlugin,
84
- loadFastifyPlugin,
85
- loadNextJsPlugin,
86
- loadNestJsPlugin,
87
- loadRemixPlugin,
88
- loadNuxtPlugin,
89
- loadSvelteKitPlugin,
90
- loadHonoPlugin,
91
- loadTrpcPlugin
92
- };
@@ -1,39 +0,0 @@
1
- // Расширение Web Workers для jtcsv
2
- // Дополнительный модуль для параллельной обработки больших CSV
3
-
4
- import { createWorkerPool, parseCSVWithWorker } from '../workers/worker-pool.js';
5
-
6
- async function createWorkerPoolLazy(options = {}) {
7
- const mod = await import('../workers/worker-pool.js');
8
- return mod.createWorkerPool(options);
9
- }
10
-
11
- async function parseCSVWithWorkerLazy(csvInput, options = {}, onProgress = null) {
12
- const mod = await import('../workers/worker-pool.js');
13
- return mod.parseCSVWithWorker(csvInput, options, onProgress);
14
- }
15
-
16
- const jtcsvWorkers = {
17
- createWorkerPool,
18
- parseCSVWithWorker,
19
- createWorkerPoolLazy,
20
- parseCSVWithWorkerLazy
21
- };
22
-
23
- // Экспорт
24
- if (typeof module !== 'undefined' && module.exports) {
25
- module.exports = jtcsvWorkers;
26
- } else if (typeof define === 'function' && define.amd) {
27
- define([], () => jtcsvWorkers);
28
- } else if (typeof window !== 'undefined' && window.jtcsv) {
29
- // Расширяем глобальный jtcsv, если он существует
30
- Object.assign(window.jtcsv, jtcsvWorkers);
31
- }
32
-
33
- export default jtcsvWorkers;
34
- export {
35
- createWorkerPool,
36
- parseCSVWithWorker,
37
- createWorkerPoolLazy,
38
- parseCSVWithWorkerLazy
39
- };
@@ -1,113 +0,0 @@
1
- // Браузерный entry point для jtcsv
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 { createWorkerPool, parseCSVWithWorker } from './workers/worker-pool.js';
15
- import {
16
- ValidationError,
17
- SecurityError,
18
- FileSystemError,
19
- ParsingError,
20
- LimitError,
21
- ConfigurationError,
22
- ERROR_CODES
23
- } from './errors-browser.js';
24
-
25
- async function createWorkerPoolLazy(options = {}) {
26
- const mod = await import('./workers/worker-pool.js');
27
- return mod.createWorkerPool(options);
28
- }
29
-
30
- async function parseCSVWithWorkerLazy(csvInput, options = {}, onProgress = null) {
31
- const mod = await import('./workers/worker-pool.js');
32
- return mod.parseCSVWithWorker(csvInput, options, onProgress);
33
- }
34
-
35
- // Основной экспорт
36
- const jtcsv = {
37
- // JSON to CSV функции
38
- jsonToCsv,
39
- preprocessData,
40
- downloadAsCsv,
41
- deepUnwrap,
42
-
43
- // CSV to JSON функции
44
- csvToJson,
45
- csvToJsonIterator,
46
- parseCsvFile,
47
- parseCsvFileStream,
48
- jsonToCsvStream,
49
- jsonToNdjsonStream,
50
- csvToJsonStream,
51
- autoDetectDelimiter,
52
-
53
- // Web Workers функции
54
- createWorkerPool,
55
- parseCSVWithWorker,
56
- createWorkerPoolLazy,
57
- parseCSVWithWorkerLazy,
58
-
59
- // Error classes
60
- ValidationError,
61
- SecurityError,
62
- FileSystemError,
63
- ParsingError,
64
- LimitError,
65
- ConfigurationError,
66
- ERROR_CODES,
67
-
68
- // Удобные алиасы
69
- parse: csvToJson,
70
- unparse: jsonToCsv,
71
-
72
- // Версия
73
- version: '2.0.0-browser'
74
- };
75
-
76
- // Экспорт для разных сред
77
- if (typeof module !== 'undefined' && module.exports) {
78
- // Node.js CommonJS
79
- module.exports = jtcsv;
80
- } else if (typeof define === 'function' && define.amd) {
81
- // AMD
82
- define([], () => jtcsv);
83
- } else if (typeof window !== 'undefined') {
84
- // Браузер (глобальная переменная)
85
- window.jtcsv = jtcsv;
86
- }
87
-
88
- export default jtcsv;
89
- export {
90
- jsonToCsv,
91
- preprocessData,
92
- downloadAsCsv,
93
- deepUnwrap,
94
- csvToJson,
95
- csvToJsonIterator,
96
- parseCsvFile,
97
- parseCsvFileStream,
98
- jsonToCsvStream,
99
- jsonToNdjsonStream,
100
- csvToJsonStream,
101
- autoDetectDelimiter,
102
- createWorkerPool,
103
- parseCSVWithWorker,
104
- createWorkerPoolLazy,
105
- parseCSVWithWorkerLazy,
106
- ValidationError,
107
- SecurityError,
108
- FileSystemError,
109
- ParsingError,
110
- LimitError,
111
- ConfigurationError,
112
- ERROR_CODES
113
- };