Warning: file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 88

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 215

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 216

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 217

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 218

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 219

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 220
PK!E}UUlicensenu[MIT License Copyright (c) Sindre Sorhus (sindresorhus.com) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. PK! `__node_modules/get-stream/licensenu[The MIT License (MIT) Copyright (c) Sindre Sorhus (sindresorhus.com) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. PK!+?OO(node_modules/get-stream/buffer-stream.jsnu['use strict'; const PassThrough = require('stream').PassThrough; module.exports = opts => { opts = Object.assign({}, opts); const array = opts.array; let encoding = opts.encoding; const buffer = encoding === 'buffer'; let objectMode = false; if (array) { objectMode = !(encoding || buffer); } else { encoding = encoding || 'utf8'; } if (buffer) { encoding = null; } let len = 0; const ret = []; const stream = new PassThrough({objectMode}); if (encoding) { stream.setEncoding(encoding); } stream.on('data', chunk => { ret.push(chunk); if (objectMode) { len = ret.length; } else { len += chunk.length; } }); stream.getBufferedValue = () => { if (array) { return ret; } return buffer ? Buffer.concat(ret, len) : ret.join(''); }; stream.getBufferedLength = () => len; return stream; }; PK!V{$node_modules/get-stream/package.jsonnu[{ "_from": "get-stream@^3.0.0", "_id": "get-stream@3.0.0", "_inBundle": false, "_integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "_location": "/execa/get-stream", "_phantomChildren": {}, "_requested": { "type": "range", "registry": true, "raw": "get-stream@^3.0.0", "name": "get-stream", "escapedName": "get-stream", "rawSpec": "^3.0.0", "saveSpec": null, "fetchSpec": "^3.0.0" }, "_requiredBy": [ "/execa" ], "_resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", "_shasum": "8e943d1358dc37555054ecbe2edb05aa174ede14", "_spec": "get-stream@^3.0.0", "_where": "/Users/zkat/Documents/code/work/npm/node_modules/execa", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, "bugs": { "url": "https://github.com/sindresorhus/get-stream/issues" }, "bundleDependencies": false, "deprecated": false, "description": "Get a stream as a string, buffer, or array", "devDependencies": { "ava": "*", "into-stream": "^3.0.0", "xo": "*" }, "engines": { "node": ">=4" }, "files": [ "index.js", "buffer-stream.js" ], "homepage": "https://github.com/sindresorhus/get-stream#readme", "keywords": [ "get", "stream", "promise", "concat", "string", "str", "text", "buffer", "read", "data", "consume", "readable", "readablestream", "array", "object", "obj" ], "license": "MIT", "name": "get-stream", "repository": { "type": "git", "url": "git+https://github.com/sindresorhus/get-stream.git" }, "scripts": { "test": "xo && ava" }, "version": "3.0.0", "xo": { "esnext": true } } PK!5 node_modules/get-stream/index.jsnu['use strict'; const bufferStream = require('./buffer-stream'); function getStream(inputStream, opts) { if (!inputStream) { return Promise.reject(new Error('Expected a stream')); } opts = Object.assign({maxBuffer: Infinity}, opts); const maxBuffer = opts.maxBuffer; let stream; let clean; const p = new Promise((resolve, reject) => { const error = err => { if (err) { // null check err.bufferedData = stream.getBufferedValue(); } reject(err); }; stream = bufferStream(opts); inputStream.once('error', error); inputStream.pipe(stream); stream.on('data', () => { if (stream.getBufferedLength() > maxBuffer) { reject(new Error('maxBuffer exceeded')); } }); stream.once('error', error); stream.on('end', resolve); clean = () => { // some streams doesn't implement the `stream.Readable` interface correctly if (inputStream.unpipe) { inputStream.unpipe(stream); } }; }); p.then(clean, clean); return p.then(() => stream.getBufferedValue()); } module.exports = getStream; module.exports.buffer = (stream, opts) => getStream(stream, Object.assign({}, opts, {encoding: 'buffer'})); module.exports.array = (stream, opts) => getStream(stream, Object.assign({}, opts, {array: true})); PK!Z!node_modules/get-stream/readme.mdnu[# get-stream [![Build Status](https://travis-ci.org/sindresorhus/get-stream.svg?branch=master)](https://travis-ci.org/sindresorhus/get-stream) > Get a stream as a string, buffer, or array ## Install ``` $ npm install --save get-stream ``` ## Usage ```js const fs = require('fs'); const getStream = require('get-stream'); const stream = fs.createReadStream('unicorn.txt'); getStream(stream).then(str => { console.log(str); /* ,,))))))));, __)))))))))))))), \|/ -\(((((''''((((((((. -*-==//////(('' . `)))))), /|\ ))| o ;-. '((((( ,(, ( `| / ) ;))))' ,_))^;(~ | | | ,))((((_ _____------~~~-. %,;(;(>';'~ o_); ; )))(((` ~---~ `:: \ %%~~)(v;(`('~ ; ''''```` `: `:::|\,__,%% );`'; ~ | _ ) / `:|`----' `-' ______/\/~ | / / /~;;.____/;;' / ___--,-( `;;;/ / // _;______;'------~~~~~ /;;/\ / // | | / ; \;;,\ (<_ | ; /',/-----' _> \_| ||_ //~;~~~~~~~~~ `\_| (,~~ \~\ ~~ */ }); ``` ## API The methods returns a promise that resolves when the `end` event fires on the stream, indicating that there is no more data to be read. The stream is switched to flowing mode. ### getStream(stream, [options]) Get the `stream` as a string. #### options ##### encoding Type: `string`
Default: `utf8` [Encoding](https://nodejs.org/api/buffer.html#buffer_buffer) of the incoming stream. ##### maxBuffer Type: `number`
Default: `Infinity` Maximum length of the returned string. If it exceeds this value before the stream ends, the promise will be rejected. ### getStream.buffer(stream, [options]) Get the `stream` as a buffer. It honors the `maxBuffer` option as above, but it refers to byte length rather than string length. ### getStream.array(stream, [options]) Get the `stream` as an array of values. It honors both the `maxBuffer` and `encoding` options. The behavior changes slightly based on the encoding chosen: - When `encoding` is unset, it assumes an [object mode stream](https://nodesource.com/blog/understanding-object-streams/) and collects values emitted from `stream` unmodified. In this case `maxBuffer` refers to the number of items in the array (not the sum of their sizes). - When `encoding` is set to `buffer`, it collects an array of buffers. `maxBuffer` refers to the summed byte lengths of every buffer in the array. - When `encoding` is set to anything else, it collects an array of strings. `maxBuffer` refers to the summed character lengths of every string in the array. ## Errors If the input stream emits an `error` event, the promise will be rejected with the error. The buffered data will be attached to the `bufferedData` property of the error. ```js getStream(streamThatErrorsAtTheEnd('unicorn')) .catch(err => { console.log(err.bufferedData); //=> 'unicorn' }); ``` ## FAQ ### How is this different from [`concat-stream`](https://github.com/maxogden/concat-stream)? This module accepts a stream instead of being one and returns a promise instead of using a callback. The API is simpler and it only supports returning a string, buffer, or array. It doesn't have a fragile type inference. You explicitly choose what you want. And it doesn't depend on the huge `readable-stream` package. ## Related - [get-stdin](https://github.com/sindresorhus/get-stdin) - Get stdin as a string or buffer ## License MIT © [Sindre Sorhus](https://sindresorhus.com) PK!Qo package.jsonnu[{ "_from": "execa@^0.7.0", "_id": "execa@0.7.0", "_inBundle": false, "_integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "_location": "/execa", "_phantomChildren": {}, "_requested": { "type": "range", "registry": true, "raw": "execa@^0.7.0", "name": "execa", "escapedName": "execa", "rawSpec": "^0.7.0", "saveSpec": null, "fetchSpec": "^0.7.0" }, "_requiredBy": [ "/os-locale", "/term-size" ], "_resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "_shasum": "944becd34cc41ee32a63a9faf27ad5a65fc59777", "_spec": "execa@^0.7.0", "_where": "/Users/rebecca/code/npm/node_modules/term-size", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, "bugs": { "url": "https://github.com/sindresorhus/execa/issues" }, "bundleDependencies": false, "dependencies": { "cross-spawn": "^5.0.1", "get-stream": "^3.0.0", "is-stream": "^1.1.0", "npm-run-path": "^2.0.0", "p-finally": "^1.0.0", "signal-exit": "^3.0.0", "strip-eof": "^1.0.0" }, "deprecated": false, "description": "A better `child_process`", "devDependencies": { "ava": "*", "cat-names": "^1.0.2", "coveralls": "^2.11.9", "delay": "^2.0.0", "is-running": "^2.0.0", "nyc": "^11.0.2", "tempfile": "^2.0.0", "xo": "*" }, "engines": { "node": ">=4" }, "files": [ "index.js", "lib" ], "homepage": "https://github.com/sindresorhus/execa#readme", "keywords": [ "exec", "child", "process", "execute", "fork", "execfile", "spawn", "file", "shell", "bin", "binary", "binaries", "npm", "path", "local" ], "license": "MIT", "maintainers": [ { "name": "James Talmage", "email": "james@talmage.io", "url": "github.com/jamestalmage" } ], "name": "execa", "nyc": { "reporter": [ "text", "lcov" ], "exclude": [ "**/fixtures/**", "**/test.js", "**/test/**" ] }, "repository": { "type": "git", "url": "git+https://github.com/sindresorhus/execa.git" }, "scripts": { "test": "xo && nyc ava" }, "version": "0.7.0" } PK!37Aindex.jsnu['use strict'; const childProcess = require('child_process'); const util = require('util'); const crossSpawn = require('cross-spawn'); const stripEof = require('strip-eof'); const npmRunPath = require('npm-run-path'); const isStream = require('is-stream'); const _getStream = require('get-stream'); const pFinally = require('p-finally'); const onExit = require('signal-exit'); const errname = require('./lib/errname'); const stdio = require('./lib/stdio'); const TEN_MEGABYTES = 1000 * 1000 * 10; function handleArgs(cmd, args, opts) { let parsed; if (opts && opts.env && opts.extendEnv !== false) { opts.env = Object.assign({}, process.env, opts.env); } if (opts && opts.__winShell === true) { delete opts.__winShell; parsed = { command: cmd, args, options: opts, file: cmd, original: cmd }; } else { parsed = crossSpawn._parse(cmd, args, opts); } opts = Object.assign({ maxBuffer: TEN_MEGABYTES, stripEof: true, preferLocal: true, localDir: parsed.options.cwd || process.cwd(), encoding: 'utf8', reject: true, cleanup: true }, parsed.options); opts.stdio = stdio(opts); if (opts.preferLocal) { opts.env = npmRunPath.env(Object.assign({}, opts, {cwd: opts.localDir})); } return { cmd: parsed.command, args: parsed.args, opts, parsed }; } function handleInput(spawned, opts) { const input = opts.input; if (input === null || input === undefined) { return; } if (isStream(input)) { input.pipe(spawned.stdin); } else { spawned.stdin.end(input); } } function handleOutput(opts, val) { if (val && opts.stripEof) { val = stripEof(val); } return val; } function handleShell(fn, cmd, opts) { let file = '/bin/sh'; let args = ['-c', cmd]; opts = Object.assign({}, opts); if (process.platform === 'win32') { opts.__winShell = true; file = process.env.comspec || 'cmd.exe'; args = ['/s', '/c', `"${cmd}"`]; opts.windowsVerbatimArguments = true; } if (opts.shell) { file = opts.shell; delete opts.shell; } return fn(file, args, opts); } function getStream(process, stream, encoding, maxBuffer) { if (!process[stream]) { return null; } let ret; if (encoding) { ret = _getStream(process[stream], { encoding, maxBuffer }); } else { ret = _getStream.buffer(process[stream], {maxBuffer}); } return ret.catch(err => { err.stream = stream; err.message = `${stream} ${err.message}`; throw err; }); } module.exports = (cmd, args, opts) => { let joinedCmd = cmd; if (Array.isArray(args) && args.length > 0) { joinedCmd += ' ' + args.join(' '); } const parsed = handleArgs(cmd, args, opts); const encoding = parsed.opts.encoding; const maxBuffer = parsed.opts.maxBuffer; let spawned; try { spawned = childProcess.spawn(parsed.cmd, parsed.args, parsed.opts); } catch (err) { return Promise.reject(err); } let removeExitHandler; if (parsed.opts.cleanup) { removeExitHandler = onExit(() => { spawned.kill(); }); } let timeoutId = null; let timedOut = false; const cleanupTimeout = () => { if (timeoutId) { clearTimeout(timeoutId); timeoutId = null; } }; if (parsed.opts.timeout > 0) { timeoutId = setTimeout(() => { timeoutId = null; timedOut = true; spawned.kill(parsed.opts.killSignal); }, parsed.opts.timeout); } const processDone = new Promise(resolve => { spawned.on('exit', (code, signal) => { cleanupTimeout(); resolve({code, signal}); }); spawned.on('error', err => { cleanupTimeout(); resolve({err}); }); if (spawned.stdin) { spawned.stdin.on('error', err => { cleanupTimeout(); resolve({err}); }); } }); function destroy() { if (spawned.stdout) { spawned.stdout.destroy(); } if (spawned.stderr) { spawned.stderr.destroy(); } } const promise = pFinally(Promise.all([ processDone, getStream(spawned, 'stdout', encoding, maxBuffer), getStream(spawned, 'stderr', encoding, maxBuffer) ]).then(arr => { const result = arr[0]; const stdout = arr[1]; const stderr = arr[2]; let err = result.err; const code = result.code; const signal = result.signal; if (removeExitHandler) { removeExitHandler(); } if (err || code !== 0 || signal !== null) { if (!err) { let output = ''; if (Array.isArray(parsed.opts.stdio)) { if (parsed.opts.stdio[2] !== 'inherit') { output += output.length > 0 ? stderr : `\n${stderr}`; } if (parsed.opts.stdio[1] !== 'inherit') { output += `\n${stdout}`; } } else if (parsed.opts.stdio !== 'inherit') { output = `\n${stderr}${stdout}`; } err = new Error(`Command failed: ${joinedCmd}${output}`); err.code = code < 0 ? errname(code) : code; } // TODO: missing some timeout logic for killed // https://github.com/nodejs/node/blob/master/lib/child_process.js#L203 // err.killed = spawned.killed || killed; err.killed = err.killed || spawned.killed; err.stdout = stdout; err.stderr = stderr; err.failed = true; err.signal = signal || null; err.cmd = joinedCmd; err.timedOut = timedOut; if (!parsed.opts.reject) { return err; } throw err; } return { stdout: handleOutput(parsed.opts, stdout), stderr: handleOutput(parsed.opts, stderr), code: 0, failed: false, killed: false, signal: null, cmd: joinedCmd, timedOut: false }; }), destroy); crossSpawn._enoent.hookChildProcess(spawned, parsed.parsed); handleInput(spawned, parsed.opts); spawned.then = promise.then.bind(promise); spawned.catch = promise.catch.bind(promise); return spawned; }; module.exports.stdout = function () { // TODO: set `stderr: 'ignore'` when that option is implemented return module.exports.apply(null, arguments).then(x => x.stdout); }; module.exports.stderr = function () { // TODO: set `stdout: 'ignore'` when that option is implemented return module.exports.apply(null, arguments).then(x => x.stderr); }; module.exports.shell = (cmd, opts) => handleShell(module.exports, cmd, opts); module.exports.sync = (cmd, args, opts) => { const parsed = handleArgs(cmd, args, opts); if (isStream(parsed.opts.input)) { throw new TypeError('The `input` option cannot be a stream in sync mode'); } const result = childProcess.spawnSync(parsed.cmd, parsed.args, parsed.opts); if (result.error || result.status !== 0) { throw (result.error || new Error(result.stderr === '' ? result.stdout : result.stderr)); } result.stdout = handleOutput(parsed.opts, result.stdout); result.stderr = handleOutput(parsed.opts, result.stderr); return result; }; module.exports.shellSync = (cmd, opts) => handleShell(module.exports.sync, cmd, opts); module.exports.spawn = util.deprecate(module.exports, 'execa.spawn() is deprecated. Use execa() instead.'); PK!WII readme.mdnu[# execa [![Build Status: Linux](https://travis-ci.org/sindresorhus/execa.svg?branch=master)](https://travis-ci.org/sindresorhus/execa) [![Build status: Windows](https://ci.appveyor.com/api/projects/status/x5ajamxtjtt93cqv/branch/master?svg=true)](https://ci.appveyor.com/project/sindresorhus/execa/branch/master) [![Coverage Status](https://coveralls.io/repos/github/sindresorhus/execa/badge.svg?branch=master)](https://coveralls.io/github/sindresorhus/execa?branch=master) > A better [`child_process`](https://nodejs.org/api/child_process.html) ## Why - Promise interface. - [Strips EOF](https://github.com/sindresorhus/strip-eof) from the output so you don't have to `stdout.trim()`. - Supports [shebang](https://en.wikipedia.org/wiki/Shebang_(Unix)) binaries cross-platform. - [Improved Windows support.](https://github.com/IndigoUnited/node-cross-spawn#why) - Higher max buffer. 10 MB instead of 200 KB. - [Executes locally installed binaries by name.](#preferlocal) - [Cleans up spawned processes when the parent process dies.](#cleanup) ## Install ``` $ npm install --save execa ``` ## Usage ```js const execa = require('execa'); execa('echo', ['unicorns']).then(result => { console.log(result.stdout); //=> 'unicorns' }); // pipe the child process stdout to the current stdout execa('echo', ['unicorns']).stdout.pipe(process.stdout); execa.shell('echo unicorns').then(result => { console.log(result.stdout); //=> 'unicorns' }); // example of catching an error execa.shell('exit 3').catch(error => { console.log(error); /* { message: 'Command failed: /bin/sh -c exit 3' killed: false, code: 3, signal: null, cmd: '/bin/sh -c exit 3', stdout: '', stderr: '', timedOut: false } */ }); ``` ## API ### execa(file, [arguments], [options]) Execute a file. Think of this as a mix of `child_process.execFile` and `child_process.spawn`. Returns a [`child_process` instance](https://nodejs.org/api/child_process.html#child_process_class_childprocess), which is enhanced to also be a `Promise` for a result `Object` with `stdout` and `stderr` properties. ### execa.stdout(file, [arguments], [options]) Same as `execa()`, but returns only `stdout`. ### execa.stderr(file, [arguments], [options]) Same as `execa()`, but returns only `stderr`. ### execa.shell(command, [options]) Execute a command through the system shell. Prefer `execa()` whenever possible, as it's both faster and safer. Returns a [`child_process` instance](https://nodejs.org/api/child_process.html#child_process_class_childprocess). The `child_process` instance is enhanced to also be promise for a result object with `stdout` and `stderr` properties. ### execa.sync(file, [arguments], [options]) Execute a file synchronously. Returns the same result object as [`child_process.spawnSync`](https://nodejs.org/api/child_process.html#child_process_child_process_spawnsync_command_args_options). This method throws an `Error` if the command fails. ### execa.shellSync(file, [options]) Execute a command synchronously through the system shell. Returns the same result object as [`child_process.spawnSync`](https://nodejs.org/api/child_process.html#child_process_child_process_spawnsync_command_args_options). ### options Type: `Object` #### cwd Type: `string`
Default: `process.cwd()` Current working directory of the child process. #### env Type: `Object`
Default: `process.env` Environment key-value pairs. Extends automatically from `process.env`. Set `extendEnv` to `false` if you don't want this. #### extendEnv Type: `boolean`
Default: `true` Set to `false` if you don't want to extend the environment variables when providing the `env` property. #### argv0 Type: `string` Explicitly set the value of `argv[0]` sent to the child process. This will be set to `command` or `file` if not specified. #### stdio Type: `Array` `string`
Default: `pipe` Child's [stdio](https://nodejs.org/api/child_process.html#child_process_options_stdio) configuration. #### detached Type: `boolean` Prepare child to run independently of its parent process. Specific behavior [depends on the platform](https://nodejs.org/api/child_process.html#child_process_options_detached). #### uid Type: `number` Sets the user identity of the process. #### gid Type: `number` Sets the group identity of the process. #### shell Type: `boolean` `string`
Default: `false` If `true`, runs `command` inside of a shell. Uses `/bin/sh` on UNIX and `cmd.exe` on Windows. A different shell can be specified as a string. The shell should understand the `-c` switch on UNIX or `/d /s /c` on Windows. #### stripEof Type: `boolean`
Default: `true` [Strip EOF](https://github.com/sindresorhus/strip-eof) (last newline) from the output. #### preferLocal Type: `boolean`
Default: `true` Prefer locally installed binaries when looking for a binary to execute.
If you `$ npm install foo`, you can then `execa('foo')`. #### localDir Type: `string`
Default: `process.cwd()` Preferred path to find locally installed binaries in (use with `preferLocal`). #### input Type: `string` `Buffer` `stream.Readable` Write some input to the `stdin` of your binary.
Streams are not allowed when using the synchronous methods. #### reject Type: `boolean`
Default: `true` Setting this to `false` resolves the promise with the error instead of rejecting it. #### cleanup Type: `boolean`
Default: `true` Keep track of the spawned process and `kill` it when the parent process exits. #### encoding Type: `string`
Default: `utf8` Specify the character encoding used to decode the `stdout` and `stderr` output. #### timeout Type: `number`
Default: `0` If timeout is greater than `0`, the parent will send the signal identified by the `killSignal` property (the default is `SIGTERM`) if the child runs longer than timeout milliseconds. #### maxBuffer Type: `number`
Default: `10000000` (10MB) Largest amount of data in bytes allowed on `stdout` or `stderr`. #### killSignal Type: `string` `number`
Default: `SIGTERM` Signal value to be used when the spawned process will be killed. #### stdin Type: `string` `number` `Stream` `undefined` `null`
Default: `pipe` Same options as [`stdio`](https://nodejs.org/dist/latest-v6.x/docs/api/child_process.html#child_process_options_stdio). #### stdout Type: `string` `number` `Stream` `undefined` `null`
Default: `pipe` Same options as [`stdio`](https://nodejs.org/dist/latest-v6.x/docs/api/child_process.html#child_process_options_stdio). #### stderr Type: `string` `number` `Stream` `undefined` `null`
Default: `pipe` Same options as [`stdio`](https://nodejs.org/dist/latest-v6.x/docs/api/child_process.html#child_process_options_stdio). ## Tips ### Save and pipe output from a child process Let's say you want to show the output of a child process in real-time while also saving it to a variable. ```js const execa = require('execa'); const getStream = require('get-stream'); const stream = execa('echo', ['foo']).stdout; stream.pipe(process.stdout); getStream(stream).then(value => { console.log('child output:', value); }); ``` ## License MIT © [Sindre Sorhus](https://sindresorhus.com) PK!Ѽvlib/errname.jsnu['use strict'; // The Node team wants to deprecate `process.bind(...)`. // https://github.com/nodejs/node/pull/2768 // // However, we need the 'uv' binding for errname support. // This is a defensive wrapper around it so `execa` will not fail entirely if it stops working someday. // // If this ever stops working. See: https://github.com/sindresorhus/execa/issues/31#issuecomment-215939939 for another possible solution. let uv; try { uv = process.binding('uv'); if (typeof uv.errname !== 'function') { throw new TypeError('uv.errname is not a function'); } } catch (err) { console.error('execa/lib/errname: unable to establish process.binding(\'uv\')', err); uv = null; } function errname(uv, code) { if (uv) { return uv.errname(code); } if (!(code < 0)) { throw new Error('err >= 0'); } return `Unknown system error ${code}`; } module.exports = code => errname(uv, code); // Used for testing the fallback behavior module.exports.__test__ = errname; PK!%X{{ lib/stdio.jsnu['use strict'; const alias = ['stdin', 'stdout', 'stderr']; const hasAlias = opts => alias.some(x => Boolean(opts[x])); module.exports = opts => { if (!opts) { return null; } if (opts.stdio && hasAlias(opts)) { throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${alias.map(x => `\`${x}\``).join(', ')}`); } if (typeof opts.stdio === 'string') { return opts.stdio; } const stdio = opts.stdio || []; if (!Array.isArray(stdio)) { throw new TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof stdio}\``); } const result = []; const len = Math.max(stdio.length, alias.length); for (let i = 0; i < len; i++) { let value = null; if (stdio[i] !== undefined) { value = stdio[i]; } else if (opts[alias[i]] !== undefined) { value = opts[alias[i]]; } result[i] = value; } return result; }; PK!E}UUlicensenu[PK! `__node_modules/get-stream/licensenu[PK!+?OO(: node_modules/get-stream/buffer-stream.jsnu[PK!V{$ node_modules/get-stream/package.jsonnu[PK!5 node_modules/get-stream/index.jsnu[PK!Z!Hnode_modules/get-stream/readme.mdnu[PK!Qo (package.jsonnu[PK!37A1index.jsnu[PK!WII Lreadme.mdnu[PK!Ѽvilib/errname.jsnu[PK!%X{{ mlib/stdio.jsnu[PK p