tar-xz 3.2.0 → 4.0.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.
@@ -1 +1 @@
1
- {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/browser/extract.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAGnB,MAAM,aAAa,CAAC;AA4ErB;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,WAAW,GAAG,UAAU,EACjC,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,aAAa,EAAE,CAAC,CAoC1B"}
1
+ {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/browser/extract.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAGnB,MAAM,aAAa,CAAC;AAgErB;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,WAAW,GAAG,UAAU,EACjC,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,aAAa,EAAE,CAAC,CAoC1B"}
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import { unxzAsync } from 'node-liblzma';
5
5
  import { applyPaxAttributes, BLOCK_SIZE, calculatePadding, isEmptyBlock, parseHeader, parsePaxData, } from '../tar/index.js';
6
+ import { stripPath } from '../tar/utils.js';
6
7
  import { TarEntryType, } from '../types.js';
7
8
  /**
8
9
  * Parse TAR data into entries
@@ -53,16 +54,6 @@ function parseTar(data) {
53
54
  }
54
55
  return entries;
55
56
  }
56
- /**
57
- * Strip leading path components from a path
58
- */
59
- function stripPath(filePath, strip) {
60
- if (strip <= 0) {
61
- return filePath;
62
- }
63
- const parts = filePath.split('/');
64
- return parts.slice(strip).join('/');
65
- }
66
57
  /**
67
58
  * Extract a tar.xz archive in browser
68
59
  *
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/browser/extract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/browser/extract.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/node/extract.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgBH,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,QAAQ,EAAgB,MAAM,aAAa,CAAC;AAwL/E;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAuF1E;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAA;CAAO,GACtE,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAehD"}
1
+ {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/node/extract.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,QAAQ,EAAgB,MAAM,aAAa,CAAC;AAqH/E;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAuF1E;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAA;CAAO,GACtE,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAehD"}
@@ -6,22 +6,26 @@ import * as path from 'node:path';
6
6
  import { Writable } from 'node:stream';
7
7
  import { pipeline } from 'node:stream/promises';
8
8
  import { createUnxz } from 'node-liblzma';
9
- import { applyPaxAttributes, BLOCK_SIZE, calculatePadding, isEmptyBlock, parseHeader, parsePaxData, } from '../tar/index.js';
9
+ import { calculatePadding } from '../tar/index.js';
10
+ import { stripPath } from '../tar/utils.js';
10
11
  import { TarEntryType } from '../types.js';
12
+ import { parseNextHeader } from './tar-parser.js';
11
13
  /**
12
14
  * Transform stream that unpacks TAR format
13
15
  */
14
16
  class TarUnpack extends Writable {
15
- buffer = Buffer.alloc(0);
17
+ state = {
18
+ buffer: Buffer.alloc(0),
19
+ paxAttrs: null,
20
+ emptyBlockCount: 0,
21
+ };
16
22
  currentEntry = null;
17
23
  bytesRemaining = 0;
18
24
  paddingRemaining = 0;
19
25
  contentChunks = [];
20
- paxAttrs = null;
21
- emptyBlockCount = 0;
22
26
  entries = [];
23
27
  _write(chunk, _encoding, callback) {
24
- this.buffer = Buffer.concat([this.buffer, chunk]);
28
+ this.state.buffer = Buffer.concat([this.state.buffer, chunk]);
25
29
  try {
26
30
  this.processBuffer();
27
31
  callback();
@@ -30,110 +34,63 @@ class TarUnpack extends Writable {
30
34
  callback(error);
31
35
  }
32
36
  }
37
+ /** Skip padding bytes that follow a file's content blocks. */
38
+ skipPadding() {
39
+ if (this.paddingRemaining <= 0) {
40
+ return false;
41
+ }
42
+ const skip = Math.min(this.paddingRemaining, this.state.buffer.length);
43
+ this.state.buffer = this.state.buffer.subarray(skip);
44
+ this.paddingRemaining -= skip;
45
+ return true;
46
+ }
47
+ /** Read file content bytes into `contentChunks`; finalize entry when done. */
48
+ readContent() {
49
+ if (this.bytesRemaining <= 0 || !this.currentEntry) {
50
+ return false;
51
+ }
52
+ const readSize = Math.min(this.bytesRemaining, this.state.buffer.length);
53
+ this.contentChunks.push(this.state.buffer.subarray(0, readSize));
54
+ this.state.buffer = this.state.buffer.subarray(readSize);
55
+ this.bytesRemaining -= readSize;
56
+ if (this.bytesRemaining === 0) {
57
+ const content = Buffer.concat(this.contentChunks);
58
+ this.entries.push({ ...this.currentEntry, content });
59
+ this.paddingRemaining = calculatePadding(this.currentEntry.size);
60
+ this.currentEntry = null;
61
+ this.contentChunks = [];
62
+ }
63
+ return true;
64
+ }
65
+ /** Push a no-content entry (directory, symlink, hardlink, empty file). */
66
+ pushEmptyEntry(entry) {
67
+ this.entries.push({ ...entry, content: Buffer.alloc(0) });
68
+ }
69
+ /** Dispatch a parsed entry: push immediately or prepare for content read. */
70
+ handleEntry(entry) {
71
+ if (entry.type === TarEntryType.DIRECTORY ||
72
+ entry.type === TarEntryType.SYMLINK ||
73
+ entry.type === TarEntryType.HARDLINK ||
74
+ entry.size === 0) {
75
+ this.pushEmptyEntry(entry);
76
+ return;
77
+ }
78
+ this.currentEntry = entry;
79
+ this.bytesRemaining = entry.size;
80
+ this.contentChunks = [];
81
+ }
33
82
  processBuffer() {
34
- while (this.buffer.length > 0) {
35
- // Handle padding
36
- if (this.paddingRemaining > 0) {
37
- const skip = Math.min(this.paddingRemaining, this.buffer.length);
38
- this.buffer = this.buffer.subarray(skip);
39
- this.paddingRemaining -= skip;
83
+ while (this.state.buffer.length > 0) {
84
+ if (this.skipPadding())
40
85
  continue;
41
- }
42
- // Handle file content
43
- if (this.bytesRemaining > 0 && this.currentEntry) {
44
- const readSize = Math.min(this.bytesRemaining, this.buffer.length);
45
- this.contentChunks.push(this.buffer.subarray(0, readSize));
46
- this.buffer = this.buffer.subarray(readSize);
47
- this.bytesRemaining -= readSize;
48
- // Entry complete
49
- if (this.bytesRemaining === 0) {
50
- const content = Buffer.concat(this.contentChunks);
51
- this.entries.push({ ...this.currentEntry, content });
52
- // Calculate padding
53
- this.paddingRemaining = calculatePadding(this.currentEntry.size);
54
- this.currentEntry = null;
55
- this.contentChunks = [];
56
- }
86
+ if (this.readContent())
57
87
  continue;
58
- }
59
- // Need a full block for header
60
- /* v8 ignore start - streaming edge case: chunk boundary splits a 512-byte block */
61
- if (this.buffer.length < BLOCK_SIZE) {
88
+ const result = parseNextHeader(this.state);
89
+ if (result.action === 'need-more-data' || result.action === 'end-of-archive')
62
90
  break;
63
- }
64
- /* v8 ignore stop */
65
- const headerBlock = this.buffer.subarray(0, BLOCK_SIZE);
66
- this.buffer = this.buffer.subarray(BLOCK_SIZE);
67
- // Check for end-of-archive
68
- if (isEmptyBlock(headerBlock)) {
69
- this.emptyBlockCount++;
70
- if (this.emptyBlockCount >= 2) {
71
- // End of archive
72
- break;
73
- }
74
- continue;
75
- }
76
- this.emptyBlockCount = 0;
77
- // Parse header
78
- let entry = parseHeader(headerBlock);
79
- /* v8 ignore start - dead code: empty blocks filtered above, parseHeader only returns null for empty */
80
- if (!entry) {
81
- continue;
82
- }
83
- /* v8 ignore stop */
84
- // Handle PAX headers
85
- if (entry.type === TarEntryType.PAX_HEADER) {
86
- // Read PAX data
87
- const paxSize = entry.size;
88
- const paxPadding = calculatePadding(paxSize);
89
- const totalNeeded = paxSize + paxPadding;
90
- /* v8 ignore start - streaming edge case: PAX data split across XZ chunks */
91
- if (this.buffer.length < totalNeeded) {
92
- this.buffer = Buffer.concat([headerBlock, this.buffer]);
93
- break;
94
- }
95
- /* v8 ignore stop */
96
- const paxData = this.buffer.subarray(0, paxSize);
97
- this.buffer = this.buffer.subarray(paxSize + paxPadding);
98
- this.paxAttrs = parsePaxData(paxData);
99
- continue;
100
- }
101
- if (entry.type === TarEntryType.PAX_GLOBAL) {
102
- // Skip global PAX headers (we don't support them yet)
103
- const skipSize = entry.size + calculatePadding(entry.size);
104
- /* v8 ignore start - streaming edge case: global PAX data split across XZ chunks */
105
- if (this.buffer.length < skipSize) {
106
- this.buffer = Buffer.concat([headerBlock, this.buffer]);
107
- break;
108
- }
109
- /* v8 ignore stop */
110
- this.buffer = this.buffer.subarray(skipSize);
91
+ if (result.action === 'pax-consumed')
111
92
  continue;
112
- }
113
- // Apply PAX attributes if present
114
- if (this.paxAttrs) {
115
- entry = applyPaxAttributes(entry, this.paxAttrs);
116
- this.paxAttrs = null;
117
- }
118
- // Handle directories (no content)
119
- if (entry.type === TarEntryType.DIRECTORY) {
120
- this.entries.push({ ...entry, content: Buffer.alloc(0) });
121
- continue;
122
- }
123
- // Handle symlinks (no content)
124
- if (entry.type === TarEntryType.SYMLINK || entry.type === TarEntryType.HARDLINK) {
125
- this.entries.push({ ...entry, content: Buffer.alloc(0) });
126
- continue;
127
- }
128
- // Regular file - prepare to read content
129
- if (entry.size > 0) {
130
- this.currentEntry = entry;
131
- this.bytesRemaining = entry.size;
132
- this.contentChunks = [];
133
- }
134
- else {
135
- this.entries.push({ ...entry, content: Buffer.alloc(0) });
136
- }
93
+ this.handleEntry(result.entry);
137
94
  }
138
95
  }
139
96
  _final(callback) {
@@ -145,16 +102,6 @@ class TarUnpack extends Writable {
145
102
  }
146
103
  }
147
104
  }
148
- /**
149
- * Strip leading path components from a path
150
- */
151
- function stripPath(filePath, strip) {
152
- if (strip <= 0) {
153
- return filePath;
154
- }
155
- const parts = filePath.split('/');
156
- return parts.slice(strip).join('/');
157
- }
158
105
  /**
159
106
  * Validate that a path doesn't escape the target directory (path traversal protection)
160
107
  * @throws Error if path traversal is detected
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/node/extract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/node/extract.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAsC,YAAY,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EAA0B,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAE1E;;GAEG;AACH,MAAM,SAAU,SAAQ,QAAQ;IACb,KAAK,GAAsB;QAC1C,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACvB,QAAQ,EAAE,IAAI;QACd,eAAe,EAAE,CAAC;KACnB,CAAC;IACM,YAAY,GAAoB,IAAI,CAAC;IACrC,cAAc,GAAG,CAAC,CAAC;IACnB,gBAAgB,GAAG,CAAC,CAAC;IACrB,aAAa,GAAa,EAAE,CAAC;IAE9B,OAAO,GAA0C,EAAE,CAAC;IAE3D,MAAM,CAAC,KAAa,EAAE,SAAyB,EAAE,QAAwC;QACvF,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAE9D,IAAI,CAAC;YACH,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,QAAQ,EAAE,CAAC;QACb,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,KAAc,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,8DAA8D;IACtD,WAAW;QACjB,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8EAA8E;IACtE,WAAW;QACjB,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACnD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzD,IAAI,CAAC,cAAc,IAAI,QAAQ,CAAC;QAEhC,IAAI,IAAI,CAAC,cAAc,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAClD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC;YACrD,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACjE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0EAA0E;IAClE,cAAc,CAAC,KAAe;QACpC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,6EAA6E;IACrE,WAAW,CAAC,KAAe;QACjC,IACE,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,SAAS;YACrC,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,OAAO;YACnC,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,QAAQ;YACpC,KAAK,CAAC,IAAI,KAAK,CAAC,EAChB,CAAC;YACD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAC3B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IAC1B,CAAC;IAEO,aAAa;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,WAAW,EAAE;gBAAE,SAAS;YACjC,IAAI,IAAI,CAAC,WAAW,EAAE;gBAAE,SAAS;YAEjC,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,MAAM,CAAC,MAAM,KAAK,gBAAgB,IAAI,MAAM,CAAC,MAAM,KAAK,gBAAgB;gBAAE,MAAM;YACpF,IAAI,MAAM,CAAC,MAAM,KAAK,cAAc;gBAAE,SAAS;YAC/C,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,QAAwC;QAC7C,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;YAC5B,QAAQ,CAAC,IAAI,KAAK,CAAC,8BAA8B,IAAI,CAAC,cAAc,kBAAkB,CAAC,CAAC,CAAC;QAC3F,CAAC;aAAM,CAAC;YACN,QAAQ,EAAE,CAAC;QACb,CAAC;IACH,CAAC;CACF;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,QAAgB,EAAE,GAAW;IACjD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAEtC,sEAAsE;IACtE,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,YAAY,KAAK,WAAW,EAAE,CAAC;QACrF,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,YAAY,GAAG,EAAE,CAAC,CAAC;IACzE,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAuB;IACnD,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,EAAE,aAAa,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IAExF,6CAA6C;IAC7C,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,UAAU,EAAE,CAAC;IAChC,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;IAElC,eAAe;IACf,MAAM,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAEnD,gBAAgB;IAChB,MAAM,gBAAgB,GAAe,EAAE,CAAC;IAExC,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACtC,cAAc;QACd,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,SAAS;QACX,CAAC;QAED,eAAe;QACf,MAAM,cAAc,GAAG,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QACxD,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;YACtC,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAE9C,+DAA+D;QAC/D,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAE5B,iCAAiC;QACjC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5D,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,SAAS,EAAE,CAAC;YAC1C,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC;YAC/C,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC5B,CAAC;YAAC,MAAM,CAAC;gBACP,0BAA0B;YAC5B,CAAC;YACD,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC7C,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,QAAQ,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC5B,CAAC;YAAC,MAAM,CAAC;gBACP,0BAA0B;YAC5B,CAAC;YACD,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,eAAe;YACf,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9C,CAAC;QAED,kBAAkB;QAClB,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,2BAA2B;QAC7B,CAAC;QAED,iDAAiD;QACjD,wDAAwD;QACxD,IAAI,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;YACjD,CAAC;YAAC,MAAM,CAAC;gBACP,0BAA0B;YAC5B,CAAC;QACH,CAAC;QACD,oBAAoB;QAEpB,wBAAwB;QACxB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;YAC3C,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,qBAAqB;QACvB,CAAC;QAED,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAY,EACZ,UAAqE,EAAE;IAEvE,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAEtC,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,UAAU,EAAE,CAAC;IAChC,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;IAElC,MAAM,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAEnD,OAAO,SAAS,CAAC,OAAO;SACrB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACf,GAAG,KAAK;QACR,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;KACnC,CAAC,CAAC;SACF,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Node.js TAR listing with XZ decompression
3
3
  */
4
- import { type ListOptions, type TarEntry } from '../types.js';
4
+ import type { ListOptions, TarEntry } from '../types.js';
5
5
  /**
6
6
  * List contents of a tar.xz archive
7
7
  *
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/node/list.ts"],"names":[],"mappings":"AAAA;;GAEG;AAeH,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAgB,MAAM,aAAa,CAAC;AA4G5E;;;;;;;;;;;;;GAaG;AACH,wBAAsB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAUpE"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/node/list.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AA8DzD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAUpE"}
package/lib/node/list.js CHANGED
@@ -5,19 +5,21 @@ import { createReadStream } from 'node:fs';
5
5
  import { Writable } from 'node:stream';
6
6
  import { pipeline } from 'node:stream/promises';
7
7
  import { createUnxz } from 'node-liblzma';
8
- import { applyPaxAttributes, BLOCK_SIZE, calculatePadding, isEmptyBlock, parseHeader, parsePaxData, } from '../tar/index.js';
9
- import { TarEntryType } from '../types.js';
8
+ import { calculatePadding } from '../tar/index.js';
9
+ import { parseNextHeader } from './tar-parser.js';
10
10
  /**
11
11
  * Writable stream that lists TAR entries without extracting content
12
12
  */
13
13
  class TarList extends Writable {
14
- buffer = Buffer.alloc(0);
14
+ state = {
15
+ buffer: Buffer.alloc(0),
16
+ paxAttrs: null,
17
+ emptyBlockCount: 0,
18
+ };
15
19
  bytesToSkip = 0;
16
- paxAttrs = null;
17
- emptyBlockCount = 0;
18
20
  entries = [];
19
21
  _write(chunk, _encoding, callback) {
20
- this.buffer = Buffer.concat([this.buffer, chunk]);
22
+ this.state.buffer = Buffer.concat([this.state.buffer, chunk]);
21
23
  try {
22
24
  this.processBuffer();
23
25
  callback();
@@ -26,70 +28,33 @@ class TarList extends Writable {
26
28
  callback(error);
27
29
  }
28
30
  }
31
+ /** Skip content and padding bytes for the current entry. */
32
+ skipBytes() {
33
+ if (this.bytesToSkip <= 0) {
34
+ return false;
35
+ }
36
+ const skip = Math.min(this.bytesToSkip, this.state.buffer.length);
37
+ this.state.buffer = this.state.buffer.subarray(skip);
38
+ this.bytesToSkip -= skip;
39
+ return true;
40
+ }
41
+ /** Record entry and schedule content skip. */
42
+ handleEntry(entry) {
43
+ this.entries.push(entry);
44
+ if (entry.size > 0) {
45
+ this.bytesToSkip = entry.size + calculatePadding(entry.size);
46
+ }
47
+ }
29
48
  processBuffer() {
30
- while (this.buffer.length > 0) {
31
- // Skip content and padding
32
- if (this.bytesToSkip > 0) {
33
- const skip = Math.min(this.bytesToSkip, this.buffer.length);
34
- this.buffer = this.buffer.subarray(skip);
35
- this.bytesToSkip -= skip;
49
+ while (this.state.buffer.length > 0) {
50
+ if (this.skipBytes())
36
51
  continue;
37
- }
38
- // Need a full block for header
39
- /* v8 ignore start - streaming edge case: chunk boundary splits a 512-byte block */
40
- if (this.buffer.length < BLOCK_SIZE) {
52
+ const result = parseNextHeader(this.state);
53
+ if (result.action === 'need-more-data' || result.action === 'end-of-archive')
41
54
  break;
42
- }
43
- /* v8 ignore stop */
44
- const headerBlock = this.buffer.subarray(0, BLOCK_SIZE);
45
- this.buffer = this.buffer.subarray(BLOCK_SIZE);
46
- // Check for end-of-archive
47
- if (isEmptyBlock(headerBlock)) {
48
- this.emptyBlockCount++;
49
- if (this.emptyBlockCount >= 2) {
50
- break;
51
- }
52
- continue;
53
- }
54
- this.emptyBlockCount = 0;
55
- // Parse header
56
- let entry = parseHeader(headerBlock);
57
- /* v8 ignore start - dead code: empty blocks filtered above, parseHeader only returns null for empty */
58
- if (!entry) {
59
- continue;
60
- }
61
- /* v8 ignore stop */
62
- // Handle PAX headers
63
- if (entry.type === TarEntryType.PAX_HEADER) {
64
- const paxSize = entry.size;
65
- const paxPadding = calculatePadding(paxSize);
66
- const totalNeeded = paxSize + paxPadding;
67
- /* v8 ignore start - streaming edge case: PAX data split across XZ chunks */
68
- if (this.buffer.length < totalNeeded) {
69
- this.buffer = Buffer.concat([headerBlock, this.buffer]);
70
- break;
71
- }
72
- /* v8 ignore stop */
73
- const paxData = this.buffer.subarray(0, paxSize);
74
- this.buffer = this.buffer.subarray(paxSize + paxPadding);
75
- this.paxAttrs = parsePaxData(paxData);
76
- continue;
77
- }
78
- if (entry.type === TarEntryType.PAX_GLOBAL) {
79
- this.bytesToSkip = entry.size + calculatePadding(entry.size);
55
+ if (result.action === 'pax-consumed')
80
56
  continue;
81
- }
82
- // Apply PAX attributes if present
83
- if (this.paxAttrs) {
84
- entry = applyPaxAttributes(entry, this.paxAttrs);
85
- this.paxAttrs = null;
86
- }
87
- // Add entry to list
88
- this.entries.push(entry);
89
- // Skip content
90
- if (entry.size > 0) {
91
- this.bytesToSkip = entry.size + calculatePadding(entry.size);
92
- }
57
+ this.handleEntry(result.entry);
93
58
  }
94
59
  }
95
60
  _final(callback) {
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/node/list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/node/list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Shared TAR header parsing helpers for extract and list streams.
3
+ *
4
+ * Both TarUnpack (extract) and TarList (list) share the same header-parsing
5
+ * state machine: read 512-byte blocks, detect end-of-archive, parse headers,
6
+ * consume PAX / PAX_GLOBAL extensions, and apply PAX attributes. The only
7
+ * difference is what they do with the resulting entry (extract content vs skip).
8
+ *
9
+ * These helpers keep that shared logic in one place while letting each stream
10
+ * own its own entry-processing strategy.
11
+ */
12
+ import type { PaxAttributes } from '../tar/pax.js';
13
+ import { type TarEntry } from '../types.js';
14
+ /** Mutable state shared by the header-parsing helpers. */
15
+ export interface HeaderParserState {
16
+ buffer: Buffer;
17
+ paxAttrs: PaxAttributes | null;
18
+ emptyBlockCount: number;
19
+ }
20
+ /** The buffer didn't contain a full 512-byte block yet. */
21
+ export interface NeedMoreData {
22
+ readonly action: 'need-more-data';
23
+ }
24
+ /** Two consecutive empty blocks — end of archive. */
25
+ export interface EndOfArchive {
26
+ readonly action: 'end-of-archive';
27
+ }
28
+ /** A PAX or global-PAX header was consumed (caller should `continue`). */
29
+ export interface PaxConsumed {
30
+ readonly action: 'pax-consumed';
31
+ }
32
+ /**
33
+ * A real entry (file / directory / symlink / …) was parsed, with PAX
34
+ * attributes already applied.
35
+ */
36
+ export interface EntryParsed {
37
+ readonly action: 'entry';
38
+ readonly entry: TarEntry;
39
+ }
40
+ export type HeaderParseResult = NeedMoreData | EndOfArchive | PaxConsumed | EntryParsed;
41
+ /**
42
+ * Try to parse the next TAR header from `state.buffer`.
43
+ *
44
+ * On success the buffer is advanced past the consumed block(s).
45
+ * The caller loops until it gets `need-more-data` or `end-of-archive`.
46
+ *
47
+ * Handles:
48
+ * - incomplete block detection
49
+ * - end-of-archive (two empty blocks)
50
+ * - header parsing
51
+ * - PAX_HEADER consumption (reads data blocks, updates `paxAttrs`)
52
+ * - PAX_GLOBAL consumption (skips data blocks)
53
+ * - applying accumulated PAX attributes to the entry
54
+ */
55
+ export declare function parseNextHeader(state: HeaderParserState): HeaderParseResult;
56
+ //# sourceMappingURL=tar-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tar-parser.d.ts","sourceRoot":"","sources":["../../src/node/tar-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,KAAK,QAAQ,EAAgB,MAAM,aAAa,CAAC;AAM1D,0DAA0D;AAC1D,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;CACzB;AAMD,2DAA2D;AAC3D,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;CACnC;AAED,qDAAqD;AACrD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;CACnC;AAED,0EAA0E;AAC1E,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;CAC1B;AAED,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,YAAY,GAAG,WAAW,GAAG,WAAW,CAAC;AAMxF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,iBAAiB,GAAG,iBAAiB,CAkD3E"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Shared TAR header parsing helpers for extract and list streams.
3
+ *
4
+ * Both TarUnpack (extract) and TarList (list) share the same header-parsing
5
+ * state machine: read 512-byte blocks, detect end-of-archive, parse headers,
6
+ * consume PAX / PAX_GLOBAL extensions, and apply PAX attributes. The only
7
+ * difference is what they do with the resulting entry (extract content vs skip).
8
+ *
9
+ * These helpers keep that shared logic in one place while letting each stream
10
+ * own its own entry-processing strategy.
11
+ */
12
+ import { applyPaxAttributes, BLOCK_SIZE, calculatePadding, isEmptyBlock, parseHeader, parsePaxData, } from '../tar/index.js';
13
+ import { TarEntryType } from '../types.js';
14
+ // ---------------------------------------------------------------------------
15
+ // Core helper
16
+ // ---------------------------------------------------------------------------
17
+ /**
18
+ * Try to parse the next TAR header from `state.buffer`.
19
+ *
20
+ * On success the buffer is advanced past the consumed block(s).
21
+ * The caller loops until it gets `need-more-data` or `end-of-archive`.
22
+ *
23
+ * Handles:
24
+ * - incomplete block detection
25
+ * - end-of-archive (two empty blocks)
26
+ * - header parsing
27
+ * - PAX_HEADER consumption (reads data blocks, updates `paxAttrs`)
28
+ * - PAX_GLOBAL consumption (skips data blocks)
29
+ * - applying accumulated PAX attributes to the entry
30
+ */
31
+ export function parseNextHeader(state) {
32
+ // Need a full block for the header
33
+ /* v8 ignore start - streaming edge case: chunk boundary splits a 512-byte block */
34
+ if (state.buffer.length < BLOCK_SIZE) {
35
+ return { action: 'need-more-data' };
36
+ }
37
+ /* v8 ignore stop */
38
+ const headerBlock = state.buffer.subarray(0, BLOCK_SIZE);
39
+ // End-of-archive detection (two consecutive empty blocks)
40
+ if (isEmptyBlock(headerBlock)) {
41
+ state.buffer = state.buffer.subarray(BLOCK_SIZE);
42
+ state.emptyBlockCount++;
43
+ if (state.emptyBlockCount >= 2) {
44
+ return { action: 'end-of-archive' };
45
+ }
46
+ return { action: 'pax-consumed' }; // empty block consumed, keep looping
47
+ }
48
+ // Consume the header block
49
+ state.buffer = state.buffer.subarray(BLOCK_SIZE);
50
+ state.emptyBlockCount = 0;
51
+ // Parse header
52
+ const raw = parseHeader(headerBlock);
53
+ /* v8 ignore start - dead code: empty blocks filtered above, parseHeader only returns null for empty */
54
+ if (!raw) {
55
+ return { action: 'pax-consumed' };
56
+ }
57
+ /* v8 ignore stop */
58
+ // PAX extended header — read data blocks and store attributes
59
+ if (raw.type === TarEntryType.PAX_HEADER) {
60
+ return consumePaxHeader(state, headerBlock, raw);
61
+ }
62
+ // PAX global header — skip data blocks
63
+ if (raw.type === TarEntryType.PAX_GLOBAL) {
64
+ return consumePaxGlobal(state, headerBlock, raw);
65
+ }
66
+ // Regular entry — apply pending PAX attributes
67
+ let entry = raw;
68
+ if (state.paxAttrs) {
69
+ entry = applyPaxAttributes(entry, state.paxAttrs);
70
+ state.paxAttrs = null;
71
+ }
72
+ return { action: 'entry', entry };
73
+ }
74
+ // ---------------------------------------------------------------------------
75
+ // Internal helpers
76
+ // ---------------------------------------------------------------------------
77
+ function consumePaxHeader(state, headerBlock, entry) {
78
+ const paxSize = entry.size;
79
+ const paxPadding = calculatePadding(paxSize);
80
+ const totalNeeded = paxSize + paxPadding;
81
+ /* v8 ignore start - streaming edge case: PAX data split across XZ chunks */
82
+ if (state.buffer.length < totalNeeded) {
83
+ // Put the header block back — we'll retry when more data arrives
84
+ state.buffer = Buffer.concat([headerBlock, state.buffer]);
85
+ return { action: 'need-more-data' };
86
+ }
87
+ /* v8 ignore stop */
88
+ const paxData = state.buffer.subarray(0, paxSize);
89
+ state.buffer = state.buffer.subarray(paxSize + paxPadding);
90
+ state.paxAttrs = parsePaxData(paxData);
91
+ return { action: 'pax-consumed' };
92
+ }
93
+ function consumePaxGlobal(state, headerBlock, entry) {
94
+ const skipSize = entry.size + calculatePadding(entry.size);
95
+ /* v8 ignore start - streaming edge case: global PAX data split across XZ chunks */
96
+ if (state.buffer.length < skipSize) {
97
+ state.buffer = Buffer.concat([headerBlock, state.buffer]);
98
+ return { action: 'need-more-data' };
99
+ }
100
+ /* v8 ignore stop */
101
+ state.buffer = state.buffer.subarray(skipSize);
102
+ return { action: 'pax-consumed' };
103
+ }
104
+ //# sourceMappingURL=tar-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tar-parser.js","sourceRoot":"","sources":["../../src/node/tar-parser.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"checksum.js","sourceRoot":"","sources":["../../src/tar/checksum.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checksum.js","sourceRoot":"","sources":["../../src/tar/checksum.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,6CAA6C;AAC7C,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC;AAEnC,+BAA+B;AAC/B,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AAEjC;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAkB;IAClD,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,CAAC,MAAM,gBAAgB,CAAC,CAAC;IAC/E,CAAC;IAED,IAAI,GAAG,GAAG,CAAC,CAAC;IAEZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,6DAA6D;QAC7D,IAAI,CAAC,IAAI,eAAe,IAAI,CAAC,GAAG,eAAe,GAAG,eAAe,EAAE,CAAC;YAClE,GAAG,IAAI,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,GAAG,IAAI,MAAM,CAAC,CAAC,CAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,MAAkB;IAC/C,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC;IAEpE,OAAO,UAAU,KAAK,MAAM,CAAC;AAC/B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,MAAkB;IAC9C,yCAAyC;IACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,CAAC,eAAe,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;IACrC,CAAC;IAED,qBAAqB;IACrB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAE3C,+CAA+C;IAC/C,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,CAAC,eAAe,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,CAAC,eAAe,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,kBAAkB;IACtD,MAAM,CAAC,eAAe,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,QAAQ;AAC9C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,MAAkB,EAAE,MAAc,EAAE,MAAc;IAC3E,IAAI,GAAG,GAAG,EAAE,CAAC;IAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAChC,wBAAwB;QACxB,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAChC,MAAM;QACR,CAAC;QACD,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,IAAK,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACtC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -31,7 +31,6 @@ export declare function isEmptyBlock(block: Uint8Array): boolean;
31
31
  /**
32
32
  * Check if header has valid USTAR magic
33
33
  */
34
- export declare function isUstarHeader(header: Uint8Array): boolean;
35
34
  /**
36
35
  * Parse TAR header into entry metadata
37
36
  *
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/tar/format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE/D,OAAO,EAAE,iBAAiB,EAAc,cAAc,EAAiB,MAAM,eAAe,CAAC;AAE7F,qBAAqB;AACrB,eAAO,MAAM,UAAU,MAAM,CAAC;AA4F9B;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAOvD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAGzD;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CA8C/D;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,UAAU,CAkErE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,UAAU,CAE/C;AAED,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/tar/format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE/D,OAAO,EAAE,iBAAiB,EAAc,cAAc,EAAiB,MAAM,eAAe,CAAC;AAE7F,qBAAqB;AACrB,eAAO,MAAM,UAAU,MAAM,CAAC;AA4F9B;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAOvD;AAED;;GAEG;AAEH;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CA8C/D;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,UAAU,CAkErE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,UAAU,CAE/C;AAED,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,CAAC"}
package/lib/tar/format.js CHANGED
@@ -117,10 +117,6 @@ export function isEmptyBlock(block) {
117
117
  /**
118
118
  * Check if header has valid USTAR magic
119
119
  */
120
- export function isUstarHeader(header) {
121
- const magic = parseString(header, OFFSETS.magic, LENGTHS.magic);
122
- return magic === 'ustar' || magic === 'ustar\0';
123
- }
124
120
  /**
125
121
  * Parse TAR header into entry metadata
126
122
  *
@@ -1 +1 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/tar/format.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/tar/format.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,8 @@
2
2
  * TAR format utilities
3
3
  */
4
4
  export type { CreateHeaderOptions } from './format.js';
5
- export { BLOCK_SIZE, calculateChecksum, calculatePadding, createEndOfArchive, createHeader, isEmptyBlock, isUstarHeader, parseHeader, verifyChecksum, } from './format.js';
5
+ export { BLOCK_SIZE, calculateChecksum, calculatePadding, createEndOfArchive, createHeader, isEmptyBlock, parseHeader, verifyChecksum, } from './format.js';
6
6
  export type { PaxAttributes } from './pax.js';
7
7
  export { applyPaxAttributes, createPaxData, createPaxHeaderBlocks, needsPaxHeaders, parsePaxData, } from './pax.js';
8
+ export { stripPath } from './utils.js';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tar/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,WAAW,EACX,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,qBAAqB,EACrB,eAAe,EACf,YAAY,GACb,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tar/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,qBAAqB,EACrB,eAAe,EACf,YAAY,GACb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC"}
package/lib/tar/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * TAR format utilities
3
3
  */
4
- export { BLOCK_SIZE, calculateChecksum, calculatePadding, createEndOfArchive, createHeader, isEmptyBlock, isUstarHeader, parseHeader, verifyChecksum, } from './format.js';
4
+ export { BLOCK_SIZE, calculateChecksum, calculatePadding, createEndOfArchive, createHeader, isEmptyBlock, parseHeader, verifyChecksum, } from './format.js';
5
5
  export { applyPaxAttributes, createPaxData, createPaxHeaderBlocks, needsPaxHeaders, parsePaxData, } from './pax.js';
6
+ export { stripPath } from './utils.js';
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tar/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,WAAW,EACX,cAAc,GACf,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,qBAAqB,EACrB,eAAe,EACf,YAAY,GACb,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tar/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,cAAc,GACf,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,qBAAqB,EACrB,eAAe,EACf,YAAY,GACb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Strip leading path components from a path
3
+ */
4
+ export declare function stripPath(filePath: string, strip: number): string;
5
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/tar/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAOjE"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Strip leading path components from a path
3
+ */
4
+ export function stripPath(filePath, strip) {
5
+ if (strip <= 0) {
6
+ return filePath;
7
+ }
8
+ const parts = filePath.split('/');
9
+ return parts.slice(strip).join('/');
10
+ }
11
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/tar/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,QAAgB,EAAE,KAAa;IACvD,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACf,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tar-xz",
3
- "version": "3.2.0",
3
+ "version": "4.0.0",
4
4
  "description": "Create and extract tar.xz archives with streaming support for Node.js and buffer-based API for browsers",
5
5
  "type": "module",
6
6
  "main": "./lib/index.js",
@@ -17,11 +17,11 @@
17
17
  }
18
18
  },
19
19
  "dependencies": {
20
- "node-liblzma": "^3.2.0"
20
+ "node-liblzma": "^4.0.0"
21
21
  },
22
22
  "devDependencies": {
23
- "@biomejs/biome": "^2.4.0",
24
- "@types/node": "^25.2.3",
23
+ "@biomejs/biome": "^2.4.6",
24
+ "@types/node": "^25.3.5",
25
25
  "@vitest/coverage-v8": "^4.0.18",
26
26
  "typescript": "^5.9.3",
27
27
  "vite": "^7.3.1",