web-csv-toolbox 0.14.0-next-e45bc4d089f1fb259a7596b9862b3b34e717dab7 → 0.14.0-next-978b88933762ecc27270ce746b80a3fa7ed8c4f7

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 (68) hide show
  1. package/README.md +28 -48
  2. package/dist/CSVLexer.js +8 -5
  3. package/dist/CSVLexer.js.map +1 -1
  4. package/dist/CSVLexerTransformer.d.ts +10 -12
  5. package/dist/CSVLexerTransformer.js +12 -16
  6. package/dist/CSVLexerTransformer.js.map +1 -1
  7. package/dist/CSVRecordAssembler.js +14 -4
  8. package/dist/CSVRecordAssembler.js.map +1 -1
  9. package/dist/CSVRecordAssemblerTransformer.d.ts +8 -14
  10. package/dist/CSVRecordAssemblerTransformer.js +10 -16
  11. package/dist/CSVRecordAssemblerTransformer.js.map +1 -1
  12. package/dist/assertCommonOptions.d.ts +1 -1
  13. package/dist/assertCommonOptions.js.map +1 -1
  14. package/dist/common/errors.d.ts +32 -0
  15. package/dist/common/errors.js +18 -0
  16. package/dist/common/errors.js.map +1 -1
  17. package/dist/common/types.d.ts +249 -66
  18. package/dist/constants.d.ts +12 -0
  19. package/dist/constants.js +2 -1
  20. package/dist/constants.js.map +1 -1
  21. package/dist/execution/EnginePresets.d.ts +52 -12
  22. package/dist/execution/EnginePresets.js +1 -1
  23. package/dist/execution/EnginePresets.js.map +1 -1
  24. package/dist/execution/InternalEngineConfig.js +40 -18
  25. package/dist/execution/InternalEngineConfig.js.map +1 -1
  26. package/dist/execution/worker/parseBinaryInWorker.node.js +3 -4
  27. package/dist/execution/worker/parseBinaryInWorker.node.js.map +1 -1
  28. package/dist/execution/worker/parseBinaryInWorker.web.js +3 -4
  29. package/dist/execution/worker/parseBinaryInWorker.web.js.map +1 -1
  30. package/dist/execution/worker/parseBinaryInWorkerWASM.node.js +3 -4
  31. package/dist/execution/worker/parseBinaryInWorkerWASM.node.js.map +1 -1
  32. package/dist/execution/worker/parseBinaryInWorkerWASM.web.js +3 -4
  33. package/dist/execution/worker/parseBinaryInWorkerWASM.web.js.map +1 -1
  34. package/dist/execution/worker/parseStreamInWorker.node.js +3 -4
  35. package/dist/execution/worker/parseStreamInWorker.node.js.map +1 -1
  36. package/dist/execution/worker/parseStreamInWorker.web.js +3 -4
  37. package/dist/execution/worker/parseStreamInWorker.web.js.map +1 -1
  38. package/dist/execution/worker/parseStringInWorker.node.js +3 -4
  39. package/dist/execution/worker/parseStringInWorker.node.js.map +1 -1
  40. package/dist/execution/worker/parseStringInWorker.web.js +3 -4
  41. package/dist/execution/worker/parseStringInWorker.web.js.map +1 -1
  42. package/dist/execution/worker/parseStringInWorkerWASM.node.js +3 -4
  43. package/dist/execution/worker/parseStringInWorkerWASM.node.js.map +1 -1
  44. package/dist/execution/worker/parseStringInWorkerWASM.web.js +3 -4
  45. package/dist/execution/worker/parseStringInWorkerWASM.web.js.map +1 -1
  46. package/dist/execution/worker/parseUint8ArrayStreamInWorker.node.js +3 -4
  47. package/dist/execution/worker/parseUint8ArrayStreamInWorker.node.js.map +1 -1
  48. package/dist/execution/worker/parseUint8ArrayStreamInWorker.web.js +3 -4
  49. package/dist/execution/worker/parseUint8ArrayStreamInWorker.web.js.map +1 -1
  50. package/dist/getOptionsFromFile.d.ts +14 -0
  51. package/dist/getOptionsFromFile.js +12 -0
  52. package/dist/getOptionsFromFile.js.map +1 -0
  53. package/dist/parseBlob.js +9 -1
  54. package/dist/parseBlob.js.map +1 -1
  55. package/dist/parseFile.d.ts +3 -2
  56. package/dist/parseFile.js +7 -3
  57. package/dist/parseFile.js.map +1 -1
  58. package/dist/parseFileToArray.d.ts +27 -0
  59. package/dist/parseFileToArray.js +12 -0
  60. package/dist/parseFileToArray.js.map +1 -0
  61. package/dist/parseFileToStream.d.ts +33 -0
  62. package/dist/parseFileToStream.js +10 -0
  63. package/dist/parseFileToStream.js.map +1 -0
  64. package/dist/utils/types.d.ts +21 -10
  65. package/dist/web-csv-toolbox.d.ts +3 -0
  66. package/dist/web-csv-toolbox.js +3 -0
  67. package/dist/web-csv-toolbox.js.map +1 -1
  68. package/package.json +1 -1
@@ -1,9 +1,43 @@
1
- import { EngineConfig, EngineFallbackInfo } from '../common/types.ts';
1
+ import { BackpressureCheckInterval, EngineConfig, EngineFallbackInfo, QueuingStrategyConfig } from '../common/types.ts';
2
2
  import { WorkerPool } from './worker/helpers/WorkerPool.ts';
3
3
  /**
4
- * Options for customizing engine presets.
4
+ * Base options shared by all engine presets.
5
+ */
6
+ interface BasePresetOptions {
7
+ /**
8
+ * Blob reading strategy threshold (in bytes).
9
+ * See {@link EngineConfig.arrayBufferThreshold} for details.
10
+ *
11
+ * @default 1048576 (1MB)
12
+ */
13
+ arrayBufferThreshold?: number;
14
+ /**
15
+ * Backpressure monitoring intervals.
16
+ * See {@link EngineConfig.backpressureCheckInterval} for details.
17
+ *
18
+ * @default { lexer: 100, assembler: 10 }
19
+ * @experimental
20
+ */
21
+ backpressureCheckInterval?: BackpressureCheckInterval;
22
+ /**
23
+ * Internal streaming queuing strategies.
24
+ * See {@link EngineConfig.queuingStrategy} for details.
25
+ *
26
+ * @experimental
27
+ */
28
+ queuingStrategy?: QueuingStrategyConfig;
29
+ }
30
+ /**
31
+ * Options for main thread engine presets.
32
+ * Used by presets that do not use web workers.
33
+ */
34
+ export interface MainThreadPresetOptions extends BasePresetOptions {
35
+ }
36
+ /**
37
+ * Options for worker-based engine presets.
38
+ * Used by presets that utilize web workers.
5
39
  */
6
- export interface EnginePresetOptions {
40
+ export interface WorkerPresetOptions extends BasePresetOptions {
7
41
  /**
8
42
  * Worker pool for managing worker lifecycle.
9
43
  * Reuse workers across multiple parse operations.
@@ -20,6 +54,11 @@ export interface EnginePresetOptions {
20
54
  */
21
55
  onFallback?: (info: EngineFallbackInfo) => void;
22
56
  }
57
+ /**
58
+ * Options for customizing engine presets.
59
+ * @deprecated Use {@link MainThreadPresetOptions} or {@link WorkerPresetOptions} instead.
60
+ */
61
+ export type EnginePresetOptions = MainThreadPresetOptions | WorkerPresetOptions;
23
62
  /**
24
63
  * Predefined engine configuration presets for common use cases.
25
64
  *
@@ -57,10 +96,10 @@ export declare const EnginePresets: Readonly<{
57
96
  * - Synchronous execution on main thread
58
97
  * - Best for small files (< 1MB)
59
98
  *
60
- * @param options - Configuration options (not used for main thread)
99
+ * @param options - Configuration options
61
100
  * @returns Engine configuration
62
101
  */
63
- readonly mainThread: (options?: EnginePresetOptions) => EngineConfig;
102
+ readonly mainThread: (options?: MainThreadPresetOptions) => EngineConfig;
64
103
  /**
65
104
  * Worker execution with message streaming.
66
105
  * - Offloads parsing to worker thread
@@ -71,7 +110,7 @@ export declare const EnginePresets: Readonly<{
71
110
  * @param options - Configuration options
72
111
  * @returns Engine configuration
73
112
  */
74
- readonly worker: (options?: EnginePresetOptions) => EngineConfig;
113
+ readonly worker: (options?: WorkerPresetOptions) => EngineConfig;
75
114
  /**
76
115
  * Worker execution with stream transfer (zero-copy).
77
116
  * - Offloads parsing to worker thread
@@ -83,7 +122,7 @@ export declare const EnginePresets: Readonly<{
83
122
  * @param options - Configuration options
84
123
  * @returns Engine configuration
85
124
  */
86
- readonly workerStreamTransfer: (options?: EnginePresetOptions) => EngineConfig;
125
+ readonly workerStreamTransfer: (options?: WorkerPresetOptions) => EngineConfig;
87
126
  /**
88
127
  * WebAssembly execution on main thread.
89
128
  * - Fast parsing with WASM
@@ -94,7 +133,7 @@ export declare const EnginePresets: Readonly<{
94
133
  * @param options - Configuration options
95
134
  * @returns Engine configuration
96
135
  */
97
- readonly wasm: (options?: EnginePresetOptions) => EngineConfig;
136
+ readonly wasm: (options?: MainThreadPresetOptions) => EngineConfig;
98
137
  /**
99
138
  * Worker + WASM execution.
100
139
  * - Combines worker offloading with WASM speed
@@ -104,7 +143,7 @@ export declare const EnginePresets: Readonly<{
104
143
  * @param options - Configuration options
105
144
  * @returns Engine configuration
106
145
  */
107
- readonly workerWasm: (options?: EnginePresetOptions) => EngineConfig;
146
+ readonly workerWasm: (options?: WorkerPresetOptions) => EngineConfig;
108
147
  /**
109
148
  * Fastest available method.
110
149
  * Automatically selects the best execution strategy:
@@ -115,7 +154,7 @@ export declare const EnginePresets: Readonly<{
115
154
  * @param options - Configuration options
116
155
  * @returns Engine configuration
117
156
  */
118
- readonly fastest: (options?: EnginePresetOptions) => EngineConfig;
157
+ readonly fastest: (options?: WorkerPresetOptions) => EngineConfig;
119
158
  /**
120
159
  * Balanced configuration for production use.
121
160
  * - Worker execution for offloading
@@ -126,7 +165,7 @@ export declare const EnginePresets: Readonly<{
126
165
  * @param options - Configuration options
127
166
  * @returns Engine configuration
128
167
  */
129
- readonly balanced: (options?: EnginePresetOptions) => EngineConfig;
168
+ readonly balanced: (options?: WorkerPresetOptions) => EngineConfig;
130
169
  /**
131
170
  * Strict mode: no automatic fallbacks.
132
171
  * - Throws errors instead of falling back to main thread
@@ -135,9 +174,10 @@ export declare const EnginePresets: Readonly<{
135
174
  * @param options - Configuration options
136
175
  * @returns Engine configuration
137
176
  */
138
- readonly strict: (options?: EnginePresetOptions) => EngineConfig;
177
+ readonly strict: (options?: WorkerPresetOptions) => EngineConfig;
139
178
  }>;
140
179
  /**
141
180
  * Type for engine preset names.
142
181
  */
143
182
  export type EnginePresetName = keyof typeof EnginePresets;
183
+ export {};
@@ -5,7 +5,7 @@ const EnginePresets = Object.freeze({
5
5
  * - Synchronous execution on main thread
6
6
  * - Best for small files (< 1MB)
7
7
  *
8
- * @param options - Configuration options (not used for main thread)
8
+ * @param options - Configuration options
9
9
  * @returns Engine configuration
10
10
  */
11
11
  mainThread: (options) => ({
@@ -1 +1 @@
1
- {"version":3,"file":"EnginePresets.js","sources":["../../src/execution/EnginePresets.ts"],"sourcesContent":["import type { EngineConfig, EngineFallbackInfo } from \"../common/types.ts\";\nimport type { WorkerPool } from \"./worker/helpers/WorkerPool.ts\";\n\n/**\n * Options for customizing engine presets.\n */\nexport interface EnginePresetOptions {\n /**\n * Worker pool for managing worker lifecycle.\n * Reuse workers across multiple parse operations.\n */\n workerPool?: WorkerPool;\n\n /**\n * Custom worker URL.\n * Use a custom worker script instead of the bundled worker.\n */\n workerURL?: string | URL;\n\n /**\n * Callback for fallback notifications.\n * Called when the engine falls back to a less optimal strategy.\n */\n onFallback?: (info: EngineFallbackInfo) => void;\n}\n\n/**\n * Predefined engine configuration presets for common use cases.\n *\n * All presets are functions that optionally accept configuration options.\n *\n * @example Basic usage\n * ```ts\n * import { parseString, EnginePresets } from 'web-csv-toolbox';\n *\n * // Use fastest available execution method\n * for await (const record of parseString(csv, {\n * engine: EnginePresets.fastest()\n * })) {\n * console.log(record);\n * }\n * ```\n *\n * @example With WorkerPool\n * ```ts\n * import { parseString, EnginePresets, WorkerPool } from 'web-csv-toolbox';\n *\n * const pool = new WorkerPool({ maxWorkers: 4 });\n *\n * for await (const record of parseString(csv, {\n * engine: EnginePresets.fastest({ workerPool: pool })\n * })) {\n * console.log(record);\n * }\n * ```\n */\nexport const EnginePresets = Object.freeze({\n /**\n * Main thread execution (default).\n * - No worker overhead\n * - Synchronous execution on main thread\n * - Best for small files (< 1MB)\n *\n * @param options - Configuration options (not used for main thread)\n * @returns Engine configuration\n */\n mainThread: (options?: EnginePresetOptions): EngineConfig => ({\n worker: false,\n wasm: false,\n ...options,\n }),\n\n /**\n * Worker execution with message streaming.\n * - Offloads parsing to worker thread\n * - Records sent via postMessage\n * - Works on all browsers including Safari\n * - Best for medium files (1-10MB)\n *\n * @param options - Configuration options\n * @returns Engine configuration\n */\n worker: (options?: EnginePresetOptions): EngineConfig => ({\n worker: true,\n wasm: false,\n workerStrategy: \"message-streaming\",\n ...options,\n }),\n\n /**\n * Worker execution with stream transfer (zero-copy).\n * - Offloads parsing to worker thread\n * - Streams transferred directly (zero-copy)\n * - Only works on Chrome, Firefox, Edge (not Safari)\n * - Best for large streaming files (> 10MB)\n * - Automatically falls back to message-streaming if not supported\n *\n * @param options - Configuration options\n * @returns Engine configuration\n */\n workerStreamTransfer: (options?: EnginePresetOptions): EngineConfig => ({\n worker: true,\n wasm: false,\n workerStrategy: \"stream-transfer\",\n ...options,\n }),\n\n /**\n * WebAssembly execution on main thread.\n * - Fast parsing with WASM\n * - Runs on main thread\n * - Limited to UTF-8 encoding and double-quote (\")\n * - Best for medium-sized UTF-8 files (1-10MB)\n *\n * @param options - Configuration options\n * @returns Engine configuration\n */\n wasm: (options?: EnginePresetOptions): EngineConfig => ({\n worker: false,\n wasm: true,\n ...options,\n }),\n\n /**\n * Worker + WASM execution.\n * - Combines worker offloading with WASM speed\n * - Best for large UTF-8 files (> 10MB)\n * - Limited to UTF-8 encoding and double-quote (\")\n *\n * @param options - Configuration options\n * @returns Engine configuration\n */\n workerWasm: (options?: EnginePresetOptions): EngineConfig => ({\n worker: true,\n wasm: true,\n workerStrategy: \"message-streaming\",\n ...options,\n }),\n\n /**\n * Fastest available method.\n * Automatically selects the best execution strategy:\n * - For streams: Worker with stream-transfer (falls back to message-streaming)\n * - For strings/binary: Worker + WASM\n * - For all inputs: Offloads to worker for better performance\n *\n * @param options - Configuration options\n * @returns Engine configuration\n */\n fastest: (options?: EnginePresetOptions): EngineConfig => ({\n worker: true,\n wasm: true,\n workerStrategy: \"stream-transfer\",\n ...options,\n }),\n\n /**\n * Balanced configuration for production use.\n * - Worker execution for offloading\n * - No WASM (broader encoding support)\n * - Stream-transfer with automatic fallback\n * - Works with all encodings\n *\n * @param options - Configuration options\n * @returns Engine configuration\n */\n balanced: (options?: EnginePresetOptions): EngineConfig => ({\n worker: true,\n wasm: false,\n workerStrategy: \"stream-transfer\",\n ...options,\n }),\n\n /**\n * Strict mode: no automatic fallbacks.\n * - Throws errors instead of falling back to main thread\n * - Useful for testing or when you need guaranteed execution mode\n *\n * @param options - Configuration options\n * @returns Engine configuration\n */\n strict: (options?: EnginePresetOptions): EngineConfig => ({\n worker: true,\n wasm: false,\n workerStrategy: \"stream-transfer\",\n strict: true,\n ...options,\n }),\n} as const);\n\n/**\n * Type for engine preset names.\n */\nexport type EnginePresetName = keyof typeof EnginePresets;\n"],"names":[],"mappings":"AAwDO,MAAM,aAAA,GAAgB,OAAO,MAAA,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUzC,UAAA,EAAY,CAAC,OAAA,MAAiD;AAAA,IAC5D,MAAA,EAAQ,KAAA;AAAA,IACR,IAAA,EAAM,KAAA;AAAA,IACN,GAAG;AAAA,GACL,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,MAAA,EAAQ,CAAC,OAAA,MAAiD;AAAA,IACxD,MAAA,EAAQ,IAAA;AAAA,IACR,IAAA,EAAM,KAAA;AAAA,IACN,cAAA,EAAgB,mBAAA;AAAA,IAChB,GAAG;AAAA,GACL,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,oBAAA,EAAsB,CAAC,OAAA,MAAiD;AAAA,IACtE,MAAA,EAAQ,IAAA;AAAA,IACR,IAAA,EAAM,KAAA;AAAA,IACN,cAAA,EAAgB,iBAAA;AAAA,IAChB,GAAG;AAAA,GACL,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,IAAA,EAAM,CAAC,OAAA,MAAiD;AAAA,IACtD,MAAA,EAAQ,KAAA;AAAA,IACR,IAAA,EAAM,IAAA;AAAA,IACN,GAAG;AAAA,GACL,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,UAAA,EAAY,CAAC,OAAA,MAAiD;AAAA,IAC5D,MAAA,EAAQ,IAAA;AAAA,IACR,IAAA,EAAM,IAAA;AAAA,IACN,cAAA,EAAgB,mBAAA;AAAA,IAChB,GAAG;AAAA,GACL,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OAAA,EAAS,CAAC,OAAA,MAAiD;AAAA,IACzD,MAAA,EAAQ,IAAA;AAAA,IACR,IAAA,EAAM,IAAA;AAAA,IACN,cAAA,EAAgB,iBAAA;AAAA,IAChB,GAAG;AAAA,GACL,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,QAAA,EAAU,CAAC,OAAA,MAAiD;AAAA,IAC1D,MAAA,EAAQ,IAAA;AAAA,IACR,IAAA,EAAM,KAAA;AAAA,IACN,cAAA,EAAgB,iBAAA;AAAA,IAChB,GAAG;AAAA,GACL,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAA,EAAQ,CAAC,OAAA,MAAiD;AAAA,IACxD,MAAA,EAAQ,IAAA;AAAA,IACR,IAAA,EAAM,KAAA;AAAA,IACN,cAAA,EAAgB,iBAAA;AAAA,IAChB,MAAA,EAAQ,IAAA;AAAA,IACR,GAAG;AAAA,GACL;AACF,CAAU;;;;"}
1
+ {"version":3,"file":"EnginePresets.js","sources":["../../src/execution/EnginePresets.ts"],"sourcesContent":["import type {\n BackpressureCheckInterval,\n EngineConfig,\n EngineFallbackInfo,\n QueuingStrategyConfig,\n} from \"../common/types.ts\";\nimport type { WorkerPool } from \"./worker/helpers/WorkerPool.ts\";\n\n/**\n * Base options shared by all engine presets.\n */\ninterface BasePresetOptions {\n /**\n * Blob reading strategy threshold (in bytes).\n * See {@link EngineConfig.arrayBufferThreshold} for details.\n *\n * @default 1048576 (1MB)\n */\n arrayBufferThreshold?: number;\n\n /**\n * Backpressure monitoring intervals.\n * See {@link EngineConfig.backpressureCheckInterval} for details.\n *\n * @default { lexer: 100, assembler: 10 }\n * @experimental\n */\n backpressureCheckInterval?: BackpressureCheckInterval;\n\n /**\n * Internal streaming queuing strategies.\n * See {@link EngineConfig.queuingStrategy} for details.\n *\n * @experimental\n */\n queuingStrategy?: QueuingStrategyConfig;\n}\n\n/**\n * Options for main thread engine presets.\n * Used by presets that do not use web workers.\n */\nexport interface MainThreadPresetOptions extends BasePresetOptions {\n // No worker-related options\n}\n\n/**\n * Options for worker-based engine presets.\n * Used by presets that utilize web workers.\n */\nexport interface WorkerPresetOptions extends BasePresetOptions {\n /**\n * Worker pool for managing worker lifecycle.\n * Reuse workers across multiple parse operations.\n */\n workerPool?: WorkerPool;\n\n /**\n * Custom worker URL.\n * Use a custom worker script instead of the bundled worker.\n */\n workerURL?: string | URL;\n\n /**\n * Callback for fallback notifications.\n * Called when the engine falls back to a less optimal strategy.\n */\n onFallback?: (info: EngineFallbackInfo) => void;\n}\n\n/**\n * Options for customizing engine presets.\n * @deprecated Use {@link MainThreadPresetOptions} or {@link WorkerPresetOptions} instead.\n */\nexport type EnginePresetOptions = MainThreadPresetOptions | WorkerPresetOptions;\n\n/**\n * Predefined engine configuration presets for common use cases.\n *\n * All presets are functions that optionally accept configuration options.\n *\n * @example Basic usage\n * ```ts\n * import { parseString, EnginePresets } from 'web-csv-toolbox';\n *\n * // Use fastest available execution method\n * for await (const record of parseString(csv, {\n * engine: EnginePresets.fastest()\n * })) {\n * console.log(record);\n * }\n * ```\n *\n * @example With WorkerPool\n * ```ts\n * import { parseString, EnginePresets, WorkerPool } from 'web-csv-toolbox';\n *\n * const pool = new WorkerPool({ maxWorkers: 4 });\n *\n * for await (const record of parseString(csv, {\n * engine: EnginePresets.fastest({ workerPool: pool })\n * })) {\n * console.log(record);\n * }\n * ```\n */\nexport const EnginePresets = Object.freeze({\n /**\n * Main thread execution (default).\n * - No worker overhead\n * - Synchronous execution on main thread\n * - Best for small files (< 1MB)\n *\n * @param options - Configuration options\n * @returns Engine configuration\n */\n mainThread: (options?: MainThreadPresetOptions): EngineConfig => ({\n worker: false,\n wasm: false,\n ...options,\n }),\n\n /**\n * Worker execution with message streaming.\n * - Offloads parsing to worker thread\n * - Records sent via postMessage\n * - Works on all browsers including Safari\n * - Best for medium files (1-10MB)\n *\n * @param options - Configuration options\n * @returns Engine configuration\n */\n worker: (options?: WorkerPresetOptions): EngineConfig => ({\n worker: true,\n wasm: false,\n workerStrategy: \"message-streaming\",\n ...options,\n }),\n\n /**\n * Worker execution with stream transfer (zero-copy).\n * - Offloads parsing to worker thread\n * - Streams transferred directly (zero-copy)\n * - Only works on Chrome, Firefox, Edge (not Safari)\n * - Best for large streaming files (> 10MB)\n * - Automatically falls back to message-streaming if not supported\n *\n * @param options - Configuration options\n * @returns Engine configuration\n */\n workerStreamTransfer: (options?: WorkerPresetOptions): EngineConfig => ({\n worker: true,\n wasm: false,\n workerStrategy: \"stream-transfer\",\n ...options,\n }),\n\n /**\n * WebAssembly execution on main thread.\n * - Fast parsing with WASM\n * - Runs on main thread\n * - Limited to UTF-8 encoding and double-quote (\")\n * - Best for medium-sized UTF-8 files (1-10MB)\n *\n * @param options - Configuration options\n * @returns Engine configuration\n */\n wasm: (options?: MainThreadPresetOptions): EngineConfig => ({\n worker: false,\n wasm: true,\n ...options,\n }),\n\n /**\n * Worker + WASM execution.\n * - Combines worker offloading with WASM speed\n * - Best for large UTF-8 files (> 10MB)\n * - Limited to UTF-8 encoding and double-quote (\")\n *\n * @param options - Configuration options\n * @returns Engine configuration\n */\n workerWasm: (options?: WorkerPresetOptions): EngineConfig => ({\n worker: true,\n wasm: true,\n workerStrategy: \"message-streaming\",\n ...options,\n }),\n\n /**\n * Fastest available method.\n * Automatically selects the best execution strategy:\n * - For streams: Worker with stream-transfer (falls back to message-streaming)\n * - For strings/binary: Worker + WASM\n * - For all inputs: Offloads to worker for better performance\n *\n * @param options - Configuration options\n * @returns Engine configuration\n */\n fastest: (options?: WorkerPresetOptions): EngineConfig => ({\n worker: true,\n wasm: true,\n workerStrategy: \"stream-transfer\",\n ...options,\n }),\n\n /**\n * Balanced configuration for production use.\n * - Worker execution for offloading\n * - No WASM (broader encoding support)\n * - Stream-transfer with automatic fallback\n * - Works with all encodings\n *\n * @param options - Configuration options\n * @returns Engine configuration\n */\n balanced: (options?: WorkerPresetOptions): EngineConfig => ({\n worker: true,\n wasm: false,\n workerStrategy: \"stream-transfer\",\n ...options,\n }),\n\n /**\n * Strict mode: no automatic fallbacks.\n * - Throws errors instead of falling back to main thread\n * - Useful for testing or when you need guaranteed execution mode\n *\n * @param options - Configuration options\n * @returns Engine configuration\n */\n strict: (options?: WorkerPresetOptions): EngineConfig => ({\n worker: true,\n wasm: false,\n workerStrategy: \"stream-transfer\",\n strict: true,\n ...options,\n }),\n} as const);\n\n/**\n * Type for engine preset names.\n */\nexport type EnginePresetName = keyof typeof EnginePresets;\n"],"names":[],"mappings":"AA0GO,MAAM,aAAA,GAAgB,OAAO,MAAA,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUzC,UAAA,EAAY,CAAC,OAAA,MAAqD;AAAA,IAChE,MAAA,EAAQ,KAAA;AAAA,IACR,IAAA,EAAM,KAAA;AAAA,IACN,GAAG;AAAA,GACL,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,MAAA,EAAQ,CAAC,OAAA,MAAiD;AAAA,IACxD,MAAA,EAAQ,IAAA;AAAA,IACR,IAAA,EAAM,KAAA;AAAA,IACN,cAAA,EAAgB,mBAAA;AAAA,IAChB,GAAG;AAAA,GACL,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,oBAAA,EAAsB,CAAC,OAAA,MAAiD;AAAA,IACtE,MAAA,EAAQ,IAAA;AAAA,IACR,IAAA,EAAM,KAAA;AAAA,IACN,cAAA,EAAgB,iBAAA;AAAA,IAChB,GAAG;AAAA,GACL,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,IAAA,EAAM,CAAC,OAAA,MAAqD;AAAA,IAC1D,MAAA,EAAQ,KAAA;AAAA,IACR,IAAA,EAAM,IAAA;AAAA,IACN,GAAG;AAAA,GACL,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,UAAA,EAAY,CAAC,OAAA,MAAiD;AAAA,IAC5D,MAAA,EAAQ,IAAA;AAAA,IACR,IAAA,EAAM,IAAA;AAAA,IACN,cAAA,EAAgB,mBAAA;AAAA,IAChB,GAAG;AAAA,GACL,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OAAA,EAAS,CAAC,OAAA,MAAiD;AAAA,IACzD,MAAA,EAAQ,IAAA;AAAA,IACR,IAAA,EAAM,IAAA;AAAA,IACN,cAAA,EAAgB,iBAAA;AAAA,IAChB,GAAG;AAAA,GACL,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,QAAA,EAAU,CAAC,OAAA,MAAiD;AAAA,IAC1D,MAAA,EAAQ,IAAA;AAAA,IACR,IAAA,EAAM,KAAA;AAAA,IACN,cAAA,EAAgB,iBAAA;AAAA,IAChB,GAAG;AAAA,GACL,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAA,EAAQ,CAAC,OAAA,MAAiD;AAAA,IACxD,MAAA,EAAQ,IAAA;AAAA,IACR,IAAA,EAAM,KAAA;AAAA,IACN,cAAA,EAAgB,iBAAA;AAAA,IAChB,MAAA,EAAQ,IAAA;AAAA,IACR,GAAG;AAAA,GACL;AACF,CAAU;;;;"}
@@ -5,9 +5,11 @@ class InternalEngineConfig {
5
5
  onFallback;
6
6
  constructor(config) {
7
7
  if (config) {
8
- this.workerURL = config.workerURL;
9
- this.workerPool = config.workerPool;
10
- this.onFallback = config.onFallback;
8
+ if (config.worker) {
9
+ this.workerURL = config.workerURL;
10
+ this.workerPool = config.workerPool;
11
+ this.onFallback = config.onFallback;
12
+ }
11
13
  this.parse(config);
12
14
  }
13
15
  this.applyDefaults();
@@ -25,20 +27,33 @@ class InternalEngineConfig {
25
27
  return instance;
26
28
  }
27
29
  parse(config) {
30
+ const anyConfig = config;
31
+ if (!config.worker) {
32
+ if (anyConfig.workerStrategy !== void 0 && anyConfig.workerStrategy !== false) {
33
+ throw new Error(
34
+ "workerStrategy requires worker: true in engine config"
35
+ );
36
+ }
37
+ if (anyConfig.strict !== void 0 && anyConfig.strict !== false) {
38
+ throw new Error(
39
+ 'strict requires workerStrategy: "stream-transfer" in engine config'
40
+ );
41
+ }
42
+ }
28
43
  if (config.worker) {
29
44
  this.bitmask |= 1 /* WORKER */;
45
+ if (config.workerStrategy === "stream-transfer") {
46
+ this.bitmask |= 4 /* STREAM_TRANSFER */;
47
+ } else if (config.workerStrategy === "message-streaming") {
48
+ this.bitmask |= 8 /* MESSAGE_STREAMING */;
49
+ }
50
+ if (config.strict) {
51
+ this.bitmask |= 16 /* STRICT */;
52
+ }
30
53
  }
31
54
  if (config.wasm) {
32
55
  this.bitmask |= 2 /* WASM */;
33
56
  }
34
- if (config.workerStrategy === "stream-transfer") {
35
- this.bitmask |= 4 /* STREAM_TRANSFER */;
36
- } else if (config.workerStrategy === "message-streaming") {
37
- this.bitmask |= 8 /* MESSAGE_STREAMING */;
38
- }
39
- if (config.strict) {
40
- this.bitmask |= 16 /* STRICT */;
41
- }
42
57
  }
43
58
  applyDefaults() {
44
59
  if (this.hasWorker() && !this.hasStreamTransfer() && !this.hasMessageStreaming()) {
@@ -140,14 +155,21 @@ class InternalEngineConfig {
140
155
  * Convert to EngineConfig.
141
156
  */
142
157
  toConfig() {
158
+ const hasWorker = this.hasWorker();
159
+ if (hasWorker) {
160
+ return {
161
+ worker: true,
162
+ workerURL: this.workerURL,
163
+ workerPool: this.workerPool,
164
+ wasm: this.hasWasm() || void 0,
165
+ workerStrategy: this.getWorkerStrategy(),
166
+ strict: this.hasStrict() || void 0,
167
+ onFallback: this.onFallback
168
+ };
169
+ }
143
170
  return {
144
- worker: this.hasWorker() || void 0,
145
- workerURL: this.workerURL,
146
- workerPool: this.workerPool,
147
- wasm: this.hasWasm() || void 0,
148
- workerStrategy: this.getWorkerStrategy(),
149
- strict: this.hasStrict() || void 0,
150
- onFallback: this.onFallback
171
+ worker: false,
172
+ wasm: this.hasWasm() || void 0
151
173
  };
152
174
  }
153
175
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"InternalEngineConfig.js","sources":["../../src/execution/InternalEngineConfig.ts"],"sourcesContent":["import type {\n EngineConfig,\n EngineFallbackInfo,\n WorkerCommunicationStrategy,\n} from \"../common/types.ts\";\nimport type { WorkerPool } from \"./worker/helpers/WorkerPool.ts\";\n\n/**\n * Engine flags bitmask (internal use).\n * @internal\n */\nexport enum EngineFlags {\n WORKER = 1 << 0, // 0b00001 = 1\n WASM = 1 << 1, // 0b00010 = 2\n STREAM_TRANSFER = 1 << 2, // 0b00100 = 4\n MESSAGE_STREAMING = 1 << 3, // 0b01000 = 8\n STRICT = 1 << 4, // 0b10000 = 16\n}\n\n/**\n * Internal engine configuration manager.\n *\n * Manages engine configuration using bitmask for efficient flag operations.\n *\n * @internal\n */\nexport class InternalEngineConfig {\n private bitmask = 0;\n readonly workerURL?: string | URL;\n readonly workerPool?: WorkerPool;\n readonly onFallback?: (info: EngineFallbackInfo) => void;\n\n constructor(config?: EngineConfig) {\n if (config) {\n this.workerURL = config.workerURL;\n this.workerPool = config.workerPool;\n this.onFallback = config.onFallback;\n this.parse(config);\n }\n\n this.applyDefaults();\n this.validate();\n }\n\n /**\n * Private constructor for cloning.\n */\n private static fromBitmask(\n bitmask: number,\n workerURL?: string | URL,\n workerPool?: WorkerPool,\n onFallback?: (info: EngineFallbackInfo) => void,\n ): InternalEngineConfig {\n const instance = Object.create(InternalEngineConfig.prototype);\n instance.bitmask = bitmask;\n (instance as { workerURL?: string | URL }).workerURL = workerURL;\n (instance as { workerPool?: WorkerPool }).workerPool = workerPool;\n (\n instance as { onFallback?: (info: EngineFallbackInfo) => void }\n ).onFallback = onFallback;\n return instance;\n }\n\n private parse(config: EngineConfig): void {\n if (config.worker) {\n this.bitmask |= EngineFlags.WORKER;\n }\n\n if (config.wasm) {\n this.bitmask |= EngineFlags.WASM;\n }\n\n if (config.workerStrategy === \"stream-transfer\") {\n this.bitmask |= EngineFlags.STREAM_TRANSFER;\n } else if (config.workerStrategy === \"message-streaming\") {\n this.bitmask |= EngineFlags.MESSAGE_STREAMING;\n }\n\n if (config.strict) {\n this.bitmask |= EngineFlags.STRICT;\n }\n }\n\n private applyDefaults(): void {\n // Worker without explicit strategy -> default to message-streaming\n if (\n this.hasWorker() &&\n !this.hasStreamTransfer() &&\n !this.hasMessageStreaming()\n ) {\n this.bitmask |= EngineFlags.MESSAGE_STREAMING;\n }\n }\n\n private validate(): void {\n // workerStrategy requires worker\n if (\n (this.hasStreamTransfer() || this.hasMessageStreaming()) &&\n !this.hasWorker()\n ) {\n throw new Error(\"workerStrategy requires worker: true in engine config\");\n }\n\n // strict requires stream-transfer\n if (this.hasStrict() && !this.hasStreamTransfer()) {\n throw new Error(\n 'strict requires workerStrategy: \"stream-transfer\" in engine config',\n );\n }\n }\n\n /**\n * Check if a flag is set.\n */\n private hasFlag(flag: EngineFlags): boolean {\n return (this.bitmask & flag) !== 0;\n }\n\n /**\n * Add a flag.\n */\n private addFlag(flag: EngineFlags): void {\n this.bitmask |= flag;\n }\n\n /**\n * Remove a flag.\n */\n private removeFlag(flag: EngineFlags): void {\n this.bitmask &= ~flag;\n }\n\n /**\n * Check if worker execution is enabled.\n */\n hasWorker(): boolean {\n return this.hasFlag(EngineFlags.WORKER);\n }\n\n /**\n * Check if WASM is enabled.\n */\n hasWasm(): boolean {\n return this.hasFlag(EngineFlags.WASM);\n }\n\n /**\n * Check if stream transfer is enabled.\n */\n hasStreamTransfer(): boolean {\n return this.hasFlag(EngineFlags.STREAM_TRANSFER);\n }\n\n /**\n * Check if message streaming is enabled.\n */\n hasMessageStreaming(): boolean {\n return this.hasFlag(EngineFlags.MESSAGE_STREAMING);\n }\n\n /**\n * Check if strict mode is enabled.\n */\n hasStrict(): boolean {\n return this.hasFlag(EngineFlags.STRICT);\n }\n\n /**\n * Get worker communication strategy.\n */\n getWorkerStrategy(): WorkerCommunicationStrategy | undefined {\n if (this.hasStreamTransfer()) {\n return \"stream-transfer\";\n }\n if (this.hasMessageStreaming()) {\n return \"message-streaming\";\n }\n return undefined;\n }\n\n /**\n * Create a fallback configuration.\n *\n * Converts stream-transfer to message-streaming and disables strict mode.\n */\n createFallbackConfig(): InternalEngineConfig {\n let fallbackBitmask = this.bitmask;\n\n // Stream transfer -> message streaming\n if ((fallbackBitmask & EngineFlags.STREAM_TRANSFER) !== 0) {\n fallbackBitmask &= ~EngineFlags.STREAM_TRANSFER;\n fallbackBitmask |= EngineFlags.MESSAGE_STREAMING;\n }\n\n // Disable strict mode\n if ((fallbackBitmask & EngineFlags.STRICT) !== 0) {\n fallbackBitmask &= ~EngineFlags.STRICT;\n }\n\n return InternalEngineConfig.fromBitmask(\n fallbackBitmask,\n this.workerURL,\n this.workerPool,\n this.onFallback,\n );\n }\n\n /**\n * Convert to EngineConfig.\n */\n toConfig(): EngineConfig {\n return {\n worker: this.hasWorker() || undefined,\n workerURL: this.workerURL,\n workerPool: this.workerPool,\n wasm: this.hasWasm() || undefined,\n workerStrategy: this.getWorkerStrategy(),\n strict: this.hasStrict() || undefined,\n onFallback: this.onFallback,\n };\n }\n\n /**\n * Get bitmask for debugging.\n * @internal\n */\n getBitmask(): number {\n return this.bitmask;\n }\n\n /**\n * String representation for debugging.\n */\n toString(): string {\n const parts: string[] = [];\n if (this.hasWorker()) parts.push(\"worker\");\n if (this.hasWasm()) parts.push(\"wasm\");\n if (this.hasStreamTransfer()) parts.push(\"stream-transfer\");\n if (this.hasMessageStreaming()) parts.push(\"message-streaming\");\n if (this.hasStrict()) parts.push(\"strict\");\n return parts.join(\" + \") || \"main\";\n }\n}\n"],"names":[],"mappings":"AA0BO,MAAM,oBAAA,CAAqB;AAAA,EACxB,OAAA,GAAU,CAAA;AAAA,EACT,SAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EAET,YAAY,MAAA,EAAuB;AACjC,IAAA,IAAI,MAAA,EAAQ;AACV,MAAA,IAAA,CAAK,YAAY,MAAA,CAAO,SAAA;AACxB,MAAA,IAAA,CAAK,aAAa,MAAA,CAAO,UAAA;AACzB,MAAA,IAAA,CAAK,aAAa,MAAA,CAAO,UAAA;AACzB,MAAA,IAAA,CAAK,MAAM,MAAM,CAAA;AAAA,IACnB;AAEA,IAAA,IAAA,CAAK,aAAA,EAAc;AACnB,IAAA,IAAA,CAAK,QAAA,EAAS;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,OAAe,WAAA,CACb,OAAA,EACA,SAAA,EACA,YACA,UAAA,EACsB;AACtB,IAAA,MAAM,QAAA,GAAW,MAAA,CAAO,MAAA,CAAO,oBAAA,CAAqB,SAAS,CAAA;AAC7D,IAAA,QAAA,CAAS,OAAA,GAAU,OAAA;AACnB,IAAC,SAA0C,SAAA,GAAY,SAAA;AACvD,IAAC,SAAyC,UAAA,GAAa,UAAA;AACvD,IACE,SACA,UAAA,GAAa,UAAA;AACf,IAAA,OAAO,QAAA;AAAA,EACT;AAAA,EAEQ,MAAM,MAAA,EAA4B;AACxC,IAAA,IAAI,OAAO,MAAA,EAAQ;AACjB,MAAA,IAAA,CAAK,OAAA,IAAW,CAAA;AAAA,IAClB;AAEA,IAAA,IAAI,OAAO,IAAA,EAAM;AACf,MAAA,IAAA,CAAK,OAAA,IAAW,CAAA;AAAA,IAClB;AAEA,IAAA,IAAI,MAAA,CAAO,mBAAmB,iBAAA,EAAmB;AAC/C,MAAA,IAAA,CAAK,OAAA,IAAW,CAAA;AAAA,IAClB,CAAA,MAAA,IAAW,MAAA,CAAO,cAAA,KAAmB,mBAAA,EAAqB;AACxD,MAAA,IAAA,CAAK,OAAA,IAAW,CAAA;AAAA,IAClB;AAEA,IAAA,IAAI,OAAO,MAAA,EAAQ;AACjB,MAAA,IAAA,CAAK,OAAA,IAAW,EAAA;AAAA,IAClB;AAAA,EACF;AAAA,EAEQ,aAAA,GAAsB;AAE5B,IAAA,IACE,IAAA,CAAK,SAAA,EAAU,IACf,CAAC,IAAA,CAAK,mBAAkB,IACxB,CAAC,IAAA,CAAK,mBAAA,EAAoB,EAC1B;AACA,MAAA,IAAA,CAAK,OAAA,IAAW,CAAA;AAAA,IAClB;AAAA,EACF;AAAA,EAEQ,QAAA,GAAiB;AAEvB,IAAA,IAAA,CACG,IAAA,CAAK,mBAAkB,IAAK,IAAA,CAAK,qBAAoB,KACtD,CAAC,IAAA,CAAK,SAAA,EAAU,EAChB;AACA,MAAA,MAAM,IAAI,MAAM,uDAAuD,CAAA;AAAA,IACzE;AAGA,IAAA,IAAI,KAAK,SAAA,EAAU,IAAK,CAAC,IAAA,CAAK,mBAAkB,EAAG;AACjD,MAAA,MAAM,IAAI,KAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKQ,QAAQ,IAAA,EAA4B;AAC1C,IAAA,OAAA,CAAQ,IAAA,CAAK,UAAU,IAAA,MAAU,CAAA;AAAA,EACnC;AAAA;AAAA;AAAA;AAAA,EAKQ,QAAQ,IAAA,EAAyB;AACvC,IAAA,IAAA,CAAK,OAAA,IAAW,IAAA;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA,EAKQ,WAAW,IAAA,EAAyB;AAC1C,IAAA,IAAA,CAAK,WAAW,CAAC,IAAA;AAAA,EACnB;AAAA;AAAA;AAAA;AAAA,EAKA,SAAA,GAAqB;AACnB,IAAA,OAAO,IAAA,CAAK,QAAQ,CAAA,cAAkB;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA,EAKA,OAAA,GAAmB;AACjB,IAAA,OAAO,IAAA,CAAK,QAAQ,CAAA,YAAgB;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA,EAKA,iBAAA,GAA6B;AAC3B,IAAA,OAAO,IAAA,CAAK,QAAQ,CAAA,uBAA2B;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA,EAKA,mBAAA,GAA+B;AAC7B,IAAA,OAAO,IAAA,CAAK,QAAQ,CAAA,yBAA6B;AAAA,EACnD;AAAA;AAAA;AAAA;AAAA,EAKA,SAAA,GAAqB;AACnB,IAAA,OAAO,IAAA,CAAK,QAAQ,EAAA,cAAkB;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA,EAKA,iBAAA,GAA6D;AAC3D,IAAA,IAAI,IAAA,CAAK,mBAAkB,EAAG;AAC5B,MAAA,OAAO,iBAAA;AAAA,IACT;AACA,IAAA,IAAI,IAAA,CAAK,qBAAoB,EAAG;AAC9B,MAAA,OAAO,mBAAA;AAAA,IACT;AACA,IAAA,OAAO,MAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,oBAAA,GAA6C;AAC3C,IAAA,IAAI,kBAAkB,IAAA,CAAK,OAAA;AAG3B,IAAA,IAAA,CAAK,eAAA,GAAkB,6BAAiC,CAAA,EAAG;AACzD,MAAA,eAAA,IAAmB,EAAC;AACpB,MAAA,eAAA,IAAmB,CAAA;AAAA,IACrB;AAGA,IAAA,IAAA,CAAK,eAAA,GAAkB,qBAAwB,CAAA,EAAG;AAChD,MAAA,eAAA,IAAmB,GAAC;AAAA,IACtB;AAEA,IAAA,OAAO,oBAAA,CAAqB,WAAA;AAAA,MAC1B,eAAA;AAAA,MACA,IAAA,CAAK,SAAA;AAAA,MACL,IAAA,CAAK,UAAA;AAAA,MACL,IAAA,CAAK;AAAA,KACP;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,QAAA,GAAyB;AACvB,IAAA,OAAO;AAAA,MACL,MAAA,EAAQ,IAAA,CAAK,SAAA,EAAU,IAAK,MAAA;AAAA,MAC5B,WAAW,IAAA,CAAK,SAAA;AAAA,MAChB,YAAY,IAAA,CAAK,UAAA;AAAA,MACjB,IAAA,EAAM,IAAA,CAAK,OAAA,EAAQ,IAAK,MAAA;AAAA,MACxB,cAAA,EAAgB,KAAK,iBAAA,EAAkB;AAAA,MACvC,MAAA,EAAQ,IAAA,CAAK,SAAA,EAAU,IAAK,MAAA;AAAA,MAC5B,YAAY,IAAA,CAAK;AAAA,KACnB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,UAAA,GAAqB;AACnB,IAAA,OAAO,IAAA,CAAK,OAAA;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,QAAA,GAAmB;AACjB,IAAA,MAAM,QAAkB,EAAC;AACzB,IAAA,IAAI,IAAA,CAAK,SAAA,EAAU,EAAG,KAAA,CAAM,KAAK,QAAQ,CAAA;AACzC,IAAA,IAAI,IAAA,CAAK,OAAA,EAAQ,EAAG,KAAA,CAAM,KAAK,MAAM,CAAA;AACrC,IAAA,IAAI,IAAA,CAAK,iBAAA,EAAkB,EAAG,KAAA,CAAM,KAAK,iBAAiB,CAAA;AAC1D,IAAA,IAAI,IAAA,CAAK,mBAAA,EAAoB,EAAG,KAAA,CAAM,KAAK,mBAAmB,CAAA;AAC9D,IAAA,IAAI,IAAA,CAAK,SAAA,EAAU,EAAG,KAAA,CAAM,KAAK,QAAQ,CAAA;AACzC,IAAA,OAAO,KAAA,CAAM,IAAA,CAAK,KAAK,CAAA,IAAK,MAAA;AAAA,EAC9B;AACF;;;;"}
1
+ {"version":3,"file":"InternalEngineConfig.js","sources":["../../src/execution/InternalEngineConfig.ts"],"sourcesContent":["import type {\n EngineConfig,\n EngineFallbackInfo,\n WorkerCommunicationStrategy,\n} from \"../common/types.ts\";\nimport type { WorkerPool } from \"./worker/helpers/WorkerPool.ts\";\n\n/**\n * Engine flags bitmask (internal use).\n * @internal\n */\nexport enum EngineFlags {\n WORKER = 1 << 0, // 0b00001 = 1\n WASM = 1 << 1, // 0b00010 = 2\n STREAM_TRANSFER = 1 << 2, // 0b00100 = 4\n MESSAGE_STREAMING = 1 << 3, // 0b01000 = 8\n STRICT = 1 << 4, // 0b10000 = 16\n}\n\n/**\n * Internal engine configuration manager.\n *\n * Manages engine configuration using bitmask for efficient flag operations.\n *\n * @internal\n */\nexport class InternalEngineConfig {\n private bitmask = 0;\n readonly workerURL?: string | URL;\n readonly workerPool?: WorkerPool;\n readonly onFallback?: (info: EngineFallbackInfo) => void;\n\n constructor(config?: EngineConfig) {\n if (config) {\n // Extract worker-specific properties only if worker is enabled\n if (config.worker) {\n this.workerURL = config.workerURL;\n this.workerPool = config.workerPool;\n this.onFallback = config.onFallback;\n }\n this.parse(config);\n }\n\n this.applyDefaults();\n this.validate();\n }\n\n /**\n * Private constructor for cloning.\n */\n private static fromBitmask(\n bitmask: number,\n workerURL?: string | URL,\n workerPool?: WorkerPool,\n onFallback?: (info: EngineFallbackInfo) => void,\n ): InternalEngineConfig {\n const instance = Object.create(InternalEngineConfig.prototype);\n instance.bitmask = bitmask;\n (instance as { workerURL?: string | URL }).workerURL = workerURL;\n (instance as { workerPool?: WorkerPool }).workerPool = workerPool;\n (\n instance as { onFallback?: (info: EngineFallbackInfo) => void }\n ).onFallback = onFallback;\n return instance;\n }\n\n private parse(config: EngineConfig): void {\n // Runtime validation for worker-specific properties\n // (TypeScript discriminated union prevents this at compile time)\n const anyConfig = config as any;\n if (!config.worker) {\n if (\n anyConfig.workerStrategy !== undefined &&\n anyConfig.workerStrategy !== false\n ) {\n throw new Error(\n \"workerStrategy requires worker: true in engine config\",\n );\n }\n if (anyConfig.strict !== undefined && anyConfig.strict !== false) {\n throw new Error(\n 'strict requires workerStrategy: \"stream-transfer\" in engine config',\n );\n }\n }\n\n if (config.worker) {\n this.bitmask |= EngineFlags.WORKER;\n\n // Worker-specific properties\n if (config.workerStrategy === \"stream-transfer\") {\n this.bitmask |= EngineFlags.STREAM_TRANSFER;\n } else if (config.workerStrategy === \"message-streaming\") {\n this.bitmask |= EngineFlags.MESSAGE_STREAMING;\n }\n\n if (config.strict) {\n this.bitmask |= EngineFlags.STRICT;\n }\n }\n\n if (config.wasm) {\n this.bitmask |= EngineFlags.WASM;\n }\n }\n\n private applyDefaults(): void {\n // Worker without explicit strategy -> default to message-streaming\n if (\n this.hasWorker() &&\n !this.hasStreamTransfer() &&\n !this.hasMessageStreaming()\n ) {\n this.bitmask |= EngineFlags.MESSAGE_STREAMING;\n }\n }\n\n private validate(): void {\n // workerStrategy requires worker\n if (\n (this.hasStreamTransfer() || this.hasMessageStreaming()) &&\n !this.hasWorker()\n ) {\n throw new Error(\"workerStrategy requires worker: true in engine config\");\n }\n\n // strict requires stream-transfer\n if (this.hasStrict() && !this.hasStreamTransfer()) {\n throw new Error(\n 'strict requires workerStrategy: \"stream-transfer\" in engine config',\n );\n }\n }\n\n /**\n * Check if a flag is set.\n */\n private hasFlag(flag: EngineFlags): boolean {\n return (this.bitmask & flag) !== 0;\n }\n\n /**\n * Add a flag.\n */\n private addFlag(flag: EngineFlags): void {\n this.bitmask |= flag;\n }\n\n /**\n * Remove a flag.\n */\n private removeFlag(flag: EngineFlags): void {\n this.bitmask &= ~flag;\n }\n\n /**\n * Check if worker execution is enabled.\n */\n hasWorker(): boolean {\n return this.hasFlag(EngineFlags.WORKER);\n }\n\n /**\n * Check if WASM is enabled.\n */\n hasWasm(): boolean {\n return this.hasFlag(EngineFlags.WASM);\n }\n\n /**\n * Check if stream transfer is enabled.\n */\n hasStreamTransfer(): boolean {\n return this.hasFlag(EngineFlags.STREAM_TRANSFER);\n }\n\n /**\n * Check if message streaming is enabled.\n */\n hasMessageStreaming(): boolean {\n return this.hasFlag(EngineFlags.MESSAGE_STREAMING);\n }\n\n /**\n * Check if strict mode is enabled.\n */\n hasStrict(): boolean {\n return this.hasFlag(EngineFlags.STRICT);\n }\n\n /**\n * Get worker communication strategy.\n */\n getWorkerStrategy(): WorkerCommunicationStrategy | undefined {\n if (this.hasStreamTransfer()) {\n return \"stream-transfer\";\n }\n if (this.hasMessageStreaming()) {\n return \"message-streaming\";\n }\n return undefined;\n }\n\n /**\n * Create a fallback configuration.\n *\n * Converts stream-transfer to message-streaming and disables strict mode.\n */\n createFallbackConfig(): InternalEngineConfig {\n let fallbackBitmask = this.bitmask;\n\n // Stream transfer -> message streaming\n if ((fallbackBitmask & EngineFlags.STREAM_TRANSFER) !== 0) {\n fallbackBitmask &= ~EngineFlags.STREAM_TRANSFER;\n fallbackBitmask |= EngineFlags.MESSAGE_STREAMING;\n }\n\n // Disable strict mode\n if ((fallbackBitmask & EngineFlags.STRICT) !== 0) {\n fallbackBitmask &= ~EngineFlags.STRICT;\n }\n\n return InternalEngineConfig.fromBitmask(\n fallbackBitmask,\n this.workerURL,\n this.workerPool,\n this.onFallback,\n );\n }\n\n /**\n * Convert to EngineConfig.\n */\n toConfig(): EngineConfig {\n const hasWorker = this.hasWorker();\n\n if (hasWorker) {\n return {\n worker: true,\n workerURL: this.workerURL,\n workerPool: this.workerPool,\n wasm: this.hasWasm() || undefined,\n workerStrategy: this.getWorkerStrategy(),\n strict: this.hasStrict() || undefined,\n onFallback: this.onFallback,\n };\n }\n\n return {\n worker: false,\n wasm: this.hasWasm() || undefined,\n };\n }\n\n /**\n * Get bitmask for debugging.\n * @internal\n */\n getBitmask(): number {\n return this.bitmask;\n }\n\n /**\n * String representation for debugging.\n */\n toString(): string {\n const parts: string[] = [];\n if (this.hasWorker()) parts.push(\"worker\");\n if (this.hasWasm()) parts.push(\"wasm\");\n if (this.hasStreamTransfer()) parts.push(\"stream-transfer\");\n if (this.hasMessageStreaming()) parts.push(\"message-streaming\");\n if (this.hasStrict()) parts.push(\"strict\");\n return parts.join(\" + \") || \"main\";\n }\n}\n"],"names":[],"mappings":"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"}
@@ -3,10 +3,9 @@ import { sendWorkerMessage } from './utils/messageHandler.js';
3
3
  import { serializeOptions } from './utils/serializeOptions.js';
4
4
 
5
5
  async function* parseBinaryInWorker(binary, options) {
6
- using session = await WorkerSession.create({
7
- workerPool: options?.engine?.workerPool,
8
- workerURL: options?.engine?.workerURL
9
- });
6
+ using session = await WorkerSession.create(
7
+ options?.engine?.worker === true ? options.engine : void 0
8
+ );
10
9
  yield* sendWorkerMessage(
11
10
  session.getWorker(),
12
11
  {
@@ -1 +1 @@
1
- {"version":3,"file":"parseBinaryInWorker.node.js","sources":["../../../src/execution/worker/parseBinaryInWorker.node.ts"],"sourcesContent":["import type {\n CSVRecord,\n ParseBinaryOptions,\n ParseOptions,\n} from \"../../common/types.ts\";\nimport type { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from \"../../constants.ts\";\nimport { WorkerSession } from \"./helpers/WorkerSession.ts\";\nimport { sendWorkerMessage } from \"./utils/messageHandler.ts\";\nimport { serializeOptions } from \"./utils/serializeOptions.ts\";\n\n/**\n * Parse CSV binary in Worker thread (Node.js).\n *\n * @internal\n */\nexport async function* parseBinaryInWorker<\n Header extends ReadonlyArray<string>,\n Delimiter extends string = DEFAULT_DELIMITER,\n Quotation extends string = DEFAULT_QUOTATION,\n>(\n binary: Uint8Array | ArrayBuffer,\n options?: ParseBinaryOptions<Header, Delimiter, Quotation>,\n): AsyncIterableIterator<CSVRecord<Header>> {\n using session = await WorkerSession.create({\n workerPool: options?.engine?.workerPool,\n workerURL: options?.engine?.workerURL,\n });\n\n yield* sendWorkerMessage<CSVRecord<Header>>(\n session.getWorker(),\n {\n id: session.getNextRequestId(),\n type: \"parseBinary\",\n data: binary,\n options: serializeOptions(options),\n useWASM: false,\n },\n options as ParseOptions<Header> | ParseBinaryOptions<Header> | undefined,\n );\n}\n"],"names":[],"mappings":";;;;AAeA,gBAAuB,mBAAA,CAKrB,QACA,OAAA,EAC0C;AAC1C,EAAA,MAAM,OAAA,GAAU,MAAM,aAAA,CAAc,MAAA,CAAO;AAAA,IACzC,UAAA,EAAY,SAAS,MAAA,EAAQ,UAAA;AAAA,IAC7B,SAAA,EAAW,SAAS,MAAA,EAAQ;AAAA,GAC7B,CAAA;AAED,EAAA,OAAO,iBAAA;AAAA,IACL,QAAQ,SAAA,EAAU;AAAA,IAClB;AAAA,MACE,EAAA,EAAI,QAAQ,gBAAA,EAAiB;AAAA,MAC7B,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS,iBAAiB,OAAO,CAAA;AAAA,MACjC,OAAA,EAAS;AAAA,KACX;AAAA,IACA;AAAA,GACF;AACF;;;;"}
1
+ {"version":3,"file":"parseBinaryInWorker.node.js","sources":["../../../src/execution/worker/parseBinaryInWorker.node.ts"],"sourcesContent":["import type {\n CSVRecord,\n ParseBinaryOptions,\n ParseOptions,\n} from \"../../common/types.ts\";\nimport type { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from \"../../constants.ts\";\nimport { WorkerSession } from \"./helpers/WorkerSession.ts\";\nimport { sendWorkerMessage } from \"./utils/messageHandler.ts\";\nimport { serializeOptions } from \"./utils/serializeOptions.ts\";\n\n/**\n * Parse CSV binary in Worker thread (Node.js).\n *\n * @internal\n */\nexport async function* parseBinaryInWorker<\n Header extends ReadonlyArray<string>,\n Delimiter extends string = DEFAULT_DELIMITER,\n Quotation extends string = DEFAULT_QUOTATION,\n>(\n binary: Uint8Array | ArrayBuffer,\n options?: ParseBinaryOptions<Header, Delimiter, Quotation>,\n): AsyncIterableIterator<CSVRecord<Header>> {\n using session = await WorkerSession.create(\n options?.engine?.worker === true ? options.engine : undefined,\n );\n\n yield* sendWorkerMessage<CSVRecord<Header>>(\n session.getWorker(),\n {\n id: session.getNextRequestId(),\n type: \"parseBinary\",\n data: binary,\n options: serializeOptions(options),\n useWASM: false,\n },\n options as ParseOptions<Header> | ParseBinaryOptions<Header> | undefined,\n );\n}\n"],"names":[],"mappings":";;;;AAeA,gBAAuB,mBAAA,CAKrB,QACA,OAAA,EAC0C;AAC1C,EAAA,MAAM,OAAA,GAAU,MAAM,aAAA,CAAc,MAAA;AAAA,IAClC,OAAA,EAAS,MAAA,EAAQ,MAAA,KAAW,IAAA,GAAO,QAAQ,MAAA,GAAS;AAAA,GACtD;AAEA,EAAA,OAAO,iBAAA;AAAA,IACL,QAAQ,SAAA,EAAU;AAAA,IAClB;AAAA,MACE,EAAA,EAAI,QAAQ,gBAAA,EAAiB;AAAA,MAC7B,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS,iBAAiB,OAAO,CAAA;AAAA,MACjC,OAAA,EAAS;AAAA,KACX;AAAA,IACA;AAAA,GACF;AACF;;;;"}
@@ -3,10 +3,9 @@ import { sendWorkerMessage } from './utils/messageHandler.js';
3
3
  import { serializeOptions } from './utils/serializeOptions.js';
4
4
 
5
5
  async function* parseBinaryInWorker(binary, options) {
6
- using session = await WorkerSession.create({
7
- workerPool: options?.engine?.workerPool,
8
- workerURL: options?.engine?.workerURL
9
- });
6
+ using session = await WorkerSession.create(
7
+ options?.engine?.worker === true ? options.engine : void 0
8
+ );
10
9
  yield* sendWorkerMessage(
11
10
  session.getWorker(),
12
11
  {
@@ -1 +1 @@
1
- {"version":3,"file":"parseBinaryInWorker.web.js","sources":["../../../src/execution/worker/parseBinaryInWorker.web.ts"],"sourcesContent":["import type {\n CSVRecord,\n ParseBinaryOptions,\n ParseOptions,\n} from \"../../common/types.ts\";\nimport type { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from \"../../constants.ts\";\nimport { WorkerSession } from \"./helpers/WorkerSession.ts\";\nimport { sendWorkerMessage } from \"./utils/messageHandler.ts\";\nimport { serializeOptions } from \"./utils/serializeOptions.ts\";\n\n/**\n * Parse CSV binary in Worker thread (Browser/Deno).\n *\n * @internal\n */\nexport async function* parseBinaryInWorker<\n Header extends ReadonlyArray<string>,\n Delimiter extends string = DEFAULT_DELIMITER,\n Quotation extends string = DEFAULT_QUOTATION,\n>(\n binary: Uint8Array | ArrayBuffer,\n options?: ParseBinaryOptions<Header, Delimiter, Quotation>,\n): AsyncIterableIterator<CSVRecord<Header>> {\n using session = await WorkerSession.create({\n workerPool: options?.engine?.workerPool,\n workerURL: options?.engine?.workerURL,\n });\n\n yield* sendWorkerMessage<CSVRecord<Header>>(\n session.getWorker(),\n {\n id: session.getNextRequestId(),\n type: \"parseBinary\",\n data: binary,\n options: serializeOptions(options),\n useWASM: false,\n },\n options as ParseOptions<Header> | ParseBinaryOptions<Header> | undefined,\n );\n}\n"],"names":[],"mappings":";;;;AAeA,gBAAuB,mBAAA,CAKrB,QACA,OAAA,EAC0C;AAC1C,EAAA,MAAM,OAAA,GAAU,MAAM,aAAA,CAAc,MAAA,CAAO;AAAA,IACzC,UAAA,EAAY,SAAS,MAAA,EAAQ,UAAA;AAAA,IAC7B,SAAA,EAAW,SAAS,MAAA,EAAQ;AAAA,GAC7B,CAAA;AAED,EAAA,OAAO,iBAAA;AAAA,IACL,QAAQ,SAAA,EAAU;AAAA,IAClB;AAAA,MACE,EAAA,EAAI,QAAQ,gBAAA,EAAiB;AAAA,MAC7B,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS,iBAAiB,OAAO,CAAA;AAAA,MACjC,OAAA,EAAS;AAAA,KACX;AAAA,IACA;AAAA,GACF;AACF;;;;"}
1
+ {"version":3,"file":"parseBinaryInWorker.web.js","sources":["../../../src/execution/worker/parseBinaryInWorker.web.ts"],"sourcesContent":["import type {\n CSVRecord,\n ParseBinaryOptions,\n ParseOptions,\n} from \"../../common/types.ts\";\nimport type { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from \"../../constants.ts\";\nimport { WorkerSession } from \"./helpers/WorkerSession.ts\";\nimport { sendWorkerMessage } from \"./utils/messageHandler.ts\";\nimport { serializeOptions } from \"./utils/serializeOptions.ts\";\n\n/**\n * Parse CSV binary in Worker thread (Browser/Deno).\n *\n * @internal\n */\nexport async function* parseBinaryInWorker<\n Header extends ReadonlyArray<string>,\n Delimiter extends string = DEFAULT_DELIMITER,\n Quotation extends string = DEFAULT_QUOTATION,\n>(\n binary: Uint8Array | ArrayBuffer,\n options?: ParseBinaryOptions<Header, Delimiter, Quotation>,\n): AsyncIterableIterator<CSVRecord<Header>> {\n using session = await WorkerSession.create(\n options?.engine?.worker === true ? options.engine : undefined,\n );\n\n yield* sendWorkerMessage<CSVRecord<Header>>(\n session.getWorker(),\n {\n id: session.getNextRequestId(),\n type: \"parseBinary\",\n data: binary,\n options: serializeOptions(options),\n useWASM: false,\n },\n options as ParseOptions<Header> | ParseBinaryOptions<Header> | undefined,\n );\n}\n"],"names":[],"mappings":";;;;AAeA,gBAAuB,mBAAA,CAKrB,QACA,OAAA,EAC0C;AAC1C,EAAA,MAAM,OAAA,GAAU,MAAM,aAAA,CAAc,MAAA;AAAA,IAClC,OAAA,EAAS,MAAA,EAAQ,MAAA,KAAW,IAAA,GAAO,QAAQ,MAAA,GAAS;AAAA,GACtD;AAEA,EAAA,OAAO,iBAAA;AAAA,IACL,QAAQ,SAAA,EAAU;AAAA,IAClB;AAAA,MACE,EAAA,EAAI,QAAQ,gBAAA,EAAiB;AAAA,MAC7B,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS,iBAAiB,OAAO,CAAA;AAAA,MACjC,OAAA,EAAS;AAAA,KACX;AAAA,IACA;AAAA,GACF;AACF;;;;"}
@@ -3,10 +3,9 @@ import { sendWorkerMessage } from './utils/messageHandler.js';
3
3
  import { serializeOptions } from './utils/serializeOptions.js';
4
4
 
5
5
  async function* parseBinaryInWorkerWASM(binary, options) {
6
- using session = await WorkerSession.create({
7
- workerPool: options?.engine?.workerPool,
8
- workerURL: options?.engine?.workerURL
9
- });
6
+ using session = await WorkerSession.create(
7
+ options?.engine?.worker === true ? options.engine : void 0
8
+ );
10
9
  yield* sendWorkerMessage(
11
10
  session.getWorker(),
12
11
  {
@@ -1 +1 @@
1
- {"version":3,"file":"parseBinaryInWorkerWASM.node.js","sources":["../../../src/execution/worker/parseBinaryInWorkerWASM.node.ts"],"sourcesContent":["import type {\n CSVRecord,\n ParseBinaryOptions,\n ParseOptions,\n} from \"../../common/types.ts\";\nimport type { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from \"../../constants.ts\";\nimport { WorkerSession } from \"./helpers/WorkerSession.ts\";\nimport { sendWorkerMessage } from \"./utils/messageHandler.ts\";\nimport { serializeOptions } from \"./utils/serializeOptions.ts\";\n\n/**\n * Parse CSV binary in Worker thread using WASM (Node.js).\n *\n * @internal\n */\nexport async function* parseBinaryInWorkerWASM<\n Header extends ReadonlyArray<string>,\n Delimiter extends string = DEFAULT_DELIMITER,\n Quotation extends string = DEFAULT_QUOTATION,\n>(\n binary: Uint8Array | ArrayBuffer,\n options?: ParseBinaryOptions<Header, Delimiter, Quotation>,\n): AsyncIterableIterator<CSVRecord<Header>> {\n using session = await WorkerSession.create({\n workerPool: options?.engine?.workerPool,\n workerURL: options?.engine?.workerURL,\n });\n\n yield* sendWorkerMessage<CSVRecord<Header>>(\n session.getWorker(),\n {\n id: session.getNextRequestId(),\n type: \"parseBinary\",\n data: binary,\n options: serializeOptions(options),\n useWASM: true,\n },\n options as ParseOptions<Header> | ParseBinaryOptions<Header> | undefined,\n );\n}\n"],"names":[],"mappings":";;;;AAeA,gBAAuB,uBAAA,CAKrB,QACA,OAAA,EAC0C;AAC1C,EAAA,MAAM,OAAA,GAAU,MAAM,aAAA,CAAc,MAAA,CAAO;AAAA,IACzC,UAAA,EAAY,SAAS,MAAA,EAAQ,UAAA;AAAA,IAC7B,SAAA,EAAW,SAAS,MAAA,EAAQ;AAAA,GAC7B,CAAA;AAED,EAAA,OAAO,iBAAA;AAAA,IACL,QAAQ,SAAA,EAAU;AAAA,IAClB;AAAA,MACE,EAAA,EAAI,QAAQ,gBAAA,EAAiB;AAAA,MAC7B,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS,iBAAiB,OAAO,CAAA;AAAA,MACjC,OAAA,EAAS;AAAA,KACX;AAAA,IACA;AAAA,GACF;AACF;;;;"}
1
+ {"version":3,"file":"parseBinaryInWorkerWASM.node.js","sources":["../../../src/execution/worker/parseBinaryInWorkerWASM.node.ts"],"sourcesContent":["import type {\n CSVRecord,\n ParseBinaryOptions,\n ParseOptions,\n} from \"../../common/types.ts\";\nimport type { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from \"../../constants.ts\";\nimport { WorkerSession } from \"./helpers/WorkerSession.ts\";\nimport { sendWorkerMessage } from \"./utils/messageHandler.ts\";\nimport { serializeOptions } from \"./utils/serializeOptions.ts\";\n\n/**\n * Parse CSV binary in Worker thread using WASM (Node.js).\n *\n * @internal\n */\nexport async function* parseBinaryInWorkerWASM<\n Header extends ReadonlyArray<string>,\n Delimiter extends string = DEFAULT_DELIMITER,\n Quotation extends string = DEFAULT_QUOTATION,\n>(\n binary: Uint8Array | ArrayBuffer,\n options?: ParseBinaryOptions<Header, Delimiter, Quotation>,\n): AsyncIterableIterator<CSVRecord<Header>> {\n using session = await WorkerSession.create(\n options?.engine?.worker === true ? options.engine : undefined,\n );\n\n yield* sendWorkerMessage<CSVRecord<Header>>(\n session.getWorker(),\n {\n id: session.getNextRequestId(),\n type: \"parseBinary\",\n data: binary,\n options: serializeOptions(options),\n useWASM: true,\n },\n options as ParseOptions<Header> | ParseBinaryOptions<Header> | undefined,\n );\n}\n"],"names":[],"mappings":";;;;AAeA,gBAAuB,uBAAA,CAKrB,QACA,OAAA,EAC0C;AAC1C,EAAA,MAAM,OAAA,GAAU,MAAM,aAAA,CAAc,MAAA;AAAA,IAClC,OAAA,EAAS,MAAA,EAAQ,MAAA,KAAW,IAAA,GAAO,QAAQ,MAAA,GAAS;AAAA,GACtD;AAEA,EAAA,OAAO,iBAAA;AAAA,IACL,QAAQ,SAAA,EAAU;AAAA,IAClB;AAAA,MACE,EAAA,EAAI,QAAQ,gBAAA,EAAiB;AAAA,MAC7B,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS,iBAAiB,OAAO,CAAA;AAAA,MACjC,OAAA,EAAS;AAAA,KACX;AAAA,IACA;AAAA,GACF;AACF;;;;"}
@@ -3,10 +3,9 @@ import { sendWorkerMessage } from './utils/messageHandler.js';
3
3
  import { serializeOptions } from './utils/serializeOptions.js';
4
4
 
5
5
  async function* parseBinaryInWorkerWASM(binary, options) {
6
- using session = await WorkerSession.create({
7
- workerPool: options?.engine?.workerPool,
8
- workerURL: options?.engine?.workerURL
9
- });
6
+ using session = await WorkerSession.create(
7
+ options?.engine?.worker === true ? options.engine : void 0
8
+ );
10
9
  yield* sendWorkerMessage(
11
10
  session.getWorker(),
12
11
  {
@@ -1 +1 @@
1
- {"version":3,"file":"parseBinaryInWorkerWASM.web.js","sources":["../../../src/execution/worker/parseBinaryInWorkerWASM.web.ts"],"sourcesContent":["import type {\n CSVRecord,\n ParseBinaryOptions,\n ParseOptions,\n} from \"../../common/types.ts\";\nimport type { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from \"../../constants.ts\";\nimport { WorkerSession } from \"./helpers/WorkerSession.ts\";\nimport { sendWorkerMessage } from \"./utils/messageHandler.ts\";\nimport { serializeOptions } from \"./utils/serializeOptions.ts\";\n\n/**\n * Parse CSV binary in Worker thread using WASM (Browser/Deno).\n *\n * @internal\n */\nexport async function* parseBinaryInWorkerWASM<\n Header extends ReadonlyArray<string>,\n Delimiter extends string = DEFAULT_DELIMITER,\n Quotation extends string = DEFAULT_QUOTATION,\n>(\n binary: Uint8Array | ArrayBuffer,\n options?: ParseBinaryOptions<Header, Delimiter, Quotation>,\n): AsyncIterableIterator<CSVRecord<Header>> {\n using session = await WorkerSession.create({\n workerPool: options?.engine?.workerPool,\n workerURL: options?.engine?.workerURL,\n });\n\n yield* sendWorkerMessage<CSVRecord<Header>>(\n session.getWorker(),\n {\n id: session.getNextRequestId(),\n type: \"parseBinary\",\n data: binary,\n options: serializeOptions(options),\n useWASM: true,\n },\n options as ParseOptions<Header> | ParseBinaryOptions<Header> | undefined,\n );\n}\n"],"names":[],"mappings":";;;;AAeA,gBAAuB,uBAAA,CAKrB,QACA,OAAA,EAC0C;AAC1C,EAAA,MAAM,OAAA,GAAU,MAAM,aAAA,CAAc,MAAA,CAAO;AAAA,IACzC,UAAA,EAAY,SAAS,MAAA,EAAQ,UAAA;AAAA,IAC7B,SAAA,EAAW,SAAS,MAAA,EAAQ;AAAA,GAC7B,CAAA;AAED,EAAA,OAAO,iBAAA;AAAA,IACL,QAAQ,SAAA,EAAU;AAAA,IAClB;AAAA,MACE,EAAA,EAAI,QAAQ,gBAAA,EAAiB;AAAA,MAC7B,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS,iBAAiB,OAAO,CAAA;AAAA,MACjC,OAAA,EAAS;AAAA,KACX;AAAA,IACA;AAAA,GACF;AACF;;;;"}
1
+ {"version":3,"file":"parseBinaryInWorkerWASM.web.js","sources":["../../../src/execution/worker/parseBinaryInWorkerWASM.web.ts"],"sourcesContent":["import type {\n CSVRecord,\n ParseBinaryOptions,\n ParseOptions,\n} from \"../../common/types.ts\";\nimport type { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from \"../../constants.ts\";\nimport { WorkerSession } from \"./helpers/WorkerSession.ts\";\nimport { sendWorkerMessage } from \"./utils/messageHandler.ts\";\nimport { serializeOptions } from \"./utils/serializeOptions.ts\";\n\n/**\n * Parse CSV binary in Worker thread using WASM (Browser/Deno).\n *\n * @internal\n */\nexport async function* parseBinaryInWorkerWASM<\n Header extends ReadonlyArray<string>,\n Delimiter extends string = DEFAULT_DELIMITER,\n Quotation extends string = DEFAULT_QUOTATION,\n>(\n binary: Uint8Array | ArrayBuffer,\n options?: ParseBinaryOptions<Header, Delimiter, Quotation>,\n): AsyncIterableIterator<CSVRecord<Header>> {\n using session = await WorkerSession.create(\n options?.engine?.worker === true ? options.engine : undefined,\n );\n\n yield* sendWorkerMessage<CSVRecord<Header>>(\n session.getWorker(),\n {\n id: session.getNextRequestId(),\n type: \"parseBinary\",\n data: binary,\n options: serializeOptions(options),\n useWASM: true,\n },\n options as ParseOptions<Header> | ParseBinaryOptions<Header> | undefined,\n );\n}\n"],"names":[],"mappings":";;;;AAeA,gBAAuB,uBAAA,CAKrB,QACA,OAAA,EAC0C;AAC1C,EAAA,MAAM,OAAA,GAAU,MAAM,aAAA,CAAc,MAAA;AAAA,IAClC,OAAA,EAAS,MAAA,EAAQ,MAAA,KAAW,IAAA,GAAO,QAAQ,MAAA,GAAS;AAAA,GACtD;AAEA,EAAA,OAAO,iBAAA;AAAA,IACL,QAAQ,SAAA,EAAU;AAAA,IAClB;AAAA,MACE,EAAA,EAAI,QAAQ,gBAAA,EAAiB;AAAA,MAC7B,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS,iBAAiB,OAAO,CAAA;AAAA,MACjC,OAAA,EAAS;AAAA,KACX;AAAA,IACA;AAAA,GACF;AACF;;;;"}
@@ -5,10 +5,9 @@ import { collectStringStream } from './utils/streamCollector.node.js';
5
5
 
6
6
  async function* parseStreamInWorker(stream, options) {
7
7
  const csvString = await collectStringStream(stream, options?.signal);
8
- using session = await WorkerSession.create({
9
- workerPool: options?.engine?.workerPool,
10
- workerURL: options?.engine?.workerURL
11
- });
8
+ using session = await WorkerSession.create(
9
+ options?.engine?.worker === true ? options.engine : void 0
10
+ );
12
11
  yield* sendWorkerMessage(
13
12
  session.getWorker(),
14
13
  {
@@ -1 +1 @@
1
- {"version":3,"file":"parseStreamInWorker.node.js","sources":["../../../src/execution/worker/parseStreamInWorker.node.ts"],"sourcesContent":["import type {\n CSVRecord,\n ParseBinaryOptions,\n ParseOptions,\n} from \"../../common/types.ts\";\nimport type { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from \"../../constants.ts\";\nimport { WorkerSession } from \"./helpers/WorkerSession.ts\";\nimport { sendWorkerMessage } from \"./utils/messageHandler.ts\";\nimport { serializeOptions } from \"./utils/serializeOptions.ts\";\nimport { collectStringStream } from \"./utils/streamCollector.node.ts\";\n\n/**\n * Parse CSV stream in Worker thread (Node.js).\n * Collects stream into string first, then sends to worker.\n *\n * Note: Node.js Worker Threads do not support ReadableStream transfer,\n * so we collect the stream into a string first.\n *\n * @internal\n * @param stream CSV string stream to parse\n * @param options Parsing options\n * @returns Async iterable iterator of records\n */\nexport async function* parseStreamInWorker<\n Header extends ReadonlyArray<string>,\n Delimiter extends string = DEFAULT_DELIMITER,\n Quotation extends string = DEFAULT_QUOTATION,\n>(\n stream: ReadableStream<string>,\n options?: ParseOptions<Header, Delimiter, Quotation>,\n): AsyncIterableIterator<CSVRecord<Header>> {\n // Node.js: Collect stream into string first\n const csvString = await collectStringStream(stream, options?.signal);\n\n using session = await WorkerSession.create({\n workerPool: options?.engine?.workerPool,\n workerURL: options?.engine?.workerURL,\n });\n\n yield* sendWorkerMessage<CSVRecord<Header>>(\n session.getWorker(),\n {\n id: session.getNextRequestId(),\n type: \"parseString\",\n data: csvString,\n options: serializeOptions(options),\n useWASM: false,\n },\n options as ParseOptions<Header> | ParseBinaryOptions<Header> | undefined,\n );\n}\n"],"names":[],"mappings":";;;;;AAuBA,gBAAuB,mBAAA,CAKrB,QACA,OAAA,EAC0C;AAE1C,EAAA,MAAM,SAAA,GAAY,MAAM,mBAAA,CAAoB,MAAA,EAAQ,SAAS,MAAM,CAAA;AAEnE,EAAA,MAAM,OAAA,GAAU,MAAM,aAAA,CAAc,MAAA,CAAO;AAAA,IACzC,UAAA,EAAY,SAAS,MAAA,EAAQ,UAAA;AAAA,IAC7B,SAAA,EAAW,SAAS,MAAA,EAAQ;AAAA,GAC7B,CAAA;AAED,EAAA,OAAO,iBAAA;AAAA,IACL,QAAQ,SAAA,EAAU;AAAA,IAClB;AAAA,MACE,EAAA,EAAI,QAAQ,gBAAA,EAAiB;AAAA,MAC7B,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,SAAA;AAAA,MACN,OAAA,EAAS,iBAAiB,OAAO,CAAA;AAAA,MACjC,OAAA,EAAS;AAAA,KACX;AAAA,IACA;AAAA,GACF;AACF;;;;"}
1
+ {"version":3,"file":"parseStreamInWorker.node.js","sources":["../../../src/execution/worker/parseStreamInWorker.node.ts"],"sourcesContent":["import type {\n CSVRecord,\n ParseBinaryOptions,\n ParseOptions,\n} from \"../../common/types.ts\";\nimport type { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from \"../../constants.ts\";\nimport { WorkerSession } from \"./helpers/WorkerSession.ts\";\nimport { sendWorkerMessage } from \"./utils/messageHandler.ts\";\nimport { serializeOptions } from \"./utils/serializeOptions.ts\";\nimport { collectStringStream } from \"./utils/streamCollector.node.ts\";\n\n/**\n * Parse CSV stream in Worker thread (Node.js).\n * Collects stream into string first, then sends to worker.\n *\n * Note: Node.js Worker Threads do not support ReadableStream transfer,\n * so we collect the stream into a string first.\n *\n * @internal\n * @param stream CSV string stream to parse\n * @param options Parsing options\n * @returns Async iterable iterator of records\n */\nexport async function* parseStreamInWorker<\n Header extends ReadonlyArray<string>,\n Delimiter extends string = DEFAULT_DELIMITER,\n Quotation extends string = DEFAULT_QUOTATION,\n>(\n stream: ReadableStream<string>,\n options?: ParseOptions<Header, Delimiter, Quotation>,\n): AsyncIterableIterator<CSVRecord<Header>> {\n // Node.js: Collect stream into string first\n const csvString = await collectStringStream(stream, options?.signal);\n\n using session = await WorkerSession.create(\n options?.engine?.worker === true ? options.engine : undefined,\n );\n\n yield* sendWorkerMessage<CSVRecord<Header>>(\n session.getWorker(),\n {\n id: session.getNextRequestId(),\n type: \"parseString\",\n data: csvString,\n options: serializeOptions(options),\n useWASM: false,\n },\n options as ParseOptions<Header> | ParseBinaryOptions<Header> | undefined,\n );\n}\n"],"names":[],"mappings":";;;;;AAuBA,gBAAuB,mBAAA,CAKrB,QACA,OAAA,EAC0C;AAE1C,EAAA,MAAM,SAAA,GAAY,MAAM,mBAAA,CAAoB,MAAA,EAAQ,SAAS,MAAM,CAAA;AAEnE,EAAA,MAAM,OAAA,GAAU,MAAM,aAAA,CAAc,MAAA;AAAA,IAClC,OAAA,EAAS,MAAA,EAAQ,MAAA,KAAW,IAAA,GAAO,QAAQ,MAAA,GAAS;AAAA,GACtD;AAEA,EAAA,OAAO,iBAAA;AAAA,IACL,QAAQ,SAAA,EAAU;AAAA,IAClB;AAAA,MACE,EAAA,EAAI,QAAQ,gBAAA,EAAiB;AAAA,MAC7B,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,SAAA;AAAA,MACN,OAAA,EAAS,iBAAiB,OAAO,CAAA;AAAA,MACjC,OAAA,EAAS;AAAA,KACX;AAAA,IACA;AAAA,GACF;AACF;;;;"}
@@ -3,10 +3,9 @@ import { sendWorkerMessage } from './utils/messageHandler.js';
3
3
  import { serializeOptions } from './utils/serializeOptions.js';
4
4
 
5
5
  async function* parseStreamInWorker(stream, options) {
6
- using session = await WorkerSession.create({
7
- workerPool: options?.engine?.workerPool,
8
- workerURL: options?.engine?.workerURL
9
- });
6
+ using session = await WorkerSession.create(
7
+ options?.engine?.worker === true ? options.engine : void 0
8
+ );
10
9
  yield* sendWorkerMessage(
11
10
  session.getWorker(),
12
11
  {
@@ -1 +1 @@
1
- {"version":3,"file":"parseStreamInWorker.web.js","sources":["../../../src/execution/worker/parseStreamInWorker.web.ts"],"sourcesContent":["import type {\n CSVRecord,\n ParseBinaryOptions,\n ParseOptions,\n} from \"../../common/types.ts\";\nimport type { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from \"../../constants.ts\";\nimport { convertStreamToAsyncIterableIterator } from \"../../utils/convertStreamToAsyncIterableIterator.ts\";\nimport { WorkerSession } from \"./helpers/WorkerSession.ts\";\nimport { sendWorkerMessage } from \"./utils/messageHandler.ts\";\nimport { serializeOptions } from \"./utils/serializeOptions.ts\";\n\n/**\n * Parse CSV stream in Worker thread (Browser/Deno).\n * Uses Transferable Streams for zero-copy transfer.\n *\n * @internal\n * @param stream CSV string stream to parse\n * @param options Parsing options\n * @returns Async iterable iterator of records\n */\nexport async function* parseStreamInWorker<\n Header extends ReadonlyArray<string>,\n Delimiter extends string = DEFAULT_DELIMITER,\n Quotation extends string = DEFAULT_QUOTATION,\n>(\n stream: ReadableStream<string>,\n options?: ParseOptions<Header, Delimiter, Quotation>,\n): AsyncIterableIterator<CSVRecord<Header>> {\n using session = await WorkerSession.create({\n workerPool: options?.engine?.workerPool,\n workerURL: options?.engine?.workerURL,\n });\n\n yield* sendWorkerMessage<CSVRecord<Header>>(\n session.getWorker(),\n {\n id: session.getNextRequestId(),\n type: \"parseStream\",\n data: stream,\n options: serializeOptions(options),\n },\n options as ParseOptions<Header> | ParseBinaryOptions<Header> | undefined,\n [stream], // Transfer stream\n );\n}\n"],"names":[],"mappings":";;;;AAoBA,gBAAuB,mBAAA,CAKrB,QACA,OAAA,EAC0C;AAC1C,EAAA,MAAM,OAAA,GAAU,MAAM,aAAA,CAAc,MAAA,CAAO;AAAA,IACzC,UAAA,EAAY,SAAS,MAAA,EAAQ,UAAA;AAAA,IAC7B,SAAA,EAAW,SAAS,MAAA,EAAQ;AAAA,GAC7B,CAAA;AAED,EAAA,OAAO,iBAAA;AAAA,IACL,QAAQ,SAAA,EAAU;AAAA,IAClB;AAAA,MACE,EAAA,EAAI,QAAQ,gBAAA,EAAiB;AAAA,MAC7B,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS,iBAAiB,OAAO;AAAA,KACnC;AAAA,IACA,OAAA;AAAA,IACA,CAAC,MAAM;AAAA;AAAA,GACT;AACF;;;;"}
1
+ {"version":3,"file":"parseStreamInWorker.web.js","sources":["../../../src/execution/worker/parseStreamInWorker.web.ts"],"sourcesContent":["import type {\n CSVRecord,\n ParseBinaryOptions,\n ParseOptions,\n} from \"../../common/types.ts\";\nimport type { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from \"../../constants.ts\";\nimport { convertStreamToAsyncIterableIterator } from \"../../utils/convertStreamToAsyncIterableIterator.ts\";\nimport { WorkerSession } from \"./helpers/WorkerSession.ts\";\nimport { sendWorkerMessage } from \"./utils/messageHandler.ts\";\nimport { serializeOptions } from \"./utils/serializeOptions.ts\";\n\n/**\n * Parse CSV stream in Worker thread (Browser/Deno).\n * Uses Transferable Streams for zero-copy transfer.\n *\n * @internal\n * @param stream CSV string stream to parse\n * @param options Parsing options\n * @returns Async iterable iterator of records\n */\nexport async function* parseStreamInWorker<\n Header extends ReadonlyArray<string>,\n Delimiter extends string = DEFAULT_DELIMITER,\n Quotation extends string = DEFAULT_QUOTATION,\n>(\n stream: ReadableStream<string>,\n options?: ParseOptions<Header, Delimiter, Quotation>,\n): AsyncIterableIterator<CSVRecord<Header>> {\n using session = await WorkerSession.create(\n options?.engine?.worker === true ? options.engine : undefined,\n );\n\n yield* sendWorkerMessage<CSVRecord<Header>>(\n session.getWorker(),\n {\n id: session.getNextRequestId(),\n type: \"parseStream\",\n data: stream,\n options: serializeOptions(options),\n },\n options as ParseOptions<Header> | ParseBinaryOptions<Header> | undefined,\n [stream], // Transfer stream\n );\n}\n"],"names":[],"mappings":";;;;AAoBA,gBAAuB,mBAAA,CAKrB,QACA,OAAA,EAC0C;AAC1C,EAAA,MAAM,OAAA,GAAU,MAAM,aAAA,CAAc,MAAA;AAAA,IAClC,OAAA,EAAS,MAAA,EAAQ,MAAA,KAAW,IAAA,GAAO,QAAQ,MAAA,GAAS;AAAA,GACtD;AAEA,EAAA,OAAO,iBAAA;AAAA,IACL,QAAQ,SAAA,EAAU;AAAA,IAClB;AAAA,MACE,EAAA,EAAI,QAAQ,gBAAA,EAAiB;AAAA,MAC7B,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS,iBAAiB,OAAO;AAAA,KACnC;AAAA,IACA,OAAA;AAAA,IACA,CAAC,MAAM;AAAA;AAAA,GACT;AACF;;;;"}
@@ -3,10 +3,9 @@ import { sendWorkerMessage } from './utils/messageHandler.js';
3
3
  import { serializeOptions } from './utils/serializeOptions.js';
4
4
 
5
5
  async function* parseStringInWorker(csv, options) {
6
- using session = await WorkerSession.create({
7
- workerPool: options?.engine?.workerPool,
8
- workerURL: options?.engine?.workerURL
9
- });
6
+ using session = await WorkerSession.create(
7
+ options?.engine?.worker === true ? options.engine : void 0
8
+ );
10
9
  yield* sendWorkerMessage(
11
10
  session.getWorker(),
12
11
  {
@@ -1 +1 @@
1
- {"version":3,"file":"parseStringInWorker.node.js","sources":["../../../src/execution/worker/parseStringInWorker.node.ts"],"sourcesContent":["import type {\n CSVRecord,\n ParseBinaryOptions,\n ParseOptions,\n} from \"../../common/types.ts\";\nimport type { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from \"../../constants.ts\";\nimport { WorkerSession } from \"./helpers/WorkerSession.ts\";\nimport { sendWorkerMessage } from \"./utils/messageHandler.ts\";\nimport { serializeOptions } from \"./utils/serializeOptions.ts\";\n\n/**\n * Parse CSV string in Worker thread (Node.js).\n *\n * @internal\n * @param csv CSV string to parse\n * @param options Parsing options\n * @returns Async iterable iterator of records\n */\nexport async function* parseStringInWorker<\n Header extends ReadonlyArray<string>,\n Delimiter extends string = DEFAULT_DELIMITER,\n Quotation extends string = DEFAULT_QUOTATION,\n>(\n csv: string,\n options?: ParseOptions<Header, Delimiter, Quotation>,\n): AsyncIterableIterator<CSVRecord<Header>> {\n using session = await WorkerSession.create({\n workerPool: options?.engine?.workerPool,\n workerURL: options?.engine?.workerURL,\n });\n\n yield* sendWorkerMessage<CSVRecord<Header>>(\n session.getWorker(),\n {\n id: session.getNextRequestId(),\n type: \"parseString\",\n data: csv,\n options: serializeOptions(options),\n useWASM: false,\n },\n options as ParseOptions<Header> | ParseBinaryOptions<Header> | undefined,\n );\n}\n"],"names":[],"mappings":";;;;AAkBA,gBAAuB,mBAAA,CAKrB,KACA,OAAA,EAC0C;AAC1C,EAAA,MAAM,OAAA,GAAU,MAAM,aAAA,CAAc,MAAA,CAAO;AAAA,IACzC,UAAA,EAAY,SAAS,MAAA,EAAQ,UAAA;AAAA,IAC7B,SAAA,EAAW,SAAS,MAAA,EAAQ;AAAA,GAC7B,CAAA;AAED,EAAA,OAAO,iBAAA;AAAA,IACL,QAAQ,SAAA,EAAU;AAAA,IAClB;AAAA,MACE,EAAA,EAAI,QAAQ,gBAAA,EAAiB;AAAA,MAC7B,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,GAAA;AAAA,MACN,OAAA,EAAS,iBAAiB,OAAO,CAAA;AAAA,MACjC,OAAA,EAAS;AAAA,KACX;AAAA,IACA;AAAA,GACF;AACF;;;;"}
1
+ {"version":3,"file":"parseStringInWorker.node.js","sources":["../../../src/execution/worker/parseStringInWorker.node.ts"],"sourcesContent":["import type {\n CSVRecord,\n ParseBinaryOptions,\n ParseOptions,\n} from \"../../common/types.ts\";\nimport type { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from \"../../constants.ts\";\nimport { WorkerSession } from \"./helpers/WorkerSession.ts\";\nimport { sendWorkerMessage } from \"./utils/messageHandler.ts\";\nimport { serializeOptions } from \"./utils/serializeOptions.ts\";\n\n/**\n * Parse CSV string in Worker thread (Node.js).\n *\n * @internal\n * @param csv CSV string to parse\n * @param options Parsing options\n * @returns Async iterable iterator of records\n */\nexport async function* parseStringInWorker<\n Header extends ReadonlyArray<string>,\n Delimiter extends string = DEFAULT_DELIMITER,\n Quotation extends string = DEFAULT_QUOTATION,\n>(\n csv: string,\n options?: ParseOptions<Header, Delimiter, Quotation>,\n): AsyncIterableIterator<CSVRecord<Header>> {\n using session = await WorkerSession.create(\n options?.engine?.worker === true ? options.engine : undefined,\n );\n\n yield* sendWorkerMessage<CSVRecord<Header>>(\n session.getWorker(),\n {\n id: session.getNextRequestId(),\n type: \"parseString\",\n data: csv,\n options: serializeOptions(options),\n useWASM: false,\n },\n options as ParseOptions<Header> | ParseBinaryOptions<Header> | undefined,\n );\n}\n"],"names":[],"mappings":";;;;AAkBA,gBAAuB,mBAAA,CAKrB,KACA,OAAA,EAC0C;AAC1C,EAAA,MAAM,OAAA,GAAU,MAAM,aAAA,CAAc,MAAA;AAAA,IAClC,OAAA,EAAS,MAAA,EAAQ,MAAA,KAAW,IAAA,GAAO,QAAQ,MAAA,GAAS;AAAA,GACtD;AAEA,EAAA,OAAO,iBAAA;AAAA,IACL,QAAQ,SAAA,EAAU;AAAA,IAClB;AAAA,MACE,EAAA,EAAI,QAAQ,gBAAA,EAAiB;AAAA,MAC7B,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,GAAA;AAAA,MACN,OAAA,EAAS,iBAAiB,OAAO,CAAA;AAAA,MACjC,OAAA,EAAS;AAAA,KACX;AAAA,IACA;AAAA,GACF;AACF;;;;"}
@@ -3,10 +3,9 @@ import { sendWorkerMessage } from './utils/messageHandler.js';
3
3
  import { serializeOptions } from './utils/serializeOptions.js';
4
4
 
5
5
  async function* parseStringInWorker(csv, options) {
6
- using session = await WorkerSession.create({
7
- workerPool: options?.engine?.workerPool,
8
- workerURL: options?.engine?.workerURL
9
- });
6
+ using session = await WorkerSession.create(
7
+ options?.engine?.worker === true ? options.engine : void 0
8
+ );
10
9
  yield* sendWorkerMessage(
11
10
  session.getWorker(),
12
11
  {
@@ -1 +1 @@
1
- {"version":3,"file":"parseStringInWorker.web.js","sources":["../../../src/execution/worker/parseStringInWorker.web.ts"],"sourcesContent":["import type {\n CSVRecord,\n ParseBinaryOptions,\n ParseOptions,\n} from \"../../common/types.ts\";\nimport type { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from \"../../constants.ts\";\nimport { WorkerSession } from \"./helpers/WorkerSession.ts\";\nimport { sendWorkerMessage } from \"./utils/messageHandler.ts\";\nimport { serializeOptions } from \"./utils/serializeOptions.ts\";\n\n/**\n * Parse CSV string in Worker thread (Browser/Deno).\n *\n * @internal\n * @param csv CSV string to parse\n * @param options Parsing options\n * @returns Async iterable iterator of records\n */\nexport async function* parseStringInWorker<\n Header extends ReadonlyArray<string>,\n Delimiter extends string = DEFAULT_DELIMITER,\n Quotation extends string = DEFAULT_QUOTATION,\n>(\n csv: string,\n options?: ParseOptions<Header, Delimiter, Quotation>,\n): AsyncIterableIterator<CSVRecord<Header>> {\n using session = await WorkerSession.create({\n workerPool: options?.engine?.workerPool,\n workerURL: options?.engine?.workerURL,\n });\n\n yield* sendWorkerMessage<CSVRecord<Header>>(\n session.getWorker(),\n {\n id: session.getNextRequestId(),\n type: \"parseString\",\n data: csv,\n options: serializeOptions(options),\n useWASM: false,\n },\n options as ParseOptions<Header> | ParseBinaryOptions<Header> | undefined,\n );\n}\n"],"names":[],"mappings":";;;;AAkBA,gBAAuB,mBAAA,CAKrB,KACA,OAAA,EAC0C;AAC1C,EAAA,MAAM,OAAA,GAAU,MAAM,aAAA,CAAc,MAAA,CAAO;AAAA,IACzC,UAAA,EAAY,SAAS,MAAA,EAAQ,UAAA;AAAA,IAC7B,SAAA,EAAW,SAAS,MAAA,EAAQ;AAAA,GAC7B,CAAA;AAED,EAAA,OAAO,iBAAA;AAAA,IACL,QAAQ,SAAA,EAAU;AAAA,IAClB;AAAA,MACE,EAAA,EAAI,QAAQ,gBAAA,EAAiB;AAAA,MAC7B,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,GAAA;AAAA,MACN,OAAA,EAAS,iBAAiB,OAAO,CAAA;AAAA,MACjC,OAAA,EAAS;AAAA,KACX;AAAA,IACA;AAAA,GACF;AACF;;;;"}
1
+ {"version":3,"file":"parseStringInWorker.web.js","sources":["../../../src/execution/worker/parseStringInWorker.web.ts"],"sourcesContent":["import type {\n CSVRecord,\n ParseBinaryOptions,\n ParseOptions,\n} from \"../../common/types.ts\";\nimport type { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from \"../../constants.ts\";\nimport { WorkerSession } from \"./helpers/WorkerSession.ts\";\nimport { sendWorkerMessage } from \"./utils/messageHandler.ts\";\nimport { serializeOptions } from \"./utils/serializeOptions.ts\";\n\n/**\n * Parse CSV string in Worker thread (Browser/Deno).\n *\n * @internal\n * @param csv CSV string to parse\n * @param options Parsing options\n * @returns Async iterable iterator of records\n */\nexport async function* parseStringInWorker<\n Header extends ReadonlyArray<string>,\n Delimiter extends string = DEFAULT_DELIMITER,\n Quotation extends string = DEFAULT_QUOTATION,\n>(\n csv: string,\n options?: ParseOptions<Header, Delimiter, Quotation>,\n): AsyncIterableIterator<CSVRecord<Header>> {\n using session = await WorkerSession.create(\n options?.engine?.worker === true ? options.engine : undefined,\n );\n\n yield* sendWorkerMessage<CSVRecord<Header>>(\n session.getWorker(),\n {\n id: session.getNextRequestId(),\n type: \"parseString\",\n data: csv,\n options: serializeOptions(options),\n useWASM: false,\n },\n options as ParseOptions<Header> | ParseBinaryOptions<Header> | undefined,\n );\n}\n"],"names":[],"mappings":";;;;AAkBA,gBAAuB,mBAAA,CAKrB,KACA,OAAA,EAC0C;AAC1C,EAAA,MAAM,OAAA,GAAU,MAAM,aAAA,CAAc,MAAA;AAAA,IAClC,OAAA,EAAS,MAAA,EAAQ,MAAA,KAAW,IAAA,GAAO,QAAQ,MAAA,GAAS;AAAA,GACtD;AAEA,EAAA,OAAO,iBAAA;AAAA,IACL,QAAQ,SAAA,EAAU;AAAA,IAClB;AAAA,MACE,EAAA,EAAI,QAAQ,gBAAA,EAAiB;AAAA,MAC7B,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,GAAA;AAAA,MACN,OAAA,EAAS,iBAAiB,OAAO,CAAA;AAAA,MACjC,OAAA,EAAS;AAAA,KACX;AAAA,IACA;AAAA,GACF;AACF;;;;"}
@@ -3,10 +3,9 @@ import { sendWorkerMessage } from './utils/messageHandler.js';
3
3
  import { serializeOptions } from './utils/serializeOptions.js';
4
4
 
5
5
  async function* parseStringInWorkerWASM(csv, options) {
6
- using session = await WorkerSession.create({
7
- workerPool: options?.engine?.workerPool,
8
- workerURL: options?.engine?.workerURL
9
- });
6
+ using session = await WorkerSession.create(
7
+ options?.engine?.worker === true ? options.engine : void 0
8
+ );
10
9
  yield* sendWorkerMessage(
11
10
  session.getWorker(),
12
11
  {
@@ -1 +1 @@
1
- {"version":3,"file":"parseStringInWorkerWASM.node.js","sources":["../../../src/execution/worker/parseStringInWorkerWASM.node.ts"],"sourcesContent":["import type {\n CSVRecord,\n ParseBinaryOptions,\n ParseOptions,\n} from \"../../common/types.ts\";\nimport type { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from \"../../constants.ts\";\nimport { WorkerSession } from \"./helpers/WorkerSession.ts\";\nimport { sendWorkerMessage } from \"./utils/messageHandler.ts\";\nimport { serializeOptions } from \"./utils/serializeOptions.ts\";\n\n/**\n * Parse CSV string in Worker thread using WASM (Node.js).\n *\n * @internal\n */\nexport async function* parseStringInWorkerWASM<\n Header extends ReadonlyArray<string>,\n Delimiter extends string = DEFAULT_DELIMITER,\n Quotation extends string = DEFAULT_QUOTATION,\n>(\n csv: string,\n options?: ParseOptions<Header, Delimiter, Quotation>,\n): AsyncIterableIterator<CSVRecord<Header>> {\n using session = await WorkerSession.create({\n workerPool: options?.engine?.workerPool,\n workerURL: options?.engine?.workerURL,\n });\n\n yield* sendWorkerMessage<CSVRecord<Header>>(\n session.getWorker(),\n {\n id: session.getNextRequestId(),\n type: \"parseString\",\n data: csv,\n options: serializeOptions(options),\n useWASM: true,\n },\n options as ParseOptions<Header> | ParseBinaryOptions<Header> | undefined,\n );\n}\n"],"names":[],"mappings":";;;;AAeA,gBAAuB,uBAAA,CAKrB,KACA,OAAA,EAC0C;AAC1C,EAAA,MAAM,OAAA,GAAU,MAAM,aAAA,CAAc,MAAA,CAAO;AAAA,IACzC,UAAA,EAAY,SAAS,MAAA,EAAQ,UAAA;AAAA,IAC7B,SAAA,EAAW,SAAS,MAAA,EAAQ;AAAA,GAC7B,CAAA;AAED,EAAA,OAAO,iBAAA;AAAA,IACL,QAAQ,SAAA,EAAU;AAAA,IAClB;AAAA,MACE,EAAA,EAAI,QAAQ,gBAAA,EAAiB;AAAA,MAC7B,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,GAAA;AAAA,MACN,OAAA,EAAS,iBAAiB,OAAO,CAAA;AAAA,MACjC,OAAA,EAAS;AAAA,KACX;AAAA,IACA;AAAA,GACF;AACF;;;;"}
1
+ {"version":3,"file":"parseStringInWorkerWASM.node.js","sources":["../../../src/execution/worker/parseStringInWorkerWASM.node.ts"],"sourcesContent":["import type {\n CSVRecord,\n ParseBinaryOptions,\n ParseOptions,\n} from \"../../common/types.ts\";\nimport type { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from \"../../constants.ts\";\nimport { WorkerSession } from \"./helpers/WorkerSession.ts\";\nimport { sendWorkerMessage } from \"./utils/messageHandler.ts\";\nimport { serializeOptions } from \"./utils/serializeOptions.ts\";\n\n/**\n * Parse CSV string in Worker thread using WASM (Node.js).\n *\n * @internal\n */\nexport async function* parseStringInWorkerWASM<\n Header extends ReadonlyArray<string>,\n Delimiter extends string = DEFAULT_DELIMITER,\n Quotation extends string = DEFAULT_QUOTATION,\n>(\n csv: string,\n options?: ParseOptions<Header, Delimiter, Quotation>,\n): AsyncIterableIterator<CSVRecord<Header>> {\n using session = await WorkerSession.create(\n options?.engine?.worker === true ? options.engine : undefined,\n );\n\n yield* sendWorkerMessage<CSVRecord<Header>>(\n session.getWorker(),\n {\n id: session.getNextRequestId(),\n type: \"parseString\",\n data: csv,\n options: serializeOptions(options),\n useWASM: true,\n },\n options as ParseOptions<Header> | ParseBinaryOptions<Header> | undefined,\n );\n}\n"],"names":[],"mappings":";;;;AAeA,gBAAuB,uBAAA,CAKrB,KACA,OAAA,EAC0C;AAC1C,EAAA,MAAM,OAAA,GAAU,MAAM,aAAA,CAAc,MAAA;AAAA,IAClC,OAAA,EAAS,MAAA,EAAQ,MAAA,KAAW,IAAA,GAAO,QAAQ,MAAA,GAAS;AAAA,GACtD;AAEA,EAAA,OAAO,iBAAA;AAAA,IACL,QAAQ,SAAA,EAAU;AAAA,IAClB;AAAA,MACE,EAAA,EAAI,QAAQ,gBAAA,EAAiB;AAAA,MAC7B,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,GAAA;AAAA,MACN,OAAA,EAAS,iBAAiB,OAAO,CAAA;AAAA,MACjC,OAAA,EAAS;AAAA,KACX;AAAA,IACA;AAAA,GACF;AACF;;;;"}
@@ -3,10 +3,9 @@ import { sendWorkerMessage } from './utils/messageHandler.js';
3
3
  import { serializeOptions } from './utils/serializeOptions.js';
4
4
 
5
5
  async function* parseStringInWorkerWASM(csv, options) {
6
- using session = await WorkerSession.create({
7
- workerPool: options?.engine?.workerPool,
8
- workerURL: options?.engine?.workerURL
9
- });
6
+ using session = await WorkerSession.create(
7
+ options?.engine?.worker === true ? options.engine : void 0
8
+ );
10
9
  yield* sendWorkerMessage(
11
10
  session.getWorker(),
12
11
  {
@@ -1 +1 @@
1
- {"version":3,"file":"parseStringInWorkerWASM.web.js","sources":["../../../src/execution/worker/parseStringInWorkerWASM.web.ts"],"sourcesContent":["import type {\n CSVRecord,\n ParseBinaryOptions,\n ParseOptions,\n} from \"../../common/types.ts\";\nimport type { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from \"../../constants.ts\";\nimport { WorkerSession } from \"./helpers/WorkerSession.ts\";\nimport { sendWorkerMessage } from \"./utils/messageHandler.ts\";\nimport { serializeOptions } from \"./utils/serializeOptions.ts\";\n\n/**\n * Parse CSV string in Worker thread using WASM (Browser/Deno).\n *\n * @internal\n */\nexport async function* parseStringInWorkerWASM<\n Header extends ReadonlyArray<string>,\n Delimiter extends string = DEFAULT_DELIMITER,\n Quotation extends string = DEFAULT_QUOTATION,\n>(\n csv: string,\n options?: ParseOptions<Header, Delimiter, Quotation>,\n): AsyncIterableIterator<CSVRecord<Header>> {\n using session = await WorkerSession.create({\n workerPool: options?.engine?.workerPool,\n workerURL: options?.engine?.workerURL,\n });\n\n yield* sendWorkerMessage<CSVRecord<Header>>(\n session.getWorker(),\n {\n id: session.getNextRequestId(),\n type: \"parseString\",\n data: csv,\n options: serializeOptions(options),\n useWASM: true,\n },\n options as ParseOptions<Header> | ParseBinaryOptions<Header> | undefined,\n );\n}\n"],"names":[],"mappings":";;;;AAeA,gBAAuB,uBAAA,CAKrB,KACA,OAAA,EAC0C;AAC1C,EAAA,MAAM,OAAA,GAAU,MAAM,aAAA,CAAc,MAAA,CAAO;AAAA,IACzC,UAAA,EAAY,SAAS,MAAA,EAAQ,UAAA;AAAA,IAC7B,SAAA,EAAW,SAAS,MAAA,EAAQ;AAAA,GAC7B,CAAA;AAED,EAAA,OAAO,iBAAA;AAAA,IACL,QAAQ,SAAA,EAAU;AAAA,IAClB;AAAA,MACE,EAAA,EAAI,QAAQ,gBAAA,EAAiB;AAAA,MAC7B,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,GAAA;AAAA,MACN,OAAA,EAAS,iBAAiB,OAAO,CAAA;AAAA,MACjC,OAAA,EAAS;AAAA,KACX;AAAA,IACA;AAAA,GACF;AACF;;;;"}
1
+ {"version":3,"file":"parseStringInWorkerWASM.web.js","sources":["../../../src/execution/worker/parseStringInWorkerWASM.web.ts"],"sourcesContent":["import type {\n CSVRecord,\n ParseBinaryOptions,\n ParseOptions,\n} from \"../../common/types.ts\";\nimport type { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from \"../../constants.ts\";\nimport { WorkerSession } from \"./helpers/WorkerSession.ts\";\nimport { sendWorkerMessage } from \"./utils/messageHandler.ts\";\nimport { serializeOptions } from \"./utils/serializeOptions.ts\";\n\n/**\n * Parse CSV string in Worker thread using WASM (Browser/Deno).\n *\n * @internal\n */\nexport async function* parseStringInWorkerWASM<\n Header extends ReadonlyArray<string>,\n Delimiter extends string = DEFAULT_DELIMITER,\n Quotation extends string = DEFAULT_QUOTATION,\n>(\n csv: string,\n options?: ParseOptions<Header, Delimiter, Quotation>,\n): AsyncIterableIterator<CSVRecord<Header>> {\n using session = await WorkerSession.create(\n options?.engine?.worker === true ? options.engine : undefined,\n );\n\n yield* sendWorkerMessage<CSVRecord<Header>>(\n session.getWorker(),\n {\n id: session.getNextRequestId(),\n type: \"parseString\",\n data: csv,\n options: serializeOptions(options),\n useWASM: true,\n },\n options as ParseOptions<Header> | ParseBinaryOptions<Header> | undefined,\n );\n}\n"],"names":[],"mappings":";;;;AAeA,gBAAuB,uBAAA,CAKrB,KACA,OAAA,EAC0C;AAC1C,EAAA,MAAM,OAAA,GAAU,MAAM,aAAA,CAAc,MAAA;AAAA,IAClC,OAAA,EAAS,MAAA,EAAQ,MAAA,KAAW,IAAA,GAAO,QAAQ,MAAA,GAAS;AAAA,GACtD;AAEA,EAAA,OAAO,iBAAA;AAAA,IACL,QAAQ,SAAA,EAAU;AAAA,IAClB;AAAA,MACE,EAAA,EAAI,QAAQ,gBAAA,EAAiB;AAAA,MAC7B,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,GAAA;AAAA,MACN,OAAA,EAAS,iBAAiB,OAAO,CAAA;AAAA,MACjC,OAAA,EAAS;AAAA,KACX;AAAA,IACA;AAAA,GACF;AACF;;;;"}