summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/tar
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/node_modules/tar')
-rw-r--r--deps/npm/node_modules/tar/lib/large-numbers.js59
-rw-r--r--deps/npm/node_modules/tar/lib/mkdir.js4
-rw-r--r--deps/npm/node_modules/tar/node_modules/chownr/LICENSE15
-rw-r--r--deps/npm/node_modules/tar/node_modules/chownr/README.md3
-rw-r--r--deps/npm/node_modules/tar/node_modules/chownr/chownr.js88
-rw-r--r--deps/npm/node_modules/tar/node_modules/chownr/package.json59
-rw-r--r--deps/npm/node_modules/tar/package.json42
7 files changed, 57 insertions, 213 deletions
diff --git a/deps/npm/node_modules/tar/lib/large-numbers.js b/deps/npm/node_modules/tar/lib/large-numbers.js
index ff49992630..3e5c99255a 100644
--- a/deps/npm/node_modules/tar/lib/large-numbers.js
+++ b/deps/npm/node_modules/tar/lib/large-numbers.js
@@ -1,12 +1,13 @@
'use strict'
// Tar can encode large and negative numbers using a leading byte of
-// 0xff for negative, and 0x80 for positive. The trailing byte in the
-// section will always be 0x20, or in some implementations 0x00.
-// this module encodes and decodes these things.
+// 0xff for negative, and 0x80 for positive.
const encode = exports.encode = (num, buf) => {
- buf[buf.length - 1] = 0x20
- if (num < 0)
+ if (!Number.isSafeInteger(num))
+ // The number is so large that javascript cannot represent it with integer
+ // precision.
+ throw TypeError('cannot encode number outside of javascript safe integer range')
+ else if (num < 0)
encodeNegative(num, buf)
else
encodePositive(num, buf)
@@ -15,13 +16,10 @@ const encode = exports.encode = (num, buf) => {
const encodePositive = (num, buf) => {
buf[0] = 0x80
- for (var i = buf.length - 2; i > 0; i--) {
- if (num === 0)
- buf[i] = 0
- else {
- buf[i] = num % 0x100
- num = Math.floor(num / 0x100)
- }
+
+ for (var i = buf.length; i > 1; i--) {
+ buf[i-1] = num & 0xff
+ num = Math.floor(num / 0x100)
}
}
@@ -29,21 +27,16 @@ const encodeNegative = (num, buf) => {
buf[0] = 0xff
var flipped = false
num = num * -1
- for (var i = buf.length - 2; i > 0; i--) {
- var byte
- if (num === 0)
- byte = 0
- else {
- byte = num % 0x100
- num = Math.floor(num / 0x100)
- }
+ for (var i = buf.length; i > 1; i--) {
+ var byte = num & 0xff
+ num = Math.floor(num / 0x100)
if (flipped)
- buf[i] = onesComp(byte)
+ buf[i-1] = onesComp(byte)
else if (byte === 0)
- buf[i] = 0
+ buf[i-1] = 0
else {
flipped = true
- buf[i] = twosComp(byte)
+ buf[i-1] = twosComp(byte)
}
}
}
@@ -51,8 +44,20 @@ const encodeNegative = (num, buf) => {
const parse = exports.parse = (buf) => {
var post = buf[buf.length - 1]
var pre = buf[0]
- return pre === 0x80 ? pos(buf.slice(1, buf.length - 1))
- : twos(buf.slice(1, buf.length - 1))
+ var value;
+ if (pre === 0x80)
+ value = pos(buf.slice(1, buf.length))
+ else if (pre === 0xff)
+ value = twos(buf)
+ else
+ throw TypeError('invalid base256 encoding')
+
+ if (!Number.isSafeInteger(value))
+ // The number is so large that javascript cannot represent it with integer
+ // precision.
+ throw TypeError('parsed number outside of javascript safe integer range')
+
+ return value
}
const twos = (buf) => {
@@ -71,9 +76,9 @@ const twos = (buf) => {
f = twosComp(byte)
}
if (f !== 0)
- sum += f * Math.pow(256, len - i - 1)
+ sum -= f * Math.pow(256, len - i - 1)
}
- return sum * -1
+ return sum
}
const pos = (buf) => {
diff --git a/deps/npm/node_modules/tar/lib/mkdir.js b/deps/npm/node_modules/tar/lib/mkdir.js
index 382329ef51..c6a154c24f 100644
--- a/deps/npm/node_modules/tar/lib/mkdir.js
+++ b/deps/npm/node_modules/tar/lib/mkdir.js
@@ -69,7 +69,7 @@ const mkdir = module.exports = (dir, opt, cb) => {
return done()
if (dir === cwd)
- return fs.lstat(dir, (er, st) => {
+ return fs.stat(dir, (er, st) => {
if (er || !st.isDirectory())
er = new CwdError(dir, er && er.code || 'ENOTDIR')
done(er)
@@ -154,7 +154,7 @@ const mkdirSync = module.exports.sync = (dir, opt) => {
let ok = false
let code = 'ENOTDIR'
try {
- ok = fs.lstatSync(dir).isDirectory()
+ ok = fs.statSync(dir).isDirectory()
} catch (er) {
code = er.code
} finally {
diff --git a/deps/npm/node_modules/tar/node_modules/chownr/LICENSE b/deps/npm/node_modules/tar/node_modules/chownr/LICENSE
deleted file mode 100644
index 19129e315f..0000000000
--- a/deps/npm/node_modules/tar/node_modules/chownr/LICENSE
+++ /dev/null
@@ -1,15 +0,0 @@
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/deps/npm/node_modules/tar/node_modules/chownr/README.md b/deps/npm/node_modules/tar/node_modules/chownr/README.md
deleted file mode 100644
index 70e9a54a32..0000000000
--- a/deps/npm/node_modules/tar/node_modules/chownr/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-Like `chown -R`.
-
-Takes the same arguments as `fs.chown()`
diff --git a/deps/npm/node_modules/tar/node_modules/chownr/chownr.js b/deps/npm/node_modules/tar/node_modules/chownr/chownr.js
deleted file mode 100644
index 7e63928827..0000000000
--- a/deps/npm/node_modules/tar/node_modules/chownr/chownr.js
+++ /dev/null
@@ -1,88 +0,0 @@
-'use strict'
-const fs = require('fs')
-const path = require('path')
-
-/* istanbul ignore next */
-const LCHOWN = fs.lchown ? 'lchown' : 'chown'
-/* istanbul ignore next */
-const LCHOWNSYNC = fs.lchownSync ? 'lchownSync' : 'chownSync'
-
-// fs.readdir could only accept an options object as of node v6
-const nodeVersion = process.version
-let readdir = (path, options, cb) => fs.readdir(path, options, cb)
-let readdirSync = (path, options) => fs.readdirSync(path, options)
-/* istanbul ignore next */
-if (/^v4\./.test(nodeVersion))
- readdir = (path, options, cb) => fs.readdir(path, cb)
-
-const chownrKid = (p, child, uid, gid, cb) => {
- if (typeof child === 'string')
- return fs.lstat(path.resolve(p, child), (er, stats) => {
- if (er)
- return cb(er)
- stats.name = child
- chownrKid(p, stats, uid, gid, cb)
- })
-
- if (child.isDirectory()) {
- chownr(path.resolve(p, child.name), uid, gid, er => {
- if (er)
- return cb(er)
- fs[LCHOWN](path.resolve(p, child.name), uid, gid, cb)
- })
- } else
- fs[LCHOWN](path.resolve(p, child.name), uid, gid, cb)
-}
-
-
-const chownr = (p, uid, gid, cb) => {
- readdir(p, { withFileTypes: true }, (er, children) => {
- // any error other than ENOTDIR or ENOTSUP means it's not readable,
- // or doesn't exist. give up.
- if (er && er.code !== 'ENOTDIR' && er.code !== 'ENOTSUP')
- return cb(er)
- if (er || !children.length) return fs[LCHOWN](p, uid, gid, cb)
-
- let len = children.length
- let errState = null
- const then = er => {
- if (errState) return
- if (er) return cb(errState = er)
- if (-- len === 0) return fs[LCHOWN](p, uid, gid, cb)
- }
-
- children.forEach(child => chownrKid(p, child, uid, gid, then))
- })
-}
-
-const chownrKidSync = (p, child, uid, gid) => {
- if (typeof child === 'string') {
- const stats = fs.lstatSync(path.resolve(p, child))
- stats.name = child
- child = stats
- }
-
- if (child.isDirectory())
- chownrSync(path.resolve(p, child.name), uid, gid)
-
- fs[LCHOWNSYNC](path.resolve(p, child.name), uid, gid)
-}
-
-const chownrSync = (p, uid, gid) => {
- let children
- try {
- children = readdirSync(p, { withFileTypes: true })
- } catch (er) {
- if (er && er.code === 'ENOTDIR' && er.code !== 'ENOTSUP')
- return fs[LCHOWNSYNC](p, uid, gid)
- throw er
- }
-
- if (children.length)
- children.forEach(child => chownrKidSync(p, child, uid, gid))
-
- return fs[LCHOWNSYNC](p, uid, gid)
-}
-
-module.exports = chownr
-chownr.sync = chownrSync
diff --git a/deps/npm/node_modules/tar/node_modules/chownr/package.json b/deps/npm/node_modules/tar/node_modules/chownr/package.json
deleted file mode 100644
index 41e75b7fa6..0000000000
--- a/deps/npm/node_modules/tar/node_modules/chownr/package.json
+++ /dev/null
@@ -1,59 +0,0 @@
-{
- "_from": "chownr@^1.1.1",
- "_id": "chownr@1.1.1",
- "_inBundle": false,
- "_integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==",
- "_location": "/tar/chownr",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "chownr@^1.1.1",
- "name": "chownr",
- "escapedName": "chownr",
- "rawSpec": "^1.1.1",
- "saveSpec": null,
- "fetchSpec": "^1.1.1"
- },
- "_requiredBy": [
- "/tar"
- ],
- "_resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz",
- "_shasum": "54726b8b8fff4df053c42187e801fb4412df1494",
- "_spec": "chownr@^1.1.1",
- "_where": "/Users/zkat/Documents/code/work/npm/node_modules/tar",
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me/"
- },
- "bugs": {
- "url": "https://github.com/isaacs/chownr/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "like `chown -R`",
- "devDependencies": {
- "mkdirp": "0.3",
- "rimraf": "",
- "tap": "^12.0.1"
- },
- "files": [
- "chownr.js"
- ],
- "homepage": "https://github.com/isaacs/chownr#readme",
- "license": "ISC",
- "main": "chownr.js",
- "name": "chownr",
- "repository": {
- "type": "git",
- "url": "git://github.com/isaacs/chownr.git"
- },
- "scripts": {
- "postpublish": "git push origin --all; git push origin --tags",
- "postversion": "npm publish",
- "preversion": "npm test",
- "test": "tap test/*.js --cov"
- },
- "version": "1.1.1"
-}
diff --git a/deps/npm/node_modules/tar/package.json b/deps/npm/node_modules/tar/package.json
index 9d96d30ebe..a41cc80aae 100644
--- a/deps/npm/node_modules/tar/package.json
+++ b/deps/npm/node_modules/tar/package.json
@@ -1,31 +1,31 @@
{
- "_from": "tar@4.4.8",
- "_id": "tar@4.4.8",
+ "_from": "tar@latest",
+ "_id": "tar@4.4.10",
"_inBundle": false,
- "_integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==",
+ "_integrity": "sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA==",
"_location": "/tar",
"_phantomChildren": {
"safe-buffer": "5.1.2"
},
"_requested": {
- "type": "version",
+ "type": "tag",
"registry": true,
- "raw": "tar@4.4.8",
+ "raw": "tar@latest",
"name": "tar",
"escapedName": "tar",
- "rawSpec": "4.4.8",
+ "rawSpec": "latest",
"saveSpec": null,
- "fetchSpec": "4.4.8"
+ "fetchSpec": "latest"
},
"_requiredBy": [
"#USER",
"/",
"/pacote"
],
- "_resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz",
- "_shasum": "b19eec3fde2a96e64666df9fdb40c5ca1bc3747d",
- "_spec": "tar@4.4.8",
- "_where": "/Users/zkat/Documents/code/work/npm",
+ "_resolved": "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz",
+ "_shasum": "946b2810b9a5e0b26140cf78bea6b0b0d689eba1",
+ "_spec": "tar@latest",
+ "_where": "/Users/isaacs/dev/npm/cli",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
@@ -38,11 +38,11 @@
"dependencies": {
"chownr": "^1.1.1",
"fs-minipass": "^1.2.5",
- "minipass": "^2.3.4",
- "minizlib": "^1.1.1",
+ "minipass": "^2.3.5",
+ "minizlib": "^1.2.1",
"mkdirp": "^0.5.0",
"safe-buffer": "^5.1.2",
- "yallist": "^3.0.2"
+ "yallist": "^3.0.3"
},
"deprecated": false,
"description": "tar for node",
@@ -51,8 +51,8 @@
"end-of-stream": "^1.4.1",
"events-to-array": "^1.1.2",
"mutate-fs": "^2.1.1",
- "rimraf": "^2.6.2",
- "tap": "^12.0.1",
+ "rimraf": "^2.6.3",
+ "tap": "^14.2.0",
"tar-fs": "^1.16.3",
"tar-stream": "^1.6.2"
},
@@ -73,10 +73,14 @@
"scripts": {
"bench": "for i in benchmarks/*/*.js; do echo $i; for j in {1..5}; do node $i || break; done; done",
"genparse": "node scripts/generate-parse-fixtures.js",
- "postpublish": "git push origin --all; git push origin --tags",
+ "postpublish": "git push origin --follow-tags",
"postversion": "npm publish",
"preversion": "npm test",
- "test": "tap test/*.js --100 -J --coverage-report=text -c"
+ "test": "tap"
},
- "version": "4.4.8"
+ "tap": {
+ "coverage-map": "map.js",
+ "check-coverage": true
+ },
+ "version": "4.4.10"
}