diff --git a/.gitignore b/.gitignore
index 1e59e82..9653ca4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
node_modules
.nyc_output
coverage
+
+test-results.xml
diff --git a/generators/app/index.js b/generators/app/index.js
index e1d1899..7e2dd84 100644
--- a/generators/app/index.js
+++ b/generators/app/index.js
@@ -1,171 +1,175 @@
-var generators = require('yeoman-generator'),
+var Generator = require('yeoman-generator'),
_ = require('underscore.string');
-module.exports = generators.Base.extend({
- constructor: function () {
- generators.Base.apply(this, arguments);
+module.exports = class extends Generator {
+ constructor (args, opts) {
+ super(args, opts);
this.appName = _.camelize(this.appname.replace('.', '-'));
this.hyphenName = _.dasherize(this.appName);
this.friendlyAppName = _.titleize(_.humanize(this.appName));
- },
-
- ask: function () {
- var done = this.async(),
- prompts = [{
- type: 'input',
- name: 'appName',
- message: 'name',
- default: this.hyphenName
- }];
-
- this.prompt(prompts, function (props) {
+ }
+
+ prompting () {
+ const prompts = [{
+ type: 'input',
+ name: 'appName',
+ message: 'name',
+ default: this.hyphenName
+ }];
+
+ return this.prompt(prompts).then((props) => {
this.appName = props.appName.replace('.', '-');
this.appName = _.camelize(this.appName);
this.hyphenName = _.dasherize(this.appName);
this.friendlyAppName = _.titleize(_.humanize(this.appName));
+ });
+ }
+
+ default () {
+ this._root();
+ this._app();
+ this._assets();
+ this._config();
+ this._styles();
+ this._tests();
+ }
+
+ _root () {
+ this.fs.copy(
+ this.templatePath('.babelrc'),
+ this.destinationPath('.babelrc')
+ );
+
+ this.fs.copy(
+ this.templatePath('.eslintrc'),
+ this.destinationPath('.eslintrc')
+ );
+
+ this.fs.copyTpl(
+ this.templatePath('bower.json'),
+ this.destinationPath('bower.json'),
+ this
+ );
+
+ this.fs.copyTpl(
+ this.templatePath('Brocfile.js'),
+ this.destinationPath('Brocfile.js'),
+ this
+ );
+
+ this.fs.copy(
+ this.templatePath('circle.yml'),
+ this.destinationPath('circle.yml')
+ );
+
+ this.fs.copy(
+ this.templatePath('Gruntfile.js'),
+ this.destinationPath('Gruntfile.js')
+ );
+
+ this.fs.copy(
+ this.templatePath('karma.conf.js'),
+ this.destinationPath('karma.conf.js')
+ );
+
+ this.fs.copyTpl(
+ this.templatePath('package.json'),
+ this.destinationPath('package.json'),
+ this
+ );
+ }
+
+ _app () {
+ this.fs.copyTpl(
+ this.templatePath('app/app.js'),
+ this.destinationPath('app/app.js'),
+ this
+ );
+
+ this.fs.copyTpl(
+ this.templatePath('app/index.html'),
+ this.destinationPath('app/index.html'),
+ this
+ );
+
+ this.fs.copyTpl(
+ this.templatePath('app/router.js'),
+ this.destinationPath('app/router.js'),
+ this
+ );
+
+ this.fs.copyTpl(
+ this.templatePath('app/exportable.js'),
+ this.destinationPath('app/' + this.hyphenName + '.js'),
+ this
+ );
+ }
+
+ _assets () {
+ this.fs.copy(
+ this.templatePath('assets/.gitkeep'),
+ this.destinationPath('assets/.gitkeep')
+ );
+ }
+
+ _config () {
+ this.fs.copy(
+ this.templatePath('config/environment.js'),
+ this.destinationPath('config/environment.js')
+ );
+ }
+
+ _styles () {
+ this.fs.copy(
+ this.templatePath('styles/app.less'),
+ this.destinationPath('styles/app.less')
+ );
+
+ this.fs.copy(
+ this.templatePath('styles/_colors.less'),
+ this.destinationPath('styles/_colors.less')
+ );
+
+ this.fs.copy(
+ this.templatePath('styles/_mixins.less'),
+ this.destinationPath('styles/_mixins.less')
+ );
+
+ this.fs.copy(
+ this.templatePath('styles/_variables.less'),
+ this.destinationPath('styles/_variables.less')
+ );
+ }
+
+ _tests () {
+ this.fs.copy(
+ this.templatePath('tests/.eslintrc'),
+ this.destinationPath('tests/.eslintrc')
+ );
+
+ this.fs.copy(
+ this.templatePath('tests/e2e/.gitkeep'),
+ this.destinationPath('tests/e2e/.gitkeep')
+ );
+
+ this.fs.copy(
+ this.templatePath('tests/helpers/afterAll.js'),
+ this.destinationPath('tests/helpers/afterAll.js')
+ );
+
+ this.fs.copy(
+ this.templatePath('tests/helpers/beforeAll.js'),
+ this.destinationPath('tests/helpers/beforeAll.js')
+ );
+
+ this.fs.copy(
+ this.templatePath('tests/unit/.gitkeep'),
+ this.destinationPath('tests/unit/.gitkeep')
+ );
+ }
- done();
- }.bind(this));
- },
-
- writing: {
- root: function () {
- this.fs.copy(
- this.templatePath('.babelrc'),
- this.destinationPath('.babelrc')
- );
-
- this.fs.copy(
- this.templatePath('.eslintrc'),
- this.destinationPath('.eslintrc')
- );
-
- this.fs.copyTpl(
- this.templatePath('bower.json'),
- this.destinationPath('bower.json'),
- this
- );
-
- this.fs.copyTpl(
- this.templatePath('Brocfile.js'),
- this.destinationPath('Brocfile.js'),
- this
- );
-
- this.fs.copy(
- this.templatePath('circle.yml'),
- this.destinationPath('circle.yml')
- );
-
- this.fs.copy(
- this.templatePath('Gruntfile.js'),
- this.destinationPath('Gruntfile.js')
- );
-
- this.fs.copy(
- this.templatePath('karma.conf.js'),
- this.destinationPath('karma.conf.js')
- );
-
- this.fs.copyTpl(
- this.templatePath('package.json'),
- this.destinationPath('package.json'),
- this
- );
- },
-
- app: function () {
- this.fs.copyTpl(
- this.templatePath('app/app.js'),
- this.destinationPath('app/app.js'),
- this
- );
-
- this.fs.copyTpl(
- this.templatePath('app/index.html'),
- this.destinationPath('app/index.html'),
- this
- );
-
- this.fs.copyTpl(
- this.templatePath('app/router.js'),
- this.destinationPath('app/router.js'),
- this
- );
-
- this.fs.copyTpl(
- this.templatePath('app/exportable.js'),
- this.destinationPath('app/' + this.hyphenName + '.js'),
- this
- );
- },
-
- assets: function () {
- this.fs.copy(
- this.templatePath('assets/.gitkeep'),
- this.destinationPath('assets/.gitkeep')
- );
- },
-
- config: function () {
- this.fs.copy(
- this.templatePath('config/environment.js'),
- this.destinationPath('config/environment.js')
- );
- },
-
- styles: function () {
- this.fs.copy(
- this.templatePath('styles/app.less'),
- this.destinationPath('styles/app.less')
- );
-
- this.fs.copy(
- this.templatePath('styles/_colors.less'),
- this.destinationPath('styles/_colors.less')
- );
-
- this.fs.copy(
- this.templatePath('styles/_mixins.less'),
- this.destinationPath('styles/_mixins.less')
- );
-
- this.fs.copy(
- this.templatePath('styles/_variables.less'),
- this.destinationPath('styles/_variables.less')
- );
- },
-
- tests: function () {
- this.fs.copy(
- this.templatePath('tests/.eslintrc'),
- this.destinationPath('tests/.eslintrc')
- );
-
- this.fs.copy(
- this.templatePath('tests/e2e/.gitkeep'),
- this.destinationPath('tests/e2e/.gitkeep')
- );
-
- this.fs.copy(
- this.templatePath('tests/helpers/afterAll.js'),
- this.destinationPath('tests/helpers/afterAll.js')
- );
-
- this.fs.copy(
- this.templatePath('tests/helpers/beforeAll.js'),
- this.destinationPath('tests/helpers/beforeAll.js')
- );
-
- this.fs.copy(
- this.templatePath('tests/unit/.gitkeep'),
- this.destinationPath('tests/unit/.gitkeep')
- );
- }
- },
-
- end: function () {
+ install () {
this.installDependencies();
}
-});
+};
diff --git a/generators/controller/index.js b/generators/controller/index.js
index c10e4af..a91afb4 100644
--- a/generators/controller/index.js
+++ b/generators/controller/index.js
@@ -1,90 +1,21 @@
-const generators = require('yeoman-generator'),
- parseComponentName = require('../../lib/parse-component-name'),
- _ = require('underscore.string');
+const Base = require('../../lib/base-component');
-module.exports = generators.Base.extend({
- componentType: 'Controller',
- generateTest: true,
-
- constructor: function () {
- generators.Base.apply(this, arguments);
-
- this.argument('componentPath', {
- type: String,
- desc: `${this.componentType} path and name (e.g. 'user' or a nested 'account/user')`,
- required: false,
- });
-
- if (this.componentPath !== undefined) {
- this.componentPath = _.dasherize(this.componentPath);
-
- this.componentName = parseComponentName.call(this, this.componentPath);
-
- this.hyphenComponentName = _.dasherize(this.componentName);
-
- this.classComponentName = _.classify(this.componentName);
- this.componentName = _.camelize(this.componentName);
- }
- },
-
- ask: function () {
- const prompts = [{
- type: 'input',
- name: 'componentPath',
- message: `${this.componentType} name`,
- validate: (componentPath) => {
- if (!componentPath) {
- return `${this.componentType} name is required`;
- }
-
- return true;
- }
- }];
- let done = null;
-
- if (this.componentName !== undefined) {
- return;
- }
-
- done = this.async();
- this.prompt(prompts, (props) => {
- this.componentPath = props.componentPath;
- this.componentPath = _.dasherize(this.componentPath);
-
- this.componentName = parseComponentName.call(this, this.componentPath);
-
- this.hyphenComponentName = _.dasherize(this.componentName);
-
- this.classComponentName = _.classify(this.componentName);
- this.componentName = _.camelize(this.componentName);
-
- done();
- });
- },
-
- writing: {
- component: function () {
- const componentLowerCase = this.componentType.toLowerCase();
-
- this.fs.copyTpl(
- this.templatePath(`${componentLowerCase}.js`),
- this.destinationPath(`app/${this.componentPath}/${componentLowerCase}.js`),
- this
- );
- },
+module.exports = class extends Base {
+ constructor (args, opts) {
+ super(args, opts);
+ }
- componentTest: function () {
- const componentLowerCase = this.componentType.toLowerCase();
+ initializing () {
+ this._initializing();
+ this.componentType = 'Controller';
+ }
- if (this.generateTest === false) {
- return;
- }
+ prompting () {
+ return this._prompting();
+ }
- this.fs.copyTpl(
- this.templatePath(`${componentLowerCase}.spec.js`),
- this.destinationPath(`tests/unit/${this.componentPath}/${componentLowerCase}.spec.js`),
- this
- );
- }
+ default () {
+ this._component();
+ this._componentTest();
}
-});
+};
diff --git a/generators/directive/index.js b/generators/directive/index.js
index a623689..e094fcc 100644
--- a/generators/directive/index.js
+++ b/generators/directive/index.js
@@ -1,99 +1,18 @@
-const generators = require('yeoman-generator'),
- parseComponentName = require('../../lib/parse-component-name'),
- _ = require('underscore.string');
-
-module.exports = generators.Base.extend({
- componentType: 'Directive',
- generateTest: true,
-
- constructor: function () {
- generators.Base.apply(this, arguments);
-
- this.argument('componentPath', {
- type: String,
- desc: `${this.componentType} path and name (e.g. 'user' or a nested 'account/user')`,
- required: false,
- });
-
- if (this.componentPath !== undefined) {
- this.componentPath = _.dasherize(this.componentPath);
-
- this.componentName = parseComponentName.call(this, this.componentPath);
-
- this.hyphenComponentName = _.dasherize(this.componentName);
-
- this.classComponentName = _.classify(this.componentName);
- this.componentName = _.camelize(this.componentName);
- }
- },
-
- ask: function () {
- const prompts = [{
- type: 'input',
- name: 'componentPath',
- message: `${this.componentType} name`,
- validate: (componentPath) => {
- if (!componentPath) {
- return `${this.componentType} name is required`;
- }
-
- return true;
- }
- }];
- let done = null;
-
- if (this.componentName !== undefined) {
- return;
- }
-
- done = this.async();
- this.prompt(prompts, (props) => {
- this.componentPath = props.componentPath;
- this.componentPath = _.dasherize(this.componentPath);
-
- this.componentName = parseComponentName.call(this, this.componentPath);
-
- this.hyphenComponentName = _.dasherize(this.componentName);
-
- this.classComponentName = _.classify(this.componentName);
- this.componentName = _.camelize(this.componentName);
-
- done();
- });
- },
-
- writing: {
- component: function () {
- const componentLowerCase = this.componentType.toLowerCase();
-
- this.fs.copyTpl(
- this.templatePath(`${componentLowerCase}.js`),
- this.destinationPath(`app/${this.componentPath}/${componentLowerCase}.js`),
- this
- );
- },
-
- componentTest: function () {
- const componentLowerCase = this.componentType.toLowerCase();
-
- if (this.generateTest === false) {
- return;
- }
-
- this.fs.copyTpl(
- this.templatePath(`${componentLowerCase}.spec.js`),
- this.destinationPath(`tests/unit/${this.componentPath}/${componentLowerCase}.spec.js`),
- this
- );
- },
-
- template: function () {
- this.composeWith('angular-bro:template', {
- args: [this.componentPath]
- }, {
- local: require.resolve('../template'),
- link: 'weak'
- });
- },
- },
-});
+const Base = require('../../lib/base-component');
+
+module.exports = class extends Base {
+ initializing () {
+ this._initializing();
+ this.componentType = 'Directive';
+ }
+
+ prompting () {
+ return this._prompting();
+ }
+
+ default () {
+ this._component();
+ this._componentTest();
+ this._template();
+ }
+};
diff --git a/generators/directive/templates/template.html b/generators/directive/templates/template.html
new file mode 100644
index 0000000..930a69d
--- /dev/null
+++ b/generators/directive/templates/template.html
@@ -0,0 +1,2 @@
+<<%= hyphenComponentName %>>
+<%= hyphenComponentName %>>
diff --git a/generators/factory/index.js b/generators/factory/index.js
index 50c0c29..102e1f4 100644
--- a/generators/factory/index.js
+++ b/generators/factory/index.js
@@ -1,90 +1,17 @@
-const generators = require('yeoman-generator'),
- parseComponentName = require('../../lib/parse-component-name'),
- _ = require('underscore.string');
+const Base = require('../../lib/base-component');
-module.exports = generators.Base.extend({
- componentType: 'Factory',
- generateTest: true,
-
- constructor: function () {
- generators.Base.apply(this, arguments);
-
- this.argument('componentPath', {
- type: String,
- desc: `${this.componentType} path and name (e.g. 'user' or a nested 'account/user')`,
- required: false,
- });
-
- if (this.componentPath !== undefined) {
- this.componentPath = _.dasherize(this.componentPath);
-
- this.componentName = parseComponentName.call(this, this.componentPath);
-
- this.hyphenComponentName = _.dasherize(this.componentName);
-
- this.classComponentName = _.classify(this.componentName);
- this.componentName = _.camelize(this.componentName);
- }
- },
-
- ask: function () {
- const prompts = [{
- type: 'input',
- name: 'componentPath',
- message: `${this.componentType} name`,
- validate: (componentPath) => {
- if (!componentPath) {
- return `${this.componentType} name is required`;
- }
-
- return true;
- }
- }];
- let done = null;
-
- if (this.componentName !== undefined) {
- return;
- }
-
- done = this.async();
- this.prompt(prompts, (props) => {
- this.componentPath = props.componentPath;
- this.componentPath = _.dasherize(this.componentPath);
-
- this.componentName = parseComponentName.call(this, this.componentPath);
-
- this.hyphenComponentName = _.dasherize(this.componentName);
-
- this.classComponentName = _.classify(this.componentName);
- this.componentName = _.camelize(this.componentName);
-
- done();
- });
- },
-
- writing: {
- component: function () {
- const componentLowerCase = this.componentType.toLowerCase();
-
- this.fs.copyTpl(
- this.templatePath(`${componentLowerCase}.js`),
- this.destinationPath(`app/${this.componentPath}/${componentLowerCase}.js`),
- this
- );
- },
-
- componentTest: function () {
- const componentLowerCase = this.componentType.toLowerCase();
+module.exports = class extends Base {
+ initializing () {
+ this._initializing();
+ this.componentType = 'Factory';
+ }
- if (this.generateTest === false) {
- return;
- }
+ prompting () {
+ return this._prompting();
+ }
- this.fs.copyTpl(
- this.templatePath(`${componentLowerCase}.spec.js`),
- this.destinationPath(`tests/unit/${this.componentPath}/${componentLowerCase}.spec.js`),
- this
- );
- }
+ default () {
+ this._component();
+ this._componentTest();
}
-});
+};
diff --git a/generators/provider/index.js b/generators/provider/index.js
index 210c4c7..7e42b69 100644
--- a/generators/provider/index.js
+++ b/generators/provider/index.js
@@ -1,90 +1,17 @@
-const generators = require('yeoman-generator'),
- parseComponentName = require('../../lib/parse-component-name'),
- _ = require('underscore.string');
+const Base = require('../../lib/base-component');
-module.exports = generators.Base.extend({
- componentType: 'Provider',
- generateTest: true,
-
- constructor: function () {
- generators.Base.apply(this, arguments);
-
- this.argument('componentPath', {
- type: String,
- desc: `${this.componentType} path and name (e.g. 'user' or a nested 'account/user')`,
- required: false,
- });
-
- if (this.componentPath !== undefined) {
- this.componentPath = _.dasherize(this.componentPath);
-
- this.componentName = parseComponentName.call(this, this.componentPath);
-
- this.hyphenComponentName = _.dasherize(this.componentName);
-
- this.classComponentName = _.classify(this.componentName);
- this.componentName = _.camelize(this.componentName);
- }
- },
-
- ask: function () {
- const prompts = [{
- type: 'input',
- name: 'componentPath',
- message: `${this.componentType} name`,
- validate: (componentPath) => {
- if (!componentPath) {
- return `${this.componentType} name is required`;
- }
-
- return true;
- }
- }];
- let done = null;
-
- if (this.componentName !== undefined) {
- return;
- }
-
- done = this.async();
- this.prompt(prompts, (props) => {
- this.componentPath = props.componentPath;
- this.componentPath = _.dasherize(this.componentPath);
-
- this.componentName = parseComponentName.call(this, this.componentPath);
-
- this.hyphenComponentName = _.dasherize(this.componentName);
-
- this.classComponentName = _.classify(this.componentName);
- this.componentName = _.camelize(this.componentName);
-
- done();
- });
- },
-
- writing: {
- component: function () {
- const componentLowerCase = this.componentType.toLowerCase();
-
- this.fs.copyTpl(
- this.templatePath(`${componentLowerCase}.js`),
- this.destinationPath(`app/${this.componentPath}/${componentLowerCase}.js`),
- this
- );
- },
-
- componentTest: function () {
- const componentLowerCase = this.componentType.toLowerCase();
+module.exports = class extends Base {
+ initializing () {
+ this._initializing();
+ this.componentType = 'Provider';
+ }
- if (this.generateTest === false) {
- return;
- }
+ prompting () {
+ return this._prompting();
+ }
- this.fs.copyTpl(
- this.templatePath(`${componentLowerCase}.spec.js`),
- this.destinationPath(`tests/unit/${this.componentPath}/${componentLowerCase}.spec.js`),
- this
- );
- }
+ default () {
+ this._component();
+ this._componentTest();
}
-});
+};
diff --git a/generators/proxy/index.js b/generators/proxy/index.js
index 1befa51..2a767d6 100644
--- a/generators/proxy/index.js
+++ b/generators/proxy/index.js
@@ -1,70 +1,73 @@
-var generators = require('yeoman-generator');
+const Generator = require('yeoman-generator');
-module.exports = generators.Base.extend({
- componentType: 'Proxy',
- generateTest: false,
-
- constructor: function () {
- generators.Base.apply(this, arguments);
+module.exports = class extends Generator {
+ constructor (args, opts) {
+ super(args, opts);
+ this.componentType = 'Proxy';
this.argument('proxyPath', {
type: String,
- desc: this.componentType + ' relative path and name (e.g. `/user` or a nested `/account/user`)',
+ desc: `${this.componentType} relative path and name (e.g. '/user' or a nested '/account/user')`,
required: false
});
this.argument('proxyTarget', {
type: String,
- desc: this.componentType + ' target path and name (e.g. `http://localhost/api/v1/user/`)',
+ desc: `${this.componentType} target path and name (e.g. 'http://localhost/api/v1/user/')`,
required: false
});
- },
+ }
+
+ initializing () {
+ this.props = {};
+
+ if (this.options.proxyPath !== undefined && this.options.proxyTarget !== undefined) {
+ this._assignProps(this.options);
+ }
+ }
- ask: function () {
- var prompts = [{
- type: 'input',
- name: 'proxyPath',
- message: this.componentType + ' Path',
- validate: function (proxyPath) {
- if (!proxyPath) {
- return this.componentType + ' path is required';
- }
+ prompting () {
+ const prompts = [{
+ type: 'input',
+ name: 'proxyPath',
+ message: `${this.componentType} Path`,
+ validate: (proxyPath) => {
+ if (!proxyPath) {
+ return `${this.componentType} path is required`;
+ }
- return true;
- }.bind(this)
- }, {
- type: 'input',
- name: 'proxyTarget',
- message: this.componentType + ' Target',
- validate: function (proxyTarget) {
- if (!proxyTarget) {
- return this.componentType + ' target is required';
- }
+ return true;
+ },
+ }, {
+ type: 'input',
+ name: 'proxyTarget',
+ message: `${this.componentType} Target`,
+ validate: (proxyTarget) => {
+ if (!proxyTarget) {
+ return `${this.componentType} target is required`;
+ }
- return true;
- }.bind(this)
- }],
- done;
+ return true;
+ },
+ }];
- if (this.proxyPath !== undefined) {
+ if (this.proxyPath !== undefined && this.proxyTarget !== undefined) {
return;
}
- done = this.async();
- this.prompt(prompts, function (props) {
- this.proxyPath = props.proxyPath;
- this.proxyTarget = props.proxyTarget;
- done();
- }.bind(this));
- },
+ return this.prompt(prompts).then(this._assignProps.bind(this), () => {});
+ }
- writing: {
- component: function () {
- this.fs.copyTpl(
- this.templatePath('proxy.js'),
- this.destinationPath('server/proxies/' + this.proxyPath + '.js'),
- this
- );
- }
+ _assignProps (props) {
+ this.proxyPath = props.proxyPath;
+ this.proxyTarget = props.proxyTarget;
+ }
+
+ default () {
+ this.fs.copyTpl(
+ this.templatePath('proxy.js'),
+ this.destinationPath(`server/proxies/${this.proxyPath}.js`),
+ this
+ );
}
-});
+};
diff --git a/generators/server/index.js b/generators/server/index.js
index a656159..f626767 100644
--- a/generators/server/index.js
+++ b/generators/server/index.js
@@ -1,30 +1,24 @@
-var generators = require('yeoman-generator');
+var Generator = require('yeoman-generator');
-module.exports = generators.Base.extend({
- constructor: function () {
- generators.Base.apply(this, arguments);
- },
+module.exports = class extends Generator {
+ default () {
+ this.fs.copy(
+ this.templatePath('index.js'),
+ this.destinationPath('server/index.js')
+ );
- writing: {
- server: function () {
- this.fs.copy(
- this.templatePath('index.js'),
- this.destinationPath('server/index.js')
- );
+ this.fs.copy(
+ this.templatePath('.gitkeep'),
+ this.destinationPath('server/mocks/.gitkeep')
+ );
- this.fs.copy(
- this.templatePath('.gitkeep'),
- this.destinationPath('server/mocks/.gitkeep')
- );
-
- this.fs.copy(
- this.templatePath('.gitkeep'),
- this.destinationPath('server/proxies/.gitkeep')
- );
- }
- },
+ this.fs.copy(
+ this.templatePath('.gitkeep'),
+ this.destinationPath('server/proxies/.gitkeep')
+ );
+ }
- end: function () {
- this.npmInstall(['morgan@1.7.0'], { saveDev: true });
+ install () {
+ this.npmInstall([ 'morgan@1.7.0' ], { saveDev: true });
}
-});
+};
diff --git a/generators/service/index.js b/generators/service/index.js
index 5e75082..c2aec6c 100644
--- a/generators/service/index.js
+++ b/generators/service/index.js
@@ -1,90 +1,17 @@
-const generators = require('yeoman-generator'),
- parseComponentName = require('../../lib/parse-component-name'),
- _ = require('underscore.string');
+const Base = require('../../lib/base-component');
-module.exports = generators.Base.extend({
- componentType: 'Service',
- generateTest: true,
-
- constructor: function () {
- generators.Base.apply(this, arguments);
-
- this.argument('componentPath', {
- type: String,
- desc: `${this.componentType} path and name (e.g. 'user' or a nested 'account/user')`,
- required: false,
- });
-
- if (this.componentPath !== undefined) {
- this.componentPath = _.dasherize(this.componentPath);
-
- this.componentName = parseComponentName.call(this, this.componentPath);
-
- this.hyphenComponentName = _.dasherize(this.componentName);
-
- this.classComponentName = _.classify(this.componentName);
- this.componentName = _.camelize(this.componentName);
- }
- },
-
- ask: function () {
- const prompts = [{
- type: 'input',
- name: 'componentPath',
- message: `${this.componentType} name`,
- validate: (componentPath) => {
- if (!componentPath) {
- return `${this.componentType} name is required`;
- }
-
- return true;
- }
- }];
- let done = null;
-
- if (this.componentName !== undefined) {
- return;
- }
-
- done = this.async();
- this.prompt(prompts, (props) => {
- this.componentPath = props.componentPath;
- this.componentPath = _.dasherize(this.componentPath);
-
- this.componentName = parseComponentName.call(this, this.componentPath);
-
- this.hyphenComponentName = _.dasherize(this.componentName);
-
- this.classComponentName = _.classify(this.componentName);
- this.componentName = _.camelize(this.componentName);
-
- done();
- });
- },
-
- writing: {
- component: function () {
- const componentLowerCase = this.componentType.toLowerCase();
-
- this.fs.copyTpl(
- this.templatePath(`${componentLowerCase}.js`),
- this.destinationPath(`app/${this.componentPath}/${componentLowerCase}.js`),
- this
- );
- },
-
- componentTest: function () {
- const componentLowerCase = this.componentType.toLowerCase();
+module.exports = class extends Base {
+ initializing () {
+ this._initializing();
+ this.componentType = 'Service';
+ }
- if (this.generateTest === false) {
- return;
- }
+ prompting () {
+ return this._prompting();
+ }
- this.fs.copyTpl(
- this.templatePath(`${componentLowerCase}.spec.js`),
- this.destinationPath(`tests/unit/${this.componentPath}/${componentLowerCase}.spec.js`),
- this
- );
- }
+ default () {
+ this._component();
+ this._componentTest();
}
-});
+};
diff --git a/generators/state/index.js b/generators/state/index.js
index eda583d..d3175c3 100644
--- a/generators/state/index.js
+++ b/generators/state/index.js
@@ -1,99 +1,18 @@
-const generators = require('yeoman-generator'),
- parseComponentName = require('../../lib/parse-component-name'),
- _ = require('underscore.string');
-
-module.exports = generators.Base.extend({
- componentType: 'State',
- generateTest: true,
-
- constructor: function () {
- generators.Base.apply(this, arguments);
-
- this.argument('componentPath', {
- type: String,
- desc: `${this.componentType} path and name (e.g. 'user' or a nested 'account/user')`,
- required: false,
- });
-
- if (this.componentPath !== undefined) {
- this.componentPath = _.dasherize(this.componentPath);
-
- this.componentName = parseComponentName.call(this, this.componentPath);
-
- this.hyphenComponentName = _.dasherize(this.componentName);
-
- this.classComponentName = _.classify(this.componentName);
- this.componentName = _.camelize(this.componentName);
- }
- },
-
- ask: function () {
- const prompts = [{
- type: 'input',
- name: 'componentPath',
- message: `${this.componentType} name`,
- validate: (componentPath) => {
- if (!componentPath) {
- return `${this.componentType} name is required`;
- }
-
- return true;
- }
- }];
- let done = null;
-
- if (this.componentName !== undefined) {
- return;
- }
-
- done = this.async();
- this.prompt(prompts, (props) => {
- this.componentPath = props.componentPath;
- this.componentPath = _.dasherize(this.componentPath);
-
- this.componentName = parseComponentName.call(this, this.componentPath);
-
- this.hyphenComponentName = _.dasherize(this.componentName);
-
- this.classComponentName = _.classify(this.componentName);
- this.componentName = _.camelize(this.componentName);
-
- done();
- });
- },
-
- writing: {
- component: function () {
- const componentLowerCase = this.componentType.toLowerCase();
-
- this.fs.copyTpl(
- this.templatePath(`${componentLowerCase}.js`),
- this.destinationPath(`app/${this.componentPath}/${componentLowerCase}.js`),
- this
- );
- },
-
- componentTest: function () {
- const componentLowerCase = this.componentType.toLowerCase();
-
- if (this.generateTest === false) {
- return;
- }
-
- this.fs.copyTpl(
- this.templatePath(`${componentLowerCase}.spec.js`),
- this.destinationPath(`tests/unit/${this.componentPath}/${componentLowerCase}.spec.js`),
- this
- );
- },
-
- template: function () {
- this.composeWith('angular-bro:template', {
- args: [this.componentPath]
- }, {
- local: require.resolve('../template'),
- link: 'weak'
- });
- },
- },
-});
+const Base = require('../../lib/base-component');
+
+module.exports = class extends Base {
+ initializing () {
+ this._initializing();
+ this.componentType = 'State';
+ }
+
+ prompting () {
+ return this._prompting();
+ }
+
+ default () {
+ this._component();
+ this._componentTest();
+ this._template();
+ }
+};
diff --git a/generators/state/templates/template.html b/generators/state/templates/template.html
new file mode 100644
index 0000000..5c18d8b
--- /dev/null
+++ b/generators/state/templates/template.html
@@ -0,0 +1 @@
+
<%= componentName %>
diff --git a/generators/template/index.js b/generators/template/index.js
index d1a3606..203458a 100644
--- a/generators/template/index.js
+++ b/generators/template/index.js
@@ -1,76 +1,16 @@
-const generators = require('yeoman-generator'),
- parseComponentName = require('../../lib/parse-component-name'),
- _ = require('underscore.string');
-
-module.exports = generators.Base.extend({
- componentType: 'Template',
- generateTest: false,
-
- constructor: function () {
- generators.Base.apply(this, arguments);
-
- this.argument('componentPath', {
- type: String,
- desc: `${this.componentType} path and name (e.g. 'user' or a nested 'account/user')`,
- required: false,
- });
-
- if (this.componentPath !== undefined) {
- this.componentPath = _.dasherize(this.componentPath);
-
- this.componentName = parseComponentName.call(this, this.componentPath);
-
- this.hyphenComponentName = _.dasherize(this.componentName);
-
- this.classComponentName = _.classify(this.componentName);
- this.componentName = _.camelize(this.componentName);
- }
- },
-
- ask: function () {
- const prompts = [{
- type: 'input',
- name: 'componentPath',
- message: `${this.componentType} name`,
- validate: (componentPath) => {
- if (!componentPath) {
- return `${this.componentType} name is required`;
- }
-
- return true;
- }
- }];
- let done = null;
-
- if (this.componentName !== undefined) {
- return;
- }
-
- done = this.async();
- this.prompt(prompts, (props) => {
- this.componentPath = props.componentPath;
- this.componentPath = _.dasherize(this.componentPath);
-
- this.componentName = parseComponentName.call(this, this.componentPath);
-
- this.hyphenComponentName = _.dasherize(this.componentName);
-
- this.classComponentName = _.classify(this.componentName);
- this.componentName = _.camelize(this.componentName);
-
- done();
- });
- },
-
- writing: {
- component: function () {
- const componentLowerCase = this.componentType.toLowerCase();
-
- this.fs.copyTpl(
- this.templatePath(`${componentLowerCase}.html`),
- this.destinationPath(`app/${this.componentPath}/${componentLowerCase}.html`),
- this
- );
- },
- },
-});
+const Base = require('../../lib/base-component');
+
+module.exports = class extends Base {
+ initializing () {
+ this._initializing();
+ this.componentType = 'Template';
+ }
+
+ prompting () {
+ return this._prompting();
+ }
+
+ default () {
+ this._template();
+ }
+};
diff --git a/lib/base-component.js b/lib/base-component.js
index 079c7b9..5f81e6e 100644
--- a/lib/base-component.js
+++ b/lib/base-component.js
@@ -1,32 +1,28 @@
-const generators = require('yeoman-generator'),
+const Generator = require('yeoman-generator'),
parseComponentName = require('./parse-component-name'),
- _ = require('underscore.string');
+ _ = require('underscore.string');
-module.exports = generators.Base.extend({
- generateTest: true,
-
- constructor: function () {
- generators.Base.apply(this, arguments);
+module.exports = class extends Generator {
+ constructor (args, opts) {
+ super(args, opts);
this.argument('componentPath', {
type: String,
desc: `${this.componentType} path and name (e.g. 'user' or a nested 'account/user')`,
required: false,
});
+ }
- if (this.componentPath !== undefined) {
- this.componentPath = _.dasherize(this.componentPath);
-
- this.componentName = parseComponentName.call(this, this.componentPath);
-
- this.hyphenComponentName = _.dasherize(this.componentName);
+ _initializing () {
+ this.generateTest = true;
+ this.props = {};
- this.classComponentName = _.classify(this.componentName);
- this.componentName = _.camelize(this.componentName);
+ if (this.options.componentPath !== undefined) {
+ this._assignProps(this.options);
}
- },
+ }
- ask: function () {
+ _prompting () {
const prompts = [{
type: 'input',
name: 'componentPath',
@@ -39,51 +35,51 @@ module.exports = generators.Base.extend({
return true;
}
}];
- let done = null;
if (this.componentName !== undefined) {
return;
}
- done = this.async();
- this.prompt(prompts, (props) => {
- this.componentPath = props.componentPath;
- this.componentPath = _.dasherize(this.componentPath);
+ return this.prompt(prompts).then(this._assignProps.bind(this), () => {});
+ }
- this.componentName = parseComponentName.call(this, this.componentPath);
+ _assignProps (props) {
+ this.componentPath = props.componentPath;
+ this.componentPath = _.dasherize(this.componentPath);
- this.hyphenComponentName = _.dasherize(this.componentName);
+ this.componentName = parseComponentName.call(this, this.componentPath);
- this.classComponentName = _.classify(this.componentName);
- this.componentName = _.camelize(this.componentName);
+ this.hyphenComponentName = _.dasherize(this.componentName);
- done();
- });
- },
+ this.classComponentName = _.classify(this.componentName);
+ this.componentName = _.camelize(this.componentName);
+ }
- writing: {
- component: function () {
- const componentLowerCase = this.componentType.toLowerCase();
+ _component () {
+ const componentLowerCase = this.componentType.toLowerCase();
- this.fs.copyTpl(
- this.templatePath(`${componentLowerCase}.js`),
- this.destinationPath(`app/${this.componentPath}/${componentLowerCase}.js`),
- this
- );
- },
+ this.fs.copyTpl(
+ this.templatePath(`${componentLowerCase}.js`),
+ this.destinationPath(`app/${this.componentPath}/${componentLowerCase}.js`),
+ this
+ );
+ }
- componentTest: function () {
- const componentLowerCase = this.componentType.toLowerCase();
+ _componentTest () {
+ const componentLowerCase = this.componentType.toLowerCase();
- if (this.generateTest === false) {
- return;
- }
+ this.fs.copyTpl(
+ this.templatePath(`${componentLowerCase}.spec.js`),
+ this.destinationPath(`tests/unit/${this.componentPath}/${componentLowerCase}.spec.js`),
+ this
+ );
+ }
- this.fs.copyTpl(
- this.templatePath(`${componentLowerCase}.spec.js`),
- this.destinationPath(`tests/unit/${this.componentPath}/${componentLowerCase}.spec.js`),
- this
- );
- }
+ _template () {
+ this.fs.copyTpl(
+ this.templatePath(`template.html`),
+ this.destinationPath(`app/${this.componentPath}/template.html`),
+ this
+ );
}
-});
+};
diff --git a/lib/parse-component-name.js b/lib/parse-component-name.js
index 848300f..cfe1c30 100644
--- a/lib/parse-component-name.js
+++ b/lib/parse-component-name.js
@@ -9,6 +9,7 @@ module.exports = function (componentPath) {
const pieces = componentPath.split('/');
if (!componentPath || typeof componentPath !== 'string') {
+ console.log(arguments);
this.env.error(`Must provide the name of the ${this.componentType.toLowerCase()} to be created`);
}
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..99e98d0
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,4751 @@
+{
+ "name": "generator-angular-bro",
+ "version": "0.11.3",
+ "lockfileVersion": 1,
+ "dependencies": {
+ "abbrev": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz",
+ "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8="
+ },
+ "acorn": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
+ "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo="
+ },
+ "acorn-jsx": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz",
+ "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s="
+ },
+ "ajv": {
+ "version": "4.11.8",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
+ "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=",
+ "dev": true,
+ "dependencies": {
+ "co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
+ "dev": true
+ }
+ }
+ },
+ "ajv-keywords": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz",
+ "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=",
+ "dev": true
+ },
+ "amdefine": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
+ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
+ "optional": true
+ },
+ "ansi-escapes": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
+ "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4="
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
+ },
+ "archive-type": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/archive-type/-/archive-type-3.2.0.tgz",
+ "integrity": "sha1-nNnABpV+vpX62tW9YJiUKoE3N/Y="
+ },
+ "argparse": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
+ "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
+ "dependencies": {
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
+ }
+ }
+ },
+ "arr-diff": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
+ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8="
+ },
+ "arr-flatten": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="
+ },
+ "arr-union": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="
+ },
+ "array-differ": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
+ "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE="
+ },
+ "array-find-index": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
+ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E="
+ },
+ "array-union": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk="
+ },
+ "array-uniq": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY="
+ },
+ "array-unique": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
+ "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM="
+ },
+ "arrify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0="
+ },
+ "asn1": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
+ "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=",
+ "dev": true
+ },
+ "assert-plus": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
+ "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=",
+ "dev": true
+ },
+ "ast-query": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ast-query/-/ast-query-2.0.0.tgz",
+ "integrity": "sha1-NYjnmtjeB85Q3x54HMK9of1ppFM="
+ },
+ "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=",
+ "dev": true
+ },
+ "aws-sign2": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
+ "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=",
+ "dev": true
+ },
+ "aws4": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
+ "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=",
+ "dev": true
+ },
+ "babel-code-frame": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz",
+ "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=",
+ "dev": true
+ },
+ "babel-eslint": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-7.2.3.tgz",
+ "integrity": "sha1-sv4tgBJkcPXBlELcdXJTqJdxCCc=",
+ "dev": true
+ },
+ "babel-messages": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
+ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
+ "dev": true
+ },
+ "babel-runtime": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz",
+ "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=",
+ "dev": true
+ },
+ "babel-traverse": {
+ "version": "6.25.0",
+ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.25.0.tgz",
+ "integrity": "sha1-IldJfi/NGbie3BPEyROB+VEklvE=",
+ "dev": true
+ },
+ "babel-types": {
+ "version": "6.25.0",
+ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz",
+ "integrity": "sha1-cK+ySNVmDl0Y+BHZHIMDtUE0oY4=",
+ "dev": true
+ },
+ "babylon": {
+ "version": "6.17.4",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.17.4.tgz",
+ "integrity": "sha512-kChlV+0SXkjE0vUn9OZ7pBMWRFd8uq3mZe8x1K6jhuNcAFAtEnjchFAqB+dYEXKyd+JpT6eppRR78QAr5gTsUw==",
+ "dev": true
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
+ "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
+ "dev": true,
+ "optional": true
+ },
+ "beeper": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz",
+ "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak="
+ },
+ "binaryextensions": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-1.0.1.tgz",
+ "integrity": "sha1-HmN0iLNbWL2l9HdL+WpSEqjJB1U="
+ },
+ "bl": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz",
+ "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4="
+ },
+ "boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
+ },
+ "boom": {
+ "version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
+ "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
+ "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI="
+ },
+ "braces": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
+ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc="
+ },
+ "browser-stdout": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz",
+ "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=",
+ "dev": true
+ },
+ "buffer-crc32": {
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+ "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI="
+ },
+ "buffer-to-vinyl": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/buffer-to-vinyl/-/buffer-to-vinyl-1.1.0.tgz",
+ "integrity": "sha1-APFfruOreh3aLN5tkSG//dB7ImI="
+ },
+ "builtin-modules": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
+ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8="
+ },
+ "bytewise": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/bytewise/-/bytewise-1.1.0.tgz",
+ "integrity": "sha1-HRPL/3F65xWAlKqIGzXQgbOHJT4="
+ },
+ "bytewise-core": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/bytewise-core/-/bytewise-core-1.2.3.tgz",
+ "integrity": "sha1-P7QQx+kVWOsasiqCg0V3qmvWHUI="
+ },
+ "caller-path": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz",
+ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=",
+ "dev": true
+ },
+ "callsites": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz",
+ "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=",
+ "dev": true
+ },
+ "camelcase": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+ "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8="
+ },
+ "camelcase-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
+ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc="
+ },
+ "capture-stack-trace": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz",
+ "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0="
+ },
+ "caseless": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz",
+ "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=",
+ "dev": true
+ },
+ "caw": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/caw/-/caw-1.2.0.tgz",
+ "integrity": "sha1-/7Im/n78VHKI3GLuPpcHPCEtEDQ=",
+ "dependencies": {
+ "object-assign": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
+ "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I="
+ }
+ }
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg="
+ },
+ "charenc": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
+ "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=",
+ "dev": true
+ },
+ "cheerio": {
+ "version": "0.19.0",
+ "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.19.0.tgz",
+ "integrity": "sha1-dy5wFfLuKZZQltcepBdbdas1SSU=",
+ "dependencies": {
+ "lodash": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
+ "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y="
+ }
+ }
+ },
+ "circular-json": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.1.tgz",
+ "integrity": "sha1-vos2rvzN6LPKeqLWr8B6NyQsDS0=",
+ "dev": true
+ },
+ "class-extend": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/class-extend/-/class-extend-0.1.2.tgz",
+ "integrity": "sha1-gFeoKwD1P4Kl1ixQ74z/3sb6vDQ=",
+ "dependencies": {
+ "object-assign": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz",
+ "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo="
+ }
+ }
+ },
+ "cli-cursor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
+ "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc="
+ },
+ "cli-table": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz",
+ "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM="
+ },
+ "cli-width": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz",
+ "integrity": "sha1-sjTKIJsp72b8UY2bmNWEewDt8Ao="
+ },
+ "clone": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz",
+ "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk="
+ },
+ "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": "0.0.1",
+ "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
+ "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE="
+ },
+ "cloneable-readable": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.0.0.tgz",
+ "integrity": "sha1-pikNQT8hemEjL5XkWP84QYz7ARc="
+ },
+ "co": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-3.1.0.tgz",
+ "integrity": "sha1-TqVOpaCJOBUxheFSEMaNkJK8G3g="
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
+ },
+ "color-convert": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz",
+ "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o="
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
+ },
+ "colors": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
+ "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs="
+ },
+ "combined-stream": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
+ "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
+ "dev": true
+ },
+ "commander": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz",
+ "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ="
+ },
+ "commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs="
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ },
+ "concat-stream": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz",
+ "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc="
+ },
+ "convert-source-map": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz",
+ "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU="
+ },
+ "core-js": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz",
+ "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=",
+ "dev": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
+ },
+ "coveralls": {
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-2.13.1.tgz",
+ "integrity": "sha1-1wu5rMGDXsTwY/+drFQjwXsR8Xg=",
+ "dev": true
+ },
+ "create-error-class": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz",
+ "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y="
+ },
+ "cross-spawn": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
+ "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI="
+ },
+ "crypt": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
+ "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=",
+ "dev": true
+ },
+ "cryptiles": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
+ "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
+ "dev": true
+ },
+ "css-select": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.0.0.tgz",
+ "integrity": "sha1-sRIcpRhI3SZOIkTQWM7iVN7rRLA="
+ },
+ "css-what": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-1.0.0.tgz",
+ "integrity": "sha1-18wt9FGAZm+Z0rFEYmOUaeAPc2w="
+ },
+ "currently-unhandled": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
+ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o="
+ },
+ "d": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
+ "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
+ "dev": true
+ },
+ "dargs": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz",
+ "integrity": "sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc="
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "dev": true,
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
+ }
+ }
+ },
+ "dateformat": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz",
+ "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk="
+ },
+ "debug": {
+ "version": "2.6.8",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz",
+ "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw="
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
+ },
+ "decompress": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/decompress/-/decompress-3.0.0.tgz",
+ "integrity": "sha1-rx3VDQbjv8QyRh033hGzjA2ZG+0="
+ },
+ "decompress-response": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
+ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M="
+ },
+ "decompress-tar": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-3.1.0.tgz",
+ "integrity": "sha1-IXx4n5uURQ76rcXF5TeXj8MzxGY=",
+ "dependencies": {
+ "clone": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
+ "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8="
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ },
+ "object-assign": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz",
+ "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo="
+ },
+ "readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw="
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ },
+ "through2": {
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
+ "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg="
+ },
+ "vinyl": {
+ "version": "0.4.6",
+ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
+ "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc="
+ }
+ }
+ },
+ "decompress-tarbz2": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-3.1.0.tgz",
+ "integrity": "sha1-iyOTVoE1X58YnYclag+L3ZbZZm0=",
+ "dependencies": {
+ "clone": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
+ "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8="
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ },
+ "object-assign": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz",
+ "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo="
+ },
+ "readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw="
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ },
+ "through2": {
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
+ "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg="
+ },
+ "vinyl": {
+ "version": "0.4.6",
+ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
+ "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc="
+ }
+ }
+ },
+ "decompress-targz": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-3.1.0.tgz",
+ "integrity": "sha1-ssE9+YFmJomRtxXWRH9kLpaW9aA=",
+ "dependencies": {
+ "clone": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
+ "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8="
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ },
+ "object-assign": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz",
+ "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo="
+ },
+ "readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw="
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ },
+ "through2": {
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
+ "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg="
+ },
+ "vinyl": {
+ "version": "0.4.6",
+ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
+ "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc="
+ }
+ }
+ },
+ "decompress-unzip": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-3.4.0.tgz",
+ "integrity": "sha1-YUdbQVIGa74/7hL51inRX+ZHjus="
+ },
+ "deep-extend": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz",
+ "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8="
+ },
+ "deep-is": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
+ },
+ "del": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
+ "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=",
+ "dev": true,
+ "dependencies": {
+ "globby": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
+ "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
+ "dev": true
+ }
+ }
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
+ "dev": true
+ },
+ "detect-conflict": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/detect-conflict/-/detect-conflict-1.0.1.tgz",
+ "integrity": "sha1-CIZXpmqWHAUBnbfEIwiDsca0F24="
+ },
+ "detect-newline": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-1.0.3.tgz",
+ "integrity": "sha1-6XsQA4d9cMCa8a81v63/Fo3kkg0="
+ },
+ "diff": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-2.2.3.tgz",
+ "integrity": "sha1-YOr9DSjukG5Oj/ClLBIpUhAzv5k="
+ },
+ "doctrine": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz",
+ "integrity": "sha1-xz2NKQnSIpHhoAejlYBNqLZl/mM=",
+ "dev": true
+ },
+ "dom-serializer": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
+ "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
+ "dependencies": {
+ "domelementtype": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
+ "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs="
+ }
+ }
+ },
+ "domelementtype": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
+ "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI="
+ },
+ "domhandler": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz",
+ "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg="
+ },
+ "domutils": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.4.3.tgz",
+ "integrity": "sha1-CGVRN5bGswYDGFDhdVFrr4C3Km8="
+ },
+ "download": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/download/-/download-4.4.3.tgz",
+ "integrity": "sha1-qlX9rTktldS2jowr4D4MKqIbqaw="
+ },
+ "duplexer2": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
+ "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME="
+ },
+ "duplexer3": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
+ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI="
+ },
+ "duplexify": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.0.tgz",
+ "integrity": "sha1-GqdzAC4VeEV+nZ1KULDMquvL1gQ=",
+ "dependencies": {
+ "end-of-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.0.0.tgz",
+ "integrity": "sha1-1FlucCc0qT5A6a+GQxnqvZn/Lw4="
+ },
+ "once": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
+ "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA="
+ }
+ }
+ },
+ "each-async": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/each-async/-/each-async-1.1.1.tgz",
+ "integrity": "sha1-3uUim98KtrogEqOV4bhpq/iBNHM="
+ },
+ "ecc-jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
+ "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
+ "dev": true,
+ "optional": true
+ },
+ "editions": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/editions/-/editions-1.3.3.tgz",
+ "integrity": "sha1-CQcQG92iD6w8vjNMJ8vQaI3Jmls="
+ },
+ "ejs": {
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.5.6.tgz",
+ "integrity": "sha1-R5Y2v6P+Ox3r1SCH8KyyBLTxnIg="
+ },
+ "end-of-stream": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz",
+ "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY="
+ },
+ "entities": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
+ "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA="
+ },
+ "error": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz",
+ "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI="
+ },
+ "error-ex": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz",
+ "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw="
+ },
+ "es5-ext": {
+ "version": "0.10.24",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.24.tgz",
+ "integrity": "sha1-pVh3yZJLwMjZvTwsvhdJWsFwmxQ=",
+ "dev": true
+ },
+ "es6-iterator": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz",
+ "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=",
+ "dev": true
+ },
+ "es6-map": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz",
+ "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=",
+ "dev": true
+ },
+ "es6-set": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
+ "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=",
+ "dev": true
+ },
+ "es6-symbol": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
+ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
+ "dev": true
+ },
+ "es6-weak-map": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz",
+ "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
+ "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="
+ },
+ "escodegen-wallaby": {
+ "version": "1.6.12",
+ "resolved": "https://registry.npmjs.org/escodegen-wallaby/-/escodegen-wallaby-1.6.12.tgz",
+ "integrity": "sha512-locntbd0gcCJ1X9kVzFluU4APZ2L9juqbIyUUZltb8T/KU168kN0xPVGVu65h/FxrVZobG1pT1tQAAY6zGy+3A=="
+ },
+ "escope": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz",
+ "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=",
+ "dev": true,
+ "dependencies": {
+ "estraverse": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
+ "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
+ "dev": true
+ }
+ }
+ },
+ "eslint": {
+ "version": "3.19.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-3.19.0.tgz",
+ "integrity": "sha1-yPxiAcf0DdCJQbh8CFdnOGpnmsw=",
+ "dev": true,
+ "dependencies": {
+ "estraverse": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
+ "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
+ "dev": true
+ },
+ "inquirer": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz",
+ "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=",
+ "dev": true
+ },
+ "run-async": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz",
+ "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=",
+ "dev": true
+ },
+ "rx-lite": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz",
+ "integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=",
+ "dev": true
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ }
+ }
+ },
+ "espree": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-3.4.3.tgz",
+ "integrity": "sha1-KRC1zNSc6JPC//+qtP2LOjG4I3Q=",
+ "dev": true,
+ "dependencies": {
+ "acorn": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.1.tgz",
+ "integrity": "sha512-vOk6uEMctu0vQrvuSqFdJyqj1Q0S5VTDL79qtjo+DhRr+1mmaD+tluFSCZqhvi/JUhXSzoZN2BhtstaPEeE8cw==",
+ "dev": true
+ }
+ }
+ },
+ "esprima": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
+ "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE="
+ },
+ "esquery": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz",
+ "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=",
+ "dev": true,
+ "dependencies": {
+ "estraverse": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
+ "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
+ "dev": true
+ }
+ }
+ },
+ "esrecurse": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz",
+ "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=",
+ "dev": true,
+ "dependencies": {
+ "estraverse": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
+ "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
+ "dev": true
+ }
+ }
+ },
+ "estraverse": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz",
+ "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q="
+ },
+ "esutils": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs="
+ },
+ "event-emitter": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
+ "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
+ "dev": true
+ },
+ "exit-hook": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz",
+ "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g="
+ },
+ "expand-brackets": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
+ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s="
+ },
+ "expand-range": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
+ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc="
+ },
+ "extend": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
+ "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ="
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8="
+ },
+ "external-editor": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-1.1.1.tgz",
+ "integrity": "sha1-Etew24UPf/fnCBuvQAVwAGDEYAs="
+ },
+ "extglob": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
+ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
+ "dependencies": {
+ "is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
+ }
+ }
+ },
+ "extsprintf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz",
+ "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=",
+ "dev": true
+ },
+ "fancy-log": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.0.tgz",
+ "integrity": "sha1-Rb4X0Cu5kX1gzP/UmVyZnmyMmUg="
+ },
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
+ },
+ "fd-slicer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
+ "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU="
+ },
+ "figures": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
+ "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4="
+ },
+ "file-entry-cache": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz",
+ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=",
+ "dev": true
+ },
+ "file-type": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz",
+ "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek="
+ },
+ "filename-regex": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
+ "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY="
+ },
+ "filename-reserved-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz",
+ "integrity": "sha1-5hz4BfDeHJhFZ9A4bcXfUO5a9+Q="
+ },
+ "filenamify": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-1.2.1.tgz",
+ "integrity": "sha1-qfL/0RxQO+0wABUCknI3jx8TZaU="
+ },
+ "fill-range": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz",
+ "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM="
+ },
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8="
+ },
+ "first-chunk-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz",
+ "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04="
+ },
+ "flat-cache": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz",
+ "integrity": "sha1-+oZxTnLCHbiGAXYezy9VXRq8a5Y=",
+ "dev": true
+ },
+ "for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
+ },
+ "for-own": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
+ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4="
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
+ "dev": true
+ },
+ "form-data": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz",
+ "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=",
+ "dev": true
+ },
+ "formatio": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.2.0.tgz",
+ "integrity": "sha1-87IWfZBoxGmKjVH092CjmlTYGOs="
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ },
+ "generate-function": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
+ "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=",
+ "dev": true
+ },
+ "generate-object-property": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
+ "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=",
+ "dev": true
+ },
+ "generator-license": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/generator-license/-/generator-license-4.0.0.tgz",
+ "integrity": "sha1-ApkfuRolMrGfQLNW5HPsk89Urzk=",
+ "dependencies": {
+ "github-username": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/github-username/-/github-username-2.1.0.tgz",
+ "integrity": "sha1-IA5aEEr0K6CKVAlscI1LbsL6JWs="
+ },
+ "yeoman-generator": {
+ "version": "0.23.4",
+ "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-0.23.4.tgz",
+ "integrity": "sha1-yHr3PVsOWpTYMxwRTHWZAfZ9+8E="
+ }
+ }
+ },
+ "generator-node": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/generator-node/-/generator-node-1.12.1.tgz",
+ "integrity": "sha1-t7Q6b8dVKqBs2FrthIpgH5TvWmU=",
+ "dependencies": {
+ "async": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz",
+ "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw=="
+ },
+ "cross-spawn": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz",
+ "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE="
+ },
+ "istextorbinary": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.1.0.tgz",
+ "integrity": "sha1-2+0qb1G+L3R1to+JRlgRFBt1iHQ="
+ },
+ "yeoman-generator": {
+ "version": "0.24.1",
+ "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-0.24.1.tgz",
+ "integrity": "sha1-HKdEKdnFyV2wsihZ7BgKJZm8H44=",
+ "dependencies": {
+ "github-username": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/github-username/-/github-username-2.1.0.tgz",
+ "integrity": "sha1-IA5aEEr0K6CKVAlscI1LbsL6JWs="
+ }
+ }
+ }
+ }
+ },
+ "generator-travis": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/generator-travis/-/generator-travis-1.5.2.tgz",
+ "integrity": "sha1-61F2SsFvNGKdWPVJ9ng4SN5+ey4="
+ },
+ "get-proxy": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-1.1.0.tgz",
+ "integrity": "sha1-iUhUSRvFkbDxR9euVw9cZ4tyVus="
+ },
+ "get-stdin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4="
+ },
+ "get-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
+ },
+ "get-value": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg="
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "dev": true,
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
+ }
+ }
+ },
+ "gh-got": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-2.4.0.tgz",
+ "integrity": "sha1-qlFBiRHKXk+SQ3EUzRIJODpKoBk="
+ },
+ "git-config": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/git-config/-/git-config-0.0.7.tgz",
+ "integrity": "sha1-qcij7wendsPXImE1bYtye2IgKyg="
+ },
+ "git-remote-origin-url": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz",
+ "integrity": "sha1-UoJlna4hBxRaERJhEq0yFuxfpl8="
+ },
+ "gitconfiglocal": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz",
+ "integrity": "sha1-QdBF84UaXqiPA/JMocYXgRRGS5s="
+ },
+ "github-username": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/github-username/-/github-username-3.0.0.tgz",
+ "integrity": "sha1-CnciGbMTB0NCnyRW0L3T21Xc57E=",
+ "dependencies": {
+ "gh-got": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-5.0.0.tgz",
+ "integrity": "sha1-7pW+NxBv2HSKlvjR20uuqJ4b+oo="
+ },
+ "got": {
+ "version": "6.7.1",
+ "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz",
+ "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA="
+ },
+ "timed-out": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
+ "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8="
+ },
+ "unzip-response": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz",
+ "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c="
+ }
+ }
+ },
+ "glob": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ=="
+ },
+ "glob-all": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/glob-all/-/glob-all-3.1.0.tgz",
+ "integrity": "sha1-iRPd+17hrHgSZWJBsD1SF8ZLAqs=",
+ "dev": true
+ },
+ "glob-base": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
+ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
+ "dependencies": {
+ "glob-parent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
+ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg="
+ },
+ "is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM="
+ }
+ }
+ },
+ "glob-parent": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4="
+ },
+ "glob-stream": {
+ "version": "5.3.5",
+ "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-5.3.5.tgz",
+ "integrity": "sha1-pVZlqajM3EGRWofHAeMtTgFvrSI=",
+ "dependencies": {
+ "glob": {
+ "version": "5.0.15",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
+ "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E="
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ },
+ "readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw="
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ },
+ "through2": {
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
+ "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg="
+ }
+ }
+ },
+ "globals": {
+ "version": "9.18.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
+ "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
+ "dev": true
+ },
+ "globby": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-4.1.0.tgz",
+ "integrity": "sha1-CA9UVJ7BuCpsYOYx/ILhIR2+lfg=",
+ "dependencies": {
+ "glob": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
+ "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI="
+ }
+ }
+ },
+ "glogg": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz",
+ "integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U="
+ },
+ "got": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/got/-/got-5.7.1.tgz",
+ "integrity": "sha1-X4FjWmHkplifGAVp6k44FoClHzU="
+ },
+ "graceful-fs": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
+ },
+ "graceful-readlink": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
+ "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU="
+ },
+ "grouped-queue": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/grouped-queue/-/grouped-queue-0.3.3.tgz",
+ "integrity": "sha1-wWfSpTGcWg4JZO9qJbfC34mWyFw="
+ },
+ "growl": {
+ "version": "1.9.2",
+ "resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz",
+ "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=",
+ "dev": true
+ },
+ "gruntfile-editor": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/gruntfile-editor/-/gruntfile-editor-1.2.1.tgz",
+ "integrity": "sha1-Nm/B+Ty/BFgT4USK7x2p8YKJ1es="
+ },
+ "gulp-decompress": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/gulp-decompress/-/gulp-decompress-1.2.0.tgz",
+ "integrity": "sha1-jutlpeAV+O2FMsr+KEVJYGJvDcc="
+ },
+ "gulp-rename": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.2.2.tgz",
+ "integrity": "sha1-OtRCh2PwXidk3sHGfYaNsnVoeBc="
+ },
+ "gulp-sourcemaps": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz",
+ "integrity": "sha1-uG/zSdgBzrVuHZ59x7vLS33uYAw="
+ },
+ "gulp-util": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz",
+ "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=",
+ "dependencies": {
+ "dateformat": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.0.0.tgz",
+ "integrity": "sha1-J0Pjq7XD/CRi5SfcpEXgTp9N7hc="
+ },
+ "object-assign": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
+ "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I="
+ },
+ "vinyl": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz",
+ "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4="
+ }
+ }
+ },
+ "gulplog": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz",
+ "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U="
+ },
+ "har-validator": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz",
+ "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=",
+ "dev": true,
+ "dependencies": {
+ "commander": {
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
+ "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==",
+ "dev": true
+ }
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE="
+ },
+ "has-flag": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
+ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE="
+ },
+ "has-gulplog": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz",
+ "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4="
+ },
+ "has-symbol-support-x": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.0.tgz",
+ "integrity": "sha512-F1NtLDtW9NyUrS3faUcI1yVFHCTXyzPb1jfrZBQi5NHxFPlXxZnFLFGzfA2DsdmgCxv2MZ0+bfcgC4EZTmk4SQ=="
+ },
+ "has-to-string-tag-x": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.0.tgz",
+ "integrity": "sha512-R3OdOP9j6AH5hS1yXeu9wAS+iKSZQx/CC6aMdN6WiaqPlBoA2S+47MtoMsZgKr2m0eAJ+73WWGX0RaFFE5XWKA=="
+ },
+ "hawk": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
+ "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
+ "dev": true
+ },
+ "hoek": {
+ "version": "2.16.3",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
+ "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
+ "dev": true
+ },
+ "hosted-git-info": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz",
+ "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg=="
+ },
+ "html-wiring": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/html-wiring/-/html-wiring-1.2.0.tgz",
+ "integrity": "sha1-xfkKd24KJyQdxt+QIsNxhtAnD54="
+ },
+ "htmlparser2": {
+ "version": "3.8.3",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz",
+ "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=",
+ "dependencies": {
+ "domutils": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
+ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8="
+ },
+ "entities": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz",
+ "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY="
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ },
+ "readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk="
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ }
+ }
+ },
+ "http-signature": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
+ "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
+ "dev": true
+ },
+ "iconv-lite": {
+ "version": "0.4.18",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz",
+ "integrity": "sha512-sr1ZQph3UwHTR0XftSbK85OvBbxe/abLGzEnPENCQwmHf7sck8Oyu4ob3LgBxWWxRoM+QszeUyl7jbqapu2TqA=="
+ },
+ "ignore": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.3.tgz",
+ "integrity": "sha1-QyNS5XrM2HqzEQ6C0/6g5HgSFW0=",
+ "dev": true
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "dev": true
+ },
+ "indent-string": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA="
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk="
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ },
+ "ini": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz",
+ "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4="
+ },
+ "iniparser": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/iniparser/-/iniparser-1.0.5.tgz",
+ "integrity": "sha1-g21r7+bfv87gvM8c+fKsxwJ/eD0="
+ },
+ "inquirer": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-1.2.3.tgz",
+ "integrity": "sha1-TexvMvN+97sLLtPx0aXD9UUHSRg="
+ },
+ "inquirer-npm-name": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/inquirer-npm-name/-/inquirer-npm-name-2.0.0.tgz",
+ "integrity": "sha1-87wVTbOURprXZ93twq1WJRfK9Ss="
+ },
+ "interpret": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz",
+ "integrity": "sha1-y8NcYu7uc/Gat7EKgBURQBr8D5A="
+ },
+ "invariant": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz",
+ "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=",
+ "dev": true
+ },
+ "is-absolute": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.1.7.tgz",
+ "integrity": "sha1-hHSREZ/MtftDYhfMc39/qtUPYD8="
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
+ },
+ "is-buffer": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz",
+ "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw="
+ },
+ "is-builtin-module": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
+ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74="
+ },
+ "is-bzip2": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-bzip2/-/is-bzip2-1.0.0.tgz",
+ "integrity": "sha1-XuWOqlounIDiFAe+3yOuWsCRs/w="
+ },
+ "is-dotfile": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
+ "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE="
+ },
+ "is-equal-shallow": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
+ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ="
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
+ },
+ "is-finite": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
+ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko="
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs="
+ },
+ "is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo="
+ },
+ "is-gzip": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-gzip/-/is-gzip-1.0.0.tgz",
+ "integrity": "sha1-bKiwe5nHeZgCWQDlVc7Y7YCHmoM="
+ },
+ "is-my-json-valid": {
+ "version": "2.16.0",
+ "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz",
+ "integrity": "sha1-8Hndm/2uZe4gOKrorLyGqxCeNpM=",
+ "dev": true
+ },
+ "is-natural-number": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-2.1.1.tgz",
+ "integrity": "sha1-fUxXKDd+84bD4ZSpkRv1fG3DNec="
+ },
+ "is-number": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
+ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8="
+ },
+ "is-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
+ "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8="
+ },
+ "is-object": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz",
+ "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA="
+ },
+ "is-path-cwd": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
+ "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=",
+ "dev": true
+ },
+ "is-path-in-cwd": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz",
+ "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=",
+ "dev": true
+ },
+ "is-path-inside": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz",
+ "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=",
+ "dev": true
+ },
+ "is-plain-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4="
+ },
+ "is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ }
+ }
+ },
+ "is-posix-bracket": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
+ "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q="
+ },
+ "is-primitive": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
+ "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU="
+ },
+ "is-promise": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
+ "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
+ },
+ "is-property": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
+ "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=",
+ "dev": true
+ },
+ "is-redirect": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
+ "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ="
+ },
+ "is-relative": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.1.3.tgz",
+ "integrity": "sha1-kF/uiuhvRbPsYUvDwVyGnfCHboI="
+ },
+ "is-resolvable": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz",
+ "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=",
+ "dev": true
+ },
+ "is-retry-allowed": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz",
+ "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ="
+ },
+ "is-scoped": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-scoped/-/is-scoped-1.0.0.tgz",
+ "integrity": "sha1-RJypgpnnEwOCViieyytUDcQ3yzA="
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
+ },
+ "is-tar": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-tar/-/is-tar-1.0.0.tgz",
+ "integrity": "sha1-L2suF5LB9bs2UZrKqdZcDSb+hT0="
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
+ "dev": true
+ },
+ "is-url": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.2.tgz",
+ "integrity": "sha1-SYkFpZO/R8wtnn9zg3K792lsfyY="
+ },
+ "is-utf8": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
+ },
+ "is-valid-glob": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-0.3.0.tgz",
+ "integrity": "sha1-1LVcafUYhvm2XHDWwmItN+KfSP4="
+ },
+ "is-zip": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-zip/-/is-zip-1.0.0.tgz",
+ "integrity": "sha1-R7Co/004p2QxzP2ZqOFaTIa6IyU="
+ },
+ "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="
+ },
+ "isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk="
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
+ "dev": true
+ },
+ "istextorbinary": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-1.0.2.tgz",
+ "integrity": "sha1-rOGTVNGpoBc+/rEITOD4ewrX3s8="
+ },
+ "isurl": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz",
+ "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w=="
+ },
+ "js-tokens": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
+ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "3.6.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz",
+ "integrity": "sha1-bl/mfYsgXOTSL60Ft3geja3MSzA=",
+ "dev": true
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
+ "dev": true,
+ "optional": true
+ },
+ "jschardet": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/jschardet/-/jschardet-1.5.0.tgz",
+ "integrity": "sha512-+Q8JsoEQbrdE+a/gg1F9XO92gcKXgpE5UACqr0sIubjDmBEkd+OOWPGzQeMrWSLxd73r4dHxBeRW7edHu5LmJQ=="
+ },
+ "json-schema": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
+ "dev": true
+ },
+ "json-stable-stringify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
+ "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8="
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
+ "dev": true
+ },
+ "json3": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz",
+ "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=",
+ "dev": true
+ },
+ "jsonify": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
+ "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM="
+ },
+ "jsonpointer": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz",
+ "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=",
+ "dev": true
+ },
+ "jsprim": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz",
+ "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=",
+ "dev": true,
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
+ }
+ }
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ="
+ },
+ "lazystream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz",
+ "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ="
+ },
+ "lcov-parse": {
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-0.0.10.tgz",
+ "integrity": "sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM=",
+ "dev": true
+ },
+ "levn": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4="
+ },
+ "load-json-file": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA="
+ },
+ "locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "dependencies": {
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
+ }
+ }
+ },
+ "lodash": {
+ "version": "4.17.4",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4="
+ },
+ "lodash._baseassign": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz",
+ "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=",
+ "dev": true
+ },
+ "lodash._basecopy": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
+ "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY="
+ },
+ "lodash._basecreate": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz",
+ "integrity": "sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE=",
+ "dev": true
+ },
+ "lodash._basetostring": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz",
+ "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U="
+ },
+ "lodash._basevalues": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz",
+ "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc="
+ },
+ "lodash._getnative": {
+ "version": "3.9.1",
+ "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
+ "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U="
+ },
+ "lodash._isiterateecall": {
+ "version": "3.0.9",
+ "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz",
+ "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw="
+ },
+ "lodash._reescape": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz",
+ "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo="
+ },
+ "lodash._reevaluate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz",
+ "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0="
+ },
+ "lodash._reinterpolate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
+ "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0="
+ },
+ "lodash._root": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz",
+ "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI="
+ },
+ "lodash.create": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz",
+ "integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=",
+ "dev": true
+ },
+ "lodash.escape": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz",
+ "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg="
+ },
+ "lodash.isarguments": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
+ "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo="
+ },
+ "lodash.isarray": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
+ "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U="
+ },
+ "lodash.isequal": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+ "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA="
+ },
+ "lodash.keys": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
+ "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo="
+ },
+ "lodash.restparam": {
+ "version": "3.6.1",
+ "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz",
+ "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU="
+ },
+ "lodash.template": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz",
+ "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8="
+ },
+ "lodash.templatesettings": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz",
+ "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU="
+ },
+ "lodash.zip": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.zip/-/lodash.zip-4.2.0.tgz",
+ "integrity": "sha1-7GZi5IlkCO1KtsVCo5kLcswIACA="
+ },
+ "log-driver": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.5.tgz",
+ "integrity": "sha1-euTsJXMC/XkNVXyxDJcQDYV7AFY=",
+ "dev": true
+ },
+ "log-symbols": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz",
+ "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg="
+ },
+ "lolex": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/lolex/-/lolex-1.6.0.tgz",
+ "integrity": "sha1-OpoCg0UqR9dDnnJzG54H1zhuSfY="
+ },
+ "loose-envify": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz",
+ "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=",
+ "dev": true
+ },
+ "loud-rejection": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
+ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8="
+ },
+ "lowercase-keys": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz",
+ "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY="
+ },
+ "lru-cache": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz",
+ "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew=="
+ },
+ "map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0="
+ },
+ "md5": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz",
+ "integrity": "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=",
+ "dev": true
+ },
+ "mem-fs": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/mem-fs/-/mem-fs-1.1.3.tgz",
+ "integrity": "sha1-uK6NLj/Lb10/kWXBLUVRoGXZicw="
+ },
+ "mem-fs-editor": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-2.3.0.tgz",
+ "integrity": "sha1-QqCuH1Xnb9A/CefHsVtjB731yxM="
+ },
+ "meow": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs="
+ },
+ "merge-and-concat": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/merge-and-concat/-/merge-and-concat-1.0.2.tgz",
+ "integrity": "sha1-8zEJhKcwMTE+qwDW42DaVqc99YY="
+ },
+ "merge-stream": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz",
+ "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE="
+ },
+ "micromatch": {
+ "version": "2.3.11",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
+ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
+ "dependencies": {
+ "is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM="
+ }
+ }
+ },
+ "mime-db": {
+ "version": "1.27.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz",
+ "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=",
+ "dev": true
+ },
+ "mime-types": {
+ "version": "2.1.15",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz",
+ "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=",
+ "dev": true
+ },
+ "mimic-fn": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz",
+ "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg="
+ },
+ "mimic-response": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.0.tgz",
+ "integrity": "sha1-3z02Uqc/3ta5sLJBRub9BSNTRY4="
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA=="
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dependencies": {
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
+ }
+ }
+ },
+ "mocha": {
+ "version": "3.4.2",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-3.4.2.tgz",
+ "integrity": "sha1-0O9NMyEm2/GNDWQMmzgt1IvpdZQ=",
+ "dev": true,
+ "dependencies": {
+ "commander": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
+ "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
+ "dev": true
+ },
+ "debug": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.0.tgz",
+ "integrity": "sha1-vFlryr52F/Edn6FTYe3tVgi4SZs=",
+ "dev": true
+ },
+ "diff": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.2.0.tgz",
+ "integrity": "sha1-yc45Okt8vQsFinJck98pkCeGj/k=",
+ "dev": true
+ },
+ "glob": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
+ "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "ms": {
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
+ "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz",
+ "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=",
+ "dev": true
+ }
+ }
+ },
+ "mocha-eslint": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/mocha-eslint/-/mocha-eslint-3.0.1.tgz",
+ "integrity": "sha1-rnKrxWHLKJ0ubBQ3iO4YKsoaBNs=",
+ "dev": true
+ },
+ "mocha-junit-reporter": {
+ "version": "1.13.0",
+ "resolved": "https://registry.npmjs.org/mocha-junit-reporter/-/mocha-junit-reporter-1.13.0.tgz",
+ "integrity": "sha1-Aw24xTCyRGZyU7A4YdTNM29+Vsg=",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "multimatch": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz",
+ "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis="
+ },
+ "multipipe": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz",
+ "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=",
+ "dependencies": {
+ "duplexer2": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz",
+ "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds="
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ },
+ "readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk="
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ }
+ }
+ },
+ "mute-stream": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.6.tgz",
+ "integrity": "sha1-SJYrGeFp/R38JAs/HnMXYnu8R9s="
+ },
+ "native-promise-only": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/native-promise-only/-/native-promise-only-0.8.1.tgz",
+ "integrity": "sha1-IKMYwwy0X3H+et+/eyHJnBRy7xE="
+ },
+ "natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
+ "dev": true
+ },
+ "node-status-codes": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/node-status-codes/-/node-status-codes-1.0.0.tgz",
+ "integrity": "sha1-WuVUHQJGRdMqWPzdyc7s6nrjrC8="
+ },
+ "nopt": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
+ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k="
+ },
+ "normalize-package-data": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
+ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw=="
+ },
+ "normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk="
+ },
+ "npm-name": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/npm-name/-/npm-name-3.1.0.tgz",
+ "integrity": "sha1-eXia+sUq4zXcOlqn9B9Z0bd8dW8=",
+ "dependencies": {
+ "got": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz",
+ "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw=="
+ },
+ "timed-out": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
+ "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8="
+ }
+ }
+ },
+ "nth-check": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz",
+ "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ="
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
+ },
+ "nyc": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.0.3.tgz",
+ "integrity": "sha1-DCi8ZpqFFiFwm/eghQMDS+44ErY=",
+ "dev": true,
+ "dependencies": {
+ "align-text": {
+ "version": "0.1.4",
+ "bundled": true,
+ "dev": true
+ },
+ "amdefine": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "bundled": true,
+ "dev": true
+ },
+ "append-transform": {
+ "version": "0.4.0",
+ "bundled": true,
+ "dev": true
+ },
+ "archy": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "arr-diff": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "arr-flatten": {
+ "version": "1.0.3",
+ "bundled": true,
+ "dev": true
+ },
+ "array-unique": {
+ "version": "0.2.1",
+ "bundled": true,
+ "dev": true
+ },
+ "arrify": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "async": {
+ "version": "1.5.2",
+ "bundled": true,
+ "dev": true
+ },
+ "babel-code-frame": {
+ "version": "6.22.0",
+ "bundled": true,
+ "dev": true
+ },
+ "babel-generator": {
+ "version": "6.25.0",
+ "bundled": true,
+ "dev": true
+ },
+ "babel-messages": {
+ "version": "6.23.0",
+ "bundled": true,
+ "dev": true
+ },
+ "babel-runtime": {
+ "version": "6.23.0",
+ "bundled": true,
+ "dev": true
+ },
+ "babel-template": {
+ "version": "6.25.0",
+ "bundled": true,
+ "dev": true
+ },
+ "babel-traverse": {
+ "version": "6.25.0",
+ "bundled": true,
+ "dev": true
+ },
+ "babel-types": {
+ "version": "6.25.0",
+ "bundled": true,
+ "dev": true
+ },
+ "babylon": {
+ "version": "6.17.4",
+ "bundled": true,
+ "dev": true
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "1.1.8",
+ "bundled": true,
+ "dev": true
+ },
+ "braces": {
+ "version": "1.8.5",
+ "bundled": true,
+ "dev": true
+ },
+ "builtin-modules": {
+ "version": "1.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "caching-transform": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "camelcase": {
+ "version": "1.2.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "center-align": {
+ "version": "0.1.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "bundled": true,
+ "dev": true
+ },
+ "cliui": {
+ "version": "2.1.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "dependencies": {
+ "wordwrap": {
+ "version": "0.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "commondir": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "convert-source-map": {
+ "version": "1.5.0",
+ "bundled": true,
+ "dev": true
+ },
+ "core-js": {
+ "version": "2.4.1",
+ "bundled": true,
+ "dev": true
+ },
+ "cross-spawn": {
+ "version": "4.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "debug": {
+ "version": "2.6.8",
+ "bundled": true,
+ "dev": true
+ },
+ "debug-log": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "bundled": true,
+ "dev": true
+ },
+ "default-require-extensions": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "detect-indent": {
+ "version": "4.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "error-ex": {
+ "version": "1.3.1",
+ "bundled": true,
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "bundled": true,
+ "dev": true
+ },
+ "esutils": {
+ "version": "2.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "execa": {
+ "version": "0.5.1",
+ "bundled": true,
+ "dev": true
+ },
+ "expand-brackets": {
+ "version": "0.1.5",
+ "bundled": true,
+ "dev": true
+ },
+ "expand-range": {
+ "version": "1.8.2",
+ "bundled": true,
+ "dev": true
+ },
+ "extglob": {
+ "version": "0.3.2",
+ "bundled": true,
+ "dev": true
+ },
+ "filename-regex": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "fill-range": {
+ "version": "2.2.3",
+ "bundled": true,
+ "dev": true
+ },
+ "find-cache-dir": {
+ "version": "0.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "find-up": {
+ "version": "2.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "for-in": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "for-own": {
+ "version": "0.1.5",
+ "bundled": true,
+ "dev": true
+ },
+ "foreground-child": {
+ "version": "1.5.6",
+ "bundled": true,
+ "dev": true
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "get-caller-file": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "get-stream": {
+ "version": "2.3.1",
+ "bundled": true,
+ "dev": true
+ },
+ "glob": {
+ "version": "7.1.2",
+ "bundled": true,
+ "dev": true
+ },
+ "glob-base": {
+ "version": "0.3.0",
+ "bundled": true,
+ "dev": true
+ },
+ "glob-parent": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "globals": {
+ "version": "9.18.0",
+ "bundled": true,
+ "dev": true
+ },
+ "graceful-fs": {
+ "version": "4.1.11",
+ "bundled": true,
+ "dev": true
+ },
+ "handlebars": {
+ "version": "4.0.10",
+ "bundled": true,
+ "dev": true,
+ "dependencies": {
+ "source-map": {
+ "version": "0.4.4",
+ "bundled": true,
+ "dev": true
+ }
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "hosted-git-info": {
+ "version": "2.4.2",
+ "bundled": true,
+ "dev": true
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "bundled": true,
+ "dev": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "bundled": true,
+ "dev": true
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "bundled": true,
+ "dev": true
+ },
+ "invariant": {
+ "version": "2.2.2",
+ "bundled": true,
+ "dev": true
+ },
+ "invert-kv": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "bundled": true,
+ "dev": true
+ },
+ "is-buffer": {
+ "version": "1.1.5",
+ "bundled": true,
+ "dev": true
+ },
+ "is-builtin-module": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "is-dotfile": {
+ "version": "1.0.3",
+ "bundled": true,
+ "dev": true
+ },
+ "is-equal-shallow": {
+ "version": "0.1.3",
+ "bundled": true,
+ "dev": true
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "is-extglob": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "is-finite": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "is-number": {
+ "version": "2.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "is-posix-bracket": {
+ "version": "0.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "is-primitive": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "is-utf8": {
+ "version": "0.2.1",
+ "bundled": true,
+ "dev": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "isobject": {
+ "version": "2.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "istanbul-lib-coverage": {
+ "version": "1.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "istanbul-lib-hook": {
+ "version": "1.0.7",
+ "bundled": true,
+ "dev": true
+ },
+ "istanbul-lib-instrument": {
+ "version": "1.7.3",
+ "bundled": true,
+ "dev": true
+ },
+ "istanbul-lib-report": {
+ "version": "1.1.1",
+ "bundled": true,
+ "dev": true,
+ "dependencies": {
+ "supports-color": {
+ "version": "3.2.3",
+ "bundled": true,
+ "dev": true
+ }
+ }
+ },
+ "istanbul-lib-source-maps": {
+ "version": "1.2.1",
+ "bundled": true,
+ "dev": true
+ },
+ "istanbul-reports": {
+ "version": "1.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "js-tokens": {
+ "version": "3.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "jsesc": {
+ "version": "1.3.0",
+ "bundled": true,
+ "dev": true
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "bundled": true,
+ "dev": true
+ },
+ "lazy-cache": {
+ "version": "1.0.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "lcid": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "load-json-file": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "locate-path": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true,
+ "dependencies": {
+ "path-exists": {
+ "version": "3.0.0",
+ "bundled": true,
+ "dev": true
+ }
+ }
+ },
+ "lodash": {
+ "version": "4.17.4",
+ "bundled": true,
+ "dev": true
+ },
+ "longest": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "loose-envify": {
+ "version": "1.3.1",
+ "bundled": true,
+ "dev": true
+ },
+ "lru-cache": {
+ "version": "4.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "md5-hex": {
+ "version": "1.3.0",
+ "bundled": true,
+ "dev": true
+ },
+ "md5-o-matic": {
+ "version": "0.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "mem": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "merge-source-map": {
+ "version": "1.0.4",
+ "bundled": true,
+ "dev": true
+ },
+ "micromatch": {
+ "version": "2.3.11",
+ "bundled": true,
+ "dev": true
+ },
+ "mimic-fn": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "bundled": true,
+ "dev": true
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "bundled": true,
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "bundled": true,
+ "dev": true
+ },
+ "ms": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "normalize-package-data": {
+ "version": "2.3.8",
+ "bundled": true,
+ "dev": true
+ },
+ "normalize-path": {
+ "version": "2.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "npm-run-path": {
+ "version": "2.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "object.omit": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "bundled": true,
+ "dev": true
+ },
+ "optimist": {
+ "version": "0.6.1",
+ "bundled": true,
+ "dev": true
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "os-locale": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "p-finally": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "p-limit": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "p-locate": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "parse-glob": {
+ "version": "3.0.4",
+ "bundled": true,
+ "dev": true
+ },
+ "parse-json": {
+ "version": "2.2.0",
+ "bundled": true,
+ "dev": true
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.5",
+ "bundled": true,
+ "dev": true
+ },
+ "path-type": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "pify": {
+ "version": "2.3.0",
+ "bundled": true,
+ "dev": true
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "bundled": true,
+ "dev": true
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "pkg-dir": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "dependencies": {
+ "find-up": {
+ "version": "1.1.2",
+ "bundled": true,
+ "dev": true
+ }
+ }
+ },
+ "preserve": {
+ "version": "0.2.0",
+ "bundled": true,
+ "dev": true
+ },
+ "pseudomap": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "randomatic": {
+ "version": "1.1.7",
+ "bundled": true,
+ "dev": true,
+ "dependencies": {
+ "is-number": {
+ "version": "3.0.0",
+ "bundled": true,
+ "dev": true,
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "bundled": true,
+ "dev": true
+ }
+ }
+ },
+ "kind-of": {
+ "version": "4.0.0",
+ "bundled": true,
+ "dev": true
+ }
+ }
+ },
+ "read-pkg": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "read-pkg-up": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true,
+ "dependencies": {
+ "find-up": {
+ "version": "1.1.2",
+ "bundled": true,
+ "dev": true
+ }
+ }
+ },
+ "regenerator-runtime": {
+ "version": "0.10.5",
+ "bundled": true,
+ "dev": true
+ },
+ "regex-cache": {
+ "version": "0.4.3",
+ "bundled": true,
+ "dev": true
+ },
+ "remove-trailing-separator": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "repeat-element": {
+ "version": "1.1.2",
+ "bundled": true,
+ "dev": true
+ },
+ "repeat-string": {
+ "version": "1.6.1",
+ "bundled": true,
+ "dev": true
+ },
+ "repeating": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "require-directory": {
+ "version": "2.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "require-main-filename": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "resolve-from": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "right-align": {
+ "version": "0.1.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "rimraf": {
+ "version": "2.6.1",
+ "bundled": true,
+ "dev": true
+ },
+ "semver": {
+ "version": "5.3.0",
+ "bundled": true,
+ "dev": true
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "slide": {
+ "version": "1.1.6",
+ "bundled": true,
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.5.6",
+ "bundled": true,
+ "dev": true
+ },
+ "spawn-wrap": {
+ "version": "1.3.7",
+ "bundled": true,
+ "dev": true
+ },
+ "spdx-correct": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "spdx-expression-parse": {
+ "version": "1.0.4",
+ "bundled": true,
+ "dev": true
+ },
+ "spdx-license-ids": {
+ "version": "1.2.2",
+ "bundled": true,
+ "dev": true
+ },
+ "string-width": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true,
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ }
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "strip-bom": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "strip-eof": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "test-exclude": {
+ "version": "4.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "to-fast-properties": {
+ "version": "1.0.3",
+ "bundled": true,
+ "dev": true
+ },
+ "trim-right": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "uglify-js": {
+ "version": "2.8.29",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "dependencies": {
+ "yargs": {
+ "version": "3.10.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "uglify-to-browserify": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "validate-npm-package-license": {
+ "version": "3.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "which": {
+ "version": "1.2.14",
+ "bundled": true,
+ "dev": true
+ },
+ "which-module": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "window-size": {
+ "version": "0.1.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "wordwrap": {
+ "version": "0.0.3",
+ "bundled": true,
+ "dev": true
+ },
+ "wrap-ansi": {
+ "version": "2.1.0",
+ "bundled": true,
+ "dev": true,
+ "dependencies": {
+ "string-width": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ }
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "write-file-atomic": {
+ "version": "1.3.4",
+ "bundled": true,
+ "dev": true
+ },
+ "y18n": {
+ "version": "3.2.1",
+ "bundled": true,
+ "dev": true
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "bundled": true,
+ "dev": true
+ },
+ "yargs": {
+ "version": "8.0.2",
+ "bundled": true,
+ "dev": true,
+ "dependencies": {
+ "camelcase": {
+ "version": "4.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "cliui": {
+ "version": "3.2.0",
+ "bundled": true,
+ "dev": true,
+ "dependencies": {
+ "string-width": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ }
+ }
+ },
+ "load-json-file": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "path-type": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "read-pkg": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "read-pkg-up": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "yargs-parser": {
+ "version": "7.0.0",
+ "bundled": true,
+ "dev": true
+ }
+ }
+ },
+ "yargs-parser": {
+ "version": "5.0.0",
+ "bundled": true,
+ "dev": true,
+ "dependencies": {
+ "camelcase": {
+ "version": "3.0.0",
+ "bundled": true,
+ "dev": true
+ }
+ }
+ }
+ }
+ },
+ "oauth-sign": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
+ "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=",
+ "dev": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ },
+ "object.omit": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
+ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo="
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E="
+ },
+ "onetime": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
+ "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k="
+ },
+ "optionator": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
+ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q="
+ },
+ "ordered-read-streams": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz",
+ "integrity": "sha1-cTfmmzKYuzQiR6G77jiByA4v14s="
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
+ },
+ "os-shim": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz",
+ "integrity": "sha1-a2LDeRz3kJ6jXtRuF2WLtBfLORc="
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
+ },
+ "p-cancelable": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz",
+ "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw=="
+ },
+ "p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4="
+ },
+ "p-limit": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz",
+ "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw="
+ },
+ "p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM="
+ },
+ "p-timeout": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.0.tgz",
+ "integrity": "sha1-mCD5lDTFgXhotPNICe5SkWYNW2w="
+ },
+ "parse-author": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/parse-author/-/parse-author-1.0.0.tgz",
+ "integrity": "sha1-XsFZAGKXe9nLOWLpFzuHWGQ39d8="
+ },
+ "parse-glob": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
+ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
+ "dependencies": {
+ "is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM="
+ }
+ }
+ },
+ "parse-json": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck="
+ },
+ "path-dirname": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
+ "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA="
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s="
+ },
+ "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="
+ },
+ "path-is-inside": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
+ "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz",
+ "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME="
+ },
+ "path-to-regexp": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz",
+ "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=",
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ }
+ }
+ },
+ "path-type": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE="
+ },
+ "pend": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA="
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o="
+ },
+ "pluralize": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz",
+ "integrity": "sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=",
+ "dev": true
+ },
+ "prelude-ls": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="
+ },
+ "prepend-http": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
+ "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw="
+ },
+ "preserve": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
+ "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks="
+ },
+ "pretty-bytes": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-3.0.1.tgz",
+ "integrity": "sha1-J9AAjXeAY6C0gRuzXHnxvV1fvM8="
+ },
+ "process-nextick-args": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+ "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M="
+ },
+ "progress": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
+ "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=",
+ "dev": true
+ },
+ "pseudomap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
+ },
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
+ "dev": true
+ },
+ "qs": {
+ "version": "6.3.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz",
+ "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=",
+ "dev": true
+ },
+ "ramda": {
+ "version": "0.23.0",
+ "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.23.0.tgz",
+ "integrity": "sha1-zNE//3NJepOXTj6GMnv9h71ujis="
+ },
+ "randomatic": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz",
+ "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==",
+ "dependencies": {
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ="
+ }
+ }
+ },
+ "kind-of": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc="
+ }
+ }
+ },
+ "rc": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz",
+ "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU="
+ },
+ "read-all-stream": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz",
+ "integrity": "sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po="
+ },
+ "read-chunk": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-1.0.1.tgz",
+ "integrity": "sha1-X2jKswfmY/GZk1J9m1icrORmEZQ="
+ },
+ "read-pkg": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg="
+ },
+ "read-pkg-up": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI="
+ },
+ "readable-stream": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
+ "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ=="
+ },
+ "readline2": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz",
+ "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=",
+ "dev": true,
+ "dependencies": {
+ "mute-stream": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz",
+ "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=",
+ "dev": true
+ }
+ }
+ },
+ "rechoir": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
+ "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q="
+ },
+ "redent": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
+ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94="
+ },
+ "regenerator-runtime": {
+ "version": "0.10.5",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",
+ "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=",
+ "dev": true
+ },
+ "regex-cache": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz",
+ "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU="
+ },
+ "registry-url": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz",
+ "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI="
+ },
+ "remove-trailing-separator": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz",
+ "integrity": "sha1-abBi2XhyetFNxrVrpKt3L9jXBRE="
+ },
+ "repeat-element": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
+ "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo="
+ },
+ "repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
+ },
+ "repeating": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo="
+ },
+ "replace-ext": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz",
+ "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ="
+ },
+ "replaceall": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/replaceall/-/replaceall-0.1.6.tgz",
+ "integrity": "sha1-gdgax663LX9cSUKt8ml6MiBojY4=",
+ "dev": true
+ },
+ "request": {
+ "version": "2.79.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz",
+ "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=",
+ "dev": true,
+ "dependencies": {
+ "uuid": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz",
+ "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==",
+ "dev": true
+ }
+ }
+ },
+ "require-uncached": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz",
+ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=",
+ "dev": true
+ },
+ "resolve": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz",
+ "integrity": "sha1-ZVkHw0aahoDcLeOidaj91paR8OU="
+ },
+ "resolve-from": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz",
+ "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=",
+ "dev": true
+ },
+ "restore-cursor": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
+ "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE="
+ },
+ "rimraf": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz",
+ "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0="
+ },
+ "run-async": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
+ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA="
+ },
+ "rx": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz",
+ "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I="
+ },
+ "rx-lite": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz",
+ "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ="
+ },
+ "rx-lite-aggregates": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz",
+ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74="
+ },
+ "safe-buffer": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
+ "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
+ },
+ "samsam": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.2.1.tgz",
+ "integrity": "sha1-7dOQk6MYQ3DLhZJDsr3yVefY6mc="
+ },
+ "save-dev": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/save-dev/-/save-dev-2.0.0.tgz",
+ "integrity": "sha1-T4wGcD1io/dlcVliNwBbEdVt9Q4="
+ },
+ "scoped-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/scoped-regex/-/scoped-regex-1.0.0.tgz",
+ "integrity": "sha1-o0a7Gs1CB65wvXwMfKnlZra63bg="
+ },
+ "seek-bzip": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz",
+ "integrity": "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w="
+ },
+ "semver": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
+ "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8="
+ },
+ "set-immediate-shim": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
+ "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E="
+ },
+ "set-value": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
+ "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE="
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo="
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
+ },
+ "shelljs": {
+ "version": "0.7.8",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz",
+ "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM="
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
+ },
+ "sinon": {
+ "version": "1.17.7",
+ "resolved": "https://registry.npmjs.org/sinon/-/sinon-1.17.7.tgz",
+ "integrity": "sha1-RUKk9JugxFwF6y6d2dID4rjv4L8=",
+ "dev": true,
+ "dependencies": {
+ "formatio": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.1.1.tgz",
+ "integrity": "sha1-XtPM1jZVEJc4NGXZlhmRAOhhYek=",
+ "dev": true
+ },
+ "lolex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/lolex/-/lolex-1.3.2.tgz",
+ "integrity": "sha1-fD2mL/yzDw9agKJWbKJORdigHzE=",
+ "dev": true
+ },
+ "samsam": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.1.2.tgz",
+ "integrity": "sha1-vsEf3IOp/aBjQBIQ5AF2wwJNFWc=",
+ "dev": true
+ }
+ }
+ },
+ "slice-ansi": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz",
+ "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=",
+ "dev": true
+ },
+ "sntp": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
+ "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
+ "dev": true
+ },
+ "sort-asc": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/sort-asc/-/sort-asc-0.2.0.tgz",
+ "integrity": "sha1-AKSelHvCXVEL/eLLuN/9qfUOsvw="
+ },
+ "sort-desc": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/sort-desc/-/sort-desc-0.2.0.tgz",
+ "integrity": "sha1-KAwb2vxld4h87brR7S5BwDeXZkY="
+ },
+ "sort-object": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/sort-object/-/sort-object-3.0.2.tgz",
+ "integrity": "sha1-2vK2k/YR990qIbgrgF5OrCMPdV4="
+ },
+ "source-map": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz",
+ "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=",
+ "optional": true
+ },
+ "sparkles": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz",
+ "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM="
+ },
+ "spawn-sync": {
+ "version": "1.0.15",
+ "resolved": "https://registry.npmjs.org/spawn-sync/-/spawn-sync-1.0.15.tgz",
+ "integrity": "sha1-sAeZVX63+wyDdsKdROih6mfldHY="
+ },
+ "spdx-correct": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
+ "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A="
+ },
+ "spdx-expression-parse": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz",
+ "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw="
+ },
+ "spdx-license-ids": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz",
+ "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc="
+ },
+ "sprintf-js": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.1.tgz",
+ "integrity": "sha1-Nr54Mgr+WAH2zqPueLblqrlA6gw="
+ },
+ "sshpk": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz",
+ "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=",
+ "dev": true,
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
+ }
+ }
+ },
+ "stat-mode": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.2.tgz",
+ "integrity": "sha1-5sgLYjEj19gM8TLOU480YokHJQI="
+ },
+ "stream-combiner2": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz",
+ "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4="
+ },
+ "stream-shift": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
+ "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI="
+ },
+ "string_decoder": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
+ "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ=="
+ },
+ "string-template": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz",
+ "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0="
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M="
+ },
+ "stringstream": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
+ "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8="
+ },
+ "strip-bom": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4="
+ },
+ "strip-bom-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz",
+ "integrity": "sha1-5xRDmFd9Uaa+0PoZlPoF9D/ZiO4="
+ },
+ "strip-dirs": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-1.1.1.tgz",
+ "integrity": "sha1-lgu9EoeETzl1pFWKoQOoJV4kVqA="
+ },
+ "strip-indent": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
+ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI="
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
+ },
+ "strip-outer": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.0.tgz",
+ "integrity": "sha1-qsC6YNLpDF1PJ1/Yhp/ZotMQ/7g="
+ },
+ "sum-up": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sum-up/-/sum-up-1.0.3.tgz",
+ "integrity": "sha1-HGYfZnBX9jvLeHWqFDi8FiUlFW4="
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
+ },
+ "table": {
+ "version": "3.8.3",
+ "resolved": "https://registry.npmjs.org/table/-/table-3.8.3.tgz",
+ "integrity": "sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true
+ }
+ }
+ },
+ "tar-stream": {
+ "version": "1.5.4",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.4.tgz",
+ "integrity": "sha1-NlSc8E7RrumyowwBQyUiONr5QBY="
+ },
+ "text-encoding": {
+ "version": "0.6.4",
+ "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz",
+ "integrity": "sha1-45mpgiV6J22uQou5KEXLcb3CbRk="
+ },
+ "text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ="
+ },
+ "textextensions": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-1.0.2.tgz",
+ "integrity": "sha1-ZUhjk+4fK7A5pgy7oFsLaL2VAdI="
+ },
+ "through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
+ },
+ "through2": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
+ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4="
+ },
+ "through2-filter": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz",
+ "integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw="
+ },
+ "time-stamp": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz",
+ "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM="
+ },
+ "timed-out": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-3.1.3.tgz",
+ "integrity": "sha1-lYYL/MXHbCd/j4Mm/Q9bLiDrohc="
+ },
+ "tmp": {
+ "version": "0.0.29",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.29.tgz",
+ "integrity": "sha1-8lEl/w3Z2jzLDC3Tce4SiLuRKMA="
+ },
+ "to-absolute-glob": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz",
+ "integrity": "sha1-HN+kcqnvUMI57maZm2YsoOs5k38="
+ },
+ "to-fast-properties": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
+ "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
+ "dev": true
+ },
+ "to-object-path": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
+ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68="
+ },
+ "tough-cookie": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz",
+ "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=",
+ "dev": true
+ },
+ "traverse": {
+ "version": "0.6.6",
+ "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz",
+ "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc="
+ },
+ "travis-config-keys": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/travis-config-keys/-/travis-config-keys-1.0.3.tgz",
+ "integrity": "sha1-vHsctOYMw3/oS8tLgCAERusuBw0="
+ },
+ "trim-newlines": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
+ "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM="
+ },
+ "trim-repeated": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz",
+ "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE="
+ },
+ "tryit": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz",
+ "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=",
+ "dev": true
+ },
+ "tunnel-agent": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
+ "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us="
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+ "dev": true,
+ "optional": true
+ },
+ "type-check": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I="
+ },
+ "type-detect": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.3.tgz",
+ "integrity": "sha1-Dj8mcLRAmbC0bChNE2p+9Jx0wuo="
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
+ },
+ "typewise": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/typewise/-/typewise-1.0.3.tgz",
+ "integrity": "sha1-EGeTZUCvl5N8xdz5kiSG6fooRlE="
+ },
+ "typewise-core": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/typewise-core/-/typewise-core-1.2.0.tgz",
+ "integrity": "sha1-l+uRgFx/VdL5QXSPpQ0xXZke8ZU="
+ },
+ "underscore.string": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.4.tgz",
+ "integrity": "sha1-LCo/n4PmR2L9xF5s6sZRQoZCE9s="
+ },
+ "union-value": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/union-value/-/union-value-0.2.4.tgz",
+ "integrity": "sha1-c3UVJ4ZnkFfns3qmdug0aPwCdPA="
+ },
+ "unique-stream": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.2.1.tgz",
+ "integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k="
+ },
+ "untildify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/untildify/-/untildify-2.1.0.tgz",
+ "integrity": "sha1-F+soB5h/dpUunASF/DEdBqgmouA="
+ },
+ "unzip-response": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz",
+ "integrity": "sha1-uYTwh3/AqJwsdzzB73tbIytbBv4="
+ },
+ "url-parse-lax": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
+ "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM="
+ },
+ "url-to-options": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz",
+ "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k="
+ },
+ "user-home": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz",
+ "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8="
+ },
+ "util": {
+ "version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
+ "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
+ "dev": true,
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
+ "dev": true
+ }
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "uuid": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz",
+ "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho="
+ },
+ "vali-date": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz",
+ "integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY="
+ },
+ "validate-npm-package-license": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
+ "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w="
+ },
+ "verror": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz",
+ "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=",
+ "dev": true
+ },
+ "vinyl": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz",
+ "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ="
+ },
+ "vinyl-assign": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/vinyl-assign/-/vinyl-assign-1.2.1.tgz",
+ "integrity": "sha1-TRmIkbVRWRHXcajNnFSApGoHSkU="
+ },
+ "vinyl-file": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-2.0.0.tgz",
+ "integrity": "sha1-p+v1/779obfRjRQPyweyI++2dRo=",
+ "dependencies": {
+ "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="
+ },
+ "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="
+ }
+ }
+ },
+ "vinyl-fs": {
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-2.4.4.tgz",
+ "integrity": "sha1-vm/zJwy1Xf19MGNkDegfJddTIjk="
+ },
+ "ware": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/ware/-/ware-1.3.0.tgz",
+ "integrity": "sha1-0bFPOdLiy0q4xAmPdW/ksWTkc9Q="
+ },
+ "which": {
+ "version": "1.2.14",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz",
+ "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU="
+ },
+ "wordwrap": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus="
+ },
+ "wrap-fn": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/wrap-fn/-/wrap-fn-0.1.5.tgz",
+ "integrity": "sha1-8htuQQFv9KfjFyDbxjoJAWvfmEU="
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ },
+ "write": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz",
+ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=",
+ "dev": true
+ },
+ "xdg-basedir": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-2.0.0.tgz",
+ "integrity": "sha1-7byQPMOF/ARSPZZqM1UEtVBNG9I="
+ },
+ "xml": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz",
+ "integrity": "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=",
+ "dev": true
+ },
+ "xtend": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
+ },
+ "yamljs": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/yamljs/-/yamljs-0.3.0.tgz",
+ "integrity": "sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ=="
+ },
+ "yargs": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-1.2.6.tgz",
+ "integrity": "sha1-nHtKgv1dWVsr8Xq23MQxNUMv40s=",
+ "dev": true,
+ "dependencies": {
+ "minimist": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.1.0.tgz",
+ "integrity": "sha1-md9lelJXTCHJBXSX33QnkLK0wN4=",
+ "dev": true
+ }
+ }
+ },
+ "yauzl": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.8.0.tgz",
+ "integrity": "sha1-eUUK/yKyqcWkHvVOAtuQfM+/nuI="
+ },
+ "yeoman-assert": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/yeoman-assert/-/yeoman-assert-2.2.3.tgz",
+ "integrity": "sha1-pWgqg2MsUKwO6EFzpaEP1vMgZHQ="
+ },
+ "yeoman-environment": {
+ "version": "1.6.6",
+ "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-1.6.6.tgz",
+ "integrity": "sha1-zYX6Z9FWBg5EDXgH1+988NLR1nE="
+ },
+ "yeoman-generator": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-1.1.1.tgz",
+ "integrity": "sha1-QMK09s374F4ZUv3XKTPw2JJdvfU=",
+ "dependencies": {
+ "async": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz",
+ "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw=="
+ },
+ "clone": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz",
+ "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs="
+ },
+ "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="
+ },
+ "cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk="
+ },
+ "dargs": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/dargs/-/dargs-5.1.0.tgz",
+ "integrity": "sha1-7H6lDHhWTNNsnV7Bj2Yyn63ieCk="
+ },
+ "dateformat": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.0.0.tgz",
+ "integrity": "sha1-J0Pjq7XD/CRi5SfcpEXgTp9N7hc="
+ },
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c="
+ },
+ "globby": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
+ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw="
+ },
+ "istextorbinary": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.1.0.tgz",
+ "integrity": "sha1-2+0qb1G+L3R1to+JRlgRFBt1iHQ="
+ },
+ "load-json-file": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg="
+ },
+ "mem-fs-editor": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-3.0.2.tgz",
+ "integrity": "sha1-3Qpuryu4prN3QAZ6pUnrUwEFr58="
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
+ },
+ "path-type": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
+ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM="
+ },
+ "pretty-bytes": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz",
+ "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk="
+ },
+ "read-chunk": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-2.0.0.tgz",
+ "integrity": "sha1-Mkbod4KRFs7AWWdMTV8wD3qSYfM="
+ },
+ "read-pkg": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
+ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg="
+ },
+ "read-pkg-up": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
+ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4="
+ },
+ "replace-ext": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz",
+ "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs="
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM="
+ },
+ "vinyl": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.1.0.tgz",
+ "integrity": "sha1-Ah+cLPlR1rk5lDyJ617lrdT9kkw="
+ }
+ }
+ },
+ "yeoman-test": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/yeoman-test/-/yeoman-test-1.7.0.tgz",
+ "integrity": "sha512-vJeg2gpWfhbq0HvQ7/yqmsQpYmADBfo9kaW+J6uJASkI7ChLBXNLIBQqaXCA65kWtHXOco+nBm0Km/O9YWk25Q==",
+ "dependencies": {
+ "ansi-escapes": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-2.0.0.tgz",
+ "integrity": "sha1-W65SvkJIeN2Xg+iRDj/Cki6DyBs="
+ },
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
+ },
+ "ansi-styles": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.1.0.tgz",
+ "integrity": "sha1-CcIC1ckX7CMYjKpcnLkXnNlUd1A="
+ },
+ "chalk": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz",
+ "integrity": "sha512-Mp+FXEI+FrwY/XYV45b2YD3E8i3HwnEAoFcM0qlZzq/RZ9RwWitt2Y/c7cqRAz70U7hfekqx6qNYthuKFO6K0g=="
+ },
+ "cli-cursor": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU="
+ },
+ "diff": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.0.tgz",
+ "integrity": "sha512-w0XZubFWn0Adlsapj9EAWX0FqWdO4tz8kc3RiYdWLh4k/V8PTb6i0SMgXt0vRM3zyKnT8tKO7mUlieRQHIjMNg=="
+ },
+ "external-editor": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.0.4.tgz",
+ "integrity": "sha1-HtkZnanL/i7y96MbL96LDRI2iXI="
+ },
+ "figures": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
+ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI="
+ },
+ "globby": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
+ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw="
+ },
+ "inquirer": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.2.0.tgz",
+ "integrity": "sha512-4CyUYMP7lOBkiUU1rR24WGrfRX6SucwbY2Mqb1PdApU24wnTIk4TsnkQwV72dDdIKZ2ycLP+fWCV+tA7wwgoew=="
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
+ },
+ "mute-stream": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
+ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s="
+ },
+ "onetime": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ="
+ },
+ "restore-cursor": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368="
+ },
+ "sinon": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/sinon/-/sinon-2.3.8.tgz",
+ "integrity": "sha1-Md4G/tj7o6Zx5XbdltClhjeW8lw="
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw=="
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8="
+ },
+ "supports-color": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.0.tgz",
+ "integrity": "sha512-Ts0Mu/A1S1aZxEJNG88I4Oc9rcZSBFNac5e27yh4j2mqbhZSSzR1Ah79EYwSn9Zuh7lrlGD2cVGzw1RKGzyLSg=="
+ },
+ "tmp": {
+ "version": "0.0.31",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz",
+ "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc="
+ },
+ "untildify": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.2.tgz",
+ "integrity": "sha1-fx8wIFWz/qDz6B3HjrNnZstl4/E="
+ },
+ "yeoman-environment": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-2.0.0.tgz",
+ "integrity": "sha1-2vovxRLBaMuDE0U+UxjmRzEmWRU=",
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg="
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8="
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
+ }
+ }
+ }
+ }
+ },
+ "yeoman-welcome": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/yeoman-welcome/-/yeoman-welcome-1.0.1.tgz",
+ "integrity": "sha1-9s8Zj9T7qKdxZywmzfuKZHlchOw="
+ }
+ }
+}
diff --git a/package.json b/package.json
index 37e5c91..873ba0d 100644
--- a/package.json
+++ b/package.json
@@ -44,17 +44,19 @@
"dependencies": {
"extend": "^3.0.0",
"generator-node": "^1.10.0",
+ "save-dev": "^2.0.0",
"underscore.string": "^3.3.4",
- "yeoman-generator": "^0.22.5"
+ "yeoman-generator": "^1.0.0",
+ "yeoman-test": "^1.7.0"
},
"devDependencies": {
+ "babel-eslint": "^7.2.3",
"coveralls": "^2.13.1",
"mocha": "^3.2.0",
"mocha-eslint": "^3.0.1",
"mocha-junit-reporter": "^1.13.0",
"nyc": "^11.0.3",
"sinon": "^1.17.3",
- "yeoman-assert": "^2.2.0",
- "yeoman-test": "^1.1.0"
+ "yeoman-assert": "^2.2.0"
}
}
diff --git a/test/generators/app.test.js b/test/generators/app.test.js
index 0a1a3c9..fe23126 100644
--- a/test/generators/app.test.js
+++ b/test/generators/app.test.js
@@ -1,73 +1,101 @@
const path = require('path'),
assert = require('yeoman-assert'),
- helpers = require('yeoman-test');
+ helpers = require('yeoman-test'),
+ generatorPath = path.join(__dirname, '../../generators/app');
describe('generator-angular-bro:app', function () {
- before(function (done) {
- this.timeout(4000);
- helpers.run(path.join(__dirname, '../../generators/app'))
- .withPrompts({appName: 'testApp'})
- .on('end', done);
- });
after(function () {
- const LINTER_SLOW = 1000,
- lint = require('mocha-eslint'),
- paths = [ './**/*.js' ],
- options = { slow: LINTER_SLOW };
+ let outputDir = null;
+
+ return helpers.run(generatorPath)
+ .inTmpDir(function (tempDirectory) {
+ outputDir = tempDirectory;
+ })
+ .withPrompts({ appName: 'testApp' })
+ .then(() => {
+ const LINTER_SLOW = 1000,
+ lint = require('mocha-eslint'),
+ paths = [ `**/*.js` ],
+ options = { slow: LINTER_SLOW };
- lint(paths, options);
+ process.chdir(outputDir);
+ lint(paths, options);
+ });
});
it('creates files', function () {
- assert.file([
- '.babelrc',
- '.eslintrc',
- 'bower.json',
- 'Brocfile.js',
- 'circle.yml',
- 'Gruntfile.js',
- 'karma.conf.js',
- 'package.json',
- 'app/app.js',
- 'app/index.html',
- 'app/router.js',
- 'app/test-app.js',
- 'assets/.gitkeep',
- 'assets/.gitkeep',
- 'config/environment.js',
- 'styles/_colors.less',
- 'styles/_mixins.less',
- 'styles/_variables.less',
- 'styles/app.less',
- 'tests/.eslintrc',
- 'tests/e2e/.gitkeep',
- 'tests/helpers/beforeAll.js',
- 'tests/helpers/afterAll.js',
- 'tests/unit/.gitkeep',
- ]);
+ return helpers.run(generatorPath)
+ .withPrompts({ appName: 'testApp' }).then(function () {
+ assert.file([
+ '.babelrc',
+ '.eslintrc',
+ 'bower.json',
+ 'Brocfile.js',
+ 'circle.yml',
+ 'Gruntfile.js',
+ 'karma.conf.js',
+ 'package.json',
+ 'app/app.js',
+ 'app/index.html',
+ 'app/router.js',
+ 'app/test-app.js',
+ 'assets/.gitkeep',
+ 'assets/.gitkeep',
+ 'config/environment.js',
+ 'styles/_colors.less',
+ 'styles/_mixins.less',
+ 'styles/_variables.less',
+ 'styles/app.less',
+ 'tests/.eslintrc',
+ 'tests/e2e/.gitkeep',
+ 'tests/helpers/beforeAll.js',
+ 'tests/helpers/afterAll.js',
+ 'tests/unit/.gitkeep',
+ ]);
+ });
});
describe('templates the app name', function () {
it('app/app.js', function () {
- assert.fileContent('app/app.js', /\nimport testAppModule from 'app\/test-app';\n/);
- assert.fileContent('app/app.js', /\[\s*testAppModule.name\s*\]/);
+ return helpers.run(generatorPath)
+ .withPrompts({ appName: 'testApp' })
+ .then(() => {
+ assert.fileContent('app/app.js', /\nimport testAppModule from 'app\/test-app';\n/);
+ assert.fileContent('app/app.js', /\[\s*testAppModule.name\s*\]/);
+ });
});
it('app/exportable.js', function () {
- assert.fileContent('app/test-app.js', /\nexport default angular\.module\('testApp', \[\n/);
+ return helpers.run(generatorPath)
+ .withPrompts({ appName: 'testApp' })
+ .then(() => {
+ assert.fileContent('app/test-app.js', /\nexport default angular\.module\('testApp', \[\n/);
+ });
});
it('bower.json', function () {
- assert.fileContent('bower.json', /\n "name": "test-app",\n/);
+ return helpers.run(generatorPath)
+ .withPrompts({ appName: 'testApp' })
+ .then(() => {
+ assert.fileContent('bower.json', /\n "name": "test-app",\n/);
+ });
});
it('app/index.html', function () {
- assert.fileContent('app/index.html', /Test App<\/title>\n/);
+ return helpers.run(generatorPath)
+ .withPrompts({ appName: 'testApp' })
+ .then(() => {
+ assert.fileContent('app/index.html', /Test App<\/title>\n/);
+ });
});
it('package.json', function () {
- assert.fileContent('package.json', /\n "name": "test-app",\n/);
+ return helpers.run(generatorPath)
+ .withPrompts({ appName: 'testApp' })
+ .then(() => {
+ assert.fileContent('package.json', /\n "name": "test-app",\n/);
+ });
});
});
});
diff --git a/test/generators/controller.test.js b/test/generators/controller.test.js
index e34748c..46891a8 100644
--- a/test/generators/controller.test.js
+++ b/test/generators/controller.test.js
@@ -1,52 +1,67 @@
const path = require('path'),
assert = require('yeoman-assert'),
helpers = require('yeoman-test'),
+ generatorPath = path.join(__dirname, '../../generators/controller'),
fileList = [
'app/test-module/controller.js',
'tests/unit/test-module/controller.spec.js',
];
describe('generator-angular-bro:controller', function () {
- before(function (done) {
- helpers.run(path.join(__dirname, '../../generators/controller'))
- .withPrompts({componentPath: 'testModule'})
- .on('end', done);
- });
-
after(function () {
- const LINTER_SLOW = 1000,
- lint = require('mocha-eslint'),
- paths = [ './**/*.js' ],
- options = { slow: LINTER_SLOW };
+ let outputDir = null;
+
+ return helpers.run(generatorPath)
+ .inTmpDir(function (tempDirectory) {
+ outputDir = tempDirectory;
+ })
+ .withPrompts({ componentPath: 'testApp' })
+ .then(() => {
+ const LINTER_SLOW = 1000,
+ lint = require('mocha-eslint'),
+ paths = [ `**/*.js` ],
+ options = { slow: LINTER_SLOW };
- lint(paths, options);
+ process.chdir(outputDir);
+ lint(paths, options);
+ });
});
it('creates files', function () {
- assert.file(fileList);
+ return helpers.run(generatorPath)
+ .withPrompts({ componentPath: 'testModule' })
+ .then(function () {
+ assert.file(fileList);
+ });
});
describe('generated module', function () {
- var modulePath = 'app/test-module/controller.js';
+ const modulePath = 'app/test-module/controller.js';
it('uses the correct controller name', function () {
- assert.fileContent(modulePath, /class TestModuleController \{/);
+ return helpers.run(generatorPath)
+ .withPrompts({ componentPath: 'testModule' })
+ .then(function () {
+ assert.fileContent(modulePath, /class TestModuleController \{/);
+ });
});
it('uses the controller decorator', function () {
- assert.fileContent(modulePath, /@controller/);
+ return helpers.run(generatorPath)
+ .withPrompts({ componentPath: 'testModule' })
+ .then(function () {
+ assert.fileContent(modulePath, /@controller/);
+ });
});
});
});
describe('genreator-angular-bro:controller test-module', function () {
- before(function (done) {
- helpers.run(path.join(__dirname, '../../generators/controller'))
- .withArguments('test-module')
- .on('end', done);
- });
-
it('creates files', function () {
- assert.file(fileList);
+ return helpers.run(generatorPath)
+ .withArguments([ 'test-module' ])
+ .then(function () {
+ assert.file(fileList);
+ });
});
});
diff --git a/test/generators/directive.test.js b/test/generators/directive.test.js
index 0083f6f..a30fc3f 100644
--- a/test/generators/directive.test.js
+++ b/test/generators/directive.test.js
@@ -1,6 +1,7 @@
const path = require('path'),
assert = require('yeoman-assert'),
helpers = require('yeoman-test'),
+ generatorPath = path.join(__dirname, '../../generators/directive'),
fileList = [
'app/test-module/directive.js',
'app/test-module/template.html',
@@ -8,46 +9,60 @@ const path = require('path'),
];
describe('generator-angular-bro:directive', function () {
- before(function (done) {
- helpers.run(path.join(__dirname, '../../generators/directive'))
- .withPrompts({componentPath: 'testModule'})
- .on('end', done);
- });
-
after(function () {
- const LINTER_SLOW = 1000,
- lint = require('mocha-eslint'),
- paths = [ './**/*.js' ],
- options = { slow: LINTER_SLOW };
+ let outputDir = null;
+
+ return helpers.run(generatorPath)
+ .inTmpDir(function (tempDirectory) {
+ outputDir = tempDirectory;
+ })
+ .withPrompts({ componentPath: 'testApp' })
+ .then(() => {
+ const LINTER_SLOW = 1000,
+ lint = require('mocha-eslint'),
+ paths = [ `**/*.js` ],
+ options = { slow: LINTER_SLOW };
- lint(paths, options);
+ process.chdir(outputDir);
+ lint(paths, options);
+ });
});
it('creates files', function () {
- assert.file(fileList);
+ return helpers.run(generatorPath)
+ .withPrompts({ componentPath: 'testModule' })
+ .then(function () {
+ assert.file(fileList);
+ });
});
describe('generated module', function () {
const modulePath = 'app/test-module/directive.js';
it('uses the correct directive name', function () {
- assert.fileContent(modulePath, /class TestModule \{/);
+ return helpers.run(generatorPath)
+ .withPrompts({ componentPath: 'testModule' })
+ .then(function () {
+ assert.fileContent(modulePath, /class TestModule \{/);
+ });
});
it('uses the directive decorator', function () {
- assert.fileContent(modulePath, /@directive\(/);
+ return helpers.run(generatorPath)
+ .withPrompts({ componentPath: 'testModule' })
+ .then(function () {
+ assert.fileContent(modulePath, /@directive\(/);
+ });
});
});
});
describe('genreator-angular-bro:directive test-module', function () {
- before(function (done) {
- helpers.run(path.join(__dirname, '../../generators/directive'))
- .withArguments('test-module')
- .on('end', done);
- });
-
it('creates files', function () {
- assert.file(fileList);
+ return helpers.run(generatorPath)
+ .withArguments([ 'test-module' ])
+ .then(function () {
+ assert.file(fileList);
+ });
});
});
diff --git a/test/generators/factory.test.js b/test/generators/factory.test.js
index 69fdf28..a59331f 100644
--- a/test/generators/factory.test.js
+++ b/test/generators/factory.test.js
@@ -1,52 +1,67 @@
const path = require('path'),
assert = require('yeoman-assert'),
helpers = require('yeoman-test'),
+ generatorPath = path.join(__dirname, '../../generators/factory'),
fileList = [
'app/test-module/factory.js',
'tests/unit/test-module/factory.spec.js',
];
describe('generator-angular-bro:factory', function () {
- before(function (done) {
- helpers.run(path.join(__dirname, '../../generators/factory'))
- .withPrompts({componentPath: 'testModule'})
- .on('end', done);
- });
-
after(function () {
- const LINTER_SLOW = 1000,
- lint = require('mocha-eslint'),
- paths = [ './**/*.js' ],
- options = { slow: LINTER_SLOW };
+ let outputDir = null;
+
+ return helpers.run(generatorPath)
+ .inTmpDir(function (tempDirectory) {
+ outputDir = tempDirectory;
+ })
+ .withPrompts({ componentPath: 'testApp' })
+ .then(() => {
+ const LINTER_SLOW = 1000,
+ lint = require('mocha-eslint'),
+ paths = [ `**/*.js` ],
+ options = { slow: LINTER_SLOW };
- lint(paths, options);
+ process.chdir(outputDir);
+ lint(paths, options);
+ });
});
it('creates files', function () {
- assert.file(fileList);
+ return helpers.run(generatorPath)
+ .withPrompts({ componentPath: 'testModule' })
+ .then(() => {
+ assert.file(fileList);
+ });
});
describe('generated module', function () {
const modulePath = 'app/test-module/factory.js';
it('uses the correct factory name', function () {
- assert.fileContent(modulePath, /class TestModuleFactory \{/);
+ return helpers.run(generatorPath)
+ .withPrompts({ componentPath: 'testModule' })
+ .then(() => {
+ assert.fileContent(modulePath, /class TestModuleFactory \{/);
+ });
});
it('uses the factory decorator', function () {
- assert.fileContent(modulePath, /@factory/);
+ return helpers.run(generatorPath)
+ .withPrompts({ componentPath: 'testModule' })
+ .then(() => {
+ assert.fileContent(modulePath, /@factory/);
+ });
});
});
});
describe('genreator-angular-bro:factory test-module', function () {
- before(function (done) {
- helpers.run(path.join(__dirname, '../../generators/factory'))
- .withArguments('test-module')
- .on('end', done);
- });
-
it('creates files', function () {
- assert.file(fileList);
+ return helpers.run(generatorPath)
+ .withArguments([ 'test-module' ])
+ .then(() => {
+ assert.file(fileList);
+ });
});
});
diff --git a/test/generators/provider.test.js b/test/generators/provider.test.js
index 10dc77e..d1f51ed 100644
--- a/test/generators/provider.test.js
+++ b/test/generators/provider.test.js
@@ -1,52 +1,67 @@
const path = require('path'),
assert = require('yeoman-assert'),
helpers = require('yeoman-test'),
+ generatorPath = path.join(__dirname, '../../generators/provider'),
fileList = [
'app/test-module/provider.js',
'tests/unit/test-module/provider.spec.js',
];
describe('generator-angular-bro:provider', function () {
- before(function (done) {
- helpers.run(path.join(__dirname, '../../generators/provider'))
- .withPrompts({componentPath: 'testModule'})
- .on('end', done);
- });
-
after(function () {
- const LINTER_SLOW = 1000,
- lint = require('mocha-eslint'),
- paths = [ './**/*.js' ],
- options = { slow: LINTER_SLOW };
+ let outputDir = null;
+
+ return helpers.run(generatorPath)
+ .inTmpDir(function (tempDirectory) {
+ outputDir = tempDirectory;
+ })
+ .withPrompts({ componentPath: 'testApp' })
+ .then(() => {
+ const LINTER_SLOW = 1000,
+ lint = require('mocha-eslint'),
+ paths = [ `**/*.js` ],
+ options = { slow: LINTER_SLOW };
- lint(paths, options);
+ process.chdir(outputDir);
+ lint(paths, options);
+ });
});
it('creates files', function () {
- assert.file(fileList);
+ return helpers.run(generatorPath)
+ .withPrompts({componentPath: 'testModule'})
+ .then(() => {
+ assert.file(fileList);
+ });
});
describe('generated module', function () {
const providerPath = 'app/test-module/provider.js';
it('uses the correct provider name', function () {
- assert.fileContent(providerPath, /class TestModuleProvider \{/);
+ return helpers.run(generatorPath)
+ .withPrompts({componentPath: 'testModule'})
+ .then(() => {
+ assert.fileContent(providerPath, /class TestModuleProvider \{/);
+ });
});
it('uses the provider decorator', function () {
- assert.fileContent(providerPath, /@provider/);
+ return helpers.run(generatorPath)
+ .withPrompts({componentPath: 'testModule'})
+ .then(() => {
+ assert.fileContent(providerPath, /@provider/);
+ });
});
});
});
describe('genreator-angular-bro:provider test-module', function () {
- before(function (done) {
- helpers.run(path.join(__dirname, '../../generators/provider'))
- .withArguments('test-module')
- .on('end', done);
- });
-
it('creates files', function () {
- assert.file(fileList);
+ return helpers.run(generatorPath)
+ .withArguments([ 'test-module' ])
+ .then(() => {
+ assert.file(fileList);
+ });
});
});
diff --git a/test/generators/proxy.test.js b/test/generators/proxy.test.js
index e0e9d71..3b84d7a 100644
--- a/test/generators/proxy.test.js
+++ b/test/generators/proxy.test.js
@@ -1,42 +1,49 @@
const path = require('path'),
assert = require('yeoman-assert'),
helpers = require('yeoman-test'),
+ generatorPath = path.join(__dirname, '../../generators/proxy'),
fileList = [
'server/proxies/testModule.js',
];
describe('generator-angular-bro:proxy', function () {
- before(function (done) {
- helpers.run(path.join(__dirname, '../../generators/proxy'))
- .withPrompts({
- proxyPath: 'testModule',
- proxyTarget: 'proxy/target'
- })
- .on('end', done);
- });
-
after(function () {
- const LINTER_SLOW = 1000,
- lint = require('mocha-eslint'),
- paths = [ './**/*.js' ],
- options = { slow: LINTER_SLOW };
+ let outputDir = null;
+
+ return helpers.run(generatorPath)
+ .inTmpDir(function (tempDirectory) {
+ outputDir = tempDirectory;
+ })
+ .withPrompts({ componentPath: 'testApp' })
+ .then(() => {
+ const LINTER_SLOW = 1000,
+ lint = require('mocha-eslint'),
+ paths = [ `**/*.js` ],
+ options = { slow: LINTER_SLOW };
- lint(paths, options);
+ process.chdir(outputDir);
+ lint(paths, options);
+ });
});
it('creates files', function () {
- assert.file(fileList);
+ return helpers.run(generatorPath)
+ .withPrompts({
+ proxyPath: 'testModule',
+ proxyTarget: 'proxy/target',
+ })
+ .then(() => {
+ assert.file(fileList);
+ });
});
});
describe('genreator-angular-bro:proxy testModule proxy/target', function () {
- before(function (done) {
- helpers.run(path.join(__dirname, '../../generators/proxy'))
- .withArguments('testModule', 'proxy/target')
- .on('end', done);
- });
-
it('creates files', function () {
- assert.file(fileList);
+ return helpers.run(generatorPath)
+ .withArguments([ 'testModule', 'proxy/target' ])
+ .then(() => {
+ assert.file(fileList);
+ });
});
});
diff --git a/test/generators/server.test.js b/test/generators/server.test.js
index 7c42a4c..bd29004 100644
--- a/test/generators/server.test.js
+++ b/test/generators/server.test.js
@@ -1,42 +1,62 @@
const path = require('path'),
assert = require('yeoman-assert'),
- helpers = require('yeoman-test');
+ helpers = require('yeoman-test'),
+ generatorPath = path.join(__dirname, '../../generators/server'),
+ fileList = [
+ 'server/index.js',
+ 'server/mocks/.gitkeep',
+ 'server/proxies/.gitkeep',
+ ];
describe('generator-angular-bro:server', function () {
- before(function (done) {
- helpers.run(path.join(__dirname, '../../generators/server'))
- .on('ready', function (gen) {
- gen.fs.writeJSON('package.json', {
- devDependencies: {}
- });
- })
- .on('end', done);
- });
-
after(function () {
- const LINTER_SLOW = 1000,
- lint = require('mocha-eslint'),
- paths = [ './**/*.js' ],
- options = { slow: LINTER_SLOW };
+ let outputDir = null;
+
+ return helpers.run(generatorPath)
+ .inTmpDir(function (tempDirectory) {
+ outputDir = tempDirectory;
+ })
+ .withPrompts({ componentPath: 'testApp' })
+ .then(() => {
+ const LINTER_SLOW = 1000,
+ lint = require('mocha-eslint'),
+ paths = [ `**/*.js` ],
+ options = { slow: LINTER_SLOW };
- lint(paths, options);
+ process.chdir(outputDir);
+ lint(paths, options);
+ });
});
it('creates files', function () {
- assert.file([
- 'server/index.js',
- 'server/mocks/.gitkeep',
- 'server/proxies/.gitkeep',
- ]);
+ return helpers.run(generatorPath)
+ .withPrompts({componentPath: 'testModule'})
+ .on('ready', function (gen) {
+ gen.fs.writeJSON('package.json', {
+ devDependencies: {}
+ });
+ })
+ .then(() => {
+ assert.file(fileList);
+ });
});
describe.skip('dependencies', function () {
it('installs it\'s dependencies', function () {
- assert.jsonFileContent('package.json', {
- devDependencies: {
- morgan: "1.7.0"
- }
- });
+ return helpers.run(generatorPath)
+ .withPrompts({componentPath: 'testModule'})
+ .on('ready', function (gen) {
+ gen.fs.writeJSON('package.json', {
+ devDependencies: {}
+ });
+ })
+ .then(() => {
+ assert.jsonFileContent('package.json', {
+ devDependencies: {
+ morgan: "1.7.0"
+ }
+ });
+ });
});
});
});
diff --git a/test/generators/service.test.js b/test/generators/service.test.js
index ccbb95c..c5352dc 100644
--- a/test/generators/service.test.js
+++ b/test/generators/service.test.js
@@ -1,52 +1,67 @@
const path = require('path'),
assert = require('yeoman-assert'),
helpers = require('yeoman-test'),
+ generatorPath = path.join(__dirname, '../../generators/service'),
fileList = [
'app/test-module/service.js',
'tests/unit/test-module/service.spec.js',
];
describe('generator-angular-bro:service', function () {
- before(function (done) {
- helpers.run(path.join(__dirname, '../../generators/service'))
- .withPrompts({componentPath: 'testModule'})
- .on('end', done);
- });
-
after(function () {
- const LINTER_SLOW = 1000,
- lint = require('mocha-eslint'),
- paths = [ './**/*.js' ],
- options = { slow: LINTER_SLOW };
+ let outputDir = null;
+
+ return helpers.run(generatorPath)
+ .inTmpDir(function (tempDirectory) {
+ outputDir = tempDirectory;
+ })
+ .withPrompts({ componentPath: 'testApp' })
+ .then(() => {
+ const LINTER_SLOW = 1000,
+ lint = require('mocha-eslint'),
+ paths = [ `**/*.js` ],
+ options = { slow: LINTER_SLOW };
- lint(paths, options);
+ process.chdir(outputDir);
+ lint(paths, options);
+ });
});
it('creates files', function () {
- assert.file(fileList);
+ return helpers.run(generatorPath)
+ .withPrompts({ componentPath: 'testModule' })
+ .then(() => {
+ assert.file(fileList);
+ });
});
describe('generated module', function () {
const modulePath = 'app/test-module/service.js';
it('uses the correct service name', function () {
- assert.fileContent(modulePath, /class TestModuleService \{/);
+ return helpers.run(generatorPath)
+ .withPrompts({ componentPath: 'testModule' })
+ .then(() => {
+ assert.fileContent(modulePath, /class TestModuleService \{/);
+ });
});
it('uses the service decorator', function () {
- assert.fileContent(modulePath, /@service/);
+ return helpers.run(generatorPath)
+ .withPrompts({ componentPath: 'testModule' })
+ .then(() => {
+ assert.fileContent(modulePath, /@service/);
+ });
});
});
});
describe('genreator-angular-bro:service test-module', function () {
- before(function (done) {
- helpers.run(path.join(__dirname, '../../generators/service'))
- .withArguments('test-module')
- .on('end', done);
- });
-
it('creates files', function () {
- assert.file(fileList);
+ return helpers.run(generatorPath)
+ .withArguments([ 'test-module' ])
+ .then(() => {
+ assert.file(fileList);
+ });
});
});
diff --git a/test/generators/state.test.js b/test/generators/state.test.js
index 7c8bd06..4ab755f 100644
--- a/test/generators/state.test.js
+++ b/test/generators/state.test.js
@@ -1,6 +1,7 @@
const path = require('path'),
assert = require('yeoman-assert'),
helpers = require('yeoman-test'),
+ generatorPath = path.join(__dirname, '../../generators/state'),
fileList = [
'app/test-module/state.js',
'app/test-module/template.html',
@@ -8,46 +9,60 @@ const path = require('path'),
];
describe('generator-angular-bro:state', function () {
- before(function (done) {
- helpers.run(path.join(__dirname, '../../generators/state'))
- .withPrompts({componentPath: 'testModule'})
- .on('end', done);
- });
-
after(function () {
- const LINTER_SLOW = 1000,
- lint = require('mocha-eslint'),
- paths = [ './**/*.js' ],
- options = { slow: LINTER_SLOW };
+ let outputDir = null;
+
+ return helpers.run(generatorPath)
+ .inTmpDir(function (tempDirectory) {
+ outputDir = tempDirectory;
+ })
+ .withPrompts({ componentPath: 'testApp' })
+ .then(() => {
+ const LINTER_SLOW = 1000,
+ lint = require('mocha-eslint'),
+ paths = [ `**/*.js` ],
+ options = { slow: LINTER_SLOW };
- lint(paths, options);
+ process.chdir(outputDir);
+ lint(paths, options);
+ });
});
it('creates files', function () {
- assert.file(fileList);
+ return helpers.run(generatorPath)
+ .withPrompts({ componentPath: 'testModule' })
+ .then(() => {
+ assert.file(fileList);
+ });
});
describe('generated state', function () {
const statePath = 'app/test-module/state.js';
it('uses the correct state controller name', function () {
- assert.fileContent(statePath, /class TestModuleState \{/);
+ return helpers.run(generatorPath)
+ .withPrompts({ componentPath: 'testModule' })
+ .then(() => {
+ assert.fileContent(statePath, /class TestModuleState \{/);
+ });
});
it('uses the correct state name', function () {
- assert.fileContent(statePath, /@state\('test-module'\, \{\}\)/);
+ return helpers.run(generatorPath)
+ .withPrompts({ componentPath: 'testModule' })
+ .then(() => {
+ assert.fileContent(statePath, /@state\('test-module'\, \{\}\)/);
+ });
});
});
});
describe('genreator-angular-bro:state test-module', function () {
- before(function (done) {
- helpers.run(path.join(__dirname, '../../generators/state'))
- .withArguments('test-module')
- .on('end', done);
- });
-
it('creates files', function () {
- assert.file(fileList);
+ return helpers.run(generatorPath)
+ .withArguments([ 'test-module' ])
+ .then(() => {
+ assert.file(fileList);
+ });
});
});
diff --git a/test/generators/template.test.js b/test/generators/template.test.js
index 707eb8c..45c801e 100644
--- a/test/generators/template.test.js
+++ b/test/generators/template.test.js
@@ -1,30 +1,27 @@
const path = require('path'),
assert = require('yeoman-assert'),
helpers = require('yeoman-test'),
+ generatorPath = path.join(__dirname, '../../generators/template'),
fileList = [
'app/test-module/template.html',
];
describe('generator-angular-bro:template', function () {
- before(function (done) {
- helpers.run(path.join(__dirname, '../../generators/template'))
- .withPrompts({componentPath: 'testModule'})
- .on('end', done);
- });
-
it('creates files', function () {
- assert.file(fileList);
+ return helpers.run(generatorPath)
+ .withPrompts({componentPath: 'testModule'})
+ .then(() => {
+ assert.file(fileList);
+ });
});
});
describe('genreator-angular-bro:template test-module', function () {
- before(function (done) {
- helpers.run(path.join(__dirname, '../../generators/template'))
- .withArguments('test-module')
- .on('end', done);
- });
-
it('creates files', function () {
- assert.file(fileList);
+ return helpers.run(generatorPath)
+ .withArguments([ 'test-module' ])
+ .then(() => {
+ assert.file(fileList);
+ });
});
});