70 lines
1.8 KiB
Plaintext
70 lines
1.8 KiB
Plaintext
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.code = exports.name = exports.normalFsTypes = exports.isName = exports.isCode = void 0;
|
|
const isCode = (c) => exports.name.has(c);
|
|
exports.isCode = isCode;
|
|
const isName = (c) => exports.code.has(c);
|
|
exports.isName = isName;
|
|
/**
|
|
* types that are a normal file system entry, not metadata.
|
|
*
|
|
* These can be the subject of extended/globalExtended headers, long path
|
|
* names, long linkpath names, etc.
|
|
*
|
|
* Any other types are meta, and cannot be targetted by extended PAX headers.
|
|
*/
|
|
exports.normalFsTypes = new Set([
|
|
'0',
|
|
'',
|
|
'1',
|
|
'2',
|
|
'3',
|
|
'4',
|
|
'5',
|
|
'6',
|
|
'7',
|
|
'D',
|
|
]);
|
|
// 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]]));
|
|
//# sourceMappingURL=types.js.map |