@t4h.framework/fs 0.0.0-experimental-2f9c297 → 0.0.0-experimental-20261019200538
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/dist/activities/FileReadActivity.d.ts +1 -0
- package/dist/activities/FileReadActivity.d.ts.map +1 -1
- package/dist/activities/FileReadActivity.js +23 -18
- package/dist/activities/FileReadActivity.js.map +1 -1
- package/dist/helpers/split-records.js +14 -8
- package/dist/helpers/split-records.js.map +1 -1
- package/package.json +4 -4
- package/LICENSE +0 -21
- package/dist/helpers/ByteDelimiterScanner.d.ts +0 -50
- package/dist/helpers/ByteDelimiterScanner.d.ts.map +0 -1
- package/dist/helpers/ByteDelimiterScanner.js +0 -103
- package/dist/helpers/ByteDelimiterScanner.js.map +0 -1
- package/dist/helpers/ByteRecordFilter.d.ts +0 -32
- package/dist/helpers/ByteRecordFilter.d.ts.map +0 -1
- package/dist/helpers/ByteRecordFilter.js +0 -89
- package/dist/helpers/ByteRecordFilter.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# @t4h.framework/fs
|
|
2
2
|
|
|
3
|
+
## 0.0.0-experimental-20261019200538
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [[`19d907f`](https://github.com/tech4humans-brasil/framework/commit/19d907fb4ada80a2bbbfaa8b079f65a10d092d64)]:
|
|
8
|
+
- @t4h.framework/core@0.0.0-experimental-20261019200538
|
|
9
|
+
|
|
3
10
|
## 0.13.0
|
|
4
11
|
|
|
5
12
|
### Minor Changes
|
|
@@ -17,6 +17,7 @@ export declare class FileReadActivity extends SyncActivity<readonly [binary: Bin
|
|
|
17
17
|
toOutput(output: string): string;
|
|
18
18
|
private slice;
|
|
19
19
|
private window;
|
|
20
|
+
private collect;
|
|
20
21
|
}
|
|
21
22
|
export declare function read(binary: Binary, options?: FileReadOptions): Promise<string>;
|
|
22
23
|
//# sourceMappingURL=FileReadActivity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileReadActivity.d.ts","sourceRoot":"","sources":["../../src/activities/FileReadActivity.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,MAAM,EAAkB,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAI/E,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;IACtC,QAAQ,CAAC,EAAE,cAAc,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,eAAe,CAAA;CACzB,CAAA;AAID,qBAAa,gBAAiB,SAAQ,YAAY,CAChD,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,CAAC,EACnD,qBAAqB,EACrB,MAAM,EACN,MAAM,CACP;IACC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAErB;IAEK,OAAO,CACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,eAAe,GACvB,qBAAqB;IAIX,GAAG,CAAC,EACf,MAAM,EACN,OAAO,GACR,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAyBnC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;YAIzB,KAAK;YAYL,MAAM;
|
|
1
|
+
{"version":3,"file":"FileReadActivity.d.ts","sourceRoot":"","sources":["../../src/activities/FileReadActivity.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,MAAM,EAAkB,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAI/E,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;IACtC,QAAQ,CAAC,EAAE,cAAc,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,eAAe,CAAA;CACzB,CAAA;AAID,qBAAa,gBAAiB,SAAQ,YAAY,CAChD,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,CAAC,EACnD,qBAAqB,EACrB,MAAM,EACN,MAAM,CACP;IACC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAErB;IAEK,OAAO,CACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,eAAe,GACvB,qBAAqB;IAIX,GAAG,CAAC,EACf,MAAM,EACN,OAAO,GACR,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAyBnC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;YAIzB,KAAK;YAYL,MAAM;YAoBN,OAAO;CA8BtB;AAED,wBAAsB,IAAI,CACxB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAEjB"}
|
|
@@ -36,30 +36,35 @@ export class FileReadActivity extends SyncActivity {
|
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
async window(readable, range) {
|
|
39
|
-
|
|
40
|
-
let position = 0;
|
|
41
|
-
let size = 0;
|
|
39
|
+
let collected;
|
|
42
40
|
try {
|
|
43
|
-
|
|
44
|
-
const chunk = Buffer.isBuffer(data) ? data : Buffer.from(data);
|
|
45
|
-
const chunkStart = position;
|
|
46
|
-
position += chunk.length;
|
|
47
|
-
if (position <= range.start)
|
|
48
|
-
continue;
|
|
49
|
-
const from = Math.max(range.start - chunkStart, 0);
|
|
50
|
-
const to = Math.min(range.end - chunkStart, chunk.length);
|
|
51
|
-
chunks.push(chunk.subarray(from, to));
|
|
52
|
-
size += to - from;
|
|
53
|
-
if (position >= range.end)
|
|
54
|
-
break;
|
|
55
|
-
}
|
|
41
|
+
collected = await this.collect(readable, range);
|
|
56
42
|
}
|
|
57
43
|
finally {
|
|
58
44
|
readable.destroy();
|
|
59
45
|
}
|
|
60
|
-
if (size < range.end - range.start)
|
|
46
|
+
if (collected.size < range.end - range.start)
|
|
61
47
|
throw new RangeError('Binary stream ended before the read window was filled');
|
|
62
|
-
return Buffer.concat(chunks);
|
|
48
|
+
return Buffer.concat(collected.chunks);
|
|
49
|
+
}
|
|
50
|
+
async collect(readable, range) {
|
|
51
|
+
const chunks = [];
|
|
52
|
+
let position = 0;
|
|
53
|
+
let size = 0;
|
|
54
|
+
for await (const data of readable) {
|
|
55
|
+
const chunk = Buffer.isBuffer(data) ? data : Buffer.from(data);
|
|
56
|
+
const chunkStart = position;
|
|
57
|
+
position += chunk.length;
|
|
58
|
+
if (position <= range.start)
|
|
59
|
+
continue;
|
|
60
|
+
const from = Math.max(range.start - chunkStart, 0);
|
|
61
|
+
const to = Math.min(range.end - chunkStart, chunk.length);
|
|
62
|
+
chunks.push(chunk.subarray(from, to));
|
|
63
|
+
size += to - from;
|
|
64
|
+
if (position >= range.end)
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
return { chunks, size };
|
|
63
68
|
}
|
|
64
69
|
}
|
|
65
70
|
export async function read(binary, options = {}) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileReadActivity.js","sourceRoot":"","sources":["../../src/activities/FileReadActivity.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAE9C,OAAO,EAAe,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAE/E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAYvD,MAAM,mBAAmB,GAAG,IAAI,GAAG,IAAI,CAAA;AAEvC,MAAM,OAAO,gBAAiB,SAAQ,YAKrC;IACkB,MAAM,GAAG,IAAI,KAAK,CAAC;QAClC,EAAE,EAAE,eAAe;KACpB,CAAC,CAAA;IAEK,OAAO,CACZ,MAAc,EACd,OAAwB;QAExB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;IAC5B,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,EACf,MAAM,EACN,OAAO,GACe;QACtB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAA;QAE3C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,aAAa,EAAE,CAAA;QAEtE,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAA;QAEtC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC;YACjE,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAA;QAEtE,IAAI,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,aAAa;YAClC,MAAM,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAA;QAErE,IAAI,MAAM,GAAG,mBAAmB;YAC9B,MAAM,IAAI,UAAU,CAClB,UAAU,MAAM,iBAAiB,mBAAmB,EAAE,CACvD,CAAA;QAEH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;QAEvD,IAAI,KAAK;YAAE,OAAO,CAAC,MAAM,MAAM,CAAC,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAEzE,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAC7E,CAAC;IAEM,QAAQ,CAAC,MAAc;QAC5B,OAAO,MAAM,CAAA;IACf,CAAC;IAEO,KAAK,CAAC,KAAK,CACjB,MAAc,EACd,KAAqC,EACrC,QAAwB;QAExB,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;QAC5D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,MAAM,CAClB,QAAkB,EAClB,KAAqC;QAErC,MAAM,MAAM,GAAa,EAAE,CAAA;QAE3B,IAAI,QAAQ,GAAG,CAAC,CAAA;QAChB,IAAI,IAAI,GAAG,CAAC,CAAA;QAEZ,IAAI,
|
|
1
|
+
{"version":3,"file":"FileReadActivity.js","sourceRoot":"","sources":["../../src/activities/FileReadActivity.ts"],"names":[],"mappings":"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"}
|
|
@@ -56,14 +56,10 @@ async function* records(source, { bytes, keepPrevious, keepNext }, offset) {
|
|
|
56
56
|
pieces.push(chunk);
|
|
57
57
|
consumed += chunk.length;
|
|
58
58
|
const matches = [];
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
if (index !== -1 && probeAt + index < chunkAt) {
|
|
64
|
-
matches.push(probeAt + index);
|
|
65
|
-
searchAt = probeAt + index + bytes.length;
|
|
66
|
-
}
|
|
59
|
+
const straddling = straddlingMatch(tail, chunk, chunkAt, bytes, searchAt);
|
|
60
|
+
if (straddling !== -1) {
|
|
61
|
+
matches.push(straddling);
|
|
62
|
+
searchAt = straddling + bytes.length;
|
|
67
63
|
}
|
|
68
64
|
let index;
|
|
69
65
|
while ((index = chunk.indexOf(bytes, Math.max(0, searchAt - chunkAt))) !== -1) {
|
|
@@ -109,4 +105,14 @@ async function* skipLast(source, count) {
|
|
|
109
105
|
tail = buffer.subarray(end);
|
|
110
106
|
}
|
|
111
107
|
}
|
|
108
|
+
function straddlingMatch(tail, chunk, chunkAt, bytes, searchAt) {
|
|
109
|
+
if (tail.length === 0)
|
|
110
|
+
return -1;
|
|
111
|
+
const probe = Buffer.concat([tail, chunk.subarray(0, bytes.length - 1)]);
|
|
112
|
+
const probeAt = chunkAt - tail.length;
|
|
113
|
+
const index = probe.indexOf(bytes, Math.max(0, searchAt - probeAt));
|
|
114
|
+
if (index === -1 || probeAt + index >= chunkAt)
|
|
115
|
+
return -1;
|
|
116
|
+
return probeAt + index;
|
|
117
|
+
}
|
|
112
118
|
//# sourceMappingURL=split-records.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"split-records.js","sourceRoot":"","sources":["../../src/helpers/split-records.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"split-records.js","sourceRoot":"","sources":["../../src/helpers/split-records.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@t4h.framework/fs",
|
|
3
|
-
"version": "0.0.0-experimental-
|
|
3
|
+
"version": "0.0.0-experimental-20261019200538",
|
|
4
4
|
"description": "File system module for the T4H Framework",
|
|
5
5
|
"homepage": "https://github.com/tech4humans-brasil/framework/tree/main/packages/fs",
|
|
6
6
|
"bugs": "https://github.com/tech4humans-brasil/framework/issues",
|
|
@@ -26,18 +26,18 @@
|
|
|
26
26
|
"scripts": {
|
|
27
27
|
"build": "tsc --project tsconfig.build.json",
|
|
28
28
|
"check-types": "tsc --noEmit",
|
|
29
|
-
"lint": "eslint .",
|
|
29
|
+
"lint": "eslint . --max-warnings 0",
|
|
30
30
|
"prepublishOnly": "yarn build",
|
|
31
31
|
"test": "vitest run",
|
|
32
32
|
"test:watch": "vitest"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@t4h.framework/core": "^0.0.0-experimental-
|
|
35
|
+
"@t4h.framework/core": "^0.0.0-experimental-20261019200538",
|
|
36
36
|
"typescript": "^5.9.3",
|
|
37
37
|
"vitest": "^4.0.18"
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
40
|
-
"@t4h.framework/core": "0.0.0-experimental-
|
|
40
|
+
"@t4h.framework/core": "0.0.0-experimental-20261019200538"
|
|
41
41
|
},
|
|
42
42
|
"packageManager": "yarn@4.12.0",
|
|
43
43
|
"engines": {
|
package/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2025 Tech for humans
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { Transform, type TransformCallback } from 'node:stream';
|
|
2
|
-
export type ByteRange = {
|
|
3
|
-
start: number;
|
|
4
|
-
end: number;
|
|
5
|
-
};
|
|
6
|
-
export type ByteSlice = ByteRange & {
|
|
7
|
-
content?: Buffer;
|
|
8
|
-
};
|
|
9
|
-
export type FileSplitDelimiter = {
|
|
10
|
-
value: string;
|
|
11
|
-
keep?: {
|
|
12
|
-
previous?: number;
|
|
13
|
-
next?: number;
|
|
14
|
-
};
|
|
15
|
-
};
|
|
16
|
-
export type ByteTrim = {
|
|
17
|
-
start?: number;
|
|
18
|
-
end?: number;
|
|
19
|
-
};
|
|
20
|
-
export type ByteDelimiterScannerOptions = {
|
|
21
|
-
delimiter: FileSplitDelimiter;
|
|
22
|
-
every?: number;
|
|
23
|
-
trim?: ByteTrim;
|
|
24
|
-
skipEmpty?: boolean;
|
|
25
|
-
encoding?: BufferEncoding;
|
|
26
|
-
inlineMaxBytes?: number;
|
|
27
|
-
};
|
|
28
|
-
export declare const DEFAULT_INLINE_MAX_BYTES: number;
|
|
29
|
-
export declare class ByteDelimiterScanner extends Transform {
|
|
30
|
-
readonly slices: ByteSlice[];
|
|
31
|
-
private readonly delimiter;
|
|
32
|
-
private readonly keepPrevious;
|
|
33
|
-
private readonly keepNext;
|
|
34
|
-
private readonly cutEvery;
|
|
35
|
-
private readonly trimStart;
|
|
36
|
-
private readonly trimEnd;
|
|
37
|
-
private readonly skipEmpty;
|
|
38
|
-
private readonly inlineMaxBytes;
|
|
39
|
-
private pending;
|
|
40
|
-
private pendingAt;
|
|
41
|
-
private searchAt;
|
|
42
|
-
private sliceStart;
|
|
43
|
-
private matches;
|
|
44
|
-
constructor({ delimiter, every, trim, skipEmpty, encoding, inlineMaxBytes, }: ByteDelimiterScannerOptions);
|
|
45
|
-
_transform(chunk: Buffer, _encoding: BufferEncoding, callback: TransformCallback): void;
|
|
46
|
-
_flush(callback: TransformCallback): void;
|
|
47
|
-
private scan;
|
|
48
|
-
private cut;
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=ByteDelimiterScanner.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ByteDelimiterScanner.d.ts","sourceRoot":"","sources":["../../src/helpers/ByteDelimiterScanner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAE/D,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG;IAClC,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE;QACL,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;CACF,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,SAAS,EAAE,kBAAkB,CAAA;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,eAAO,MAAM,wBAAwB,QAAY,CAAA;AAEjD,qBAAa,oBAAqB,SAAQ,SAAS;IACjD,SAAgB,MAAM,EAAE,SAAS,EAAE,CAAK;IAExC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IAEvC,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,SAAS,CAAI;IACrB,OAAO,CAAC,QAAQ,CAAI;IACpB,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,OAAO,CAAI;gBAEP,EACV,SAAS,EACT,KAAS,EACT,IAAI,EACJ,SAAgB,EAChB,QAAiB,EACjB,cAAyC,GAC1C,EAAE,2BAA2B;IAuCvB,UAAU,CACf,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,cAAc,EACzB,QAAQ,EAAE,iBAAiB;IAStB,MAAM,CAAC,QAAQ,EAAE,iBAAiB;IAyBzC,OAAO,CAAC,IAAI;IAyCZ,OAAO,CAAC,GAAG;CAkBZ"}
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import { Transform } from 'node:stream';
|
|
2
|
-
export const DEFAULT_INLINE_MAX_BYTES = 16 * 1024;
|
|
3
|
-
export class ByteDelimiterScanner extends Transform {
|
|
4
|
-
slices = [];
|
|
5
|
-
delimiter;
|
|
6
|
-
keepPrevious;
|
|
7
|
-
keepNext;
|
|
8
|
-
cutEvery;
|
|
9
|
-
trimStart;
|
|
10
|
-
trimEnd;
|
|
11
|
-
skipEmpty;
|
|
12
|
-
inlineMaxBytes;
|
|
13
|
-
pending = Buffer.alloc(0);
|
|
14
|
-
pendingAt = 0;
|
|
15
|
-
searchAt = 0;
|
|
16
|
-
sliceStart = 0;
|
|
17
|
-
matches = 0;
|
|
18
|
-
constructor({ delimiter, every = 1, trim, skipEmpty = true, encoding = 'utf8', inlineMaxBytes = DEFAULT_INLINE_MAX_BYTES, }) {
|
|
19
|
-
super();
|
|
20
|
-
this.delimiter = Buffer.from(delimiter.value, encoding);
|
|
21
|
-
this.keepPrevious = delimiter.keep?.previous ?? 0;
|
|
22
|
-
this.keepNext = delimiter.keep?.next ?? 0;
|
|
23
|
-
this.cutEvery = every;
|
|
24
|
-
this.trimStart = trim?.start ?? 0;
|
|
25
|
-
this.trimEnd = trim?.end ?? 0;
|
|
26
|
-
this.skipEmpty = skipEmpty;
|
|
27
|
-
this.inlineMaxBytes = inlineMaxBytes;
|
|
28
|
-
this.sliceStart = this.trimStart;
|
|
29
|
-
if (this.delimiter.length === 0)
|
|
30
|
-
throw new TypeError('Split delimiter must not be empty');
|
|
31
|
-
if (this.keepPrevious < 0 || this.keepNext < 0)
|
|
32
|
-
throw new TypeError('Split delimiter keep sizes must not be negative');
|
|
33
|
-
if (this.keepPrevious + this.keepNext > this.delimiter.length)
|
|
34
|
-
throw new TypeError('Split delimiter keep sizes must not exceed the delimiter length');
|
|
35
|
-
if (!Number.isInteger(every) || every < 1)
|
|
36
|
-
throw new TypeError('Split every must be a positive integer');
|
|
37
|
-
if (!Number.isInteger(this.trimStart) ||
|
|
38
|
-
!Number.isInteger(this.trimEnd) ||
|
|
39
|
-
this.trimStart < 0 ||
|
|
40
|
-
this.trimEnd < 0)
|
|
41
|
-
throw new TypeError('Split trim sizes must be non-negative integers');
|
|
42
|
-
if (!Number.isInteger(inlineMaxBytes) || inlineMaxBytes < 0)
|
|
43
|
-
throw new TypeError('Split inlineMaxBytes must be a non-negative integer');
|
|
44
|
-
}
|
|
45
|
-
_transform(chunk, _encoding, callback) {
|
|
46
|
-
this.scan(this.pending.length > 0 ? Buffer.concat([this.pending, chunk]) : chunk);
|
|
47
|
-
callback(null, chunk);
|
|
48
|
-
}
|
|
49
|
-
_flush(callback) {
|
|
50
|
-
const limit = this.pendingAt + this.pending.length - this.trimEnd;
|
|
51
|
-
while (true) {
|
|
52
|
-
const last = this.slices.at(-1);
|
|
53
|
-
if (!last || last.end <= limit)
|
|
54
|
-
break;
|
|
55
|
-
if (last.start >= limit) {
|
|
56
|
-
this.slices.pop();
|
|
57
|
-
continue;
|
|
58
|
-
}
|
|
59
|
-
last.end = limit;
|
|
60
|
-
if (last.content)
|
|
61
|
-
last.content = last.content.subarray(0, limit - last.start);
|
|
62
|
-
}
|
|
63
|
-
if (this.sliceStart <= limit)
|
|
64
|
-
this.cut(this.sliceStart, limit, this.pending);
|
|
65
|
-
callback();
|
|
66
|
-
}
|
|
67
|
-
scan(buffer) {
|
|
68
|
-
let searchFrom = Math.max(0, this.searchAt - this.pendingAt);
|
|
69
|
-
while (true) {
|
|
70
|
-
const index = buffer.indexOf(this.delimiter, searchFrom);
|
|
71
|
-
if (index === -1)
|
|
72
|
-
break;
|
|
73
|
-
const at = this.pendingAt + index;
|
|
74
|
-
searchFrom = index + this.delimiter.length;
|
|
75
|
-
if (at < this.trimStart)
|
|
76
|
-
continue;
|
|
77
|
-
this.matches += 1;
|
|
78
|
-
if (this.matches % this.cutEvery !== 0)
|
|
79
|
-
continue;
|
|
80
|
-
this.cut(this.sliceStart, at + this.keepPrevious, buffer);
|
|
81
|
-
this.sliceStart = at + this.delimiter.length - this.keepNext;
|
|
82
|
-
}
|
|
83
|
-
const tail = Math.max(searchFrom, buffer.length - (this.delimiter.length - 1));
|
|
84
|
-
this.searchAt = this.pendingAt + tail;
|
|
85
|
-
const openAt = this.sliceStart - this.pendingAt;
|
|
86
|
-
const isOpenSliceInline = openAt >= 0 && buffer.length - openAt <= this.inlineMaxBytes;
|
|
87
|
-
const keepFrom = isOpenSliceInline ? Math.min(tail, openAt) : tail;
|
|
88
|
-
this.pending = buffer.subarray(keepFrom);
|
|
89
|
-
this.pendingAt += keepFrom;
|
|
90
|
-
}
|
|
91
|
-
cut(start, end, buffer) {
|
|
92
|
-
if (this.skipEmpty && end <= start)
|
|
93
|
-
return;
|
|
94
|
-
const isInline = start >= this.pendingAt && end - start <= this.inlineMaxBytes;
|
|
95
|
-
if (!isInline) {
|
|
96
|
-
this.slices.push({ start, end });
|
|
97
|
-
return;
|
|
98
|
-
}
|
|
99
|
-
const content = Buffer.from(buffer.subarray(start - this.pendingAt, end - this.pendingAt));
|
|
100
|
-
this.slices.push({ start, end, content });
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
//# sourceMappingURL=ByteDelimiterScanner.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ByteDelimiterScanner.js","sourceRoot":"","sources":["../../src/helpers/ByteDelimiterScanner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { Transform, type TransformCallback } from 'node:stream';
|
|
2
|
-
import type { ByteTrim, FileSplitDelimiter } from './ByteDelimiterScanner.js';
|
|
3
|
-
export type ByteRecordFilterOptions = {
|
|
4
|
-
delimiter: FileSplitDelimiter;
|
|
5
|
-
accept: (record: Buffer) => boolean;
|
|
6
|
-
trim?: ByteTrim;
|
|
7
|
-
encoding?: BufferEncoding;
|
|
8
|
-
maxRecordBytes?: number;
|
|
9
|
-
};
|
|
10
|
-
export declare const DEFAULT_FILTER_MAX_RECORD_BYTES: number;
|
|
11
|
-
export declare class ByteRecordFilter extends Transform {
|
|
12
|
-
accepted: number;
|
|
13
|
-
private readonly delimiter;
|
|
14
|
-
private readonly joint;
|
|
15
|
-
private readonly keepPrevious;
|
|
16
|
-
private readonly keepNext;
|
|
17
|
-
private readonly trimStart;
|
|
18
|
-
private readonly trimEnd;
|
|
19
|
-
private readonly maxRecordBytes;
|
|
20
|
-
private readonly accept;
|
|
21
|
-
private pending;
|
|
22
|
-
private pendingAt;
|
|
23
|
-
private received;
|
|
24
|
-
private searchAt;
|
|
25
|
-
private recordStart;
|
|
26
|
-
constructor({ delimiter, accept, trim, encoding, maxRecordBytes, }: ByteRecordFilterOptions);
|
|
27
|
-
_transform(chunk: Buffer, _encoding: BufferEncoding, callback: TransformCallback): void;
|
|
28
|
-
_flush(callback: TransformCallback): void;
|
|
29
|
-
private scan;
|
|
30
|
-
private settle;
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=ByteRecordFilter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ByteRecordFilter.d.ts","sourceRoot":"","sources":["../../src/helpers/ByteRecordFilter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAE/D,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAE7E,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,EAAE,kBAAkB,CAAA;IAC7B,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAA;IACnC,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,eAAO,MAAM,+BAA+B,QAAc,CAAA;AAE1D,qBAAa,gBAAiB,SAAQ,SAAS;IACtC,QAAQ,SAAI;IAEnB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IAEpD,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,SAAS,CAAI;IACrB,OAAO,CAAC,QAAQ,CAAI;IACpB,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,WAAW,CAAQ;gBAEf,EACV,SAAS,EACT,MAAM,EACN,IAAI,EACJ,QAAiB,EACjB,cAAgD,GACjD,EAAE,uBAAuB;IAqBnB,UAAU,CACf,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,cAAc,EACzB,QAAQ,EAAE,iBAAiB;IAiBtB,MAAM,CAAC,QAAQ,EAAE,iBAAiB;IAYzC,OAAO,CAAC,IAAI;IA8CZ,OAAO,CAAC,MAAM;CAcf"}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { Transform } from 'node:stream';
|
|
2
|
-
export const DEFAULT_FILTER_MAX_RECORD_BYTES = 1024 * 1024;
|
|
3
|
-
export class ByteRecordFilter extends Transform {
|
|
4
|
-
accepted = 0;
|
|
5
|
-
delimiter;
|
|
6
|
-
joint;
|
|
7
|
-
keepPrevious;
|
|
8
|
-
keepNext;
|
|
9
|
-
trimStart;
|
|
10
|
-
trimEnd;
|
|
11
|
-
maxRecordBytes;
|
|
12
|
-
accept;
|
|
13
|
-
pending = Buffer.alloc(0);
|
|
14
|
-
pendingAt = 0;
|
|
15
|
-
received = 0;
|
|
16
|
-
searchAt;
|
|
17
|
-
recordStart;
|
|
18
|
-
constructor({ delimiter, accept, trim, encoding = 'utf8', maxRecordBytes = DEFAULT_FILTER_MAX_RECORD_BYTES, }) {
|
|
19
|
-
super();
|
|
20
|
-
this.delimiter = Buffer.from(delimiter.value, encoding);
|
|
21
|
-
this.keepPrevious = delimiter.keep?.previous ?? 0;
|
|
22
|
-
this.keepNext = delimiter.keep?.next ?? 0;
|
|
23
|
-
this.joint = this.delimiter.subarray(this.keepPrevious, this.delimiter.length - this.keepNext);
|
|
24
|
-
this.trimStart = trim?.start ?? 0;
|
|
25
|
-
this.trimEnd = trim?.end ?? 0;
|
|
26
|
-
this.maxRecordBytes = maxRecordBytes;
|
|
27
|
-
this.accept = accept;
|
|
28
|
-
this.searchAt = this.trimStart;
|
|
29
|
-
this.recordStart = this.trimStart;
|
|
30
|
-
if (this.delimiter.length === 0)
|
|
31
|
-
throw new TypeError('Split delimiter must not be empty');
|
|
32
|
-
}
|
|
33
|
-
_transform(chunk, _encoding, callback) {
|
|
34
|
-
this.pending =
|
|
35
|
-
this.pending.length > 0 ? Buffer.concat([this.pending, chunk]) : chunk;
|
|
36
|
-
this.received += chunk.length;
|
|
37
|
-
try {
|
|
38
|
-
const output = this.scan(this.received - this.trimEnd);
|
|
39
|
-
if (output.length > 0)
|
|
40
|
-
this.push(output);
|
|
41
|
-
callback();
|
|
42
|
-
}
|
|
43
|
-
catch (error) {
|
|
44
|
-
callback(error);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
_flush(callback) {
|
|
48
|
-
const limit = this.received - this.trimEnd;
|
|
49
|
-
const output = [];
|
|
50
|
-
if (this.recordStart <= limit)
|
|
51
|
-
this.settle(this.recordStart, limit, output);
|
|
52
|
-
if (output.length > 0)
|
|
53
|
-
this.push(Buffer.concat(output));
|
|
54
|
-
callback();
|
|
55
|
-
}
|
|
56
|
-
scan(limit) {
|
|
57
|
-
const output = [];
|
|
58
|
-
while (true) {
|
|
59
|
-
const index = this.pending.indexOf(this.delimiter, this.searchAt - this.pendingAt);
|
|
60
|
-
if (index === -1) {
|
|
61
|
-
this.searchAt = Math.max(this.searchAt, this.pendingAt + this.pending.length - (this.delimiter.length - 1));
|
|
62
|
-
break;
|
|
63
|
-
}
|
|
64
|
-
const at = this.pendingAt + index;
|
|
65
|
-
if (at + this.delimiter.length > limit)
|
|
66
|
-
break;
|
|
67
|
-
this.settle(this.recordStart, at + this.keepPrevious, output);
|
|
68
|
-
this.recordStart = at + this.delimiter.length - this.keepNext;
|
|
69
|
-
this.searchAt = at + this.delimiter.length;
|
|
70
|
-
}
|
|
71
|
-
const end = this.pendingAt + this.pending.length;
|
|
72
|
-
const keepFrom = Math.min(Math.max(Math.min(this.recordStart, this.searchAt), this.pendingAt), end);
|
|
73
|
-
this.pending = this.pending.subarray(keepFrom - this.pendingAt);
|
|
74
|
-
this.pendingAt = keepFrom;
|
|
75
|
-
if (end - this.recordStart > this.maxRecordBytes)
|
|
76
|
-
throw new RangeError(`Split where can only test records up to ${this.maxRecordBytes} bytes, found a record starting at byte ${this.recordStart} without a delimiter`);
|
|
77
|
-
return Buffer.concat(output);
|
|
78
|
-
}
|
|
79
|
-
settle(start, end, output) {
|
|
80
|
-
const record = this.pending.subarray(start - this.pendingAt, end - this.pendingAt);
|
|
81
|
-
if (!this.accept(record))
|
|
82
|
-
return;
|
|
83
|
-
if (this.accepted > 0)
|
|
84
|
-
output.push(this.joint);
|
|
85
|
-
output.push(record);
|
|
86
|
-
this.accepted += 1;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
//# sourceMappingURL=ByteRecordFilter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ByteRecordFilter.js","sourceRoot":"","sources":["../../src/helpers/ByteRecordFilter.ts"],"names":[],"mappings":"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"}
|