fix(dependencies): remove shelljs and go node native
This commit is contained in:
		| @@ -3,23 +3,39 @@ image: hosttoday/ht-docker-node:npmci | ||||
|  | ||||
| cache: | ||||
|   paths: | ||||
|   - .yarn/ | ||||
|   - .npmci_cache/ | ||||
|   key: "$CI_BUILD_STAGE" | ||||
|  | ||||
| stages: | ||||
| - mirror | ||||
| - security | ||||
| - test | ||||
| - release | ||||
| - trigger | ||||
| - pages | ||||
| - metadata | ||||
|  | ||||
| # ==================== | ||||
| # security stage | ||||
| # ==================== | ||||
| mirror: | ||||
|   stage: mirror | ||||
|   stage: security | ||||
|   script: | ||||
|   - npmci git mirror | ||||
|   tags: | ||||
|   - docker | ||||
|   - notpriv | ||||
|  | ||||
| snyk: | ||||
|   stage: security | ||||
|   script: | ||||
|     - npmci command npm install -g snyk | ||||
|     - npmci command npm install --ignore-scripts | ||||
|     - npmci command snyk test | ||||
|   tags: | ||||
|   - docker | ||||
|   - notpriv | ||||
|  | ||||
| # ==================== | ||||
| # test stage | ||||
| # ==================== | ||||
| testLEGACY: | ||||
|   stage: test | ||||
|   script: | ||||
| @@ -29,6 +45,7 @@ testLEGACY: | ||||
|   coverage: /\d+.?\d+?\%\s*coverage/ | ||||
|   tags: | ||||
|   - docker | ||||
|   - notpriv | ||||
|   allow_failure: true | ||||
|  | ||||
| testLTS: | ||||
| @@ -40,6 +57,7 @@ testLTS: | ||||
|   coverage: /\d+.?\d+?\%\s*coverage/ | ||||
|   tags: | ||||
|   - docker | ||||
|   - notpriv | ||||
|      | ||||
| testSTABLE: | ||||
|   stage: test | ||||
| @@ -50,37 +68,74 @@ testSTABLE: | ||||
|   coverage: /\d+.?\d+?\%\s*coverage/ | ||||
|   tags: | ||||
|   - docker | ||||
|   - notpriv | ||||
|  | ||||
| release: | ||||
|   stage: release | ||||
|   script: | ||||
|   - npmci npm prepare | ||||
|   - npmci node install stable | ||||
|   - npmci npm publish | ||||
|   only: | ||||
|   - tags | ||||
|   tags: | ||||
|   - docker | ||||
|   - notpriv | ||||
|  | ||||
| # ==================== | ||||
| # metadata stage | ||||
| # ==================== | ||||
| codequality: | ||||
|   stage: metadata | ||||
|   image: docker:stable | ||||
|   allow_failure: true | ||||
|   services: | ||||
|     - docker:stable-dind | ||||
|   script: | ||||
|     - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/') | ||||
|     - docker run | ||||
|         --env SOURCE_CODE="$PWD" | ||||
|         --volume "$PWD":/code | ||||
|         --volume /var/run/docker.sock:/var/run/docker.sock | ||||
|         "registry.gitlab.com/gitlab-org/security-products/codequality:$SP_VERSION" /code | ||||
|   artifacts: | ||||
|     paths: [codeclimate.json] | ||||
|   tags: | ||||
|   - docker | ||||
|   - priv | ||||
|  | ||||
| trigger: | ||||
|   stage: trigger | ||||
|   stage: metadata | ||||
|   script: | ||||
|   - npmci trigger | ||||
|   only: | ||||
|   - tags | ||||
|   tags: | ||||
|   - docker | ||||
|   - notpriv | ||||
|  | ||||
| pages: | ||||
|   image: hosttoday/ht-docker-node:npmci | ||||
|   stage: pages | ||||
|   stage: metadata | ||||
|   script: | ||||
|     - npmci command yarn global add npmpage | ||||
|     - npmci command npm install -g npmpage | ||||
|     - npmci command npmpage | ||||
|   tags: | ||||
|     - docker | ||||
|     - notpriv | ||||
|   only: | ||||
|     - tags | ||||
|   artifacts: | ||||
|     expire_in: 1 week | ||||
|     paths: | ||||
|     - public | ||||
|   allow_failure: true | ||||
|  | ||||
| windowsCompatibility: | ||||
|   image: stefanscherer/node-windows:10-build-tools | ||||
|   stage: metadata | ||||
|   script: | ||||
|   - npm install & npm test | ||||
|   coverage: /\d+.?\d+?\%\s*coverage/ | ||||
|   tags: | ||||
|   - windows | ||||
|   allow_failure: true | ||||
|   | ||||
| @@ -1,13 +1,16 @@ | ||||
| # smartshell | ||||
|  | ||||
| shell actions designed as promises | ||||
|  | ||||
| ## Availabililty | ||||
|  | ||||
| [](https://www.npmjs.com/package/smartshell) | ||||
| [](https://GitLab.com/pushrocks/smartshell) | ||||
| [](https://github.com/pushrocks/smartshell) | ||||
| [](https://pushrocks.gitlab.io/smartshell/) | ||||
|  | ||||
| ## Status for master | ||||
|  | ||||
| [](https://GitLab.com/pushrocks/smartshell/commits/master) | ||||
| [](https://GitLab.com/pushrocks/smartshell/commits/master) | ||||
| [](https://www.npmjs.com/package/smartshell) | ||||
| @@ -19,6 +22,7 @@ shell actions designed as promises | ||||
| [](http://standardjs.com/) | ||||
|  | ||||
| ## Usage | ||||
|  | ||||
| Use TypeScript for best in class instellisense. | ||||
|  | ||||
| For further information read the linked docs at the top of this README. | ||||
|   | ||||
							
								
								
									
										2
									
								
								dist/index.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/index.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1,2 +0,0 @@ | ||||
| export * from './smartshell.wrap'; | ||||
| export * from './smartshell.classes.smartshell'; | ||||
							
								
								
									
										8
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,8 +0,0 @@ | ||||
| "use strict"; | ||||
| function __export(m) { | ||||
|     for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; | ||||
| } | ||||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||||
| __export(require("./smartshell.wrap")); | ||||
| __export(require("./smartshell.classes.smartshell")); | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHVDQUFpQztBQUNqQyxxREFBK0MifQ== | ||||
							
								
								
									
										28
									
								
								dist/smartshell.classes.smartshell.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										28
									
								
								dist/smartshell.classes.smartshell.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1,28 +0,0 @@ | ||||
| import * as smartshellWrap from './smartshell.wrap'; | ||||
| export declare type TExecutor = 'sh' | 'bash'; | ||||
| export interface ISmartshellContructorOptions { | ||||
|     executor: TExecutor; | ||||
|     sourceFilePaths: string[]; | ||||
| } | ||||
| export declare class Smartshell { | ||||
|     executor: TExecutor; | ||||
|     sourceFileArray: string[]; | ||||
|     constructor(optionsArg: ISmartshellContructorOptions); | ||||
|     addSourceFiles(sourceFilePathsArray: string[]): void; | ||||
|     cleanSourceFiles(): void; | ||||
|     /** | ||||
|      * executes silently and returns IExecResult | ||||
|      * @param commandArg | ||||
|      */ | ||||
|     execSilent(commandArg: string): Promise<smartshellWrap.IExecResult>; | ||||
|     /** | ||||
|      * executes and returns IExecResult | ||||
|      * @param commandArg | ||||
|      */ | ||||
|     exec(commandArg: string): Promise<smartshellWrap.IExecResult>; | ||||
|     /** | ||||
|      * creates the final sourcing string | ||||
|      * @param commandArg | ||||
|      */ | ||||
|     private createExecString(commandArg); | ||||
| } | ||||
							
								
								
									
										66
									
								
								dist/smartshell.classes.smartshell.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										66
									
								
								dist/smartshell.classes.smartshell.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,66 +0,0 @@ | ||||
| "use strict"; | ||||
| var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||||
|     return new (P || (P = Promise))(function (resolve, reject) { | ||||
|         function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } | ||||
|         function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } | ||||
|         function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } | ||||
|         step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||||
|     }); | ||||
| }; | ||||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||||
| const smartshellWrap = require("./smartshell.wrap"); | ||||
| class Smartshell { | ||||
|     constructor(optionsArg) { | ||||
|         this.sourceFileArray = []; | ||||
|         this.executor = optionsArg.executor; | ||||
|         for (let sourceFilePath of optionsArg.sourceFilePaths) { | ||||
|             this.sourceFileArray.push(sourceFilePath); | ||||
|         } | ||||
|     } | ||||
|     addSourceFiles(sourceFilePathsArray) { | ||||
|         for (let sourceFilePath of sourceFilePathsArray) { | ||||
|             this.sourceFileArray.push(sourceFilePath); | ||||
|         } | ||||
|     } | ||||
|     cleanSourceFiles() { | ||||
|         this.sourceFileArray = []; | ||||
|     } | ||||
|     /** | ||||
|      * executes silently and returns IExecResult | ||||
|      * @param commandArg | ||||
|      */ | ||||
|     execSilent(commandArg) { | ||||
|         return __awaiter(this, void 0, void 0, function* () { | ||||
|             let execCommand = this.createExecString(commandArg); | ||||
|             return yield smartshellWrap.execSilent(execCommand); | ||||
|         }); | ||||
|     } | ||||
|     /** | ||||
|      * executes and returns IExecResult | ||||
|      * @param commandArg | ||||
|      */ | ||||
|     exec(commandArg) { | ||||
|         return __awaiter(this, void 0, void 0, function* () { | ||||
|             let execCommand = this.createExecString(commandArg); | ||||
|             return yield smartshellWrap.exec(execCommand); | ||||
|         }); | ||||
|     } | ||||
|     /** | ||||
|      * creates the final sourcing string | ||||
|      * @param commandArg | ||||
|      */ | ||||
|     createExecString(commandArg) { | ||||
|         if (this.executor === 'bash') { | ||||
|             let sourceString = ''; | ||||
|             for (let sourceFilePath of this.sourceFileArray) { | ||||
|                 sourceString = sourceString + `source ${sourceFilePath} && `; | ||||
|             } | ||||
|             return `bash -c '${sourceString} ${commandArg}'`; | ||||
|         } | ||||
|         else { | ||||
|             return commandArg; | ||||
|         } | ||||
|     } | ||||
| } | ||||
| exports.Smartshell = Smartshell; | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzaGVsbC5jbGFzc2VzLnNtYXJ0c2hlbGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydHNoZWxsLmNsYXNzZXMuc21hcnRzaGVsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQ0Esb0RBQW1EO0FBVW5EO0lBR0UsWUFBYSxVQUF3QztRQURyRCxvQkFBZSxHQUFhLEVBQUUsQ0FBQTtRQUU1QixJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUE7UUFDbkMsR0FBRyxDQUFDLENBQUMsSUFBSSxjQUFjLElBQUksVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUE7UUFDM0MsQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjLENBQUUsb0JBQThCO1FBQzVDLEdBQUcsQ0FBQyxDQUFDLElBQUksY0FBYyxJQUFJLG9CQUFvQixDQUFDLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQTtRQUMzQyxDQUFDO0lBQ0gsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFBO0lBQzNCLENBQUM7SUFFRDs7O09BR0c7SUFDRyxVQUFVLENBQUUsVUFBa0I7O1lBQ2xDLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQTtZQUNuRCxNQUFNLENBQUMsTUFBTSxjQUFjLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQ3JELENBQUM7S0FBQTtJQUVEOzs7T0FHRztJQUNHLElBQUksQ0FBRSxVQUFrQjs7WUFDNUIsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFBO1lBQ25ELE1BQU0sQ0FBQyxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDL0MsQ0FBQztLQUFBO0lBRUQ7OztPQUdHO0lBQ0ssZ0JBQWdCLENBQUUsVUFBVTtRQUNsQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDN0IsSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFBO1lBQ3JCLEdBQUcsQ0FBQyxDQUFDLElBQUksY0FBYyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO2dCQUNoRCxZQUFZLEdBQUcsWUFBWSxHQUFHLFVBQVUsY0FBYyxNQUFNLENBQUE7WUFDOUQsQ0FBQztZQUNELE1BQU0sQ0FBQyxZQUFZLFlBQVksSUFBSSxVQUFVLEdBQUcsQ0FBQTtRQUNsRCxDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDTixNQUFNLENBQUMsVUFBVSxDQUFBO1FBQ25CLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFyREQsZ0NBcURDIn0= | ||||
							
								
								
									
										4
									
								
								dist/smartshell.plugins.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								dist/smartshell.plugins.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1,4 +0,0 @@ | ||||
| import * as shelljs from 'shelljs'; | ||||
| import * as smartq from 'smartq'; | ||||
| import * as which from 'which'; | ||||
| export { shelljs, smartq, which }; | ||||
							
								
								
									
										9
									
								
								dist/smartshell.plugins.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								dist/smartshell.plugins.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,9 +0,0 @@ | ||||
| "use strict"; | ||||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||||
| const shelljs = require("shelljs"); | ||||
| exports.shelljs = shelljs; | ||||
| const smartq = require("smartq"); | ||||
| exports.smartq = smartq; | ||||
| const which = require("which"); | ||||
| exports.which = which; | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzaGVsbC5wbHVnaW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzaGVsbC5wbHVnaW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbUNBQWtDO0FBS2hDLDBCQUFPO0FBSlQsaUNBQWdDO0FBSzlCLHdCQUFNO0FBSlIsK0JBQThCO0FBSzVCLHNCQUFLIn0= | ||||
							
								
								
									
										52
									
								
								dist/smartshell.wrap.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										52
									
								
								dist/smartshell.wrap.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1,52 +0,0 @@ | ||||
| /// <reference types="node" /> | ||||
| import { ChildProcess } from 'child_process'; | ||||
| /** | ||||
|  * interface for ExecResult | ||||
|  */ | ||||
| export interface IExecResult { | ||||
|     exitCode: number; | ||||
|     stdout: string; | ||||
| } | ||||
| /** | ||||
|  * interface for streaming ExecResult | ||||
|  */ | ||||
| export interface IExecResultStreaming { | ||||
|     childProcess: ChildProcess; | ||||
|     finalPromise: Promise<IExecResult>; | ||||
| } | ||||
| /** | ||||
|  * executes a given command async | ||||
|  * @param commandStringArg | ||||
|  */ | ||||
| export declare let exec: (commandStringArg: string, silentArg?: boolean, strictArg?: boolean) => Promise<IExecResult>; | ||||
| /** | ||||
|  * executes a given command async and silent | ||||
|  * @param commandStringArg | ||||
|  */ | ||||
| export declare let execSilent: (commandStringArg: string) => Promise<IExecResult>; | ||||
| /** | ||||
|  * executes strict, meaning it rejects the promise if something happens | ||||
|  */ | ||||
| export declare let execStrict: (commandStringArg: string) => Promise<IExecResult>; | ||||
| /** | ||||
|  * executes a command and allws you to stream output | ||||
|  */ | ||||
| export declare let execStreaming: (commandStringArg: string, silentArg?: boolean) => { | ||||
|     childProcess: ChildProcess; | ||||
|     finalPromise: Promise<IExecResult>; | ||||
| }; | ||||
| export declare let execStreamingSilent: (commandStringArg: string) => { | ||||
|     childProcess: ChildProcess; | ||||
|     finalPromise: Promise<IExecResult>; | ||||
| }; | ||||
| /** | ||||
|  * executes a command and returns promise that will be fullfilled once an putput line matches RegexArg | ||||
|  * @param commandStringArg | ||||
|  * @param regexArg | ||||
|  */ | ||||
| export declare let execAndWaitForLine: (commandStringArg: string, regexArg: RegExp, silentArg?: boolean) => Promise<{}>; | ||||
| export declare let execAndWaitForLineSilent: (commandStringArg: string, regexArg: RegExp) => void; | ||||
| /** | ||||
|  * get a path | ||||
|  */ | ||||
| export declare let which: (cmd: string) => Promise<string>; | ||||
							
								
								
									
										113
									
								
								dist/smartshell.wrap.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										113
									
								
								dist/smartshell.wrap.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,113 +0,0 @@ | ||||
| "use strict"; | ||||
| var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||||
|     return new (P || (P = Promise))(function (resolve, reject) { | ||||
|         function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } | ||||
|         function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } | ||||
|         function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } | ||||
|         step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||||
|     }); | ||||
| }; | ||||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||||
| const plugins = require("./smartshell.plugins"); | ||||
| /** | ||||
|  * import path | ||||
|  */ | ||||
| let importPath = (stringArg) => { | ||||
|     if (process.env.SMARTSHELL_PATH) { | ||||
|         let commandResult = `PATH=${process.env.SMARTSHELL_PATH} && ${stringArg}`; | ||||
|         // console.log(commandResult) | ||||
|         return commandResult; | ||||
|     } | ||||
|     else { | ||||
|         return stringArg; | ||||
|     } | ||||
| }; | ||||
| /** | ||||
|  * executes a given command async | ||||
|  * @param commandStringArg | ||||
|  */ | ||||
| exports.exec = (commandStringArg, silentArg = false, strictArg = false) => { | ||||
|     let done = plugins.smartq.defer(); | ||||
|     plugins.shelljs.exec(importPath(commandStringArg), { async: true, silent: silentArg }, (code, stdout, stderr) => { | ||||
|         if (stderr | ||||
|             && (stderr !== '') | ||||
|             && (!silentArg || strictArg) | ||||
|             && (process.env.DEBUG === 'true')) { | ||||
|             console.log('StdErr found.'); | ||||
|             console.log(stderr); | ||||
|         } | ||||
|         if (strictArg) { | ||||
|             done.reject(new Error(stderr)); | ||||
|             return; | ||||
|         } | ||||
|         done.resolve({ | ||||
|             exitCode: code, | ||||
|             stdout: stdout | ||||
|         }); | ||||
|     }); | ||||
|     return done.promise; | ||||
| }; | ||||
| /** | ||||
|  * executes a given command async and silent | ||||
|  * @param commandStringArg | ||||
|  */ | ||||
| exports.execSilent = (commandStringArg) => __awaiter(this, void 0, void 0, function* () { | ||||
|     return yield exports.exec(commandStringArg, true); | ||||
| }); | ||||
| /** | ||||
|  * executes strict, meaning it rejects the promise if something happens | ||||
|  */ | ||||
| exports.execStrict = (commandStringArg) => __awaiter(this, void 0, void 0, function* () { | ||||
|     return yield exports.exec(commandStringArg, true, true); | ||||
| }); | ||||
| /** | ||||
|  * executes a command and allws you to stream output | ||||
|  */ | ||||
| exports.execStreaming = (commandStringArg, silentArg = false) => { | ||||
|     let childProcessEnded = plugins.smartq.defer(); | ||||
|     let execChildProcess = plugins.shelljs.exec(importPath(commandStringArg), { async: true, silent: silentArg }, (code, stdout, stderr) => { | ||||
|         childProcessEnded.resolve({ | ||||
|             exitCode: code, | ||||
|             stdout: stdout | ||||
|         }); | ||||
|     }); | ||||
|     return { | ||||
|         childProcess: execChildProcess, | ||||
|         finalPromise: childProcessEnded.promise | ||||
|     }; | ||||
| }; | ||||
| exports.execStreamingSilent = (commandStringArg) => { | ||||
|     return exports.execStreaming(commandStringArg, true); | ||||
| }; | ||||
| /** | ||||
|  * executes a command and returns promise that will be fullfilled once an putput line matches RegexArg | ||||
|  * @param commandStringArg | ||||
|  * @param regexArg | ||||
|  */ | ||||
| exports.execAndWaitForLine = (commandStringArg, regexArg, silentArg = false) => { | ||||
|     let done = plugins.smartq.defer(); | ||||
|     let execStreamingResult = exports.execStreaming(commandStringArg, silentArg); | ||||
|     execStreamingResult.childProcess.stdout.on('data', (stdOutChunk) => { | ||||
|         if (regexArg.test(stdOutChunk)) { | ||||
|             done.resolve(); | ||||
|         } | ||||
|     }); | ||||
|     return done.promise; | ||||
| }; | ||||
| exports.execAndWaitForLineSilent = (commandStringArg, regexArg) => { | ||||
|     exports.execAndWaitForLine(commandStringArg, regexArg, true); | ||||
| }; | ||||
| /** | ||||
|  * get a path | ||||
|  */ | ||||
| exports.which = (cmd) => { | ||||
|     let done = plugins.smartq.defer(); | ||||
|     plugins.which(cmd, (err, path) => { | ||||
|         if (err) { | ||||
|             done.reject(err); | ||||
|         } | ||||
|         done.resolve(path); | ||||
|     }); | ||||
|     return done.promise; | ||||
| }; | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzaGVsbC53cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzaGVsbC53cmFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxnREFBK0M7QUFzQi9DOztHQUVHO0FBQ0gsSUFBSSxVQUFVLEdBQUcsQ0FBQyxTQUFTLEVBQVUsRUFBRTtJQUNyQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDaEMsSUFBSSxhQUFhLEdBQUcsUUFBUSxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsT0FBTyxTQUFTLEVBQUUsQ0FBQTtRQUN6RSw2QkFBNkI7UUFDN0IsTUFBTSxDQUFDLGFBQWEsQ0FBQTtJQUN0QixDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDTixNQUFNLENBQUMsU0FBUyxDQUFBO0lBQ2xCLENBQUM7QUFDSCxDQUFDLENBQUE7QUFFRDs7O0dBR0c7QUFDUSxRQUFBLElBQUksR0FBRyxDQUFDLGdCQUF3QixFQUFFLFlBQXFCLEtBQUssRUFBRSxTQUFTLEdBQUcsS0FBSyxFQUF3QixFQUFFO0lBQ2xILElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFlLENBQUE7SUFDOUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDOUcsRUFBRSxDQUFDLENBQ0QsTUFBTTtlQUNILENBQUMsTUFBTSxLQUFLLEVBQUUsQ0FBQztlQUNmLENBQUMsQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDO2VBQ3pCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEtBQUssTUFBTSxDQUNsQyxDQUFDLENBQUMsQ0FBQztZQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUE7WUFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNyQixDQUFDO1FBQ0QsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtZQUM5QixNQUFNLENBQUE7UUFDUixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUNYLFFBQVEsRUFBRSxJQUFJO1lBQ2QsTUFBTSxFQUFFLE1BQU07U0FDZixDQUFDLENBQUE7SUFDSixDQUFDLENBQUMsQ0FBQTtJQUNGLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFBO0FBQ3JCLENBQUMsQ0FBQTtBQUVEOzs7R0FHRztBQUNRLFFBQUEsVUFBVSxHQUFHLENBQU8sZ0JBQXdCLEVBQXdCLEVBQUU7SUFDL0UsTUFBTSxDQUFDLE1BQU0sWUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxDQUFBO0FBQzNDLENBQUMsQ0FBQSxDQUFBO0FBRUQ7O0dBRUc7QUFDUSxRQUFBLFVBQVUsR0FBRyxDQUFPLGdCQUF3QixFQUF3QixFQUFFO0lBQy9FLE1BQU0sQ0FBQyxNQUFNLFlBQUksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUE7QUFDakQsQ0FBQyxDQUFBLENBQUE7QUFFRDs7R0FFRztBQUNRLFFBQUEsYUFBYSxHQUFHLENBQUMsZ0JBQXdCLEVBQUUsWUFBcUIsS0FBSyxFQUFFLEVBQUU7SUFDbEYsSUFBSSxpQkFBaUIsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBZSxDQUFBO0lBQzNELElBQUksZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDbkksaUJBQWlCLENBQUMsT0FBTyxDQUFDO1lBQ3hCLFFBQVEsRUFBRSxJQUFJO1lBQ2QsTUFBTSxFQUFFLE1BQU07U0FDZixDQUFDLENBQUE7SUFDSixDQUFDLENBQUMsQ0FBQTtJQUNGLE1BQU0sQ0FBQztRQUNMLFlBQVksRUFBRSxnQkFBZ0I7UUFDOUIsWUFBWSxFQUFFLGlCQUFpQixDQUFDLE9BQU87S0FDeEMsQ0FBQTtBQUNILENBQUMsQ0FBQTtBQUVVLFFBQUEsbUJBQW1CLEdBQUcsQ0FBQyxnQkFBd0IsRUFBRSxFQUFFO0lBQzVELE1BQU0sQ0FBQyxxQkFBYSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxDQUFBO0FBQzlDLENBQUMsQ0FBQTtBQUVEOzs7O0dBSUc7QUFDUSxRQUFBLGtCQUFrQixHQUFHLENBQUMsZ0JBQXdCLEVBQUUsUUFBZ0IsRUFBRSxZQUFxQixLQUFLLEVBQUUsRUFBRTtJQUN6RyxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQ2pDLElBQUksbUJBQW1CLEdBQUcscUJBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTLENBQUMsQ0FBQTtJQUNwRSxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxXQUFtQixFQUFFLEVBQUU7UUFDekUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBQ2hCLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNGLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFBO0FBQ3JCLENBQUMsQ0FBQTtBQUVVLFFBQUEsd0JBQXdCLEdBQUcsQ0FBQyxnQkFBd0IsRUFBRSxRQUFnQixFQUFFLEVBQUU7SUFDbkYsMEJBQWtCLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFBO0FBQ3RELENBQUMsQ0FBQTtBQUVEOztHQUVHO0FBQ1EsUUFBQSxLQUFLLEdBQUcsQ0FBQyxHQUFXLEVBQW1CLEVBQUU7SUFDbEQsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQVUsQ0FBQTtJQUN6QyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxJQUFZLEVBQUUsRUFBRTtRQUN2QyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ1IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNsQixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNwQixDQUFDLENBQUMsQ0FBQTtJQUNGLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFBO0FBQ3JCLENBQUMsQ0FBQSJ9 | ||||
| @@ -1,13 +1,16 @@ | ||||
| # smartshell | ||||
|  | ||||
| shell actions designed as promises | ||||
|  | ||||
| ## Availabililty | ||||
|  | ||||
| [](https://www.npmjs.com/package/smartshell) | ||||
| [](https://GitLab.com/pushrocks/smartshell) | ||||
| [](https://github.com/pushrocks/smartshell) | ||||
| [](https://pushrocks.gitlab.io/smartshell/) | ||||
|  | ||||
| ## Status for master | ||||
|  | ||||
| [](https://GitLab.com/pushrocks/smartshell/commits/master) | ||||
| [](https://GitLab.com/pushrocks/smartshell/commits/master) | ||||
| [](https://www.npmjs.com/package/smartshell) | ||||
| @@ -19,6 +22,7 @@ shell actions designed as promises | ||||
| [](http://standardjs.com/) | ||||
|  | ||||
| ## Usage | ||||
|  | ||||
| Use TypeScript for best in class instellisense. | ||||
|  | ||||
| For further information read the linked docs at the top of this README. | ||||
|   | ||||
							
								
								
									
										861
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										861
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,861 @@ | ||||
| { | ||||
|   "name": "@pushrocks/smartshell", | ||||
|   "version": "1.0.19", | ||||
|   "lockfileVersion": 1, | ||||
|   "requires": true, | ||||
|   "dependencies": { | ||||
|     "@airbnb/node-memwatch": { | ||||
|       "version": "1.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/@airbnb/node-memwatch/-/node-memwatch-1.0.2.tgz", | ||||
|       "integrity": "sha512-2R+MEEMSTUdKwQ6NFWkyA/UNoSjL1tMldZqJbZpgXSwNMBzlNlkUWEXKu9RqTTMkDqJRfGJ2VDs8gPlPK2APDQ==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "bindings": "^1.3.0", | ||||
|         "nan": "^2.9.2" | ||||
|       } | ||||
|     }, | ||||
|     "@gitzone/tsrun": { | ||||
|       "version": "1.1.9", | ||||
|       "resolved": "https://registry.npmjs.org/@gitzone/tsrun/-/tsrun-1.1.9.tgz", | ||||
|       "integrity": "sha512-MbCLj4hSK5nY6cMqT0OxY0BrXffmiC1Rjbzan8CmEpB8OttaAJT+zsJErJWhI+pk4s75Te73PyhHYaJAXUoJhw==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "@pushrocks/smartfile": "^6.0.3", | ||||
|         "ts-node": "^7.0.0", | ||||
|         "typescript": "^2.9.1" | ||||
|       } | ||||
|     }, | ||||
|     "@pushrocks/smartdelay": { | ||||
|       "version": "2.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@pushrocks/smartdelay/-/smartdelay-2.0.1.tgz", | ||||
|       "integrity": "sha512-olWwh2/JWfhmYdgqrR5RdSsgv1GlXBnbP+XKUrdKVk3dcCzkoqDx9lRE9NfpoCg1cUM2VMxbTVgTW9PWyexEuw==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "@pushrocks/smartpromise": "^2.0.5" | ||||
|       } | ||||
|     }, | ||||
|     "@pushrocks/smartfile": { | ||||
|       "version": "6.0.3", | ||||
|       "resolved": "https://registry.npmjs.org/@pushrocks/smartfile/-/smartfile-6.0.3.tgz", | ||||
|       "integrity": "sha512-oYnLQzY/R6kVNerbWY4WwnPvdxXldrzMPWcB9j0aAdSDSqGwBEO1/ZFTQuNzN5MmPopoYmJrc06ZmI6dm4OJmw==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "@pushrocks/smartpromise": "^2.0.5", | ||||
|         "@pushrocks/smartrequest": "^1.0.15", | ||||
|         "@types/fs-extra": "^5.0.3", | ||||
|         "@types/vinyl": "^2.0.2", | ||||
|         "fs-extra": "^6.0.1", | ||||
|         "glob": "^7.1.2", | ||||
|         "js-yaml": "^3.10.0", | ||||
|         "smartpath": "^3.2.8", | ||||
|         "vinyl-file": "^3.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "@pushrocks/smartpromise": { | ||||
|       "version": "2.0.5", | ||||
|       "resolved": "https://registry.npmjs.org/@pushrocks/smartpromise/-/smartpromise-2.0.5.tgz", | ||||
|       "integrity": "sha512-9j/chLtIiNkR0MDw7Mpxg9slxAVvAQwUZuiaPYX5KpHdKxQaHLI1VZ8IN0vPhwlfgNO4i4vGXV0wB8BvSDj03g==" | ||||
|     }, | ||||
|     "@pushrocks/smartrequest": { | ||||
|       "version": "1.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/@pushrocks/smartrequest/-/smartrequest-1.1.1.tgz", | ||||
|       "integrity": "sha512-vsahVXC8mv/Yq91X1Lh625ap8TeP9dJ7H6OjFTzCprRfuygOBQ2jRxWgPnIAObRJ2UWUD2QVUsUep+2cG+7slA==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "@pushrocks/smartpromise": "^2.0.5" | ||||
|       } | ||||
|     }, | ||||
|     "@pushrocks/tapbundle": { | ||||
|       "version": "3.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@pushrocks/tapbundle/-/tapbundle-3.0.1.tgz", | ||||
|       "integrity": "sha512-QWVz5EwB3sjjqHTMa22xuw78TBgVTyqKTF5H6HT9d/rvxL5Ag4ZrTuoadMPcU9hRBx9gtPsKbWq4lEwOHdCmLA==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "@pushrocks/smartdelay": "^2.0.1", | ||||
|         "@pushrocks/smartpromise": "^2.0.5", | ||||
|         "early": "^2.1.1", | ||||
|         "leakage": "^0.4.0", | ||||
|         "smartchai": "^2.0.1" | ||||
|       } | ||||
|     }, | ||||
|     "@types/chai": { | ||||
|       "version": "4.1.4", | ||||
|       "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.4.tgz", | ||||
|       "integrity": "sha512-h6+VEw2Vr3ORiFCyyJmcho2zALnUq9cvdB/IO8Xs9itrJVCenC7o26A6+m7D0ihTTr65eS259H5/Ghl/VjYs6g==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "@types/chai-as-promised": { | ||||
|       "version": "7.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.0.tgz", | ||||
|       "integrity": "sha512-MFiW54UOSt+f2bRw8J7LgQeIvE/9b4oGvwU7XW30S9QGAiHGnU/fmiOprsyMkdmH2rl8xSPc0/yrQw8juXU6bQ==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "@types/chai": "*" | ||||
|       } | ||||
|     }, | ||||
|     "@types/chai-string": { | ||||
|       "version": "1.4.1", | ||||
|       "resolved": "https://registry.npmjs.org/@types/chai-string/-/chai-string-1.4.1.tgz", | ||||
|       "integrity": "sha512-aRNMs6TKgjgPlCHwDfq/YNy5VtRR2hJ4AUWByddrT0TRVVD8eX4MiHW6/iHvmQHRlVuuPZcwnTUE7b4yFt7bEA==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "@types/chai": "*" | ||||
|       } | ||||
|     }, | ||||
|     "@types/fs-extra": { | ||||
|       "version": "5.0.4", | ||||
|       "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.4.tgz", | ||||
|       "integrity": "sha512-DsknoBvD8s+RFfSGjmERJ7ZOP1HI0UZRA3FSI+Zakhrc/Gy26YQsLI+m5V5DHxroHRJqCDLKJp7Hixn8zyaF7g==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "@types/node": "*" | ||||
|       } | ||||
|     }, | ||||
|     "@types/node": { | ||||
|       "version": "10.5.2", | ||||
|       "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.2.tgz", | ||||
|       "integrity": "sha512-m9zXmifkZsMHZBOyxZWilMwmTlpC8x5Ty360JKTiXvlXZfBWYpsg9ZZvP/Ye+iZUh+Q+MxDLjItVTWIsfwz+8Q==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "@types/vinyl": { | ||||
|       "version": "2.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.2.tgz", | ||||
|       "integrity": "sha512-2iYpNuOl98SrLPBZfEN9Mh2JCJ2EI9HU35SfgBEb51DcmaHkhp8cKMblYeBqMQiwXMgAD3W60DbQ4i/UdLiXhw==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "@types/node": "*" | ||||
|       } | ||||
|     }, | ||||
|     "@types/which": { | ||||
|       "version": "1.3.1", | ||||
|       "resolved": "https://registry.npmjs.org/@types/which/-/which-1.3.1.tgz", | ||||
|       "integrity": "sha512-ZrJDWpvg75LTGX4XwuneY9s6bF3OeZcGTpoGh3zDV9ytzcHMFsRrMIaLBRJZQMBoGyKs6unBQfVdrLZiYfb1zQ==" | ||||
|     }, | ||||
|     "ansi-256-colors": { | ||||
|       "version": "1.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/ansi-256-colors/-/ansi-256-colors-1.1.0.tgz", | ||||
|       "integrity": "sha1-kQ3lDvzHwJ49gvL4er1rcAwYgYo=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "argparse": { | ||||
|       "version": "1.0.10", | ||||
|       "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", | ||||
|       "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "sprintf-js": "~1.0.2" | ||||
|       } | ||||
|     }, | ||||
|     "arrify": { | ||||
|       "version": "1.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", | ||||
|       "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "assertion-error": { | ||||
|       "version": "1.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", | ||||
|       "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "balanced-match": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", | ||||
|       "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "beautycolor": { | ||||
|       "version": "1.0.11", | ||||
|       "resolved": "https://registry.npmjs.org/beautycolor/-/beautycolor-1.0.11.tgz", | ||||
|       "integrity": "sha512-Uxl/39+2uqixPzsrV+0NOHf0sJlWmsKnRTV0oz8+bfwnHPA/E+SZuh3Upn3OXobv0W7LZg5BVoLj1nkMj7m5jA==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "ansi-256-colors": "^1.1.0", | ||||
|         "typings-global": "^1.0.14" | ||||
|       } | ||||
|     }, | ||||
|     "bindings": { | ||||
|       "version": "1.3.0", | ||||
|       "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.0.tgz", | ||||
|       "integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "brace-expansion": { | ||||
|       "version": "1.1.11", | ||||
|       "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", | ||||
|       "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "balanced-match": "^1.0.0", | ||||
|         "concat-map": "0.0.1" | ||||
|       } | ||||
|     }, | ||||
|     "buffer-from": { | ||||
|       "version": "1.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz", | ||||
|       "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "chai": { | ||||
|       "version": "4.1.2", | ||||
|       "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", | ||||
|       "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "assertion-error": "^1.0.1", | ||||
|         "check-error": "^1.0.1", | ||||
|         "deep-eql": "^3.0.0", | ||||
|         "get-func-name": "^2.0.0", | ||||
|         "pathval": "^1.0.0", | ||||
|         "type-detect": "^4.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "chai-as-promised": { | ||||
|       "version": "7.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", | ||||
|       "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "check-error": "^1.0.2" | ||||
|       } | ||||
|     }, | ||||
|     "chai-string": { | ||||
|       "version": "1.4.0", | ||||
|       "resolved": "https://registry.npmjs.org/chai-string/-/chai-string-1.4.0.tgz", | ||||
|       "integrity": "sha1-NZFAwFHTak5LGl/GuRAVL0OKjUk=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "check-error": { | ||||
|       "version": "1.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", | ||||
|       "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "clone": { | ||||
|       "version": "2.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", | ||||
|       "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "clone-buffer": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", | ||||
|       "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "clone-stats": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", | ||||
|       "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "cloneable-readable": { | ||||
|       "version": "1.1.2", | ||||
|       "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.2.tgz", | ||||
|       "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "inherits": "^2.0.1", | ||||
|         "process-nextick-args": "^2.0.0", | ||||
|         "readable-stream": "^2.3.5" | ||||
|       } | ||||
|     }, | ||||
|     "concat-map": { | ||||
|       "version": "0.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", | ||||
|       "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "core-util-is": { | ||||
|       "version": "1.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", | ||||
|       "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "deep-eql": { | ||||
|       "version": "3.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", | ||||
|       "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "type-detect": "^4.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "define-properties": { | ||||
|       "version": "1.1.2", | ||||
|       "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", | ||||
|       "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "foreach": "^2.0.5", | ||||
|         "object-keys": "^1.0.8" | ||||
|       } | ||||
|     }, | ||||
|     "diff": { | ||||
|       "version": "3.5.0", | ||||
|       "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", | ||||
|       "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "early": { | ||||
|       "version": "2.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/early/-/early-2.1.1.tgz", | ||||
|       "integrity": "sha1-hB4jJU6l3FTYr67ugvWrZcAO4jw=", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "beautycolor": "^1.0.7", | ||||
|         "smartq": "^1.1.1", | ||||
|         "typings-global": "^1.0.16" | ||||
|       } | ||||
|     }, | ||||
|     "es-abstract": { | ||||
|       "version": "1.12.0", | ||||
|       "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", | ||||
|       "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "es-to-primitive": "^1.1.1", | ||||
|         "function-bind": "^1.1.1", | ||||
|         "has": "^1.0.1", | ||||
|         "is-callable": "^1.1.3", | ||||
|         "is-regex": "^1.0.4" | ||||
|       } | ||||
|     }, | ||||
|     "es-to-primitive": { | ||||
|       "version": "1.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", | ||||
|       "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "is-callable": "^1.1.1", | ||||
|         "is-date-object": "^1.0.1", | ||||
|         "is-symbol": "^1.0.1" | ||||
|       } | ||||
|     }, | ||||
|     "es6-error": { | ||||
|       "version": "4.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", | ||||
|       "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "esprima": { | ||||
|       "version": "4.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", | ||||
|       "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "first-chunk-stream": { | ||||
|       "version": "2.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", | ||||
|       "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "readable-stream": "^2.0.2" | ||||
|       } | ||||
|     }, | ||||
|     "foreach": { | ||||
|       "version": "2.0.5", | ||||
|       "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", | ||||
|       "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "fs-extra": { | ||||
|       "version": "6.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz", | ||||
|       "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "graceful-fs": "^4.1.2", | ||||
|         "jsonfile": "^4.0.0", | ||||
|         "universalify": "^0.1.0" | ||||
|       } | ||||
|     }, | ||||
|     "fs.realpath": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", | ||||
|       "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "function-bind": { | ||||
|       "version": "1.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", | ||||
|       "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "get-func-name": { | ||||
|       "version": "2.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", | ||||
|       "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "glob": { | ||||
|       "version": "7.1.2", | ||||
|       "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", | ||||
|       "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "fs.realpath": "^1.0.0", | ||||
|         "inflight": "^1.0.4", | ||||
|         "inherits": "2", | ||||
|         "minimatch": "^3.0.4", | ||||
|         "once": "^1.3.0", | ||||
|         "path-is-absolute": "^1.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "graceful-fs": { | ||||
|       "version": "4.1.11", | ||||
|       "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", | ||||
|       "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "has": { | ||||
|       "version": "1.0.3", | ||||
|       "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", | ||||
|       "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "function-bind": "^1.1.1" | ||||
|       } | ||||
|     }, | ||||
|     "home": { | ||||
|       "version": "1.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/home/-/home-1.0.1.tgz", | ||||
|       "integrity": "sha1-lqQjzrSbmDeP9e886uBZpVf53TU=", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "os-homedir": "^1.0.1" | ||||
|       } | ||||
|     }, | ||||
|     "inflight": { | ||||
|       "version": "1.0.6", | ||||
|       "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", | ||||
|       "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "once": "^1.3.0", | ||||
|         "wrappy": "1" | ||||
|       } | ||||
|     }, | ||||
|     "inherits": { | ||||
|       "version": "2.0.3", | ||||
|       "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", | ||||
|       "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "is-callable": { | ||||
|       "version": "1.1.4", | ||||
|       "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", | ||||
|       "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "is-date-object": { | ||||
|       "version": "1.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", | ||||
|       "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "is-regex": { | ||||
|       "version": "1.0.4", | ||||
|       "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", | ||||
|       "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "has": "^1.0.1" | ||||
|       } | ||||
|     }, | ||||
|     "is-symbol": { | ||||
|       "version": "1.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", | ||||
|       "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "is-utf8": { | ||||
|       "version": "0.2.1", | ||||
|       "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", | ||||
|       "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "isarray": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", | ||||
|       "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "isexe": { | ||||
|       "version": "2.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", | ||||
|       "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" | ||||
|     }, | ||||
|     "js-yaml": { | ||||
|       "version": "3.12.0", | ||||
|       "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", | ||||
|       "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "argparse": "^1.0.7", | ||||
|         "esprima": "^4.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "jsonfile": { | ||||
|       "version": "4.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", | ||||
|       "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "graceful-fs": "^4.1.6" | ||||
|       } | ||||
|     }, | ||||
|     "leakage": { | ||||
|       "version": "0.4.0", | ||||
|       "resolved": "https://registry.npmjs.org/leakage/-/leakage-0.4.0.tgz", | ||||
|       "integrity": "sha512-x7gYK5n5dPkHDZWJ2Kh8Ag1hZNzUh+HtXn8Bv1aDdN6o6ONPCJ8sOfFq+kxcULJFp3lXaCjXb3iXOLmQRbBLwA==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "@airbnb/node-memwatch": "^1.0.2", | ||||
|         "es6-error": "^4.0.2", | ||||
|         "left-pad": "^1.1.3", | ||||
|         "minimist": "^1.2.0", | ||||
|         "pretty-bytes": "^4.0.2" | ||||
|       } | ||||
|     }, | ||||
|     "left-pad": { | ||||
|       "version": "1.3.0", | ||||
|       "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", | ||||
|       "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "make-error": { | ||||
|       "version": "1.3.4", | ||||
|       "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.4.tgz", | ||||
|       "integrity": "sha512-0Dab5btKVPhibSalc9QGXb559ED7G7iLjFXBaj9Wq8O3vorueR5K5jaE3hkG6ZQINyhA/JgG6Qk4qdFQjsYV6g==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "minimatch": { | ||||
|       "version": "3.0.4", | ||||
|       "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", | ||||
|       "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "brace-expansion": "^1.1.7" | ||||
|       } | ||||
|     }, | ||||
|     "minimist": { | ||||
|       "version": "1.2.0", | ||||
|       "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", | ||||
|       "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "mkdirp": { | ||||
|       "version": "0.5.1", | ||||
|       "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", | ||||
|       "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "minimist": "0.0.8" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "minimist": { | ||||
|           "version": "0.0.8", | ||||
|           "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", | ||||
|           "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", | ||||
|           "dev": true | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "nan": { | ||||
|       "version": "2.10.0", | ||||
|       "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", | ||||
|       "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "object-keys": { | ||||
|       "version": "1.0.12", | ||||
|       "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", | ||||
|       "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "object.getownpropertydescriptors": { | ||||
|       "version": "2.0.3", | ||||
|       "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", | ||||
|       "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "define-properties": "^1.1.2", | ||||
|         "es-abstract": "^1.5.1" | ||||
|       } | ||||
|     }, | ||||
|     "once": { | ||||
|       "version": "1.4.0", | ||||
|       "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", | ||||
|       "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "wrappy": "1" | ||||
|       } | ||||
|     }, | ||||
|     "os-homedir": { | ||||
|       "version": "1.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", | ||||
|       "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "path-is-absolute": { | ||||
|       "version": "1.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", | ||||
|       "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "pathval": { | ||||
|       "version": "1.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", | ||||
|       "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "pify": { | ||||
|       "version": "2.3.0", | ||||
|       "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", | ||||
|       "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "pretty-bytes": { | ||||
|       "version": "4.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz", | ||||
|       "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "process-nextick-args": { | ||||
|       "version": "2.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", | ||||
|       "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "readable-stream": { | ||||
|       "version": "2.3.6", | ||||
|       "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", | ||||
|       "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "core-util-is": "~1.0.0", | ||||
|         "inherits": "~2.0.3", | ||||
|         "isarray": "~1.0.0", | ||||
|         "process-nextick-args": "~2.0.0", | ||||
|         "safe-buffer": "~5.1.1", | ||||
|         "string_decoder": "~1.1.1", | ||||
|         "util-deprecate": "~1.0.1" | ||||
|       } | ||||
|     }, | ||||
|     "remove-trailing-separator": { | ||||
|       "version": "1.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", | ||||
|       "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "replace-ext": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", | ||||
|       "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "safe-buffer": { | ||||
|       "version": "5.1.2", | ||||
|       "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", | ||||
|       "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "smartchai": { | ||||
|       "version": "2.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/smartchai/-/smartchai-2.0.1.tgz", | ||||
|       "integrity": "sha512-9M+R56OhAHXScxgr2vzQqxGx0XMS0QXriNZuP7hjlbVbo2FUT+l60iEzbwPt9Ga+5u2cEEjSSoZEQVqlROaddA==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "@types/chai": "^4.1.2", | ||||
|         "@types/chai-as-promised": "^7.1.0", | ||||
|         "@types/chai-string": "^1.4.0", | ||||
|         "chai": "^4.1.2", | ||||
|         "chai-as-promised": "^7.1.1", | ||||
|         "chai-string": "^1.4.0" | ||||
|       } | ||||
|     }, | ||||
|     "smartpath": { | ||||
|       "version": "3.2.8", | ||||
|       "resolved": "https://registry.npmjs.org/smartpath/-/smartpath-3.2.8.tgz", | ||||
|       "integrity": "sha1-SDS9OouuIpW6rK26I8h6UBlS+UA=", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "home": "^1.0.1", | ||||
|         "typings-global": "^1.0.14" | ||||
|       } | ||||
|     }, | ||||
|     "smartq": { | ||||
|       "version": "1.1.8", | ||||
|       "resolved": "https://registry.npmjs.org/smartq/-/smartq-1.1.8.tgz", | ||||
|       "integrity": "sha512-FURlYW/C3bLeZjJcBVyw7bxCyQoCXiXbLCZcDUKznhXHaLu35c8m33/a2H8CA0rtb82lvzN8dRLnBZAcNMzNHQ==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "util.promisify": "^1.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "source-map": { | ||||
|       "version": "0.6.1", | ||||
|       "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", | ||||
|       "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "source-map-support": { | ||||
|       "version": "0.5.6", | ||||
|       "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.6.tgz", | ||||
|       "integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "buffer-from": "^1.0.0", | ||||
|         "source-map": "^0.6.0" | ||||
|       } | ||||
|     }, | ||||
|     "sprintf-js": { | ||||
|       "version": "1.0.3", | ||||
|       "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", | ||||
|       "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "string_decoder": { | ||||
|       "version": "1.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", | ||||
|       "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "safe-buffer": "~5.1.0" | ||||
|       } | ||||
|     }, | ||||
|     "strip-bom": { | ||||
|       "version": "2.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", | ||||
|       "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "is-utf8": "^0.2.0" | ||||
|       } | ||||
|     }, | ||||
|     "strip-bom-buf": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz", | ||||
|       "integrity": "sha1-HLRar1dTD0yvhsf3UXnSyaUd1XI=", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "is-utf8": "^0.2.1" | ||||
|       } | ||||
|     }, | ||||
|     "strip-bom-stream": { | ||||
|       "version": "2.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", | ||||
|       "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "first-chunk-stream": "^2.0.0", | ||||
|         "strip-bom": "^2.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "ts-node": { | ||||
|       "version": "7.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.0.tgz", | ||||
|       "integrity": "sha512-klJsfswHP0FuOLsvBZ/zzCfUvakOSSxds78mVeK7I+qP76YWtxf16hEZsp3U+b0kIo82R5UatGFeblYMqabb2Q==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "arrify": "^1.0.0", | ||||
|         "buffer-from": "^1.1.0", | ||||
|         "diff": "^3.1.0", | ||||
|         "make-error": "^1.1.1", | ||||
|         "minimist": "^1.2.0", | ||||
|         "mkdirp": "^0.5.1", | ||||
|         "source-map-support": "^0.5.6", | ||||
|         "yn": "^2.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "type-detect": { | ||||
|       "version": "4.0.8", | ||||
|       "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", | ||||
|       "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "typescript": { | ||||
|       "version": "2.9.2", | ||||
|       "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", | ||||
|       "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "typings-global": { | ||||
|       "version": "1.0.28", | ||||
|       "resolved": "https://registry.npmjs.org/typings-global/-/typings-global-1.0.28.tgz", | ||||
|       "integrity": "sha512-6VOwJWEY2971HOMHu/7sURzUXiD4/LiMJPsMAOqkHHAtS3MVpLFE5gzTiHilsH9KY5VE1mBQirWIgWFsDuo90A==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "universalify": { | ||||
|       "version": "0.1.2", | ||||
|       "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", | ||||
|       "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "util-deprecate": { | ||||
|       "version": "1.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", | ||||
|       "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "util.promisify": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", | ||||
|       "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "define-properties": "^1.1.2", | ||||
|         "object.getownpropertydescriptors": "^2.0.3" | ||||
|       } | ||||
|     }, | ||||
|     "vinyl": { | ||||
|       "version": "2.2.0", | ||||
|       "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", | ||||
|       "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "clone": "^2.1.1", | ||||
|         "clone-buffer": "^1.0.0", | ||||
|         "clone-stats": "^1.0.0", | ||||
|         "cloneable-readable": "^1.0.0", | ||||
|         "remove-trailing-separator": "^1.0.1", | ||||
|         "replace-ext": "^1.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "vinyl-file": { | ||||
|       "version": "3.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-3.0.0.tgz", | ||||
|       "integrity": "sha1-sQTZ5ECf+jJfqt1SBkLQo7SIs2U=", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "graceful-fs": "^4.1.2", | ||||
|         "pify": "^2.3.0", | ||||
|         "strip-bom-buf": "^1.0.0", | ||||
|         "strip-bom-stream": "^2.0.0", | ||||
|         "vinyl": "^2.0.1" | ||||
|       } | ||||
|     }, | ||||
|     "which": { | ||||
|       "version": "1.3.1", | ||||
|       "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", | ||||
|       "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", | ||||
|       "requires": { | ||||
|         "isexe": "^2.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "wrappy": { | ||||
|       "version": "1.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", | ||||
|       "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "yn": { | ||||
|       "version": "2.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", | ||||
|       "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=", | ||||
|       "dev": true | ||||
|     } | ||||
|   } | ||||
| } | ||||
							
								
								
									
										19
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								package.json
									
									
									
									
									
								
							| @@ -1,12 +1,13 @@ | ||||
| { | ||||
|   "name": "smartshell", | ||||
|   "name": "@pushrocks/smartshell", | ||||
|   "private": false, | ||||
|   "version": "1.0.19", | ||||
|   "description": "shell actions designed as promises", | ||||
|   "main": "dist/index.js", | ||||
|   "typings": "dist/index.d.ts", | ||||
|   "scripts": { | ||||
|     "test": "(npmts)", | ||||
|     "testLocal": "(ts-node --compilerOptions '{\"target\":\"es6\"}' test/test.ts)" | ||||
|     "test": "(tsrun test/test.ts)", | ||||
|     "build": "(npmts)" | ||||
|   }, | ||||
|   "repository": { | ||||
|     "type": "git", | ||||
| @@ -23,13 +24,13 @@ | ||||
|   }, | ||||
|   "homepage": "https://gitlab.com/pushrocks/smartshell#README", | ||||
|   "devDependencies": { | ||||
|     "tapbundle": "^1.1.8" | ||||
|     "@gitzone/tsrun": "^1.1.9", | ||||
|     "@pushrocks/tapbundle": "^3.0.1", | ||||
|     "@types/node": "^10.5.2" | ||||
|   }, | ||||
|   "dependencies": { | ||||
|     "@types/which": "^1.0.28", | ||||
|     "shelljs": "^0.7.8", | ||||
|     "smartq": "^1.1.6", | ||||
|     "typings-global": "^1.0.23", | ||||
|     "which": "^1.3.0" | ||||
|     "@pushrocks/smartpromise": "^2.0.5", | ||||
|     "@types/which": "^1.3.1", | ||||
|     "which": "^1.3.1" | ||||
|   } | ||||
| } | ||||
|   | ||||
							
								
								
									
										56
									
								
								test/test.ts
									
									
									
									
									
								
							
							
						
						
									
										56
									
								
								test/test.ts
									
									
									
									
									
								
							| @@ -1,34 +1,34 @@ | ||||
| import { expect, tap } from 'tapbundle' | ||||
| import { expect, tap } from '@pushrocks/tapbundle'; | ||||
|  | ||||
| import * as smartshell from '../ts/index' | ||||
| import * as smartq from 'smartq' | ||||
| import * as smartshell from '../ts/index'; | ||||
| import * as smartpromise from '@pushrocks/smartpromise'; | ||||
|  | ||||
| let testSmartshell: smartshell.Smartshell | ||||
| let testSmartshell: smartshell.Smartshell; | ||||
|  | ||||
| tap.test('smartshell should run async', async () => { | ||||
|   let execResult = await smartshell.exec('npm -v') | ||||
|   expect(execResult.stdout).to.match(/[0-9\.]*/) | ||||
| }) | ||||
|   let execResult = await smartshell.exec('npm -v'); | ||||
|   expect(execResult.stdout).to.match(/[0-9\.]*/); | ||||
| }); | ||||
|  | ||||
| tap.test('smartshell should run async and silent', async () => { | ||||
|   let execResult = await smartshell.execSilent('npm -v') | ||||
|   expect(execResult.stdout).to.match(/[0-9\.]*/) | ||||
| }) | ||||
|   let execResult = await smartshell.execSilent('npm -v'); | ||||
|   expect(execResult.stdout).to.match(/[0-9\.]*/); | ||||
| }); | ||||
|  | ||||
| tap.test('smartshell should stream a shell execution', async () => { | ||||
|   let done = smartq.defer() | ||||
|   let execStreamingResponse = smartshell.execStreaming('npm -v') | ||||
|   let done = smartpromise.defer(); | ||||
|   let execStreamingResponse = smartshell.execStreaming('npm -v'); | ||||
|   execStreamingResponse.childProcess.stdout.on('data', data => { | ||||
|     done.resolve(data) | ||||
|   }) | ||||
|   let data = await done.promise | ||||
|   expect(data).to.match(/[0-9\.]*/) | ||||
|   await execStreamingResponse.finalPromise | ||||
| }) | ||||
|     done.resolve(data); | ||||
|   }); | ||||
|   let data = await done.promise; | ||||
|   expect(data).to.match(/[0-9\.]*/); | ||||
|   await execStreamingResponse.finalPromise; | ||||
| }); | ||||
|  | ||||
| tap.test('it should execute and wait for a line in the output', async () => { | ||||
|   await smartshell.execAndWaitForLine('echo "5.0.4"', /5.0.4/) | ||||
| }) | ||||
|   await smartshell.execAndWaitForLine('echo "5.0.4"', /5.0.4/); | ||||
| }); | ||||
|  | ||||
| // Smartshell class | ||||
|  | ||||
| @@ -36,16 +36,16 @@ tap.test('smartshell should create a Smartshell instance', async () => { | ||||
|   testSmartshell = new smartshell.Smartshell({ | ||||
|     executor: 'bash', | ||||
|     sourceFilePaths: [] | ||||
|   }) | ||||
|   expect(testSmartshell).to.be.instanceof(smartshell.Smartshell) | ||||
| }) | ||||
|   }); | ||||
|   expect(testSmartshell).to.be.instanceof(smartshell.Smartshell); | ||||
| }); | ||||
|  | ||||
| tap.test('smartshell should run async', async () => { | ||||
|   return testSmartshell.execSilent('sleep 1 && npm -v').then(async (execResult) => { | ||||
|     console.log(execResult.stdout) | ||||
|   }) | ||||
| }) | ||||
|   return testSmartshell.execSilent('sleep 1 && npm -v').then(async execResult => { | ||||
|     console.log(execResult.stdout); | ||||
|   }); | ||||
| }); | ||||
|  | ||||
| tap.start({ | ||||
|   throwOnError: true | ||||
| }) | ||||
| }); | ||||
|   | ||||
| @@ -1,2 +1,2 @@ | ||||
| export * from './smartshell.wrap' | ||||
| export * from './smartshell.classes.smartshell' | ||||
| export * from './smartshell.wrap'; | ||||
| export * from './smartshell.classes.smartshell'; | ||||
|   | ||||
| @@ -1,65 +1,64 @@ | ||||
| import * as plugins from './smartshell.plugins' | ||||
| import * as smartshellWrap from './smartshell.wrap' | ||||
| import * as plugins from './smartshell.plugins'; | ||||
| import * as smartshellWrap from './smartshell.wrap'; | ||||
|  | ||||
| export type TExecutor = 'sh' | 'bash' | ||||
| export type TExecutor = 'sh' | 'bash'; | ||||
|  | ||||
| export interface ISmartshellContructorOptions { | ||||
|   executor: TExecutor | ||||
|   sourceFilePaths: string[] | ||||
|  | ||||
|   executor: TExecutor; | ||||
|   sourceFilePaths: string[]; | ||||
| } | ||||
|  | ||||
| export class Smartshell { | ||||
|   executor: TExecutor | ||||
|   sourceFileArray: string[] = [] | ||||
|   constructor (optionsArg: ISmartshellContructorOptions) { | ||||
|     this.executor = optionsArg.executor | ||||
|   executor: TExecutor; | ||||
|   sourceFileArray: string[] = []; | ||||
|   constructor(optionsArg: ISmartshellContructorOptions) { | ||||
|     this.executor = optionsArg.executor; | ||||
|     for (let sourceFilePath of optionsArg.sourceFilePaths) { | ||||
|       this.sourceFileArray.push(sourceFilePath) | ||||
|       this.sourceFileArray.push(sourceFilePath); | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   addSourceFiles (sourceFilePathsArray: string[]) { | ||||
|   addSourceFiles(sourceFilePathsArray: string[]) { | ||||
|     for (let sourceFilePath of sourceFilePathsArray) { | ||||
|       this.sourceFileArray.push(sourceFilePath) | ||||
|       this.sourceFileArray.push(sourceFilePath); | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   cleanSourceFiles () { | ||||
|     this.sourceFileArray = [] | ||||
|   cleanSourceFiles() { | ||||
|     this.sourceFileArray = []; | ||||
|   } | ||||
|  | ||||
|   /** | ||||
|    * executes silently and returns IExecResult | ||||
|    * @param commandArg | ||||
|    */ | ||||
|   async execSilent (commandArg: string) { | ||||
|     let execCommand = this.createExecString(commandArg) | ||||
|     return await smartshellWrap.execSilent(execCommand) | ||||
|   async execSilent(commandArg: string) { | ||||
|     let execCommand = this.createExecString(commandArg); | ||||
|     return await smartshellWrap.execSilent(execCommand); | ||||
|   } | ||||
|  | ||||
|   /** | ||||
|    * executes and returns IExecResult | ||||
|    * @param commandArg | ||||
|    */ | ||||
|   async exec (commandArg: string) { | ||||
|     let execCommand = this.createExecString(commandArg) | ||||
|     return await smartshellWrap.exec(execCommand) | ||||
|   async exec(commandArg: string) { | ||||
|     let execCommand = this.createExecString(commandArg); | ||||
|     return await smartshellWrap.exec(execCommand); | ||||
|   } | ||||
|  | ||||
|   /** | ||||
|    * creates the final sourcing string | ||||
|    * @param commandArg | ||||
|    */ | ||||
|   private createExecString (commandArg): string { | ||||
|   private createExecString(commandArg): string { | ||||
|     if (this.executor === 'bash') { | ||||
|       let sourceString = '' | ||||
|       let sourceString = ''; | ||||
|       for (let sourceFilePath of this.sourceFileArray) { | ||||
|         sourceString = sourceString + `source ${sourceFilePath} && ` | ||||
|         sourceString = sourceString + `source ${sourceFilePath} && `; | ||||
|       } | ||||
|       return `bash -c '${sourceString} ${commandArg}'` | ||||
|       return `bash -c '${sourceString} ${commandArg}'`; | ||||
|     } else { | ||||
|       return commandArg | ||||
|       return commandArg; | ||||
|     } | ||||
|   } | ||||
| } | ||||
|   | ||||
| @@ -1,9 +1,4 @@ | ||||
| import * as shelljs from 'shelljs' | ||||
| import * as smartq from 'smartq' | ||||
| import * as which from 'which' | ||||
| import * as smartpromise from '@pushrocks/smartpromise'; | ||||
| import * as which from 'which'; | ||||
|  | ||||
| export { | ||||
|   shelljs, | ||||
|   smartq, | ||||
|   which | ||||
| } | ||||
| export { smartpromise, which }; | ||||
|   | ||||
| @@ -1,45 +1,81 @@ | ||||
| import * as plugins from './smartshell.plugins' | ||||
| import * as plugins from "./smartshell.plugins"; | ||||
|  | ||||
| // interfaces | ||||
| import { ChildProcess } from 'child_process' | ||||
| import { Deferred } from 'smartq' | ||||
| import * as cp from "child_process"; | ||||
| import { Deferred } from "@pushrocks/smartpromise"; | ||||
|  | ||||
| /** | ||||
|  * interface for ExecResult | ||||
|  */ | ||||
| export interface IExecResult { | ||||
|   exitCode: number, | ||||
|   stdout: string | ||||
|   exitCode: number; | ||||
|   stdout: string; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * interface for streaming ExecResult | ||||
|  */ | ||||
| export interface IExecResultStreaming { | ||||
|   childProcess: ChildProcess, | ||||
|   finalPromise: Promise<IExecResult> | ||||
|   childProcess: cp.ChildProcess; | ||||
|   finalPromise: Promise<IExecResult>; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * import path | ||||
|  * imports path into the shell from env if available and returns it with | ||||
|  */ | ||||
| let importPath = (stringArg): string => { | ||||
| let importEnvVarPath = (stringArg): string => { | ||||
|   if (process.env.SMARTSHELL_PATH) { | ||||
|     let commandResult = `PATH=${process.env.SMARTSHELL_PATH} && ${stringArg}` | ||||
|     let commandResult = `PATH=${process.env.SMARTSHELL_PATH} && ${stringArg}`; | ||||
|     // console.log(commandResult) | ||||
|     return commandResult | ||||
|     return commandResult; | ||||
|   } else { | ||||
|     return stringArg | ||||
|     return stringArg; | ||||
|   } | ||||
| } | ||||
| }; | ||||
|  | ||||
| /** | ||||
|  * executes a given command async | ||||
|  * @param commandStringArg | ||||
|  */ | ||||
| export let exec = (commandStringArg: string, silentArg: boolean = false, strictArg = false): Promise<IExecResult> => { | ||||
|   let done = plugins.smartq.defer<IExecResult>() | ||||
|   plugins.shelljs.exec(importPath(commandStringArg), { async: true, silent: silentArg }, (code, stdout, stderr) => { | ||||
| export let exec = ( | ||||
|   commandStringArg: string, | ||||
|   silentArg: boolean = false, | ||||
|   strictArg = false | ||||
| ): Promise<IExecResult> => { | ||||
|   let done = plugins.smartpromise.defer<IExecResult>(); | ||||
|   const commandToExecute = importEnvVarPath(commandStringArg); | ||||
|   try { | ||||
|     const execChildProcess = cp.exec(commandToExecute, { | ||||
|       timeout: null, | ||||
|       maxBuffer: 1000000, | ||||
|       env: process.env | ||||
|     }); | ||||
|  | ||||
|     let logStore = ""; | ||||
|  | ||||
|     execChildProcess.stdout.on("data", (data: string) => { | ||||
|       if (!silentArg) { | ||||
|         console.log(data); | ||||
|       } | ||||
|       logStore += data; | ||||
|     }); | ||||
|     execChildProcess.stderr.on("data", data => { | ||||
|       if (!silentArg) { | ||||
|         console.log(data); | ||||
|       } | ||||
|       logStore += data; | ||||
|     }); | ||||
|     execChildProcess.on("exit", (code, signal) => { | ||||
|       done.resolve({ | ||||
|         exitCode: code, | ||||
|         stdout: logStore | ||||
|       }); | ||||
|     }); | ||||
|   } catch (e) { | ||||
|     const error = e; | ||||
|   } | ||||
|  | ||||
|   /*plugins.shelljs.exec(importEnvVarPath(commandStringArg), { async: true, silent: silentArg }, (code, stdout, stderr) => { | ||||
|     if ( | ||||
|       stderr | ||||
|       && (stderr !== '') | ||||
| @@ -57,76 +93,112 @@ export let exec = (commandStringArg: string, silentArg: boolean = false, strictA | ||||
|       exitCode: code, | ||||
|       stdout: stdout | ||||
|     }) | ||||
|   }) | ||||
|   return done.promise | ||||
| } | ||||
|   })*/ | ||||
|   return done.promise; | ||||
| }; | ||||
|  | ||||
| /** | ||||
|  * executes a given command async and silent | ||||
|  * @param commandStringArg | ||||
|  */ | ||||
| export let execSilent = async (commandStringArg: string): Promise<IExecResult> => { | ||||
|   return await exec(commandStringArg, true) | ||||
| } | ||||
| export let execSilent = async ( | ||||
|   commandStringArg: string | ||||
| ): Promise<IExecResult> => { | ||||
|   return await exec(commandStringArg, true); | ||||
| }; | ||||
|  | ||||
| /** | ||||
|  * executes strict, meaning it rejects the promise if something happens | ||||
|  */ | ||||
| export let execStrict = async (commandStringArg: string): Promise<IExecResult> => { | ||||
|   return await exec(commandStringArg, true, true) | ||||
| } | ||||
| export let execStrict = async ( | ||||
|   commandStringArg: string | ||||
| ): Promise<IExecResult> => { | ||||
|   return await exec(commandStringArg, true, true); | ||||
| }; | ||||
|  | ||||
| /** | ||||
|  * executes a command and allws you to stream output | ||||
|  */ | ||||
| export let execStreaming = (commandStringArg: string, silentArg: boolean = false) => { | ||||
|   let childProcessEnded = plugins.smartq.defer<IExecResult>() | ||||
|   let execChildProcess = plugins.shelljs.exec(importPath(commandStringArg), {async: true, silent: silentArg}, (code, stdout, stderr) => { | ||||
| export let execStreaming = ( | ||||
|   commandStringArg: string, | ||||
|   silentArg: boolean = false | ||||
| ) => { | ||||
|   let childProcessEnded = plugins.smartpromise.defer<IExecResult>(); | ||||
|   const commandToExecute = importEnvVarPath(commandStringArg); | ||||
|   let execChildProcess = cp.exec(commandToExecute, { | ||||
|     timeout: null, | ||||
|     maxBuffer: 1000000, | ||||
|     env: process.env | ||||
|   }); | ||||
|  | ||||
|   let logStore = ""; | ||||
|  | ||||
|   execChildProcess.stdout.on("data", (data: string) => { | ||||
|     if (!silentArg) { | ||||
|       console.log(data); | ||||
|     } | ||||
|     logStore += data; | ||||
|   }); | ||||
|   execChildProcess.stderr.on("data", data => { | ||||
|     if (!silentArg) { | ||||
|       console.log(data); | ||||
|     } | ||||
|     logStore += data; | ||||
|   }); | ||||
|   execChildProcess.on("exit", (code, signal) => { | ||||
|     childProcessEnded.resolve({ | ||||
|       exitCode: code, | ||||
|       stdout: stdout | ||||
|     }) | ||||
|   }) | ||||
|       stdout: logStore | ||||
|     }); | ||||
|   }); | ||||
|  | ||||
|   return { | ||||
|     childProcess: execChildProcess, | ||||
|     finalPromise: childProcessEnded.promise | ||||
|   } | ||||
| } | ||||
|   }; | ||||
| }; | ||||
|  | ||||
| export let execStreamingSilent = (commandStringArg: string) => { | ||||
|   return execStreaming(commandStringArg, true) | ||||
| } | ||||
|   return execStreaming(commandStringArg, true); | ||||
| }; | ||||
|  | ||||
| /** | ||||
|  * executes a command and returns promise that will be fullfilled once an putput line matches RegexArg | ||||
|  * @param commandStringArg | ||||
|  * @param regexArg | ||||
|  */ | ||||
| export let execAndWaitForLine = (commandStringArg: string, regexArg: RegExp, silentArg: boolean = false) => { | ||||
|   let done = plugins.smartq.defer() | ||||
|   let execStreamingResult = execStreaming(commandStringArg, silentArg) | ||||
|   execStreamingResult.childProcess.stdout.on('data', (stdOutChunk: string) => { | ||||
| export let execAndWaitForLine = ( | ||||
|   commandStringArg: string, | ||||
|   regexArg: RegExp, | ||||
|   silentArg: boolean = false | ||||
| ) => { | ||||
|   let done = plugins.smartpromise.defer(); | ||||
|   let execStreamingResult = execStreaming(commandStringArg, silentArg); | ||||
|   execStreamingResult.childProcess.stdout.on("data", (stdOutChunk: string) => { | ||||
|     if (regexArg.test(stdOutChunk)) { | ||||
|       done.resolve() | ||||
|       done.resolve(); | ||||
|     } | ||||
|   }) | ||||
|   return done.promise | ||||
| } | ||||
|   }); | ||||
|   return done.promise; | ||||
| }; | ||||
|  | ||||
| export let execAndWaitForLineSilent = (commandStringArg: string, regexArg: RegExp) => { | ||||
|   execAndWaitForLine(commandStringArg, regexArg, true) | ||||
| } | ||||
| export let execAndWaitForLineSilent = ( | ||||
|   commandStringArg: string, | ||||
|   regexArg: RegExp | ||||
| ) => { | ||||
|   execAndWaitForLine(commandStringArg, regexArg, true); | ||||
| }; | ||||
|  | ||||
| /** | ||||
|  * get a path | ||||
|  */ | ||||
| export let which = (cmd: string): Promise<string> => { | ||||
|   let done = plugins.smartq.defer<string>() | ||||
|   let done = plugins.smartpromise.defer<string>(); | ||||
|   plugins.which(cmd, (err, path: string) => { | ||||
|     if (err) { | ||||
|       done.reject(err) | ||||
|       done.reject(err); | ||||
|     } | ||||
|     done.resolve(path) | ||||
|   }) | ||||
|   return done.promise | ||||
| } | ||||
|     done.resolve(path); | ||||
|   }); | ||||
|   return done.promise; | ||||
| }; | ||||
|   | ||||
							
								
								
									
										333
									
								
								yarn.lock
									
									
									
									
									
								
							
							
						
						
									
										333
									
								
								yarn.lock
									
									
									
									
									
								
							| @@ -1,333 +0,0 @@ | ||||
| # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. | ||||
| # yarn lockfile v1 | ||||
|  | ||||
|  | ||||
| "@types/code@^4.0.3": | ||||
|   version "4.0.3" | ||||
|   resolved "https://registry.yarnpkg.com/@types/code/-/code-4.0.3.tgz#9c4de39f86eb3eba070146d2dab7dbc3f8eac35f" | ||||
|  | ||||
| "@types/glob@*": | ||||
|   version "5.0.33" | ||||
|   resolved "https://registry.yarnpkg.com/@types/glob/-/glob-5.0.33.tgz#3dff7c6ce09d65abe919c7961dc3dee016f36ad7" | ||||
|   dependencies: | ||||
|     "@types/minimatch" "*" | ||||
|     "@types/node" "*" | ||||
|  | ||||
| "@types/minimatch@*": | ||||
|   version "3.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.1.tgz#b683eb60be358304ef146f5775db4c0e3696a550" | ||||
|  | ||||
| "@types/node@*", "@types/node@^8.0.33": | ||||
|   version "8.0.47" | ||||
|   resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.47.tgz#968e596f91acd59069054558a00708c445ca30c2" | ||||
|  | ||||
| "@types/shelljs@^0.7.4": | ||||
|   version "0.7.5" | ||||
|   resolved "https://registry.yarnpkg.com/@types/shelljs/-/shelljs-0.7.5.tgz#5834fb7385d1137bd2be5842f2c278ac36a117f4" | ||||
|   dependencies: | ||||
|     "@types/glob" "*" | ||||
|     "@types/node" "*" | ||||
|  | ||||
| "@types/which@^1.0.28": | ||||
|   version "1.0.28" | ||||
|   resolved "https://registry.yarnpkg.com/@types/which/-/which-1.0.28.tgz#016e387629b8817bed653fe32eab5d11279c8df6" | ||||
|  | ||||
| ansi-256-colors@^1.1.0: | ||||
|   version "1.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/ansi-256-colors/-/ansi-256-colors-1.1.0.tgz#910de50efcc7c09e3d82f2f87abd6b700c18818a" | ||||
|  | ||||
| balanced-match@^1.0.0: | ||||
|   version "1.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" | ||||
|  | ||||
| beautycolor@^1.0.7: | ||||
|   version "1.0.11" | ||||
|   resolved "https://registry.yarnpkg.com/beautycolor/-/beautycolor-1.0.11.tgz#71c5568d5a7ed5c144d3a54f753ad1b08862aea5" | ||||
|   dependencies: | ||||
|     ansi-256-colors "^1.1.0" | ||||
|     typings-global "^1.0.14" | ||||
|  | ||||
| bindings@^1.2.1: | ||||
|   version "1.3.0" | ||||
|   resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.3.0.tgz#b346f6ecf6a95f5a815c5839fc7cdb22502f1ed7" | ||||
|  | ||||
| brace-expansion@^1.1.7: | ||||
|   version "1.1.8" | ||||
|   resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" | ||||
|   dependencies: | ||||
|     balanced-match "^1.0.0" | ||||
|     concat-map "0.0.1" | ||||
|  | ||||
| code@^5.1.0: | ||||
|   version "5.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/code/-/code-5.1.0.tgz#205e4213536c3cf21b12194384901fadcd81bc1a" | ||||
|   dependencies: | ||||
|     hoek "4.x.x" | ||||
|  | ||||
| concat-map@0.0.1: | ||||
|   version "0.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" | ||||
|  | ||||
| define-properties@^1.1.2: | ||||
|   version "1.1.2" | ||||
|   resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" | ||||
|   dependencies: | ||||
|     foreach "^2.0.5" | ||||
|     object-keys "^1.0.8" | ||||
|  | ||||
| early@^2.1.1: | ||||
|   version "2.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/early/-/early-2.1.1.tgz#841e23254ea5dc54d8afaeee82f5ab65c00ee23c" | ||||
|   dependencies: | ||||
|     beautycolor "^1.0.7" | ||||
|     smartq "^1.1.1" | ||||
|     typings-global "^1.0.16" | ||||
|  | ||||
| es-abstract@^1.5.1: | ||||
|   version "1.9.0" | ||||
|   resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.9.0.tgz#690829a07cae36b222e7fd9b75c0d0573eb25227" | ||||
|   dependencies: | ||||
|     es-to-primitive "^1.1.1" | ||||
|     function-bind "^1.1.1" | ||||
|     has "^1.0.1" | ||||
|     is-callable "^1.1.3" | ||||
|     is-regex "^1.0.4" | ||||
|  | ||||
| es-to-primitive@^1.1.1: | ||||
|   version "1.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" | ||||
|   dependencies: | ||||
|     is-callable "^1.1.1" | ||||
|     is-date-object "^1.0.1" | ||||
|     is-symbol "^1.0.1" | ||||
|  | ||||
| es6-error@^4.0.2: | ||||
|   version "4.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.0.2.tgz#eec5c726eacef51b7f6b73c20db6e1b13b069c98" | ||||
|  | ||||
| foreach@^2.0.5: | ||||
|   version "2.0.5" | ||||
|   resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" | ||||
|  | ||||
| fs.realpath@^1.0.0: | ||||
|   version "1.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" | ||||
|  | ||||
| function-bind@^1.0.2, function-bind@^1.1.1: | ||||
|   version "1.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" | ||||
|  | ||||
| glob@^7.0.0: | ||||
|   version "7.1.2" | ||||
|   resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" | ||||
|   dependencies: | ||||
|     fs.realpath "^1.0.0" | ||||
|     inflight "^1.0.4" | ||||
|     inherits "2" | ||||
|     minimatch "^3.0.4" | ||||
|     once "^1.3.0" | ||||
|     path-is-absolute "^1.0.0" | ||||
|  | ||||
| has@^1.0.1: | ||||
|   version "1.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" | ||||
|   dependencies: | ||||
|     function-bind "^1.0.2" | ||||
|  | ||||
| hoek@4.x.x: | ||||
|   version "4.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d" | ||||
|  | ||||
| inflight@^1.0.4: | ||||
|   version "1.0.6" | ||||
|   resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" | ||||
|   dependencies: | ||||
|     once "^1.3.0" | ||||
|     wrappy "1" | ||||
|  | ||||
| inherits@2: | ||||
|   version "2.0.3" | ||||
|   resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" | ||||
|  | ||||
| interpret@^1.0.0: | ||||
|   version "1.0.4" | ||||
|   resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.4.tgz#820cdd588b868ffb191a809506d6c9c8f212b1b0" | ||||
|  | ||||
| is-callable@^1.1.1, is-callable@^1.1.3: | ||||
|   version "1.1.3" | ||||
|   resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" | ||||
|  | ||||
| is-date-object@^1.0.1: | ||||
|   version "1.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" | ||||
|  | ||||
| is-regex@^1.0.4: | ||||
|   version "1.0.4" | ||||
|   resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" | ||||
|   dependencies: | ||||
|     has "^1.0.1" | ||||
|  | ||||
| is-symbol@^1.0.1: | ||||
|   version "1.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" | ||||
|  | ||||
| isexe@^2.0.0: | ||||
|   version "2.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" | ||||
|  | ||||
| leakage@^0.3.0: | ||||
|   version "0.3.0" | ||||
|   resolved "https://registry.yarnpkg.com/leakage/-/leakage-0.3.0.tgz#15d698abdc76bbc6439601f4f3020e77e2d50c39" | ||||
|   dependencies: | ||||
|     es6-error "^4.0.2" | ||||
|     left-pad "^1.1.3" | ||||
|     memwatch-next "^0.3.0" | ||||
|     minimist "^1.2.0" | ||||
|     pretty-bytes "^4.0.2" | ||||
|  | ||||
| left-pad@^1.1.3: | ||||
|   version "1.1.3" | ||||
|   resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.1.3.tgz#612f61c033f3a9e08e939f1caebeea41b6f3199a" | ||||
|  | ||||
| memwatch-next@^0.3.0: | ||||
|   version "0.3.0" | ||||
|   resolved "https://registry.yarnpkg.com/memwatch-next/-/memwatch-next-0.3.0.tgz#2111050f9a906e0aa2d72a4ec0f0089c78726f8f" | ||||
|   dependencies: | ||||
|     bindings "^1.2.1" | ||||
|     nan "^2.3.2" | ||||
|  | ||||
| minimatch@^3.0.4: | ||||
|   version "3.0.4" | ||||
|   resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" | ||||
|   dependencies: | ||||
|     brace-expansion "^1.1.7" | ||||
|  | ||||
| minimist@^1.2.0: | ||||
|   version "1.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" | ||||
|  | ||||
| nan@^2.3.2: | ||||
|   version "2.7.0" | ||||
|   resolved "https://registry.yarnpkg.com/nan/-/nan-2.7.0.tgz#d95bf721ec877e08db276ed3fc6eb78f9083ad46" | ||||
|  | ||||
| object-keys@^1.0.8: | ||||
|   version "1.0.11" | ||||
|   resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" | ||||
|  | ||||
| object.getownpropertydescriptors@^2.0.3: | ||||
|   version "2.0.3" | ||||
|   resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" | ||||
|   dependencies: | ||||
|     define-properties "^1.1.2" | ||||
|     es-abstract "^1.5.1" | ||||
|  | ||||
| once@^1.3.0: | ||||
|   version "1.4.0" | ||||
|   resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" | ||||
|   dependencies: | ||||
|     wrappy "1" | ||||
|  | ||||
| path-is-absolute@^1.0.0: | ||||
|   version "1.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" | ||||
|  | ||||
| path-parse@^1.0.5: | ||||
|   version "1.0.5" | ||||
|   resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" | ||||
|  | ||||
| pretty-bytes@^4.0.2: | ||||
|   version "4.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-4.0.2.tgz#b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9" | ||||
|  | ||||
| rechoir@^0.6.2: | ||||
|   version "0.6.2" | ||||
|   resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" | ||||
|   dependencies: | ||||
|     resolve "^1.1.6" | ||||
|  | ||||
| resolve@^1.1.6: | ||||
|   version "1.5.0" | ||||
|   resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36" | ||||
|   dependencies: | ||||
|     path-parse "^1.0.5" | ||||
|  | ||||
| semver@^5.3.0: | ||||
|   version "5.4.1" | ||||
|   resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" | ||||
|  | ||||
| shelljs@^0.7.8: | ||||
|   version "0.7.8" | ||||
|   resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3" | ||||
|   dependencies: | ||||
|     glob "^7.0.0" | ||||
|     interpret "^1.0.0" | ||||
|     rechoir "^0.6.2" | ||||
|  | ||||
| smartchai@^1.0.3: | ||||
|   version "1.0.8" | ||||
|   resolved "https://registry.yarnpkg.com/smartchai/-/smartchai-1.0.8.tgz#a074836f4ddd4b98c50f1e7ae9e8e8ad9f6f1902" | ||||
|   dependencies: | ||||
|     "@types/code" "^4.0.3" | ||||
|     code "^5.1.0" | ||||
|     typings-global "^1.0.20" | ||||
|  | ||||
| smartdelay@^1.0.3: | ||||
|   version "1.0.4" | ||||
|   resolved "https://registry.yarnpkg.com/smartdelay/-/smartdelay-1.0.4.tgz#791c1a4ee6770494064c10b1d2d2b8e6f3105b82" | ||||
|   dependencies: | ||||
|     smartq "^1.1.1" | ||||
|     typings-global "^1.0.16" | ||||
|  | ||||
| smartq@^1.1.1, smartq@^1.1.6: | ||||
|   version "1.1.6" | ||||
|   resolved "https://registry.yarnpkg.com/smartq/-/smartq-1.1.6.tgz#0c1ff4336d95e95b4f1fdd8ccd7e2c5a323b8412" | ||||
|   dependencies: | ||||
|     typings-global "^1.0.19" | ||||
|     util.promisify "^1.0.0" | ||||
|  | ||||
| smartshell@^1.0.6: | ||||
|   version "1.0.18" | ||||
|   resolved "https://registry.yarnpkg.com/smartshell/-/smartshell-1.0.18.tgz#b84ccc65cedf3a875bf676cec78ee07f4b4aa9e5" | ||||
|   dependencies: | ||||
|     "@types/shelljs" "^0.7.4" | ||||
|     "@types/which" "^1.0.28" | ||||
|     shelljs "^0.7.8" | ||||
|     smartq "^1.1.6" | ||||
|     typings-global "^1.0.20" | ||||
|     which "^1.3.0" | ||||
|  | ||||
| tapbundle@^1.1.8: | ||||
|   version "1.1.8" | ||||
|   resolved "https://registry.yarnpkg.com/tapbundle/-/tapbundle-1.1.8.tgz#e08aee0e100a830d8a26a583a85d37ce53312e02" | ||||
|   dependencies: | ||||
|     "@types/node" "^8.0.33" | ||||
|     early "^2.1.1" | ||||
|     leakage "^0.3.0" | ||||
|     smartchai "^1.0.3" | ||||
|     smartdelay "^1.0.3" | ||||
|     smartq "^1.1.1" | ||||
|     typings-global "^1.0.19" | ||||
|  | ||||
| typings-global@^1.0.14, typings-global@^1.0.16, typings-global@^1.0.19, typings-global@^1.0.20, typings-global@^1.0.23: | ||||
|   version "1.0.23" | ||||
|   resolved "https://registry.yarnpkg.com/typings-global/-/typings-global-1.0.23.tgz#cdd085803049dd07d95b2e1475243c6b2db378ab" | ||||
|   dependencies: | ||||
|     semver "^5.3.0" | ||||
|     smartshell "^1.0.6" | ||||
|  | ||||
| util.promisify@^1.0.0: | ||||
|   version "1.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" | ||||
|   dependencies: | ||||
|     define-properties "^1.1.2" | ||||
|     object.getownpropertydescriptors "^2.0.3" | ||||
|  | ||||
| which@^1.3.0: | ||||
|   version "1.3.0" | ||||
|   resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" | ||||
|   dependencies: | ||||
|     isexe "^2.0.0" | ||||
|  | ||||
| wrappy@1: | ||||
|   version "1.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" | ||||
		Reference in New Issue
	
	Block a user