/snap/node/11782/lib/node_modules/npm/node_modules/tar/dist/esm
NameSizeModeActions
create.js21630644editdlrm
cwd-error.js3100644editdlrm
extract.js16920644editdlrm
get-write-flag.js10180644editdlrm
header.js110960644editdlrm
index.js6470644editdlrm
index.min.js829670644editdlrm
large-numbers.js25810644editdlrm
list.js34440644editdlrm
make-command.js18700644editdlrm
mkdir.js57390644editdlrm
mode-fix.js7530644editdlrm
normalize-unicode.js10090644editdlrm
normalize-windows-path.js4900644editdlrm
options.js16390644editdlrm
pack.js144020644editdlrm
package.json230644editdlrm
parse.js227970644editdlrm
path-reservations.js54470644editdlrm
pax.js47540644editdlrm
process-umask.js1560644editdlrm
read-entry.js41750644editdlrm
replace.js72030644editdlrm
strip-absolute-path.js10600644editdlrm
strip-trailing-slashes.js4890644editdlrm
symlink-error.js3900644editdlrm
types.js12770644editdlrm
unpack.js336090644editdlrm
update.js10060644editdlrm
warn-method.js7950644editdlrm
winchars.js5490644editdlrm
write-entry.js227810644editdlrm
Edit: /snap/node/11782/lib/node_modules/npm/node_modules/tar/dist/esm/large-numbers.js (2581B)
// Tar can encode large and negative numbers using a leading byte of // 0xff for negative, and 0x80 for positive. export const encode = (num, buf) => { if (!Number.isSafeInteger(num)) { // The number is so large that javascript cannot represent it with integer // precision. throw Error('cannot encode number outside of javascript safe integer range'); } else if (num < 0) { encodeNegative(num, buf); } else { encodePositive(num, buf); } return buf; }; const encodePositive = (num, buf) => { buf[0] = 0x80; for (var i = buf.length; i > 1; i--) { buf[i - 1] = num & 0xff; num = Math.floor(num / 0x100); } }; const encodeNegative = (num, buf) => { buf[0] = 0xff; var flipped = false; num = num * -1; for (var i = buf.length; i > 1; i--) { var byte = num & 0xff; num = Math.floor(num / 0x100); if (flipped) { buf[i - 1] = onesComp(byte); } else if (byte === 0) { buf[i - 1] = 0; } else { flipped = true; buf[i - 1] = twosComp(byte); } } }; export const parse = (buf) => { const pre = buf[0]; const value = pre === 0x80 ? pos(buf.subarray(1, buf.length)) : pre === 0xff ? twos(buf) : null; if (value === null) { throw Error('invalid base256 encoding'); } if (!Number.isSafeInteger(value)) { // The number is so large that javascript cannot represent it with integer // precision. throw Error('parsed number outside of javascript safe integer range'); } return value; }; const twos = (buf) => { var len = buf.length; var sum = 0; var flipped = false; for (var i = len - 1; i > -1; i--) { var byte = Number(buf[i]); var f; if (flipped) { f = onesComp(byte); } else if (byte === 0) { f = byte; } else { flipped = true; f = twosComp(byte); } if (f !== 0) { sum -= f * Math.pow(256, len - i - 1); } } return sum; }; const pos = (buf) => { var len = buf.length; var sum = 0; for (var i = len - 1; i > -1; i--) { var byte = Number(buf[i]); if (byte !== 0) { sum += byte * Math.pow(256, len - i - 1); } } return sum; }; const onesComp = (byte) => (0xff ^ byte) & 0xff; const twosComp = (byte) => ((0xff ^ byte) + 1) & 0xff; //# sourceMappingURL=large-numbers.js.map