spliterator 1.6.4 → 1.7.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.
@@ -203,6 +203,24 @@ export declare class AsyncSpliterator<R extends DataView | ArrayBuffer = Uint8Ar
203
203
  * @returns An array of `AsyncSpliterator` instances, possibly less than the desired concurrency.
204
204
  * @internal
205
205
  */
206
+ /**
207
+ * Like {@linkcode asMany}, but each segment runs inside a dedicated `worker_thread`, giving each
208
+ * its own JS engine and event loop.
209
+ *
210
+ * This means `#search()` and any per-record CPU work done inside the worker run in true OS-level
211
+ * parallelism — a synchronous block on the main thread cannot stall the workers.
212
+ *
213
+ * @param source - The file to read from. Must be a path string or URL (workers open the file
214
+ * independently and cannot share a file handle with the main thread).
215
+ * @param delimiter - The character to delimit by. Typically a newline or comma.
216
+ * @param concurrency - The _desired_ number of worker threads to spawn.
217
+ *
218
+ * @returns An array of async iterables, one per worker, yielding `Uint8Array` chunks. The
219
+ * iterables cover non-overlapping, delimiter-aligned byte ranges and can be consumed in
220
+ * parallel.
221
+ * @internal
222
+ */
223
+ static asManyWorkers(source: AsyncDataResource, delimiter: CharacterSequenceInput, concurrency: number): Promise<AsyncIterable<Uint8Array>[]>;
206
224
  static asMany(source: AsyncDataResource, delimiter: CharacterSequenceInput, concurrency: number): Promise<AsyncSpliterator[]>;
207
225
  }
208
226
  //# sourceMappingURL=AsyncSpliterator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AsyncSpliterator.d.ts","sourceRoot":"","sources":["../../lib/AsyncSpliterator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEpF,OAAO,EAAqB,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAElF,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAkB,MAAM,aAAa,CAAA;AAInF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B;;OAEG;IACH,SAAS,CAAC,EAAE,sBAAsB,CAAA;IAElC;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IAEnB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC5D;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;CACrB;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,gBAAgB,CAAC,CAAC,SAAS,QAAQ,GAAG,WAAW,GAAG,UAAU,CAC1E,YAAW,qBAAqB,CAAC,CAAC,CAAC,EAAE,eAAe;;IAIpD;;;;;;;OAOG;IACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAAI,CAAC,EAAE,oBAAoB,GAAG,gBAAgB;IACtF;;;;;;;OAOG;IACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAC9F;;;;;;;OAOG;IACH,MAAM,CAAC,IAAI,CACV,MAAM,EAAE,iBAAiB,GAAG,kBAAkB,EAC9C,IAAI,CAAC,EAAE,oBAAoB,GACzB,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAkB/C;;OAEG;IACU,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;IASnD;;OAEG;WACW,iBAAiB,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,CAAC,kBAAkB,EAAE,UAAU,CAAC;IAYvG;;;;;;OAMG;gBACS,MAAM,EAAE,kBAAkB,EAAE,IAAI,GAAE,oBAAyB;IAgQ1D,IAAI,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IA4C/C;;;;OAIG;IACI,OAAO,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC;IAI9B;;;;OAIG;IACI,cAAc,CAAC,OAAO,6BAAoB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAIrE;;;;;;OAMG;IACI,gBAAgB,IAAI,cAAc,CAAC,CAAC,CAAC;IAiB5C;;;;;;;;;;OAUG;IACI,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,cAAc,CAAC,CAAC,CAAC;IAI5G;;OAEG;IACI,CAAC,MAAM,CAAC,aAAa,CAAC;IAItB,MAAM,IAAI,OAAO,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAQzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;WACiB,MAAM,CACzB,MAAM,EAAE,iBAAiB,EACzB,SAAS,EAAE,sBAAsB,EACjC,WAAW,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,EAAE,CAAC;CAqB9B"}
1
+ {"version":3,"file":"AsyncSpliterator.d.ts","sourceRoot":"","sources":["../../lib/AsyncSpliterator.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,210 @@ import { BufferController } from "./BufferController.js";
8
8
  import { CharacterSequence } from "./CharacterSequence.js";
9
9
  import { IndexQueue } from "./IndexQueue.js";
10
10
  const noop = () => void 0;
11
+ // ---------------------------------------------------------------------------
12
+ // Worker-based parallelism helpers
13
+ // ---------------------------------------------------------------------------
14
+ /**
15
+ * Inline CJS worker script for a reusable pooled segment reader.
16
+ *
17
+ * The worker stays alive between assignments, listening for `postMessage` work
18
+ * packets. Each packet contains `{ sourcePath, byteStart, byteEnd, delimiter }`.
19
+ * The worker scans its byte range, collects all records, transfers them as a
20
+ * single `Uint8Array[]` batch, and posts a `null` sentinel — then returns to
21
+ * idle, ready for the next assignment.
22
+ *
23
+ * Batching keeps post-block drain time constant (4 messages regardless of
24
+ * record count). Keeping workers alive amortises the ~100–300 ms V8 bootstrap
25
+ * cost across repeated `asManyWorkers` calls.
26
+ */
27
+ const POOL_WORKER_CODE = /* javascript */ `
28
+ const { parentPort } = require('worker_threads')
29
+ const { open } = require('fs/promises')
30
+
31
+ function findDelimiter(buf, start, delimArr, delimLen) {
32
+ if (delimLen === 1) {
33
+ const idx = buf.indexOf(delimArr[0], start)
34
+ return idx === -1 ? -1 : idx
35
+ }
36
+ outer: for (let i = start; i <= buf.length - delimLen; i++) {
37
+ for (let j = 0; j < delimLen; j++) {
38
+ if (buf[i + j] !== delimArr[j]) continue outer
39
+ }
40
+ return i
41
+ }
42
+ return -1
43
+ }
44
+
45
+ async function processSegment({ sourcePath, byteStart, byteEnd, delimiter }) {
46
+ const delimArr = Uint8Array.from(delimiter)
47
+ const delimLen = delimArr.length
48
+ const handle = await open(sourcePath, 'r')
49
+ const stream = handle.createReadStream({ start: byteStart, end: byteEnd, highWaterMark: 65536, autoClose: true })
50
+
51
+ const records = []
52
+ let tail = new Uint8Array(0)
53
+
54
+ for await (const rawChunk of stream) {
55
+ const chunk = new Uint8Array(rawChunk.buffer, rawChunk.byteOffset, rawChunk.byteLength)
56
+ const combined = new Uint8Array(tail.length + chunk.length)
57
+ combined.set(tail, 0)
58
+ combined.set(chunk, tail.length)
59
+
60
+ let searchStart = 0
61
+ while (true) {
62
+ const idx = findDelimiter(combined, searchStart, delimArr, delimLen)
63
+ if (idx === -1) break
64
+ const record = combined.slice(searchStart, idx)
65
+ if (record.length > 0) records.push(record)
66
+ searchStart = idx + delimLen
67
+ }
68
+
69
+ tail = combined.slice(searchStart)
70
+ }
71
+
72
+ if (tail.length > 0) records.push(tail)
73
+ return records
74
+ }
75
+
76
+ parentPort.on('message', async (assignment) => {
77
+ try {
78
+ const records = await processSegment(assignment)
79
+ parentPort.postMessage(records, records.map(r => r.buffer))
80
+ parentPort.postMessage(null)
81
+ } catch (err) {
82
+ parentPort.postMessage({ error: err.message || String(err) })
83
+ }
84
+ })
85
+ `;
86
+ /**
87
+ * A fixed-capacity pool of reusable worker threads.
88
+ *
89
+ * Workers are created on first demand and returned to the available queue when a
90
+ * segment completes naturally. Workers that are terminated early (consumer break /
91
+ * error) are discarded and a fresh worker takes the pool slot on the next acquire.
92
+ */
93
+ class WorkerPool {
94
+ #available = [];
95
+ #maxSize;
96
+ constructor(maxSize) {
97
+ this.#maxSize = maxSize;
98
+ }
99
+ acquire(WorkerCtor) {
100
+ return this.#available.pop() ?? new WorkerCtor(POOL_WORKER_CODE, { eval: true });
101
+ }
102
+ release(worker, reusable) {
103
+ if (reusable && this.#available.length < this.#maxSize) {
104
+ this.#available.push(worker);
105
+ }
106
+ else {
107
+ worker.terminate();
108
+ }
109
+ }
110
+ }
111
+ /** Lazily initialised shared worker pool, sized to the logical CPU count. */
112
+ let _workerPool = null;
113
+ /**
114
+ * Compute delimiter-aligned segment boundaries for a file.
115
+ *
116
+ * All boundary probes are issued in parallel — each is an independent random-access
117
+ * read — so the pre-scan phase costs one libuv round-trip regardless of concurrency.
118
+ *
119
+ * @returns A sorted array of byte offsets `[0, b1, b2, …, fileSize]` where each
120
+ * consecutive pair `[boundaries[i], boundaries[i+1])` defines a half-open segment.
121
+ */
122
+ async function computeBoundaries(source, needle, fileSize, concurrency, readBytes) {
123
+ const segmentSize = Math.ceil(fileSize / concurrency);
124
+ const searchWindowSize = Math.max(needle.length * 64, 4096);
125
+ const idealBoundaries = Array.from({ length: concurrency - 1 }, (_, i) => (i + 1) * segmentSize).filter((b) => b < fileSize);
126
+ const snapped = await Promise.all(idealBoundaries.map(async (idealBoundary) => {
127
+ const window = await readBytes(source, idealBoundary, Math.min(searchWindowSize, fileSize - idealBoundary));
128
+ const idx = needle.search(window);
129
+ return idx === -1 ? idealBoundary : idealBoundary + idx + needle.length;
130
+ }));
131
+ return [0, ...snapped, fileSize];
132
+ }
133
+ /**
134
+ * Wraps a pooled worker in an `AsyncIterable<Uint8Array>`.
135
+ *
136
+ * - Sends the segment assignment immediately on construction.
137
+ * - Attaches listeners eagerly so no messages are lost during sequential consumption.
138
+ * - Uses a `chunks[]` + `head` pointer (O(1) access) rather than `Array.shift()` (O(n)).
139
+ * - Removes listeners and calls `onRelease` when the iterable is fully consumed or abandoned,
140
+ * so the worker can be returned to the pool for reuse.
141
+ */
142
+ function workerToIterable(worker, assignment, onRelease) {
143
+ worker.postMessage(assignment);
144
+ const chunks = [];
145
+ let head = 0;
146
+ let done = false;
147
+ let error = null;
148
+ let signal = null;
149
+ let released = false;
150
+ function notify() {
151
+ if (signal) {
152
+ const fn = signal;
153
+ signal = null;
154
+ fn();
155
+ }
156
+ }
157
+ const onMessage = (msg) => {
158
+ if (msg === null) {
159
+ done = true;
160
+ notify();
161
+ }
162
+ else if (Array.isArray(msg)) {
163
+ for (const chunk of msg)
164
+ chunks.push(chunk);
165
+ notify();
166
+ }
167
+ else if (msg && typeof msg === "object" && "error" in msg) {
168
+ error = new Error(msg.error);
169
+ notify();
170
+ }
171
+ };
172
+ const onError = (err) => {
173
+ error = err;
174
+ notify();
175
+ };
176
+ worker.on("message", onMessage);
177
+ worker.on("error", onError);
178
+ function release(reusable) {
179
+ if (released)
180
+ return;
181
+ released = true;
182
+ worker.off("message", onMessage);
183
+ worker.off("error", onError);
184
+ onRelease(worker, reusable);
185
+ }
186
+ return {
187
+ [Symbol.asyncIterator]() {
188
+ return {
189
+ async next() {
190
+ while (head >= chunks.length && !done && !error) {
191
+ await new Promise((res) => {
192
+ signal = res;
193
+ });
194
+ }
195
+ if (error) {
196
+ release(false);
197
+ throw error;
198
+ }
199
+ if (head < chunks.length)
200
+ return { done: false, value: chunks[head++] };
201
+ release(true); // natural completion — worker is idle and reusable
202
+ return { done: true, value: undefined };
203
+ },
204
+ async return() {
205
+ release(done); // reusable only if already naturally done
206
+ return { done: true, value: undefined };
207
+ },
208
+ [Symbol.asyncIterator]() {
209
+ return this;
210
+ },
211
+ };
212
+ },
213
+ };
214
+ }
11
215
  /**
12
216
  * An asynchronous spliterator for reading delimited byte streams.
13
217
  *
@@ -230,11 +434,14 @@ export class AsyncSpliterator {
230
434
  this.#done = true;
231
435
  return;
232
436
  }
233
- // We're effectively done with that window of the buffer.
234
- // So we can compress it to save memory.
437
+ // Discard bytes that have already been yielded to free space for incoming chunks.
438
+ // Skip when nextBufferStart is 0 nothing has been consumed yet and compress would
439
+ // be a no-op copyWithin(0, 0, bytesWritten) that copies bytes onto themselves.
235
440
  const nextBufferStart = this.#lastByteRangeSeen ? this.#lastByteRangeSeen[1] + this.#needle.length : 0;
236
- this.#log("Compressing buffer", { nextBufferStart });
237
- this.#controller.compress(nextBufferStart);
441
+ if (nextBufferStart > 0) {
442
+ this.#log("Compressing buffer", { nextBufferStart });
443
+ this.#controller.compress(nextBufferStart);
444
+ }
238
445
  while ((!this.#lastReadResult || !this.#lastReadResult.done) && this.#indices.byteLength < this.#highWaterMark) {
239
446
  await this.#read();
240
447
  this.#search();
@@ -392,20 +599,82 @@ export class AsyncSpliterator {
392
599
  * @returns An array of `AsyncSpliterator` instances, possibly less than the desired concurrency.
393
600
  * @internal
394
601
  */
395
- static async asMany(source, delimiter, concurrency) {
396
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
602
+ /**
603
+ * Like {@linkcode asMany}, but each segment runs inside a dedicated `worker_thread`, giving each
604
+ * its own JS engine and event loop.
605
+ *
606
+ * This means `#search()` and any per-record CPU work done inside the worker run in true OS-level
607
+ * parallelism — a synchronous block on the main thread cannot stall the workers.
608
+ *
609
+ * @param source - The file to read from. Must be a path string or URL (workers open the file
610
+ * independently and cannot share a file handle with the main thread).
611
+ * @param delimiter - The character to delimit by. Typically a newline or comma.
612
+ * @param concurrency - The _desired_ number of worker threads to spawn.
613
+ *
614
+ * @returns An array of async iterables, one per worker, yielding `Uint8Array` chunks. The
615
+ * iterables cover non-overlapping, delimiter-aligned byte ranges and can be consumed in
616
+ * parallel.
617
+ * @internal
618
+ */
619
+ static async asManyWorkers(source, delimiter, concurrency) {
397
620
  concurrency = Math.max(1, concurrency);
398
621
  const needle = new CharacterSequence(delimiter);
399
- const spliterators = [];
400
- const { createChunkIterator, readFileSize } = await import("spliterator/node/fs");
622
+ // Resolve to an absolute path before spawning — workers open the file independently.
623
+ let sourcePath;
624
+ if (source instanceof URL) {
625
+ const { fileURLToPath } = await import("node:url");
626
+ sourcePath = fileURLToPath(source);
627
+ }
628
+ else if (typeof source === "string") {
629
+ const { resolve } = await import("node:path");
630
+ sourcePath = resolve(source);
631
+ }
632
+ else {
633
+ throw new TypeError("asManyWorkers requires a path string or URL, not a file handle.");
634
+ }
635
+ const { readFileSize, readBytes } = await import("spliterator/node/fs");
401
636
  const fileSize = await readFileSize(source);
402
- // const file = createChunkIterator(source, {
403
- // start: 0,
404
- // })
405
- // The idea here is we're going to split the file into `concurrency` chunks.
406
- if (Date.now()) {
407
- throw new Error("Not implemented.");
637
+ if (fileSize === 0)
638
+ return [];
639
+ // All boundary probes fire in parallel — one libuv round-trip total.
640
+ const boundaries = await computeBoundaries(source, needle, fileSize, concurrency, readBytes);
641
+ const { Worker } = await import("node:worker_threads");
642
+ const { cpus } = await import("node:os");
643
+ if (!_workerPool)
644
+ _workerPool = new WorkerPool(cpus().length);
645
+ const delimiterBytes = Array.from(needle);
646
+ const iterables = [];
647
+ for (let i = 0; i < boundaries.length - 1; i++) {
648
+ const byteStart = boundaries[i];
649
+ const byteEnd = boundaries[i + 1] - 1; // inclusive end for createReadStream
650
+ if (byteStart > byteEnd)
651
+ continue;
652
+ const worker = _workerPool.acquire(Worker);
653
+ iterables.push(workerToIterable(worker, { sourcePath, byteStart, byteEnd, delimiter: delimiterBytes }, (w, reusable) => _workerPool.release(w, reusable)));
408
654
  }
655
+ return iterables;
656
+ }
657
+ static async asMany(source, delimiter, concurrency) {
658
+ concurrency = Math.max(1, concurrency);
659
+ const needle = new CharacterSequence(delimiter);
660
+ const { createChunkIterator, readFileSize, readBytes } = await import("spliterator/node/fs");
661
+ const fileSize = await readFileSize(source);
662
+ if (fileSize === 0)
663
+ return [];
664
+ // All boundary probes fire in parallel — one libuv round-trip total.
665
+ const boundaries = await computeBoundaries(source, needle, fileSize, concurrency, readBytes);
666
+ // Open all chunk iterators in parallel — each is an independent file handle.
667
+ const spliterators = (await Promise.all(Array.from({ length: boundaries.length - 1 }, async (_, i) => {
668
+ const start = boundaries[i];
669
+ const end = boundaries[i + 1];
670
+ if (start >= end)
671
+ return null;
672
+ const chunkIterator = await createChunkIterator(source, {
673
+ start,
674
+ end: end - 1, // Node.js createReadStream end is inclusive
675
+ });
676
+ return new AsyncSpliterator(chunkIterator, { delimiter });
677
+ }))).filter((s) => s !== null);
409
678
  return spliterators;
410
679
  }
411
680
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AsyncSpliterator.js","sourceRoot":"","sources":["../../lib/AsyncSpliterator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AsyncSpliterator.js","sourceRoot":"","sources":["../../lib/AsyncSpliterator.ts"],"names":[],"mappings":"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"}
@@ -32,13 +32,15 @@ export declare class BufferController {
32
32
  */
33
33
  grow(desiredByteLength?: number): void;
34
34
  /**
35
- * Modify the buffer in place, keeping only the bytes between the start and end indices.
35
+ * Discard bytes before `start` (and optionally after `end`) by shifting the retained region to
36
+ * the front of the buffer in-place.
36
37
  *
37
- * This is performed after we're confident that any data preceeding `start` or following `end` is
38
- * no longer needed.
38
+ * Unlike a `subarray` view, `copyWithin` operates within the same `ArrayBuffer`, so the buffer's
39
+ * capacity is preserved and the old bytes are overwritten rather than merely hidden behind a
40
+ * pointer offset.
39
41
  *
40
- * @param start - The starting byte index of which bytes to keep.
41
- * @param end - The ending byte index of which bytes to keep.
42
+ * @param start - The first byte index to keep. Everything before this is discarded.
43
+ * @param end - The last byte index to keep (exclusive). Defaults to `bytesWritten`.
42
44
  */
43
45
  compress(start?: number, end?: number): void;
44
46
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"BufferController.d.ts","sourceRoot":"","sources":["../../lib/BufferController.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,qBAAa,gBAAgB;;IAM5B;;;;OAIG;IACH,KAAK,EAAE,UAAU,CAAA;IAEjB;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,IAAW,iBAAiB,IAAI,MAAM,CAErC;gBAEW,IAAI,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAA;KAAE;IAM/C;;OAEG;IACI,IAAI,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI;IAa7C;;;;;;;;OAQG;IACI,QAAQ,CAAC,KAAK,GAAE,MAAU,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAStD;;;;;OAKG;IACI,KAAK,CAAC,KAAK,GAAE,MAAU,EAAE,GAAG,GAAE,MAA0B,GAAG,IAAI;IAKtE;;;;;;;;OAQG;IACI,QAAQ,CAAC,KAAK,GAAE,MAAU,EAAE,GAAG,GAAE,MAA0B,GAAG,UAAU;IAY/E;;;;;;;;;;OAUG;IACI,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAE,MAAU,GAAG,MAAM;CAehE"}
1
+ {"version":3,"file":"BufferController.d.ts","sourceRoot":"","sources":["../../lib/BufferController.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,qBAAa,gBAAgB;;IAM5B;;;;OAIG;IACH,KAAK,EAAE,UAAU,CAAA;IAEjB;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,IAAW,iBAAiB,IAAI,MAAM,CAErC;gBAEW,IAAI,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAA;KAAE;IAM/C;;OAEG;IACI,IAAI,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI;IAa7C;;;;;;;;;;OAUG;IACI,QAAQ,CAAC,KAAK,GAAE,MAAU,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAStD;;;;;OAKG;IACI,KAAK,CAAC,KAAK,GAAE,MAAU,EAAE,GAAG,GAAE,MAA0B,GAAG,IAAI;IAKtE;;;;;;;;OAQG;IACI,QAAQ,CAAC,KAAK,GAAE,MAAU,EAAE,GAAG,GAAE,MAA0B,GAAG,UAAU;IAY/E;;;;;;;;;;OAUG;IACI,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAE,MAAU,GAAG,MAAM;CAehE"}
@@ -47,19 +47,21 @@ export class BufferController {
47
47
  this.bytes = newBytes;
48
48
  }
49
49
  /**
50
- * Modify the buffer in place, keeping only the bytes between the start and end indices.
50
+ * Discard bytes before `start` (and optionally after `end`) by shifting the retained region to
51
+ * the front of the buffer in-place.
51
52
  *
52
- * This is performed after we're confident that any data preceeding `start` or following `end` is
53
- * no longer needed.
53
+ * Unlike a `subarray` view, `copyWithin` operates within the same `ArrayBuffer`, so the buffer's
54
+ * capacity is preserved and the old bytes are overwritten rather than merely hidden behind a
55
+ * pointer offset.
54
56
  *
55
- * @param start - The starting byte index of which bytes to keep.
56
- * @param end - The ending byte index of which bytes to keep.
57
+ * @param start - The first byte index to keep. Everything before this is discarded.
58
+ * @param end - The last byte index to keep (exclusive). Defaults to `bytesWritten`.
57
59
  */
58
60
  compress(start = 0, end) {
59
- end ??= Math.max(this.byteLengthMinimum, this.bytes.length);
60
- const adjustedBytesWritten = Math.min(this.bytesWritten, end - start);
61
- this.bytes = this.bytes.subarray(start, end);
62
- this.bytesWritten = adjustedBytesWritten;
61
+ const keepEnd = Math.min(end ?? this.bytesWritten, this.bytesWritten);
62
+ const keepLength = Math.max(0, keepEnd - start);
63
+ this.bytes.copyWithin(0, start, keepEnd);
64
+ this.bytesWritten = keepLength;
63
65
  }
64
66
  /**
65
67
  * Clear the buffer, zeroing out all bytes.
@@ -1 +1 @@
1
- {"version":3,"file":"BufferController.js","sourceRoot":"","sources":["../../lib/BufferController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BufferController.js","sourceRoot":"","sources":["../../lib/BufferController.ts"],"names":[],"mappings":"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"}
@@ -46,13 +46,13 @@ export class CSVSpliterator {
46
46
  const yieldLimit = take + drop;
47
47
  const decoder = new TextDecoder();
48
48
  const columnDelimiter = new CharacterSequence(columnDelimiterInput ?? Delimiters.Comma);
49
- const columnSpliteratorInit = { delimiter: columnDelimiter };
49
+ const columnSpliterator = new Spliterator(new Uint8Array(0), { delimiter: columnDelimiter });
50
50
  const rows = Spliterator.fromSync(source, rowInit);
51
51
  if (header) {
52
52
  const result = rows.next();
53
53
  if (result.done)
54
54
  return;
55
- const columns = new Spliterator(result.value, columnSpliteratorInit).toDecodedArray(decoder);
55
+ const columns = columnSpliterator.reset(result.value).toDecodedArray(decoder);
56
56
  const headers = normalizeKeys ? normalizeColumnNames(columns) : columns;
57
57
  if (Array.isArray(transformersInput)) {
58
58
  transformers = Array.from(zipSync(headers, transformersInput), ([columnName, transformer]) => [
@@ -74,7 +74,7 @@ export class CSVSpliterator {
74
74
  }
75
75
  if (yieldCount >= yieldLimit)
76
76
  break;
77
- const columns = new Spliterator(row, columnSpliteratorInit).toDecodedArray(decoder);
77
+ const columns = columnSpliterator.reset(row).toDecodedArray(decoder);
78
78
  yield emitter ? emitter(columns, transformers) : columns;
79
79
  }
80
80
  }
@@ -95,14 +95,14 @@ export class CSVSpliterator {
95
95
  let yieldCount = 0;
96
96
  const yieldLimit = take + drop;
97
97
  const columnDelimiter = new CharacterSequence(columnDelimiterInput ?? Delimiters.Comma);
98
- const columnSpliteratorInit = { delimiter: columnDelimiter };
98
+ const columnSpliterator = new Spliterator(new Uint8Array(0), { delimiter: columnDelimiter });
99
99
  const decoder = new TextDecoder();
100
100
  const rows = await Spliterator.from(source, rowInit);
101
101
  if (header) {
102
102
  const result = await rows.next();
103
103
  if (result.done)
104
104
  return;
105
- const columns = new Spliterator(result.value, columnSpliteratorInit).toDecodedArray(decoder);
105
+ const columns = columnSpliterator.reset(result.value).toDecodedArray(decoder);
106
106
  const headers = normalizeKeys ? normalizeColumnNames(columns) : columns;
107
107
  if (Array.isArray(transformersInput)) {
108
108
  transformers = Array.from(zipSync(headers, transformersInput), ([columnName, transformer]) => [
@@ -124,7 +124,7 @@ export class CSVSpliterator {
124
124
  }
125
125
  if (yieldCount >= yieldLimit)
126
126
  break;
127
- const columns = new Spliterator(row, columnSpliteratorInit).toDecodedArray(decoder);
127
+ const columns = columnSpliterator.reset(row).toDecodedArray(decoder);
128
128
  yield emitter ? emitter(columns, transformers) : columns;
129
129
  yieldCount++;
130
130
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CSVSpliterator.js","sourceRoot":"","sources":["../../lib/CSVSpliterator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CSVSpliterator.js","sourceRoot":"","sources":["../../lib/CSVSpliterator.ts"],"names":[],"mappings":"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"}
@@ -34,7 +34,7 @@ export declare const Delimiters: {
34
34
  */
35
35
  readonly CarriageReturn: 13;
36
36
  /**
37
- * Comma ()
37
+ * Comma (,)
38
38
  */
39
39
  readonly Comma: 44;
40
40
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"CharacterSequence.d.ts","sourceRoot":"","sources":["../../lib/CharacterSequence.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC,CAEpE;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;AAEzG;;GAEG;AACH,eAAO,MAAM,UAAU;IACtB;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEuC,CAAA;AAE3C,eAAO,MAAM,mBAAmB,qBAS9B,CAAA;AAEF,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM,CAQtE;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,sBAAsB,GAAG,UAAU,CAwBjF;AAED;;;;;;GAMG;AACH,qBAAa,iBAAkB,SAAQ,UAAU;;IAMhD;;;;;;;;OAQG;IACI,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,GAAE,MAAU,EAAE,GAAG,SAAkB,GAAG,MAAM;IAuB9E,MAAM,CAAC,QAAQ,GAAE,MAAgB,GAAG,MAAM;IAIjD;;OAEG;gBACS,KAAK,GAAE,sBAA4C;CAY/D"}
1
+ {"version":3,"file":"CharacterSequence.d.ts","sourceRoot":"","sources":["../../lib/CharacterSequence.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC,CAEpE;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;AAEzG;;GAEG;AACH,eAAO,MAAM,UAAU;IACtB;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEuC,CAAA;AAE3C,eAAO,MAAM,mBAAmB,qBAS9B,CAAA;AAKF,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM,CAQtE;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,sBAAsB,GAAG,UAAU,CAwBjF;AAED;;;;;;GAMG;AACH,qBAAa,iBAAkB,SAAQ,UAAU;;IAMhD;;;;;;;;OAQG;IACI,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,GAAE,MAAU,EAAE,GAAG,SAAkB,GAAG,MAAM;IA4B9E,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM;IAKxC;;OAEG;gBACS,KAAK,GAAE,sBAA4C;CAY/D"}
@@ -26,7 +26,7 @@ export const Delimiters = {
26
26
  */
27
27
  CarriageReturn: 13,
28
28
  /**
29
- * Comma ()
29
+ * Comma (,)
30
30
  */
31
31
  Comma: 44,
32
32
  /**
@@ -57,13 +57,15 @@ export const Delimiters = {
57
57
  export const VisibleDelimiterMap = new Map([
58
58
  [Delimiters.LineFeed, "␤"],
59
59
  [Delimiters.CarriageReturn, "␍"],
60
- [Delimiters.Comma, "-"],
60
+ [Delimiters.Comma, ","],
61
61
  [Delimiters.Tab, "␉"],
62
62
  [Delimiters.Space, "␠"],
63
63
  [Delimiters.DoubleQuote, '"'],
64
64
  [Delimiters.RecordSeparator, "␞"],
65
65
  [Delimiters.Null, "␀"],
66
66
  ]);
67
+ const sharedEncoder = new TextEncoder();
68
+ const sharedDecoder = new TextDecoder();
67
69
  export function debugAsVisibleCharacters(delimiter) {
68
70
  return Array.from(delimiter)
69
71
  .map((charCode) => {
@@ -80,7 +82,7 @@ export function normalizeCharacterInput(input) {
80
82
  }
81
83
  return Uint8Array.from([input]);
82
84
  case "string":
83
- return new TextEncoder().encode(input);
85
+ return sharedEncoder.encode(input);
84
86
  case "object":
85
87
  if (isArrayLike(input)) {
86
88
  return input;
@@ -116,6 +118,10 @@ export class CharacterSequence extends Uint8Array {
116
118
  */
117
119
  search(haystack, start = 0, end = haystack.length) {
118
120
  const sequenceLength = this.length;
121
+ if (sequenceLength === 1) {
122
+ const idx = haystack.indexOf(this[0], start);
123
+ return idx === -1 || idx >= end ? -1 : idx;
124
+ }
119
125
  let startIndex = start;
120
126
  while (startIndex <= end - sequenceLength) {
121
127
  let lastIndex = sequenceLength - 1;
@@ -131,8 +137,9 @@ export class CharacterSequence extends Uint8Array {
131
137
  }
132
138
  return -1;
133
139
  }
134
- decode(encoding = "utf-8") {
135
- return new TextDecoder(encoding).decode(this);
140
+ decode(encoding) {
141
+ const decoder = encoding ? new TextDecoder(encoding) : sharedDecoder;
142
+ return decoder.decode(this);
136
143
  }
137
144
  /**
138
145
  * Create a new character sequence from a delimiter.
@@ -1 +1 @@
1
- {"version":3,"file":"CharacterSequence.js","sourceRoot":"","sources":["../../lib/CharacterSequence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CharacterSequence.js","sourceRoot":"","sources":["../../lib/CharacterSequence.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,14 @@
6
6
  import type { ByteRange } from "./shared.js";
7
7
  /**
8
8
  * A first-in, first-out queue for marking and dequeuing index tuples.
9
+ *
10
+ * Internally the queue stores pairs of numbers `[start, end]` flat in a single array.
11
+ *
12
+ * A `#head` pointer advances on every dequeue so that the operation is `O(1)` — no element shifting
13
+ * occurs.
14
+ *
15
+ * The dead prefix at the front of the array is compacted back to index 0 in a single splice once it
16
+ * reaches {@linkcode COMPACTION_THRESHOLD} slots.
9
17
  */
10
18
  export declare class IndexQueue implements IterableIterator<ByteRange> {
11
19
  #private;
@@ -25,6 +33,11 @@ export declare class IndexQueue implements IterableIterator<ByteRange> {
25
33
  enqueue(tuple: ByteRange): void;
26
34
  /**
27
35
  * Get the next tuple in the queue, removing it.
36
+ *
37
+ * Advances `#head` by 2 (O(1)) rather than splicing the array.
38
+ *
39
+ * Once the dead prefix reaches {@linkcode COMPACTION_THRESHOLD} slots it is removed in a single
40
+ * splice, resetting `#head` to 0.
28
41
  */
29
42
  dequeue(): ByteRange | undefined;
30
43
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"IndexQueue.d.ts","sourceRoot":"","sources":["../../lib/IndexQueue.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C;;GAEG;AACH,qBAAa,UAAW,YAAW,gBAAgB,CAAC,SAAS,CAAC;;IAG7D;;OAEG;IACH,IAAW,IAAI,IAAI,MAAM,CAExB;IAID;;;;OAIG;IACH,IAAW,UAAU,IAAI,MAAM,CAE9B;IAED;;OAEG;IACI,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAMtC;;OAEG;IACI,OAAO,IAAI,SAAS,GAAG,SAAS;IAUvC;;OAEG;IACI,IAAI,IAAI,SAAS,GAAG,SAAS;IAMpC;;OAEG;IACI,QAAQ,IAAI,SAAS,GAAG,SAAS;IAMxC;;OAEG;IACI,KAAK,IAAI,IAAI;IAKpB;;OAEG;IACI,IAAI,IAAI,cAAc,CAAC,SAAS,CAAC;IAUjC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAU;CAGtC"}
1
+ {"version":3,"file":"IndexQueue.d.ts","sourceRoot":"","sources":["../../lib/IndexQueue.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAe5C;;;;;;;;;;GAUG;AACH,qBAAa,UAAW,YAAW,gBAAgB,CAAC,SAAS,CAAC;;IAe7D;;OAEG;IACH,IAAW,IAAI,IAAI,MAAM,CAExB;IAID;;;;OAIG;IACH,IAAW,UAAU,IAAI,MAAM,CAE9B;IAED;;OAEG;IACI,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAMtC;;;;;;;OAOG;IACI,OAAO,IAAI,SAAS,GAAG,SAAS;IAgBvC;;OAEG;IACI,IAAI,IAAI,SAAS,GAAG,SAAS;IAMpC;;OAEG;IACI,QAAQ,IAAI,SAAS,GAAG,SAAS;IAOxC;;OAEG;IACI,KAAK,IAAI,IAAI;IAMpB;;OAEG;IACI,IAAI,IAAI,cAAc,CAAC,SAAS,CAAC;IAUjC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAU;CAGtC"}
@@ -3,16 +3,47 @@
3
3
  * @license AGPL-3.0
4
4
  * @author Teffen Ellis, et al.
5
5
  */
6
+ /**
7
+ * Number of consumed slots (each tuple occupies 2 slots) that may accumulate at the front of the
8
+ * backing array before a compaction is triggered.
9
+ *
10
+ * Compaction shifts the live portion of the array back to index 0 via a single `splice`. Choosing a
11
+ * larger threshold amortises the cost of that splice across more dequeue operations; choosing a
12
+ * smaller threshold keeps the dead prefix shorter at the cost of more frequent compactions.
13
+ *
14
+ * 1024 slots = 512 tuples. At that cadence the O(n) splice happens at most once every 512 dequeues,
15
+ * making dequeue effectively O(1) amortised.
16
+ */
17
+ const COMPACTION_THRESHOLD = 1024;
6
18
  /**
7
19
  * A first-in, first-out queue for marking and dequeuing index tuples.
20
+ *
21
+ * Internally the queue stores pairs of numbers `[start, end]` flat in a single array.
22
+ *
23
+ * A `#head` pointer advances on every dequeue so that the operation is `O(1)` — no element shifting
24
+ * occurs.
25
+ *
26
+ * The dead prefix at the front of the array is compacted back to index 0 in a single splice once it
27
+ * reaches {@linkcode COMPACTION_THRESHOLD} slots.
8
28
  */
9
29
  export class IndexQueue {
30
+ /**
31
+ * Flat backing store: pairs of `[start, end]` numbers laid out sequentially.
32
+ *
33
+ * Slots before `#head` have already been consumed and are logically empty.
34
+ */
10
35
  #tuples = [];
36
+ /**
37
+ * Index into `#tuples` of the next unconsumed start value.
38
+ *
39
+ * Always even; advances by 2 on each dequeue.
40
+ */
41
+ #head = 0;
11
42
  /**
12
43
  * The number of tuples in the queue.
13
44
  */
14
45
  get size() {
15
- return this.#tuples.length / 2;
46
+ return (this.#tuples.length - this.#head) / 2;
16
47
  }
17
48
  #byteLength = 0;
18
49
  /**
@@ -27,40 +58,52 @@ export class IndexQueue {
27
58
  * Append a new tuple to the queue.
28
59
  */
29
60
  enqueue(tuple) {
30
- this.#tuples.push(...tuple);
61
+ this.#tuples.push(tuple[0], tuple[1]);
31
62
  this.#byteLength += tuple[1] - tuple[0];
32
63
  }
33
64
  /**
34
65
  * Get the next tuple in the queue, removing it.
66
+ *
67
+ * Advances `#head` by 2 (O(1)) rather than splicing the array.
68
+ *
69
+ * Once the dead prefix reaches {@linkcode COMPACTION_THRESHOLD} slots it is removed in a single
70
+ * splice, resetting `#head` to 0.
35
71
  */
36
72
  dequeue() {
37
- if (this.#tuples.length < 2)
73
+ if (this.#head >= this.#tuples.length)
38
74
  return;
39
- const tuple = this.#tuples.splice(0, 2);
40
- this.#byteLength -= tuple[1] - tuple[0];
41
- return tuple;
75
+ const start = this.#tuples[this.#head++];
76
+ const end = this.#tuples[this.#head++];
77
+ this.#byteLength -= end - start;
78
+ if (this.#head >= COMPACTION_THRESHOLD) {
79
+ this.#tuples.splice(0, this.#head);
80
+ this.#head = 0;
81
+ }
82
+ return [start, end];
42
83
  }
43
84
  /**
44
85
  * Peek at the next tuple in the queue without removing it.
45
86
  */
46
87
  peek() {
47
- if (this.#tuples.length < 2)
88
+ if (this.#head >= this.#tuples.length)
48
89
  return;
49
- return this.#tuples.slice(0, 2);
90
+ return [this.#tuples[this.#head], this.#tuples[this.#head + 1]];
50
91
  }
51
92
  /**
52
93
  * Peek at the last tuple in the queue without removing it.
53
94
  */
54
95
  peekLast() {
55
- if (this.#tuples.length < 2)
96
+ if (this.#head >= this.#tuples.length)
56
97
  return;
57
- return this.#tuples.slice(-2);
98
+ const last = this.#tuples.length - 2;
99
+ return [this.#tuples[last], this.#tuples[last + 1]];
58
100
  }
59
101
  /**
60
102
  * Clear the queue.
61
103
  */
62
104
  clear() {
63
105
  this.#tuples.length = 0;
106
+ this.#head = 0;
64
107
  this.#byteLength = 0;
65
108
  }
66
109
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"IndexQueue.js","sourceRoot":"","sources":["../../lib/IndexQueue.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;GAEG;AACH,MAAM,OAAO,UAAU;IACtB,OAAO,GAAa,EAAE,CAAA;IAEtB;;OAEG;IACH,IAAW,IAAI;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAA;IAC/B,CAAC;IAED,WAAW,GAAG,CAAC,CAAA;IAEf;;;;OAIG;IACH,IAAW,UAAU;QACpB,OAAO,IAAI,CAAC,WAAW,CAAA;IACxB,CAAC;IAED;;OAEG;IACI,OAAO,CAAC,KAAgB;QAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAA;QAE3B,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IACxC,CAAC;IAED;;OAEG;IACI,OAAO;QACb,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,OAAM;QAEnC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAc,CAAA;QAEpD,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QAEvC,OAAO,KAAkB,CAAA;IAC1B,CAAC;IAED;;OAEG;IACI,IAAI;QACV,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,OAAM;QAEnC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAc,CAAA;IAC7C,CAAC;IAED;;OAEG;IACI,QAAQ;QACd,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,OAAM;QAEnC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAc,CAAA;IAC3C,CAAC;IAED;;OAEG;IACI,KAAK;QACX,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAA;QACvB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;IACrB,CAAC;IAED;;OAEG;IACI,IAAI;QACV,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;QAE5B,IAAI,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;QACrC,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;IACxC,CAAC;IAEM,CAAC,MAAM,CAAC,QAAQ,CAAC;QACvB,OAAO,IAAI,CAAA;IACZ,CAAC;CACD"}
1
+ {"version":3,"file":"IndexQueue.js","sourceRoot":"","sources":["../../lib/IndexQueue.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SlidingWindow.d.ts","sourceRoot":"","sources":["../../lib/SlidingWindow.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAqB,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAClF,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAEnD,MAAM,WAAW,iBAAiB;IACjC;;OAEG;IACH,SAAS,CAAC,EAAE,sBAAsB,CAAA;IAElC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;GAIG;AACH,qBAAa,aAAa,CAAC,CAAC,SAAS,UAAU,CAAE,YAAW,gBAAgB,CAAC,SAAS,CAAC;;IACtF,MAAM,EAAE,CAAC,CAAA;IAKT;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IAEd;;;;OAIG;;IAEF;;OAEG;IACH,MAAM,EAAE,CAAC,EACT,IAAI,GAAE,iBAAsB;IAQtB,IAAI,IAAI,cAAc,CAAC,SAAS,CAAC;IA8BjC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,SAAS,CAAC;CAGvD"}
1
+ {"version":3,"file":"SlidingWindow.d.ts","sourceRoot":"","sources":["../../lib/SlidingWindow.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAqB,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAClF,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAEnD,MAAM,WAAW,iBAAiB;IACjC;;OAEG;IACH,SAAS,CAAC,EAAE,sBAAsB,CAAA;IAElC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;GAIG;AACH,qBAAa,aAAa,CAAC,CAAC,SAAS,UAAU,CAAE,YAAW,gBAAgB,CAAC,SAAS,CAAC;;IACtF,MAAM,EAAE,CAAC,CAAA;IAKT;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IAEd;;;;OAIG;;IAEF;;OAEG;IACH,MAAM,EAAE,CAAC,EACT,IAAI,GAAE,iBAAsB;IAQtB,IAAI,IAAI,cAAc,CAAC,SAAS,CAAC;IA0BjC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,SAAS,CAAC;CAGvD"}
@@ -34,14 +34,10 @@ export class SlidingWindow {
34
34
  this.#byteLength = Math.min(init.byteLength ?? buffer.byteLength, buffer.byteLength);
35
35
  }
36
36
  next() {
37
- for (let end = this.cursor; end < this.#byteLength; end++) {
38
- // We walk through as many bytes as the delimiter has...
39
- const match = this.#delimiter.every((byte, i) => byte === this.buffer[end + i]);
40
- // We didn't find a match, so we continue.
41
- if (!match)
42
- continue;
43
- const range = [this.cursor, end];
44
- this.cursor = end + this.#delimiter.length;
37
+ const delimiterIndex = this.#delimiter.search(this.buffer, this.cursor, this.#byteLength);
38
+ if (delimiterIndex !== -1) {
39
+ const range = [this.cursor, delimiterIndex];
40
+ this.cursor = delimiterIndex + this.#delimiter.length;
45
41
  return { value: range, done: false };
46
42
  }
47
43
  if (this.cursor <= this.#byteLength && !this.#done) {
@@ -1 +1 @@
1
- {"version":3,"file":"SlidingWindow.js","sourceRoot":"","sources":["../../lib/SlidingWindow.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAA0B,MAAM,wBAAwB,CAAA;AAoBlF;;;;GAIG;AACH,MAAM,OAAO,aAAa;IACzB,MAAM,CAAG;IACT,UAAU,CAAmB;IAC7B,WAAW,CAAQ;IACnB,KAAK,GAAG,KAAK,CAAA;IAEb;;OAEG;IACH,MAAM,CAAQ;IAEd;;;;OAIG;IACH;IACC;;OAEG;IACH,MAAS,EACT,OAA0B,EAAE;QAE5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,UAAU,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACvD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAA;QAChC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;IACrF,CAAC;IAEM,IAAI;QACV,KAAK,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,EAAE,CAAC;YAC3D,wDAAwD;YACxD,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;YAE/E,0CAA0C;YAC1C,IAAI,CAAC,KAAK;gBAAE,SAAQ;YAEpB,MAAM,KAAK,GAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;YAE3C,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAA;YAE1C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;QACrC,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACpD,MAAM,KAAK,GAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;YAExD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAA;YAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;YAEjB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;QACrC,CAAC;QAED,OAAO;YACN,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,IAAI;SACV,CAAA;IACF,CAAC;IAEM,CAAC,MAAM,CAAC,QAAQ,CAAC;QACvB,OAAO,IAAI,CAAA;IACZ,CAAC;CACD"}
1
+ {"version":3,"file":"SlidingWindow.js","sourceRoot":"","sources":["../../lib/SlidingWindow.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAA0B,MAAM,wBAAwB,CAAA;AAoBlF;;;;GAIG;AACH,MAAM,OAAO,aAAa;IACzB,MAAM,CAAG;IACT,UAAU,CAAmB;IAC7B,WAAW,CAAQ;IACnB,KAAK,GAAG,KAAK,CAAA;IAEb;;OAEG;IACH,MAAM,CAAQ;IAEd;;;;OAIG;IACH;IACC;;OAEG;IACH,MAAS,EACT,OAA0B,EAAE;QAE5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,UAAU,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACvD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAA;QAChC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;IACrF,CAAC;IAEM,IAAI;QACV,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAA+B,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;QAElH,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAc,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;YAEtD,IAAI,CAAC,MAAM,GAAG,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAA;YAErD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;QACrC,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACpD,MAAM,KAAK,GAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;YAExD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAA;YAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;YAEjB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;QACrC,CAAC;QAED,OAAO;YACN,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,IAAI;SACV,CAAA;IACF,CAAC;IAEM,CAAC,MAAM,CAAC,QAAQ,CAAC;QACvB,OAAO,IAAI,CAAA;IACZ,CAAC;CACD"}
@@ -76,6 +76,14 @@ export declare class Spliterator<R extends DataView | ArrayBuffer = Uint8Array>
76
76
  * Dispose of the spliterator, closing the file handle if necessary.
77
77
  */
78
78
  [Symbol.dispose](): void;
79
+ /**
80
+ * Reset the spliterator to read a new source buffer from the beginning, reusing all pre-allocated
81
+ * state (needle, queue, etc.).
82
+ *
83
+ * This is intended for high-throughput loops such as CSV column parsing where a fresh
84
+ * `Spliterator` would otherwise be constructed for every row.
85
+ */
86
+ reset(source: Uint8Array): this;
79
87
  constructor(source: Uint8Array, init?: SpliteratorInit);
80
88
  /**
81
89
  * Read the next byte range from the source.
@@ -1 +1 @@
1
- {"version":3,"file":"Spliterator.d.ts","sourceRoot":"","sources":["../../lib/Spliterator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC/F,OAAO,EAEN,sBAAsB,EAGtB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAoC,MAAM,aAAa,CAAA;AAErG,OAAO,EAAE,gBAAgB,EAAE,CAAA;AAE3B,YAAY,EAAE,oBAAoB,EAAE,eAAe,EAAE,CAAA;AAErD;;GAEG;AACH,qBAAa,WAAW,CAAC,CAAC,SAAS,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAE,YAAW,gBAAgB,CAAC,CAAC,CAAC,EAAE,UAAU;;IAGjH;;;;;;;;OAQG;IACH,MAAM,CAAC,SAAS,+BAAwB;IAExC;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,sBAAsB,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,GAAE,eAAoB,GAAG,WAAW;IAIrG;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,WAAW;IAC5G;;;;;;;OAOG;IACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAAI,CAAC,EAAE,oBAAoB,GAAG,gBAAgB;IACtF;;;;;;;;OAQG;IACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAC9F;;;;;;;;;OASG;IACH,MAAM,CAAC,IAAI,CACV,MAAM,EAAE,sBAAsB,GAAG,iBAAiB,GAAG,kBAAkB,EACvE,IAAI,CAAC,EAAE,eAAe,GAAG,oBAAoB,GAC3C,WAAW,GAAG,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAsC7D;;OAEG;WACW,iBAAiB,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC;IAUjG;;OAEG;IACI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;gBAInB,MAAM,EAAE,UAAU,EAAE,IAAI,GAAE,eAAoB;IA+R1D;;OAEG;IACI,IAAI,IAAI,cAAc,CAAC,CAAC,CAAC;IAuChC;;;;;OAKG;IACI,OAAO,IAAI,CAAC,EAAE;IAIrB;;OAEG;IACI,cAAc,CAAC,OAAO,6BAAoB,GAAG,MAAM,EAAE;IAIrD,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC;CAG/C"}
1
+ {"version":3,"file":"Spliterator.d.ts","sourceRoot":"","sources":["../../lib/Spliterator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC/F,OAAO,EAEN,sBAAsB,EAGtB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAoC,MAAM,aAAa,CAAA;AAErG,OAAO,EAAE,gBAAgB,EAAE,CAAA;AAE3B,YAAY,EAAE,oBAAoB,EAAE,eAAe,EAAE,CAAA;AAErD;;GAEG;AACH,qBAAa,WAAW,CAAC,CAAC,SAAS,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAE,YAAW,gBAAgB,CAAC,CAAC,CAAC,EAAE,UAAU;;IAGjH;;;;;;;;OAQG;IACH,MAAM,CAAC,SAAS,+BAAwB;IAExC;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,sBAAsB,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,GAAE,eAAoB,GAAG,WAAW;IAIrG;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,WAAW;IAC5G;;;;;;;OAOG;IACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAAI,CAAC,EAAE,oBAAoB,GAAG,gBAAgB;IACtF;;;;;;;;OAQG;IACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAC9F;;;;;;;;;OASG;IACH,MAAM,CAAC,IAAI,CACV,MAAM,EAAE,sBAAsB,GAAG,iBAAiB,GAAG,kBAAkB,EACvE,IAAI,CAAC,EAAE,eAAe,GAAG,oBAAoB,GAC3C,WAAW,GAAG,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAsC7D;;OAEG;WACW,iBAAiB,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC;IAUjG;;OAEG;IACI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;IAI/B;;;;;;OAMG;IACI,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;gBAa1B,MAAM,EAAE,UAAU,EAAE,IAAI,GAAE,eAAoB;IA+R1D;;OAEG;IACI,IAAI,IAAI,cAAc,CAAC,CAAC,CAAC;IAuChC;;;;;OAKG;IACI,OAAO,IAAI,CAAC,EAAE;IAIrB;;OAEG;IACI,cAAc,CAAC,OAAO,6BAAoB,GAAG,MAAM,EAAE;IAIrD,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC;CAG/C"}
@@ -74,6 +74,25 @@ export class Spliterator {
74
74
  [Symbol.dispose]() {
75
75
  this.#indices.clear();
76
76
  }
77
+ /**
78
+ * Reset the spliterator to read a new source buffer from the beginning, reusing all pre-allocated
79
+ * state (needle, queue, etc.).
80
+ *
81
+ * This is intended for high-throughput loops such as CSV column parsing where a fresh
82
+ * `Spliterator` would otherwise be constructed for every row.
83
+ */
84
+ reset(source) {
85
+ this.#source = source;
86
+ this.#readPosition = 0;
87
+ this.#yieldByteEstimate = source.byteLength;
88
+ this.#yieldedByteLength = 0;
89
+ this.#yieldCount = 0;
90
+ this.#doubleQuoteStartIndex = -1;
91
+ this.#previousByteRange = undefined;
92
+ this.#done = false;
93
+ this.#indices.clear();
94
+ return this;
95
+ }
77
96
  constructor(source, init = {}) {
78
97
  this.#source = source;
79
98
  this.#needle = new CharacterSequence(init.delimiter);
@@ -1 +1 @@
1
- {"version":3,"file":"Spliterator.js","sourceRoot":"","sources":["../../lib/Spliterator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Spliterator.js","sourceRoot":"","sources":["../../lib/Spliterator.ts"],"names":[],"mappings":"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"}
File without changes
@@ -37,7 +37,24 @@ export interface CreateChunkIteratorOptions {
37
37
  * The byte position to start reading from.
38
38
  */
39
39
  start?: number;
40
+ /**
41
+ * The byte position to stop reading at, inclusive.
42
+ *
43
+ * Matches the semantics of Node.js `fs.createReadStream({ end })`.
44
+ */
45
+ end?: number;
40
46
  }
47
+ /**
48
+ * Read a fixed-size slice of bytes from an async data resource at a given position.
49
+ *
50
+ * @param source The source to read from.
51
+ * @param position The byte offset to start reading at.
52
+ * @param length The number of bytes to read.
53
+ *
54
+ * @returns The bytes read, which may be shorter than `length` at end-of-file.
55
+ * @internal
56
+ */
57
+ export declare function readBytes(source: AsyncDataResource, position: number, length: number): Promise<Uint8Array>;
41
58
  /**
42
59
  * Read the size of a file from a source.
43
60
  *
@@ -53,6 +70,6 @@ export declare function readFileSize(source: AsyncDataResource): Promise<number>
53
70
  * @param source The source to create the chunk iterator from.
54
71
  * @internal
55
72
  */
56
- export declare function createChunkIterator(source: AsyncDataResource | AsyncChunkIterator, { highWaterMark, start }?: CreateChunkIteratorOptions): Promise<AsyncChunkIterator>;
73
+ export declare function createChunkIterator(source: AsyncDataResource | AsyncChunkIterator, { highWaterMark, start, end }?: CreateChunkIteratorOptions): Promise<AsyncChunkIterator>;
57
74
  export default createChunkIterator;
58
75
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../node/fs/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,wBAAwB,EAAc,MAAM,kBAAkB,CAAA;AAEvE,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAoB,MAAM,qBAAqB,CAAA;AAE7F;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAgB1G;AAED;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAC7C,WAAW,EAAE,OAAO,EACpB,OAAO,GAAE,wBAA6B,GACpC,OAAO,CAAC,cAAc,CAAC,CAiDzB;AAED,MAAM,WAAW,0BAA0B;IAC1C;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAU7E;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACxC,MAAM,EAAE,iBAAiB,GAAG,kBAAkB,EAC9C,EAAE,aAAyB,EAAE,KAAS,EAAE,GAAE,0BAA+B,GACvE,OAAO,CAAC,kBAAkB,CAAC,CAmD7B;AAED,eAAe,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../node/fs/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,wBAAwB,EAAc,MAAM,kBAAkB,CAAA;AAEvE,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAoB,MAAM,qBAAqB,CAAA;AAE7F;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAgB1G;AAED;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAC7C,WAAW,EAAE,OAAO,EACpB,OAAO,GAAE,wBAA6B,GACpC,OAAO,CAAC,cAAc,CAAC,CAiDzB;AAED,MAAM,WAAW,0BAA0B;IAC1C;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;CACZ;AAED;;;;;;;;;GASG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAgBhH;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAU7E;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACxC,MAAM,EAAE,iBAAiB,GAAG,kBAAkB,EAC9C,EAAE,aAAyB,EAAE,KAAS,EAAE,GAAG,EAAE,GAAE,0BAA+B,GAC5E,OAAO,CAAC,kBAAkB,CAAC,CAqD7B;AAED,eAAe,mBAAmB,CAAA"}
@@ -83,6 +83,31 @@ export async function createFileWritableStream(destination, options = {}) {
83
83
  },
84
84
  });
85
85
  }
86
+ /**
87
+ * Read a fixed-size slice of bytes from an async data resource at a given position.
88
+ *
89
+ * @param source The source to read from.
90
+ * @param position The byte offset to start reading at.
91
+ * @param length The number of bytes to read.
92
+ *
93
+ * @returns The bytes read, which may be shorter than `length` at end-of-file.
94
+ * @internal
95
+ */
96
+ export async function readBytes(source, position, length) {
97
+ const buffer = Buffer.allocUnsafe(length);
98
+ if (isFileHandleLike(source)) {
99
+ const { bytesRead } = await source.read(buffer, 0, length, position);
100
+ return new Uint8Array(buffer.buffer, buffer.byteOffset, bytesRead);
101
+ }
102
+ const handle = await open(source, "r");
103
+ try {
104
+ const { bytesRead } = await handle.read(buffer, 0, length, position);
105
+ return new Uint8Array(buffer.buffer, buffer.byteOffset, bytesRead);
106
+ }
107
+ finally {
108
+ await handle.close();
109
+ }
110
+ }
86
111
  /**
87
112
  * Read the size of a file from a source.
88
113
  *
@@ -106,7 +131,7 @@ export async function readFileSize(source) {
106
131
  * @param source The source to create the chunk iterator from.
107
132
  * @internal
108
133
  */
109
- export async function createChunkIterator(source, { highWaterMark = 4096 * 16, start = 0 } = {}) {
134
+ export async function createChunkIterator(source, { highWaterMark = 4096 * 16, start = 0, end } = {}) {
110
135
  if (!source) {
111
136
  throw new TypeError("Cannot create a chunk iterator from an undefined or null source.");
112
137
  }
@@ -122,6 +147,7 @@ export async function createChunkIterator(source, { highWaterMark = 4096 * 16, s
122
147
  const handle = await open(source, "r");
123
148
  const readStream = handle.createReadStream({
124
149
  start,
150
+ end,
125
151
  highWaterMark,
126
152
  autoClose: true,
127
153
  });
@@ -134,6 +160,7 @@ export async function createChunkIterator(source, { highWaterMark = 4096 * 16, s
134
160
  if (source.createReadStream) {
135
161
  return source.createReadStream({
136
162
  start,
163
+ end,
137
164
  highWaterMark,
138
165
  });
139
166
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../node/fs/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../node/fs/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spliterator",
3
- "version": "1.6.4",
3
+ "version": "1.7.0",
4
4
  "description": "Line-delimited iterator library for CSV, NDJSON, and other delimited formats.",
5
5
  "keywords": [
6
6
  "csv",
@@ -45,7 +45,8 @@
45
45
  "scripts": {
46
46
  "demo": "node out/examples/simple-iteration.js",
47
47
  "compile": "NODE_OPTIONS=\"--max-old-space-size=3000\" tsc -b",
48
- "test": "vitest",
48
+ "test": "vitest run",
49
+ "test:watch": "vitest watch",
49
50
  "lint": "run-s lint:prettier:check lint:eslint:check",
50
51
  "lint:fix": "run-s lint:prettier:fix lint:eslint:fix",
51
52
  "lint:prettier:check": "prettier --cache --check -u .",
@@ -76,22 +77,22 @@
76
77
  "prettier-plugin-organize-imports": "^4.1.0",
77
78
  "prettier-plugin-packagejson": "^2.5.3",
78
79
  "release-it": "^17.10.0",
79
- "type-fest": "^4.30.0",
80
+ "type-fest": "^5.5.0",
80
81
  "typescript": "^5.6.3",
81
82
  "typescript-eslint": "^8.11.0",
82
83
  "vitest": "2.1.8"
83
84
  },
84
85
  "peerDependencies": {
85
- "type-fest": "^4.30.0"
86
+ "type-fest": ">=5.5.0"
86
87
  },
87
88
  "peerDependenciesMeta": {
88
89
  "type-fest": {
89
90
  "optional": true
90
91
  }
91
92
  },
92
- "packageManager": "yarn@4.5.1",
93
+ "packageManager": "yarn@4.13.0",
93
94
  "engines": {
94
- "node": ">= 20.18.1"
95
+ "node": ">=24.0"
95
96
  },
96
97
  "publishConfig": {
97
98
  "access": "public",