jtcsv 2.2.8 → 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.
- package/README.md +204 -115
- package/bin/jtcsv.ts +2612 -0
- package/browser.d.ts +142 -0
- package/dist/benchmark.js +446 -0
- package/dist/benchmark.js.map +1 -0
- package/dist/bin/jtcsv.js +1940 -0
- package/dist/bin/jtcsv.js.map +1 -0
- package/dist/csv-to-json.js +1262 -0
- package/dist/csv-to-json.js.map +1 -0
- package/dist/errors.js +291 -0
- package/dist/errors.js.map +1 -0
- package/dist/eslint.config.js +147 -0
- package/dist/eslint.config.js.map +1 -0
- package/dist/index-core.js +95 -0
- package/dist/index-core.js.map +1 -0
- package/dist/index.js +93 -0
- package/dist/index.js.map +1 -0
- package/dist/json-save.js +229 -0
- package/dist/json-save.js.map +1 -0
- package/dist/json-to-csv.js +576 -0
- package/dist/json-to-csv.js.map +1 -0
- package/dist/jtcsv-core.cjs.js +1736 -0
- package/dist/jtcsv-core.cjs.js.map +1 -0
- package/dist/jtcsv-core.esm.js +1708 -0
- package/dist/jtcsv-core.esm.js.map +1 -0
- package/dist/jtcsv-core.umd.js +1742 -0
- package/dist/jtcsv-core.umd.js.map +1 -0
- package/dist/jtcsv-full.cjs.js +2241 -0
- package/dist/jtcsv-full.cjs.js.map +1 -0
- package/dist/jtcsv-full.esm.js +2209 -0
- package/dist/jtcsv-full.esm.js.map +1 -0
- package/dist/jtcsv-full.umd.js +2247 -0
- package/dist/jtcsv-full.umd.js.map +1 -0
- package/dist/jtcsv-workers.esm.js +768 -0
- package/dist/jtcsv-workers.esm.js.map +1 -0
- package/dist/jtcsv-workers.umd.js +782 -0
- package/dist/jtcsv-workers.umd.js.map +1 -0
- package/dist/jtcsv.cjs.js +1996 -2048
- package/dist/jtcsv.cjs.js.map +1 -1
- package/dist/jtcsv.esm.js +1992 -2048
- package/dist/jtcsv.esm.js.map +1 -1
- package/dist/jtcsv.umd.js +2157 -2209
- package/dist/jtcsv.umd.js.map +1 -1
- package/dist/plugins/express-middleware/index.js +350 -0
- package/dist/plugins/express-middleware/index.js.map +1 -0
- package/dist/plugins/fastify-plugin/index.js +315 -0
- package/dist/plugins/fastify-plugin/index.js.map +1 -0
- package/dist/plugins/hono/index.js +111 -0
- package/dist/plugins/hono/index.js.map +1 -0
- package/dist/plugins/nestjs/index.js +112 -0
- package/dist/plugins/nestjs/index.js.map +1 -0
- package/dist/plugins/nuxt/index.js +53 -0
- package/dist/plugins/nuxt/index.js.map +1 -0
- package/dist/plugins/remix/index.js +133 -0
- package/dist/plugins/remix/index.js.map +1 -0
- package/dist/plugins/sveltekit/index.js +155 -0
- package/dist/plugins/sveltekit/index.js.map +1 -0
- package/dist/plugins/trpc/index.js +136 -0
- package/dist/plugins/trpc/index.js.map +1 -0
- package/dist/run-demo.js +49 -0
- package/dist/run-demo.js.map +1 -0
- package/dist/src/browser/browser-functions.js +193 -0
- package/dist/src/browser/browser-functions.js.map +1 -0
- package/dist/src/browser/core.js +123 -0
- package/dist/src/browser/core.js.map +1 -0
- package/dist/src/browser/csv-to-json-browser.js +353 -0
- package/dist/src/browser/csv-to-json-browser.js.map +1 -0
- package/dist/src/browser/errors-browser.js +219 -0
- package/dist/src/browser/errors-browser.js.map +1 -0
- package/dist/src/browser/extensions/plugins.js +106 -0
- package/dist/src/browser/extensions/plugins.js.map +1 -0
- package/dist/src/browser/extensions/workers.js +66 -0
- package/dist/src/browser/extensions/workers.js.map +1 -0
- package/dist/src/browser/index.js +140 -0
- package/dist/src/browser/index.js.map +1 -0
- package/dist/src/browser/json-to-csv-browser.js +225 -0
- package/dist/src/browser/json-to-csv-browser.js.map +1 -0
- package/dist/src/browser/streams.js +340 -0
- package/dist/src/browser/streams.js.map +1 -0
- package/dist/src/browser/workers/csv-parser.worker.js +264 -0
- package/dist/src/browser/workers/csv-parser.worker.js.map +1 -0
- package/dist/src/browser/workers/worker-pool.js +338 -0
- package/dist/src/browser/workers/worker-pool.js.map +1 -0
- package/dist/src/core/delimiter-cache.js +196 -0
- package/dist/src/core/delimiter-cache.js.map +1 -0
- package/dist/src/core/node-optimizations.js +279 -0
- package/dist/src/core/node-optimizations.js.map +1 -0
- package/dist/src/core/plugin-system.js +399 -0
- package/dist/src/core/plugin-system.js.map +1 -0
- package/dist/src/core/transform-hooks.js +348 -0
- package/dist/src/core/transform-hooks.js.map +1 -0
- package/dist/src/engines/fast-path-engine-new.js +262 -0
- package/dist/src/engines/fast-path-engine-new.js.map +1 -0
- package/dist/src/engines/fast-path-engine.js +671 -0
- package/dist/src/engines/fast-path-engine.js.map +1 -0
- package/dist/src/errors.js +18 -0
- package/dist/src/errors.js.map +1 -0
- package/dist/src/formats/ndjson-parser.js +332 -0
- package/dist/src/formats/ndjson-parser.js.map +1 -0
- package/dist/src/formats/tsv-parser.js +230 -0
- package/dist/src/formats/tsv-parser.js.map +1 -0
- package/dist/src/index-with-plugins.js +259 -0
- package/dist/src/index-with-plugins.js.map +1 -0
- package/dist/src/types/index.js +3 -0
- package/dist/src/types/index.js.map +1 -0
- package/dist/src/utils/bom-utils.js +267 -0
- package/dist/src/utils/bom-utils.js.map +1 -0
- package/dist/src/utils/encoding-support.js +77 -0
- package/dist/src/utils/encoding-support.js.map +1 -0
- package/dist/src/utils/schema-validator.js +609 -0
- package/dist/src/utils/schema-validator.js.map +1 -0
- package/dist/src/utils/transform-loader.js +281 -0
- package/dist/src/utils/transform-loader.js.map +1 -0
- package/dist/src/utils/validators.js +40 -0
- package/dist/src/utils/validators.js.map +1 -0
- package/dist/src/utils/zod-adapter.js +144 -0
- package/dist/src/utils/zod-adapter.js.map +1 -0
- package/dist/src/web-server/index.js +648 -0
- package/dist/src/web-server/index.js.map +1 -0
- package/dist/src/workers/csv-multithreaded.js +211 -0
- package/dist/src/workers/csv-multithreaded.js.map +1 -0
- package/dist/src/workers/csv-parser.worker.js +179 -0
- package/dist/src/workers/csv-parser.worker.js.map +1 -0
- package/dist/src/workers/worker-pool.js +228 -0
- package/dist/src/workers/worker-pool.js.map +1 -0
- package/dist/stream-csv-to-json.js +665 -0
- package/dist/stream-csv-to-json.js.map +1 -0
- package/dist/stream-json-to-csv.js +389 -0
- package/dist/stream-json-to-csv.js.map +1 -0
- package/examples/advanced/conditional-transformations.ts +446 -0
- package/examples/advanced/csv-parser.worker.ts +89 -0
- package/examples/advanced/nested-objects-example.ts +306 -0
- package/examples/advanced/performance-optimization.ts +504 -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 +290 -0
- package/examples/{cli-batch-processing.js → cli-batch-processing.ts} +38 -38
- package/examples/{cli-tool.js → cli-tool.ts} +5 -8
- package/examples/{error-handling.js → error-handling.ts} +356 -324
- package/examples/{express-api.js → express-api.ts} +161 -164
- package/examples/{large-dataset-example.js → large-dataset-example.ts} +201 -182
- package/examples/{ndjson-processing.js → ndjson-processing.ts} +456 -434
- package/examples/{plugin-excel-exporter.js → plugin-excel-exporter.ts} +6 -7
- package/examples/react-integration.tsx +637 -0
- package/examples/{schema-validation.js → schema-validation.ts} +2 -2
- package/examples/simple-usage.ts +194 -0
- package/examples/{streaming-example.js → streaming-example.ts} +12 -12
- package/index.d.ts +187 -18
- package/package.json +75 -81
- package/plugins.d.ts +37 -0
- package/schema.d.ts +103 -0
- package/src/browser/browser-functions.ts +402 -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.ts +494 -0
- package/src/browser/{errors-browser.js → errors-browser.ts} +305 -197
- package/src/browser/extensions/plugins.ts +93 -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.ts +338 -0
- package/src/browser/streams.ts +403 -0
- package/src/browser/workers/{csv-parser.worker.js → csv-parser.worker.ts} +3 -3
- package/src/browser/workers/{worker-pool.js → worker-pool.ts} +51 -30
- package/src/core/delimiter-cache.ts +320 -0
- package/src/core/{node-optimizations.js → node-optimizations.ts} +448 -407
- package/src/core/plugin-system.ts +588 -0
- package/src/core/transform-hooks.ts +566 -0
- package/src/engines/{fast-path-engine-new.js → fast-path-engine-new.ts} +11 -2
- package/src/engines/{fast-path-engine.js → fast-path-engine.ts} +79 -53
- package/src/errors.ts +1 -0
- package/src/formats/{ndjson-parser.js → ndjson-parser.ts} +24 -16
- package/src/formats/{tsv-parser.js → tsv-parser.ts} +18 -17
- package/src/{index-with-plugins.js → index-with-plugins.ts} +381 -357
- package/src/types/index.ts +275 -0
- package/src/utils/bom-utils.ts +373 -0
- package/src/utils/encoding-support.ts +155 -0
- package/src/utils/{schema-validator.js → schema-validator.ts} +814 -589
- package/src/utils/transform-loader.ts +389 -0
- package/src/utils/validators.ts +35 -0
- package/src/utils/zod-adapter.ts +280 -0
- package/src/web-server/{index.js → index.ts} +19 -19
- 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/bin/jtcsv.js +0 -2462
- package/csv-to-json.js +0 -688
- package/errors.js +0 -208
- package/examples/simple-usage.js +0 -282
- package/index.js +0 -68
- package/json-save.js +0 -254
- package/json-to-csv.js +0 -526
- package/plugins/README.md +0 -91
- package/plugins/express-middleware/README.md +0 -64
- package/plugins/express-middleware/example.js +0 -136
- package/plugins/express-middleware/index.d.ts +0 -114
- package/plugins/express-middleware/index.js +0 -360
- package/plugins/express-middleware/package.json +0 -52
- package/plugins/fastify-plugin/index.js +0 -406
- package/plugins/fastify-plugin/package.json +0 -55
- package/plugins/hono/README.md +0 -28
- package/plugins/hono/index.d.ts +0 -12
- package/plugins/hono/index.js +0 -36
- package/plugins/hono/package.json +0 -35
- package/plugins/nestjs/README.md +0 -35
- package/plugins/nestjs/index.d.ts +0 -25
- package/plugins/nestjs/index.js +0 -77
- package/plugins/nestjs/package.json +0 -37
- package/plugins/nextjs-api/README.md +0 -57
- package/plugins/nextjs-api/examples/ConverterComponent.jsx +0 -386
- package/plugins/nextjs-api/examples/api-convert.js +0 -69
- package/plugins/nextjs-api/index.js +0 -387
- package/plugins/nextjs-api/package.json +0 -63
- package/plugins/nextjs-api/route.js +0 -371
- package/plugins/nuxt/README.md +0 -24
- package/plugins/nuxt/index.js +0 -21
- package/plugins/nuxt/package.json +0 -35
- package/plugins/nuxt/runtime/composables/useJtcsv.js +0 -6
- package/plugins/nuxt/runtime/plugin.js +0 -6
- package/plugins/remix/README.md +0 -26
- package/plugins/remix/index.d.ts +0 -16
- package/plugins/remix/index.js +0 -62
- package/plugins/remix/package.json +0 -35
- package/plugins/sveltekit/README.md +0 -28
- package/plugins/sveltekit/index.d.ts +0 -17
- package/plugins/sveltekit/index.js +0 -54
- package/plugins/sveltekit/package.json +0 -33
- package/plugins/trpc/README.md +0 -25
- package/plugins/trpc/index.d.ts +0 -7
- package/plugins/trpc/index.js +0 -32
- package/plugins/trpc/package.json +0 -34
- package/src/browser/browser-functions.js +0 -219
- package/src/browser/csv-to-json-browser.js +0 -700
- package/src/browser/index.js +0 -113
- package/src/browser/json-to-csv-browser.js +0 -309
- package/src/browser/streams.js +0 -393
- package/src/core/delimiter-cache.js +0 -186
- package/src/core/plugin-system.js +0 -476
- package/src/core/transform-hooks.js +0 -350
- package/src/errors.js +0 -26
- package/src/utils/transform-loader.js +0 -205
- package/stream-csv-to-json.js +0 -542
- package/stream-json-to-csv.js +0 -464
- /package/examples/{web-workers-advanced.js → web-workers-advanced.ts} +0 -0
package/dist/jtcsv.umd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jtcsv.umd.js","sources":["../src/browser/errors-browser.js","../src/browser/json-to-csv-browser.js","../src/browser/csv-to-json-browser.js","../src/browser/streams.js","../src/browser/browser-functions.js","../src/browser/workers/worker-pool.js","../src/browser/index.js"],"sourcesContent":["// Система ошибок для браузерной версии jtcsv\n// Адаптирована для работы без Node.js специфичных API\n\n/**\n * Базовый класс ошибки jtcsv\n */\nexport class JTCSVError extends Error {\n constructor(message, code = 'JTCSV_ERROR', details = {}) {\n super(message);\n this.name = 'JTCSVError';\n this.code = code;\n this.details = details;\n \n // Сохранение stack trace\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, JTCSVError);\n }\n }\n}\n\n/**\n * Ошибка валидации\n */\nexport class ValidationError extends JTCSVError {\n constructor(message, details = {}) {\n super(message, 'VALIDATION_ERROR', details);\n this.name = 'ValidationError';\n }\n}\n\n/**\n * Ошибка безопасности\n */\nexport class SecurityError extends JTCSVError {\n constructor(message, details = {}) {\n super(message, 'SECURITY_ERROR', details);\n this.name = 'SecurityError';\n }\n}\n\n/**\n * Ошибка файловой системы (адаптирована для браузера)\n */\nexport class FileSystemError extends JTCSVError {\n constructor(message, originalError = null, details = {}) {\n super(message, 'FILE_SYSTEM_ERROR', { ...details, originalError });\n this.name = 'FileSystemError';\n \n if (originalError && originalError.code) {\n this.code = originalError.code;\n }\n }\n}\n\n/**\n * Ошибка парсинга\n */\nexport class ParsingError extends JTCSVError {\n constructor(message, lineNumber = null, details = {}) {\n super(message, 'PARSING_ERROR', { ...details, lineNumber });\n this.name = 'ParsingError';\n this.lineNumber = lineNumber;\n }\n}\n\n/**\n * Ошибка превышения лимита\n */\nexport class LimitError extends JTCSVError {\n constructor(message, limit, actual, details = {}) {\n super(message, 'LIMIT_ERROR', { ...details, limit, actual });\n this.name = 'LimitError';\n this.limit = limit;\n this.actual = actual;\n }\n}\n\n/**\n * Ошибка конфигурации\n */\nexport class ConfigurationError extends JTCSVError {\n constructor(message, details = {}) {\n super(message, 'CONFIGURATION_ERROR', details);\n this.name = 'ConfigurationError';\n }\n}\n\nexport const ERROR_CODES = {\n JTCSV_ERROR: 'JTCSV_ERROR',\n VALIDATION_ERROR: 'VALIDATION_ERROR',\n SECURITY_ERROR: 'SECURITY_ERROR',\n FILE_SYSTEM_ERROR: 'FILE_SYSTEM_ERROR',\n PARSING_ERROR: 'PARSING_ERROR',\n LIMIT_ERROR: 'LIMIT_ERROR',\n CONFIGURATION_ERROR: 'CONFIGURATION_ERROR',\n INVALID_INPUT: 'INVALID_INPUT',\n SECURITY_VIOLATION: 'SECURITY_VIOLATION',\n FILE_NOT_FOUND: 'FILE_NOT_FOUND',\n PARSE_FAILED: 'PARSE_FAILED',\n SIZE_LIMIT: 'SIZE_LIMIT',\n INVALID_CONFIG: 'INVALID_CONFIG',\n UNKNOWN_ERROR: 'UNKNOWN_ERROR'\n};\n\n/**\n * Безопасное выполнение функции с обработкой ошибок\n * \n * @param {Function} fn - Функция для выполнения\n * @param {string} errorCode - Код ошибки по умолчанию\n * @param {Object} errorDetails - Детали ошибки\n * @returns {*} Результат выполнения функции\n */\nexport function safeExecute(fn, errorCode = 'UNKNOWN_ERROR', errorDetails = {}) {\n try {\n if (typeof fn === 'function') {\n return fn();\n }\n throw new ValidationError('Function expected');\n } catch (error) {\n // Если ошибка уже является JTCSVError, перебросить её\n if (error instanceof JTCSVError) {\n throw error;\n }\n \n // Определить тип ошибки на основе сообщения или кода\n let enhancedError;\n const errorMessage = error.message || String(error);\n \n if (errorMessage.includes('validation') || errorMessage.includes('Validation')) {\n enhancedError = new ValidationError(errorMessage, { ...errorDetails, originalError: error });\n } else if (errorMessage.includes('security') || errorMessage.includes('Security')) {\n enhancedError = new SecurityError(errorMessage, { ...errorDetails, originalError: error });\n } else if (errorMessage.includes('parsing') || errorMessage.includes('Parsing')) {\n enhancedError = new ParsingError(errorMessage, null, { ...errorDetails, originalError: error });\n } else if (errorMessage.includes('limit') || errorMessage.includes('Limit')) {\n enhancedError = new LimitError(errorMessage, null, null, { ...errorDetails, originalError: error });\n } else if (errorMessage.includes('configuration') || errorMessage.includes('Configuration')) {\n enhancedError = new ConfigurationError(errorMessage, { ...errorDetails, originalError: error });\n } else if (errorMessage.includes('file') || errorMessage.includes('File')) {\n enhancedError = new FileSystemError(errorMessage, error, errorDetails);\n } else {\n // Общая ошибка\n enhancedError = new JTCSVError(errorMessage, errorCode, { ...errorDetails, originalError: error });\n }\n \n // Сохранить оригинальный stack trace если возможно\n if (error.stack) {\n enhancedError.stack = error.stack;\n }\n \n throw enhancedError;\n }\n}\n\n/**\n * Асинхронная версия safeExecute\n */\nexport async function safeExecuteAsync(fn, errorCode = 'UNKNOWN_ERROR', errorDetails = {}) {\n try {\n if (typeof fn === 'function') {\n return await fn();\n }\n throw new ValidationError('Function expected');\n } catch (error) {\n // Если ошибка уже является JTCSVError, перебросить её\n if (error instanceof JTCSVError) {\n throw error;\n }\n \n // Определить тип ошибки\n let enhancedError;\n const errorMessage = error.message || String(error);\n \n if (errorMessage.includes('validation') || errorMessage.includes('Validation')) {\n enhancedError = new ValidationError(errorMessage, { ...errorDetails, originalError: error });\n } else if (errorMessage.includes('security') || errorMessage.includes('Security')) {\n enhancedError = new SecurityError(errorMessage, { ...errorDetails, originalError: error });\n } else if (errorMessage.includes('parsing') || errorMessage.includes('Parsing')) {\n enhancedError = new ParsingError(errorMessage, null, { ...errorDetails, originalError: error });\n } else if (errorMessage.includes('limit') || errorMessage.includes('Limit')) {\n enhancedError = new LimitError(errorMessage, null, null, { ...errorDetails, originalError: error });\n } else if (errorMessage.includes('configuration') || errorMessage.includes('Configuration')) {\n enhancedError = new ConfigurationError(errorMessage, { ...errorDetails, originalError: error });\n } else if (errorMessage.includes('file') || errorMessage.includes('File')) {\n enhancedError = new FileSystemError(errorMessage, error, errorDetails);\n } else {\n enhancedError = new JTCSVError(errorMessage, errorCode, { ...errorDetails, originalError: error });\n }\n \n if (error.stack) {\n enhancedError.stack = error.stack;\n }\n \n throw enhancedError;\n }\n}\n\n// Экспорт для Node.js совместимости\nif (typeof module !== 'undefined' && module.exports) {\n module.exports = {\n JTCSVError,\n ValidationError,\n SecurityError,\n FileSystemError,\n ParsingError,\n LimitError,\n ConfigurationError,\n ERROR_CODES,\n safeExecute,\n safeExecuteAsync\n };\n}\n","// Браузерная версия JSON to CSV конвертера\n// Адаптирована для работы в браузере без Node.js API\n\nimport {\n ValidationError,\n ConfigurationError,\n LimitError,\n safeExecute\n} from './errors-browser.js';\n\n/**\n * Валидация входных данных и опций\n * @private\n */\nfunction validateInput(data, options) {\n // Validate data\n if (!Array.isArray(data)) {\n throw new ValidationError('Input data must be an array');\n }\n \n // Validate options\n if (options && typeof options !== 'object') {\n throw new ConfigurationError('Options must be an object');\n }\n \n // Validate delimiter\n if (options?.delimiter && typeof options.delimiter !== 'string') {\n throw new ConfigurationError('Delimiter must be a string');\n }\n \n if (options?.delimiter && options.delimiter.length !== 1) {\n throw new ConfigurationError('Delimiter must be a single character');\n }\n \n // Validate renameMap\n if (options?.renameMap && typeof options.renameMap !== 'object') {\n throw new ConfigurationError('renameMap must be an object');\n }\n \n // Validate maxRecords\n if (options && options.maxRecords !== undefined) {\n if (typeof options.maxRecords !== 'number' || options.maxRecords <= 0) {\n throw new ConfigurationError('maxRecords must be a positive number');\n }\n }\n \n // Validate preventCsvInjection\n if (options?.preventCsvInjection !== undefined && typeof options.preventCsvInjection !== 'boolean') {\n throw new ConfigurationError('preventCsvInjection must be a boolean');\n }\n \n // Validate rfc4180Compliant\n if (options?.rfc4180Compliant !== undefined && typeof options.rfc4180Compliant !== 'boolean') {\n throw new ConfigurationError('rfc4180Compliant must be a boolean');\n }\n \n return true;\n}\n\n/**\n * Конвертирует JSON данные в CSV формат\n * \n * @param {Array<Object>} data - Массив объектов для конвертации в CSV\n * @param {Object} [options] - Опции конфигурации\n * @param {string} [options.delimiter=';'] - CSV разделитель\n * @param {boolean} [options.includeHeaders=true] - Включать ли заголовки\n * @param {Object} [options.renameMap={}] - Маппинг переименования заголовков\n * @param {Object} [options.template={}] - Шаблон для порядка колонок\n * @param {number} [options.maxRecords] - Максимальное количество записей\n * @param {boolean} [options.preventCsvInjection=true] - Защита от CSV инъекций\n * @param {boolean} [options.rfc4180Compliant=true] - Соответствие RFC 4180\n * @returns {string} CSV строка\n */\nexport function jsonToCsv(data, options = {}) {\n return safeExecute(() => {\n // Валидация входных данных\n validateInput(data, options);\n \n const opts = options && typeof options === 'object' ? options : {};\n \n const {\n delimiter = ';',\n includeHeaders = true,\n renameMap = {},\n template = {},\n maxRecords,\n preventCsvInjection = true,\n rfc4180Compliant = true\n } = opts;\n\n // Обработка пустых данных\n if (data.length === 0) {\n return '';\n }\n\n // Предупреждение для больших наборов данных\n if (data.length > 1000000 && !maxRecords && process.env.NODE_ENV !== 'production') {\n console.warn(\n '⚠️ Warning: Processing >1M records in memory may be slow.\\n' +\n '💡 Consider processing data in batches or using Web Workers for large files.\\n' +\n '📊 Current size: ' + data.length.toLocaleString() + ' records'\n );\n }\n\n // Применение ограничения по количеству записей\n if (maxRecords && data.length > maxRecords) {\n throw new LimitError(\n `Data size exceeds maximum limit of ${maxRecords} records`,\n maxRecords,\n data.length\n );\n }\n\n // Получение всех уникальных ключей\n const allKeys = new Set();\n data.forEach((item) => {\n if (!item || typeof item !== 'object') {\n return;\n }\n Object.keys(item).forEach(key => allKeys.add(key));\n });\n \n const originalKeys = Array.from(allKeys);\n \n // Применение rename map для создания заголовков\n const headers = originalKeys.map(key => renameMap[key] || key);\n \n // Создание обратного маппинга\n const reverseRenameMap = {};\n originalKeys.forEach((key, index) => {\n reverseRenameMap[headers[index]] = key;\n });\n\n // Применение порядка из шаблона\n let finalHeaders = headers;\n if (Object.keys(template).length > 0) {\n const templateHeaders = Object.keys(template).map(key => renameMap[key] || key);\n const extraHeaders = headers.filter(h => !templateHeaders.includes(h));\n finalHeaders = [...templateHeaders, ...extraHeaders];\n }\n\n /**\n * Экранирование значения для CSV с защитой от инъекций\n * @private\n */\n const escapeValue = (value) => {\n if (value === null || value === undefined || value === '') {\n return '';\n }\n \n const stringValue = String(value);\n \n // Защита от CSV инъекций\n let escapedValue = stringValue;\n if (preventCsvInjection && /^[=+\\-@]/.test(stringValue)) {\n escapedValue = \"'\" + stringValue;\n }\n \n // Соответствие RFC 4180\n const needsQuoting = rfc4180Compliant \n ? (escapedValue.includes(delimiter) ||\n escapedValue.includes('\"') ||\n escapedValue.includes('\\n') ||\n escapedValue.includes('\\r'))\n : (escapedValue.includes(delimiter) ||\n escapedValue.includes('\"') ||\n escapedValue.includes('\\n') ||\n escapedValue.includes('\\r'));\n \n if (needsQuoting) {\n return `\"${escapedValue.replace(/\"/g, '\"\"')}\"`;\n }\n \n return escapedValue;\n };\n\n // Построение CSV строк\n const rows = [];\n \n // Добавление заголовков\n if (includeHeaders && finalHeaders.length > 0) {\n rows.push(finalHeaders.join(delimiter));\n }\n \n // Добавление данных\n for (const item of data) {\n if (!item || typeof item !== 'object') {\n continue;\n }\n \n const row = finalHeaders.map(header => {\n const originalKey = reverseRenameMap[header] || header;\n const value = item[originalKey];\n return escapeValue(value);\n }).join(delimiter);\n \n rows.push(row);\n }\n \n // Разделители строк согласно RFC 4180\n const lineEnding = rfc4180Compliant ? '\\r\\n' : '\\n';\n return rows.join(lineEnding);\n }, 'PARSE_FAILED', { function: 'jsonToCsv' });\n}\n\n/**\n * Глубокое разворачивание вложенных объектов и массивов\n * \n * @param {*} value - Значение для разворачивания\n * @param {number} [depth=0] - Текущая глубина рекурсии\n * @param {number} [maxDepth=5] - Максимальная глубина рекурсии\n * @param {Set} [visited=new Set()] - Посещенные объекты для обнаружения циклических ссылок\n * @returns {string} Развернутое строковое значение\n */\nexport function deepUnwrap(value, depth = 0, maxDepth = 5, visited = new Set()) {\n // Проверка глубины\n if (depth >= maxDepth) {\n return '[Too Deep]';\n }\n if (value === null || value === undefined) {\n return '';\n }\n \n // Обработка циклических ссылок\n if (typeof value === 'object') {\n if (visited.has(value)) {\n return '[Circular Reference]';\n }\n visited.add(value);\n }\n \n // Обработка массивов\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return '';\n }\n const unwrappedItems = value.map(item => \n deepUnwrap(item, depth + 1, maxDepth, visited)\n ).filter(item => item !== '');\n return unwrappedItems.join(', ');\n }\n \n // Обработка объектов\n if (typeof value === 'object') {\n const keys = Object.keys(value);\n if (keys.length === 0) {\n return '';\n }\n \n if (depth + 1 >= maxDepth) {\n return '[Too Deep]';\n }\n \n // Сериализация сложных объектов\n try {\n return JSON.stringify(value);\n } catch (error) {\n if (error.message.includes('circular') || error.message.includes('Converting circular')) {\n return '[Circular Reference]';\n }\n return '[Unstringifiable Object]';\n }\n }\n \n // Примитивные значения\n return String(value);\n}\n\n/**\n * Предобработка JSON данных путем глубокого разворачивания вложенных структур\n * \n * @param {Array<Object>} data - Массив объектов для предобработки\n * @returns {Array<Object>} Предобработанные данные с развернутыми значениями\n */\nexport function preprocessData(data) {\n if (!Array.isArray(data)) {\n return [];\n }\n \n return data.map(item => {\n if (!item || typeof item !== 'object') {\n return {};\n }\n \n const processed = {};\n \n for (const key in item) {\n if (Object.prototype.hasOwnProperty.call(item, key)) {\n const value = item[key];\n if (value && typeof value === 'object') {\n processed[key] = deepUnwrap(value);\n } else {\n processed[key] = value;\n }\n }\n }\n \n return processed;\n });\n}\n\n// Экспорт для Node.js совместимости\nif (typeof module !== 'undefined' && module.exports) {\n module.exports = {\n jsonToCsv,\n preprocessData,\n deepUnwrap\n };\n}\r\n","// Браузерная версия CSV to JSON конвертера\n// Адаптирована для работы в браузере без Node.js API\n\nimport {\n ValidationError,\n ParsingError,\n LimitError,\n ConfigurationError,\n safeExecute\n} from './errors-browser.js';\n\n/**\n * Валидация опций парсинга\n * @private\n */\nfunction validateCsvOptions(options) {\n // Validate options\n if (options && typeof options !== 'object') {\n throw new ConfigurationError('Options must be an object');\n }\n \n // Validate delimiter\n if (options?.delimiter && typeof options.delimiter !== 'string') {\n throw new ConfigurationError('Delimiter must be a string');\n }\n \n if (options?.delimiter && options.delimiter.length !== 1) {\n throw new ConfigurationError('Delimiter must be a single character');\n }\n \n // Validate autoDetect\n if (options?.autoDetect !== undefined && typeof options.autoDetect !== 'boolean') {\n throw new ConfigurationError('autoDetect must be a boolean');\n }\n \n // Validate candidates\n if (options?.candidates && !Array.isArray(options.candidates)) {\n throw new ConfigurationError('candidates must be an array');\n }\n \n // Validate maxRows\n if (options?.maxRows !== undefined && (typeof options.maxRows !== 'number' || options.maxRows <= 0)) {\n throw new ConfigurationError('maxRows must be a positive number');\n }\n\n if (options?.warnExtraFields !== undefined && typeof options.warnExtraFields !== 'boolean') {\n throw new ConfigurationError('warnExtraFields must be a boolean');\n }\n \n return true;\n}\n\n/**\n * Валидация CSV ввода и опций\n * @private\n */\nfunction validateCsvInput(csv, options) {\n // Validate CSV input\n if (typeof csv !== 'string') {\n throw new ValidationError('Input must be a CSV string');\n }\n \n return validateCsvOptions(options);\n}\n\n/**\n * Парсинг одной строки CSV с правильным экранированием\n * @private\n */\nfunction parseCsvLine(line, lineNumber, delimiter) {\n const fields = [];\n let currentField = '';\n let insideQuotes = false;\n let escapeNext = false;\n\n for (let i = 0; i < line.length; i++) {\n const char = line[i];\n \n if (escapeNext) {\n currentField += char;\n escapeNext = false;\n continue;\n }\n\n if (char === '\\\\') {\n if (i + 1 === line.length) {\n // Обратный слеш в конце строки\n currentField += char;\n } else if (line[i + 1] === '\\\\') {\n // Двойной обратный слеш\n currentField += char;\n i++; // Пропустить следующий слеш\n } else {\n // Экранирование следующего символа\n escapeNext = true;\n }\n continue;\n }\n\n if (char === '\"') {\n if (insideQuotes) {\n if (i + 1 < line.length && line[i + 1] === '\"') {\n // Экранированная кавычка внутри кавычек\n currentField += '\"';\n i++; // Пропустить следующую кавычку\n \n // Проверка конца поля\n let isEndOfField = false;\n let j = i + 1;\n while (j < line.length && (line[j] === ' ' || line[j] === '\\t')) {\n j++;\n }\n if (j === line.length || line[j] === delimiter) {\n isEndOfField = true;\n }\n \n if (isEndOfField) {\n insideQuotes = false;\n }\n } else {\n // Проверка конца поля\n let isEndOfField = false;\n let j = i + 1;\n while (j < line.length && (line[j] === ' ' || line[j] === '\\t')) {\n j++;\n }\n if (j === line.length || line[j] === delimiter) {\n isEndOfField = true;\n }\n \n if (isEndOfField) {\n insideQuotes = false;\n } else {\n currentField += '\"';\n }\n }\n } else {\n // Начало поля в кавычках\n insideQuotes = true;\n }\n continue;\n }\n\n if (!insideQuotes && char === delimiter) {\n // Конец поля\n fields.push(currentField);\n currentField = '';\n continue;\n }\n\n currentField += char;\n }\n\n // Обработка незавершенного экранирования\n if (escapeNext) {\n currentField += '\\\\';\n }\n\n // Добавление последнего поля\n fields.push(currentField);\n\n // Проверка незакрытых кавычек\n if (insideQuotes) {\n throw new ParsingError('Unclosed quotes in CSV', lineNumber);\n }\n\n // Валидация количества полей\n if (fields.length === 0) {\n throw new ParsingError('No fields found', lineNumber);\n }\n\n return fields;\n}\n\n/**\n * Парсинг значения на основе опций\n * @private\n */\nfunction parseCsvValue(value, options) {\n const { trim = true, parseNumbers = false, parseBooleans = false } = options;\n \n let result = value;\n \n if (trim) {\n result = result.trim();\n }\n \n // Удаление защиты формул Excel\n if (result.startsWith(\"'\")) {\n result = result.substring(1);\n }\n \n // Парсинг чисел\n if (parseNumbers && /^-?\\d+(\\.\\d+)?$/.test(result)) {\n const num = parseFloat(result);\n if (!isNaN(num)) {\n return num;\n }\n }\n \n // Парсинг булевых значений\n if (parseBooleans) {\n const lowerValue = result.toLowerCase();\n if (lowerValue === 'true') {\n return true; \n }\n if (lowerValue === 'false') {\n return false; \n }\n }\n \n // Пустые строки как null\n if (result === '') {\n return null;\n }\n \n return result;\n}\n\nfunction isSimpleCsv(csv) {\n return csv.indexOf('\"') === -1 && csv.indexOf('\\\\') === -1;\n}\n\nfunction parseSimpleCsv(csv, delimiter, options) {\n const {\n hasHeaders = true,\n renameMap = {},\n trim = true,\n parseNumbers = false,\n parseBooleans = false,\n maxRows\n } = options;\n\n const result = [];\n let headers = null;\n let fieldStart = 0;\n let currentRow = [];\n let rowHasData = false;\n let rowCount = 0;\n\n const finalizeRow = (fields) => {\n if (fields.length === 1 && fields[0].trim() === '') {\n return;\n }\n\n if (!headers) {\n if (hasHeaders) {\n headers = fields.map(header => {\n const trimmed = trim ? header.trim() : header;\n return renameMap[trimmed] || trimmed;\n });\n return;\n }\n\n headers = fields.map((_, index) => `column${index + 1}`);\n }\n\n rowCount++;\n if (maxRows && rowCount > maxRows) {\n throw new LimitError(\n `CSV size exceeds maximum limit of ${maxRows} rows`,\n maxRows,\n rowCount\n );\n }\n\n const row = {};\n const fieldCount = Math.min(fields.length, headers.length);\n for (let i = 0; i < fieldCount; i++) {\n row[headers[i]] = parseCsvValue(fields[i], { trim, parseNumbers, parseBooleans });\n }\n\n result.push(row);\n };\n\n let i = 0;\n while (i <= csv.length) {\n const char = i < csv.length ? csv[i] : '\\n';\n\n if (char !== '\\r' && char !== '\\n' && char !== ' ' && char !== '\\t') {\n rowHasData = true;\n }\n\n if (char === delimiter || char === '\\n' || char === '\\r' || i === csv.length) {\n const field = csv.slice(fieldStart, i);\n currentRow.push(field);\n\n if (char === '\\n' || char === '\\r' || i === csv.length) {\n if (rowHasData || currentRow.length > 1) {\n finalizeRow(currentRow);\n }\n currentRow = [];\n rowHasData = false;\n }\n\n if (char === '\\r' && csv[i + 1] === '\\n') {\n i++;\n }\n\n fieldStart = i + 1;\n }\n\n i++;\n }\n\n return result;\n}\n\n/**\n * Автоматическое определение разделителя CSV\n * \n * @param {string} csv - CSV строка\n * @param {Array} [candidates=[';', ',', '\\t', '|']] - Кандидаты на разделитель\n * @returns {string} Определенный разделитель\n */\nexport function autoDetectDelimiter(csv, candidates = [';', ',', '\\t', '|']) {\n if (!csv || typeof csv !== 'string') {\n return ';'; // значение по умолчанию\n }\n\n const lines = csv.split('\\n').filter(line => line.trim().length > 0);\n \n if (lines.length === 0) {\n return ';'; // значение по умолчанию\n }\n\n // Использование первой непустой строки для определения\n const firstLine = lines[0];\n \n const counts = {};\n candidates.forEach(delim => {\n const escapedDelim = delim.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n const regex = new RegExp(escapedDelim, 'g');\n const matches = firstLine.match(regex);\n counts[delim] = matches ? matches.length : 0;\n });\n\n // Поиск разделителя с максимальным количеством\n let maxCount = -1;\n let detectedDelimiter = ';'; // значение по умолчанию\n \n for (const [delim, count] of Object.entries(counts)) {\n if (count > maxCount) {\n maxCount = count;\n detectedDelimiter = delim;\n }\n }\n\n // Если разделитель не найден или ничья\n if (maxCount === 0) {\n return ';'; // значение по умолчанию\n }\n\n return detectedDelimiter;\n}\n\n/**\n * Конвертирует CSV строку в JSON массив\n * \n * @param {string} csv - CSV строка для конвертации\n * @param {Object} [options] - Опции конфигурации\n * @param {string} [options.delimiter] - CSV разделитель (по умолчанию: автоопределение)\n * @param {boolean} [options.autoDetect=true] - Автоопределение разделителя\n * @param {Array} [options.candidates=[';', ',', '\\t', '|']] - Кандидаты для автоопределения\n * @param {boolean} [options.hasHeaders=true] - Есть ли заголовки в CSV\n * @param {Object} [options.renameMap={}] - Маппинг переименования заголовков\n * @param {boolean} [options.trim=true] - Обрезать пробелы\n * @param {boolean} [options.parseNumbers=false] - Парсить числовые значения\n * @param {boolean} [options.parseBooleans=false] - Парсить булевы значения\n * @param {number} [options.maxRows] - Максимальное количество строк\n * @returns {Array<Object>} JSON массив\n */\nexport function csvToJson(csv, options = {}) {\n return safeExecute(() => {\n // Валидация ввода\n validateCsvInput(csv, options);\n \n const opts = options && typeof options === 'object' ? options : {};\n \n const {\n delimiter,\n autoDetect = true,\n candidates = [';', ',', '\\t', '|'],\n hasHeaders = true,\n renameMap = {},\n trim = true,\n parseNumbers = false,\n parseBooleans = false,\n maxRows,\n warnExtraFields = true\n } = opts;\n\n // Определение разделителя\n let finalDelimiter = delimiter;\n if (!finalDelimiter && autoDetect) {\n finalDelimiter = autoDetectDelimiter(csv, candidates);\n }\n finalDelimiter = finalDelimiter || ';'; // fallback\n\n // Обработка пустого CSV\n if (csv.trim() === '') {\n return [];\n }\n\n if (isSimpleCsv(csv)) {\n return parseSimpleCsv(csv, finalDelimiter, {\n hasHeaders,\n renameMap,\n trim,\n parseNumbers,\n parseBooleans,\n maxRows\n });\n }\n\n // Парсинг CSV с обработкой кавычек и переносов строк\n const lines = [];\n let currentLine = '';\n let insideQuotes = false;\n \n for (let i = 0; i < csv.length; i++) {\n const char = csv[i];\n \n if (char === '\"') {\n if (insideQuotes && i + 1 < csv.length && csv[i + 1] === '\"') {\n // Экранированная кавычка внутри кавычек\n currentLine += '\"';\n i++; // Пропустить следующую кавычку\n } else {\n // Переключение режима кавычек\n insideQuotes = !insideQuotes;\n }\n currentLine += char;\n continue;\n }\n \n if (char === '\\n' && !insideQuotes) {\n // Конец строки (вне кавычек)\n lines.push(currentLine);\n currentLine = '';\n continue;\n }\n \n if (char === '\\r') {\n // Игнорировать carriage return\n continue;\n }\n \n currentLine += char;\n }\n \n // Добавление последней строки\n if (currentLine !== '' || insideQuotes) {\n lines.push(currentLine);\n }\n \n if (lines.length === 0) {\n return [];\n }\n\n // Предупреждение для больших наборов данных\n if (lines.length > 1000000 && !maxRows && process.env.NODE_ENV !== 'production') {\n console.warn(\n '⚠️ Warning: Processing >1M records in memory may be slow.\\n' +\n '💡 Consider using Web Workers for better performance with large files.\\n' +\n '📊 Current size: ' + lines.length.toLocaleString() + ' rows'\n );\n }\n\n // Применение ограничения по строкам\n if (maxRows && lines.length > maxRows) {\n throw new LimitError(\n `CSV size exceeds maximum limit of ${maxRows} rows`,\n maxRows,\n lines.length\n );\n }\n\n let headers = [];\n let startIndex = 0;\n \n // Парсинг заголовков если есть\n if (hasHeaders && lines.length > 0) {\n try {\n headers = parseCsvLine(lines[0], 1, finalDelimiter).map(header => {\n const trimmed = trim ? header.trim() : header;\n return renameMap[trimmed] || trimmed;\n });\n startIndex = 1;\n } catch (error) {\n if (error instanceof ParsingError) {\n throw new ParsingError(`Failed to parse headers: ${error.message}`, 1);\n }\n throw error;\n }\n } else {\n // Генерация числовых заголовков из первой строки\n try {\n const firstLineFields = parseCsvLine(lines[0], 1, finalDelimiter);\n headers = firstLineFields.map((_, index) => `column${index + 1}`);\n } catch (error) {\n if (error instanceof ParsingError) {\n throw new ParsingError(`Failed to parse first line: ${error.message}`, 1);\n }\n throw error;\n }\n }\n\n // Парсинг строк данных\n const result = [];\n \n for (let i = startIndex; i < lines.length; i++) {\n const line = lines[i];\n \n // Пропуск пустых строк\n if (line.trim() === '') {\n continue;\n }\n \n try {\n const fields = parseCsvLine(line, i + 1, finalDelimiter);\n \n // Обработка несоответствия количества полей\n const row = {};\n const fieldCount = Math.min(fields.length, headers.length);\n \n for (let j = 0; j < fieldCount; j++) {\n row[headers[j]] = parseCsvValue(fields[j], { trim, parseNumbers, parseBooleans });\n }\n \n // Предупреждение о лишних полях\n const isDev = typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'development';\n if (fields.length > headers.length && warnExtraFields && isDev) {\n console.warn(`[jtcsv] Line ${i + 1}: ${fields.length - headers.length} extra fields ignored`);\n }\n \n result.push(row);\n } catch (error) {\n if (error instanceof ParsingError) {\n throw new ParsingError(`Line ${i + 1}: ${error.message}`, i + 1);\n }\n throw error;\n }\n }\n\n return result;\n }, 'PARSE_FAILED', { function: 'csvToJson' });\n}\n\nexport async function* csvToJsonIterator(input, options = {}) {\n const opts = options && typeof options === 'object' ? options : {};\n validateCsvOptions(opts);\n\n if (typeof input === 'string') {\n const rows = csvToJson(input, options);\n for (const row of rows) {\n yield row;\n }\n return;\n }\n\n const {\n delimiter,\n autoDetect = true,\n candidates = [';', ',', '\\t', '|'],\n hasHeaders = true,\n renameMap = {},\n trim = true,\n parseNumbers = false,\n parseBooleans = false,\n maxRows\n } = opts;\n\n const stream = (input instanceof Blob && input.stream) ? input.stream() : input;\n if (!stream || typeof stream.getReader !== 'function') {\n throw new ValidationError('Input must be a CSV string, Blob/File, or ReadableStream');\n }\n\n const reader = stream.getReader();\n const decoder = new TextDecoder('utf-8');\n let buffer = '';\n let insideQuotes = false;\n let headers = null;\n let rowCount = 0;\n let lineNumber = 0;\n let finalDelimiter = delimiter;\n let delimiterResolved = Boolean(finalDelimiter);\n\n const processFields = (fields) => {\n if (fields.length === 1 && fields[0].trim() === '') {\n return null;\n }\n\n rowCount++;\n if (maxRows && rowCount > maxRows) {\n throw new LimitError(\n `CSV size exceeds maximum limit of ${maxRows} rows`,\n maxRows,\n rowCount\n );\n }\n\n const row = {};\n const fieldCount = Math.min(fields.length, headers.length);\n for (let j = 0; j < fieldCount; j++) {\n row[headers[j]] = parseCsvValue(fields[j], { trim, parseNumbers, parseBooleans });\n }\n return row;\n };\n\n const processLine = (line) => {\n lineNumber++;\n let cleanLine = line;\n if (cleanLine.endsWith('\\r')) {\n cleanLine = cleanLine.slice(0, -1);\n }\n\n if (!delimiterResolved) {\n if (!finalDelimiter && autoDetect) {\n finalDelimiter = autoDetectDelimiter(cleanLine, candidates);\n }\n finalDelimiter = finalDelimiter || ';';\n delimiterResolved = true;\n }\n\n if (cleanLine.trim() === '') {\n return null;\n }\n\n if (!headers) {\n if (hasHeaders) {\n headers = parseCsvLine(cleanLine, lineNumber, finalDelimiter).map(header => {\n const trimmed = trim ? header.trim() : header;\n return renameMap[trimmed] || trimmed;\n });\n return null;\n }\n\n const fields = parseCsvLine(cleanLine, lineNumber, finalDelimiter);\n headers = fields.map((_, index) => `column${index + 1}`);\n return processFields(fields);\n }\n\n const fields = parseCsvLine(cleanLine, lineNumber, finalDelimiter);\n return processFields(fields);\n };\n\n while (true) {\n const { value, done } = await reader.read();\n if (done) {\n break;\n }\n\n buffer += decoder.decode(value, { stream: true });\n\n let start = 0;\n for (let i = 0; i < buffer.length; i++) {\n const char = buffer[i];\n if (char === '\"') {\n if (insideQuotes && buffer[i + 1] === '\"') {\n i++;\n continue;\n }\n insideQuotes = !insideQuotes;\n continue;\n }\n\n if (char === '\\n' && !insideQuotes) {\n const line = buffer.slice(start, i);\n start = i + 1;\n const row = processLine(line);\n if (row) {\n yield row;\n }\n }\n }\n\n buffer = buffer.slice(start);\n }\n\n if (buffer.length > 0) {\n const row = processLine(buffer);\n if (row) {\n yield row;\n }\n }\n\n if (insideQuotes) {\n throw new ParsingError('Unclosed quotes in CSV', lineNumber);\n }\n}\n\n// Экспорт для Node.js совместимости\nif (typeof module !== 'undefined' && module.exports) {\n module.exports = {\n csvToJson,\n autoDetectDelimiter,\n csvToJsonIterator\n };\n}\n","import {\n ValidationError,\n ConfigurationError,\n LimitError\n} from './errors-browser.js';\nimport { csvToJsonIterator } from './csv-to-json-browser.js';\n\nconst DEFAULT_MAX_CHUNK_SIZE = 64 * 1024;\n\nfunction isReadableStream(value) {\n return value && typeof value.getReader === 'function';\n}\n\nfunction isAsyncIterable(value) {\n return value && typeof value[Symbol.asyncIterator] === 'function';\n}\n\nfunction isIterable(value) {\n return value && typeof value[Symbol.iterator] === 'function';\n}\n\nfunction createReadableStreamFromIterator(iterator) {\n return new ReadableStream({\n async pull(controller) {\n try {\n const { value, done } = await iterator.next();\n if (done) {\n controller.close();\n return;\n }\n controller.enqueue(value);\n } catch (error) {\n controller.error(error);\n }\n },\n cancel() {\n if (iterator.return) {\n iterator.return();\n }\n }\n });\n}\n\nfunction detectInputFormat(input, options) {\n if (options && options.inputFormat) {\n return options.inputFormat;\n }\n\n if (typeof input === 'string') {\n const trimmed = input.trim();\n if (trimmed.startsWith('[')) {\n return 'json-array';\n }\n if (trimmed.includes('\\n')) {\n return 'ndjson';\n }\n return 'json-array';\n }\n\n if (input instanceof Blob || isReadableStream(input)) {\n return 'ndjson';\n }\n\n return 'json-array';\n}\n\nasync function* parseNdjsonText(text) {\n const lines = text.split(/\\r?\\n/);\n for (const line of lines) {\n const trimmed = line.trim();\n if (!trimmed) {\n continue;\n }\n yield JSON.parse(trimmed);\n }\n}\n\nasync function* parseNdjsonStream(stream) {\n const reader = stream.getReader();\n const decoder = new TextDecoder('utf-8');\n let buffer = '';\n\n while (true) {\n const { value, done } = await reader.read();\n if (done) {\n break;\n }\n\n buffer += decoder.decode(value, { stream: true });\n const lines = buffer.split(/\\r?\\n/);\n buffer = lines.pop() || '';\n\n for (const line of lines) {\n const trimmed = line.trim();\n if (!trimmed) {\n continue;\n }\n yield JSON.parse(trimmed);\n }\n }\n\n if (buffer.trim()) {\n yield JSON.parse(buffer.trim());\n }\n}\n\nasync function* normalizeJsonInput(input, options = {}) {\n const format = detectInputFormat(input, options);\n\n if (Array.isArray(input)) {\n for (const item of input) {\n yield item;\n }\n return;\n }\n\n if (isAsyncIterable(input)) {\n for await (const item of input) {\n yield item;\n }\n return;\n }\n\n if (isIterable(input)) {\n for (const item of input) {\n yield item;\n }\n return;\n }\n\n if (typeof input === 'string') {\n if (format === 'ndjson') {\n yield* parseNdjsonText(input);\n return;\n }\n\n const parsed = JSON.parse(input);\n if (Array.isArray(parsed)) {\n for (const item of parsed) {\n yield item;\n }\n return;\n }\n yield parsed;\n return;\n }\n\n if (input instanceof Blob) {\n if (format === 'ndjson') {\n yield* parseNdjsonStream(input.stream());\n return;\n }\n\n const text = await input.text();\n const parsed = JSON.parse(text);\n if (Array.isArray(parsed)) {\n for (const item of parsed) {\n yield item;\n }\n return;\n }\n yield parsed;\n return;\n }\n\n if (isReadableStream(input)) {\n if (format !== 'ndjson') {\n throw new ValidationError('ReadableStream input requires inputFormat=\"ndjson\"');\n }\n yield* parseNdjsonStream(input);\n return;\n }\n\n throw new ValidationError('Input must be an array, iterable, string, Blob, or ReadableStream');\n}\n\nfunction validateStreamOptions(options) {\n if (options && typeof options !== 'object') {\n throw new ConfigurationError('Options must be an object');\n }\n\n if (options?.delimiter && typeof options.delimiter !== 'string') {\n throw new ConfigurationError('Delimiter must be a string');\n }\n\n if (options?.delimiter && options.delimiter.length !== 1) {\n throw new ConfigurationError('Delimiter must be a single character');\n }\n\n if (options?.renameMap && typeof options.renameMap !== 'object') {\n throw new ConfigurationError('renameMap must be an object');\n }\n\n if (options?.maxRecords !== undefined) {\n if (typeof options.maxRecords !== 'number' || options.maxRecords <= 0) {\n throw new ConfigurationError('maxRecords must be a positive number');\n }\n }\n}\n\nfunction escapeCsvValue(value, options) {\n const {\n delimiter,\n preventCsvInjection = true,\n rfc4180Compliant = true\n } = options;\n\n if (value === null || value === undefined || value === '') {\n return '';\n }\n\n const stringValue = String(value);\n let escapedValue = stringValue;\n if (preventCsvInjection && /^[=+\\-@]/.test(stringValue)) {\n escapedValue = \"'\" + stringValue;\n }\n\n const needsQuoting = rfc4180Compliant\n ? (escapedValue.includes(delimiter) ||\n escapedValue.includes('\"') ||\n escapedValue.includes('\\n') ||\n escapedValue.includes('\\r'))\n : (escapedValue.includes(delimiter) ||\n escapedValue.includes('\"') ||\n escapedValue.includes('\\n') ||\n escapedValue.includes('\\r'));\n\n if (needsQuoting) {\n return `\"${escapedValue.replace(/\"/g, '\"\"')}\"`;\n }\n\n return escapedValue;\n}\n\nfunction buildHeaderState(keys, options) {\n const renameMap = options.renameMap || {};\n const template = options.template || {};\n const originalKeys = Array.isArray(options.headers) ? options.headers : keys;\n const headers = originalKeys.map((key) => renameMap[key] || key);\n\n const reverseRenameMap = {};\n originalKeys.forEach((key, index) => {\n reverseRenameMap[headers[index]] = key;\n });\n\n let finalHeaders = headers;\n if (Object.keys(template).length > 0) {\n const templateHeaders = Object.keys(template).map(key => renameMap[key] || key);\n const extraHeaders = headers.filter(h => !templateHeaders.includes(h));\n finalHeaders = [...templateHeaders, ...extraHeaders];\n }\n\n return {\n headers: finalHeaders,\n reverseRenameMap\n };\n}\n\nasync function* jsonToCsvChunkIterator(input, options = {}) {\n validateStreamOptions(options);\n\n const opts = options && typeof options === 'object' ? options : {};\n const {\n delimiter = ';',\n includeHeaders = true,\n maxRecords,\n maxChunkSize = DEFAULT_MAX_CHUNK_SIZE,\n headerMode\n } = opts;\n\n let headerState = null;\n let buffer = '';\n let recordCount = 0;\n const lineEnding = opts.rfc4180Compliant === false ? '\\n' : '\\r\\n';\n\n if (Array.isArray(input) && !opts.headers && (!headerMode || headerMode === 'all')) {\n const allKeys = new Set();\n for (const item of input) {\n if (!item || typeof item !== 'object') {\n continue;\n }\n Object.keys(item).forEach((key) => allKeys.add(key));\n }\n headerState = buildHeaderState(Array.from(allKeys), opts);\n if (includeHeaders && headerState.headers.length > 0) {\n buffer += headerState.headers.join(delimiter) + lineEnding;\n }\n } else if (Array.isArray(opts.headers)) {\n headerState = buildHeaderState(opts.headers, opts);\n if (includeHeaders && headerState.headers.length > 0) {\n buffer += headerState.headers.join(delimiter) + lineEnding;\n }\n }\n\n for await (const item of normalizeJsonInput(input, opts)) {\n if (!item || typeof item !== 'object') {\n continue;\n }\n\n if (!headerState) {\n headerState = buildHeaderState(Object.keys(item), opts);\n if (includeHeaders && headerState.headers.length > 0) {\n buffer += headerState.headers.join(delimiter) + lineEnding;\n }\n }\n\n recordCount += 1;\n if (maxRecords && recordCount > maxRecords) {\n throw new LimitError(\n `Data size exceeds maximum limit of ${maxRecords} records`,\n maxRecords,\n recordCount\n );\n }\n\n const row = headerState.headers.map((header) => {\n const originalKey = headerState.reverseRenameMap[header] || header;\n return escapeCsvValue(item[originalKey], {\n delimiter,\n preventCsvInjection: opts.preventCsvInjection !== false,\n rfc4180Compliant: opts.rfc4180Compliant !== false\n });\n }).join(delimiter);\n\n buffer += row + lineEnding;\n\n if (buffer.length >= maxChunkSize) {\n yield buffer;\n buffer = '';\n }\n }\n\n if (buffer.length > 0) {\n yield buffer;\n }\n}\n\nasync function* jsonToNdjsonChunkIterator(input, options = {}) {\n validateStreamOptions(options);\n for await (const item of normalizeJsonInput(input, options)) {\n if (item === undefined) {\n continue;\n }\n yield JSON.stringify(item) + '\\n';\n }\n}\n\nasync function* csvToJsonChunkIterator(input, options = {}) {\n const outputFormat = options.outputFormat || 'ndjson';\n const asArray = outputFormat === 'json-array' || outputFormat === 'array' || outputFormat === 'json';\n let first = true;\n\n if (asArray) {\n yield '[';\n }\n\n for await (const row of csvToJsonIterator(input, options)) {\n const payload = JSON.stringify(row);\n if (asArray) {\n yield (first ? '' : ',') + payload;\n } else {\n yield payload + '\\n';\n }\n first = false;\n }\n\n if (asArray) {\n yield ']';\n }\n}\n\nexport function jsonToCsvStream(input, options = {}) {\n const iterator = jsonToCsvChunkIterator(input, options);\n return createReadableStreamFromIterator(iterator);\n}\n\nexport function jsonToNdjsonStream(input, options = {}) {\n const iterator = jsonToNdjsonChunkIterator(input, options);\n return createReadableStreamFromIterator(iterator);\n}\n\nexport function csvToJsonStream(input, options = {}) {\n const iterator = csvToJsonChunkIterator(input, options);\n return createReadableStreamFromIterator(iterator);\n}\n\nif (typeof module !== 'undefined' && module.exports) {\n module.exports = {\n jsonToCsvStream,\n jsonToNdjsonStream,\n csvToJsonStream\n };\n}\n","// Браузерные специфичные функции для jtcsv\n// Функции, которые работают только в браузере\n\nimport { jsonToCsv } from './json-to-csv-browser.js';\nimport { csvToJson, csvToJsonIterator } from './csv-to-json-browser.js';\nimport { csvToJsonStream, jsonToCsvStream, jsonToNdjsonStream } from './streams.js';\nimport { ValidationError } from './errors-browser.js';\n\n/**\n * Скачивает JSON данные как CSV файл\n * \n * @param {Array<Object>} data - Массив объектов для конвертации\n * @param {string} [filename='data.csv'] - Имя файла для скачивания\n * @param {Object} [options] - Опции для jsonToCsv\n * @returns {void}\n * \n * @example\n * const data = [\n * { id: 1, name: 'John' },\n * { id: 2, name: 'Jane' }\n * ];\n * downloadAsCsv(data, 'users.csv', { delimiter: ',' });\n */\nexport function downloadAsCsv(data, filename = 'data.csv', options = {}) {\n // Проверка что мы в браузере\n if (typeof window === 'undefined') {\n throw new ValidationError('downloadAsCsv() работает только в браузере. Используйте saveAsCsv() в Node.js');\n }\n \n // Валидация имени файла\n if (typeof filename !== 'string' || filename.trim() === '') {\n throw new ValidationError('Filename must be a non-empty string');\n }\n \n // Добавление расширения .csv если его нет\n if (!filename.toLowerCase().endsWith('.csv')) {\n filename += '.csv';\n }\n \n // Конвертация в CSV\n const csv = jsonToCsv(data, options);\n \n // Создание Blob\n const blob = new Blob([csv], { \n type: 'text/csv;charset=utf-8;' \n });\n \n // Создание ссылки для скачивания\n const link = document.createElement('a');\n \n // Создание URL для Blob\n const url = URL.createObjectURL(blob);\n \n // Настройка ссылки\n link.setAttribute('href', url);\n link.setAttribute('download', filename);\n link.style.visibility = 'hidden';\n \n // Добавление в DOM и клик\n document.body.appendChild(link);\n link.click();\n \n // Очистка\n setTimeout(() => {\n document.body.removeChild(link);\n URL.revokeObjectURL(url);\n }, 100);\n}\n\n/**\n * Парсит CSV файл из input[type=\"file\"] в JSON\n * \n * @param {File} file - File объект из input\n * @param {Object} [options] - Опции для csvToJson\n * @returns {Promise<Array<Object>>} Promise с JSON данными\n * \n * @example\n * // HTML: <input type=\"file\" id=\"csvFile\" accept=\".csv\">\n * const fileInput = document.getElementById('csvFile');\n * const json = await parseCsvFile(fileInput.files[0], { delimiter: ',' });\n */\nexport async function parseCsvFile(file, options = {}) {\n // Проверка что мы в браузере\n if (typeof window === 'undefined') {\n throw new ValidationError('parseCsvFile() работает только в браузере. Используйте readCsvAsJson() в Node.js');\n }\n \n // Валидация файла\n if (!(file instanceof File)) {\n throw new ValidationError('Input must be a File object');\n }\n \n // Проверка расширения файла\n if (!file.name.toLowerCase().endsWith('.csv')) {\n throw new ValidationError('File must have .csv extension');\n }\n \n // Проверка размера файла (предупреждение для больших файлов)\n const MAX_SIZE_WARNING = 50 * 1024 * 1024; // 50MB\n if (file.size > MAX_SIZE_WARNING && process.env.NODE_ENV !== 'production') {\n console.warn(\n `⚠️ Warning: Processing large file (${(file.size / 1024 / 1024).toFixed(2)}MB).\\n` +\n '💡 Consider using Web Workers for better performance.\\n' +\n '🔧 Tip: Use parseCSVWithWorker() for files > 10MB.'\n );\n }\n \n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n \n reader.onload = function (event) {\n try {\n const csvText = event.target.result;\n const json = csvToJson(csvText, options);\n resolve(json);\n } catch (error) {\n reject(error);\n }\n };\n \n reader.onerror = function () {\n reject(new ValidationError('Ошибка чтения файла'));\n };\n \n reader.onabort = function () {\n reject(new ValidationError('Чтение файла прервано'));\n };\n \n // Чтение как текст\n reader.readAsText(file, 'UTF-8');\n });\n}\n\n/**\n * Stream CSV file as async iterator without full buffering.\n *\n * @param {File} file - File selected from input\n * @param {Object} [options] - csvToJson options\n * @returns {AsyncGenerator<Object>} Async iterator of rows\n */\nexport function parseCsvFileStream(file, options = {}) {\n if (typeof window === 'undefined') {\n throw new ValidationError('parseCsvFileStream() is browser-only. Use readCsvAsJson() in Node.js');\n }\n\n if (!(file instanceof File)) {\n throw new ValidationError('Input must be a File object');\n }\n\n if (!file.name.toLowerCase().endsWith('.csv')) {\n throw new ValidationError('File must have .csv extension');\n }\n\n return csvToJsonIterator(file, options);\n}\n\n/**\n * Создает CSV файл из JSON данных (альтернатива downloadAsCsv)\n * Возвращает Blob вместо автоматического скачивания\n * \n * @param {Array<Object>} data - Массив объектов\n * @param {Object} [options] - Опции для jsonToCsv\n * @returns {Blob} CSV Blob\n */\nexport function createCsvBlob(data, options = {}) {\n const csv = jsonToCsv(data, options);\n return new Blob([csv], { \n type: 'text/csv;charset=utf-8;' \n });\n}\n\n/**\n * Парсит CSV строку из Blob\n * \n * @param {Blob} blob - CSV Blob\n * @param {Object} [options] - Опции для csvToJson\n * @returns {Promise<Array<Object>>} Promise с JSON данными\n */\nexport async function parseCsvBlob(blob, options = {}) {\n if (!(blob instanceof Blob)) {\n throw new ValidationError('Input must be a Blob object');\n }\n \n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n \n reader.onload = function (event) {\n try {\n const csvText = event.target.result;\n const json = csvToJson(csvText, options);\n resolve(json);\n } catch (error) {\n reject(error);\n }\n };\n \n reader.onerror = function () {\n reject(new ValidationError('Ошибка чтения Blob'));\n };\n \n reader.readAsText(blob, 'UTF-8');\n });\n}\n\n// Экспорт для Node.js совместимости\nif (typeof module !== 'undefined' && module.exports) {\n module.exports = {\n downloadAsCsv,\n parseCsvFile,\n parseCsvFileStream,\n createCsvBlob,\n parseCsvBlob,\n jsonToCsvStream,\n jsonToNdjsonStream,\n csvToJsonStream\n };\n}\n\nexport { jsonToCsvStream, jsonToNdjsonStream, csvToJsonStream };\n","// Worker Pool для параллельной обработки CSV\r\n// Использует Comlink для простой коммуникации с Web Workers\r\n\r\nimport { ValidationError, ConfigurationError } from '../errors-browser.js';\r\n\r\n// Проверка поддержки Web Workers\r\nconst WORKERS_SUPPORTED = typeof Worker !== 'undefined';\r\n\r\nfunction isTransferableBuffer(value) {\n if (!(value instanceof ArrayBuffer)) {\n return false;\n }\n if (typeof SharedArrayBuffer !== 'undefined' && value instanceof SharedArrayBuffer) {\n return false;\n }\n return true;\n}\n\r\nfunction collectTransferables(args) {\r\n const transferables = [];\r\n\r\n const collectFromValue = (value) => {\r\n if (!value) {\r\n return;\r\n }\r\n if (isTransferableBuffer(value)) {\r\n transferables.push(value);\r\n return;\r\n }\r\n if (ArrayBuffer.isView(value) && isTransferableBuffer(value.buffer)) {\r\n transferables.push(value.buffer);\r\n return;\r\n }\r\n if (Array.isArray(value)) {\r\n value.forEach(collectFromValue);\r\n }\r\n };\r\n\r\n args.forEach(collectFromValue);\r\n return transferables.length ? transferables : null;\r\n}\r\n\r\n/**\r\n * Опции для Worker Pool\r\n * @typedef {Object} WorkerPoolOptions\r\n * @property {number} [workerCount=4] - Количество workers в pool\r\n * @property {number} [maxQueueSize=100] - Максимальный размер очереди задач\r\n * @property {boolean} [autoScale=true] - Автоматическое масштабирование pool\r\n * @property {number} [idleTimeout=60000] - Таймаут простоя worker (мс)\r\n */\r\n\r\n/**\r\n * Статистика Worker Pool\r\n * @typedef {Object} WorkerPoolStats\r\n * @property {number} totalWorkers - Всего workers\r\n * @property {number} activeWorkers - Активные workers\r\n * @property {number} idleWorkers - Простаивающие workers\r\n * @property {number} queueSize - Размер очереди\r\n * @property {number} tasksCompleted - Завершенные задачи\r\n * @property {number} tasksFailed - Неудачные задачи\r\n */\r\n\r\n/**\r\n * Прогресс обработки задачи\r\n * @typedef {Object} TaskProgress\r\n * @property {number} processed - Обработано элементов\r\n * @property {number} total - Всего элементов\r\n * @property {number} percentage - Процент выполнения\r\n * @property {number} speed - Скорость обработки (элементов/сек)\r\n */\r\n\r\n/**\r\n * Worker Pool для параллельной обработки CSV\r\n */\r\nexport class WorkerPool {\r\n /**\r\n * Создает новый Worker Pool\r\n * @param {string} workerScript - URL скрипта worker\r\n * @param {WorkerPoolOptions} [options] - Опции pool\r\n */\r\n constructor(workerScript, options = {}) {\r\n if (!WORKERS_SUPPORTED) {\r\n throw new ValidationError('Web Workers не поддерживаются в этом браузере');\r\n }\r\n \r\n this.workerScript = workerScript;\r\n this.options = {\r\n workerCount: 4,\r\n maxQueueSize: 100,\r\n autoScale: true,\r\n idleTimeout: 60000,\r\n ...options\r\n };\r\n \r\n this.workers = [];\r\n this.taskQueue = [];\r\n this.activeTasks = new Map();\r\n this.stats = {\r\n totalWorkers: 0,\r\n activeWorkers: 0,\r\n idleWorkers: 0,\r\n queueSize: 0,\r\n tasksCompleted: 0,\r\n tasksFailed: 0\r\n };\r\n \r\n this.initializeWorkers();\r\n }\r\n \r\n /**\r\n * Инициализация workers\r\n * @private\r\n */\r\n initializeWorkers() {\r\n const { workerCount } = this.options;\r\n \r\n for (let i = 0; i < workerCount; i++) {\r\n this.createWorker();\r\n }\r\n \r\n this.updateStats();\r\n }\r\n \r\n /**\r\n * Создает нового worker\r\n * @private\r\n */\r\n createWorker() {\r\n try {\r\n const worker = new Worker(this.workerScript, { type: 'module' });\r\n \r\n worker.id = `worker-${this.workers.length}`;\r\n worker.status = 'idle';\r\n worker.lastUsed = Date.now();\r\n worker.taskId = null;\r\n \r\n // Обработчики событий\r\n worker.onmessage = (event) => this.handleWorkerMessage(worker, event);\r\n worker.onerror = (error) => this.handleWorkerError(worker, error);\r\n worker.onmessageerror = (error) => this.handleWorkerMessageError(worker, error);\r\n \r\n this.workers.push(worker);\r\n this.stats.totalWorkers++;\r\n this.stats.idleWorkers++;\r\n \r\n return worker;\r\n } catch (error) {\r\n throw new ConfigurationError(`Не удалось создать worker: ${error.message}`);\r\n }\r\n }\r\n \r\n /**\r\n * Обработка сообщений от worker\r\n * @private\r\n */\r\n handleWorkerMessage(worker, event) {\r\n const { data } = event;\r\n \r\n if (data.type === 'PROGRESS') {\r\n this.handleProgress(worker, data);\r\n } else if (data.type === 'RESULT') {\r\n this.handleResult(worker, data);\r\n } else if (data.type === 'ERROR') {\r\n this.handleWorkerTaskError(worker, data);\r\n }\r\n }\r\n \r\n /**\r\n * Обработка прогресса задачи\r\n * @private\r\n */\r\n handleProgress(worker, progressData) {\r\n const taskId = worker.taskId;\r\n if (taskId && this.activeTasks.has(taskId)) {\r\n const task = this.activeTasks.get(taskId);\r\n if (task.onProgress) {\r\n task.onProgress({\r\n processed: progressData.processed,\r\n total: progressData.total,\r\n percentage: (progressData.processed / progressData.total) * 100,\r\n speed: progressData.speed || 0\r\n });\r\n }\r\n }\r\n }\r\n \r\n /**\r\n * Обработка результата задачи\r\n * @private\r\n */\r\n handleResult(worker, resultData) {\r\n const taskId = worker.taskId;\r\n if (taskId && this.activeTasks.has(taskId)) {\r\n const task = this.activeTasks.get(taskId);\r\n \r\n // Освобождение worker\r\n worker.status = 'idle';\r\n worker.lastUsed = Date.now();\r\n worker.taskId = null;\r\n this.stats.activeWorkers--;\r\n this.stats.idleWorkers++;\r\n \r\n // Завершение задачи\r\n task.resolve(resultData.data);\r\n this.activeTasks.delete(taskId);\r\n this.stats.tasksCompleted++;\r\n \r\n // Обработка следующей задачи в очереди\r\n this.processQueue();\r\n this.updateStats();\r\n }\r\n }\r\n \r\n /**\r\n * Обработка ошибки задачи\r\n * @private\r\n */\r\n handleWorkerTaskError(worker, errorData) {\r\n const taskId = worker.taskId;\r\n if (taskId && this.activeTasks.has(taskId)) {\r\n const task = this.activeTasks.get(taskId);\r\n \r\n // Освобождение worker\r\n worker.status = 'idle';\r\n worker.lastUsed = Date.now();\r\n worker.taskId = null;\r\n this.stats.activeWorkers--;\r\n this.stats.idleWorkers++;\r\n \r\n // Завершение с ошибкой\r\n const workerError = new Error(errorData.message || 'Ошибка в worker');\r\n if (errorData.code) {\r\n workerError.code = errorData.code;\r\n }\r\n if (errorData.details) {\r\n workerError.details = errorData.details;\r\n }\r\n task.reject(workerError);\r\n this.activeTasks.delete(taskId);\r\n this.stats.tasksFailed++;\r\n \r\n // Обработка следующей задачи\r\n this.processQueue();\r\n this.updateStats();\r\n }\r\n }\r\n \r\n /**\r\n * Обработка ошибок worker\r\n * @private\r\n */\r\n handleWorkerError(worker, error) {\r\n console.error(`Worker ${worker.id} error:`, error);\r\n \r\n // Перезапуск worker\r\n this.restartWorker(worker);\r\n }\r\n \r\n /**\r\n * Обработка ошибок сообщений\r\n * @private\r\n */\r\n handleWorkerMessageError(worker, error) {\r\n console.error(`Worker ${worker.id} message error:`, error);\r\n }\r\n \r\n /**\r\n * Перезапуск worker\r\n * @private\r\n */\r\n restartWorker(worker) {\r\n const index = this.workers.indexOf(worker);\r\n if (index !== -1) {\r\n // Завершение старого worker\r\n worker.terminate();\r\n \r\n // Удаление из статистики\r\n if (worker.status === 'active') {\r\n this.stats.activeWorkers--;\r\n } else {\r\n this.stats.idleWorkers--;\r\n }\r\n this.stats.totalWorkers--;\r\n \r\n // Создание нового worker\r\n const newWorker = this.createWorker();\r\n this.workers[index] = newWorker;\r\n \r\n // Перезапуск задачи если была активна\r\n if (worker.taskId && this.activeTasks.has(worker.taskId)) {\r\n const task = this.activeTasks.get(worker.taskId);\r\n this.executeTask(newWorker, task);\r\n }\r\n }\r\n }\r\n \r\n /**\r\n * Выполнение задачи на worker\r\n * @private\r\n */\r\n executeTask(worker, task) {\r\n worker.status = 'active';\r\n worker.lastUsed = Date.now();\r\n worker.taskId = task.id;\r\n \r\n this.stats.idleWorkers--;\r\n this.stats.activeWorkers++;\r\n \r\n // Отправка задачи в worker\r\n const payload = {\r\n type: 'EXECUTE',\r\n taskId: task.id,\r\n method: task.method,\r\n args: task.args,\r\n options: task.options\r\n };\r\n\r\n if (task.transferList && task.transferList.length) {\r\n worker.postMessage(payload, task.transferList);\r\n } else {\r\n worker.postMessage(payload);\r\n }\r\n }\r\n \r\n /**\r\n * Обработка очереди задач\r\n * @private\r\n */\r\n processQueue() {\n if (this.taskQueue.length === 0) {\n return;\n }\n \n while (this.taskQueue.length > 0) {\n const idleWorker = this.workers.find(w => w.status === 'idle');\n if (!idleWorker) {\n if (this.options.autoScale && this.workers.length < this.options.maxQueueSize) {\n this.createWorker();\n continue;\n }\n break;\n }\n \n const task = this.taskQueue.shift();\n this.stats.queueSize--;\n this.executeTask(idleWorker, task);\n }\n \n this.updateStats();\n }\n \r\n /**\r\n * Обновление статистики\r\n * @private\r\n */\r\n updateStats() {\r\n this.stats.queueSize = this.taskQueue.length;\r\n }\r\n \r\n /**\r\n * Выполнение задачи через pool\r\n * @param {string} method - Метод для вызова в worker\r\n * @param {Array} args - Аргументы метода\r\n * @param {Object} [options] - Опции задачи\r\n * @param {Function} [onProgress] - Callback прогресса\r\n * @returns {Promise<any>} Результат выполнения\r\n */\r\n async exec(method, args = [], options = {}, onProgress = null) {\r\n return new Promise((resolve, reject) => {\r\n // Проверка размера очереди\r\n if (this.taskQueue.length >= this.options.maxQueueSize) {\r\n reject(new Error('Очередь задач переполнена'));\r\n return;\r\n }\r\n \r\n // Создание задачи\r\n const taskId = `task-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;\r\n const { transfer, ...taskOptions } = options || {};\r\n const transferList = transfer || collectTransferables(args);\r\n const task = {\r\n id: taskId,\r\n method,\r\n args,\r\n options: taskOptions,\r\n transferList,\r\n onProgress,\r\n resolve,\r\n reject,\r\n createdAt: Date.now()\r\n };\r\n \r\n // Добавление в очередь\r\n this.taskQueue.push(task);\r\n this.stats.queueSize++;\r\n \r\n // Запуск обработки очереди\r\n this.processQueue();\r\n this.updateStats();\r\n });\r\n }\r\n \r\n /**\r\n * Получение статистики pool\r\n * @returns {WorkerPoolStats} Статистика\r\n */\r\n getStats() {\r\n return { ...this.stats };\r\n }\r\n \r\n /**\r\n * Очистка простаивающих workers\r\n */\r\n cleanupIdleWorkers() {\r\n const now = Date.now();\r\n const { idleTimeout } = this.options;\r\n \r\n for (let i = this.workers.length - 1; i >= 0; i--) {\r\n const worker = this.workers[i];\r\n if (worker.status === 'idle' && (now - worker.lastUsed) > idleTimeout) {\r\n // Сохранение минимального количества workers\r\n if (this.workers.length > 1) {\r\n worker.terminate();\r\n this.workers.splice(i, 1);\r\n this.stats.totalWorkers--;\r\n this.stats.idleWorkers--;\r\n }\r\n }\r\n }\r\n }\r\n \r\n /**\r\n * Завершение всех workers\r\n */\r\n terminate() {\r\n this.workers.forEach(worker => {\r\n worker.terminate();\r\n });\r\n \r\n this.workers = [];\r\n this.taskQueue = [];\r\n this.activeTasks.clear();\r\n \r\n // Сброс статистики\r\n this.stats = {\r\n totalWorkers: 0,\r\n activeWorkers: 0,\r\n idleWorkers: 0,\r\n queueSize: 0,\r\n tasksCompleted: 0,\r\n tasksFailed: 0\r\n };\r\n }\r\n}\r\n\r\n/**\r\n * Создает Worker Pool для обработки CSV\r\n * @param {WorkerPoolOptions} [options] - Опции pool\r\n * @returns {WorkerPool} Worker Pool\r\n */\r\nexport function createWorkerPool(options = {}) {\r\n // Используем встроенный worker скрипт\r\n const workerScript = new URL('./csv-parser.worker.js', import.meta.url).href;\r\n return new WorkerPool(workerScript, options);\r\n}\r\n\r\n/**\r\n * Парсит CSV с использованием Web Workers\r\n * @param {string|File} csvInput - CSV строка или File объект\r\n * @param {Object} [options] - Опции парсинга\r\n * @param {Function} [onProgress] - Callback прогресса\r\n * @returns {Promise<Array<Object>>} JSON данные\r\n */\r\nexport async function parseCSVWithWorker(csvInput, options = {}, onProgress = null) {\r\n // Создание pool если нужно\r\n if (!parseCSVWithWorker.pool) {\r\n parseCSVWithWorker.pool = createWorkerPool();\r\n }\r\n \r\n const pool = parseCSVWithWorker.pool;\r\n \r\n // Подготовка CSV строки\r\n // ?????????? CSV ??????\r\n let csvPayload = csvInput;\r\n let transfer = null;\r\n\r\n if (csvInput instanceof File) {\r\n const buffer = await readFileAsArrayBuffer(csvInput);\r\n csvPayload = new Uint8Array(buffer);\r\n transfer = [buffer];\r\n } else if (csvInput instanceof ArrayBuffer) {\r\n csvPayload = csvInput;\r\n transfer = [csvInput];\r\n } else if (ArrayBuffer.isView(csvInput)) {\r\n csvPayload = csvInput;\r\n if (csvInput.buffer instanceof ArrayBuffer) {\r\n transfer = [csvInput.buffer];\r\n }\r\n } else if (typeof csvInput !== 'string') {\r\n throw new ValidationError('Input must be a CSV string, File, or ArrayBuffer');\r\n }\r\n\r\n // ????????? ?????? ????? pool\r\n const execOptions = transfer ? { transfer } : {};\r\n return pool.exec('parseCSV', [csvPayload, options], execOptions, onProgress);\r\n}\r\n\r\n/**\r\n * Чтение файла как текст\r\n * @private\r\n */\r\nasync function readFileAsArrayBuffer(file) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = (event) => resolve(event.target.result);\n reader.onerror = (error) => reject(error);\n reader.readAsArrayBuffer(file);\n });\n}\n\n// Экспорт для Node.js совместимости\r\nif (typeof module !== 'undefined' && module.exports) {\r\n module.exports = {\r\n WorkerPool,\r\n createWorkerPool,\r\n parseCSVWithWorker\r\n };\r\n}\r\n","// Браузерный entry point для jtcsv\n// Экспортирует все функции с поддержкой браузера\n\nimport { jsonToCsv, preprocessData, deepUnwrap } from './json-to-csv-browser.js';\nimport { csvToJson, csvToJsonIterator, autoDetectDelimiter } from './csv-to-json-browser.js';\nimport {\n downloadAsCsv,\n parseCsvFile,\n parseCsvFileStream,\n jsonToCsvStream,\n jsonToNdjsonStream,\n csvToJsonStream\n} from './browser-functions.js';\nimport { createWorkerPool, parseCSVWithWorker } from './workers/worker-pool.js';\nimport {\n ValidationError,\n SecurityError,\n FileSystemError,\n ParsingError,\n LimitError,\n ConfigurationError,\n ERROR_CODES\n} from './errors-browser.js';\n\nasync function createWorkerPoolLazy(options = {}) {\n const mod = await import('./workers/worker-pool.js');\n return mod.createWorkerPool(options);\n}\n\nasync function parseCSVWithWorkerLazy(csvInput, options = {}, onProgress = null) {\n const mod = await import('./workers/worker-pool.js');\n return mod.parseCSVWithWorker(csvInput, options, onProgress);\n}\n\n// Основной экспорт\nconst jtcsv = {\n // JSON to CSV функции\n jsonToCsv,\n preprocessData,\n downloadAsCsv,\n deepUnwrap,\n \n // CSV to JSON функции\n csvToJson,\n csvToJsonIterator,\n parseCsvFile,\n parseCsvFileStream,\n jsonToCsvStream,\n jsonToNdjsonStream,\n csvToJsonStream,\n autoDetectDelimiter,\n \n // Web Workers функции\n createWorkerPool,\n parseCSVWithWorker,\n createWorkerPoolLazy,\n parseCSVWithWorkerLazy,\n \n // Error classes\n ValidationError,\n SecurityError,\n FileSystemError,\n ParsingError,\n LimitError,\n ConfigurationError,\n ERROR_CODES,\n \n // Удобные алиасы\n parse: csvToJson,\n unparse: jsonToCsv,\n \n // Версия\n version: '2.0.0-browser'\n};\n\n// Экспорт для разных сред\nif (typeof module !== 'undefined' && module.exports) {\n // Node.js CommonJS\n module.exports = jtcsv;\n} else if (typeof define === 'function' && define.amd) {\n // AMD\n define([], () => jtcsv);\n} else if (typeof window !== 'undefined') {\n // Браузер (глобальная переменная)\n window.jtcsv = jtcsv;\n}\n\nexport default jtcsv;\nexport {\n jsonToCsv,\n preprocessData,\n downloadAsCsv,\n deepUnwrap,\n csvToJson,\n csvToJsonIterator,\n parseCsvFile,\n parseCsvFileStream,\n jsonToCsvStream,\n jsonToNdjsonStream,\n csvToJsonStream,\n autoDetectDelimiter,\n createWorkerPool,\n parseCSVWithWorker,\n createWorkerPoolLazy,\n parseCSVWithWorkerLazy,\n ValidationError,\n SecurityError,\n FileSystemError,\n ParsingError,\n LimitError,\n ConfigurationError,\n ERROR_CODES\n};\n"],"names":["JTCSVError","Error","constructor","message","code","details","name","captureStackTrace","ValidationError","SecurityError","FileSystemError","originalError","ParsingError","lineNumber","LimitError","limit","actual","ConfigurationError","ERROR_CODES","JTCSV_ERROR","VALIDATION_ERROR","SECURITY_ERROR","FILE_SYSTEM_ERROR","PARSING_ERROR","LIMIT_ERROR","CONFIGURATION_ERROR","INVALID_INPUT","SECURITY_VIOLATION","FILE_NOT_FOUND","PARSE_FAILED","SIZE_LIMIT","INVALID_CONFIG","UNKNOWN_ERROR","safeExecute","fn","errorCode","errorDetails","error","enhancedError","errorMessage","String","includes","stack","safeExecuteAsync","module","exports","validateInput","data","options","Array","isArray","delimiter","length","renameMap","maxRecords","undefined","preventCsvInjection","rfc4180Compliant","jsonToCsv","opts","includeHeaders","template","process","env","NODE_ENV","console","warn","toLocaleString","allKeys","Set","forEach","item","Object","keys","key","add","originalKeys","from","headers","map","reverseRenameMap","index","finalHeaders","templateHeaders","extraHeaders","filter","h","escapeValue","value","stringValue","escapedValue","test","needsQuoting","replace","rows","push","join","row","header","originalKey","lineEnding","function","deepUnwrap","depth","maxDepth","visited","has","unwrappedItems","JSON","stringify","preprocessData","processed","prototype","hasOwnProperty","call","validateCsvOptions","autoDetect","candidates","maxRows","warnExtraFields","validateCsvInput","csv","parseCsvLine","line","fields","currentField","insideQuotes","escapeNext","i","char","isEndOfField","j","parseCsvValue","trim","parseNumbers","parseBooleans","result","startsWith","substring","num","parseFloat","isNaN","lowerValue","toLowerCase","isSimpleCsv","indexOf","parseSimpleCsv","hasHeaders","fieldStart","currentRow","rowHasData","rowCount","finalizeRow","trimmed","_","fieldCount","Math","min","field","slice","autoDetectDelimiter","lines","split","firstLine","counts","delim","escapedDelim","regex","RegExp","matches","match","maxCount","detectedDelimiter","count","entries","csvToJson","finalDelimiter","currentLine","startIndex","firstLineFields","isDev","csvToJsonIterator","input","stream","Blob","getReader","reader","decoder","TextDecoder","buffer","delimiterResolved","Boolean","processFields","processLine","cleanLine","endsWith","done","read","decode","start","DEFAULT_MAX_CHUNK_SIZE","isReadableStream","isAsyncIterable","Symbol","asyncIterator","isIterable","iterator","createReadableStreamFromIterator","ReadableStream","pull","controller","next","close","enqueue","cancel","return","detectInputFormat","inputFormat","parseNdjsonText","text","parse","parseNdjsonStream","pop","normalizeJsonInput","format","parsed","validateStreamOptions","escapeCsvValue","buildHeaderState","jsonToCsvChunkIterator","maxChunkSize","headerMode","headerState","recordCount","jsonToNdjsonChunkIterator","csvToJsonChunkIterator","outputFormat","asArray","first","payload","jsonToCsvStream","jsonToNdjsonStream","csvToJsonStream","downloadAsCsv","filename","window","blob","type","link","document","createElement","url","URL","createObjectURL","setAttribute","style","visibility","body","appendChild","click","setTimeout","removeChild","revokeObjectURL","parseCsvFile","file","File","MAX_SIZE_WARNING","size","toFixed","Promise","resolve","reject","FileReader","onload","event","csvText","target","json","onerror","onabort","readAsText","parseCsvFileStream","createCsvBlob","parseCsvBlob","WORKERS_SUPPORTED","Worker","isTransferableBuffer","ArrayBuffer","SharedArrayBuffer","collectTransferables","args","transferables","collectFromValue","isView","WorkerPool","workerScript","workerCount","maxQueueSize","autoScale","idleTimeout","workers","taskQueue","activeTasks","Map","stats","totalWorkers","activeWorkers","idleWorkers","queueSize","tasksCompleted","tasksFailed","initializeWorkers","createWorker","updateStats","worker","id","status","lastUsed","Date","now","taskId","onmessage","handleWorkerMessage","handleWorkerError","onmessageerror","handleWorkerMessageError","handleProgress","handleResult","handleWorkerTaskError","progressData","task","get","onProgress","total","percentage","speed","resultData","delete","processQueue","errorData","workerError","restartWorker","terminate","newWorker","executeTask","method","transferList","postMessage","idleWorker","find","w","shift","exec","random","toString","substr","transfer","taskOptions","createdAt","getStats","cleanupIdleWorkers","splice","clear","createWorkerPool","import","href","parseCSVWithWorker","csvInput","pool","csvPayload","readFileAsArrayBuffer","Uint8Array","execOptions","readAsArrayBuffer","createWorkerPoolLazy","mod","parseCSVWithWorkerLazy","jtcsv","unparse","version","define","amd"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"jtcsv.umd.js","sources":["../src/browser/errors-browser.ts","../src/browser/json-to-csv-browser.ts","../src/browser/csv-to-json-browser.ts","../src/browser/streams.ts","../src/browser/browser-functions.ts","../src/browser/workers/worker-pool.ts","../src/browser/index.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":["normalizeQuotesInField","normalizePhoneValue","normalizeValueForCsv","jsonToCsv","jsonToCsvAsync","autoDetectDelimiter","csvToJson","csvToJsonAsync","csvToJsonIterator","jsonToCsvStream","jsonToNdjsonStream","csvToJsonStream","downloadAsCsvAsync","createJsonToCsvStream","createJsonToNdjsonStream","createCsvToJsonStream"],"mappings":"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"}
|