diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index d910736..a1d614e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -3,69 +3,140 @@ image: hosttoday/ht-docker-node:npmci
cache:
paths:
- - .yarn/
+ - .npmci_cache/
key: "$CI_BUILD_STAGE"
stages:
+- security
- test
- release
-- trigger
-- pages
+- 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
script:
- - npmci publish
+ - npmci node install stable
+ - npmci npm publish
only:
- - tags
+ - tags
tags:
- - docker
+ - docker
+ - notpriv
+
+# ====================
+# metadata stage
+# ====================
+codequality:
+ stage: metadata
+ image: docker:stable
+ allow_failure: true
+ services:
+ - docker:stable-dind
+ script:
+ - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
+ - docker run
+ --env SOURCE_CODE="$PWD"
+ --volume "$PWD":/code
+ --volume /var/run/docker.sock:/var/run/docker.sock
+ "registry.gitlab.com/gitlab-org/security-products/codequality:$SP_VERSION" /code
+ artifacts:
+ paths: [codeclimate.json]
+ tags:
+ - docker
+ - priv
trigger:
- stage: trigger
+ stage: metadata
script:
- - npmci trigger
+ - npmci trigger
only:
- - tags
+ - tags
tags:
- - docker
+ - docker
+ - notpriv
pages:
image: hosttoday/ht-docker-node:npmci
- stage: pages
+ stage: metadata
script:
- - npmci command yarn global add npmpage
- - npmci command npmpage --publish gitlab
+ - 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
diff --git a/README.md b/README.md
index ff37d5b..24f23d8 100644
--- a/README.md
+++ b/README.md
@@ -1,13 +1,16 @@
# smarthbs
+
handlebars with better fs support
## Availabililty
+
[![npm](https://pushrocks.gitlab.io/assets/repo-button-npm.svg)](https://www.npmjs.com/package/smarthbs)
[![git](https://pushrocks.gitlab.io/assets/repo-button-git.svg)](https://GitLab.com/pushrocks/smarthbs)
[![git](https://pushrocks.gitlab.io/assets/repo-button-mirror.svg)](https://github.com/pushrocks/smarthbs)
[![docs](https://pushrocks.gitlab.io/assets/repo-button-docs.svg)](https://pushrocks.gitlab.io/smarthbs/)
## Status for master
+
[![build status](https://GitLab.com/pushrocks/smarthbs/badges/master/build.svg)](https://GitLab.com/pushrocks/smarthbs/commits/master)
[![coverage report](https://GitLab.com/pushrocks/smarthbs/badges/master/coverage.svg)](https://GitLab.com/pushrocks/smarthbs/commits/master)
[![npm downloads per month](https://img.shields.io/npm/dm/smarthbs.svg)](https://www.npmjs.com/package/smarthbs)
@@ -19,25 +22,26 @@ handlebars with better fs support
[![JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/)
## Usage
+
Use TypeScript for best in class instellisense.
For further information read the linked docs at the top of this README.
> Note: Why did we decide against a class based architecture?
-Easy: handlebars.js is already pretty determined how things are handled internally, namely a global partial template registry
-It doesn't make sense to then introduce a scoped partial template approach.
+> Easy: handlebars.js is already pretty determined how things are handled internally, namely a global partial template registry
+> It doesn't make sense to then introduce a scoped partial template approach.
```javascript
-import * as smarthbs from 'smarthbs'
+import * as smarthbs from 'smarthbs';
// read all .hbs files in a directory and any child directories and use relative path as partial string identifier
-smarthbs.registerPartialDir(testPartialDir)
+smarthbs.registerPartialDir(testPartialDir);
// read all .hbs files in a particular directory and level, output them to a destination and specify a .json file to read any referenced data
-smarthbs.compileDirectory(testHbsDir, testResultDir, 'data.json')
+smarthbs.compileDirectory(testHbsDir, testResultDir, 'data.json');
```
> MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh)
-| By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy.html)
+> | By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy.html)
[![repo-footer](https://pushrocks.gitlab.io/assets/repo-footer.svg)](https://push.rocks)
diff --git a/dist/index.d.ts b/dist/index.d.ts
deleted file mode 100644
index 5f6b790..0000000
--- a/dist/index.d.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-///
-export declare type TTemplateStringType = 'filePath' | 'code';
-export declare let handlebars: typeof Handlebars;
-export * from './smarthbs.compile';
-import './smarthbs.helpers';
-export * from './smarthbs.partials';
-export * from './smarthbs.template';
-export * from './smarthbs.variables';
-export * from './smarthbs.postprocess';
diff --git a/dist/index.js b/dist/index.js
deleted file mode 100644
index a86ab68..0000000
--- a/dist/index.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-function __export(m) {
- for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-const plugins = require("./smarthbs.plugins");
-exports.handlebars = plugins.handlebars;
-__export(require("./smarthbs.compile"));
-require("./smarthbs.helpers");
-__export(require("./smarthbs.partials"));
-__export(require("./smarthbs.template"));
-__export(require("./smarthbs.variables"));
-__export(require("./smarthbs.postprocess"));
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDhDQUE2QztBQUdsQyxRQUFBLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFBO0FBQzFDLHdDQUFrQztBQUNsQyw4QkFBMkI7QUFDM0IseUNBQW1DO0FBQ25DLHlDQUFtQztBQUNuQywwQ0FBb0M7QUFDcEMsNENBQXNDIn0=
\ No newline at end of file
diff --git a/dist/smarthbs.compile.d.ts b/dist/smarthbs.compile.d.ts
deleted file mode 100644
index 71c15a8..0000000
--- a/dist/smarthbs.compile.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-/**
- * compiles a directory and outputs it
- */
-export declare let compileDirectory: (originDirPathArg: string, destinationDirPathArg: string, dataFileNameArg: string) => Promise;
diff --git a/dist/smarthbs.compile.js b/dist/smarthbs.compile.js
deleted file mode 100644
index c40e719..0000000
--- a/dist/smarthbs.compile.js
+++ /dev/null
@@ -1,28 +0,0 @@
-"use strict";
-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
- function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-const plugins = require("./smarthbs.plugins");
-/**
- * compiles a directory and outputs it
- */
-exports.compileDirectory = (originDirPathArg, destinationDirPathArg, dataFileNameArg) => __awaiter(this, void 0, void 0, function* () {
- let hbsFilePathArray = plugins.smartfile.fs.listFilesSync(originDirPathArg, /.hbs/);
- let data = plugins.smartfile.fs.toObjectSync(plugins.path.join(originDirPathArg, dataFileNameArg));
- for (let hbsFilePath of hbsFilePathArray) {
- let parsedPath = plugins.path.parse(hbsFilePath);
- let hbsFileString = plugins.smartfile.fs.toStringSync(plugins.path.join(originDirPathArg, hbsFilePath));
- let template = plugins.handlebars.compile(hbsFileString);
- let output = template(data);
- console.log('hi ' + output + ' hi');
- yield plugins.smartfile.fs.ensureDir(destinationDirPathArg);
- plugins.smartfile.memory.toFsSync(output, plugins.path.join(destinationDirPathArg, parsedPath.name + '.html'));
- }
-});
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRoYnMuY29tcGlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0aGJzLmNvbXBpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLDhDQUE2QztBQUU3Qzs7R0FFRztBQUNRLFFBQUEsZ0JBQWdCLEdBQUcsQ0FDNUIsZ0JBQXdCLEVBQ3hCLHFCQUE2QixFQUM3QixlQUF1QjtJQUV2QixJQUFJLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsQ0FBQTtJQUNuRixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQTtJQUNsRyxHQUFHLENBQUMsQ0FBQyxJQUFJLFdBQVcsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDekMsSUFBSSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDaEQsSUFBSSxhQUFhLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUE7UUFDdkcsSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUE7UUFDeEQsSUFBSSxNQUFNLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzNCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQTtRQUNuQyxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO1FBQzNELE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsVUFBVSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFBO0lBQ2hILENBQUM7QUFDSCxDQUFDLENBQUEsQ0FBQSJ9
\ No newline at end of file
diff --git a/dist/smarthbs.helpers.d.ts b/dist/smarthbs.helpers.d.ts
deleted file mode 100644
index e69de29..0000000
diff --git a/dist/smarthbs.helpers.js b/dist/smarthbs.helpers.js
deleted file mode 100644
index ec664c1..0000000
--- a/dist/smarthbs.helpers.js
+++ /dev/null
@@ -1,32 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-const plugins = require("./smarthbs.plugins");
-/**
- * Helper:
- * Allows you to analyze a context
- */
-plugins.handlebars.registerHelper('__analyze', (analyzeContext) => {
- if (typeof analyzeContext === 'string') {
- if (plugins.handlebars.partials[analyzeContext]) {
- plugins.beautylog.log(`The analyzed partial ${analyzeContext} looks like this`);
- console.log(plugins.handlebars.partials[analyzeContext]);
- }
- else {
- plugins.beautylog.error(`The Partial ${analyzeContext} cannot be found`);
- }
- return 'analyzed';
- }
-});
-/**
- * Helper:
- * logs all registered partials to console
- */
-plugins.handlebars.registerHelper('__allPartialsLog', (analyzeContext) => {
- console.log(plugins.handlebars.partials);
- return 'analyzed';
-});
-plugins.handlebars.registerHelper('__compile', (evaluationString, evaluationContext) => {
- let template = plugins.handlebars.compile(evaluationString);
- return template(evaluationContext);
-});
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRoYnMuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0aGJzLmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw4Q0FBNkM7QUFFN0M7OztHQUdHO0FBQ0gsT0FBTyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUMsY0FBYztJQUM1RCxFQUFFLENBQUMsQ0FBQyxPQUFPLGNBQWMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoRCxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsY0FBYyxrQkFBa0IsQ0FBQyxDQUFBO1lBQy9FLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQTtRQUMxRCxDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDTixPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxlQUFlLGNBQWMsa0JBQWtCLENBQUMsQ0FBQTtRQUMxRSxDQUFDO1FBQ0QsTUFBTSxDQUFDLFVBQVUsQ0FBQTtJQUNuQixDQUFDO0FBQ0gsQ0FBQyxDQUFDLENBQUE7QUFFRjs7O0dBR0c7QUFDSCxPQUFPLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLGNBQWM7SUFDbkUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ3hDLE1BQU0sQ0FBQyxVQUFVLENBQUE7QUFDbkIsQ0FBQyxDQUFDLENBQUE7QUFFRixPQUFPLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxpQkFBaUI7SUFDakYsSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUMzRCxNQUFNLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUE7QUFDcEMsQ0FBQyxDQUFDLENBQUEifQ==
\ No newline at end of file
diff --git a/dist/smarthbs.partials.d.ts b/dist/smarthbs.partials.d.ts
deleted file mode 100644
index 05cd4ef..0000000
--- a/dist/smarthbs.partials.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-/**
- * registers a directory of partials to make them available within handlebars compilation
- */
-export declare let registerPartialDir: (dirPathArg: string) => Promise;
diff --git a/dist/smarthbs.partials.js b/dist/smarthbs.partials.js
deleted file mode 100644
index ab9dd7f..0000000
--- a/dist/smarthbs.partials.js
+++ /dev/null
@@ -1,26 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-const plugins = require("./smarthbs.plugins");
-/**
- * registers a directory of partials to make them available within handlebars compilation
- */
-exports.registerPartialDir = (dirPathArg) => {
- let done = plugins.smartq.defer();
- plugins.smartfile.fs.listFileTree(dirPathArg, '**/*.hbs').then(hbsFileArrayArg => {
- for (let hbsFilePath of hbsFileArrayArg) {
- let parsedPath = plugins.path.parse(hbsFilePath);
- let hbsFileString = plugins.smartfile.fs.toStringSync(plugins.path.join(dirPathArg, hbsFilePath));
- if (parsedPath.dir === '/') {
- parsedPath.dir = '';
- }
- if (parsedPath.dir !== '') {
- parsedPath.dir = parsedPath.dir + '/';
- }
- let partialName = `partials/${parsedPath.dir}${parsedPath.name}`;
- plugins.handlebars.registerPartial(partialName, hbsFileString);
- done.resolve();
- }
- });
- return done.promise;
-};
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRoYnMucGFydGlhbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydGhicy5wYXJ0aWFscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDhDQUE2QztBQUU3Qzs7R0FFRztBQUNRLFFBQUEsa0JBQWtCLEdBQUcsQ0FBQyxVQUFrQjtJQUNqRCxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQ2pDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWU7UUFDNUUsR0FBRyxDQUFDLENBQUMsSUFBSSxXQUFXLElBQUksZUFBZSxDQUFDLENBQUMsQ0FBQztZQUN4QyxJQUFJLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQTtZQUNoRCxJQUFJLGFBQWEsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUE7WUFDakcsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUMzQixVQUFVLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQTtZQUNyQixDQUFDO1lBQ0QsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUMxQixVQUFVLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFBO1lBQ3ZDLENBQUM7WUFDRCxJQUFJLFdBQVcsR0FBRyxZQUFZLFVBQVUsQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFBO1lBQ2hFLE9BQU8sQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQTtZQUM5RCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUE7UUFDaEIsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0YsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUE7QUFDckIsQ0FBQyxDQUFBIn0=
\ No newline at end of file
diff --git a/dist/smarthbs.plugins.d.ts b/dist/smarthbs.plugins.d.ts
deleted file mode 100644
index 63dba8e..0000000
--- a/dist/smarthbs.plugins.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import 'typings-global';
-import * as beautylog from 'beautylog';
-import * as handlebars from 'handlebars';
-import * as lodash from 'lodash';
-import * as path from 'path';
-import * as smartfile from 'smartfile';
-import * as smartq from 'smartq';
-export { beautylog, handlebars, lodash, path, smartfile, smartq };
diff --git a/dist/smarthbs.plugins.js b/dist/smarthbs.plugins.js
deleted file mode 100644
index aa8e577..0000000
--- a/dist/smarthbs.plugins.js
+++ /dev/null
@@ -1,16 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("typings-global");
-const beautylog = require("beautylog");
-exports.beautylog = beautylog;
-const handlebars = require("handlebars");
-exports.handlebars = handlebars;
-const lodash = require("lodash");
-exports.lodash = lodash;
-const path = require("path");
-exports.path = path;
-const smartfile = require("smartfile");
-exports.smartfile = smartfile;
-const smartq = require("smartq");
-exports.smartq = smartq;
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRoYnMucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0aGJzLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwQkFBdUI7QUFDdkIsdUNBQXNDO0FBUXBDLDhCQUFTO0FBUFgseUNBQXdDO0FBUXRDLGdDQUFVO0FBUFosaUNBQWdDO0FBUTlCLHdCQUFNO0FBUFIsNkJBQTRCO0FBUTFCLG9CQUFJO0FBUE4sdUNBQXNDO0FBUXBDLDhCQUFTO0FBUFgsaUNBQWdDO0FBUTlCLHdCQUFNIn0=
\ No newline at end of file
diff --git a/dist/smarthbs.postprocess.d.ts b/dist/smarthbs.postprocess.d.ts
deleted file mode 100644
index ec7b3e0..0000000
--- a/dist/smarthbs.postprocess.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-/**
- * allows you to keep handlebars in place across multiple iterations
- * helpful when handlebars syntax is used by more than one tool in a build chain
- */
-export declare let postprocess: (stringArg: string) => Promise;
diff --git a/dist/smarthbs.postprocess.js b/dist/smarthbs.postprocess.js
deleted file mode 100644
index 10a125a..0000000
--- a/dist/smarthbs.postprocess.js
+++ /dev/null
@@ -1,23 +0,0 @@
-"use strict";
-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
- function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-let safeSyntaxBeginRegex = /{-{/g;
-let safeSyntaxEndRegex = /}-}/g;
-/**
- * allows you to keep handlebars in place across multiple iterations
- * helpful when handlebars syntax is used by more than one tool in a build chain
- */
-exports.postprocess = (stringArg) => __awaiter(this, void 0, void 0, function* () {
- let processedString = stringArg;
- processedString = processedString.replace(safeSyntaxBeginRegex, '{{');
- processedString = processedString.replace(safeSyntaxEndRegex, '}}');
- return processedString;
-});
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRoYnMucG9zdHByb2Nlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydGhicy5wb3N0cHJvY2Vzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBR0EsSUFBSSxvQkFBb0IsR0FBRyxNQUFNLENBQUE7QUFDakMsSUFBSSxrQkFBa0IsR0FBRyxNQUFNLENBQUE7QUFFL0I7OztHQUdHO0FBQ1EsUUFBQSxXQUFXLEdBQUcsQ0FBTyxTQUFpQjtJQUMvQyxJQUFJLGVBQWUsR0FBRyxTQUFTLENBQUE7SUFDL0IsZUFBZSxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDckUsZUFBZSxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDbkUsTUFBTSxDQUFDLGVBQWUsQ0FBQTtBQUN4QixDQUFDLENBQUEsQ0FBQSJ9
\ No newline at end of file
diff --git a/dist/smarthbs.template.d.ts b/dist/smarthbs.template.d.ts
deleted file mode 100644
index 64d2991..0000000
--- a/dist/smarthbs.template.d.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-///
-/**
- * get a template for a file on disk
- */
-export declare let getTemplateForFile: (filePathArg: string) => Promise;
-/**
- * get a template for string
- */
-export declare let getTemplateForString: (fileStringArg: string) => Promise;
diff --git a/dist/smarthbs.template.js b/dist/smarthbs.template.js
deleted file mode 100644
index a22eabb..0000000
--- a/dist/smarthbs.template.js
+++ /dev/null
@@ -1,25 +0,0 @@
-"use strict";
-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
- function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-const plugins = require("./smarthbs.plugins");
-/**
- * get a template for a file on disk
- */
-exports.getTemplateForFile = (filePathArg) => __awaiter(this, void 0, void 0, function* () {
- let filePathAbsolute = plugins.path.resolve(filePathArg);
- return plugins.handlebars.compile(plugins.smartfile.fs.toStringSync(filePathAbsolute));
-});
-/**
- * get a template for string
- */
-exports.getTemplateForString = (fileStringArg) => __awaiter(this, void 0, void 0, function* () {
- return plugins.handlebars.compile(fileStringArg);
-});
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRoYnMudGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydGhicy50ZW1wbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsOENBQTZDO0FBRTdDOztHQUVHO0FBQ1EsUUFBQSxrQkFBa0IsR0FBRyxDQUFPLFdBQW1CO0lBQ3hELElBQUksZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDeEQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUE7QUFDeEYsQ0FBQyxDQUFBLENBQUE7QUFFRDs7R0FFRztBQUNRLFFBQUEsb0JBQW9CLEdBQUcsQ0FBTyxhQUFxQjtJQUM1RCxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUE7QUFDbEQsQ0FBQyxDQUFBLENBQUEifQ==
\ No newline at end of file
diff --git a/dist/smarthbs.variables.d.ts b/dist/smarthbs.variables.d.ts
deleted file mode 100644
index 1429354..0000000
--- a/dist/smarthbs.variables.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * finds all variables in a handlebars template
- * @param hbsStringArg
- */
-export declare let findVarsInHbsString: (hbsStringArg: string) => Promise;
-/**
- * checks if supplied variables satisfy an handlebars template
- * @param hbsStringArg
- * @param varObjectArg
- * @return string array with missing variable names
- */
-export declare let checkVarsSatisfaction: (hbsStringArg: string, varObjectArg: any) => Promise;
diff --git a/dist/smarthbs.variables.js b/dist/smarthbs.variables.js
deleted file mode 100644
index 932c23b..0000000
--- a/dist/smarthbs.variables.js
+++ /dev/null
@@ -1,75 +0,0 @@
-"use strict";
-// This file contains code that makes it easy to search handlebar templates for variables.
-// Why? To get a clue if you are missing some.
-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
- function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-const plugins = require("./smarthbs.plugins");
-// the curly regex objects
-let tripleCurlyRegex = /{{{\s*[\w\.]+\s*}}}/g;
-let doubleCurlyRegex = /{{\s*[\w\.]+\s*}}/g;
-let nameInCurlsRegex = /[\w\.]+/;
-/**
- * finds all variables in a handlebars template
- * @param hbsStringArg
- */
-exports.findVarsInHbsString = (hbsStringArg) => __awaiter(this, void 0, void 0, function* () {
- let hbsString = hbsStringArg; // make sure we have a new string object that we may destroy
- let varNameArray = [];
- let tripleCurlyMatches = hbsString.match(tripleCurlyRegex);
- if (tripleCurlyMatches) {
- hbsString = hbsString.replace(tripleCurlyRegex, '[[[replaced]]]');
- varNameArray = plugins.lodash.concat(varNameArray, tripleCurlyMatches);
- }
- let doubleCurlyMatches = hbsString.match(doubleCurlyRegex);
- if (doubleCurlyMatches) {
- varNameArray = plugins.lodash.concat(varNameArray, doubleCurlyMatches);
- }
- // make sure we are clean from curly brackets
- varNameArray = varNameArray.map((x) => {
- return x.match(nameInCurlsRegex)[0];
- });
- // make sure are uniq
- varNameArray = plugins.lodash.uniq(varNameArray);
- return varNameArray;
-});
-/**
- * checks if supplied variables satisfy an handlebars template
- * @param hbsStringArg
- * @param varObjectArg
- * @return string array with missing variable names
- */
-exports.checkVarsSatisfaction = (hbsStringArg, varObjectArg) => __awaiter(this, void 0, void 0, function* () {
- // required vars as combined deep string with . notation
- let requiredVarStrings = yield exports.findVarsInHbsString(hbsStringArg);
- // comparison objects
- let suppliedVarsObject = varObjectArg;
- let missingVarsObject = [];
- // building the
- for (let stringVar of requiredVarStrings) {
- let splittedVars = stringVar.split('.');
- let requiredPointer = suppliedVarsObject;
- for (let i = 0; i < splittedVars.length; i++) {
- let splitVar = splittedVars[i];
- let varAvailable = (requiredPointer[splitVar] !== undefined);
- if (varAvailable && splittedVars.length === (i + 1)) {
- // ok
- }
- else if (varAvailable) {
- requiredPointer = requiredPointer[splitVar];
- }
- else {
- missingVarsObject.push(stringVar);
- i = splittedVars.length;
- }
- }
- }
- return missingVarsObject;
-});
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRoYnMudmFyaWFibGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRoYnMudmFyaWFibGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwwRkFBMEY7QUFDMUYsOENBQThDOzs7Ozs7Ozs7O0FBRTlDLDhDQUE2QztBQUU3QywwQkFBMEI7QUFDMUIsSUFBSSxnQkFBZ0IsR0FBRyxzQkFBc0IsQ0FBQTtBQUM3QyxJQUFJLGdCQUFnQixHQUFHLG9CQUFvQixDQUFBO0FBQzNDLElBQUksZ0JBQWdCLEdBQUcsU0FBUyxDQUFBO0FBRWhDOzs7R0FHRztBQUNRLFFBQUEsbUJBQW1CLEdBQUcsQ0FBTyxZQUFvQjtJQUMxRCxJQUFJLFNBQVMsR0FBRyxZQUFZLENBQUEsQ0FBQyw0REFBNEQ7SUFDekYsSUFBSSxZQUFZLEdBQWEsRUFBRSxDQUFBO0lBQy9CLElBQUksa0JBQWtCLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0lBQzFELEVBQUUsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztRQUN2QixTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFBO1FBQ2pFLFlBQVksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLENBQUMsQ0FBQTtJQUN4RSxDQUFDO0lBQ0QsSUFBSSxrQkFBa0IsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUE7SUFDMUQsRUFBRSxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLFlBQVksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLENBQUMsQ0FBQTtJQUN4RSxDQUFDO0lBRUQsNkNBQTZDO0lBQzdDLFlBQVksR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNoQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFFLENBQUMsQ0FBRSxDQUFBO0lBQ3ZDLENBQUMsQ0FBQyxDQUFBO0lBRUYscUJBQXFCO0lBQ3JCLFlBQVksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUNoRCxNQUFNLENBQUMsWUFBWSxDQUFBO0FBQ3JCLENBQUMsQ0FBQSxDQUFBO0FBRUQ7Ozs7O0dBS0c7QUFDUSxRQUFBLHFCQUFxQixHQUFHLENBQU8sWUFBb0IsRUFBRSxZQUFpQjtJQUMvRSx3REFBd0Q7SUFDeEQsSUFBSSxrQkFBa0IsR0FBRyxNQUFNLDJCQUFtQixDQUFDLFlBQVksQ0FBQyxDQUFBO0lBRWhFLHFCQUFxQjtJQUNyQixJQUFJLGtCQUFrQixHQUFHLFlBQVksQ0FBQTtJQUNyQyxJQUFJLGlCQUFpQixHQUFhLEVBQUUsQ0FBQTtJQUVwQyxnQkFBZ0I7SUFDaEIsR0FBRyxDQUFDLENBQUMsSUFBSSxTQUFTLElBQUksa0JBQWtCLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLElBQUksWUFBWSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDdkMsSUFBSSxlQUFlLEdBQUcsa0JBQWtCLENBQUE7UUFDeEMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDN0MsSUFBSSxRQUFRLEdBQUcsWUFBWSxDQUFFLENBQUMsQ0FBRSxDQUFBO1lBQ2hDLElBQUksWUFBWSxHQUFHLENBQUMsZUFBZSxDQUFFLFFBQVEsQ0FBRSxLQUFLLFNBQVMsQ0FBQyxDQUFBO1lBQzlELEVBQUUsQ0FBQyxDQUFDLFlBQVksSUFBSSxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDcEQsS0FBSztZQUNQLENBQUM7WUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztnQkFDeEIsZUFBZSxHQUFHLGVBQWUsQ0FBRSxRQUFRLENBQUUsQ0FBQTtZQUMvQyxDQUFDO1lBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ04saUJBQWlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO2dCQUNqQyxDQUFDLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQTtZQUN6QixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFDRCxNQUFNLENBQUMsaUJBQWlCLENBQUE7QUFDMUIsQ0FBQyxDQUFBLENBQUEifQ==
\ No newline at end of file
diff --git a/docs/index.md b/docs/index.md
index ff37d5b..24f23d8 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -1,13 +1,16 @@
# smarthbs
+
handlebars with better fs support
## Availabililty
+
[![npm](https://pushrocks.gitlab.io/assets/repo-button-npm.svg)](https://www.npmjs.com/package/smarthbs)
[![git](https://pushrocks.gitlab.io/assets/repo-button-git.svg)](https://GitLab.com/pushrocks/smarthbs)
[![git](https://pushrocks.gitlab.io/assets/repo-button-mirror.svg)](https://github.com/pushrocks/smarthbs)
[![docs](https://pushrocks.gitlab.io/assets/repo-button-docs.svg)](https://pushrocks.gitlab.io/smarthbs/)
## Status for master
+
[![build status](https://GitLab.com/pushrocks/smarthbs/badges/master/build.svg)](https://GitLab.com/pushrocks/smarthbs/commits/master)
[![coverage report](https://GitLab.com/pushrocks/smarthbs/badges/master/coverage.svg)](https://GitLab.com/pushrocks/smarthbs/commits/master)
[![npm downloads per month](https://img.shields.io/npm/dm/smarthbs.svg)](https://www.npmjs.com/package/smarthbs)
@@ -19,25 +22,26 @@ handlebars with better fs support
[![JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/)
## Usage
+
Use TypeScript for best in class instellisense.
For further information read the linked docs at the top of this README.
> Note: Why did we decide against a class based architecture?
-Easy: handlebars.js is already pretty determined how things are handled internally, namely a global partial template registry
-It doesn't make sense to then introduce a scoped partial template approach.
+> Easy: handlebars.js is already pretty determined how things are handled internally, namely a global partial template registry
+> It doesn't make sense to then introduce a scoped partial template approach.
```javascript
-import * as smarthbs from 'smarthbs'
+import * as smarthbs from 'smarthbs';
// read all .hbs files in a directory and any child directories and use relative path as partial string identifier
-smarthbs.registerPartialDir(testPartialDir)
+smarthbs.registerPartialDir(testPartialDir);
// read all .hbs files in a particular directory and level, output them to a destination and specify a .json file to read any referenced data
-smarthbs.compileDirectory(testHbsDir, testResultDir, 'data.json')
+smarthbs.compileDirectory(testHbsDir, testResultDir, 'data.json');
```
> MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh)
-| By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy.html)
+> | By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy.html)
[![repo-footer](https://pushrocks.gitlab.io/assets/repo-footer.svg)](https://push.rocks)
diff --git a/npmextra.json b/npmextra.json
index 1403dd8..193d59b 100644
--- a/npmextra.json
+++ b/npmextra.json
@@ -1,7 +1,6 @@
{
- "npmci": {
- "globalNpmTools": [
- "npmts"
- ]
- }
-}
\ No newline at end of file
+ "npmci": {
+ "npmGlobalTools": [],
+ "npmAccessLevel": "public"
+ }
+}
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..75b7d16
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,1009 @@
+{
+ "name": "smarthbs",
+ "version": "1.0.16",
+ "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"
+ }
+ },
+ "@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"
+ }
+ },
+ "@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"
+ }
+ },
+ "@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"
+ }
+ },
+ "@pushrocks/smartfile": {
+ "version": "6.0.8",
+ "resolved": "https://registry.npmjs.org/@pushrocks/smartfile/-/smartfile-6.0.8.tgz",
+ "integrity": "sha512-YkAovvQ0pcVphXLynlQ1D4nhEoUqALqqUn2pRXc2vXNy0RDSU22puLlLVhoXT0NPAqYNMazhqc4OAixgEOpdFw==",
+ "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"
+ }
+ },
+ "@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=="
+ },
+ "@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==",
+ "requires": {
+ "@pushrocks/smartpromise": "^2.0.5",
+ "@types/form-data": "^2.2.1",
+ "form-data": "^2.3.2"
+ }
+ },
+ "@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"
+ }
+ },
+ "@pushrocks/tapbundle": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/@pushrocks/tapbundle/-/tapbundle-3.0.5.tgz",
+ "integrity": "sha512-7K1y4pyJ5O8XRmnW/ADryEoniGKOW0Un6VZpxMcYTndS5AjwKhjRkAAaSQf4g/a8Ei+uk/q8csI9Twjb9KISLQ==",
+ "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"
+ }
+ },
+ "@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==",
+ "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==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/handlebars": {
+ "version": "4.0.39",
+ "resolved": "https://registry.npmjs.org/@types/handlebars/-/handlebars-4.0.39.tgz",
+ "integrity": "sha512-vjaS7Q0dVqFp85QhyPSZqDKnTTCemcSHNHFvDdalO1s0Ifz5KuE64jQD5xoUkfdWwF4WpqdJEl7LsWH8rzhKJA=="
+ },
+ "@types/lodash": {
+ "version": "4.14.116",
+ "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.116.tgz",
+ "integrity": "sha512-lRnAtKnxMXcYYXqOiotTmJd74uawNWuPnsnPrrO7HiFuE3npE2iQhfABatbYDyxTNqZNuXzcKGhw37R7RjBFLg=="
+ },
+ "@types/node": {
+ "version": "10.9.2",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-10.9.2.tgz",
+ "integrity": "sha512-pwZnkVyCGJ3LsQ0/3flQK5lCFao4esIzwUVzzk5NvL9vnkEyDhNf4fhHzUMHvyr56gNZywWTS2MR0euabMSz4A=="
+ },
+ "@types/vinyl": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.2.tgz",
+ "integrity": "sha512-2iYpNuOl98SrLPBZfEN9Mh2JCJ2EI9HU35SfgBEb51DcmaHkhp8cKMblYeBqMQiwXMgAD3W60DbQ4i/UdLiXhw==",
+ "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
+ },
+ "align-text": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
+ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
+ "requires": {
+ "kind-of": "^3.0.2",
+ "longest": "^1.0.1",
+ "repeat-string": "^1.5.2"
+ }
+ },
+ "amdefine": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
+ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU="
+ },
+ "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==",
+ "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
+ },
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+ },
+ "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==",
+ "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
+ },
+ "camelcase": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
+ "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
+ "optional": true
+ },
+ "center-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
+ "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
+ "optional": true,
+ "requires": {
+ "align-text": "^0.1.3",
+ "lazy-cache": "^1.0.3"
+ }
+ },
+ "chai": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz",
+ "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=",
+ "dev": true,
+ "requires": {
+ "assertion-error": "^1.0.1",
+ "check-error": "^1.0.1",
+ "deep-eql": "^3.0.0",
+ "get-func-name": "^2.0.0",
+ "pathval": "^1.0.0",
+ "type-detect": "^4.0.0"
+ }
+ },
+ "chai-as-promised": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz",
+ "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==",
+ "dev": true,
+ "requires": {
+ "check-error": "^1.0.2"
+ }
+ },
+ "chai-string": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/chai-string/-/chai-string-1.4.0.tgz",
+ "integrity": "sha1-NZFAwFHTak5LGl/GuRAVL0OKjUk=",
+ "dev": true
+ },
+ "check-error": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
+ "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",
+ "dev": true
+ },
+ "cliui": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
+ "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
+ "optional": true,
+ "requires": {
+ "center-align": "^0.1.1",
+ "right-align": "^0.1.1",
+ "wordwrap": "0.0.2"
+ },
+ "dependencies": {
+ "wordwrap": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
+ "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
+ "optional": true
+ }
+ }
+ },
+ "clone": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+ "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18="
+ },
+ "clone-buffer": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz",
+ "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg="
+ },
+ "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="
+ },
+ "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==",
+ "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=",
+ "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="
+ },
+ "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="
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "optional": true
+ },
+ "deep-eql": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
+ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
+ "dev": true,
+ "requires": {
+ "type-detect": "^4.0.0"
+ }
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
+ },
+ "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=="
+ },
+ "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=",
+ "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=",
+ "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==",
+ "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="
+ },
+ "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==",
+ "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="
+ },
+ "handlebars": {
+ "version": "4.0.11",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz",
+ "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=",
+ "requires": {
+ "async": "^1.4.0",
+ "optimist": "^0.6.1",
+ "source-map": "^0.4.4",
+ "uglify-js": "^2.6"
+ }
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "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-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
+ },
+ "is-utf8": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
+ },
+ "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==",
+ "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=",
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ },
+ "lazy-cache": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
+ "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
+ "optional": true
+ },
+ "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"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "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
+ },
+ "lodash": {
+ "version": "4.17.10",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz",
+ "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg=="
+ },
+ "longest": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
+ "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc="
+ },
+ "make-error": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.4.tgz",
+ "integrity": "sha512-0Dab5btKVPhibSalc9QGXb559ED7G7iLjFXBaj9Wq8O3vorueR5K5jaE3hkG6ZQINyhA/JgG6Qk4qdFQjsYV6g==",
+ "dev": true
+ },
+ "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=="
+ },
+ "mime-types": {
+ "version": "2.1.20",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz",
+ "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==",
+ "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==",
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
+ "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8="
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+ "dev": true
+ }
+ }
+ },
+ "nan": {
+ "version": "2.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=",
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "optimist": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
+ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
+ "requires": {
+ "minimist": "~0.0.1",
+ "wordwrap": "~0.0.2"
+ }
+ },
+ "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="
+ },
+ "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="
+ },
+ "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="
+ },
+ "repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
+ },
+ "replace-ext": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz",
+ "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs="
+ },
+ "right-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
+ "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
+ "optional": true,
+ "requires": {
+ "align-text": "^0.1.1"
+ }
+ },
+ "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.4.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
+ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+ "requires": {
+ "amdefine": ">=0.0.4"
+ }
+ },
+ "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"
+ },
+ "dependencies": {
+ "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
+ }
+ }
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
+ },
+ "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=",
+ "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=",
+ "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=",
+ "requires": {
+ "first-chunk-stream": "^2.0.0",
+ "strip-bom": "^2.0.0"
+ }
+ },
+ "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"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "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.1",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.0.1.tgz",
+ "integrity": "sha512-zQIMOmC+372pC/CCVLqnQ0zSBiY7HHodU7mpQdjiZddek4GMj31I3dUJ7gAs9o65X7mnRma6OokOkc6f9jjfBg==",
+ "dev": true
+ },
+ "uglify-js": {
+ "version": "2.8.29",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
+ "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
+ "optional": true,
+ "requires": {
+ "source-map": "~0.5.1",
+ "uglify-to-browserify": "~1.0.0",
+ "yargs": "~3.10.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "optional": true
+ }
+ }
+ },
+ "uglify-to-browserify": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
+ "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
+ "optional": true
+ },
+ "universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
+ },
+ "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==",
+ "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=",
+ "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"
+ }
+ },
+ "window-size": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
+ "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
+ "optional": true
+ },
+ "wordwrap": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
+ "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc="
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ },
+ "yargs": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
+ "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
+ "optional": true,
+ "requires": {
+ "camelcase": "^1.0.2",
+ "cliui": "^2.1.0",
+ "decamelize": "^1.0.0",
+ "window-size": "0.1.0"
+ }
+ },
+ "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 6c2dd9b..590f556 100644
--- a/package.json
+++ b/package.json
@@ -1,11 +1,13 @@
{
- "name": "smarthbs",
+ "name": "@pushrocks/smarthbs",
"version": "1.0.16",
+ "private": false,
"description": "handlebars with better fs support",
"main": "dist/index.js",
"typings": "dist/index.d.ts",
"scripts": {
- "test": "(npmts)"
+ "test": "(tstest test/)",
+ "build": "(tsbuild)"
},
"repository": {
"type": "git",
@@ -21,16 +23,18 @@
},
"homepage": "https://gitlab.com/pkunz/smarthbs#README",
"dependencies": {
- "@types/handlebars": "^4.0.32",
- "@types/lodash": "^4.14.64",
- "beautylog": "^6.1.10",
- "handlebars": "^4.0.8",
- "lodash": "^4.17.4",
- "smartfile": "^4.2.11",
- "smartq": "^1.1.1",
- "typings-global": "^1.0.16"
+ "@pushrocks/smartfile": "^6.0.8",
+ "@pushrocks/smartpromise": "^2.0.5",
+ "@types/handlebars": "^4.0.39",
+ "@types/lodash": "^4.14.116",
+ "handlebars": "^4.0.11",
+ "lodash": "^4.17.10"
},
"devDependencies": {
- "tapbundle": "^1.0.12"
+ "@gitzone/tsbuild": "^2.0.22",
+ "@gitzone/tsrun": "^1.1.12",
+ "@gitzone/tstest": "^1.0.15",
+ "@pushrocks/tapbundle": "^3.0.5",
+ "@types/node": "^10.9.2"
}
-}
+}
\ No newline at end of file
diff --git a/test/test.ts b/test/test.ts
index 6f32fbd..27ced2b 100644
--- a/test/test.ts
+++ b/test/test.ts
@@ -1,28 +1,29 @@
-import { expect, tap } from 'tapbundle'
-import * as smarthbs from '../dist/index'
-import * as path from 'path'
+import { expect, tap } from '@pushrocks/tapbundle';
+import * as smarthbs from '../ts/index';
+import * as path from 'path';
-let testHbsDir = path.join(__dirname, 'hbs_testfiles')
-let testPartialDir = path.join(testHbsDir, 'partials')
-let testResultDir = path.join(__dirname, 'testresult')
+let testHbsDir = path.join(__dirname, 'hbs_testfiles');
+let testPartialDir = path.join(testHbsDir, 'partials');
+let testResultDir = path.join(__dirname, 'testresult');
tap.test('smarthbs -> should create partials', async () => {
- await smarthbs.registerPartialDir(testPartialDir)
-})
+ await smarthbs.registerPartialDir(testPartialDir);
+});
tap.test('smarthbs -> should compile a directory', async () => {
- smarthbs.compileDirectory(testHbsDir, testResultDir, 'data.json')
-})
+ smarthbs.compileDirectory(testHbsDir, testResultDir, 'data.json');
+});
tap.test('', async () => {
- let templateString = '{{{firstVar}}} {{secondVar}}'
- let templateVars = await smarthbs.findVarsInHbsString(templateString)
- expect(templateVars).to.include('firstVar')
- expect(templateVars).to.include('secondVar')
-})
+ let templateString = '{{{firstVar}}} {{secondVar}}';
+ let templateVars = await smarthbs.findVarsInHbsString(templateString);
+ expect(templateVars).to.include('firstVar');
+ expect(templateVars).to.include('secondVar');
+});
tap.test('', async () => {
- let templateString = '{{{firstVar}}} {{secondVar}} {{thirdVar}} {{fourthVar}} {{fourthVar.someKey}} {{fourthVar.otherKey.nextKey}}'
+ let templateString =
+ '{{{firstVar}}} {{secondVar}} {{thirdVar}} {{fourthVar}} {{fourthVar.someKey}} {{fourthVar.otherKey.nextKey}}';
let missingVars = await smarthbs.checkVarsSatisfaction(templateString, {
firstVar: 'hi',
secondVar: 'hello',
@@ -31,9 +32,9 @@ tap.test('', async () => {
nextKey: 'wow'
}
}
- })
- expect(missingVars).to.contain('thirdVar', 'fourthVar.someKey')
- expect(missingVars).to.not.contain('secondVar', 'fourthVar.otherKey.nextKey')
-})
+ });
+ expect(missingVars).to.contain('thirdVar', 'fourthVar.someKey');
+ expect(missingVars).to.not.contain('secondVar', 'fourthVar.otherKey.nextKey');
+});
-tap.start()
+tap.start();
diff --git a/ts/index.ts b/ts/index.ts
index 2571c25..7664ce0 100644
--- a/ts/index.ts
+++ b/ts/index.ts
@@ -1,10 +1,10 @@
-import * as plugins from './smarthbs.plugins'
-export type TTemplateStringType = 'filePath' | 'code'
+import * as plugins from './smarthbs.plugins';
+export type TTemplateStringType = 'filePath' | 'code';
-export let handlebars = plugins.handlebars
-export * from './smarthbs.compile'
-import './smarthbs.helpers'
-export * from './smarthbs.partials'
-export * from './smarthbs.template'
-export * from './smarthbs.variables'
-export * from './smarthbs.postprocess'
+export let handlebars = plugins.handlebars;
+export * from './smarthbs.compile';
+import './smarthbs.helpers';
+export * from './smarthbs.partials';
+export * from './smarthbs.template';
+export * from './smarthbs.variables';
+export * from './smarthbs.postprocess';
diff --git a/ts/smarthbs.compile.ts b/ts/smarthbs.compile.ts
index ed3c4c5..23a33b3 100644
--- a/ts/smarthbs.compile.ts
+++ b/ts/smarthbs.compile.ts
@@ -1,4 +1,4 @@
-import * as plugins from './smarthbs.plugins'
+import * as plugins from './smarthbs.plugins';
/**
* compiles a directory and outputs it
@@ -8,15 +8,22 @@ export let compileDirectory = async (
destinationDirPathArg: string,
dataFileNameArg: string
) => {
- let hbsFilePathArray = plugins.smartfile.fs.listFilesSync(originDirPathArg, /.hbs/)
- let data = plugins.smartfile.fs.toObjectSync(plugins.path.join(originDirPathArg, dataFileNameArg))
+ let hbsFilePathArray = plugins.smartfile.fs.listFilesSync(originDirPathArg, /.hbs/);
+ let data = plugins.smartfile.fs.toObjectSync(
+ plugins.path.join(originDirPathArg, dataFileNameArg)
+ );
for (let hbsFilePath of hbsFilePathArray) {
- let parsedPath = plugins.path.parse(hbsFilePath)
- let hbsFileString = plugins.smartfile.fs.toStringSync(plugins.path.join(originDirPathArg, hbsFilePath))
- let template = plugins.handlebars.compile(hbsFileString)
- let output = template(data)
- console.log('hi ' + output + ' hi')
- await plugins.smartfile.fs.ensureDir(destinationDirPathArg)
- plugins.smartfile.memory.toFsSync(output, plugins.path.join(destinationDirPathArg, parsedPath.name + '.html'))
+ let parsedPath = plugins.path.parse(hbsFilePath);
+ let hbsFileString = plugins.smartfile.fs.toStringSync(
+ plugins.path.join(originDirPathArg, hbsFilePath)
+ );
+ let template = plugins.handlebars.compile(hbsFileString);
+ let output = template(data);
+ console.log('hi ' + output + ' hi');
+ await plugins.smartfile.fs.ensureDir(destinationDirPathArg);
+ plugins.smartfile.memory.toFsSync(
+ output,
+ plugins.path.join(destinationDirPathArg, parsedPath.name + '.html')
+ );
}
-}
+};
diff --git a/ts/smarthbs.helpers.ts b/ts/smarthbs.helpers.ts
index d39b3cb..fee271d 100644
--- a/ts/smarthbs.helpers.ts
+++ b/ts/smarthbs.helpers.ts
@@ -1,32 +1,31 @@
-import * as plugins from './smarthbs.plugins'
+import * as plugins from './smarthbs.plugins';
/**
* Helper:
* Allows you to analyze a context
*/
-plugins.handlebars.registerHelper('__analyze', (analyzeContext) => {
+plugins.handlebars.registerHelper('__analyze', analyzeContext => {
if (typeof analyzeContext === 'string') {
if (plugins.handlebars.partials[analyzeContext]) {
- plugins.beautylog.log(`The analyzed partial ${analyzeContext} looks like this`)
- console.log(plugins.handlebars.partials[analyzeContext])
+ console.log(`The analyzed partial ${analyzeContext} looks like this`);
+ console.log(plugins.handlebars.partials[analyzeContext]);
} else {
- plugins.beautylog.error(`The Partial ${analyzeContext} cannot be found`)
+ console.error(`The Partial ${analyzeContext} cannot be found`);
}
- return 'analyzed'
+ return 'analyzed';
}
-})
+});
/**
* Helper:
* logs all registered partials to console
*/
-plugins.handlebars.registerHelper('__allPartialsLog', (analyzeContext) => {
- console.log(plugins.handlebars.partials)
- return 'analyzed'
-})
+plugins.handlebars.registerHelper('__allPartialsLog', analyzeContext => {
+ console.log(plugins.handlebars.partials);
+ return 'analyzed';
+});
plugins.handlebars.registerHelper('__compile', (evaluationString, evaluationContext) => {
- let template = plugins.handlebars.compile(evaluationString)
- return template(evaluationContext)
-})
-
+ let template = plugins.handlebars.compile(evaluationString);
+ return template(evaluationContext);
+});
diff --git a/ts/smarthbs.partials.ts b/ts/smarthbs.partials.ts
index 9fc13b4..22c995a 100644
--- a/ts/smarthbs.partials.ts
+++ b/ts/smarthbs.partials.ts
@@ -1,24 +1,26 @@
-import * as plugins from './smarthbs.plugins'
+import * as plugins from './smarthbs.plugins';
/**
* registers a directory of partials to make them available within handlebars compilation
*/
export let registerPartialDir = (dirPathArg: string): Promise => {
- let done = plugins.smartq.defer()
+ let done = plugins.smartpromise.defer();
plugins.smartfile.fs.listFileTree(dirPathArg, '**/*.hbs').then(hbsFileArrayArg => {
for (let hbsFilePath of hbsFileArrayArg) {
- let parsedPath = plugins.path.parse(hbsFilePath)
- let hbsFileString = plugins.smartfile.fs.toStringSync(plugins.path.join(dirPathArg, hbsFilePath))
+ let parsedPath = plugins.path.parse(hbsFilePath);
+ let hbsFileString = plugins.smartfile.fs.toStringSync(
+ plugins.path.join(dirPathArg, hbsFilePath)
+ );
if (parsedPath.dir === '/') {
- parsedPath.dir = ''
+ parsedPath.dir = '';
}
if (parsedPath.dir !== '') {
- parsedPath.dir = parsedPath.dir + '/'
+ parsedPath.dir = parsedPath.dir + '/';
}
- let partialName = `partials/${parsedPath.dir}${parsedPath.name}`
- plugins.handlebars.registerPartial(partialName, hbsFileString)
- done.resolve()
+ let partialName = `partials/${parsedPath.dir}${parsedPath.name}`;
+ plugins.handlebars.registerPartial(partialName, hbsFileString);
+ done.resolve();
}
- })
- return done.promise
-}
+ });
+ return done.promise;
+};
diff --git a/ts/smarthbs.plugins.ts b/ts/smarthbs.plugins.ts
index df3dce4..45c8237 100644
--- a/ts/smarthbs.plugins.ts
+++ b/ts/smarthbs.plugins.ts
@@ -1,16 +1,7 @@
-import 'typings-global'
-import * as beautylog from 'beautylog'
-import * as handlebars from 'handlebars'
-import * as lodash from 'lodash'
-import * as path from 'path'
-import * as smartfile from 'smartfile'
-import * as smartq from 'smartq'
+import * as handlebars from 'handlebars';
+import * as lodash from 'lodash';
+import * as path from 'path';
+import * as smartfile from '@pushrocks/smartfile';
+import * as smartpromise from '@pushrocks/smartpromise';
-export {
- beautylog,
- handlebars,
- lodash,
- path,
- smartfile,
- smartq
-}
+export { handlebars, lodash, path, smartfile, smartpromise };
diff --git a/ts/smarthbs.postprocess.ts b/ts/smarthbs.postprocess.ts
index 1a79499..b38c367 100644
--- a/ts/smarthbs.postprocess.ts
+++ b/ts/smarthbs.postprocess.ts
@@ -1,16 +1,15 @@
-import * as plugins from './smarthbs.plugins'
+import * as plugins from './smarthbs.plugins';
-
-let safeSyntaxBeginRegex = /{-{/g
-let safeSyntaxEndRegex = /}-}/g
+let safeSyntaxBeginRegex = /{-{/g;
+let safeSyntaxEndRegex = /}-}/g;
/**
* allows you to keep handlebars in place across multiple iterations
* helpful when handlebars syntax is used by more than one tool in a build chain
*/
export let postprocess = async (stringArg: string): Promise => {
- let processedString = stringArg
- processedString = processedString.replace(safeSyntaxBeginRegex, '{{')
- processedString = processedString.replace(safeSyntaxEndRegex, '}}')
- return processedString
-}
+ let processedString = stringArg;
+ processedString = processedString.replace(safeSyntaxBeginRegex, '{{');
+ processedString = processedString.replace(safeSyntaxEndRegex, '}}');
+ return processedString;
+};
diff --git a/ts/smarthbs.template.ts b/ts/smarthbs.template.ts
index 7d9ab66..04561d8 100644
--- a/ts/smarthbs.template.ts
+++ b/ts/smarthbs.template.ts
@@ -1,16 +1,16 @@
-import * as plugins from './smarthbs.plugins'
+import * as plugins from './smarthbs.plugins';
/**
* get a template for a file on disk
*/
export let getTemplateForFile = async (filePathArg: string) => {
- let filePathAbsolute = plugins.path.resolve(filePathArg)
- return plugins.handlebars.compile(plugins.smartfile.fs.toStringSync(filePathAbsolute))
-}
+ let filePathAbsolute = plugins.path.resolve(filePathArg);
+ return plugins.handlebars.compile(plugins.smartfile.fs.toStringSync(filePathAbsolute));
+};
/**
* get a template for string
*/
export let getTemplateForString = async (fileStringArg: string) => {
- return plugins.handlebars.compile(fileStringArg)
-}
+ return plugins.handlebars.compile(fileStringArg);
+};
diff --git a/ts/smarthbs.variables.ts b/ts/smarthbs.variables.ts
index 8facfde..9f73543 100644
--- a/ts/smarthbs.variables.ts
+++ b/ts/smarthbs.variables.ts
@@ -1,39 +1,39 @@
// This file contains code that makes it easy to search handlebar templates for variables.
// Why? To get a clue if you are missing some.
-import * as plugins from './smarthbs.plugins'
+import * as plugins from './smarthbs.plugins';
// the curly regex objects
-let tripleCurlyRegex = /{{{\s*[\w\.]+\s*}}}/g
-let doubleCurlyRegex = /{{\s*[\w\.]+\s*}}/g
-let nameInCurlsRegex = /[\w\.]+/
+let tripleCurlyRegex = /{{{\s*[\w\.]+\s*}}}/g;
+let doubleCurlyRegex = /{{\s*[\w\.]+\s*}}/g;
+let nameInCurlsRegex = /[\w\.]+/;
/**
* finds all variables in a handlebars template
* @param hbsStringArg
*/
export let findVarsInHbsString = async (hbsStringArg: string) => {
- let hbsString = hbsStringArg // make sure we have a new string object that we may destroy
- let varNameArray: string[] = []
- let tripleCurlyMatches = hbsString.match(tripleCurlyRegex)
+ let hbsString = hbsStringArg; // make sure we have a new string object that we may destroy
+ let varNameArray: string[] = [];
+ let tripleCurlyMatches = hbsString.match(tripleCurlyRegex);
if (tripleCurlyMatches) {
- hbsString = hbsString.replace(tripleCurlyRegex, '[[[replaced]]]')
- varNameArray = plugins.lodash.concat(varNameArray, tripleCurlyMatches)
+ hbsString = hbsString.replace(tripleCurlyRegex, '[[[replaced]]]');
+ varNameArray = plugins.lodash.concat(varNameArray, tripleCurlyMatches);
}
- let doubleCurlyMatches = hbsString.match(doubleCurlyRegex)
+ let doubleCurlyMatches = hbsString.match(doubleCurlyRegex);
if (doubleCurlyMatches) {
- varNameArray = plugins.lodash.concat(varNameArray, doubleCurlyMatches)
+ varNameArray = plugins.lodash.concat(varNameArray, doubleCurlyMatches);
}
// make sure we are clean from curly brackets
- varNameArray = varNameArray.map((x) => {
- return x.match(nameInCurlsRegex)[ 0 ]
- })
+ varNameArray = varNameArray.map(x => {
+ return x.match(nameInCurlsRegex)[0];
+ });
// make sure are uniq
- varNameArray = plugins.lodash.uniq(varNameArray)
- return varNameArray
-}
+ varNameArray = plugins.lodash.uniq(varNameArray);
+ return varNameArray;
+};
/**
* checks if supplied variables satisfy an handlebars template
@@ -43,28 +43,28 @@ export let findVarsInHbsString = async (hbsStringArg: string) => {
*/
export let checkVarsSatisfaction = async (hbsStringArg: string, varObjectArg: any) => {
// required vars as combined deep string with . notation
- let requiredVarStrings = await findVarsInHbsString(hbsStringArg)
+ let requiredVarStrings = await findVarsInHbsString(hbsStringArg);
// comparison objects
- let suppliedVarsObject = varObjectArg
- let missingVarsObject: string[] = []
+ let suppliedVarsObject = varObjectArg;
+ let missingVarsObject: string[] = [];
- // building the
+ // building the
for (let stringVar of requiredVarStrings) {
- let splittedVars = stringVar.split('.')
- let requiredPointer = suppliedVarsObject
+ let splittedVars = stringVar.split('.');
+ let requiredPointer = suppliedVarsObject;
for (let i = 0; i < splittedVars.length; i++) {
- let splitVar = splittedVars[ i ]
- let varAvailable = (requiredPointer[ splitVar ] !== undefined)
- if (varAvailable && splittedVars.length === (i + 1)) {
+ let splitVar = splittedVars[i];
+ let varAvailable = requiredPointer[splitVar] !== undefined;
+ if (varAvailable && splittedVars.length === i + 1) {
// ok
} else if (varAvailable) {
- requiredPointer = requiredPointer[ splitVar ]
+ requiredPointer = requiredPointer[splitVar];
} else {
- missingVarsObject.push(stringVar)
- i = splittedVars.length
+ missingVarsObject.push(stringVar);
+ i = splittedVars.length;
}
}
}
- return missingVarsObject
-}
+ return missingVarsObject;
+};
diff --git a/yarn.lock b/yarn.lock
deleted file mode 100644
index aba8c2d..0000000
--- a/yarn.lock
+++ /dev/null
@@ -1,751 +0,0 @@
-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
-# yarn lockfile v1
-
-
-"@types/chai-as-promised@0.0.29":
- version "0.0.29"
- resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-0.0.29.tgz#43d52892aa998e185a3de3e2477edb8573be1d77"
- dependencies:
- "@types/chai" "*"
- "@types/promises-a-plus" "*"
-
-"@types/chai-string@^1.1.30":
- version "1.1.30"
- resolved "https://registry.yarnpkg.com/@types/chai-string/-/chai-string-1.1.30.tgz#4d8744b31a5a2295fc01c981ed1e2d4c8a070f0a"
- dependencies:
- "@types/chai" "*"
-
-"@types/chai@*", "@types/chai@^3.4.35":
- version "3.5.2"
- resolved "https://registry.yarnpkg.com/@types/chai/-/chai-3.5.2.tgz#c11cd2817d3a401b7ba0f5a420f35c56139b1c1e"
-
-"@types/fs-extra@3.x.x":
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-3.0.0.tgz#13e5566e4d780618ba52bd55e0dc713d7a687e59"
- dependencies:
- "@types/node" "*"
-
-"@types/handlebars@^4.0.32":
- version "4.0.32"
- resolved "https://registry.yarnpkg.com/@types/handlebars/-/handlebars-4.0.32.tgz#637e8d945a9354aab47df7125005490fe9f8e592"
-
-"@types/lodash@^4.14.55", "@types/lodash@^4.14.64":
- version "4.14.64"
- resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.64.tgz#979cf3a3d4a368670840bf9b3e448dc33ffe84ee"
-
-"@types/node@*":
- version "7.0.18"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.18.tgz#cd67f27d3dc0cfb746f0bdd5e086c4c5d55be173"
-
-"@types/promises-a-plus@*":
- version "0.0.27"
- resolved "https://registry.yarnpkg.com/@types/promises-a-plus/-/promises-a-plus-0.0.27.tgz#c64651134614c84b8f5d7114ce8901d36a609780"
-
-"@types/vinyl@^2.0.0":
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/@types/vinyl/-/vinyl-2.0.0.tgz#fd213bf7f4136dde21fe1895500b12c186f8c268"
- dependencies:
- "@types/node" "*"
-
-align-text@^0.1.1, align-text@^0.1.3:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
- dependencies:
- kind-of "^3.0.2"
- longest "^1.0.1"
- repeat-string "^1.5.2"
-
-amdefine@>=0.0.4:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
-
-ansi-256-colors@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/ansi-256-colors/-/ansi-256-colors-1.1.0.tgz#910de50efcc7c09e3d82f2f87abd6b700c18818a"
-
-ansi-regex@^2.0.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
-
-ansi-styles@^2.2.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
-
-argparse@^1.0.7:
- version "1.0.9"
- resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86"
- dependencies:
- sprintf-js "~1.0.2"
-
-assertion-error@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.2.tgz#13ca515d86206da0bac66e834dd397d87581094c"
-
-async@^1.4.0:
- version "1.5.2"
- resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
-
-balanced-match@^0.4.1:
- version "0.4.2"
- resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838"
-
-beautycolor@^1.0.7:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/beautycolor/-/beautycolor-1.0.7.tgz#a4715738ac4c8221371e9cbeb5a6cc6d11ecbf7c"
- dependencies:
- ansi-256-colors "^1.1.0"
- typings-global "^1.0.14"
-
-beautylog@^6.1.10:
- version "6.1.10"
- resolved "https://registry.yarnpkg.com/beautylog/-/beautylog-6.1.10.tgz#9c27e566937684cb689f9372d98cfa5415d50b72"
- dependencies:
- "@types/lodash" "^4.14.55"
- beautycolor "^1.0.7"
- figlet "^1.2.0"
- lodash "^4.17.4"
- ora "^1.1.0"
- smartenv "^2.0.0"
- smartq "^1.1.1"
- typings-global "^1.0.14"
-
-bindings@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.2.1.tgz#14ad6113812d2d37d72e67b4cacb4bb726505f11"
-
-brace-expansion@^1.1.7:
- version "1.1.7"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59"
- dependencies:
- balanced-match "^0.4.1"
- concat-map "0.0.1"
-
-buffer-shims@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51"
-
-camelcase@^1.0.2:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
-
-center-align@^0.1.1:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad"
- dependencies:
- align-text "^0.1.3"
- lazy-cache "^1.0.3"
-
-chai-as-promised@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-6.0.0.tgz#1a02a433a6f24dafac63b9c96fa1684db1aa8da6"
- dependencies:
- check-error "^1.0.2"
-
-chai-string@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/chai-string/-/chai-string-1.3.0.tgz#df6139f294391b1035be5606f60a843b3a5041e7"
-
-chai@^3.5.0:
- version "3.5.0"
- resolved "https://registry.yarnpkg.com/chai/-/chai-3.5.0.tgz#4d02637b067fe958bdbfdd3a40ec56fef7373247"
- dependencies:
- assertion-error "^1.0.1"
- deep-eql "^0.1.3"
- type-detect "^1.0.0"
-
-chalk@^1.0.0, chalk@^1.1.1:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
- dependencies:
- ansi-styles "^2.2.1"
- escape-string-regexp "^1.0.2"
- has-ansi "^2.0.0"
- strip-ansi "^3.0.0"
- supports-color "^2.0.0"
-
-check-error@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82"
-
-cli-cursor@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
- dependencies:
- restore-cursor "^2.0.0"
-
-cli-spinners@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.0.0.tgz#ef987ed3d48391ac3dab9180b406a742180d6e6a"
-
-cliui@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
- dependencies:
- center-align "^0.1.1"
- right-align "^0.1.1"
- wordwrap "0.0.2"
-
-clone-buffer@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58"
-
-clone-stats@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680"
-
-clone@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149"
-
-cloneable-readable@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.0.0.tgz#a6290d413f217a61232f95e458ff38418cfb0117"
- dependencies:
- inherits "^2.0.1"
- process-nextick-args "^1.0.6"
- through2 "^2.0.1"
-
-concat-map@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
-
-core-util-is@~1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
-
-decamelize@^1.0.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
-
-deep-eql@^0.1.3:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2"
- dependencies:
- type-detect "0.1.1"
-
-early@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/early/-/early-2.1.1.tgz#841e23254ea5dc54d8afaeee82f5ab65c00ee23c"
- dependencies:
- beautycolor "^1.0.7"
- smartq "^1.1.1"
- typings-global "^1.0.16"
-
-escape-string-regexp@^1.0.2:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
-
-esprima@^3.1.1:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
-
-figlet@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/figlet/-/figlet-1.2.0.tgz#6c46537378fab649146b5a6143dda019b430b410"
-
-first-chunk-stream@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz#1bdecdb8e083c0664b91945581577a43a9f31d70"
- dependencies:
- readable-stream "^2.0.2"
-
-fs-extra@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291"
- dependencies:
- graceful-fs "^4.1.2"
- jsonfile "^3.0.0"
- universalify "^0.1.0"
-
-fs.realpath@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
-
-glob@^7.0.0, glob@^7.1.1:
- version "7.1.1"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8"
- dependencies:
- fs.realpath "^1.0.0"
- inflight "^1.0.4"
- inherits "2"
- minimatch "^3.0.2"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
-graceful-fs@^4.1.2, graceful-fs@^4.1.6:
- version "4.1.11"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
-
-handlebars@^4.0.8:
- version "4.0.8"
- resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.8.tgz#22b875cd3f0e6cbea30314f144e82bc7a72ff420"
- dependencies:
- async "^1.4.0"
- optimist "^0.6.1"
- source-map "^0.4.4"
- optionalDependencies:
- uglify-js "^2.6"
-
-has-ansi@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
- dependencies:
- ansi-regex "^2.0.0"
-
-home@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/home/-/home-1.0.1.tgz#96a423ceb49b98378ff5ef3ceae059a557f9dd35"
- dependencies:
- os-homedir "^1.0.1"
-
-inflight@^1.0.4:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
- dependencies:
- once "^1.3.0"
- wrappy "1"
-
-inherits@2, inherits@^2.0.1, inherits@~2.0.1:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
-
-interpret@^1.0.0:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90"
-
-is-buffer@^1.1.5:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc"
-
-is-stream@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
-
-is-utf8@^0.2.0, is-utf8@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
-
-isarray@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
-
-js-yaml@^3.8.3:
- version "3.8.4"
- resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.4.tgz#520b4564f86573ba96662af85a8cafa7b4b5a6f6"
- dependencies:
- argparse "^1.0.7"
- esprima "^3.1.1"
-
-jsonfile@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.0.tgz#92e7c7444e5ffd5fa32e6a9ae8b85034df8347d0"
- optionalDependencies:
- graceful-fs "^4.1.6"
-
-kind-of@^3.0.2:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.0.tgz#b58abe4d5c044ad33726a8c1525b48cf891bff07"
- dependencies:
- is-buffer "^1.1.5"
-
-lazy-cache@^1.0.3:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
-
-leakage@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/leakage/-/leakage-0.2.0.tgz#9e7a8cc1d241d8c8427e348769e192e172fd8733"
- dependencies:
- left-pad "^1.1.3"
- memwatch-next "^0.3.0"
- minimist "^1.2.0"
- pretty-bytes "^4.0.2"
-
-left-pad@^1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.1.3.tgz#612f61c033f3a9e08e939f1caebeea41b6f3199a"
-
-lodash@^4.17.4:
- version "4.17.4"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
-
-log-symbols@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18"
- dependencies:
- chalk "^1.0.0"
-
-longest@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
-
-memwatch-next@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/memwatch-next/-/memwatch-next-0.3.0.tgz#2111050f9a906e0aa2d72a4ec0f0089c78726f8f"
- dependencies:
- bindings "^1.2.1"
- nan "^2.3.2"
-
-mimic-fn@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18"
-
-minimatch@^3.0.2:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
- dependencies:
- brace-expansion "^1.1.7"
-
-minimist@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
-
-minimist@~0.0.1:
- version "0.0.10"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
-
-nan@^2.3.2:
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45"
-
-once@^1.3.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
- dependencies:
- wrappy "1"
-
-onetime@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
- dependencies:
- mimic-fn "^1.0.0"
-
-optimist@^0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
- dependencies:
- minimist "~0.0.1"
- wordwrap "~0.0.2"
-
-ora@^1.1.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/ora/-/ora-1.2.0.tgz#32fb3183500efe83f5ea89101785f0ee6060fec9"
- dependencies:
- chalk "^1.1.1"
- cli-cursor "^2.1.0"
- cli-spinners "^1.0.0"
- log-symbols "^1.0.2"
-
-os-homedir@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
-
-path-is-absolute@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
-
-path-parse@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
-
-pify@^2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
-
-pretty-bytes@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-4.0.2.tgz#b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9"
-
-process-nextick-args@^1.0.6, process-nextick-args@~1.0.6:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
-
-readable-stream@^2.0.2, readable-stream@^2.1.5:
- version "2.2.9"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.9.tgz#cf78ec6f4a6d1eb43d26488cac97f042e74b7fc8"
- dependencies:
- buffer-shims "~1.0.0"
- core-util-is "~1.0.0"
- inherits "~2.0.1"
- isarray "~1.0.0"
- process-nextick-args "~1.0.6"
- string_decoder "~1.0.0"
- util-deprecate "~1.0.1"
-
-rechoir@^0.6.2:
- version "0.6.2"
- resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
- dependencies:
- resolve "^1.1.6"
-
-remove-trailing-separator@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz#615ebb96af559552d4bf4057c8436d486ab63cc4"
-
-repeat-string@^1.5.2:
- version "1.6.1"
- resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
-
-replace-ext@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb"
-
-require-reload@0.2.2:
- version "0.2.2"
- resolved "https://registry.yarnpkg.com/require-reload/-/require-reload-0.2.2.tgz#29a7591846caf91b6e8a3cda991683f95f8d7d42"
-
-resolve@^1.1.6:
- version "1.3.3"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.3.tgz#655907c3469a8680dc2de3a275a8fdd69691f0e5"
- dependencies:
- path-parse "^1.0.5"
-
-restore-cursor@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
- dependencies:
- onetime "^2.0.0"
- signal-exit "^3.0.2"
-
-right-align@^0.1.1:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
- dependencies:
- align-text "^0.1.1"
-
-semver@^5.3.0:
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
-
-shelljs@^0.7.7:
- version "0.7.7"
- resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.7.tgz#b2f5c77ef97148f4b4f6e22682e10bba8667cff1"
- dependencies:
- glob "^7.0.0"
- interpret "^1.0.0"
- rechoir "^0.6.2"
-
-signal-exit@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
-
-smartchai@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/smartchai/-/smartchai-1.0.3.tgz#de6d010bb8b5aef24cb70b31a5f5334e8c41b72f"
- dependencies:
- "@types/chai" "^3.4.35"
- "@types/chai-as-promised" "0.0.29"
- "@types/chai-string" "^1.1.30"
- chai "^3.5.0"
- chai-as-promised "^6.0.0"
- chai-string "^1.3.0"
-
-smartdelay@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/smartdelay/-/smartdelay-1.0.1.tgz#687f8bcc09d7c62c9c5a8a1771c1aba3aff54156"
- dependencies:
- typings-global "^1.0.14"
-
-smartenv@^2.0.0:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/smartenv/-/smartenv-2.0.6.tgz#b38c679b0c151b9af548f68c3a072c29d1417e8d"
- dependencies:
- lodash "^4.17.4"
- smartq "^1.1.1"
- typings-global "^1.0.14"
-
-smartfile@^4.2.11:
- version "4.2.11"
- resolved "https://registry.yarnpkg.com/smartfile/-/smartfile-4.2.11.tgz#20bb3a1411722688135499520de2fd00985becdb"
- dependencies:
- "@types/fs-extra" "3.x.x"
- "@types/vinyl" "^2.0.0"
- fs-extra "^3.0.1"
- glob "^7.1.1"
- js-yaml "^3.8.3"
- require-reload "0.2.2"
- smartpath "^3.2.8"
- smartq "^1.1.1"
- smartrequest "^1.0.4"
- typings-global "^1.0.16"
- vinyl "^2.0.2"
- vinyl-file "^3.0.0"
-
-smartpath@^3.2.8:
- version "3.2.8"
- resolved "https://registry.yarnpkg.com/smartpath/-/smartpath-3.2.8.tgz#4834bd3a8bae2295baacadba23c87a501952f940"
- dependencies:
- home "^1.0.1"
- typings-global "^1.0.14"
-
-smartq@^1.1.0, smartq@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/smartq/-/smartq-1.1.1.tgz#efb358705260d41ae18aef7ffd815f7b6fe17dd3"
- dependencies:
- typed-promisify "^0.3.0"
- typings-global "^1.0.14"
-
-smartrequest@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/smartrequest/-/smartrequest-1.0.4.tgz#86af2163ae28f1031b01c2d8ad8c429733920611"
- dependencies:
- smartq "^1.1.0"
- typings-global "^1.0.14"
-
-source-map@^0.4.4:
- version "0.4.4"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
- dependencies:
- amdefine ">=0.0.4"
-
-source-map@~0.5.1:
- version "0.5.6"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
-
-sprintf-js@~1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
-
-string_decoder@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.0.tgz#f06f41157b664d86069f84bdbdc9b0d8ab281667"
- dependencies:
- buffer-shims "~1.0.0"
-
-strip-ansi@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
- dependencies:
- ansi-regex "^2.0.0"
-
-strip-bom-buf@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz#1cb45aaf57530f4caf86c7f75179d2c9a51dd572"
- dependencies:
- is-utf8 "^0.2.1"
-
-strip-bom-stream@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz#f87db5ef2613f6968aa545abfe1ec728b6a829ca"
- dependencies:
- first-chunk-stream "^2.0.0"
- strip-bom "^2.0.0"
-
-strip-bom@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
- dependencies:
- is-utf8 "^0.2.0"
-
-supports-color@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
-
-tapbundle@^1.0.12:
- version "1.0.12"
- resolved "https://registry.yarnpkg.com/tapbundle/-/tapbundle-1.0.12.tgz#71d29273aad280f5c4e15b2700430b2456a5d364"
- dependencies:
- early "^2.1.1"
- leakage "^0.2.0"
- smartchai "^1.0.3"
- smartdelay "^1.0.1"
- smartq "^1.1.1"
- typings-global "^1.0.16"
-
-through2@^2.0.1:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be"
- dependencies:
- readable-stream "^2.1.5"
- xtend "~4.0.1"
-
-type-detect@0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822"
-
-type-detect@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2"
-
-typed-promisify@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/typed-promisify/-/typed-promisify-0.3.0.tgz#1ba0af5e444c87d8047406f18ce49092a1191853"
-
-typings-global@^1.0.14, typings-global@^1.0.16:
- version "1.0.16"
- resolved "https://registry.yarnpkg.com/typings-global/-/typings-global-1.0.16.tgz#489b71781af24268750c2899316400a5e482961f"
- dependencies:
- semver "^5.3.0"
- shelljs "^0.7.7"
-
-uglify-js@^2.6:
- version "2.8.23"
- resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.23.tgz#8230dd9783371232d62a7821e2cf9a817270a8a0"
- dependencies:
- source-map "~0.5.1"
- yargs "~3.10.0"
- optionalDependencies:
- uglify-to-browserify "~1.0.0"
-
-uglify-to-browserify@~1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
-
-universalify@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.0.tgz#9eb1c4651debcc670cc94f1a75762332bb967778"
-
-util-deprecate@~1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
-
-vinyl-file@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/vinyl-file/-/vinyl-file-3.0.0.tgz#b104d9e4409ffa325faadd520642d0a3b488b365"
- dependencies:
- 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"
-
-vinyl@^2.0.1, vinyl@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.0.2.tgz#0a3713d8d4e9221c58f10ca16c0116c9e25eda7c"
- dependencies:
- clone "^1.0.0"
- clone-buffer "^1.0.0"
- clone-stats "^1.0.0"
- cloneable-readable "^1.0.0"
- is-stream "^1.1.0"
- remove-trailing-separator "^1.0.1"
- replace-ext "^1.0.0"
-
-window-size@0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
-
-wordwrap@0.0.2:
- version "0.0.2"
- resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
-
-wordwrap@~0.0.2:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
-
-wrappy@1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
-
-xtend@~4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
-
-yargs@~3.10.0:
- version "3.10.0"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
- dependencies:
- camelcase "^1.0.2"
- cliui "^2.1.0"
- decamelize "^1.0.0"
- window-size "0.1.0"