jtcsv 3.0.0 → 3.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +1261 -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 +192 -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 +664 -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 +243 -305
  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
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const js_1 = __importDefault(require("@eslint/js"));
7
+ const globals_1 = __importDefault(require("globals"));
8
+ exports.default = [
9
+ js_1.default.configs.recommended,
10
+ {
11
+ languageOptions: {
12
+ ecmaVersion: 'latest',
13
+ sourceType: 'commonjs',
14
+ globals: {
15
+ ...globals_1.default.node,
16
+ ...globals_1.default.jest,
17
+ ...globals_1.default.browser,
18
+ ...globals_1.default.worker,
19
+ define: 'readonly',
20
+ self: 'readonly'
21
+ }
22
+ },
23
+ rules: {
24
+ 'no-unused-vars': ['error', {
25
+ argsIgnorePattern: '^_',
26
+ varsIgnorePattern: '^_',
27
+ caughtErrorsIgnorePattern: '^_'
28
+ }],
29
+ 'no-console': ['warn', { allow: ['warn', 'error', 'info', 'log'] }],
30
+ 'no-debugger': 'error',
31
+ 'no-alert': 'error',
32
+ 'no-var': 'error',
33
+ 'prefer-const': 'error',
34
+ 'eqeqeq': ['error', 'always'],
35
+ 'curly': ['error', 'all'],
36
+ 'brace-style': ['error', '1tbs'],
37
+ 'semi': ['error', 'always'],
38
+ 'quotes': ['error', 'single', { avoidEscape: true }],
39
+ 'indent': ['error', 2],
40
+ 'comma-dangle': ['error', 'never'],
41
+ 'object-curly-spacing': ['error', 'always'],
42
+ 'array-bracket-spacing': ['error', 'never'],
43
+ 'space-before-function-paren': ['error', {
44
+ anonymous: 'always',
45
+ named: 'never',
46
+ asyncArrow: 'always'
47
+ }],
48
+ 'keyword-spacing': ['error', { before: true, after: true }],
49
+ 'space-infix-ops': 'error',
50
+ 'arrow-spacing': 'error',
51
+ 'no-multiple-empty-lines': ['error', { max: 1, maxEOF: 0 }],
52
+ 'no-case-declarations': 'off'
53
+ }
54
+ },
55
+ {
56
+ files: ['**/__tests__/**/*.js', '**/*.test.js'],
57
+ rules: {
58
+ 'no-unused-vars': 'off',
59
+ 'no-console': 'off'
60
+ }
61
+ },
62
+ {
63
+ files: ['src/**/*.ts'],
64
+ languageOptions: {
65
+ sourceType: 'module',
66
+ ecmaVersion: 'latest',
67
+ globals: {
68
+ ...globals_1.default.node,
69
+ ...globals_1.default.browser,
70
+ ...globals_1.default.worker,
71
+ define: 'readonly',
72
+ self: 'readonly'
73
+ }
74
+ },
75
+ rules: {
76
+ 'no-console': ['warn', { allow: ['warn', 'error', 'info', 'log'] }]
77
+ }
78
+ },
79
+ {
80
+ files: ['**/examples/**/*.js', 'benchmark.js', 'test-*.js'],
81
+ rules: {
82
+ 'no-console': 'off',
83
+ 'no-unused-vars': ['error', {
84
+ argsIgnorePattern: '^_',
85
+ varsIgnorePattern: '^_',
86
+ caughtErrorsIgnorePattern: '^_'
87
+ }]
88
+ }
89
+ },
90
+ {
91
+ files: ['bin/**/*.js'],
92
+ rules: {
93
+ 'no-console': 'off'
94
+ }
95
+ },
96
+ {
97
+ files: ['src/browser/**/*.ts', 'src/browser/workers/**/*.ts'],
98
+ languageOptions: {
99
+ sourceType: 'module',
100
+ ecmaVersion: 'latest',
101
+ globals: {
102
+ ...globals_1.default.browser,
103
+ ...globals_1.default.worker,
104
+ document: 'readonly',
105
+ window: 'readonly',
106
+ FileReader: 'readonly',
107
+ Worker: 'readonly',
108
+ self: 'readonly',
109
+ define: 'readonly'
110
+ }
111
+ },
112
+ rules: {
113
+ 'no-console': ['warn', { allow: ['warn', 'error', 'info', 'log'] }]
114
+ }
115
+ },
116
+ {
117
+ files: ['**/*.mjs', 'demo/**/*.js', 'plugins/**/*.js', 'rollup.config.mjs'],
118
+ languageOptions: {
119
+ sourceType: 'module',
120
+ ecmaVersion: 'latest',
121
+ globals: {
122
+ ...globals_1.default.node,
123
+ ...globals_1.default.browser
124
+ }
125
+ },
126
+ rules: {
127
+ 'no-console': 'off',
128
+ 'no-unused-vars': ['error', {
129
+ argsIgnorePattern: '^_',
130
+ varsIgnorePattern: '^_',
131
+ caughtErrorsIgnorePattern: '^_'
132
+ }]
133
+ }
134
+ },
135
+ {
136
+ ignores: [
137
+ 'node_modules/**',
138
+ 'coverage/**',
139
+ 'dist/**',
140
+ 'demo/node_modules/**',
141
+ 'plugins/**/node_modules/**',
142
+ 'packages/**/node_modules/**',
143
+ 'docs/api/**'
144
+ ]
145
+ }
146
+ ];
147
+ //# sourceMappingURL=eslint.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eslint.config.js","sourceRoot":"","sources":["../eslint.config.ts"],"names":[],"mappings":"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","sourcesContent":["import js from \"@eslint/js\";\nimport globals from \"globals\";\n\nexport default [\n js.configs.recommended,\n {\n languageOptions: {\n ecmaVersion: 'latest',\n sourceType: 'commonjs',\n globals: {\n ...globals.node,\n ...globals.jest,\n ...globals.browser,\n ...globals.worker,\n define: 'readonly',\n self: 'readonly'\n }\n },\n rules: {\n 'no-unused-vars': ['error', {\n argsIgnorePattern: '^_',\n varsIgnorePattern: '^_',\n caughtErrorsIgnorePattern: '^_'\n }],\n 'no-console': ['warn', { allow: ['warn', 'error', 'info', 'log'] }],\n 'no-debugger': 'error',\n 'no-alert': 'error',\n 'no-var': 'error',\n 'prefer-const': 'error',\n 'eqeqeq': ['error', 'always'],\n 'curly': ['error', 'all'],\n 'brace-style': ['error', '1tbs'],\n 'semi': ['error', 'always'],\n 'quotes': ['error', 'single', { avoidEscape: true }],\n 'indent': ['error', 2],\n 'comma-dangle': ['error', 'never'],\n 'object-curly-spacing': ['error', 'always'],\n 'array-bracket-spacing': ['error', 'never'],\n 'space-before-function-paren': ['error', {\n anonymous: 'always',\n named: 'never',\n asyncArrow: 'always'\n }],\n 'keyword-spacing': ['error', { before: true, after: true }],\n 'space-infix-ops': 'error',\n 'arrow-spacing': 'error',\n 'no-multiple-empty-lines': ['error', { max: 1, maxEOF: 0 }],\n 'no-case-declarations': 'off'\n }\n },\n // Test files\n {\n files: ['**/__tests__/**/*.js', '**/*.test.js'],\n rules: {\n 'no-unused-vars': 'off',\n 'no-console': 'off'\n }\n },\n // TypeScript source files\n {\n files: ['src/**/*.ts'],\n languageOptions: {\n sourceType: 'module',\n ecmaVersion: 'latest',\n globals: {\n ...globals.node,\n ...globals.browser,\n ...globals.worker,\n define: 'readonly',\n self: 'readonly'\n }\n },\n rules: {\n 'no-console': ['warn', { allow: ['warn', 'error', 'info', 'log'] }]\n }\n },\n // Examples and benchmarks\n {\n files: ['**/examples/**/*.js', 'benchmark.js', 'test-*.js'],\n rules: {\n 'no-console': 'off',\n 'no-unused-vars': ['error', {\n argsIgnorePattern: '^_',\n varsIgnorePattern: '^_',\n caughtErrorsIgnorePattern: '^_'\n }]\n }\n },\n // CLI binaries\n {\n files: ['bin/**/*.js'],\n rules: {\n 'no-console': 'off'\n }\n },\n // Browser code (ESM modules) - TypeScript files\n {\n files: ['src/browser/**/*.ts', 'src/browser/workers/**/*.ts'],\n languageOptions: {\n sourceType: 'module',\n ecmaVersion: 'latest',\n globals: {\n ...globals.browser,\n ...globals.worker,\n document: 'readonly',\n window: 'readonly',\n FileReader: 'readonly',\n Worker: 'readonly',\n self: 'readonly',\n define: 'readonly'\n }\n },\n rules: {\n 'no-console': ['warn', { allow: ['warn', 'error', 'info', 'log'] }]\n }\n },\n // ES Module files (.mjs and demo/plugins files)\n {\n files: ['**/*.mjs', 'demo/**/*.js', 'plugins/**/*.js', 'rollup.config.mjs'],\n languageOptions: {\n sourceType: 'module',\n ecmaVersion: 'latest',\n globals: {\n ...globals.node,\n ...globals.browser\n }\n },\n rules: {\n 'no-console': 'off',\n 'no-unused-vars': ['error', {\n argsIgnorePattern: '^_',\n varsIgnorePattern: '^_',\n caughtErrorsIgnorePattern: '^_'\n }]\n }\n },\n // Ignore patterns\n {\n ignores: [\n 'node_modules/**',\n 'coverage/**',\n 'dist/**',\n 'demo/node_modules/**',\n 'plugins/**/node_modules/**',\n 'packages/**/node_modules/**',\n 'docs/api/**' // Generated documentation files\n ]\n }\n];\n"]}
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.safeExecuteAsync = exports.safeExecuteSync = exports.safeExecute = exports.ConfigurationError = exports.LimitError = exports.ParsingError = exports.FileSystemError = exports.SecurityError = exports.ValidationError = exports.JtcsvError = exports.createJsonCollectorStream = exports.createCsvFileToJsonStream = exports.streamCsvToJsonAsync = exports.streamCsvToJson = exports.createCsvToJsonStream = exports.createCsvCollectorStream = exports.createJsonReadableStream = exports.saveJsonStreamAsCsv = exports.streamJsonToCsvAsync = exports.streamJsonToCsv = exports.createJsonToCsvStream = exports.saveAsJsonSync = exports.saveAsJsonAsync = exports.saveAsJson = exports.clearDelimiterCache = exports.getDelimiterCacheStats = exports.createDelimiterCache = exports.createTransformHooks = exports.autoDetectDelimiter = exports.readCsvAsJsonSync = exports.readCsvAsJson = exports.csvToJsonIterator = exports.csvToJsonAsync = exports.csvToJson = exports.validateFilePath = exports.deepUnwrap = exports.saveAsCsvAsync = exports.saveAsCsv = exports.preprocessData = exports.jsonToCsvAsync = exports.jsonToCsv = void 0;
4
+ const json_to_csv_1 = require("./json-to-csv");
5
+ Object.defineProperty(exports, "jsonToCsv", { enumerable: true, get: function () { return json_to_csv_1.jsonToCsv; } });
6
+ Object.defineProperty(exports, "jsonToCsvAsync", { enumerable: true, get: function () { return json_to_csv_1.jsonToCsvAsync; } });
7
+ Object.defineProperty(exports, "preprocessData", { enumerable: true, get: function () { return json_to_csv_1.preprocessData; } });
8
+ Object.defineProperty(exports, "saveAsCsv", { enumerable: true, get: function () { return json_to_csv_1.saveAsCsv; } });
9
+ Object.defineProperty(exports, "saveAsCsvAsync", { enumerable: true, get: function () { return json_to_csv_1.saveAsCsvAsync; } });
10
+ Object.defineProperty(exports, "deepUnwrap", { enumerable: true, get: function () { return json_to_csv_1.deepUnwrap; } });
11
+ Object.defineProperty(exports, "validateFilePath", { enumerable: true, get: function () { return json_to_csv_1.validateFilePath; } });
12
+ const csv_to_json_1 = require("./csv-to-json");
13
+ Object.defineProperty(exports, "csvToJson", { enumerable: true, get: function () { return csv_to_json_1.csvToJson; } });
14
+ Object.defineProperty(exports, "csvToJsonAsync", { enumerable: true, get: function () { return csv_to_json_1.csvToJsonAsync; } });
15
+ Object.defineProperty(exports, "csvToJsonIterator", { enumerable: true, get: function () { return csv_to_json_1.csvToJsonIterator; } });
16
+ Object.defineProperty(exports, "readCsvAsJson", { enumerable: true, get: function () { return csv_to_json_1.readCsvAsJson; } });
17
+ Object.defineProperty(exports, "readCsvAsJsonSync", { enumerable: true, get: function () { return csv_to_json_1.readCsvAsJsonSync; } });
18
+ Object.defineProperty(exports, "autoDetectDelimiter", { enumerable: true, get: function () { return csv_to_json_1.autoDetectDelimiter; } });
19
+ Object.defineProperty(exports, "createTransformHooks", { enumerable: true, get: function () { return csv_to_json_1.createTransformHooks; } });
20
+ Object.defineProperty(exports, "createDelimiterCache", { enumerable: true, get: function () { return csv_to_json_1.createDelimiterCache; } });
21
+ Object.defineProperty(exports, "getDelimiterCacheStats", { enumerable: true, get: function () { return csv_to_json_1.getDelimiterCacheStats; } });
22
+ Object.defineProperty(exports, "clearDelimiterCache", { enumerable: true, get: function () { return csv_to_json_1.clearDelimiterCache; } });
23
+ const json_save_1 = require("./json-save");
24
+ Object.defineProperty(exports, "saveAsJson", { enumerable: true, get: function () { return json_save_1.saveAsJson; } });
25
+ Object.defineProperty(exports, "saveAsJsonAsync", { enumerable: true, get: function () { return json_save_1.saveAsJsonAsync; } });
26
+ Object.defineProperty(exports, "saveAsJsonSync", { enumerable: true, get: function () { return json_save_1.saveAsJsonSync; } });
27
+ const stream_json_to_csv_1 = require("./stream-json-to-csv");
28
+ Object.defineProperty(exports, "createJsonToCsvStream", { enumerable: true, get: function () { return stream_json_to_csv_1.createJsonToCsvStream; } });
29
+ Object.defineProperty(exports, "streamJsonToCsv", { enumerable: true, get: function () { return stream_json_to_csv_1.streamJsonToCsv; } });
30
+ Object.defineProperty(exports, "streamJsonToCsvAsync", { enumerable: true, get: function () { return stream_json_to_csv_1.streamJsonToCsvAsync; } });
31
+ Object.defineProperty(exports, "saveJsonStreamAsCsv", { enumerable: true, get: function () { return stream_json_to_csv_1.saveJsonStreamAsCsv; } });
32
+ Object.defineProperty(exports, "createJsonReadableStream", { enumerable: true, get: function () { return stream_json_to_csv_1.createJsonReadableStream; } });
33
+ Object.defineProperty(exports, "createCsvCollectorStream", { enumerable: true, get: function () { return stream_json_to_csv_1.createCsvCollectorStream; } });
34
+ const stream_csv_to_json_1 = require("./stream-csv-to-json");
35
+ Object.defineProperty(exports, "createCsvToJsonStream", { enumerable: true, get: function () { return stream_csv_to_json_1.createCsvToJsonStream; } });
36
+ Object.defineProperty(exports, "streamCsvToJson", { enumerable: true, get: function () { return stream_csv_to_json_1.streamCsvToJson; } });
37
+ Object.defineProperty(exports, "streamCsvToJsonAsync", { enumerable: true, get: function () { return stream_csv_to_json_1.streamCsvToJsonAsync; } });
38
+ Object.defineProperty(exports, "createCsvFileToJsonStream", { enumerable: true, get: function () { return stream_csv_to_json_1.createCsvFileToJsonStream; } });
39
+ Object.defineProperty(exports, "createJsonCollectorStream", { enumerable: true, get: function () { return stream_csv_to_json_1.createJsonCollectorStream; } });
40
+ const errors_1 = require("./errors");
41
+ Object.defineProperty(exports, "JtcsvError", { enumerable: true, get: function () { return errors_1.JtcsvError; } });
42
+ Object.defineProperty(exports, "ValidationError", { enumerable: true, get: function () { return errors_1.ValidationError; } });
43
+ Object.defineProperty(exports, "SecurityError", { enumerable: true, get: function () { return errors_1.SecurityError; } });
44
+ Object.defineProperty(exports, "FileSystemError", { enumerable: true, get: function () { return errors_1.FileSystemError; } });
45
+ Object.defineProperty(exports, "ParsingError", { enumerable: true, get: function () { return errors_1.ParsingError; } });
46
+ Object.defineProperty(exports, "LimitError", { enumerable: true, get: function () { return errors_1.LimitError; } });
47
+ Object.defineProperty(exports, "ConfigurationError", { enumerable: true, get: function () { return errors_1.ConfigurationError; } });
48
+ Object.defineProperty(exports, "safeExecute", { enumerable: true, get: function () { return errors_1.safeExecute; } });
49
+ Object.defineProperty(exports, "safeExecuteSync", { enumerable: true, get: function () { return errors_1.safeExecuteSync; } });
50
+ Object.defineProperty(exports, "safeExecuteAsync", { enumerable: true, get: function () { return errors_1.safeExecuteAsync; } });
51
+ const coreModule = {
52
+ jsonToCsv: json_to_csv_1.jsonToCsv,
53
+ jsonToCsvAsync: json_to_csv_1.jsonToCsvAsync,
54
+ preprocessData: json_to_csv_1.preprocessData,
55
+ saveAsCsv: json_to_csv_1.saveAsCsv,
56
+ saveAsCsvAsync: json_to_csv_1.saveAsCsvAsync,
57
+ deepUnwrap: json_to_csv_1.deepUnwrap,
58
+ validateFilePath: json_to_csv_1.validateFilePath,
59
+ csvToJson: csv_to_json_1.csvToJson,
60
+ csvToJsonAsync: csv_to_json_1.csvToJsonAsync,
61
+ csvToJsonIterator: csv_to_json_1.csvToJsonIterator,
62
+ readCsvAsJson: csv_to_json_1.readCsvAsJson,
63
+ readCsvAsJsonSync: csv_to_json_1.readCsvAsJsonSync,
64
+ autoDetectDelimiter: csv_to_json_1.autoDetectDelimiter,
65
+ createTransformHooks: csv_to_json_1.createTransformHooks,
66
+ createDelimiterCache: csv_to_json_1.createDelimiterCache,
67
+ getDelimiterCacheStats: csv_to_json_1.getDelimiterCacheStats,
68
+ clearDelimiterCache: csv_to_json_1.clearDelimiterCache,
69
+ saveAsJson: json_save_1.saveAsJson,
70
+ saveAsJsonAsync: json_save_1.saveAsJsonAsync,
71
+ saveAsJsonSync: json_save_1.saveAsJsonSync,
72
+ createJsonToCsvStream: stream_json_to_csv_1.createJsonToCsvStream,
73
+ streamJsonToCsv: stream_json_to_csv_1.streamJsonToCsv,
74
+ streamJsonToCsvAsync: stream_json_to_csv_1.streamJsonToCsvAsync,
75
+ saveJsonStreamAsCsv: stream_json_to_csv_1.saveJsonStreamAsCsv,
76
+ createJsonReadableStream: stream_json_to_csv_1.createJsonReadableStream,
77
+ createCsvCollectorStream: stream_json_to_csv_1.createCsvCollectorStream,
78
+ createCsvToJsonStream: stream_csv_to_json_1.createCsvToJsonStream,
79
+ streamCsvToJson: stream_csv_to_json_1.streamCsvToJson,
80
+ streamCsvToJsonAsync: stream_csv_to_json_1.streamCsvToJsonAsync,
81
+ createCsvFileToJsonStream: stream_csv_to_json_1.createCsvFileToJsonStream,
82
+ createJsonCollectorStream: stream_csv_to_json_1.createJsonCollectorStream,
83
+ JtcsvError: errors_1.JtcsvError,
84
+ ValidationError: errors_1.ValidationError,
85
+ SecurityError: errors_1.SecurityError,
86
+ FileSystemError: errors_1.FileSystemError,
87
+ ParsingError: errors_1.ParsingError,
88
+ LimitError: errors_1.LimitError,
89
+ ConfigurationError: errors_1.ConfigurationError,
90
+ safeExecute: errors_1.safeExecute,
91
+ safeExecuteSync: errors_1.safeExecuteSync,
92
+ safeExecuteAsync: errors_1.safeExecuteAsync
93
+ };
94
+ exports.default = coreModule;
95
+ //# sourceMappingURL=index-core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-core.js","sourceRoot":"","sources":["../index-core.ts"],"names":[],"mappings":"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","sourcesContent":["/**\r\n * Core entry point for the jtcsv module (lightweight version)\r\n * Exports only JSON↔CSV core functions without NDJSON, TSV, or plugins\r\n * \r\n * TypeScript version with async function support\r\n */\r\n\r\nimport {\r\n jsonToCsv,\r\n jsonToCsvAsync,\r\n preprocessData,\r\n saveAsCsv,\r\n saveAsCsvAsync,\r\n deepUnwrap,\r\n validateFilePath\r\n} from './json-to-csv';\r\n\r\nimport {\r\n csvToJson,\r\n csvToJsonAsync,\r\n csvToJsonIterator,\r\n readCsvAsJson,\r\n readCsvAsJsonSync,\r\n autoDetectDelimiter,\r\n createTransformHooks,\r\n createDelimiterCache,\r\n getDelimiterCacheStats,\r\n clearDelimiterCache\r\n} from './csv-to-json';\r\n\r\nimport {\r\n saveAsJson,\r\n saveAsJsonAsync,\r\n saveAsJsonSync\r\n} from './json-save';\r\n\r\nimport {\r\n createJsonToCsvStream,\r\n streamJsonToCsv,\r\n streamJsonToCsvAsync,\r\n saveJsonStreamAsCsv,\r\n createJsonReadableStream,\r\n createCsvCollectorStream\r\n} from './stream-json-to-csv';\r\n\r\nimport {\r\n createCsvToJsonStream,\r\n streamCsvToJson,\r\n streamCsvToJsonAsync,\r\n createCsvFileToJsonStream,\r\n createJsonCollectorStream\r\n} from './stream-csv-to-json';\r\n\r\nimport {\r\n JtcsvError,\r\n ValidationError,\r\n SecurityError,\r\n FileSystemError,\r\n ParsingError,\r\n LimitError,\r\n ConfigurationError,\r\n safeExecute,\r\n safeExecuteSync,\r\n safeExecuteAsync,\r\n ErrorCode\r\n} from './errors';\r\n\r\n// Export all functions\r\nexport {\r\n // JSON to CSV functions\r\n jsonToCsv,\r\n jsonToCsvAsync,\r\n preprocessData,\r\n saveAsCsv,\r\n saveAsCsvAsync,\r\n deepUnwrap,\r\n validateFilePath,\r\n \r\n // CSV to JSON functions\r\n csvToJson,\r\n csvToJsonAsync,\r\n csvToJsonIterator,\r\n readCsvAsJson,\r\n readCsvAsJsonSync,\r\n autoDetectDelimiter,\r\n createTransformHooks,\r\n createDelimiterCache,\r\n getDelimiterCacheStats,\r\n clearDelimiterCache,\r\n\r\n // JSON save functions\r\n saveAsJson,\r\n saveAsJsonAsync,\r\n saveAsJsonSync,\r\n\r\n // Streaming JSON to CSV functions\r\n createJsonToCsvStream,\r\n streamJsonToCsv,\r\n streamJsonToCsvAsync,\r\n saveJsonStreamAsCsv,\r\n createJsonReadableStream,\r\n createCsvCollectorStream,\r\n\r\n // Streaming CSV to JSON functions\r\n createCsvToJsonStream,\r\n streamCsvToJson,\r\n streamCsvToJsonAsync,\r\n createCsvFileToJsonStream,\r\n createJsonCollectorStream,\r\n\r\n // Error classes\r\n JtcsvError,\r\n ValidationError,\r\n SecurityError,\r\n FileSystemError,\r\n ParsingError,\r\n LimitError,\r\n ConfigurationError,\r\n safeExecute,\r\n safeExecuteSync,\r\n safeExecuteAsync\r\n};\r\n\r\n// Export types\r\nexport type {\r\n JsonToCsvOptions,\r\n AsyncJsonToCsvOptions,\r\n CsvToJsonOptions,\r\n AsyncCsvToJsonOptions,\r\n SaveAsCsvOptions,\r\n SaveAsJsonOptions,\r\n JsonToCsvStreamOptions,\r\n CsvToJsonStreamOptions,\r\n AnyArray,\r\n AnyObject,\r\n WorkerTask,\r\n WorkerResult,\r\n WorkerPoolStats,\r\n NdjsonOptions,\r\n TsvOptions,\r\n TsvValidationResult,\r\n ValidateTsvOptions,\r\n PreprocessOptions,\r\n DeepUnwrapOptions\r\n} from './src/types';\r\n\r\n// Default export for CommonJS compatibility\r\nconst coreModule = {\r\n // JSON to CSV functions\r\n jsonToCsv,\r\n jsonToCsvAsync,\r\n preprocessData,\r\n saveAsCsv,\r\n saveAsCsvAsync,\r\n deepUnwrap,\r\n validateFilePath,\r\n \r\n // CSV to JSON functions\r\n csvToJson,\r\n csvToJsonAsync,\r\n csvToJsonIterator,\r\n readCsvAsJson,\r\n readCsvAsJsonSync,\r\n autoDetectDelimiter,\r\n createTransformHooks,\r\n createDelimiterCache,\r\n getDelimiterCacheStats,\r\n clearDelimiterCache,\r\n\r\n // JSON save functions\r\n saveAsJson,\r\n saveAsJsonAsync,\r\n saveAsJsonSync,\r\n\r\n // Streaming JSON to CSV functions\r\n createJsonToCsvStream,\r\n streamJsonToCsv,\r\n streamJsonToCsvAsync,\r\n saveJsonStreamAsCsv,\r\n createJsonReadableStream,\r\n createCsvCollectorStream,\r\n\r\n // Streaming CSV to JSON functions\r\n createCsvToJsonStream,\r\n streamCsvToJson,\r\n streamCsvToJsonAsync,\r\n createCsvFileToJsonStream,\r\n createJsonCollectorStream,\r\n\r\n // Error classes\r\n JtcsvError,\r\n ValidationError,\r\n SecurityError,\r\n FileSystemError,\r\n ParsingError,\r\n LimitError,\r\n ConfigurationError,\r\n safeExecute,\r\n safeExecuteSync,\r\n safeExecuteAsync\r\n};\r\n\r\nexport default coreModule;"]}
package/dist/index.js ADDED
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ var __importDefault = (this && this.__importDefault) || function (mod) {
17
+ return (mod && mod.__esModule) ? mod : { "default": mod };
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.isUrl = exports.isEmail = exports.csvToJsonWithEncoding = exports.autoDetectAndConvert = exports.convertToUtf8 = exports.detectEncoding = exports.createValidatedParser = exports.createYupValidationHook = exports.createZodValidationHook = exports.createTsvToJsonStream = exports.createJsonToTsvStream = exports.saveAsTsvSync = exports.saveAsTsv = exports.readTsvAsJsonSync = exports.readTsvAsJson = exports.validateTsv = exports.isTsv = exports.tsvToJson = exports.jsonToTsv = exports.getNdjsonStats = exports.createCsvToNdjsonStream = exports.createNdjsonToCsvStream = exports.parseNdjsonStream = exports.ndjsonToJson = exports.jsonToNdjson = exports.csvFileToJsonStream = exports.csvToJsonStream = exports.csvToJsonFileSync = exports.csvToJsonFile = exports.createJsonCollectorStream = exports.createCsvFileToJsonStream = exports.streamCsvToJson = exports.createCsvToJsonStream = exports.createCsvCollectorStream = exports.createJsonReadableStream = exports.saveJsonStreamAsCsv = exports.streamJsonToCsv = exports.createJsonToCsvStream = exports.saveAsJsonSync = exports.saveAsJson = exports.autoDetectDelimiter = exports.readCsvAsJsonSync = exports.readCsvAsJson = exports.csvToJsonIterator = exports.csvToJson = exports.validateFilePath = exports.deepUnwrap = exports.saveAsCsv = exports.preprocessData = exports.jsonToCsv = void 0;
21
+ exports.asyncIterUtils = exports.createBatchProcessor = exports.validators = exports.isDate = void 0;
22
+ var json_to_csv_1 = require("./json-to-csv");
23
+ Object.defineProperty(exports, "jsonToCsv", { enumerable: true, get: function () { return json_to_csv_1.jsonToCsv; } });
24
+ Object.defineProperty(exports, "preprocessData", { enumerable: true, get: function () { return json_to_csv_1.preprocessData; } });
25
+ Object.defineProperty(exports, "saveAsCsv", { enumerable: true, get: function () { return json_to_csv_1.saveAsCsv; } });
26
+ Object.defineProperty(exports, "deepUnwrap", { enumerable: true, get: function () { return json_to_csv_1.deepUnwrap; } });
27
+ Object.defineProperty(exports, "validateFilePath", { enumerable: true, get: function () { return json_to_csv_1.validateFilePath; } });
28
+ var csv_to_json_1 = require("./csv-to-json");
29
+ Object.defineProperty(exports, "csvToJson", { enumerable: true, get: function () { return csv_to_json_1.csvToJson; } });
30
+ Object.defineProperty(exports, "csvToJsonIterator", { enumerable: true, get: function () { return csv_to_json_1.csvToJsonIterator; } });
31
+ Object.defineProperty(exports, "readCsvAsJson", { enumerable: true, get: function () { return csv_to_json_1.readCsvAsJson; } });
32
+ Object.defineProperty(exports, "readCsvAsJsonSync", { enumerable: true, get: function () { return csv_to_json_1.readCsvAsJsonSync; } });
33
+ Object.defineProperty(exports, "autoDetectDelimiter", { enumerable: true, get: function () { return csv_to_json_1.autoDetectDelimiter; } });
34
+ var json_save_1 = require("./json-save");
35
+ Object.defineProperty(exports, "saveAsJson", { enumerable: true, get: function () { return json_save_1.saveAsJson; } });
36
+ Object.defineProperty(exports, "saveAsJsonSync", { enumerable: true, get: function () { return json_save_1.saveAsJsonSync; } });
37
+ var stream_json_to_csv_1 = require("./stream-json-to-csv");
38
+ Object.defineProperty(exports, "createJsonToCsvStream", { enumerable: true, get: function () { return stream_json_to_csv_1.createJsonToCsvStream; } });
39
+ Object.defineProperty(exports, "streamJsonToCsv", { enumerable: true, get: function () { return stream_json_to_csv_1.streamJsonToCsv; } });
40
+ Object.defineProperty(exports, "saveJsonStreamAsCsv", { enumerable: true, get: function () { return stream_json_to_csv_1.saveJsonStreamAsCsv; } });
41
+ Object.defineProperty(exports, "createJsonReadableStream", { enumerable: true, get: function () { return stream_json_to_csv_1.createJsonReadableStream; } });
42
+ Object.defineProperty(exports, "createCsvCollectorStream", { enumerable: true, get: function () { return stream_json_to_csv_1.createCsvCollectorStream; } });
43
+ var stream_csv_to_json_1 = require("./stream-csv-to-json");
44
+ Object.defineProperty(exports, "createCsvToJsonStream", { enumerable: true, get: function () { return stream_csv_to_json_1.createCsvToJsonStream; } });
45
+ Object.defineProperty(exports, "streamCsvToJson", { enumerable: true, get: function () { return stream_csv_to_json_1.streamCsvToJson; } });
46
+ Object.defineProperty(exports, "createCsvFileToJsonStream", { enumerable: true, get: function () { return stream_csv_to_json_1.createCsvFileToJsonStream; } });
47
+ Object.defineProperty(exports, "createJsonCollectorStream", { enumerable: true, get: function () { return stream_csv_to_json_1.createJsonCollectorStream; } });
48
+ var csv_to_json_2 = require("./csv-to-json");
49
+ Object.defineProperty(exports, "csvToJsonFile", { enumerable: true, get: function () { return csv_to_json_2.readCsvAsJson; } });
50
+ var csv_to_json_3 = require("./csv-to-json");
51
+ Object.defineProperty(exports, "csvToJsonFileSync", { enumerable: true, get: function () { return csv_to_json_3.readCsvAsJsonSync; } });
52
+ var stream_csv_to_json_2 = require("./stream-csv-to-json");
53
+ Object.defineProperty(exports, "csvToJsonStream", { enumerable: true, get: function () { return stream_csv_to_json_2.createCsvToJsonStream; } });
54
+ var stream_csv_to_json_3 = require("./stream-csv-to-json");
55
+ Object.defineProperty(exports, "csvFileToJsonStream", { enumerable: true, get: function () { return stream_csv_to_json_3.createCsvFileToJsonStream; } });
56
+ const ndjson_parser_1 = __importDefault(require("./src/formats/ndjson-parser"));
57
+ const tsv_parser_1 = __importDefault(require("./src/formats/tsv-parser"));
58
+ exports.jsonToNdjson = ndjson_parser_1.default.toNdjson;
59
+ exports.ndjsonToJson = ndjson_parser_1.default.fromNdjson;
60
+ exports.parseNdjsonStream = ndjson_parser_1.default.parseStream;
61
+ exports.createNdjsonToCsvStream = ndjson_parser_1.default.createNdjsonToCsvStream;
62
+ exports.createCsvToNdjsonStream = ndjson_parser_1.default.createCsvToNdjsonStream;
63
+ exports.getNdjsonStats = ndjson_parser_1.default.getStats;
64
+ exports.jsonToTsv = tsv_parser_1.default.jsonToTsv;
65
+ exports.tsvToJson = tsv_parser_1.default.tsvToJson;
66
+ exports.isTsv = tsv_parser_1.default.isTsv;
67
+ exports.validateTsv = tsv_parser_1.default.validateTsv;
68
+ exports.readTsvAsJson = tsv_parser_1.default.readTsvAsJson;
69
+ exports.readTsvAsJsonSync = tsv_parser_1.default.readTsvAsJsonSync;
70
+ exports.saveAsTsv = tsv_parser_1.default.saveAsTsv;
71
+ exports.saveAsTsvSync = tsv_parser_1.default.saveAsTsvSync;
72
+ exports.createJsonToTsvStream = tsv_parser_1.default.createJsonToTsvStream;
73
+ exports.createTsvToJsonStream = tsv_parser_1.default.createTsvToJsonStream;
74
+ var zod_adapter_1 = require("./src/utils/zod-adapter");
75
+ Object.defineProperty(exports, "createZodValidationHook", { enumerable: true, get: function () { return zod_adapter_1.createZodValidationHook; } });
76
+ Object.defineProperty(exports, "createYupValidationHook", { enumerable: true, get: function () { return zod_adapter_1.createYupValidationHook; } });
77
+ Object.defineProperty(exports, "createValidatedParser", { enumerable: true, get: function () { return zod_adapter_1.createValidatedParser; } });
78
+ var encoding_support_1 = require("./src/utils/encoding-support");
79
+ Object.defineProperty(exports, "detectEncoding", { enumerable: true, get: function () { return encoding_support_1.detectEncoding; } });
80
+ Object.defineProperty(exports, "convertToUtf8", { enumerable: true, get: function () { return encoding_support_1.convertToUtf8; } });
81
+ Object.defineProperty(exports, "autoDetectAndConvert", { enumerable: true, get: function () { return encoding_support_1.autoDetectAndConvert; } });
82
+ Object.defineProperty(exports, "csvToJsonWithEncoding", { enumerable: true, get: function () { return encoding_support_1.csvToJsonWithEncoding; } });
83
+ var validators_1 = require("./src/utils/validators");
84
+ Object.defineProperty(exports, "isEmail", { enumerable: true, get: function () { return validators_1.isEmail; } });
85
+ Object.defineProperty(exports, "isUrl", { enumerable: true, get: function () { return validators_1.isUrl; } });
86
+ Object.defineProperty(exports, "isDate", { enumerable: true, get: function () { return validators_1.isDate; } });
87
+ Object.defineProperty(exports, "validators", { enumerable: true, get: function () { return validators_1.validators; } });
88
+ var node_optimizations_1 = require("./src/core/node-optimizations");
89
+ Object.defineProperty(exports, "createBatchProcessor", { enumerable: true, get: function () { return node_optimizations_1.createBatchProcessor; } });
90
+ Object.defineProperty(exports, "asyncIterUtils", { enumerable: true, get: function () { return node_optimizations_1.asyncIterUtils; } });
91
+ __exportStar(require("./errors"), exports);
92
+ __exportStar(require("./src/types/index"), exports);
93
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAIA,6CAAmG;AAA1F,wGAAA,SAAS,OAAA;AAAE,6GAAA,cAAc,OAAA;AAAE,wGAAA,SAAS,OAAA;AAAE,yGAAA,UAAU,OAAA;AAAE,+GAAA,gBAAgB,OAAA;AAC3E,6CAAoH;AAA3G,wGAAA,SAAS,OAAA;AAAE,gHAAA,iBAAiB,OAAA;AAAE,4GAAA,aAAa,OAAA;AAAE,gHAAA,iBAAiB,OAAA;AAAE,kHAAA,mBAAmB,OAAA;AAC5F,yCAAyD;AAAhD,uGAAA,UAAU,OAAA;AAAE,2GAAA,cAAc,OAAA;AACnC,2DAAuJ;AAA9I,2HAAA,qBAAqB,OAAA;AAAE,qHAAA,eAAe,OAAA;AAAE,yHAAA,mBAAmB,OAAA;AAAE,8HAAA,wBAAwB,OAAA;AAAE,8HAAA,wBAAwB,OAAA;AACxH,2DAAoI;AAA3H,2HAAA,qBAAqB,OAAA;AAAE,qHAAA,eAAe,OAAA;AAAE,+HAAA,yBAAyB,OAAA;AAAE,+HAAA,yBAAyB,OAAA;AAmBrG,6CAA+D;AAAtD,4GAAA,aAAa,OAAiB;AAUvC,6CAAuE;AAA9D,gHAAA,iBAAiB,OAAqB;AAU/C,2DAAgF;AAAvE,qHAAA,qBAAqB,OAAmB;AAUjD,2DAAwF;AAA/E,yHAAA,yBAAyB,OAAuB;AAGzD,gFAAuD;AACvD,0EAAiD;AAEpC,QAAA,YAAY,GAAG,uBAAY,CAAC,QAAQ,CAAC;AACrC,QAAA,YAAY,GAAG,uBAAY,CAAC,UAAU,CAAC;AACvC,QAAA,iBAAiB,GAAG,uBAAY,CAAC,WAAW,CAAC;AAC7C,QAAA,uBAAuB,GAAG,uBAAY,CAAC,uBAAuB,CAAC;AAC/D,QAAA,uBAAuB,GAAG,uBAAY,CAAC,uBAAuB,CAAC;AAC/D,QAAA,cAAc,GAAG,uBAAY,CAAC,QAAQ,CAAC;AAEvC,QAAA,SAAS,GAAG,oBAAS,CAAC,SAAS,CAAC;AAChC,QAAA,SAAS,GAAG,oBAAS,CAAC,SAAS,CAAC;AAChC,QAAA,KAAK,GAAG,oBAAS,CAAC,KAAK,CAAC;AACxB,QAAA,WAAW,GAAG,oBAAS,CAAC,WAAW,CAAC;AACpC,QAAA,aAAa,GAAG,oBAAS,CAAC,aAAa,CAAC;AACxC,QAAA,iBAAiB,GAAG,oBAAS,CAAC,iBAAiB,CAAC;AAChD,QAAA,SAAS,GAAG,oBAAS,CAAC,SAAS,CAAC;AAChC,QAAA,aAAa,GAAG,oBAAS,CAAC,aAAa,CAAC;AACxC,QAAA,qBAAqB,GAAG,oBAAS,CAAC,qBAAqB,CAAC;AACxD,QAAA,qBAAqB,GAAG,oBAAS,CAAC,qBAAqB,CAAC;AACrE,uDAAkH;AAAzG,sHAAA,uBAAuB,OAAA;AAAE,sHAAA,uBAAuB,OAAA;AAAE,oHAAA,qBAAqB,OAAA;AAChF,iEAA0H;AAAjH,kHAAA,cAAc,OAAA;AAAE,iHAAA,aAAa,OAAA;AAAE,wHAAA,oBAAoB,OAAA;AAAE,yHAAA,qBAAqB,OAAA;AACnF,qDAA4E;AAAnE,qGAAA,OAAO,OAAA;AAAE,mGAAA,KAAK,OAAA;AAAE,oGAAA,MAAM,OAAA;AAAE,wGAAA,UAAU,OAAA;AAC3C,oEAAqF;AAA5E,0HAAA,oBAAoB,OAAA;AAAE,oHAAA,cAAc,OAAA;AAG7C,2CAAyB;AAGzB,oDAAkC","sourcesContent":["// Main entry point for the jtcsv module\r\n// Exports both JSON→CSV and CSV→JSON functions\r\n\r\n// Re-export all functions from individual modules\r\nexport { jsonToCsv, preprocessData, saveAsCsv, deepUnwrap, validateFilePath } from './json-to-csv';\r\nexport { csvToJson, csvToJsonIterator, readCsvAsJson, readCsvAsJsonSync, autoDetectDelimiter } from './csv-to-json';\r\nexport { saveAsJson, saveAsJsonSync } from './json-save';\r\nexport { createJsonToCsvStream, streamJsonToCsv, saveJsonStreamAsCsv, createJsonReadableStream, createCsvCollectorStream } from './stream-json-to-csv';\r\nexport { createCsvToJsonStream, streamCsvToJson, createCsvFileToJsonStream, createJsonCollectorStream } from './stream-csv-to-json';\r\n\r\n// ============================================================================\r\n// DEPRECATED ALIASES - Will be removed in v4.0.0\r\n// Use canonical functions instead:\r\n// - csvToJsonFile() → readCsvAsJson()\r\n// - csvToJsonFileSync() → readCsvAsJsonSync()\r\n// - csvToJsonStream() → createCsvToJsonStream()\r\n// - csvFileToJsonStream() → createCsvFileToJsonStream()\r\n// ============================================================================\r\n\r\n/**\r\n * @deprecated Use `readCsvAsJson()` instead. This alias will be removed in v4.0.0.\r\n * @example\r\n * // Before (deprecated):\r\n * const data = await csvToJsonFile('data.csv');\r\n * // After:\r\n * const data = await readCsvAsJson('data.csv');\r\n */\r\nexport { readCsvAsJson as csvToJsonFile } from './csv-to-json';\r\n\r\n/**\r\n * @deprecated Use `readCsvAsJsonSync()` instead. This alias will be removed in v4.0.0.\r\n * @example\r\n * // Before (deprecated):\r\n * const data = csvToJsonFileSync('data.csv');\r\n * // After:\r\n * const data = readCsvAsJsonSync('data.csv');\r\n */\r\nexport { readCsvAsJsonSync as csvToJsonFileSync } from './csv-to-json';\r\n\r\n/**\r\n * @deprecated Use `createCsvToJsonStream()` instead. This alias will be removed in v4.0.0.\r\n * @example\r\n * // Before (deprecated):\r\n * const stream = csvToJsonStream(options);\r\n * // After:\r\n * const stream = createCsvToJsonStream(options);\r\n */\r\nexport { createCsvToJsonStream as csvToJsonStream } from './stream-csv-to-json';\r\n\r\n/**\r\n * @deprecated Use `createCsvFileToJsonStream()` instead. This alias will be removed in v4.0.0.\r\n * @example\r\n * // Before (deprecated):\r\n * const stream = csvFileToJsonStream(filePath, options);\r\n * // After:\r\n * const stream = createCsvFileToJsonStream(filePath, options);\r\n */\r\nexport { createCsvFileToJsonStream as csvFileToJsonStream } from './stream-csv-to-json';\r\n\r\n// Re-export from submodules\r\nimport NdjsonParser from './src/formats/ndjson-parser';\r\nimport TsvParser from './src/formats/tsv-parser';\r\n\r\nexport const jsonToNdjson = NdjsonParser.toNdjson;\r\nexport const ndjsonToJson = NdjsonParser.fromNdjson;\r\nexport const parseNdjsonStream = NdjsonParser.parseStream;\r\nexport const createNdjsonToCsvStream = NdjsonParser.createNdjsonToCsvStream;\r\nexport const createCsvToNdjsonStream = NdjsonParser.createCsvToNdjsonStream;\r\nexport const getNdjsonStats = NdjsonParser.getStats;\r\n\r\nexport const jsonToTsv = TsvParser.jsonToTsv;\r\nexport const tsvToJson = TsvParser.tsvToJson;\r\nexport const isTsv = TsvParser.isTsv;\r\nexport const validateTsv = TsvParser.validateTsv;\r\nexport const readTsvAsJson = TsvParser.readTsvAsJson;\r\nexport const readTsvAsJsonSync = TsvParser.readTsvAsJsonSync;\r\nexport const saveAsTsv = TsvParser.saveAsTsv;\r\nexport const saveAsTsvSync = TsvParser.saveAsTsvSync;\r\nexport const createJsonToTsvStream = TsvParser.createJsonToTsvStream;\r\nexport const createTsvToJsonStream = TsvParser.createTsvToJsonStream;\r\nexport { createZodValidationHook, createYupValidationHook, createValidatedParser } from './src/utils/zod-adapter';\r\nexport { detectEncoding, convertToUtf8, autoDetectAndConvert, csvToJsonWithEncoding } from './src/utils/encoding-support';\r\nexport { isEmail, isUrl, isDate, validators } from './src/utils/validators';\r\nexport { createBatchProcessor, asyncIterUtils } from './src/core/node-optimizations';\r\n\r\n// Export error classes\r\nexport * from './errors';\r\n\r\n// Export types\r\nexport * from './src/types/index';\r\n"]}
@@ -0,0 +1,229 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.validateJsonFilePath = validateJsonFilePath;
37
+ exports.saveAsJson = saveAsJson;
38
+ exports.saveAsJsonSync = saveAsJsonSync;
39
+ exports.saveAsJsonAsync = saveAsJsonAsync;
40
+ exports.validateFilePath = validateFilePath;
41
+ exports.estimateJsonSize = estimateJsonSize;
42
+ exports.createJsonFile = createJsonFile;
43
+ exports.saveJsonFiles = saveJsonFiles;
44
+ const errors_1 = require("./errors");
45
+ const fs = __importStar(require("fs"));
46
+ const path = __importStar(require("path"));
47
+ function validateJsonFilePath(filePath) {
48
+ if (typeof filePath !== 'string' || filePath.trim() === '') {
49
+ throw new errors_1.ValidationError('File path must be a non-empty string');
50
+ }
51
+ if (!filePath.toLowerCase().endsWith('.json')) {
52
+ throw new errors_1.ValidationError('File must have .json extension');
53
+ }
54
+ if (filePath.startsWith('\\\\') || filePath.startsWith('//')) {
55
+ throw new errors_1.SecurityError('UNC paths are not allowed');
56
+ }
57
+ const absolutePath = path.resolve(filePath);
58
+ const normalizedPath = path.normalize(filePath);
59
+ if (normalizedPath.includes('..') ||
60
+ /\\\.\.\\|\/\.\.\//.test(filePath) ||
61
+ filePath.startsWith('..') ||
62
+ filePath.includes('/..')) {
63
+ throw new errors_1.SecurityError('Directory traversal detected in file path');
64
+ }
65
+ return absolutePath;
66
+ }
67
+ function validateJsonData(data, options) {
68
+ if (data === undefined || data === null) {
69
+ throw new errors_1.ValidationError('Data cannot be null or undefined');
70
+ }
71
+ if (options && typeof options !== 'object') {
72
+ throw new errors_1.ConfigurationError('Options must be an object');
73
+ }
74
+ if (options?.prettyPrint !== undefined && typeof options.prettyPrint !== 'boolean') {
75
+ throw new errors_1.ConfigurationError('prettyPrint must be a boolean');
76
+ }
77
+ if (options?.maxSize && (typeof options.maxSize !== 'number' || options.maxSize <= 0)) {
78
+ throw new errors_1.ConfigurationError('maxSize must be a positive number');
79
+ }
80
+ return true;
81
+ }
82
+ async function saveAsJson(data, filePath, options = {}) {
83
+ return (0, errors_1.safeExecuteAsync)(async () => {
84
+ const safeOptions = options === null ? {} : options;
85
+ validateJsonData(data, safeOptions);
86
+ const absolutePath = validateJsonFilePath(filePath);
87
+ const { prettyPrint = false, maxSize = 10485760 } = safeOptions;
88
+ let jsonString;
89
+ try {
90
+ jsonString = prettyPrint
91
+ ? JSON.stringify(data, null, 2)
92
+ : JSON.stringify(data);
93
+ }
94
+ catch (error) {
95
+ const message = error?.message ? String(error.message) : 'Unknown error';
96
+ if (message.toLowerCase().includes('circular')) {
97
+ throw new errors_1.ValidationError('JSON contains circular references');
98
+ }
99
+ throw new errors_1.ValidationError(`Failed to stringify JSON: ${message}`);
100
+ }
101
+ const byteLength = Buffer.byteLength(jsonString, 'utf8');
102
+ if (byteLength > maxSize) {
103
+ throw new errors_1.LimitError(`JSON size exceeds maximum limit of ${maxSize} bytes`, maxSize, byteLength);
104
+ }
105
+ const dir = path.dirname(absolutePath);
106
+ if (!fs.existsSync(dir)) {
107
+ fs.mkdirSync(dir, { recursive: true });
108
+ }
109
+ try {
110
+ await fs.promises.writeFile(absolutePath, jsonString, 'utf8');
111
+ }
112
+ catch (error) {
113
+ if (error?.code === 'EACCES') {
114
+ throw new errors_1.FileSystemError('Permission denied', error);
115
+ }
116
+ if (error?.code === 'ENOENT') {
117
+ throw new errors_1.FileSystemError('Directory does not exist', error);
118
+ }
119
+ if (error?.code === 'ENOSPC') {
120
+ throw new errors_1.FileSystemError('No space left on device', error);
121
+ }
122
+ throw new errors_1.FileSystemError(`Failed to write JSON file: ${error?.message || 'unknown error'}`, error);
123
+ }
124
+ return absolutePath;
125
+ }, 'FILE_SYSTEM_ERROR', { function: 'saveAsJson' });
126
+ }
127
+ function saveAsJsonSync(data, filePath, options = {}) {
128
+ return (0, errors_1.safeExecuteSync)(() => {
129
+ const safeOptions = options === null ? {} : options;
130
+ validateJsonData(data, safeOptions);
131
+ const absolutePath = validateJsonFilePath(filePath);
132
+ const { prettyPrint = false, maxSize = 10485760 } = safeOptions;
133
+ let jsonString;
134
+ try {
135
+ jsonString = prettyPrint
136
+ ? JSON.stringify(data, null, 2)
137
+ : JSON.stringify(data);
138
+ }
139
+ catch (error) {
140
+ const message = error?.message ? String(error.message) : 'Unknown error';
141
+ if (message.toLowerCase().includes('circular')) {
142
+ throw new errors_1.ValidationError('JSON contains circular references');
143
+ }
144
+ throw new errors_1.ValidationError(`Failed to stringify JSON: ${message}`);
145
+ }
146
+ const byteLength = Buffer.byteLength(jsonString, 'utf8');
147
+ if (byteLength > maxSize) {
148
+ throw new errors_1.LimitError(`JSON size exceeds maximum limit of ${maxSize} bytes`, maxSize, byteLength);
149
+ }
150
+ const dir = path.dirname(absolutePath);
151
+ if (!fs.existsSync(dir)) {
152
+ fs.mkdirSync(dir, { recursive: true });
153
+ }
154
+ try {
155
+ fs.writeFileSync(absolutePath, jsonString, 'utf8');
156
+ }
157
+ catch (error) {
158
+ if (error?.code === 'EACCES') {
159
+ throw new errors_1.FileSystemError('Permission denied', error);
160
+ }
161
+ if (error?.code === 'ENOENT') {
162
+ throw new errors_1.FileSystemError('Directory does not exist', error);
163
+ }
164
+ if (error?.code === 'ENOSPC') {
165
+ throw new errors_1.FileSystemError('No space left on device', error);
166
+ }
167
+ throw new errors_1.FileSystemError(`Failed to write JSON file: ${error?.message || 'unknown error'}`, error);
168
+ }
169
+ return absolutePath;
170
+ }, 'FILE_SYSTEM_ERROR', { function: 'saveAsJsonSync' });
171
+ }
172
+ async function saveAsJsonAsync(data, filePath, options = {}) {
173
+ return (0, errors_1.safeExecuteAsync)(async () => {
174
+ const { useWorkers = false, workerCount, chunkSize, onProgress, ...saveOptions } = options;
175
+ await saveAsJson(data, filePath, saveOptions);
176
+ }, 'FILE_SYSTEM_ERROR', { function: 'saveAsJsonAsync' });
177
+ }
178
+ function validateFilePath(filePath) {
179
+ try {
180
+ const absolutePath = validateJsonFilePath(filePath);
181
+ return {
182
+ isValid: true,
183
+ absolutePath
184
+ };
185
+ }
186
+ catch (error) {
187
+ return {
188
+ isValid: false,
189
+ error: error.message,
190
+ errorCode: error.code || 'VALIDATION_ERROR'
191
+ };
192
+ }
193
+ }
194
+ function estimateJsonSize(data, options = {}) {
195
+ const { prettyPrint = false } = options;
196
+ const jsonString = prettyPrint
197
+ ? JSON.stringify(data, null, 2)
198
+ : JSON.stringify(data);
199
+ return Buffer.byteLength(jsonString, 'utf8');
200
+ }
201
+ async function createJsonFile(data, filePath, options = {}) {
202
+ try {
203
+ await saveAsJson(data, filePath, options);
204
+ const size = estimateJsonSize(data, options);
205
+ return {
206
+ success: true,
207
+ filePath,
208
+ size
209
+ };
210
+ }
211
+ catch (error) {
212
+ return {
213
+ success: false,
214
+ filePath,
215
+ size: 0,
216
+ error
217
+ };
218
+ }
219
+ }
220
+ async function saveJsonFiles(files, commonOptions = {}) {
221
+ const results = [];
222
+ for (const file of files) {
223
+ const options = { ...commonOptions, ...file.options };
224
+ const result = await createJsonFile(file.data, file.filePath, options);
225
+ results.push(result);
226
+ }
227
+ return results;
228
+ }
229
+ //# sourceMappingURL=json-save.js.map