diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index e745cf1..a1d614e 100644
--- a/.gitlab-ci.yml
+++ b/.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
+ - 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
+ - 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
+ - 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:
- - docker
\ No newline at end of file
+ - windows
+ allow_failure: true
diff --git a/README.md b/README.md
index ba7a65d..5cdaa9c 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,13 @@
# nodehash
+
simplifies access to node hash functions. TypeScript Ready
## Status
+
[![build status](https://gitlab.com/pushrocks/nodehash/badges/master/build.svg)](https://gitlab.com/pushrocks/nodehash/commits/master)
## Usage
+
We recommend the use of TypeScript for best in class intellisense.
```typescript
@@ -30,4 +33,4 @@ nodehash.sha256FromString("some weird random string")
});
let hashString = nodehash.sha256FromStringSync("some weird random string");
-```
\ No newline at end of file
+```
diff --git a/dist/index.d.ts b/dist/index.d.ts
deleted file mode 100644
index c8d868c..0000000
--- a/dist/index.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./nodehash.sha256";
diff --git a/dist/index.js b/dist/index.js
deleted file mode 100644
index 9d12e9d..0000000
--- a/dist/index.js
+++ /dev/null
@@ -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
\ No newline at end of file
diff --git a/dist/nodehash.helpers.d.ts b/dist/nodehash.helpers.d.ts
deleted file mode 100644
index 8b8bffc..0000000
--- a/dist/nodehash.helpers.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-///
-export declare let hashStreamPipeStop: (resolveFuntion: any) => NodeJS.ReadWriteStream;
diff --git a/dist/nodehash.helpers.js b/dist/nodehash.helpers.js
deleted file mode 100644
index 282f2f3..0000000
--- a/dist/nodehash.helpers.js
+++ /dev/null
@@ -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==
\ No newline at end of file
diff --git a/dist/nodehash.plugins.d.ts b/dist/nodehash.plugins.d.ts
deleted file mode 100644
index b8f6639..0000000
--- a/dist/nodehash.plugins.d.ts
+++ /dev/null
@@ -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");
diff --git a/dist/nodehash.plugins.js b/dist/nodehash.plugins.js
deleted file mode 100644
index 4a2772b..0000000
--- a/dist/nodehash.plugins.js
+++ /dev/null
@@ -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
\ No newline at end of file
diff --git a/dist/nodehash.sha256.d.ts b/dist/nodehash.sha256.d.ts
deleted file mode 100644
index c61ee95..0000000
--- a/dist/nodehash.sha256.d.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-///
-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<{}>;
diff --git a/dist/nodehash.sha256.js b/dist/nodehash.sha256.js
deleted file mode 100644
index e6bb520..0000000
--- a/dist/nodehash.sha256.js
+++ /dev/null
@@ -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
\ No newline at end of file
diff --git a/npmextra.json b/npmextra.json
index 9e26dfe..4ff49cf 100644
--- a/npmextra.json
+++ b/npmextra.json
@@ -1 +1,5 @@
-{}
\ No newline at end of file
+{
+ "npmci": {
+ "npmAccessLevel": "public"
+ }
+}
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..096c117
--- /dev/null
+++ b/package-lock.json
@@ -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
+ }
+ }
+}
diff --git a/package.json b/package.json
index f4ad89c..79302e0 100644
--- a/package.json
+++ b/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"
}
-}
+}
\ No newline at end of file
diff --git a/test/test.d.ts b/test/test.d.ts
deleted file mode 100644
index e7cc8ee..0000000
--- a/test/test.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import "typings-test";
diff --git a/test/test.js b/test/test.js
deleted file mode 100644
index 48f3b33..0000000
--- a/test/test.js
+++ /dev/null
@@ -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=
\ No newline at end of file
diff --git a/test/test.ts b/test/test.ts
index 3c911d8..350fc52 100644
--- a/test/test.ts
+++ b/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");
- })
- });
- 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: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();
- });
- })
- });
-});
\ No newline at end of file
+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');
+});
+
+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);
+});
+
+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();
diff --git a/ts/index.ts b/ts/index.ts
index 1e46d31..3e189c4 100644
--- a/ts/index.ts
+++ b/ts/index.ts
@@ -1,3 +1,3 @@
-import * as plugins from "./nodehash.plugins";
+import * as plugins from './nodehash.plugins';
-export * from "./nodehash.sha256";
\ No newline at end of file
+export * from './nodehash.sha256';
diff --git a/ts/nodehash.helpers.ts b/ts/nodehash.helpers.ts
index 4cc371a..32d980a 100644
--- a/ts/nodehash.helpers.ts
+++ b/ts/nodehash.helpers.ts
@@ -1,15 +1,14 @@
-import * as plugins from "./nodehash.plugins";
+import * as plugins from './nodehash.plugins';
-export let hashStreamPipeStop = (resolveFuntion) => {
- let forEach = (chunk:Buffer,enc,cb) => {
- resolveFuntion(chunk.toString("utf8"));
- cb(null,chunk);
- };
+export let hashStreamPipeStop = resolveFuntion => {
+ let forEach = (chunk: Buffer, enc, cb) => {
+ resolveFuntion(chunk.toString('utf8'));
+ cb(null, chunk);
+ };
- let atEnd = (cb) => {
- cb();
- };
-
- return plugins.through2(forEach,atEnd);
+ let atEnd = cb => {
+ cb();
+ };
+
+ return plugins.through2(forEach, atEnd);
};
-
diff --git a/ts/nodehash.plugins.ts b/ts/nodehash.plugins.ts
index b8f6639..9caeba4 100644
--- a/ts/nodehash.plugins.ts
+++ b/ts/nodehash.plugins.ts
@@ -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');
diff --git a/ts/nodehash.sha256.ts b/ts/nodehash.sha256.ts
index 466c558..743e0e0 100644
--- a/ts/nodehash.sha256.ts
+++ b/ts/nodehash.sha256.ts
@@ -1,51 +1,48 @@
-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();
- let hash = plugins.crypto.createHash('sha256');
+export let sha256FromStream = (input): Promise => {
+ 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;
+ hash['setEncoding']('hex');
+ input.pipe(hash).pipe(helpers.hashStreamPipeStop(done.resolve));
+ return done.promise;
};
/**
* creates sha256 Hash from File;
*/
-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) => {
- done.resolve(resultHashString);
- });
- return done.promise;
-}
+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 => {
+ done.resolve(resultHashString);
+ });
+ return done.promise;
+};
/**
* Computes sha256 Hash from String synchronously
*/
-export let sha256FromStringSync = (stringArg) => {
- let hash = plugins.crypto.createHash('sha256');
- hash.update(stringArg);
- return hash.digest("hex");
+export let sha256FromStringSync = stringArg => {
+ let hash = plugins.crypto.createHash('sha256');
+ hash.update(stringArg);
+ return hash.digest('hex');
};
/**
* Computes sha256 Hash from String
*/
-export let 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;
-};
+export let 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;
+};