⚝
One Hat Cyber Team
⚝
Your IP:
3.138.174.90
Server IP:
162.254.39.145
Server:
Linux premium289.web-hosting.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64
Server Software:
LiteSpeed
PHP Version:
8.2.28
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
lib
/
node_modules
/
npm
/
node_modules
/
pacote
/
View File Name :
tarball.js
'use strict' const BB = require('bluebird') const fs = require('fs') const getStream = require('get-stream') const mkdirp = BB.promisify(require('mkdirp')) const npa = require('npm-package-arg') const optCheck = require('./lib/util/opt-check.js') const PassThrough = require('stream').PassThrough const path = require('path') const rimraf = BB.promisify(require('rimraf')) const withTarballStream = require('./lib/with-tarball-stream.js') module.exports = tarball function tarball (spec, opts) { opts = optCheck(opts) spec = npa(spec, opts.where) return withTarballStream(spec, opts, stream => getStream.buffer(stream)) } module.exports.stream = tarballStream function tarballStream (spec, opts) { opts = optCheck(opts) spec = npa(spec, opts.where) const output = new PassThrough() let hasTouchedOutput = false let lastError = null withTarballStream(spec, opts, stream => { if (hasTouchedOutput && lastError) { throw lastError } else if (hasTouchedOutput) { throw new Error('abort, abort!') } else { return new BB((resolve, reject) => { stream.on('error', reject) output.on('error', reject) output.on('error', () => { hasTouchedOutput = true }) output.on('finish', resolve) stream.pipe(output) stream.once('data', () => { hasTouchedOutput = true }) }).catch(err => { lastError = err throw err }) } }) .catch(err => output.emit('error', err)) return output } module.exports.toFile = tarballToFile function tarballToFile (spec, dest, opts) { opts = optCheck(opts) spec = npa(spec, opts.where) return mkdirp(path.dirname(dest)) .then(() => withTarballStream(spec, opts, stream => { return rimraf(dest) .then(() => new BB((resolve, reject) => { const writer = fs.createWriteStream(dest) stream.on('error', reject) writer.on('error', reject) writer.on('close', resolve) stream.pipe(writer) })) })) }