BREAKING CHANGE(scope): change and name to @pushrocks/smarthash
This commit is contained in:
		
							
								
								
									
										118
									
								
								.gitlab-ci.yml
									
									
									
									
									
								
							
							
						
						
									
										118
									
								
								.gitlab-ci.yml
									
									
									
									
									
								
							@@ -1,36 +1,142 @@
 | 
			
		||||
image: hosttoday/ht-docker-node:npmts
 | 
			
		||||
# gitzone standard
 | 
			
		||||
image: hosttoday/ht-docker-node:npmci
 | 
			
		||||
 | 
			
		||||
cache:
 | 
			
		||||
  paths:
 | 
			
		||||
  - .npmci_cache/
 | 
			
		||||
  key: "$CI_BUILD_STAGE"
 | 
			
		||||
 | 
			
		||||
stages:
 | 
			
		||||
- security
 | 
			
		||||
- test
 | 
			
		||||
- release
 | 
			
		||||
- metadata
 | 
			
		||||
 | 
			
		||||
# ====================
 | 
			
		||||
# security 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:
 | 
			
		||||
    - npmci test legacy
 | 
			
		||||
  - npmci node install legacy
 | 
			
		||||
  - npmci npm install
 | 
			
		||||
  - npmci npm test
 | 
			
		||||
  coverage: /\d+.?\d+?\%\s*coverage/
 | 
			
		||||
  tags:
 | 
			
		||||
  - docker
 | 
			
		||||
  - notpriv
 | 
			
		||||
  allow_failure: true
 | 
			
		||||
 | 
			
		||||
testLTS:
 | 
			
		||||
  stage: test
 | 
			
		||||
  script:
 | 
			
		||||
    - npmci test lts
 | 
			
		||||
  - npmci node install lts
 | 
			
		||||
  - npmci npm install
 | 
			
		||||
  - npmci npm test
 | 
			
		||||
  coverage: /\d+.?\d+?\%\s*coverage/
 | 
			
		||||
  tags:
 | 
			
		||||
  - docker
 | 
			
		||||
  - notpriv
 | 
			
		||||
    
 | 
			
		||||
testSTABLE:
 | 
			
		||||
  stage: test
 | 
			
		||||
  script:
 | 
			
		||||
    - npmci test stable
 | 
			
		||||
  - npmci node install stable
 | 
			
		||||
  - npmci npm install
 | 
			
		||||
  - npmci npm test
 | 
			
		||||
  coverage: /\d+.?\d+?\%\s*coverage/
 | 
			
		||||
  tags:
 | 
			
		||||
  - docker
 | 
			
		||||
  - notpriv
 | 
			
		||||
 | 
			
		||||
release:
 | 
			
		||||
  stage: release
 | 
			
		||||
  environment: npmjs-com_registry
 | 
			
		||||
  script:
 | 
			
		||||
    - npmci publish
 | 
			
		||||
  - 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: metadata
 | 
			
		||||
  script:
 | 
			
		||||
  - npmci trigger
 | 
			
		||||
  only:
 | 
			
		||||
  - tags
 | 
			
		||||
  tags:
 | 
			
		||||
  - docker
 | 
			
		||||
  - notpriv
 | 
			
		||||
 | 
			
		||||
pages:
 | 
			
		||||
  image: hosttoday/ht-docker-node:npmci
 | 
			
		||||
  stage: metadata
 | 
			
		||||
  script:
 | 
			
		||||
    - npmci command npm install -g typedoc typescript
 | 
			
		||||
    - npmci npm install
 | 
			
		||||
    - npmci command typedoc --module "commonjs" --target "ES2016" --out public/ ts/
 | 
			
		||||
  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,10 +1,13 @@
 | 
			
		||||
# nodehash
 | 
			
		||||
 | 
			
		||||
simplifies access to node hash functions. TypeScript Ready
 | 
			
		||||
 | 
			
		||||
## Status
 | 
			
		||||
 | 
			
		||||
[](https://gitlab.com/pushrocks/nodehash/commits/master)
 | 
			
		||||
 | 
			
		||||
## Usage
 | 
			
		||||
 | 
			
		||||
We recommend the use of TypeScript for best in class intellisense.
 | 
			
		||||
 | 
			
		||||
```typescript
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								dist/index.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								dist/index.d.ts
									
									
									
									
										vendored
									
									
								
							@@ -1 +0,0 @@
 | 
			
		||||
export * from "./nodehash.sha256";
 | 
			
		||||
							
								
								
									
										6
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							@@ -1,6 +0,0 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
function __export(m) {
 | 
			
		||||
    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
 | 
			
		||||
}
 | 
			
		||||
__export(require("./nodehash.sha256"));
 | 
			
		||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBRUEsaUJBQWMsbUJBQW1CLENBQUMsRUFBQSJ9
 | 
			
		||||
							
								
								
									
										2
									
								
								dist/nodehash.helpers.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/nodehash.helpers.d.ts
									
									
									
									
										vendored
									
									
								
							@@ -1,2 +0,0 @@
 | 
			
		||||
/// <reference types="node" />
 | 
			
		||||
export declare let hashStreamPipeStop: (resolveFuntion: any) => NodeJS.ReadWriteStream;
 | 
			
		||||
							
								
								
									
										13
									
								
								dist/nodehash.helpers.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								dist/nodehash.helpers.js
									
									
									
									
										vendored
									
									
								
							@@ -1,13 +0,0 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
const plugins = require("./nodehash.plugins");
 | 
			
		||||
exports.hashStreamPipeStop = (resolveFuntion) => {
 | 
			
		||||
    let forEach = (chunk, enc, cb) => {
 | 
			
		||||
        resolveFuntion(chunk.toString("utf8"));
 | 
			
		||||
        cb(null, chunk);
 | 
			
		||||
    };
 | 
			
		||||
    let atEnd = (cb) => {
 | 
			
		||||
        cb();
 | 
			
		||||
    };
 | 
			
		||||
    return plugins.through2(forEach, atEnd);
 | 
			
		||||
};
 | 
			
		||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZWhhc2guaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL25vZGVoYXNoLmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE1BQVksT0FBTyxXQUFNLG9CQUFvQixDQUFDLENBQUE7QUFFbkMsMEJBQWtCLEdBQUcsQ0FBQyxjQUFjO0lBQzNDLElBQUksT0FBTyxHQUFHLENBQUMsS0FBWSxFQUFDLEdBQUcsRUFBQyxFQUFFO1FBQzlCLGNBQWMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDdkMsRUFBRSxDQUFDLElBQUksRUFBQyxLQUFLLENBQUMsQ0FBQztJQUNuQixDQUFDLENBQUM7SUFFRixJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUU7UUFDWCxFQUFFLEVBQUUsQ0FBQztJQUNULENBQUMsQ0FBQztJQUVGLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBQyxLQUFLLENBQUMsQ0FBQztBQUMzQyxDQUFDLENBQUMifQ==
 | 
			
		||||
							
								
								
									
										7
									
								
								dist/nodehash.plugins.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								dist/nodehash.plugins.d.ts
									
									
									
									
										vendored
									
									
								
							@@ -1,7 +0,0 @@
 | 
			
		||||
import "typings-global";
 | 
			
		||||
export import crypto = require("crypto");
 | 
			
		||||
export import fs = require("fs");
 | 
			
		||||
export import path = require("path");
 | 
			
		||||
export import q = require("q");
 | 
			
		||||
export import stream = require("stream");
 | 
			
		||||
export import through2 = require("through2");
 | 
			
		||||
							
								
								
									
										9
									
								
								dist/nodehash.plugins.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								dist/nodehash.plugins.js
									
									
									
									
										vendored
									
									
								
							@@ -1,9 +0,0 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
require("typings-global");
 | 
			
		||||
exports.crypto = require("crypto");
 | 
			
		||||
exports.fs = require("fs");
 | 
			
		||||
exports.path = require("path");
 | 
			
		||||
exports.q = require("q");
 | 
			
		||||
exports.stream = require("stream");
 | 
			
		||||
exports.through2 = require("through2");
 | 
			
		||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZWhhc2gucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL25vZGVoYXNoLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUNWLGNBQU0sV0FBVyxRQUFRLENBQUMsQ0FBQztBQUMzQixVQUFFLFdBQVcsSUFBSSxDQUFDLENBQUM7QUFDbkIsWUFBSSxXQUFXLE1BQU0sQ0FBQyxDQUFDO0FBQ3ZCLFNBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztBQUNqQixjQUFNLFdBQVcsUUFBUSxDQUFDLENBQUM7QUFDM0IsZ0JBQVEsV0FBVyxVQUFVLENBQUMsQ0FBQyJ9
 | 
			
		||||
							
								
								
									
										18
									
								
								dist/nodehash.sha256.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								dist/nodehash.sha256.d.ts
									
									
									
									
										vendored
									
									
								
							@@ -1,18 +0,0 @@
 | 
			
		||||
/// <reference types="q" />
 | 
			
		||||
import * as plugins from "./nodehash.plugins";
 | 
			
		||||
/**
 | 
			
		||||
 * creates sha256 Hash from Stream
 | 
			
		||||
 */
 | 
			
		||||
export declare let sha256FromStream: (input: any) => plugins.q.Promise<{}>;
 | 
			
		||||
/**
 | 
			
		||||
 * creates sha256 Hash from File;
 | 
			
		||||
 */
 | 
			
		||||
export declare let sha256FromFile: (filePath: string) => plugins.q.Promise<{}>;
 | 
			
		||||
/**
 | 
			
		||||
 * Computes sha256 Hash from String synchronously
 | 
			
		||||
 */
 | 
			
		||||
export declare let sha256FromStringSync: (stringArg: any) => any;
 | 
			
		||||
/**
 | 
			
		||||
 * Computes sha256 Hash from String
 | 
			
		||||
 */
 | 
			
		||||
export declare let sha256FromString: (stringArg: any) => plugins.q.Promise<{}>;
 | 
			
		||||
							
								
								
									
										48
									
								
								dist/nodehash.sha256.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										48
									
								
								dist/nodehash.sha256.js
									
									
									
									
										vendored
									
									
								
							@@ -1,48 +0,0 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
const plugins = require("./nodehash.plugins");
 | 
			
		||||
const helpers = require("./nodehash.helpers");
 | 
			
		||||
/**
 | 
			
		||||
 * creates sha256 Hash from Stream
 | 
			
		||||
 */
 | 
			
		||||
exports.sha256FromStream = (input) => {
 | 
			
		||||
    let done = plugins.q.defer();
 | 
			
		||||
    let hash = plugins.crypto.createHash('sha256');
 | 
			
		||||
    hash["setEncoding"]("hex");
 | 
			
		||||
    input
 | 
			
		||||
        .pipe(hash)
 | 
			
		||||
        .pipe(helpers.hashStreamPipeStop(done.resolve));
 | 
			
		||||
    return done.promise;
 | 
			
		||||
};
 | 
			
		||||
/**
 | 
			
		||||
 * creates sha256 Hash from File;
 | 
			
		||||
 */
 | 
			
		||||
exports.sha256FromFile = (filePath) => {
 | 
			
		||||
    let done = plugins.q.defer();
 | 
			
		||||
    let absolutePath = plugins.path.resolve(filePath);
 | 
			
		||||
    let readableStream = plugins.fs.createReadStream(absolutePath);
 | 
			
		||||
    exports.sha256FromStream(readableStream)
 | 
			
		||||
        .then((resultHashString) => {
 | 
			
		||||
        done.resolve(resultHashString);
 | 
			
		||||
    });
 | 
			
		||||
    return done.promise;
 | 
			
		||||
};
 | 
			
		||||
/**
 | 
			
		||||
 * Computes sha256 Hash from String synchronously
 | 
			
		||||
 */
 | 
			
		||||
exports.sha256FromStringSync = (stringArg) => {
 | 
			
		||||
    let hash = plugins.crypto.createHash('sha256');
 | 
			
		||||
    hash.update(stringArg);
 | 
			
		||||
    return hash.digest("hex");
 | 
			
		||||
};
 | 
			
		||||
/**
 | 
			
		||||
 * Computes sha256 Hash from String
 | 
			
		||||
 */
 | 
			
		||||
exports.sha256FromString = (stringArg) => {
 | 
			
		||||
    let done = plugins.q.defer();
 | 
			
		||||
    let hash = plugins.crypto.createHash('sha256');
 | 
			
		||||
    hash.update(stringArg);
 | 
			
		||||
    let hashResult = hash.digest("hex");
 | 
			
		||||
    done.resolve(hashResult);
 | 
			
		||||
    return done.promise;
 | 
			
		||||
};
 | 
			
		||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZWhhc2guc2hhMjU2LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvbm9kZWhhc2guc2hhMjU2LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxNQUFZLE9BQU8sV0FBTSxvQkFBb0IsQ0FBQyxDQUFBO0FBQzlDLE1BQVksT0FBTyxXQUFNLG9CQUFvQixDQUFDLENBQUE7QUFFOUM7O0dBRUc7QUFDUSx3QkFBZ0IsR0FBRyxDQUFDLEtBQUs7SUFDaEMsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUUvQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsS0FBSztTQUNBLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDVixJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3BELE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ1Esc0JBQWMsR0FBRyxDQUFDLFFBQWU7SUFDeEMsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixJQUFJLFlBQVksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsRCxJQUFJLGNBQWMsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQy9ELHdCQUFnQixDQUFDLGNBQWMsQ0FBQztTQUMzQixJQUFJLENBQUMsQ0FBQyxnQkFBZ0I7UUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ25DLENBQUMsQ0FBQyxDQUFDO0lBQ1AsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDeEIsQ0FBQyxDQUFBO0FBRUQ7O0dBRUc7QUFDUSw0QkFBb0IsR0FBRyxDQUFDLFNBQVM7SUFDeEMsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN2QixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM5QixDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNRLHdCQUFnQixHQUFHLENBQUMsU0FBUztJQUNwQyxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQy9DLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdkIsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQyJ9
 | 
			
		||||
@@ -1 +1,5 @@
 | 
			
		||||
{}
 | 
			
		||||
{
 | 
			
		||||
  "npmci": {
 | 
			
		||||
    "npmAccessLevel": "public"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										932
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										932
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,932 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "@pushrocks/smarthash",
 | 
			
		||||
  "version": "1.0.4",
 | 
			
		||||
  "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/tsbuild": {
 | 
			
		||||
      "version": "2.0.22",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@gitzone/tsbuild/-/tsbuild-2.0.22.tgz",
 | 
			
		||||
      "integrity": "sha512-H0rqGVUKXWgxXhkY62kF92WpbS9GSJW27jQXaoyMsQptTQN4HIYKHWZMdO4egkk0/gDmKnBjk8MXg5Rx6efItA==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@pushrocks/smartfile": "^6.0.6",
 | 
			
		||||
        "@pushrocks/smartlog": "^2.0.1",
 | 
			
		||||
        "@pushrocks/smartpath": "^4.0.1",
 | 
			
		||||
        "@pushrocks/smartpromise": "^2.0.5",
 | 
			
		||||
        "typescript": "^3.0.1"
 | 
			
		||||
      },
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@pushrocks/smartpromise": {
 | 
			
		||||
          "version": "2.0.5",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/@pushrocks/smartpromise/-/smartpromise-2.0.5.tgz",
 | 
			
		||||
          "integrity": "sha512-9j/chLtIiNkR0MDw7Mpxg9slxAVvAQwUZuiaPYX5KpHdKxQaHLI1VZ8IN0vPhwlfgNO4i4vGXV0wB8BvSDj03g==",
 | 
			
		||||
          "dev": true
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@gitzone/tsrun": {
 | 
			
		||||
      "version": "1.1.12",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@gitzone/tsrun/-/tsrun-1.1.12.tgz",
 | 
			
		||||
      "integrity": "sha512-DOxqOg+evoxhgbzhzH4u6LaPF+6bpMsnBVl1QQaHzKPGBlNjaIY4yJ0RsGnWMgX1hlNLvbgHtl0Ky4A2MDvyrg==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@gitzone/tsbuild": "^2.0.22",
 | 
			
		||||
        "@pushrocks/smartfile": "^6.0.6",
 | 
			
		||||
        "ts-node": "^7.0.0",
 | 
			
		||||
        "typescript": "^3.0.1"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@gitzone/tstest": {
 | 
			
		||||
      "version": "1.0.15",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@gitzone/tstest/-/tstest-1.0.15.tgz",
 | 
			
		||||
      "integrity": "sha512-+t5fvYK4a0JkwwH0Fokh5aOxVzrax5OjDUL4zmhBk7KFmXt7fdvcqsSNaEp9iyqC52dLiDybdAXqHYZypXTIYw==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@gitzone/tsrun": "^1.1.12",
 | 
			
		||||
        "@pushrocks/consolecolor": "^2.0.1",
 | 
			
		||||
        "@pushrocks/smartfile": "^6.0.6",
 | 
			
		||||
        "@pushrocks/smartlog": "^2.0.1",
 | 
			
		||||
        "@pushrocks/smartpromise": "^2.0.5",
 | 
			
		||||
        "@pushrocks/smartshell": "^2.0.6",
 | 
			
		||||
        "@types/figures": "^2.0.0",
 | 
			
		||||
        "figures": "^2.0.0"
 | 
			
		||||
      },
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@pushrocks/smartpromise": {
 | 
			
		||||
          "version": "2.0.5",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/@pushrocks/smartpromise/-/smartpromise-2.0.5.tgz",
 | 
			
		||||
          "integrity": "sha512-9j/chLtIiNkR0MDw7Mpxg9slxAVvAQwUZuiaPYX5KpHdKxQaHLI1VZ8IN0vPhwlfgNO4i4vGXV0wB8BvSDj03g==",
 | 
			
		||||
          "dev": true
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@pushrocks/consolecolor": {
 | 
			
		||||
      "version": "2.0.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@pushrocks/consolecolor/-/consolecolor-2.0.1.tgz",
 | 
			
		||||
      "integrity": "sha512-iOFCHVeFZ2OywbdwSxVI4/wokkcLrXVdHLgvMmkNhJ220eeLgjNZWx3EJo3vNW3zq5ybCSCUIq0878djBxrWpw==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "ansi-256-colors": "^1.1.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@pushrocks/early": {
 | 
			
		||||
      "version": "3.0.3",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@pushrocks/early/-/early-3.0.3.tgz",
 | 
			
		||||
      "integrity": "sha512-71/nwxTpqdp1glmHz4YaGusNl/XOOcPelAxC9RA6rpS/6280QyY2u4yx+mRdMrCzn7ruLYF5awbkS8llNZ94Pg==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@pushrocks/consolecolor": "^2.0.1",
 | 
			
		||||
        "@pushrocks/smartpromise": "^2.0.5"
 | 
			
		||||
      },
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@pushrocks/smartpromise": {
 | 
			
		||||
          "version": "2.0.5",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/@pushrocks/smartpromise/-/smartpromise-2.0.5.tgz",
 | 
			
		||||
          "integrity": "sha512-9j/chLtIiNkR0MDw7Mpxg9slxAVvAQwUZuiaPYX5KpHdKxQaHLI1VZ8IN0vPhwlfgNO4i4vGXV0wB8BvSDj03g==",
 | 
			
		||||
          "dev": true
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@pushrocks/smartdelay": {
 | 
			
		||||
      "version": "2.0.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@pushrocks/smartdelay/-/smartdelay-2.0.2.tgz",
 | 
			
		||||
      "integrity": "sha512-4xf6tMKwZcxBynKgXrM4SQKgeASfRvx43LUmR5DkStp26ZHAsarCXUdKJS6y8QIPygEOTOCP8we97JAcCzBuMg==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@pushrocks/smartpromise": "^2.0.5"
 | 
			
		||||
      },
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@pushrocks/smartpromise": {
 | 
			
		||||
          "version": "2.0.5",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/@pushrocks/smartpromise/-/smartpromise-2.0.5.tgz",
 | 
			
		||||
          "integrity": "sha512-9j/chLtIiNkR0MDw7Mpxg9slxAVvAQwUZuiaPYX5KpHdKxQaHLI1VZ8IN0vPhwlfgNO4i4vGXV0wB8BvSDj03g==",
 | 
			
		||||
          "dev": true
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@pushrocks/smartfile": {
 | 
			
		||||
      "version": "6.0.8",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@pushrocks/smartfile/-/smartfile-6.0.8.tgz",
 | 
			
		||||
      "integrity": "sha512-YkAovvQ0pcVphXLynlQ1D4nhEoUqALqqUn2pRXc2vXNy0RDSU22puLlLVhoXT0NPAqYNMazhqc4OAixgEOpdFw==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@pushrocks/smartpath": "^4.0.1",
 | 
			
		||||
        "@pushrocks/smartpromise": "^2.0.5",
 | 
			
		||||
        "@pushrocks/smartrequest": "^1.1.14",
 | 
			
		||||
        "@types/fs-extra": "^5.0.4",
 | 
			
		||||
        "@types/vinyl": "^2.0.2",
 | 
			
		||||
        "fs-extra": "^7.0.0",
 | 
			
		||||
        "glob": "^7.1.2",
 | 
			
		||||
        "js-yaml": "^3.10.0",
 | 
			
		||||
        "vinyl-file": "^3.0.0"
 | 
			
		||||
      },
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@pushrocks/smartpromise": {
 | 
			
		||||
          "version": "2.0.5",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/@pushrocks/smartpromise/-/smartpromise-2.0.5.tgz",
 | 
			
		||||
          "integrity": "sha512-9j/chLtIiNkR0MDw7Mpxg9slxAVvAQwUZuiaPYX5KpHdKxQaHLI1VZ8IN0vPhwlfgNO4i4vGXV0wB8BvSDj03g==",
 | 
			
		||||
          "dev": true
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@pushrocks/smartlog": {
 | 
			
		||||
      "version": "2.0.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@pushrocks/smartlog/-/smartlog-2.0.1.tgz",
 | 
			
		||||
      "integrity": "sha512-GtsDTGIUF3VuWPyF8FV5dF31ZCEIcaJ56ZlvJsWxjnyJq57X25mk5/K0QAaRE9IIeHg6fORcukFomb5C+AOQrg==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@pushrocks/smartlog-interfaces": "^1.0.9"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@pushrocks/smartlog-interfaces": {
 | 
			
		||||
      "version": "1.0.9",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@pushrocks/smartlog-interfaces/-/smartlog-interfaces-1.0.9.tgz",
 | 
			
		||||
      "integrity": "sha512-0qwpomrRN0kFjmhR9m1iHYXoISoNuXtRP0Wr+JtkYyURLwKHMaW8Xoznf8MzXJptRfqufJi3Fxh5HodpPrIZUA==",
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "@pushrocks/smartpath": {
 | 
			
		||||
      "version": "4.0.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@pushrocks/smartpath/-/smartpath-4.0.1.tgz",
 | 
			
		||||
      "integrity": "sha512-MaI0+uLQPCr2V3WGnbdgb0pWa9xkWyrP4qYcbsHIjeismGLbn9s3jmP/HIXU8LkgzRgaVb+BJxmZJHOwl32DyA==",
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "@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.14",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@pushrocks/smartrequest/-/smartrequest-1.1.14.tgz",
 | 
			
		||||
      "integrity": "sha512-+sDQB4Mxvpn8BIMPUQ7TPSCKUVMln3tHC4rp4pmfEHmBQK+g1XwtNr59aMA9kEoBDMt7li1hu+1cs+SNsWt6Gw==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@pushrocks/smartpromise": "^2.0.5",
 | 
			
		||||
        "@types/form-data": "^2.2.1",
 | 
			
		||||
        "form-data": "^2.3.2"
 | 
			
		||||
      },
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@pushrocks/smartpromise": {
 | 
			
		||||
          "version": "2.0.5",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/@pushrocks/smartpromise/-/smartpromise-2.0.5.tgz",
 | 
			
		||||
          "integrity": "sha512-9j/chLtIiNkR0MDw7Mpxg9slxAVvAQwUZuiaPYX5KpHdKxQaHLI1VZ8IN0vPhwlfgNO4i4vGXV0wB8BvSDj03g==",
 | 
			
		||||
          "dev": true
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@pushrocks/smartshell": {
 | 
			
		||||
      "version": "2.0.6",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@pushrocks/smartshell/-/smartshell-2.0.6.tgz",
 | 
			
		||||
      "integrity": "sha512-D48KB3DDqLfMjOXGEutqJi+v3Z4RcWacu5BJXxUwrecvd6oetbKobfmNGxeHSQPmNGb7U3ISfKwV6c5T5EZkJg==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@pushrocks/smartpromise": "^2.0.5",
 | 
			
		||||
        "@types/which": "^1.3.1",
 | 
			
		||||
        "which": "^1.3.1"
 | 
			
		||||
      },
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@pushrocks/smartpromise": {
 | 
			
		||||
          "version": "2.0.5",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/@pushrocks/smartpromise/-/smartpromise-2.0.5.tgz",
 | 
			
		||||
          "integrity": "sha512-9j/chLtIiNkR0MDw7Mpxg9slxAVvAQwUZuiaPYX5KpHdKxQaHLI1VZ8IN0vPhwlfgNO4i4vGXV0wB8BvSDj03g==",
 | 
			
		||||
          "dev": true
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@pushrocks/tapbundle": {
 | 
			
		||||
      "version": "3.0.7",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@pushrocks/tapbundle/-/tapbundle-3.0.7.tgz",
 | 
			
		||||
      "integrity": "sha512-ZI4fhXPy8XMfiy/QofP0ZDuFdv3cErm+FP/+AXaNKdgCCx01MXNTYSUdER1GPUXW3ZbiXdurkLJlxlhIzD1ZJw==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@pushrocks/early": "^3.0.3",
 | 
			
		||||
        "@pushrocks/smartdelay": "^2.0.2",
 | 
			
		||||
        "@pushrocks/smartpromise": "^2.0.5",
 | 
			
		||||
        "leakage": "^0.4.0",
 | 
			
		||||
        "smartchai": "^2.0.1"
 | 
			
		||||
      },
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@pushrocks/smartpromise": {
 | 
			
		||||
          "version": "2.0.5",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/@pushrocks/smartpromise/-/smartpromise-2.0.5.tgz",
 | 
			
		||||
          "integrity": "sha512-9j/chLtIiNkR0MDw7Mpxg9slxAVvAQwUZuiaPYX5KpHdKxQaHLI1VZ8IN0vPhwlfgNO4i4vGXV0wB8BvSDj03g==",
 | 
			
		||||
          "dev": true
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@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/figures": {
 | 
			
		||||
      "version": "2.0.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@types/figures/-/figures-2.0.0.tgz",
 | 
			
		||||
      "integrity": "sha512-mcRgJ+ncKuNI+Dwac7omO18B8C8u+YBS+AU/oyLhEyjAnT3cUUThhHgZpbiIvu5ZqSvdD30BXtrqg9nxc3OKMg==",
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "@types/form-data": {
 | 
			
		||||
      "version": "2.2.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.2.1.tgz",
 | 
			
		||||
      "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@types/node": "*"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@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.9.4",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@types/node/-/node-10.9.4.tgz",
 | 
			
		||||
      "integrity": "sha512-fCHV45gS+m3hH17zgkgADUSi2RR1Vht6wOZ0jyHP8rjiQra9f+mIcgwPQHllmDocYOstIEbKlxbFDYlgrTPYqw=="
 | 
			
		||||
    },
 | 
			
		||||
    "@types/through2": {
 | 
			
		||||
      "version": "2.0.33",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@types/through2/-/through2-2.0.33.tgz",
 | 
			
		||||
      "integrity": "sha1-H/LoihAN+1sUDnu5h5HxGUQA0TE=",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@types/node": "*"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@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==",
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "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
 | 
			
		||||
    },
 | 
			
		||||
    "asynckit": {
 | 
			
		||||
      "version": "0.4.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
 | 
			
		||||
      "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
 | 
			
		||||
      "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
 | 
			
		||||
    },
 | 
			
		||||
    "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.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
 | 
			
		||||
      "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
 | 
			
		||||
      "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.5.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/chai-string/-/chai-string-1.5.0.tgz",
 | 
			
		||||
      "integrity": "sha512-sydDC3S3pNAQMYwJrs6dQX0oBQ6KfIPuOZ78n7rocW0eJJlsHPh2t3kwW7xfwYA/1Bf6/arGtSUo16rxR2JFlw==",
 | 
			
		||||
      "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.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
 | 
			
		||||
      "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
 | 
			
		||||
      "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"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "combined-stream": {
 | 
			
		||||
      "version": "1.0.6",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
 | 
			
		||||
      "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "delayed-stream": "~1.0.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "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="
 | 
			
		||||
    },
 | 
			
		||||
    "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"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "delayed-stream": {
 | 
			
		||||
      "version": "1.0.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
 | 
			
		||||
      "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "diff": {
 | 
			
		||||
      "version": "3.5.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
 | 
			
		||||
      "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "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
 | 
			
		||||
    },
 | 
			
		||||
    "escape-string-regexp": {
 | 
			
		||||
      "version": "1.0.5",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
 | 
			
		||||
      "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
 | 
			
		||||
      "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
 | 
			
		||||
    },
 | 
			
		||||
    "figures": {
 | 
			
		||||
      "version": "2.0.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
 | 
			
		||||
      "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "escape-string-regexp": "^1.0.5"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "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"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "form-data": {
 | 
			
		||||
      "version": "2.3.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
 | 
			
		||||
      "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "asynckit": "^0.4.0",
 | 
			
		||||
        "combined-stream": "1.0.6",
 | 
			
		||||
        "mime-types": "^2.1.12"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "fs-extra": {
 | 
			
		||||
      "version": "7.0.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.0.tgz",
 | 
			
		||||
      "integrity": "sha512-EglNDLRpmaTWiD/qraZn6HREAEAHJcJOmxNEYwq6xeMKnVMAy3GUcFB+wXt2C6k4CNvB/mP1y/U3dzvKKj5OtQ==",
 | 
			
		||||
      "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
 | 
			
		||||
    },
 | 
			
		||||
    "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.3",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
 | 
			
		||||
      "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
 | 
			
		||||
      "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
 | 
			
		||||
    },
 | 
			
		||||
    "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="
 | 
			
		||||
    },
 | 
			
		||||
    "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="
 | 
			
		||||
    },
 | 
			
		||||
    "isexe": {
 | 
			
		||||
      "version": "2.0.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
 | 
			
		||||
      "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "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.5",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz",
 | 
			
		||||
      "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==",
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "mime-db": {
 | 
			
		||||
      "version": "1.36.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz",
 | 
			
		||||
      "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==",
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "mime-types": {
 | 
			
		||||
      "version": "2.1.20",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz",
 | 
			
		||||
      "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "mime-db": "~1.36.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "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": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
 | 
			
		||||
      "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "mkdirp": {
 | 
			
		||||
      "version": "0.5.1",
 | 
			
		||||
      "resolved": "http://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": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
 | 
			
		||||
          "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
 | 
			
		||||
          "dev": true
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nan": {
 | 
			
		||||
      "version": "2.11.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.0.tgz",
 | 
			
		||||
      "integrity": "sha512-F4miItu2rGnV2ySkXOQoA8FKz/SR2Q2sWP0sbTxNxz/tuokeC8WxOhPMcwi0qIyGtVn/rrSeLbvVkznqCdwYnw==",
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "once": {
 | 
			
		||||
      "version": "1.4.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
 | 
			
		||||
      "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "wrappy": "1"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "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=="
 | 
			
		||||
    },
 | 
			
		||||
    "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==",
 | 
			
		||||
      "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=="
 | 
			
		||||
    },
 | 
			
		||||
    "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"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "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.9",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz",
 | 
			
		||||
      "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==",
 | 
			
		||||
      "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==",
 | 
			
		||||
      "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"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "through2": {
 | 
			
		||||
      "version": "2.0.3",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
 | 
			
		||||
      "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "readable-stream": "^2.1.5",
 | 
			
		||||
        "xtend": "~4.0.1"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "ts-node": {
 | 
			
		||||
      "version": "7.0.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz",
 | 
			
		||||
      "integrity": "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==",
 | 
			
		||||
      "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": "3.0.3",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.0.3.tgz",
 | 
			
		||||
      "integrity": "sha512-kk80vLW9iGtjMnIv11qyxLqZm20UklzuR2tL0QAnDIygIUIemcZMxlMWudl9OOt76H3ntVzcTiddQ1/pAAJMYg==",
 | 
			
		||||
      "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="
 | 
			
		||||
    },
 | 
			
		||||
    "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==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "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
 | 
			
		||||
    },
 | 
			
		||||
    "xtend": {
 | 
			
		||||
      "version": "4.0.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
 | 
			
		||||
      "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
 | 
			
		||||
    },
 | 
			
		||||
    "yn": {
 | 
			
		||||
      "version": "2.0.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz",
 | 
			
		||||
      "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=",
 | 
			
		||||
      "dev": true
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										22
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								package.json
									
									
									
									
									
								
							@@ -1,11 +1,13 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "nodehash",
 | 
			
		||||
  "name": "@pushrocks/smarthash",
 | 
			
		||||
  "version": "1.0.4",
 | 
			
		||||
  "private": false,
 | 
			
		||||
  "description": "simplifies access to node hash functions",
 | 
			
		||||
  "main": "dist/index.js",
 | 
			
		||||
  "typings": "dist/index.d.ts",
 | 
			
		||||
  "scripts": {
 | 
			
		||||
    "test": "(npmts)"
 | 
			
		||||
    "test": "(tstest test/)",
 | 
			
		||||
    "build": "(tsbuild)"
 | 
			
		||||
  },
 | 
			
		||||
  "repository": {
 | 
			
		||||
    "type": "git",
 | 
			
		||||
@@ -25,15 +27,15 @@
 | 
			
		||||
  },
 | 
			
		||||
  "homepage": "https://github.com/pushrocks/nodehash#readme",
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "npmts-g": "^5.2.8",
 | 
			
		||||
    "should": "^11.1.0",
 | 
			
		||||
    "typings-test": "^1.0.1"
 | 
			
		||||
    "@gitzone/tsbuild": "^2.0.22",
 | 
			
		||||
    "@gitzone/tsrun": "^1.1.12",
 | 
			
		||||
    "@gitzone/tstest": "^1.0.15",
 | 
			
		||||
    "@pushrocks/tapbundle": "^3.0.7",
 | 
			
		||||
    "@types/node": "^10.9.4"
 | 
			
		||||
  },
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "@types/q": "0.x.x",
 | 
			
		||||
    "@types/through2": "0.x.x",
 | 
			
		||||
    "q": "^1.4.1",
 | 
			
		||||
    "through2": "^2.0.1",
 | 
			
		||||
    "typings-global": "^1.0.6"
 | 
			
		||||
    "@pushrocks/smartpromise": "^2.0.5",
 | 
			
		||||
    "@types/through2": "^2.0.33",
 | 
			
		||||
    "through2": "^2.0.3"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1
									
								
								test/test.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								test/test.d.ts
									
									
									
									
										vendored
									
									
								
							@@ -1 +0,0 @@
 | 
			
		||||
import "typings-test";
 | 
			
		||||
							
								
								
									
										46
									
								
								test/test.js
									
									
									
									
									
								
							
							
						
						
									
										46
									
								
								test/test.js
									
									
									
									
									
								
							@@ -1,46 +0,0 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
require("typings-test");
 | 
			
		||||
const should = require("should");
 | 
			
		||||
const fs = require("fs");
 | 
			
		||||
const nodehash = require("../dist/index");
 | 
			
		||||
describe("nodehash", function () {
 | 
			
		||||
    describe("sha256FromStringSync", function () {
 | 
			
		||||
        it("should convert a String to sha256 hash synchronously", function () {
 | 
			
		||||
            let testHash = nodehash.sha256FromStringSync("test");
 | 
			
		||||
            let testHash2 = nodehash.sha256FromStringSync("testString");
 | 
			
		||||
            let testHash3 = nodehash.sha256FromStringSync("test");
 | 
			
		||||
            should.equal(testHash, testHash3);
 | 
			
		||||
            should.notEqual(testHash, "test");
 | 
			
		||||
        });
 | 
			
		||||
    });
 | 
			
		||||
    describe("sha256fromStringSync", function () {
 | 
			
		||||
        it("should convert a String to sha256 hash synchronously", function (done) {
 | 
			
		||||
            nodehash.sha256FromString("test")
 | 
			
		||||
                .then(resultString => {
 | 
			
		||||
                let compareString = nodehash.sha256FromStringSync("test");
 | 
			
		||||
                should.equal(resultString, compareString);
 | 
			
		||||
                done();
 | 
			
		||||
            });
 | 
			
		||||
        });
 | 
			
		||||
    });
 | 
			
		||||
    describe("sha256fromStream", function () {
 | 
			
		||||
        it("should convert a Stream to sha256 and resolve a promise with result", function (done) {
 | 
			
		||||
            let readStream = fs.createReadStream("./test/testImageForHash.jpg");
 | 
			
		||||
            nodehash.sha256FromStream(readStream)
 | 
			
		||||
                .then((resultString) => {
 | 
			
		||||
                should.equal(resultString, "45b80413ed93acb495691186ce61850449439f9183352b9bff96d5533fa1046c");
 | 
			
		||||
                done();
 | 
			
		||||
            });
 | 
			
		||||
        });
 | 
			
		||||
    });
 | 
			
		||||
    describe("sha256fromFile", function () {
 | 
			
		||||
        it("should convert a Stream to sha256 and resolve a promise with result", function (done) {
 | 
			
		||||
            nodehash.sha256FromFile("./test/testImageForHash.jpg")
 | 
			
		||||
                .then((resultString) => {
 | 
			
		||||
                should.equal(resultString, "45b80413ed93acb495691186ce61850449439f9183352b9bff96d5533fa1046c");
 | 
			
		||||
                done();
 | 
			
		||||
            });
 | 
			
		||||
        });
 | 
			
		||||
    });
 | 
			
		||||
});
 | 
			
		||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sY0FBYyxDQUFDLENBQUE7QUFDdEIsTUFBTyxNQUFNLFdBQVcsUUFBUSxDQUFDLENBQUM7QUFDbEMsTUFBTyxFQUFFLFdBQVcsSUFBSSxDQUFDLENBQUM7QUFFMUIsTUFBWSxRQUFRLFdBQU0sZUFBZSxDQUFDLENBQUE7QUFFMUMsUUFBUSxDQUFDLFVBQVUsRUFBQztJQUNoQixRQUFRLENBQUMsc0JBQXNCLEVBQUM7UUFDNUIsRUFBRSxDQUFDLHNEQUFzRCxFQUFDO1lBQ3RELElBQUksUUFBUSxHQUFHLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNyRCxJQUFJLFNBQVMsR0FBRyxRQUFRLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDNUQsSUFBSSxTQUFTLEdBQUcsUUFBUSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3RELE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2pDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQyxDQUFDLENBQUM7SUFDSCxRQUFRLENBQUMsc0JBQXNCLEVBQUM7UUFDNUIsRUFBRSxDQUFDLHNEQUFzRCxFQUFDLFVBQVMsSUFBSTtZQUNuRSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO2lCQUM1QixJQUFJLENBQUMsWUFBWTtnQkFDZCxJQUFJLGFBQWEsR0FBRyxRQUFRLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzFELE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUN6QyxJQUFJLEVBQUUsQ0FBQztZQUNYLENBQUMsQ0FBQyxDQUFBO1FBQ1YsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDLENBQUMsQ0FBQztJQUNILFFBQVEsQ0FBQyxrQkFBa0IsRUFBQztRQUN4QixFQUFFLENBQUMscUVBQXFFLEVBQUMsVUFBUyxJQUFJO1lBQ2xGLElBQUksVUFBVSxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1lBQ3BFLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUM7aUJBQ2hDLElBQUksQ0FBQyxDQUFDLFlBQW1CO2dCQUN0QixNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBQyxrRUFBa0UsQ0FBQyxDQUFBO2dCQUM3RixJQUFJLEVBQUUsQ0FBQztZQUNYLENBQUMsQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDLENBQUMsQ0FBQztJQUNILFFBQVEsQ0FBQyxnQkFBZ0IsRUFBQztRQUN0QixFQUFFLENBQUMscUVBQXFFLEVBQUMsVUFBUyxJQUFJO1lBQ2xGLFFBQVEsQ0FBQyxjQUFjLENBQUMsNkJBQTZCLENBQUM7aUJBQ2pELElBQUksQ0FBQyxDQUFDLFlBQW1CO2dCQUN0QixNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBQyxrRUFBa0UsQ0FBQyxDQUFBO2dCQUM3RixJQUFJLEVBQUUsQ0FBQztZQUNYLENBQUMsQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyxDQUFDIn0=
 | 
			
		||||
							
								
								
									
										65
									
								
								test/test.ts
									
									
									
									
									
								
							
							
						
						
									
										65
									
								
								test/test.ts
									
									
									
									
									
								
							@@ -1,46 +1,31 @@
 | 
			
		||||
import "typings-test";
 | 
			
		||||
import should = require("should");
 | 
			
		||||
import fs = require("fs");
 | 
			
		||||
import { tap, expect } from '@pushrocks/tapbundle';
 | 
			
		||||
import fs = require('fs');
 | 
			
		||||
 | 
			
		||||
import * as nodehash from "../dist/index";
 | 
			
		||||
import * as nodehash from '../ts/index';
 | 
			
		||||
 | 
			
		||||
describe("nodehash",function(){
 | 
			
		||||
    describe("sha256FromStringSync",function(){
 | 
			
		||||
        it("should convert a String to sha256 hash synchronously",function(){
 | 
			
		||||
            let testHash = nodehash.sha256FromStringSync("test");
 | 
			
		||||
            let testHash2 = nodehash.sha256FromStringSync("testString");
 | 
			
		||||
            let testHash3 = nodehash.sha256FromStringSync("test");
 | 
			
		||||
            should.equal(testHash,testHash3);
 | 
			
		||||
            should.notEqual(testHash,"test");
 | 
			
		||||
        })
 | 
			
		||||
tap.test('sha256FromStringSync should convert a String to sha256 hash synchronously', async () => {
 | 
			
		||||
  let testHash = nodehash.sha256FromStringSync('test');
 | 
			
		||||
  let testHash2 = nodehash.sha256FromStringSync('testString');
 | 
			
		||||
  let testHash3 = nodehash.sha256FromStringSync('test');
 | 
			
		||||
  expect(testHash).to.equal(testHash3);
 | 
			
		||||
  expect(testHash).to.not.equal('test');
 | 
			
		||||
});
 | 
			
		||||
    describe("sha256fromStringSync",function(){
 | 
			
		||||
        it("should convert a String to sha256 hash synchronously",function(done){
 | 
			
		||||
            nodehash.sha256FromString("test")
 | 
			
		||||
                .then(resultString => {
 | 
			
		||||
                    let compareString = nodehash.sha256FromStringSync("test");
 | 
			
		||||
                    should.equal(resultString,compareString);
 | 
			
		||||
                    done();
 | 
			
		||||
                })
 | 
			
		||||
        })
 | 
			
		||||
 | 
			
		||||
tap.test('sha256fromStringSync should convert a String to sha256 hash synchronously', async () => {
 | 
			
		||||
  const resultString = await nodehash.sha256FromString('test');
 | 
			
		||||
  let compareString = nodehash.sha256FromStringSync('test');
 | 
			
		||||
  expect(resultString).to.equal(compareString);
 | 
			
		||||
});
 | 
			
		||||
    describe("sha256fromStream",function(){
 | 
			
		||||
        it("should convert a Stream to sha256 and resolve a promise with result",function(done){
 | 
			
		||||
            let readStream = fs.createReadStream("./test/testImageForHash.jpg");
 | 
			
		||||
            nodehash.sha256FromStream(readStream)
 | 
			
		||||
                .then((resultString:string) => {
 | 
			
		||||
                    should.equal(resultString,"45b80413ed93acb495691186ce61850449439f9183352b9bff96d5533fa1046c")
 | 
			
		||||
                    done();
 | 
			
		||||
                });
 | 
			
		||||
        })
 | 
			
		||||
    });
 | 
			
		||||
    describe("sha256fromFile",function(){
 | 
			
		||||
        it("should convert a Stream to sha256 and resolve a promise with result",function(done){
 | 
			
		||||
            nodehash.sha256FromFile("./test/testImageForHash.jpg")
 | 
			
		||||
                .then((resultString:string) => {
 | 
			
		||||
                    should.equal(resultString,"45b80413ed93acb495691186ce61850449439f9183352b9bff96d5533fa1046c")
 | 
			
		||||
                    done();
 | 
			
		||||
                });
 | 
			
		||||
        })
 | 
			
		||||
 | 
			
		||||
tap.test('sha256fromStream should convert a Stream to sha256', async tools => {
 | 
			
		||||
  let readStream = fs.createReadStream('./test/testImageForHash.jpg');
 | 
			
		||||
  const resultString: string = await nodehash.sha256FromStream(readStream);
 | 
			
		||||
  expect(resultString).to.equal('45b80413ed93acb495691186ce61850449439f9183352b9bff96d5533fa1046c');
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
tap.test('sha256fromFile should convert a Stream to sha256', async () => {
 | 
			
		||||
  const resultString = await nodehash.sha256FromFile('./test/testImageForHash.jpg');
 | 
			
		||||
  expect(resultString).to.equal('45b80413ed93acb495691186ce61850449439f9183352b9bff96d5533fa1046c');
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
tap.start();
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,3 @@
 | 
			
		||||
import * as plugins from "./nodehash.plugins";
 | 
			
		||||
import * as plugins from './nodehash.plugins';
 | 
			
		||||
 | 
			
		||||
export * from "./nodehash.sha256";
 | 
			
		||||
export * from './nodehash.sha256';
 | 
			
		||||
 
 | 
			
		||||
@@ -1,15 +1,14 @@
 | 
			
		||||
import * as plugins from "./nodehash.plugins";
 | 
			
		||||
import * as plugins from './nodehash.plugins';
 | 
			
		||||
 | 
			
		||||
export let hashStreamPipeStop = (resolveFuntion) => {
 | 
			
		||||
export let hashStreamPipeStop = resolveFuntion => {
 | 
			
		||||
  let forEach = (chunk: Buffer, enc, cb) => {
 | 
			
		||||
        resolveFuntion(chunk.toString("utf8"));
 | 
			
		||||
    resolveFuntion(chunk.toString('utf8'));
 | 
			
		||||
    cb(null, chunk);
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
    let atEnd = (cb) => {
 | 
			
		||||
  let atEnd = cb => {
 | 
			
		||||
    cb();
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  return plugins.through2(forEach, atEnd);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,6 @@
 | 
			
		||||
import "typings-global";
 | 
			
		||||
export import crypto = require("crypto");
 | 
			
		||||
export import fs = require("fs");
 | 
			
		||||
export import path = require("path");
 | 
			
		||||
export import q = require("q");
 | 
			
		||||
export import stream = require("stream");
 | 
			
		||||
export import through2 = require("through2");
 | 
			
		||||
export import crypto = require('crypto');
 | 
			
		||||
export import fs = require('fs');
 | 
			
		||||
export import path = require('path');
 | 
			
		||||
export import q = require('@pushrocks/smartpromise');
 | 
			
		||||
export import stream = require('stream');
 | 
			
		||||
export import through2 = require('through2');
 | 
			
		||||
 
 | 
			
		||||
@@ -1,17 +1,15 @@
 | 
			
		||||
import * as plugins from "./nodehash.plugins";
 | 
			
		||||
import * as helpers from "./nodehash.helpers";
 | 
			
		||||
import * as plugins from './nodehash.plugins';
 | 
			
		||||
import * as helpers from './nodehash.helpers';
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * creates sha256 Hash from Stream
 | 
			
		||||
 */
 | 
			
		||||
export let sha256FromStream = (input) => {
 | 
			
		||||
    let done = plugins.q.defer();
 | 
			
		||||
export let sha256FromStream = (input): Promise<string> => {
 | 
			
		||||
  let done = plugins.q.defer<string>();
 | 
			
		||||
  let hash = plugins.crypto.createHash('sha256');
 | 
			
		||||
 | 
			
		||||
    hash["setEncoding"]("hex");
 | 
			
		||||
    input
 | 
			
		||||
        .pipe(hash)
 | 
			
		||||
        .pipe(helpers.hashStreamPipeStop(done.resolve));
 | 
			
		||||
  hash['setEncoding']('hex');
 | 
			
		||||
  input.pipe(hash).pipe(helpers.hashStreamPipeStop(done.resolve));
 | 
			
		||||
  return done.promise;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@@ -22,30 +20,29 @@ export let sha256FromFile = (filePath:string) => {
 | 
			
		||||
  let done = plugins.q.defer();
 | 
			
		||||
  let absolutePath = plugins.path.resolve(filePath);
 | 
			
		||||
  let readableStream = plugins.fs.createReadStream(absolutePath);
 | 
			
		||||
    sha256FromStream(readableStream)
 | 
			
		||||
        .then((resultHashString) => {
 | 
			
		||||
  sha256FromStream(readableStream).then(resultHashString => {
 | 
			
		||||
    done.resolve(resultHashString);
 | 
			
		||||
  });
 | 
			
		||||
  return done.promise;
 | 
			
		||||
}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Computes sha256 Hash from String synchronously
 | 
			
		||||
 */
 | 
			
		||||
export let sha256FromStringSync = (stringArg) => {
 | 
			
		||||
export let sha256FromStringSync = stringArg => {
 | 
			
		||||
  let hash = plugins.crypto.createHash('sha256');
 | 
			
		||||
  hash.update(stringArg);
 | 
			
		||||
    return hash.digest("hex");
 | 
			
		||||
  return hash.digest('hex');
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Computes sha256 Hash from String
 | 
			
		||||
 */
 | 
			
		||||
export let sha256FromString = (stringArg) => {
 | 
			
		||||
export let sha256FromString = stringArg => {
 | 
			
		||||
  let done = plugins.q.defer();
 | 
			
		||||
  let hash = plugins.crypto.createHash('sha256');
 | 
			
		||||
  hash.update(stringArg);
 | 
			
		||||
    let hashResult = hash.digest("hex");
 | 
			
		||||
  let hashResult = hash.digest('hex');
 | 
			
		||||
  done.resolve(hashResult);
 | 
			
		||||
  return done.promise;
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user