| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 | | 'use strict' |  | // map types from key to human-friendly name |  | exports.name = new Map([ |  |   ['0', 'File'], |  |   // same as File |  |   ['', 'OldFile'], |  |   ['1', 'Link'], |  |   ['2', 'SymbolicLink'], |  |   // Devices and FIFOs aren't fully supported |  |   // they are parsed, but skipped when unpacking |  |   ['3', 'CharacterDevice'], |  |   ['4', 'BlockDevice'], |  |   ['5', 'Directory'], |  |   ['6', 'FIFO'], |  |   // same as File |  |   ['7', 'ContiguousFile'], |  |   // pax headers |  |   ['g', 'GlobalExtendedHeader'], |  |   ['x', 'ExtendedHeader'], |  |   // vendor-specific stuff |  |   // skip |  |   ['A', 'SolarisACL'], |  |   // like 5, but with data, which should be skipped |  |   ['D', 'GNUDumpDir'], |  |   // metadata only, skip |  |   ['I', 'Inode'], |  |   // data = link path of next file |  |   ['K', 'NextFileHasLongLinkpath'], |  |   // data = path of next file |  |   ['L', 'NextFileHasLongPath'], |  |   // skip |  |   ['M', 'ContinuationFile'], |  |   // like L |  |   ['N', 'OldGnuLongPath'], |  |   // skip |  |   ['S', 'SparseFile'], |  |   // skip |  |   ['V', 'TapeVolumeHeader'], |  |   // like x |  |   ['X', 'OldExtendedHeader'], |  | ]) |  |   |  | // map the other direction |  | exports.code = new Map(Array.from(exports.name).map(kv => [kv[1], kv[0]])) | 
 |