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]]))
|
|