tar-xz 6.1.0 → 6.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -2
- package/lib/browser/extract.d.ts.map +1 -1
- package/lib/browser/extract.js +21 -6
- package/lib/browser/extract.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/node/extract.d.ts.map +1 -1
- package/lib/node/extract.js +155 -70
- package/lib/node/extract.js.map +1 -1
- package/lib/node/file.d.ts.map +1 -1
- package/lib/node/file.js +313 -186
- package/lib/node/file.js.map +1 -1
- package/lib/node/tar-parser.d.ts.map +1 -1
- package/lib/node/tar-parser.js +8 -1
- package/lib/node/tar-parser.js.map +1 -1
- package/lib/node/xz-helpers.d.ts.map +1 -1
- package/lib/node/xz-helpers.js +2 -0
- package/lib/node/xz-helpers.js.map +1 -1
- package/lib/tar/checksum.d.ts.map +1 -1
- package/lib/tar/checksum.js +8 -1
- package/lib/tar/checksum.js.map +1 -1
- package/lib/tar/format.d.ts +0 -6
- package/lib/tar/format.d.ts.map +1 -1
- package/lib/tar/format.js +36 -17
- package/lib/tar/format.js.map +1 -1
- package/lib/types.d.ts +22 -0
- package/lib/types.d.ts.map +1 -1
- package/package.json +11 -3
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,27 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [6.1.1] - 2026-05-06
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
- enrich package metadata (description + keywords) for 3 packages (#141) ([5f0bb5b](https://github.com/oorabona/node-liblzma/commit/5f0bb5b))
|
|
9
|
+
- document TarEntryTypeValue with JSDoc + expose in index (#137) (tar-xz) ([fe56124](https://github.com/oorabona/node-liblzma/commit/fe56124))
|
|
10
|
+
- add tar-xz API and nxz CLI to GitHub Pages (#133) (pages) ([2c22298](https://github.com/oorabona/node-liblzma/commit/2c22298))
|
|
11
|
+
- close 7 final coverage partials to reach 100% (#131) (tar-xz) ([0830fac](https://github.com/oorabona/node-liblzma/commit/0830fac))
|
|
12
|
+
- close 7 coverage partials with surgical v8 ignores (#130) (tar-xz) ([de86c0c](https://github.com/oorabona/node-liblzma/commit/de86c0c))
|
|
13
|
+
- close extract.ts coverage partials with v8 ignores (#129) (tar-xz) ([3abb041](https://github.com/oorabona/node-liblzma/commit/3abb041))
|
|
14
|
+
- close file.ts coverage partials with tests + v8 ignores (#128) (tar-xz) ([8e51020](https://github.com/oorabona/node-liblzma/commit/8e51020))
|
|
15
|
+
- cover three trivial file.ts branches (mtime=0, FILE type, mode=0) (#126) (tar-xz) ([5c496f8](https://github.com/oorabona/node-liblzma/commit/5c496f8))
|
|
16
|
+
- close remaining coverage gaps to 100% lines (#125) (tar-xz) ([7189f8e](https://github.com/oorabona/node-liblzma/commit/7189f8e))
|
|
17
|
+
- cover toAsyncIterable across Node and Browser variants (#124) (tar-xz) ([8c0f994](https://github.com/oorabona/node-liblzma/commit/8c0f994))
|
|
18
|
+
- wrap defensive-unreachable branches with v8 ignore start/stop (#123) (tar-xz) ([add1724](https://github.com/oorabona/node-liblzma/commit/add1724))
|
|
19
|
+
- remove dead biome suppression in tar-xz node-api spec (#119) (lint) ([49c7f14](https://github.com/oorabona/node-liblzma/commit/49c7f14))
|
|
20
|
+
- biome warnings sweep + cognitive-complexity extract-method (63→1) (#115) ([ad2e18f](https://github.com/oorabona/node-liblzma/commit/ad2e18f))
|
|
21
|
+
|
|
22
|
+
### Fixed
|
|
23
|
+
- use absolute URLs in typedoc navigationLinks (#136) (docs) ([cd1185c](https://github.com/oorabona/node-liblzma/commit/cd1185c))
|
|
24
|
+
- include CHANGELOG.md and SECURITY.md in published tarball (tar-xz) ([408e955](https://github.com/oorabona/node-liblzma/commit/408e955))
|
|
25
|
+
|
|
5
26
|
## [6.1.0] - 2026-04-29
|
|
6
27
|
|
|
7
28
|
### ⚠️ BREAKING CHANGES
|
|
@@ -131,6 +152,8 @@ See [README.md § Migration v5 → v6](./README.md#migration-v5--v6) for full co
|
|
|
131
152
|
|
|
132
153
|
- Workspace package versions synchronized to npm registry (3.2.0 → 5.0.0). Internal infrastructure updates (CI workflows, lockfile maintenance, anti-flake test cleanup). No API changes.
|
|
133
154
|
|
|
134
|
-
[Unreleased]: https://github.com/oorabona/node-liblzma/compare/v6.1.
|
|
155
|
+
[Unreleased]: https://github.com/oorabona/node-liblzma/compare/v6.1.1...HEAD
|
|
135
156
|
[v6.1.0]: https://github.com/oorabona/node-liblzma/releases/tag/v6.1.0
|
|
136
|
-
[6.1.0]: https://github.com/oorabona/node-liblzma/releases/tag/v6.1.0
|
|
157
|
+
[6.1.0]: https://github.com/oorabona/node-liblzma/releases/tag/v6.1.0
|
|
158
|
+
[v6.1.1]: https://github.com/oorabona/node-liblzma/releases/tag/v6.1.1
|
|
159
|
+
[6.1.1]: https://github.com/oorabona/node-liblzma/releases/tag/v6.1.1
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/browser/extract.ts"],"names":[],"mappings":"AAAA;;GAEG;AAcH,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EAEd,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/browser/extract.ts"],"names":[],"mappings":"AAAA;;GAEG;AAcH,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EAEd,MAAM,aAAa,CAAC;AAwFrB;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAuB,OAAO,CAC5B,KAAK,EAAE,QAAQ,EACf,OAAO,GAAE,cAAmB,GAC3B,aAAa,CAAC,gBAAgB,CAAC,CAqCjC"}
|
package/lib/browser/extract.js
CHANGED
|
@@ -9,6 +9,24 @@ import { TarEntryType, } from '../types.js';
|
|
|
9
9
|
/**
|
|
10
10
|
* Parse TAR data into entries
|
|
11
11
|
*/
|
|
12
|
+
/**
|
|
13
|
+
* Handle a PAX_HEADER block: parse its attributes and advance the offset.
|
|
14
|
+
* Returns the updated offset and the parsed PAX attributes.
|
|
15
|
+
*/
|
|
16
|
+
function parsePaxHeaderBlock(data, offset, size) {
|
|
17
|
+
const paxData = data.subarray(offset, offset + size);
|
|
18
|
+
const newOffset = offset + size + calculatePadding(size);
|
|
19
|
+
return { offset: newOffset, paxAttrs: parsePaxData(paxData) };
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Extract entry content bytes and advance the offset past the content + padding.
|
|
23
|
+
* Returns the updated offset and the content Uint8Array.
|
|
24
|
+
*/
|
|
25
|
+
function extractEntryContent(data, offset, size) {
|
|
26
|
+
const contentData = size > 0 ? data.subarray(offset, offset + size) : new Uint8Array(0);
|
|
27
|
+
const newOffset = offset + size + calculatePadding(size);
|
|
28
|
+
return { offset: newOffset, contentData };
|
|
29
|
+
}
|
|
12
30
|
function parseTar(data) {
|
|
13
31
|
const entries = [];
|
|
14
32
|
let offset = 0;
|
|
@@ -33,10 +51,7 @@ function parseTar(data) {
|
|
|
33
51
|
}
|
|
34
52
|
// Handle PAX headers
|
|
35
53
|
if (entry.type === TarEntryType.PAX_HEADER) {
|
|
36
|
-
|
|
37
|
-
const paxData = data.subarray(offset, offset + paxSize);
|
|
38
|
-
offset += paxSize + calculatePadding(paxSize);
|
|
39
|
-
paxAttrs = parsePaxData(paxData);
|
|
54
|
+
({ offset, paxAttrs } = parsePaxHeaderBlock(data, offset, entry.size));
|
|
40
55
|
continue;
|
|
41
56
|
}
|
|
42
57
|
if (entry.type === TarEntryType.PAX_GLOBAL) {
|
|
@@ -49,8 +64,8 @@ function parseTar(data) {
|
|
|
49
64
|
paxAttrs = null;
|
|
50
65
|
}
|
|
51
66
|
// Extract content
|
|
52
|
-
|
|
53
|
-
offset
|
|
67
|
+
let contentData;
|
|
68
|
+
({ offset, contentData } = extractEntryContent(data, offset, entry.size));
|
|
54
69
|
entries.push({ ...entry, data: contentData });
|
|
55
70
|
}
|
|
56
71
|
return entries;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/browser/extract.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EACL,kBAAkB,EAClB,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,YAAY,GACb,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAC3E,OAAO,EAKL,YAAY,GACb,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,SAAS,QAAQ,CAAC,IAAgB;IAChC,MAAM,OAAO,GAA2C,EAAE,CAAC;IAC3D,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,QAAQ,GAAyB,IAAI,CAAC;IAC1C,IAAI,eAAe,GAAG,CAAC,CAAC;IAExB,OAAO,MAAM,GAAG,UAAU,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC;QAC/D,MAAM,IAAI,UAAU,CAAC;QAErB,2BAA2B;QAC3B,IAAI,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC;YAC9B,eAAe,EAAE,CAAC;YAClB,IAAI,eAAe,IAAI,CAAC,EAAE,CAAC;gBACzB,MAAM;YACR,CAAC;YACD,SAAS;QACX,CAAC;QAED,eAAe,GAAG,CAAC,CAAC;QAEpB,eAAe;QACf,IAAI,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,SAAS;QACX,CAAC;QAED,qBAAqB;QACrB,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,UAAU,EAAE,CAAC;YAC3C,
|
|
1
|
+
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/browser/extract.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -10,5 +10,5 @@ export { create, extract, list } from './node/index.js';
|
|
|
10
10
|
export type { TarInputNode } from './node/index.js';
|
|
11
11
|
export type { CreateHeaderOptions, PaxAttributes } from './tar/index.js';
|
|
12
12
|
export { applyPaxAttributes, BLOCK_SIZE, calculatePadding, createEndOfArchive, createHeader, createPaxData, createPaxHeaderBlocks, needsPaxHeaders, parseHeader, parsePaxData, } from './tar/index.js';
|
|
13
|
-
export { type CreateOptions, type ExtractOptions, type TarEntry, TarEntryType, type TarEntryWithData, type TarInput, type TarSourceFile, } from './types.js';
|
|
13
|
+
export { type CreateOptions, type ExtractOptions, type TarEntry, TarEntryType, type TarEntryTypeValue, type TarEntryWithData, type TarInput, type TarSourceFile, } from './types.js';
|
|
14
14
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACxD,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGzE,OAAO,EACL,kBAAkB,EAClB,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,qBAAqB,EACrB,eAAe,EACf,WAAW,EACX,YAAY,GACb,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,YAAY,EACZ,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EACb,KAAK,aAAa,GACnB,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACxD,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGzE,OAAO,EACL,kBAAkB,EAClB,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,qBAAqB,EACrB,eAAe,EACf,WAAW,EACX,YAAY,GACb,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EACb,KAAK,aAAa,GACnB,MAAM,YAAY,CAAC"}
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,wBAAwB;AACxB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAIxD,uDAAuD;AACvD,OAAO,EACL,kBAAkB,EAClB,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,qBAAqB,EACrB,eAAe,EACf,WAAW,EACX,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,kBAAkB;AAClB,OAAO,EAIL,YAAY,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,wBAAwB;AACxB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAIxD,uDAAuD;AACvD,OAAO,EACL,kBAAkB,EAClB,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,qBAAqB,EACrB,eAAe,EACf,WAAW,EACX,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,kBAAkB;AAClB,OAAO,EAIL,YAAY,GAKb,MAAM,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/node/extract.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAY,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/node/extract.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAY,gBAAgB,EAAE,MAAM,aAAa,CAAC;AA8P9E;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAuB,OAAO,CAC5B,KAAK,EAAE,YAAY,EACnB,OAAO,GAAE,cAAmB,GAC3B,cAAc,CAAC,gBAAgB,CAAC,CA4ElC;AAED;;GAEG"}
|
package/lib/node/extract.js
CHANGED
|
@@ -62,6 +62,7 @@ function makeTarEntryWithData(entry, dataPull) {
|
|
|
62
62
|
const buf = new Uint8Array(entry.size);
|
|
63
63
|
let offset = 0;
|
|
64
64
|
for await (const c of dataGen) {
|
|
65
|
+
/* v8 ignore start: defensive overflow guard — parseTar clips chunks at bytesRemaining (declared entry.size), so this branch can only fire if a custom dataPull generator over-delivers; unreachable via the public extract() API */
|
|
65
66
|
if (offset + c.byteLength > entry.size) {
|
|
66
67
|
// Malformed archive: chunk would write past the declared entry size.
|
|
67
68
|
// Truncate at entry.size to avoid out-of-bounds writes and throw so
|
|
@@ -69,6 +70,7 @@ function makeTarEntryWithData(entry, dataPull) {
|
|
|
69
70
|
// convention used in parseTar (corrupt archive detected at parse level).
|
|
70
71
|
throw Object.assign(new Error(`tar: entry "${entry.name}" declared size ${entry.size} but received more bytes (offset ${offset} + chunk ${c.byteLength} = ${offset + c.byteLength})`), { code: 'TAR_PARSER_INVARIANT' });
|
|
71
72
|
}
|
|
73
|
+
/* v8 ignore stop */
|
|
72
74
|
buf.set(c, offset);
|
|
73
75
|
offset += c.byteLength;
|
|
74
76
|
}
|
|
@@ -81,6 +83,143 @@ function makeTarEntryWithData(entry, dataPull) {
|
|
|
81
83
|
},
|
|
82
84
|
};
|
|
83
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* Pull the next event from `parser`, respecting any pending lookahead.
|
|
88
|
+
*
|
|
89
|
+
* Extracted from `extract()` to reduce cognitive complexity. Reads from
|
|
90
|
+
* `lookaheadRef.value` first; clears it on consumption.
|
|
91
|
+
*/
|
|
92
|
+
async function nextParseEvent(parser, lookaheadRef) {
|
|
93
|
+
if (lookaheadRef.value !== null) {
|
|
94
|
+
const ev = lookaheadRef.value;
|
|
95
|
+
lookaheadRef.value = null;
|
|
96
|
+
return { value: ev, done: false };
|
|
97
|
+
}
|
|
98
|
+
return parser.next();
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Drain all remaining 'chunk' events for the current entry from `parser`.
|
|
102
|
+
*
|
|
103
|
+
* The terminating 'entry' or 'end' event is stored in `lookaheadRef.value`.
|
|
104
|
+
* Extracted from `extract()` to reduce cognitive complexity; behavior is
|
|
105
|
+
* byte-identical.
|
|
106
|
+
*/
|
|
107
|
+
async function drainEntryChunks(parser, lookaheadRef) {
|
|
108
|
+
while (true) {
|
|
109
|
+
const result = await parser.next();
|
|
110
|
+
/* v8 ignore start: parseTar always emits 'end' before returning; this done:true branch is unreachable via the public API */
|
|
111
|
+
if (result.done)
|
|
112
|
+
return;
|
|
113
|
+
/* v8 ignore stop */
|
|
114
|
+
if (result.value.kind !== 'chunk') {
|
|
115
|
+
lookaheadRef.value = result.value;
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Drain remaining chunks for an entry that the consumer did not fully read,
|
|
122
|
+
* swallowing non-fatal errors per the D-2 policy.
|
|
123
|
+
*
|
|
124
|
+
* TAR_PARSER_INVARIANT errors always re-throw (D-5) — they represent a corrupt
|
|
125
|
+
* archive or internal invariant violation, not a recoverable I/O error.
|
|
126
|
+
* All other errors are swallowed: they arise from decoding/IO on data the
|
|
127
|
+
* consumer intentionally skipped, so propagating them would be surprising.
|
|
128
|
+
*
|
|
129
|
+
* Extracted from `extract()` to reduce cognitive complexity; behavior is
|
|
130
|
+
* byte-identical to the inline drain-with-swallow block.
|
|
131
|
+
*/
|
|
132
|
+
async function drainSkippedEntry(parser, lookaheadRef) {
|
|
133
|
+
try {
|
|
134
|
+
await drainEntryChunks(parser, lookaheadRef);
|
|
135
|
+
}
|
|
136
|
+
catch (err) {
|
|
137
|
+
// Decode/IO error during skipped data — swallow per D-2.
|
|
138
|
+
// TAR_PARSER_INVARIANT always re-throws per D-5.
|
|
139
|
+
/* v8 ignore start: race-window — drainEntryChunks() would need to throw TAR_PARSER_INVARIANT during skipped-entry drain, which requires a corrupt parser state that is unreachable via public API */
|
|
140
|
+
if (err.code === 'TAR_PARSER_INVARIANT') {
|
|
141
|
+
throw err;
|
|
142
|
+
}
|
|
143
|
+
/* v8 ignore stop */
|
|
144
|
+
// Swallow other errors from skipped data per D-2.
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Build a per-entry data-pull factory that reads 'chunk' events from `parser`.
|
|
149
|
+
*
|
|
150
|
+
* Returns a `make()` function (same contract as the inline `makeDataGen` it
|
|
151
|
+
* replaces) that, when called, returns a single-use `AsyncGenerator<Uint8Array>`
|
|
152
|
+
* backed by the outer `parseTar` generator. When chunks are exhausted, the
|
|
153
|
+
* terminating 'entry' or 'end' event is stored in `lookaheadRef.value`.
|
|
154
|
+
* A `dataGenInFlight` closure flag guards against concurrent iteration of the
|
|
155
|
+
* same entry's data (D-5 / TAR_PARSER_INVARIANT contract).
|
|
156
|
+
*
|
|
157
|
+
* Extracted from `extract()` to reduce cognitive complexity; behavior is
|
|
158
|
+
* byte-identical. The outer generator is suspended at `yield entryWithData`
|
|
159
|
+
* while the consumer iterates the returned generator — natural backpressure.
|
|
160
|
+
*/
|
|
161
|
+
function createEntryDataPull(parser, lookaheadRef) {
|
|
162
|
+
let dataGenInFlight = false;
|
|
163
|
+
return function makeDataGen() {
|
|
164
|
+
/* v8 ignore start: internal state machine invariant — makeTarEntryWithData() calls dataPull() exactly once per entry and never exposes makeDataGen to consumers; concurrent-iteration path is unreachable via public API */
|
|
165
|
+
if (dataGenInFlight) {
|
|
166
|
+
// D-5 invariant violation: triggered if the same entry's data generator
|
|
167
|
+
// is created twice (`makeDataGen()` called more than once for one
|
|
168
|
+
// entry). The current `makeTarEntryWithData` design calls `dataPull()`
|
|
169
|
+
// exactly once per entry and never exposes `makeDataGen` to consumers,
|
|
170
|
+
// so this branch is effectively unreachable in production. The
|
|
171
|
+
// `code: 'TAR_PARSER_INVARIANT'` attribute matches the convention used
|
|
172
|
+
// by other invariant errors in this module (e.g. stray-chunk in extract,
|
|
173
|
+
// size-mismatch in bytes()) and keeps downstream filters consistent.
|
|
174
|
+
const err = new Error('concurrent entry.data iteration is not supported');
|
|
175
|
+
err.code = 'TAR_PARSER_INVARIANT';
|
|
176
|
+
throw err;
|
|
177
|
+
/* v8 ignore stop */
|
|
178
|
+
}
|
|
179
|
+
dataGenInFlight = true;
|
|
180
|
+
return (async function* () {
|
|
181
|
+
try {
|
|
182
|
+
while (true) {
|
|
183
|
+
const r = await parser.next();
|
|
184
|
+
/* v8 ignore start: parseTar always emits 'end' before returning; this done:true branch is unreachable via the public API */
|
|
185
|
+
if (r.done)
|
|
186
|
+
return;
|
|
187
|
+
/* v8 ignore stop */
|
|
188
|
+
if (r.value.kind === 'chunk') {
|
|
189
|
+
yield r.value.data;
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
// 'entry' or 'end' — store for outer loop.
|
|
193
|
+
lookaheadRef.value = r.value;
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
finally {
|
|
199
|
+
dataGenInFlight = false;
|
|
200
|
+
}
|
|
201
|
+
})();
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Apply the user-supplied `filter` predicate, if any, to decide if an entry
|
|
206
|
+
* should be skipped. Returns true when filter is provided AND the predicate
|
|
207
|
+
* returns ANY falsy value (false / 0 / '' / null / undefined). This preserves
|
|
208
|
+
* the historical `filter && !filter(entry)` semantics — a stricter `=== false`
|
|
209
|
+
* check would treat non-false falsies as "include", which diverges from both
|
|
210
|
+
* the documented contract and the browser-side implementation.
|
|
211
|
+
*
|
|
212
|
+
* Extracted from `extract()` to keep the outer loop under biome's cognitive
|
|
213
|
+
* complexity threshold.
|
|
214
|
+
*/
|
|
215
|
+
function isExcludedByFilter(entry, filter) {
|
|
216
|
+
// `typeof === 'function'` over `!== undefined` is mandatory for null-safe
|
|
217
|
+
// semantics. The original `filter && !filter(entry)` short-circuited on ANY
|
|
218
|
+
// falsy filter (false / 0 / '' / null / undefined). A `null !== undefined`
|
|
219
|
+
// check would be true → call filter(null) → runtime crash. The `typeof`
|
|
220
|
+
// gate matches the browser-side `extract()` and the documented contract.
|
|
221
|
+
return typeof filter === 'function' && !filter(entry);
|
|
222
|
+
}
|
|
84
223
|
/**
|
|
85
224
|
* Extract a tar.xz archive.
|
|
86
225
|
*
|
|
@@ -98,7 +237,6 @@ function makeTarEntryWithData(entry, dataPull) {
|
|
|
98
237
|
* }
|
|
99
238
|
* ```
|
|
100
239
|
*/
|
|
101
|
-
// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: streaming generator with strip/filter/drain logic — complexity is intrinsic
|
|
102
240
|
export async function* extract(input, options = {}) {
|
|
103
241
|
const { strip = 0, filter } = options;
|
|
104
242
|
const xzStream = streamXz(input);
|
|
@@ -106,105 +244,52 @@ export async function* extract(input, options = {}) {
|
|
|
106
244
|
// Lookahead: an event pulled from parseTar that hasn't been processed yet.
|
|
107
245
|
// This allows the data-generator to consume chunks and then "return" the
|
|
108
246
|
// terminating event (entry/end) for the outer loop to process.
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
if (lookahead !== null) {
|
|
113
|
-
const ev = lookahead;
|
|
114
|
-
lookahead = null;
|
|
115
|
-
return { value: ev, done: false };
|
|
116
|
-
}
|
|
117
|
-
return parser.next();
|
|
118
|
-
}
|
|
119
|
-
/** Drain all remaining 'chunk' events for the current entry from parseTar.
|
|
120
|
-
* The terminating 'entry' or 'end' event is stored in `lookahead`. */
|
|
121
|
-
async function drainChunks() {
|
|
122
|
-
while (true) {
|
|
123
|
-
const result = await parser.next();
|
|
124
|
-
if (result.done)
|
|
125
|
-
return;
|
|
126
|
-
if (result.value.kind !== 'chunk') {
|
|
127
|
-
lookahead = result.value;
|
|
128
|
-
return;
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
}
|
|
247
|
+
// Wrapped in a ref-object so top-level helpers can read/write it without
|
|
248
|
+
// capturing `extract`'s local scope (which would add nesting complexity).
|
|
249
|
+
const lookaheadRef = { value: null };
|
|
132
250
|
try {
|
|
133
251
|
while (true) {
|
|
134
|
-
const result = await
|
|
252
|
+
const result = await nextParseEvent(parser, lookaheadRef);
|
|
253
|
+
/* v8 ignore start: parseTar always emits 'end' before returning; this done:true branch is unreachable via the public API */
|
|
135
254
|
if (result.done)
|
|
136
255
|
break;
|
|
256
|
+
/* v8 ignore stop */
|
|
137
257
|
const ev = result.value;
|
|
138
258
|
if (ev.kind === 'end')
|
|
139
259
|
break;
|
|
260
|
+
/* v8 ignore start: state machine invariant — parseTar never emits 'chunk' before 'entry'; this branch guards against a hypothetical parser bug that cannot be triggered via the public API */
|
|
140
261
|
if (ev.kind === 'chunk') {
|
|
141
262
|
// Stray chunk at outer-loop level is a parser invariant violation (D-5).
|
|
142
263
|
const err = new Error('parser invariant: chunk emitted before entry');
|
|
143
264
|
err.code = 'TAR_PARSER_INVARIANT';
|
|
144
265
|
throw err;
|
|
266
|
+
/* v8 ignore stop */
|
|
145
267
|
}
|
|
146
268
|
// ev.kind === 'entry'
|
|
147
269
|
const rawEntry = ev.entry;
|
|
148
270
|
const strippedName = stripPath(rawEntry.name, strip);
|
|
149
271
|
if (!strippedName) {
|
|
150
|
-
await
|
|
272
|
+
await drainEntryChunks(parser, lookaheadRef);
|
|
151
273
|
continue;
|
|
152
274
|
}
|
|
153
275
|
const strippedEntry = { ...rawEntry, name: strippedName };
|
|
154
|
-
if (
|
|
155
|
-
await
|
|
276
|
+
if (isExcludedByFilter(strippedEntry, filter)) {
|
|
277
|
+
await drainEntryChunks(parser, lookaheadRef);
|
|
156
278
|
continue;
|
|
157
279
|
}
|
|
158
280
|
// Build a data generator that pulls 'chunk' events from the parseTar stream.
|
|
159
|
-
// When chunks are exhausted it stores the next 'entry'/'end' in
|
|
281
|
+
// When chunks are exhausted it stores the next 'entry'/'end' in lookaheadRef.
|
|
160
282
|
// The outer generator is suspended at `yield entryWithData` while the consumer
|
|
161
283
|
// iterates this — natural backpressure.
|
|
162
|
-
|
|
163
|
-
function makeDataGen() {
|
|
164
|
-
if (dataGenInFlight) {
|
|
165
|
-
throw new Error('concurrent entry.data iteration is not supported');
|
|
166
|
-
}
|
|
167
|
-
dataGenInFlight = true;
|
|
168
|
-
return (async function* () {
|
|
169
|
-
try {
|
|
170
|
-
while (true) {
|
|
171
|
-
const r = await parser.next();
|
|
172
|
-
if (r.done)
|
|
173
|
-
return;
|
|
174
|
-
if (r.value.kind === 'chunk') {
|
|
175
|
-
yield r.value.data;
|
|
176
|
-
}
|
|
177
|
-
else {
|
|
178
|
-
// 'entry' or 'end' — store for outer loop.
|
|
179
|
-
lookahead = r.value;
|
|
180
|
-
return;
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
finally {
|
|
185
|
-
dataGenInFlight = false;
|
|
186
|
-
}
|
|
187
|
-
})();
|
|
188
|
-
}
|
|
284
|
+
const makeDataGen = createEntryDataPull(parser, lookaheadRef);
|
|
189
285
|
const entryWithData = makeTarEntryWithData(strippedEntry, makeDataGen);
|
|
190
286
|
yield entryWithData;
|
|
191
287
|
// After the consumer advances past this entry, drain any remaining chunks
|
|
192
288
|
// that the consumer did not read (S-08 auto-drain, Case A per §12.4).
|
|
193
289
|
// If the data generator was fully consumed, lookahead is already set.
|
|
194
|
-
// If not, drain now.
|
|
195
|
-
if (
|
|
196
|
-
|
|
197
|
-
try {
|
|
198
|
-
await drainChunks();
|
|
199
|
-
}
|
|
200
|
-
catch (err) {
|
|
201
|
-
// Decode/IO error during skipped data — swallow per D-2.
|
|
202
|
-
// TAR_PARSER_INVARIANT always re-throws per D-5.
|
|
203
|
-
if (err.code === 'TAR_PARSER_INVARIANT') {
|
|
204
|
-
throw err;
|
|
205
|
-
}
|
|
206
|
-
// Swallow other errors from skipped data per D-2.
|
|
207
|
-
}
|
|
290
|
+
// If not, drain now (swallowing non-fatal errors per D-2, re-throwing D-5).
|
|
291
|
+
if (lookaheadRef.value === null) {
|
|
292
|
+
await drainSkippedEntry(parser, lookaheadRef);
|
|
208
293
|
}
|
|
209
294
|
}
|
|
210
295
|
}
|
package/lib/node/extract.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/node/extract.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EAAmB,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C;;;GAGG;AAEH;;;;;;;;;;;;;GAaG;AACH,SAAS,oBAAoB,CAC3B,KAAe,EACf,QAA0C;IAE1C,IAAI,WAAW,GAAsB,IAAI,CAAC;IAC1C,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,MAAM,OAAO,GAAG,QAAQ,EAAE,CAAC,CAAC,uBAAuB;IAEnD,qEAAqE;IACrE,uEAAuE;IACvE,4EAA4E;IAC5E,4DAA4D;IAC5D,qDAAqD;IACrD,uEAAuE;IACvE,gFAAgF;IAChF,+EAA+E;IAC/E,mFAAmF;IACnF,MAAM,WAAW,GAA8B;QAC7C,CAAC,MAAM,CAAC,aAAa,CAAC;YACpB,eAAe,GAAG,IAAI,CAAC;YACvB,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC;IAEF,OAAO;QACL,GAAG,KAAK;QACR,IAAI,EAAE,WAAW;QACjB,KAAK,CAAC,KAAK;YACT,IAAI,WAAW,KAAK,IAAI;gBAAE,OAAO,WAAW,CAAC;YAC7C,IAAI,eAAe,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CACb,6GAA6G,CAC9G,CAAC;YACJ,CAAC;YACD,eAAe,GAAG,IAAI,CAAC;YAEvB,0EAA0E;YAC1E,4EAA4E;YAC5E,0EAA0E;YAC1E,gEAAgE;YAChE,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACrB,WAAW,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;gBAChC,OAAO,WAAW,CAAC;YACrB,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBAC9B,IAAI,MAAM,GAAG,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;oBACvC,qEAAqE;oBACrE,oEAAoE;oBACpE,0EAA0E;oBAC1E,yEAAyE;oBACzE,MAAM,MAAM,CAAC,MAAM,CACjB,IAAI,KAAK,CACP,eAAe,KAAK,CAAC,IAAI,mBAAmB,KAAK,CAAC,IAAI,oCAAoC,MAAM,YAAY,CAAC,CAAC,UAAU,MAAM,MAAM,GAAG,CAAC,CAAC,UAAU,GAAG,CACvJ,EACD,EAAE,IAAI,EAAE,sBAAsB,EAAE,CACjC,CAAC;gBACJ,CAAC;gBACD,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;gBACnB,MAAM,IAAI,CAAC,CAAC,UAAU,CAAC;YACzB,CAAC;YACD,WAAW,GAAG,GAAG,CAAC;YAClB,OAAO,WAAW,CAAC;QACrB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,QAAiB;YAC1B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,QAAQ,CACrE,CAAC,QAAQ,IAAI,MAAM,CAAmB,CACvC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/node/extract.ts"],"names":[],"mappings":"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"}
|
package/lib/node/file.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/node/file.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/node/file.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAoB,MAAM,aAAa,CAAC;AA4a7F;;;;;;;;;;;;GAYG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,cAAc,GAAG;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAC9C,OAAO,CAAC,IAAI,CAAC,CA4Df;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAOvE"}
|