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.
Files changed (246) hide show
  1. package/README.md +204 -115
  2. package/bin/jtcsv.ts +2612 -0
  3. package/browser.d.ts +142 -0
  4. package/dist/benchmark.js +446 -0
  5. package/dist/benchmark.js.map +1 -0
  6. package/dist/bin/jtcsv.js +1940 -0
  7. package/dist/bin/jtcsv.js.map +1 -0
  8. package/dist/csv-to-json.js +1262 -0
  9. package/dist/csv-to-json.js.map +1 -0
  10. package/dist/errors.js +291 -0
  11. package/dist/errors.js.map +1 -0
  12. package/dist/eslint.config.js +147 -0
  13. package/dist/eslint.config.js.map +1 -0
  14. package/dist/index-core.js +95 -0
  15. package/dist/index-core.js.map +1 -0
  16. package/dist/index.js +93 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/json-save.js +229 -0
  19. package/dist/json-save.js.map +1 -0
  20. package/dist/json-to-csv.js +576 -0
  21. package/dist/json-to-csv.js.map +1 -0
  22. package/dist/jtcsv-core.cjs.js +1736 -0
  23. package/dist/jtcsv-core.cjs.js.map +1 -0
  24. package/dist/jtcsv-core.esm.js +1708 -0
  25. package/dist/jtcsv-core.esm.js.map +1 -0
  26. package/dist/jtcsv-core.umd.js +1742 -0
  27. package/dist/jtcsv-core.umd.js.map +1 -0
  28. package/dist/jtcsv-full.cjs.js +2241 -0
  29. package/dist/jtcsv-full.cjs.js.map +1 -0
  30. package/dist/jtcsv-full.esm.js +2209 -0
  31. package/dist/jtcsv-full.esm.js.map +1 -0
  32. package/dist/jtcsv-full.umd.js +2247 -0
  33. package/dist/jtcsv-full.umd.js.map +1 -0
  34. package/dist/jtcsv-workers.esm.js +768 -0
  35. package/dist/jtcsv-workers.esm.js.map +1 -0
  36. package/dist/jtcsv-workers.umd.js +782 -0
  37. package/dist/jtcsv-workers.umd.js.map +1 -0
  38. package/dist/jtcsv.cjs.js +1996 -2048
  39. package/dist/jtcsv.cjs.js.map +1 -1
  40. package/dist/jtcsv.esm.js +1992 -2048
  41. package/dist/jtcsv.esm.js.map +1 -1
  42. package/dist/jtcsv.umd.js +2157 -2209
  43. package/dist/jtcsv.umd.js.map +1 -1
  44. package/dist/plugins/express-middleware/index.js +350 -0
  45. package/dist/plugins/express-middleware/index.js.map +1 -0
  46. package/dist/plugins/fastify-plugin/index.js +315 -0
  47. package/dist/plugins/fastify-plugin/index.js.map +1 -0
  48. package/dist/plugins/hono/index.js +111 -0
  49. package/dist/plugins/hono/index.js.map +1 -0
  50. package/dist/plugins/nestjs/index.js +112 -0
  51. package/dist/plugins/nestjs/index.js.map +1 -0
  52. package/dist/plugins/nuxt/index.js +53 -0
  53. package/dist/plugins/nuxt/index.js.map +1 -0
  54. package/dist/plugins/remix/index.js +133 -0
  55. package/dist/plugins/remix/index.js.map +1 -0
  56. package/dist/plugins/sveltekit/index.js +155 -0
  57. package/dist/plugins/sveltekit/index.js.map +1 -0
  58. package/dist/plugins/trpc/index.js +136 -0
  59. package/dist/plugins/trpc/index.js.map +1 -0
  60. package/dist/run-demo.js +49 -0
  61. package/dist/run-demo.js.map +1 -0
  62. package/dist/src/browser/browser-functions.js +193 -0
  63. package/dist/src/browser/browser-functions.js.map +1 -0
  64. package/dist/src/browser/core.js +123 -0
  65. package/dist/src/browser/core.js.map +1 -0
  66. package/dist/src/browser/csv-to-json-browser.js +353 -0
  67. package/dist/src/browser/csv-to-json-browser.js.map +1 -0
  68. package/dist/src/browser/errors-browser.js +219 -0
  69. package/dist/src/browser/errors-browser.js.map +1 -0
  70. package/dist/src/browser/extensions/plugins.js +106 -0
  71. package/dist/src/browser/extensions/plugins.js.map +1 -0
  72. package/dist/src/browser/extensions/workers.js +66 -0
  73. package/dist/src/browser/extensions/workers.js.map +1 -0
  74. package/dist/src/browser/index.js +140 -0
  75. package/dist/src/browser/index.js.map +1 -0
  76. package/dist/src/browser/json-to-csv-browser.js +225 -0
  77. package/dist/src/browser/json-to-csv-browser.js.map +1 -0
  78. package/dist/src/browser/streams.js +340 -0
  79. package/dist/src/browser/streams.js.map +1 -0
  80. package/dist/src/browser/workers/csv-parser.worker.js +264 -0
  81. package/dist/src/browser/workers/csv-parser.worker.js.map +1 -0
  82. package/dist/src/browser/workers/worker-pool.js +338 -0
  83. package/dist/src/browser/workers/worker-pool.js.map +1 -0
  84. package/dist/src/core/delimiter-cache.js +196 -0
  85. package/dist/src/core/delimiter-cache.js.map +1 -0
  86. package/dist/src/core/node-optimizations.js +279 -0
  87. package/dist/src/core/node-optimizations.js.map +1 -0
  88. package/dist/src/core/plugin-system.js +399 -0
  89. package/dist/src/core/plugin-system.js.map +1 -0
  90. package/dist/src/core/transform-hooks.js +348 -0
  91. package/dist/src/core/transform-hooks.js.map +1 -0
  92. package/dist/src/engines/fast-path-engine-new.js +262 -0
  93. package/dist/src/engines/fast-path-engine-new.js.map +1 -0
  94. package/dist/src/engines/fast-path-engine.js +671 -0
  95. package/dist/src/engines/fast-path-engine.js.map +1 -0
  96. package/dist/src/errors.js +18 -0
  97. package/dist/src/errors.js.map +1 -0
  98. package/dist/src/formats/ndjson-parser.js +332 -0
  99. package/dist/src/formats/ndjson-parser.js.map +1 -0
  100. package/dist/src/formats/tsv-parser.js +230 -0
  101. package/dist/src/formats/tsv-parser.js.map +1 -0
  102. package/dist/src/index-with-plugins.js +259 -0
  103. package/dist/src/index-with-plugins.js.map +1 -0
  104. package/dist/src/types/index.js +3 -0
  105. package/dist/src/types/index.js.map +1 -0
  106. package/dist/src/utils/bom-utils.js +267 -0
  107. package/dist/src/utils/bom-utils.js.map +1 -0
  108. package/dist/src/utils/encoding-support.js +77 -0
  109. package/dist/src/utils/encoding-support.js.map +1 -0
  110. package/dist/src/utils/schema-validator.js +609 -0
  111. package/dist/src/utils/schema-validator.js.map +1 -0
  112. package/dist/src/utils/transform-loader.js +281 -0
  113. package/dist/src/utils/transform-loader.js.map +1 -0
  114. package/dist/src/utils/validators.js +40 -0
  115. package/dist/src/utils/validators.js.map +1 -0
  116. package/dist/src/utils/zod-adapter.js +144 -0
  117. package/dist/src/utils/zod-adapter.js.map +1 -0
  118. package/dist/src/web-server/index.js +648 -0
  119. package/dist/src/web-server/index.js.map +1 -0
  120. package/dist/src/workers/csv-multithreaded.js +211 -0
  121. package/dist/src/workers/csv-multithreaded.js.map +1 -0
  122. package/dist/src/workers/csv-parser.worker.js +179 -0
  123. package/dist/src/workers/csv-parser.worker.js.map +1 -0
  124. package/dist/src/workers/worker-pool.js +228 -0
  125. package/dist/src/workers/worker-pool.js.map +1 -0
  126. package/dist/stream-csv-to-json.js +665 -0
  127. package/dist/stream-csv-to-json.js.map +1 -0
  128. package/dist/stream-json-to-csv.js +389 -0
  129. package/dist/stream-json-to-csv.js.map +1 -0
  130. package/examples/advanced/conditional-transformations.ts +446 -0
  131. package/examples/advanced/csv-parser.worker.ts +89 -0
  132. package/examples/advanced/nested-objects-example.ts +306 -0
  133. package/examples/advanced/performance-optimization.ts +504 -0
  134. package/examples/advanced/run-demo-server.ts +116 -0
  135. package/examples/advanced/web-worker-usage.html +874 -0
  136. package/examples/async-multithreaded-example.ts +335 -0
  137. package/examples/cli-advanced-usage.md +290 -0
  138. package/examples/{cli-batch-processing.js → cli-batch-processing.ts} +38 -38
  139. package/examples/{cli-tool.js → cli-tool.ts} +5 -8
  140. package/examples/{error-handling.js → error-handling.ts} +356 -324
  141. package/examples/{express-api.js → express-api.ts} +161 -164
  142. package/examples/{large-dataset-example.js → large-dataset-example.ts} +201 -182
  143. package/examples/{ndjson-processing.js → ndjson-processing.ts} +456 -434
  144. package/examples/{plugin-excel-exporter.js → plugin-excel-exporter.ts} +6 -7
  145. package/examples/react-integration.tsx +637 -0
  146. package/examples/{schema-validation.js → schema-validation.ts} +2 -2
  147. package/examples/simple-usage.ts +194 -0
  148. package/examples/{streaming-example.js → streaming-example.ts} +12 -12
  149. package/index.d.ts +187 -18
  150. package/package.json +75 -81
  151. package/plugins.d.ts +37 -0
  152. package/schema.d.ts +103 -0
  153. package/src/browser/browser-functions.ts +402 -0
  154. package/src/browser/core.ts +152 -0
  155. package/src/browser/csv-to-json-browser.d.ts +3 -0
  156. package/src/browser/csv-to-json-browser.ts +494 -0
  157. package/src/browser/{errors-browser.js → errors-browser.ts} +305 -197
  158. package/src/browser/extensions/plugins.ts +93 -0
  159. package/src/browser/extensions/workers.ts +39 -0
  160. package/src/browser/globals.d.ts +5 -0
  161. package/src/browser/index.ts +192 -0
  162. package/src/browser/json-to-csv-browser.d.ts +3 -0
  163. package/src/browser/json-to-csv-browser.ts +338 -0
  164. package/src/browser/streams.ts +403 -0
  165. package/src/browser/workers/{csv-parser.worker.js → csv-parser.worker.ts} +3 -3
  166. package/src/browser/workers/{worker-pool.js → worker-pool.ts} +51 -30
  167. package/src/core/delimiter-cache.ts +320 -0
  168. package/src/core/{node-optimizations.js → node-optimizations.ts} +448 -407
  169. package/src/core/plugin-system.ts +588 -0
  170. package/src/core/transform-hooks.ts +566 -0
  171. package/src/engines/{fast-path-engine-new.js → fast-path-engine-new.ts} +11 -2
  172. package/src/engines/{fast-path-engine.js → fast-path-engine.ts} +79 -53
  173. package/src/errors.ts +1 -0
  174. package/src/formats/{ndjson-parser.js → ndjson-parser.ts} +24 -16
  175. package/src/formats/{tsv-parser.js → tsv-parser.ts} +18 -17
  176. package/src/{index-with-plugins.js → index-with-plugins.ts} +381 -357
  177. package/src/types/index.ts +275 -0
  178. package/src/utils/bom-utils.ts +373 -0
  179. package/src/utils/encoding-support.ts +155 -0
  180. package/src/utils/{schema-validator.js → schema-validator.ts} +814 -589
  181. package/src/utils/transform-loader.ts +389 -0
  182. package/src/utils/validators.ts +35 -0
  183. package/src/utils/zod-adapter.ts +280 -0
  184. package/src/web-server/{index.js → index.ts} +19 -19
  185. package/src/workers/csv-multithreaded.ts +310 -0
  186. package/src/workers/csv-parser.worker.ts +227 -0
  187. package/src/workers/worker-pool.ts +409 -0
  188. package/bin/jtcsv.js +0 -2462
  189. package/csv-to-json.js +0 -688
  190. package/errors.js +0 -208
  191. package/examples/simple-usage.js +0 -282
  192. package/index.js +0 -68
  193. package/json-save.js +0 -254
  194. package/json-to-csv.js +0 -526
  195. package/plugins/README.md +0 -91
  196. package/plugins/express-middleware/README.md +0 -64
  197. package/plugins/express-middleware/example.js +0 -136
  198. package/plugins/express-middleware/index.d.ts +0 -114
  199. package/plugins/express-middleware/index.js +0 -360
  200. package/plugins/express-middleware/package.json +0 -52
  201. package/plugins/fastify-plugin/index.js +0 -406
  202. package/plugins/fastify-plugin/package.json +0 -55
  203. package/plugins/hono/README.md +0 -28
  204. package/plugins/hono/index.d.ts +0 -12
  205. package/plugins/hono/index.js +0 -36
  206. package/plugins/hono/package.json +0 -35
  207. package/plugins/nestjs/README.md +0 -35
  208. package/plugins/nestjs/index.d.ts +0 -25
  209. package/plugins/nestjs/index.js +0 -77
  210. package/plugins/nestjs/package.json +0 -37
  211. package/plugins/nextjs-api/README.md +0 -57
  212. package/plugins/nextjs-api/examples/ConverterComponent.jsx +0 -386
  213. package/plugins/nextjs-api/examples/api-convert.js +0 -69
  214. package/plugins/nextjs-api/index.js +0 -387
  215. package/plugins/nextjs-api/package.json +0 -63
  216. package/plugins/nextjs-api/route.js +0 -371
  217. package/plugins/nuxt/README.md +0 -24
  218. package/plugins/nuxt/index.js +0 -21
  219. package/plugins/nuxt/package.json +0 -35
  220. package/plugins/nuxt/runtime/composables/useJtcsv.js +0 -6
  221. package/plugins/nuxt/runtime/plugin.js +0 -6
  222. package/plugins/remix/README.md +0 -26
  223. package/plugins/remix/index.d.ts +0 -16
  224. package/plugins/remix/index.js +0 -62
  225. package/plugins/remix/package.json +0 -35
  226. package/plugins/sveltekit/README.md +0 -28
  227. package/plugins/sveltekit/index.d.ts +0 -17
  228. package/plugins/sveltekit/index.js +0 -54
  229. package/plugins/sveltekit/package.json +0 -33
  230. package/plugins/trpc/README.md +0 -25
  231. package/plugins/trpc/index.d.ts +0 -7
  232. package/plugins/trpc/index.js +0 -32
  233. package/plugins/trpc/package.json +0 -34
  234. package/src/browser/browser-functions.js +0 -219
  235. package/src/browser/csv-to-json-browser.js +0 -700
  236. package/src/browser/index.js +0 -113
  237. package/src/browser/json-to-csv-browser.js +0 -309
  238. package/src/browser/streams.js +0 -393
  239. package/src/core/delimiter-cache.js +0 -186
  240. package/src/core/plugin-system.js +0 -476
  241. package/src/core/transform-hooks.js +0 -350
  242. package/src/errors.js +0 -26
  243. package/src/utils/transform-loader.js +0 -205
  244. package/stream-csv-to-json.js +0 -542
  245. package/stream-json-to-csv.js +0 -464
  246. /package/examples/{web-workers-advanced.js → web-workers-advanced.ts} +0 -0
@@ -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