From af6437542ffeb1681eecd919347f850f04e8e1d3 Mon Sep 17 00:00:00 2001
From: Benjamin Lupton
Date: Wed, 31 Jan 2018 08:15:48 +0800
Subject: [PATCH] v1.1.0 updated base files and internal conventions
---
.editorconfig | 17 +-
.eslintrc.js | 429 +++-
.gitignore | 12 +-
.npmignore | 28 +-
.travis.yml | 43 +-
CONTRIBUTING.md | 62 +-
HISTORY.md | 5 +
LICENSE.md | 2 +-
README.md | 38 +-
example/01.js | 21 +-
example/02.js | 23 +-
example/03.js | 4 +-
index.js | 5 +
lib/argsbytype.js | 31 -
nakefile.js | 491 -----
package-lock.json | 4266 +++++++++++++++++++++++++++++++++++++++
package.json | 94 +-
source/index.js | 30 +
source/test.js | 41 +
test.js | 5 +
test/argsbytype-test.js | 41 -
21 files changed, 4881 insertions(+), 807 deletions(-)
create mode 100644 index.js
delete mode 100644 lib/argsbytype.js
delete mode 100644 nakefile.js
create mode 100644 package-lock.json
create mode 100644 source/index.js
create mode 100644 source/test.js
create mode 100644 test.js
delete mode 100644 test/argsbytype-test.js
diff --git a/.editorconfig b/.editorconfig
index 81efd0a..b4b90a3 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -1,4 +1,4 @@
-# 2014 June 8
+# 2018 January 24
# https://github.com/bevry/base
root = true
@@ -6,14 +6,21 @@ root = true
[*]
end_of_line = lf
charset = utf-8
-trim_trailing_whitespace = false
+trim_trailing_whitespace = true
insert_final_newline = false
indent_style = tab
-[*.json]
+[{*.mk,*.py}]
+indent_style = tab
+indent_size = 4
+
+[*.md]
indent_style = space
-indent_size = 2
+indent_size = 4
-[*.yml]
+[{*.json,*.yml,*.bowerrc,*.babelrc}]
indent_style = space
indent_size = 2
+
+[*.json]
+insert_final_newline = true
diff --git a/.eslintrc.js b/.eslintrc.js
index b623886..f00299a 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -1,48 +1,17 @@
-// 2015 December 1
+// 2018 January 26
// https://github.com/bevry/base
// http://eslint.org
+// This code must be able to run on Node 0.10
/* eslint no-warning-comments: 0 */
'use strict'
const IGNORE = 0, WARN = 1, ERROR = 2, MAX_PARAMS = 4
-module.exports = {
- // parser: 'babel-eslint',
- // ^ the bundled ESLINT parser is now actually quite good, and supports the ecmaFeatures property
- ecmaFeatures: {
- // this property only works with the bundled ESLINT parser, not babel-eslint
- arrowFunctions: true,
- binaryLiterals: true,
- blockBindings: true,
- classes: true,
- defaultParams: true,
- destructuring: true,
- forOf: true,
- generators: true,
- modules: false, // Disabled due to https://twitter.com/balupton/status/671519915795345410
- objectLiteralComputedProperties: true,
- objectLiteralDuplicateProperties: true,
- objectLiteralShorthandMethods: true,
- objectLiteralShorthandProperties: true,
- octalLiterals: true,
- regexUFlag: true,
- regexYFlag: true,
- restParams: true,
- spread: true,
- superInFunctions: true,
- templateStrings: true,
- unicodeCodePointEscapes: true,
- globalReturn: true,
- jsx: true,
- experimentalObjectRestSpread: true
- },
- env: {
- browser: true,
- node: true,
- es6: true,
- commonjs: true,
- amd: true
- },
+const config = {
+ extends: ['eslint:recommended'],
+ plugins: [],
+ parserOptions: { ecmaFeatures: {} },
+ env: {},
rules: {
// ----------------------------
// Problems with these rules
@@ -70,17 +39,15 @@ module.exports = {
// Possible Errors
// The following rules point out areas where you might have made mistakes.
- // ES6 supports dangling commas
- 'comma-dangle': IGNORE,
-
// Don't allow assignments in conditional statements (if, while, etc.)
'no-cond-assign': [ERROR, 'always'],
// Warn but don't error about console statements
'no-console': WARN,
+ // Sometimes useful for debugging
// Allow while(true) loops
- 'no-constant-condition': IGNORE,
+ 'no-constant-condition': WARN,
// Seems like a good idea to error about this
'no-control-regex': ERROR,
@@ -97,12 +64,12 @@ module.exports = {
// Disallow duplicate case statements in a switch
'no-duplicate-case': ERROR,
- // Disallow empty [] in regular expressions as they cause unexpected behaviour
- 'no-empty-character-class': ERROR,
-
// Allow empty block statements, they are useful for clarity
'no-empty': IGNORE,
+ // Disallow empty [] in regular expressions as they cause unexpected behaviour
+ 'no-empty-character-class': ERROR,
+
// Overwriting the exception argument in a catch statement can cause memory leaks in some browsers
'no-ex-assign': ERROR,
@@ -113,7 +80,7 @@ module.exports = {
'no-extra-parens': IGNORE,
// Disallow superflous semicolons, they offer no value
- 'no-extra-semi': IGNORE,
+ 'no-extra-semi': ERROR,
// Seems like a good idea to error about this
'no-func-assign': ERROR,
@@ -127,12 +94,12 @@ module.exports = {
// Seems like a good idea to error about this
'no-irregular-whitespace': ERROR,
- // Seems like a good idea to error about this
- 'no-negated-in-lhs': ERROR,
-
// Seems like a good idea to error about this
'no-obj-calls': ERROR,
+ // Not enough justification to change our existing use
+ 'no-prototype-builtins': IGNORE,
+
// Seems like a good idea to error about this
// Instead of / / used / {ERROR}/ instead
'no-regex-spaces': ERROR,
@@ -140,17 +107,29 @@ module.exports = {
// Seems like a good idea to error about this
'no-sparse-arrays': ERROR,
+ // Probably an error on our part, so warn
+ 'no-template-curly-in-string': WARN,
+
// Seems like a good idea to error about this
'no-unexpected-multiline': ERROR,
// Seems like a good idea to error about this
'no-unreachable': ERROR,
+ // Seems like a good idea to error about this
+ 'no-unsafe-finally': ERROR,
+
+ // Seems like a good idea to error about this
+ 'no-unsafe-negation': ERROR,
+
// Seems like a good idea to error about this
'use-isnan': ERROR,
- // We use YUIdoc, not JSDoc
- 'valid-jsdoc': IGNORE,
+ // We use JSDoc again
+ 'valid-jsdoc': [ERROR, {
+ requireParamDescription: false,
+ requireReturnDescription: false
+ }],
// Seems like a good idea to error about this
'valid-typeof': ERROR,
@@ -160,16 +139,24 @@ module.exports = {
// Best Practices
// These are rules designed to prevent you from making mistakes. They either prescribe a better way of doing something or help you avoid footguns.
- // Meh
+ // Often we only need one, setting both doesn't make sense
+ // Enforces getter/setter pairs in objects
'accessor-pairs': IGNORE,
+ // Seems sensible
+ // Enforces return statements in callbacks of array's methods
+ 'array-callback-return': ERROR,
+
// This rule seems buggy
'block-scoped-var': IGNORE,
+ // Seems interesting, lets give it a go
+ 'class-methods-use-this': WARN,
+
// Disable complexity checks, they are annoying and not that useful in detecting actual complexity
'complexity': IGNORE,
- // We use blank returns for break statements
+ // We use blank returns for break statements and for returning void
'consistent-return': IGNORE,
// Always require curly braces unless the statement is all on a single line
@@ -210,8 +197,9 @@ module.exports = {
// Returns in else statements offer code clarity, so disable this rule
'no-else-return': IGNORE,
- // Seems like a good idea to error about this
- 'no-empty-label': ERROR,
+ // Up to developer sensibility
+ // disallow use of empty functions
+ 'no-empty-function': IGNORE,
// Seems sensible
'no-empty-pattern': ERROR,
@@ -228,15 +216,24 @@ module.exports = {
// Don't allow useless binds
'no-extra-bind': ERROR,
+ // Seems sensible
+ 'no-extra-label': ERROR,
+
// Don't allow switch case statements to follow through, use continue keyword instead
'no-fallthrough': ERROR,
// Use zero when doing decimals, otherwise it is confusing
'no-floating-decimal': ERROR,
+ // Seems sensible
+ 'no-global-assign': ERROR,
+
// Cleverness is unclear
'no-implicit-coercion': ERROR,
+ // Seems sensible providing detection works correctly
+ 'no-implicit-globals': ERROR,
+
// A sneaky way to do evals
'no-implied-eval': ERROR,
@@ -255,9 +252,8 @@ module.exports = {
// Loop functions always cause problems, as the scope isn't clear through iterations
'no-loop-func': ERROR,
- // This is a great idea
- // Although ignore -1 and 0 as it is common with indexOf
- 'no-magic-numbers': [WARN, { ignore: [-1, 0] }],
+ // Far too annoying
+ 'no-magic-numbers': IGNORE,
// We like multi spaces for clarity
// E.g. We like
@@ -270,9 +266,6 @@ module.exports = {
// Use ES6 template strings instead
'no-multi-str': ERROR,
- // Would be silly to allow this
- 'no-native-reassign': ERROR,
-
// We never use this, it seems silly to allow this
'no-new-func': ERROR,
@@ -292,21 +285,24 @@ module.exports = {
// As such, take any usage as intentional and aware
'no-param-reassign': IGNORE,
- // We use process.env wisely
- 'no-process-env': IGNORE,
-
// We never use this, it seems silly to allow this
'no-proto': ERROR,
// We never use this, it seems silly to allow this
'no-redeclare': ERROR,
+ // No defaults for this that are useful
+ 'no-restricted-properties': IGNORE,
+
// We never use this, it seems silly to allow this
'no-return-assign': ERROR,
// We never use this, it seems silly to allow this
'no-script-url': ERROR,
+ // Seems sensible
+ 'no-self-assign': ERROR,
+
// We never use this, it seems silly to allow this
'no-self-compare': ERROR,
@@ -316,15 +312,24 @@ module.exports = {
// We always want proper error objects as they have stack traces and respond to instanceof Error checks
'no-throw-literal': ERROR,
+ // Could be a getter, so warn
+ 'no-unmodified-loop-condition': WARN,
+
// We never use this, it seems silly to allow this
'no-unused-expressions': ERROR,
+ // Seems sensible
+ 'no-unused-labels': ERROR,
+
// Seems sensible
'no-useless-call': ERROR,
// Seems sensible
'no-useless-concat': ERROR,
+ // Seems sensible
+ 'no-useless-escape': ERROR,
+
// We never use this, it seems silly to allow this
'no-void': ERROR,
@@ -362,7 +367,7 @@ module.exports = {
// These rules have to do with variable declarations.
// We don't care
- 'init-declaration': IGNORE,
+ 'init-declarations': IGNORE,
// Don't allow the catch method to shadow objects as browsers handle this differently
// Update: We don't care for IE8
@@ -374,6 +379,9 @@ module.exports = {
// We never use this, it seems silly to allow this
'no-label-var': ERROR,
+ // No useful defaults
+ 'no-restricted-globals': IGNORE,
+
// We never use this, it seems silly to allow this
'no-shadow-restricted-names': ERROR,
@@ -418,6 +426,9 @@ module.exports = {
// Always use path.join for windows support
'no-path-concat': ERROR,
+ // We use process.env wisely
+ 'no-process-env': IGNORE,
+
// We know what we are doing
'no-process-exit': IGNORE,
@@ -444,6 +455,9 @@ module.exports = {
// Use camel case
'camelcase': ERROR,
+ // ES6 supports dangling commas
+ 'comma-dangle': [ERROR, 'never'],
+
// Require a comma after always
'comma-spacing': [ERROR, { before: false, after: true }],
@@ -459,12 +473,22 @@ module.exports = {
// Enable to make UNIX people's lives easier
'eol-last': ERROR,
+ // We never use this, it seems silly to allow this
+ 'func-call-spacing': [ERROR, 'never'],
+
+ // This rule is not currently useful
+ 'func-name-matching': IGNORE,
+
// We like anonymous functions
'func-names': IGNORE,
// Prefer to define functions via variables
'func-style': [WARN, 'declaration'],
+ // Nothing we want to blacklist
+ // blacklist certain identifiers to prevent them being used
+ 'id-blacklist': IGNORE,
+
// Sometimes short names are appropriate
'id-length': IGNORE,
@@ -472,7 +496,21 @@ module.exports = {
'id-match': IGNORE,
// Use tabs and indent case blocks
- 'indent': [ERROR, 'tab', { SwitchCase: WARN }],
+ 'indent': [ERROR, 'tab', {
+ SwitchCase: 1,
+ VariableDeclarator: 0,
+ outerIIFEBody: 1,
+ MemberExpression: 1,
+ FunctionDeclaration: {
+ body: 1,
+ parameters: 0
+ },
+ FunctionExpression: {
+ body: 1,
+ parameters: 0
+ }
+ }],
+ // ^ broken before, let us try again
// Prefer double qoutes for JSX properties: ,
'jsx-quotes': [ERROR, 'prefer-double'],
@@ -483,11 +521,26 @@ module.exports = {
afterColon: true
}],
+ // Always force a space before and after a keyword
+ 'keyword-spacing': [ERROR],
+
+ // we use both
+ 'line-comment-position': IGNORE,
+
// Enforce unix line breaks
'linebreak-style': [ERROR, 'unix'],
// Enforce new lines before block comments
- 'lines-around-comment': [ERROR, { beforeBlockComment: true, allowBlockStart: true }],
+ 'lines-around-comment': [ERROR, {
+ beforeBlockComment: true,
+ allowBlockStart: true
+ }],
+
+ // Enforce directives with no line above but a line below
+ 'lines-around-directive': [ERROR, {
+ before: 'never',
+ after: 'always'
+ }],
// Disabled to ensure consistency with complexity option
'max-depth': IGNORE,
@@ -495,15 +548,25 @@ module.exports = {
// We use soft wrap
'max-len': IGNORE,
+ // Perhaps in the future we can set this to 300 or so
+ // but for now it is not useful for the things we write and maintain
+ 'max-lines': IGNORE,
+
// We are smart enough to know if this is bad or not
'max-nested-callbacks': IGNORE,
// Sometimes we have no control over this for compat reasons, so just warn
'max-params': [WARN, MAX_PARAMS],
+ // Let's give this a go and see what is appropriate for our usage
+ 'max-statements-per-line': [WARN, { max: 1 }],
+
// We should be able to use whatever feels right
'max-statements': IGNORE,
+ // Current options are not useful
+ 'multiline-ternary': IGNORE,
+
// Constructors should be CamelCase
'new-cap': ERROR,
@@ -511,8 +574,13 @@ module.exports = {
'new-parens': ERROR,
// Too difficult to enforce correctly as too many edge-cases
+ // require or disallow an empty newline after variable declarations
'newline-after-var': IGNORE,
+ // Let the author decide
+ // enforce newline after each call when chaining the calls
+ 'newline-per-chained-call': IGNORE,
+
// Don't use the array constructor when it is not needed
'no-array-constructor': ERROR,
@@ -528,8 +596,11 @@ module.exports = {
// The code could be optimised if this error occurs
'no-lonely-if': ERROR,
+ // Seems sensible, let's see how we go with this
+ 'no-mixed-operators': ERROR,
+
// Don't mix spaces and tabs
- // @TODO maybe [ERROR, 'smart-tabs'] will be better, we will see
+ // Maybe [ERROR, 'smart-tabs'] will be better, we will see
'no-mixed-spaces-and-tabs': ERROR,
// We use multiple empty lines for styling
@@ -550,8 +621,8 @@ module.exports = {
// Handled by other rules
'no-restricted-syntax': IGNORE,
- // We never use this, it seems silly to allow this
- 'no-spaced-func': ERROR,
+ // We use tabs
+ 'no-tabs': IGNORE,
// Sometimes ternaries are useful
'no-ternary': IGNORE,
@@ -565,11 +636,19 @@ module.exports = {
// Sensible
'no-unneeded-ternary': ERROR,
+ // Seems sensible
+ 'no-whitespace-before-property': ERROR,
+
+ // Object indentation should be consistent within the object
+ // Ignore until https://github.com/eslint/eslint/issues/7434 is done
+ 'object-curly-newline': [IGNORE, { multiline: true }],
+
// Desirable, but too many edge cases it turns out where it is actually preferred
- 'object-curly-spacing': IGNORE, // [ERROR, 'always'],
+ 'object-curly-spacing': IGNORE,
// We like multiple var statements
'one-var': IGNORE,
+ 'one-var-declaration-per-line': IGNORE,
// Force use of shorthands when available
'operator-assignment': [ERROR, 'always'],
@@ -582,6 +661,7 @@ module.exports = {
'padded-blocks': IGNORE,
// Seems like a good idea to error about this
+ // was broken before, but lets give a go again
'quote-props': [ERROR, 'consistent-as-needed'],
// Use single quotes where escaping isn't needed
@@ -596,11 +676,11 @@ module.exports = {
// Never use semicolons
'semi': [ERROR, 'never'],
- // We don't care if our vars are alphabetical
- 'sort-vars': IGNORE,
+ // Importance makes more sense than alphabetical
+ 'sort-keys': IGNORE,
- // Always force a space after a keyword
- 'space-after-keywords': [ERROR, 'always'],
+ // Importance makes more sense than alphabetical
+ 'sort-vars': IGNORE,
// Always force a space before a {
'space-before-blocks': [ERROR, 'always'],
@@ -608,12 +688,6 @@ module.exports = {
// function () {, get blah () {
'space-before-function-paren': [ERROR, 'always'],
- // We do this
- 'space-before-keywords': [ERROR, 'always'],
-
- // This is for spacing between [], so [ WARN, ERROR, 3 ] which we don't want
- 'space-in-brackets': IGNORE,
-
// This is for spacing between (), so doSomething( WARN, ERROR, 3 ) or if ( WARN === 3 )
// which we want for ifs, but don't want for calls
'space-in-parens': IGNORE,
@@ -621,9 +695,6 @@ module.exports = {
// We use this
'space-infix-ops': ERROR,
- // We use this
- 'space-return-throw-case': ERROR,
-
// We use this
'space-unary-ops': ERROR,
@@ -631,13 +702,15 @@ module.exports = {
// 'spaced-line-comment': ERROR,
'spaced-comment': ERROR,
- // We use this
- // @TODO revise this
+ // When would we ever do this? Makes no sense
+ 'unicode-bom': [ERROR, 'never'],
+
+ // We do this, seems to work well
'wrap-regex': ERROR,
// --------------------------------------
- // ECMAScript 6
+ // ECMAScript 6 / ES6
// Sensible to create more informed and clear code
'arrow-body-style': [ERROR, 'as-needed'],
@@ -654,24 +727,41 @@ module.exports = {
// Seems the most consistent location for it
'generator-star-spacing': [ERROR, 'before'],
- // Seems sensible
- 'no-arrow-condition': ERROR,
-
- // Seems sensible
+ // Makes sense
'no-class-assign': ERROR,
- // Makes sense as otherwise runtime error will occur
+ // Makes sense
+ 'no-confusing-arrow': ERROR,
+
+ // Of course
'no-const-assign': ERROR,
- // Makes sense as otherwise runtime error will occur
+ // Of course
'no-dupe-class-members': ERROR,
+ // Seems sensible, may be times when we want this
+ 'no-duplicate-imports': WARN,
+
+ // Seems sensible
+ 'no-new-symbol': ERROR,
+
+ // No need to disallow any imports
+ 'no-restricted-imports': IGNORE,
+
// Makes sense as otherwise runtime error will occur
'no-this-before-super': ERROR,
- // @TODO This probably should be an error
- // however it is useful for: for ( var key in obj ) {
- // which hopefully is more performant than let (@TODO check if it actually is more performant)
+ // Seems sensible
+ 'no-useless-computed-key': ERROR,
+
+ // Seems sensible
+ 'no-useless-constructor': ERROR,
+
+ // Seems sensible
+ 'no-useless-rename': ERROR,
+
+ // Of course
+ // However, would be good to have this adjusted per environment
'no-var': WARN,
// Enforce ES6 object shorthand
@@ -682,12 +772,19 @@ module.exports = {
// https://travis-ci.org/bevry/es6-benchmarks
'prefer-arrow-callback': IGNORE,
- // Sure, why not
- 'prefer-const': WARN,
+ // Of course
+ 'prefer-const': ERROR,
+
+ // Makes sense
+ 'prefer-numeric-literals': ERROR,
// Controversial change, but makes sense to move towards to reduce the risk of bad people overwriting apply and call
// https://github.com/eslint/eslint/issues/ERROR939
- 'prefer-reflect': WARN,
+ // Ignoring because node does not yet support it, so we don't want to get the performance hit of using the compiled ES5 version
+ 'prefer-reflect': IGNORE,
+
+ // Makes sense to enforce, exceptions should be opted out of on case by case
+ 'prefer-rest-params': ERROR,
// Sure, why not
'prefer-spread': ERROR,
@@ -696,6 +793,138 @@ module.exports = {
'prefer-template': IGNORE,
// Makes sense
- 'require-yield': ERROR
+ 'require-yield': ERROR,
+
+ // Makes sense
+ 'rest-spread-spacing': [ERROR, 'never'],
+
+ // Importance makes more sense than alphabetical
+ 'sort-imports': IGNORE,
+
+ // Makes sense
+ 'symbol-description': ERROR,
+
+ // Makes sense
+ 'template-curly-spacing': [ERROR, 'never'],
+
+ // Our preference
+ 'yield-star-spacing': [ERROR, 'both'],
+
+
+ // --------------------------------------
+ // Plugins
+
+ // Not sure why, but okay
+ 'flow-vars/define-flow-type': WARN,
+ 'flow-vars/use-flow-type': WARN
+ }
+}
+
+// ------------------------------------
+// Enhancements
+
+// Load data.json file if it exists
+const rules = Object.keys(config.rules)
+let data = {}, devDeps = []
+try {
+ data = require('./package.json') || {}
+ devDeps = Object.keys(data.devDependencies || {})
+}
+catch (err) { }
+
+// Set the parser options depending on our editions
+if (data.editions) {
+ const sourceEdition = data.editions[0]
+ for (let syntaxIndex = 0; syntaxIndex < sourceEdition.syntaxes.length; ++syntaxIndex) {
+ const syntax = sourceEdition.syntaxes[syntaxIndex]
+ if (syntax === 'esnext') {
+ config.parserOptions.ecmaVersion = 8
+ break
+ }
+ else if (syntax.indexOf('es') === 0) {
+ config.parserOptions.ecmaVersion = Number(syntax.substr(2))
+ break
+ }
+ }
+ config.parserOptions.sourceType = sourceEdition.syntaxes.indexOf('import') !== -1 ? 'module' : 'script'
+ config.parserOptions.ecmaFeatures.jsx = sourceEdition.syntaxes.indexOf('jsx') !== -1
+}
+
+// If editions failed to dtermine the ecmaVersion, try determining it from node, otherwise default to v5
+if (!config.parserOptions.ecmaVersion) {
+ const node = data.engines && data.engines.node && data.engines.node.replace('>=', '').replace(/ /g, '').replace(/\..+$/, '')
+ config.parserOptions.ecmaVersion = node >= 6 ? 6 : 5
+}
+
+// Set the environments depending on whether we need them or not
+config.env.es6 = Boolean(config.parserOptions.ecmaVersion && config.parserOptions.ecmaVersion >= 6)
+config.env.node = Boolean(data.engines && data.engines.node)
+config.env.browser = Boolean(data.browser)
+if (config.env.browser) {
+ config.env.commonjs = true
+ if (config.env.node) {
+ config.env['shared-node-browser'] = true
}
}
+
+// If not on legacy javascript, disable esnext rules
+if (config.parserOptions.ecmaVersion && config.parserOptions.ecmaVersion <= 5) {
+ config.rules['no-var'] = IGNORE
+ config.rules['object-shorthand'] = [ERROR, 'never']
+ config.rules['prefer-rest-params'] = IGNORE
+ config.rules['prefer-spread'] = IGNORE
+ config.rules['prefer-const'] = IGNORE
+}
+
+// Add babel parsing if installed
+if (devDeps.indexOf('babel-eslint') !== -1) {
+ config.parser = 'babel-eslint'
+}
+
+// Add react linting if installed
+if (devDeps.indexOf('eslint-plugin-react') !== -1) {
+ config.extends.push('plugin:react/recommended')
+ config.plugins.push('react')
+}
+
+if (devDeps.indexOf('eslint-plugin-babel') !== -1) {
+ // Remove rules that babel rules replace
+ config.plugins.push('babel')
+ const replacements = [
+ 'new-cap',
+ 'object-curly-spacing'
+ ]
+ replacements.forEach(function (key) {
+ if (rules.indexOf(key) !== -1) {
+ config.rules['babel/' + key] = config.rules[key]
+ config.rules[key] = IGNORE
+ }
+ })
+}
+else {
+ // Remove babel rules if not using babel
+ rules.forEach(function (key) {
+ if (key.indexOf('babel/') === 0) {
+ delete config.rules[key]
+ }
+ })
+}
+
+if (devDeps.indexOf('eslint-plugin-flow-vars') !== -1) {
+ // Add flow plugin if installed
+ config.plugins.push('flow-vars')
+}
+else {
+ // Remove flow rules if plugin not installed
+ rules.forEach(function (key) {
+ if (key.indexOf('flow-vars/') === 0) {
+ delete config.rules[key]
+ }
+ })
+}
+
+
+// ------------------------------------
+// Export
+
+module.exports = config
diff --git a/.gitignore b/.gitignore
index d88cd64..74f7df3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,11 @@
-# 2015 March 27
+# 2017 April 12
# https://github.com/bevry/base
+# System Files
+**/.DS_Store
+
# Temp Files
+yarn.lock
**/.docpad.db
**/out.*
**/*.log
@@ -14,11 +18,17 @@ components/
bower_components/
node_modules/
out/
+*output/
coffeejs/
+coffee/
es5/
+es2015/
+esnext/
+docs/
# Editor Caches
.c9/
+.vscode/
# Private Files
.env
diff --git a/.npmignore b/.npmignore
index 27859c1..fd4f832 100644
--- a/.npmignore
+++ b/.npmignore
@@ -1,13 +1,18 @@
-# 2015 September 18
+# 2017 April 3
# https://github.com/bevry/base
# Temp Files
+yarn.lock
**/.docpad.db
**/out.*
**/*.log
**/*.cpuprofile
**/*.heapsnapshot
+# Editor Files
+.c9/
+.vscode/
+
# Build Files
build/
components/
@@ -17,21 +22,26 @@ node_modules/
# Private Files
.env
+# Documentation Files
+docs/
+guides/
+BACKERS.md
+CONTRIBUTING.md
+HISTORY.md
+
# Development Files
+web/
+**/example*
+**/test*
.editorconfig
-.eslintrc
+.eslintrc*
.jshintrc
.jscrc
-coffeelint.json
+coffeelint*
.travis*
-nakefile.js
+nakefile*
Cakefile
Makefile
-BACKERS.md
-CONTRIBUTING.md
-HISTORY.md
-**/src/
-**/test/
# Other Package Definitions
template.js
diff --git a/.travis.yml b/.travis.yml
index 5e414ef..19e208d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,31 +1,30 @@
-# 2015 December 9
-# https://github.com/bevry/base
-
-# Use the latest travis infrastructure
sudo: false
-
-# We use node
language: node_js
node_js:
- - "0.12"
- - "4"
- - "5"
+- '0.8'
+- '0.10'
+- '0.12'
+- '4'
+- '6'
+- '8'
+- '9'
+matrix:
+ fast_finish: true
+ allow_failures:
+ - node_js: '9'
cache:
directories:
- - node_modules
-
-# Prepare our tests
-# Ensure the project is setup correctly and compiled
-install: "npm run-script setup"
-before_script: "npm run-script compile"
-
-# Run our tests
-script: "npm test"
-
-# Custom notifications
+ - "$HOME/.npm"
+ - "$HOME/.yarn-cache"
+install:
+- eval "$(curl -s https://raw.githubusercontent.com/bevry/awesome-travis/ef794235b7094de5e49fb64e226da032ce135ecd/scripts/node-install.bash)"
+before_script:
+- eval "$(curl -s https://raw.githubusercontent.com/bevry/awesome-travis/ef794235b7094de5e49fb64e226da032ce135ecd/scripts/node-verify.bash)"
+after_success:
+- eval "$(curl -s https://raw.githubusercontent.com/bevry/awesome-travis/ef794235b7094de5e49fb64e226da032ce135ecd/scripts/node-publish.bash)"
notifications:
slack:
- secure: aTChtzLP7HMwaeqOaJ5pQRwERCu+eUw8jjBDUe2bFESIBYPv6eRJUTqo1qZYZYOrUTQCiPoKrqTeP5A3BlXauXSVu2ie1FH1XI1IIPpGOa8FrAxvqVf9Aq4nXK7hzTn0HMi38e92l1HQCugTGR0y/LsUIaWmmzpa+qiFZ7xGyOo=
+ secure: eY7R58vx2R3Lmc3Q1Q44BTIvBMrpHJ5RZ2F+t0TO0QztuDCXx2HP9sHnS/0GjHhK5uPdIFjGXdoimvfnRLBRxwXAjeS4wfrpu+VRba1bXiGPKB9w0ldVgzldwIOWsrRzHebYqPkW6F11kWsvV+Jk0wcuXuZYe2+Hwpjtoxmi6d0=
email:
recipients:
- secure: YvM64eTNUoqfWs7zpltj/MuFS5VN546tJtZjnl4/VHk66xW0rE+Xg731eoHxaAXr+dXrf7mS8w4620vc7gwPsMDO4EH/JZsZTkiA+3VJnUtvDNTocwvO/2okZe327y39gILKVD8sxiup2PiyflrzU/4NXOgjtd8UOh5s8Uh9czU=
+ secure: UF3bPfsFxKTlEu23MjSh0kXnR/0rx9z8xgC2PMUGjdm9KLt8IzvlYcLHJlOPwu7Nytf/G8If1+nEOmKfAMxsID9f27LAzP2Gv9q12QyHyHvOgxdc4hwAgfYoHcW26PbxrOyvaxfdK8jz7OvmR2OEcqs3NwUShTWhmW2HEeVogUY=
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 167a608..92c3d06 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,5 +1,5 @@
@@ -7,52 +7,42 @@ https://github.com/bevry/base
## Support
-We offer support through our [Official Support Channels](https://discuss.bevry.me/t/official-bevry-support-channels/63). Do not use GitHub Issues for support, your issue will be closed.
+We offer support through our [Official Support Channels](https://bevry.me/support). Do not use GitHub Issues for support, your issue will be closed.
## Contribute
-Our [Contributing Guide](https://learn.bevry.me/community/contribute) contains useful tips and suggestions for how to contribute to this project, it's worth the read.
+Our [Contributing Guide](https://bevry.me/contribute) contains useful tips and suggestions for how to contribute to this project, it's worth the read.
## Development
### Setup
-1. Install [Node.js](/node/install)
+1. Install [Node.js](https://learn.bevry.me/node/install)
1. Fork the project and clone your fork - [guide](https://help.github.com/articles/fork-a-repo/)
-1. Install local dependencies
+1. Setup the project for development
``` bash
- npm install
- ```
-
-1. Perform any other setup operations
-
- ``` bash
- npm run-script setup
+ npm run our:setup
```
### Developing
-- Compiling changes
-
- ``` bash
- # Only once
- npm run-script compile
+1. Compile changes
- # On every change
- npm run-script watch
- ```
+ ``` bash
+ npm run our:compile
+ ```
-5. Run tests
+1. Run tests
- ``` bash
- npm run-script verify
- ```
+ ``` bash
+ npm test
+ ```
### Publishing
@@ -69,7 +59,7 @@ Follow these steps in order to implement your changes/improvements into your des
1. Ensure all tests pass:
``` bash
- npm run-script verify
+ npm test
```
> If possible, add tests for your change, if you don't know how, mention this in your pull request
@@ -77,9 +67,7 @@ Follow these steps in order to implement your changes/improvements into your des
1. Ensure the project is ready for publishing:
```
- git status
- git diff
- npm run-script prepare
+ npm run our:release:prepare
```
@@ -112,11 +100,11 @@ To publish your changes as the project owner:
1. Add an entry to the changelog following the format of the previous entries, an example of this is:
``` markdown
- - v6.29.0 April 1, 2013
- - Progress on [issue #474](https://github.com/bevry/docpad/issues/474)
- - DocPad will now set permissions based on the process's ability
- - Thanks to [Avi Deitcher](https://github.com/deitch), [Stephan Lough](https://github.com/stephanlough) for [issue #165](https://github.com/bevry/docpad/issues/165)
- - Updated dependencies
+ ## v6.29.0 2013 April 1
+ - Progress on [issue #474](https://github.com/bevry/docpad/issues/474)
+ - DocPad will now set permissions based on the process's ability
+ - Thanks to [Avi Deitcher](https://github.com/deitch), [Stephan Lough](https://github.com/stephanlough) for [issue #165](https://github.com/bevry/docpad/issues/165)
+ - Updated dependencies
```
@@ -126,15 +114,11 @@ To publish your changes as the project owner:
1. Ensure the project is ready for publishing:
```
- git status
- git diff
- npm run-script prepare
+ npm run our:release:prepare
```
1. Prepare the release and publish it to npm and git:
``` bash
- npm run-script release
+ npm run our:release
```
-
- > A prompt will occur asking you for a git tag annotation, enter the changelog entry that we created earlier, save and exit the prompt.
diff --git a/HISTORY.md b/HISTORY.md
index 855cf2f..76434bf 100644
--- a/HISTORY.md
+++ b/HISTORY.md
@@ -1,5 +1,10 @@
# History
+## v1.1.0 2018 January 31
+- Minimum node version changed from node 0.4 to 0.8
+- Updated dependencies
+- Updated internal conventions
+
## v1.0.1 2015 December 12
- Updated dependencies
- Updated internal conventions
diff --git a/LICENSE.md b/LICENSE.md
index 0633742..fb6cfa4 100644
--- a/LICENSE.md
+++ b/LICENSE.md
@@ -4,7 +4,7 @@
Unless stated otherwise all works are:
-
+
and licensed under:
diff --git a/README.md b/README.md
index 6c4e898..91e5d92 100644
--- a/README.md
+++ b/README.md
@@ -13,13 +13,15 @@
-
-
+
+
-
+
+
+
@@ -37,16 +39,26 @@ Provide some arguments, get back a hash object of the arguments indexed by their
NPM
- Install:
npm install --save argsbytype
-- Use:
require('argsbytype')
+Module: require('argsbytype')
Browserify
- Install:
npm install --save argsbytype
-- Use:
require('argsbytype')
-- CDN URL:
//wzrd.in/bundle/argsbytype@1.0.1
+Module: require('argsbytype')
+CDN URL: //wzrd.in/bundle/argsbytype@1.1.0
Ender
- Install:
ender add argsbytype
-- Use:
require('argsbytype')
+Module: require('argsbytype')
+
+
+
+
This package is published with the following editions:
+
+argsbytype
aliases argsbytype/index.js
which uses Editions to automatically select the correct edition for the consumers environment
+argsbytype/source/index.js
is Source + ESNext + Require
+argsbytype/es2015/index.js
is Babel Compiled + ES2015 + Require
+
+Older environments may need Babel's Polyfill or something similar.
@@ -97,15 +109,16 @@ Yay! Big win for agnostic argument order! But when would you actually want this?
These amazing people are maintaining this project:
-
+
Sponsors
No sponsors yet! Will you be the first?
-
+
+
-
+
@@ -114,8 +127,7 @@ No sponsors yet! Will you be the first?
These amazing people have contributed code to this project:
-
+
Discover how you can contribute by heading on over to the CONTRIBUTING.md
file.
@@ -128,7 +140,7 @@ These amazing people have contributed code to this project:
Unless stated otherwise all works are:
-
+
and licensed under:
diff --git a/example/01.js b/example/01.js
index da6c84f..61c9867 100644
--- a/example/01.js
+++ b/example/01.js
@@ -1,15 +1,14 @@
-/* eslint prefer-reflect:0, no-var:0, object-shorthand:0, no-magic-numbers:0, no-console:0 */
+/* eslint prefer-rest-params:0, no-undefined:0, no-console:0 */
'use strict'
+
function myFunction () {
// Specify our argument variables
- var name
- var options
- var concurrency
+ let name, options, concurrency
// Extract our arguments
Array.prototype.slice.call(arguments).forEach(function (arg) {
// And update them based on the type
- switch ( typeof arg ) {
+ switch (typeof arg) {
case 'string':
name = arguments[0]
break
@@ -27,12 +26,12 @@ function myFunction () {
// Do our stuff
console.log({
- name: name,
- options: options,
- concurrency: concurrency
+ name,
+ options,
+ concurrency
})
}
-myFunction('sup', {a: 1}, 123) // {name: 'sup', options:{a: 1}, concurrency: 123}
-myFunction({a: 1}, 123, 'sup') // {name: 'sup', options:{a: 1}, concurrency: 123}
-myFunction(123, 'sup', {a: 1}) // {name: 'sup', options:{a: 1}, concurrency: 123}
+myFunction('sup', { a: 1 }, 123) // {name: 'sup', options:{a: 1}, concurrency: 123}
+myFunction({ a: 1 }, 123, 'sup') // {name: 'sup', options:{a: 1}, concurrency: 123}
+myFunction(123, 'sup', { a: 1 }) // {name: 'sup', options:{a: 1}, concurrency: 123}
diff --git a/example/02.js b/example/02.js
index d150009..51ef0f2 100644
--- a/example/02.js
+++ b/example/02.js
@@ -1,20 +1,21 @@
-/* eslint prefer-reflect:0, no-var:0, object-shorthand:0, no-magic-numbers:0, no-console:0 */
+/* eslint prefer-rest-params:0, no-undefined:0, no-console:0 */
'use strict'
+
function myFunction () {
// Extract our arguments
- var args = require('../')(arguments)
- var name = args.strings[0]
- var options = args.objects[0]
- var concurrency = args.numbers[0]
+ const args = require('../')(arguments)
+ const name = args.strings[0]
+ const options = args.objects[0]
+ const concurrency = args.numbers[0]
// Do our stuff
console.log({
- name: name,
- options: options,
- concurrency: concurrency
+ name,
+ options,
+ concurrency
})
}
-myFunction('sup', {a: 1}, 123) // {name: 'sup', options:{a: 1}, concurrency: 123}
-myFunction({a: 1}, 123, 'sup') // {name: 'sup', options:{a: 1}, concurrency: 123}
-myFunction(123, 'sup', {a: 1}) // {name: 'sup', options:{a: 1}, concurrency: 123}
+myFunction('sup', { a: 1 }, 123) // {name: 'sup', options:{a: 1}, concurrency: 123}
+myFunction({ a: 1 }, 123, 'sup') // {name: 'sup', options:{a: 1}, concurrency: 123}
+myFunction(123, 'sup', { a: 1 }) // {name: 'sup', options:{a: 1}, concurrency: 123}
diff --git a/example/03.js b/example/03.js
index 2ee23c5..e628546 100644
--- a/example/03.js
+++ b/example/03.js
@@ -1,9 +1,9 @@
-/* eslint prefer-reflect:0, no-var:0, object-shorthand:0, no-magic-numbers:0, no-console:0 */
+/* eslint prefer-rest-params:0, no-undefined:0, no-console:0 */
'use strict'
// agnostic setTimeout
function wait () {
- var args = require('../')(arguments)
+ const args = require('../')(arguments)
return setTimeout(args.functions[0], args.numbers[0])
}
diff --git a/index.js b/index.js
new file mode 100644
index 0000000..5059126
--- /dev/null
+++ b/index.js
@@ -0,0 +1,5 @@
+// 2016 December 29
+// https://github.com/bevry/editions
+'use strict'
+
+module.exports = require('editions').requirePackage(__dirname, require)
diff --git a/lib/argsbytype.js b/lib/argsbytype.js
deleted file mode 100644
index a7d4963..0000000
--- a/lib/argsbytype.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/* eslint prefer-reflect:0, no-var:0, key-spacing:0 */
-'use strict'
-
-// Import
-var typechecker = require('typechecker')
-
-// Define
-module.exports = function (args) {
- // convert argument objects to array
- if ( Array.isArray(args) === false ) args = Array.prototype.slice.call(args)
-
- // extract types
- var result = {
- arrays: [],
- booleans: [],
- dates: [],
- errors: [],
- functions: [],
- nulls: [],
- numbers: [],
- regexps: [],
- strings: [],
- objects: [],
- undefineds: []
- }
- args.forEach(function (arg) {
- var type = typechecker.getType(arg)
- result[type + 's'].push(arg)
- })
- return result
-}
diff --git a/nakefile.js b/nakefile.js
deleted file mode 100644
index c1ffd78..0000000
--- a/nakefile.js
+++ /dev/null
@@ -1,491 +0,0 @@
-// 2015 September 11
-// https://github.com/bevry/base
-'use strict'
-
-
-// =====================================
-// Imports
-
-const fsUtil = require('fs')
-const pathUtil = require('path')
-
-
-// =====================================
-// Variables
-
-// Define environment things
-const WINDOWS = process.platform.indexOf('win') === 0
-const NODE = process.execPath
-const NPM = WINDOWS ? process.execPath.replace('node.exe', 'npm.cmd') : 'npm'
-// const EXT = WINDOWS ? '.cmd' : ''
-const GIT = 'git'
-
-// Define project paths
-const APP_PATH = process.cwd()
-const PACKAGE_PATH = pathUtil.join(APP_PATH, 'package.json')
-const PACKAGE_DATA = require(PACKAGE_PATH)
-const PACKAGE_CONFIG = PACKAGE_DATA.nakeConfiguration || PACKAGE_DATA.cakeConfiguration || {}
-
-// Define module paths
-const MODULES_PATH = pathUtil.join(APP_PATH, 'node_modules')
-const DOCPAD_PATH = pathUtil.join(MODULES_PATH, 'docpad')
-const COFFEE = pathUtil.join(MODULES_PATH, '.bin', 'coffee')
-const PROJECTZ = pathUtil.join(MODULES_PATH, '.bin', 'projectz')
-const DOCCO = pathUtil.join(MODULES_PATH, '.bin', 'docco')
-const DOCPAD = pathUtil.join(MODULES_PATH, '.bin', 'docpad')
-const BISCOTTO = pathUtil.join(MODULES_PATH, '.bin', 'biscotto')
-const YUIDOC = pathUtil.join(MODULES_PATH, '.bin', 'yuidoc')
-const BABEL = pathUtil.join(MODULES_PATH, '.bin', 'babel')
-const ESLINT = pathUtil.join(MODULES_PATH, '.bin', 'eslint')
-const COFFEELINT = pathUtil.join(MODULES_PATH, '.bin', 'coffeelint')
-
-// Define configuration
-const config = {
- TEST_PATH: 'test',
- DOCCO_SRC_PATH: null,
- DOCCO_OUT_PATH: 'docs',
- BISCOTTO_SRC_PATH: null,
- BISCOTTO_OUT_PATH: 'docs',
- YUIDOC_SRC_PATH: null,
- YUIDOC_OUT_PATH: 'docs',
- YUIDOC_SYNTAX: 'js',
- COFFEE_SRC_PATH: null,
- COFFEE_OUT_PATH: 'out',
- DOCPAD_SRC_PATH: null,
- DOCPAD_OUT_PATH: 'out',
- BABEL_SRC_PATH: null,
- BABEL_OUT_PATH: 'es5',
- ESLINT_SRC_PATH: null,
- COFFEELINT_SRC_PATH: null
-}
-
-// Move package.json:nakeConfiguration into our configuration object
-Object.keys(PACKAGE_CONFIG).forEach(function (key) {
- const value = PACKAGE_CONFIG[key]
- config[key] = value
-})
-
-
-// =====================================
-// Generic
-
-const childProcess = require('child_process')
-
-const spawn = function (command, args, opts, next) {
- const commandString = command + ' ' + args.join(' ')
- if ( opts.output === true ) {
- console.log(commandString)
- opts.stdio = 'inherit'
- }
- const pid = childProcess.spawn(command, args, opts)
- pid.on('close', function () {
- let args = Array.prototype.slice.call(arguments)
- if ( args[0] === 1 ) {
- const error = new Error('Process [' + commandString + '] exited with error status code.')
- next(error)
- }
- else {
- next()
- }
- })
- return pid
-}
-
-const exec = function (command, opts, next) {
- if ( opts.output === true ) {
- console.log(command)
- return childProcess.exec(command, opts, function (error, stdout, stderr) {
- console.log(stdout)
- console.log(stderr)
- if ( next ) next(error)
- })
- }
- else {
- return childProcess.exec(command, opts, next)
- }
-}
-
-const steps = function (next, steps) {
- let step = 0
-
- const complete = function (error) {
- // success status code
- if ( error === 0 ) {
- error = null
- }
-
- // error status code
- else if ( error === 1 ) {
- error = new Error('Process exited with error status code')
- }
-
- // Error
- if ( error ) {
- next(error)
- }
- else {
- ++step
- if ( step === steps.length ) {
- next()
- }
- else {
- steps[step](complete)
- }
- }
- }
-
- return steps[step](complete)
-}
-
-
-// =====================================
-// Actions
-
-const actions = {
- clean: function (opts, next) {
- // Steps
- steps(next, [
- function (complete) {
- console.log('\nclean:')
-
- // Prepare rm args
- let args = ['-Rf']
-
- // Add compilation paths to args
- Object.keys(config).forEach(function (key) {
- let value = config[key]
- if ( key.indexOf('OUT_PATH') !== -1 ) {
- args.push(value)
- }
- })
-
- // Add common ignore paths to args
- ; [APP_PATH, config.TEST_PATH].forEach(function (path) {
- args.push(
- pathUtil.join(path, 'build'),
- pathUtil.join(path, 'components'),
- pathUtil.join(path, 'bower_components'),
- pathUtil.join(path, 'node_modules'),
- pathUtil.join(path, '*out'),
- pathUtil.join(path, '*log'),
- pathUtil.join(path, '*heapsnaphot'),
- pathUtil.join(path, '*cpuprofile')
- )
- })
-
- // rm
- spawn('rm', args, {output: true, cwd: APP_PATH}, complete)
- }
- ])
- },
-
- setup: function (opts, next) {
- // Steps
- steps(next, [
- function (complete) {
- console.log('\nnpm install (for app):')
- spawn(NPM, ['install'], {output: true, cwd: APP_PATH}, complete)
- },
-
- function (complete) {
- if ( !config.TEST_PATH || !fsUtil.existsSync(config.TEST_PATH) ) return complete()
- console.log('\nnpm install (for test):')
- spawn(NPM, ['install'], {output: true, cwd: config.TEST_PATH}, complete)
- },
-
- function (complete) {
- if ( !fsUtil.existsSync(DOCPAD_PATH) ) return complete()
- console.log('\nnpm install (for docpad tests):')
- spawn(NPM, ['install'], {output: true, cwd: DOCPAD_PATH}, complete)
- }
- ])
- },
-
- compile: function (opts, next) {
- // Steps
- steps(next, [
- function (complete) {
- if ( !config.COFFEE_SRC_PATH || !fsUtil.existsSync(COFFEE) ) return complete()
- console.log('\ncoffee compile:')
- spawn(NODE, [COFFEE, '-co', config.COFFEE_OUT_PATH, config.COFFEE_SRC_PATH], {output: true, cwd: APP_PATH}, complete)
- },
-
- function (complete) {
- if ( !config.BABEL_SRC_PATH || !fsUtil.existsSync(BABEL) ) return complete()
- console.log('\nbabel compile:')
- spawn(NODE, [BABEL, config.BABEL_SRC_PATH, '--out-dir', config.BABEL_OUT_PATH], {output: true, cwd: APP_PATH}, complete)
- },
-
- function (complete) {
- if ( !config.DOCPAD_SRC_PATH || !fsUtil.existsSync(DOCPAD) ) return complete()
- console.log('\ndocpad generate:')
- spawn(NODE, [DOCPAD, 'generate'], {output: true, cwd: APP_PATH}, complete)
- }
- ])
- },
-
- watch: function (opts, next) {
- // Steps
- steps(next, [
- function (complete) {
- if ( !config.BABEL_SRC_PATH || !fsUtil.existsSync(BABEL) ) return complete()
- console.log('\nbabel compile:')
- spawn(NODE, [BABEL, '-w', config.BABEL_SRC_PATH, '--out-dir', config.BABEL_OUT_PATH], {output: true, cwd: APP_PATH}, complete)
- },
-
- function (complete) {
- if ( !config.COFFEE_SRC_PATH || !fsUtil.existsSync(COFFEE) ) return complete()
- console.log('\ncoffee watch:')
- spawn(NODE, [COFFEE, '-wco', config.COFFEE_OUT_PATH, config.COFFEE_SRC_PATH], {output: true, cwd: APP_PATH}) // background
- complete() // continue while coffee runs in background
- },
-
- function (complete) {
- if ( !config.DOCPAD_SRC_PATH || !fsUtil.existsSync(DOCPAD) ) return complete()
- console.log('\ndocpad run:')
- spawn(NODE, [DOCPAD, 'run'], {output: true, cwd: APP_PATH}) // background
- complete() // continue while docpad runs in background
- }
- ])
- },
-
- verify: function (opts, next) {
- // Steps
- steps(next, [
- function (complete) {
- console.log('\nnake compile')
- actions.compile(opts, complete)
- },
-
- function (complete) {
- console.log('\ncoffeelint:')
- if ( !config.COFFEELINT_SRC_PATH || !fsUtil.existsSync(COFFEELINT) ) return complete()
- spawn(COFFEELINT, [config.COFFEELINT_SRC_PATH], {output: true, cwd: APP_PATH}, complete)
- },
-
- function (complete) {
- console.log('\neslint:')
- if ( !config.ESLINT_SRC_PATH || !fsUtil.existsSync(ESLINT) ) return complete()
- spawn(ESLINT, [config.ESLINT_SRC_PATH], {output: true, cwd: APP_PATH}, complete)
- },
-
- function (complete) {
- console.log('\nnpm test:')
- spawn(NPM, ['test'], {output: true, cwd: APP_PATH}, complete)
- }
- ])
- },
-
- meta: function (opts, next) {
- // Steps
- steps(next, [
- function (complete) {
- if ( !config.DOCCO_SRC_PATH || !fsUtil.existsSync(DOCCO) ) return complete()
- console.log('\ndocco compile:')
- let command = [NODE, DOCCO,
- '-o', config.DOCCO_OUT_PATH,
- config.DOCCO_SRC_PATH
- ].join(' ')
- exec(command, {output: true, cwd: APP_PATH}, complete)
- },
-
- function (complete) {
- if ( !config.BISCOTTO_SRC_PATH || !fsUtil.existsSync(BISCOTTO) ) return complete()
- console.log('\nbiscotto compile:')
- let command = [BISCOTTO,
- '-n', PACKAGE_DATA.title || PACKAGE_DATA.name,
- '--title', '"' + (PACKAGE_DATA.title || PACKAGE_DATA.name) + ' API Documentation"',
- '-r', 'README.md',
- '-o', config.BISCOTTO_OUT_PATH,
- config.BISCOTTO_SRC_PATH,
- '-', 'LICENSE.md HISTORY.md'
- ].join(' ')
- exec(command, {output: true, cwd: APP_PATH}, complete)
- },
-
- function (complete) {
- if ( !fsUtil.existsSync(YUIDOC) ) return complete()
- console.log('\nyuidoc compile:')
- let command = [YUIDOC]
- if ( config.YUIDOC_OUT_PATH ) command.push('-o', config.YUIDOC_OUT_PATH)
- if ( config.YUIDOC_SYNTAX ) command.push('--syntaxtype', config.YUIDOC_SYNTAX, '-e', '.' + config.YUIDOC_SYNTAX)
- if ( config.YUIDOC_SRC_PATH ) command.push(config.YUIDOC_SRC_PATH)
- spawn(NODE, command, {output: true, cwd: APP_PATH}, complete)
- },
-
- function (complete) {
- if ( !fsUtil.existsSync(PROJECTZ) ) return complete()
- console.log('\nprojectz compile')
- spawn(NODE, [PROJECTZ, 'compile'], {output: true, cwd: APP_PATH}, complete)
- }
- ])
- },
-
- prerelease: function (opts, next) {
- // Steps
- steps(next, [
- function (complete) {
- console.log('\nnake verify')
- actions.verify(opts, complete)
- },
-
- function (complete) {
- console.log('\nnake meta')
- actions.meta(opts, complete)
- }
- ])
- },
-
- release: function (opts, next) {
- // Steps
- steps(next, [
- function (complete) {
- console.log('\nnake prerelease')
- actions.prerelease(opts, complete)
- },
-
- function (complete) {
- console.log('\nnpm publish:')
- spawn(NPM, ['publish'], {output: true, cwd: APP_PATH}, complete)
- // ^ npm will run prepublish and postpublish for us
- },
-
- function (complete) {
- console.log('\nnake postrelease')
- actions.postrelease(opts, complete)
- }
- ])
- },
-
- postrelease: function (opts, next) {
- // Steps
- steps(next, [
- function (complete) {
- console.log('\ngit tag:')
- spawn(GIT, ['tag', 'v' + PACKAGE_DATA.version, '-a'], {output: true, cwd: APP_PATH}, complete)
- },
-
- function (complete) {
- console.log('\ngit push origin master:')
- spawn(GIT, ['push', 'origin', 'master'], {output: true, cwd: APP_PATH}, complete)
- },
-
- function (complete) {
- console.log('\ngit push tags:')
- spawn(GIT, ['push', 'origin', '--tags'], {output: true, cwd: APP_PATH}, complete)
- }
- ])
- }
-
-}
-
-// =====================================
-// Commands
-
-const commands = {
- clean: 'clean up instance',
- setup: 'setup our project for development',
- compile: 'compile our files',
- watch: 'compile our files initially, and again for each change',
- verify: 'verify our project works (includes compile)',
- meta: 'compile our meta files',
- prerelease: 'prepare our project for publishing (includes verify and meta)',
- release: 'publish our project using npm (includes prerelease and postrelease)',
- postrelease: 'prepare our project after publishing'
-}
-
-const aliases = {
- install: 'setup',
- test: 'verify',
- docs: 'meta',
- prepare: 'prerelease',
- prepublish: 'prerelease',
- publish: 'release',
- postpublish: 'postpublish'
-}
-
-const combined = {}
-
-Object.keys(commands).forEach(function (command) {
- const description = commands[command]
- const method = actions[command]
- combined[command] = {
- description: description,
- method: method
- }
-})
-
-Object.keys(aliases).forEach(function (alias) {
- const command = aliases[alias]
- const description = 'alias for ' + command
- const method = actions[command]
- combined[alias] = {
- description: description,
- method: method
- }
-})
-
-// =====================================
-// Command Line Interface
-
-let desiredAction = null
-let longestNameLength = 0
-
-const finish = function (error) {
- if ( error ) {
- process.stderr.write( (error.stack || error.message || error) + '\n' )
- throw error
- }
- else {
- process.stdout.write('OK\n')
- }
-}
-
-const output = function (list) {
- let result = ''
- Object.keys(list).forEach(function (key) {
- const description = combined[key].description
- let name = key + ': '
- while ( name.length < longestNameLength + 10 ) name += ' '
- result += name + ' ' + description + '\n'
- })
- return result
-}
-
-Object.keys(combined).forEach(function (command) {
- if ( command.length > longestNameLength ) {
- longestNameLength = command.length
- }
-
- if ( process.argv.indexOf(command) !== -1 ) {
- desiredAction = command
- }
-})
-
-// Fire the method
-if ( desiredAction ) {
- combined[desiredAction].method({}, finish)
-}
-
-// Display the help
-else {
- console.log([
- 'Nakefile help for ' + PACKAGE_DATA.name,
- '',
- 'USAGE',
- '',
- 'Standard usage:',
- 'node --harmony nakefile.js $action',
- '',
- 'NPM script usage:',
- 'npm run-script $action',
- '',
- 'Shell alias usage:',
- 'nake $action',
- '',
- 'ACTIONS',
- '',
- output(commands),
- output(aliases).trim()
- ].join('\n'))
-}
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..f8dfe45
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,4266 @@
+{
+ "name": "argsbytype",
+ "version": "1.1.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "acorn": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.3.0.tgz",
+ "integrity": "sha512-Yej+zOJ1Dm/IMZzzj78OntP/r3zHEaKcyNoU2lAaxPtrseM6rF0xwqoz5Q5ysAiED9hTjI2hgtvLXitlCN1/Ug==",
+ "dev": true
+ },
+ "acorn-jsx": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz",
+ "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=",
+ "dev": true,
+ "requires": {
+ "acorn": "3.3.0"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
+ "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=",
+ "dev": true
+ }
+ }
+ },
+ "ajv": {
+ "version": "5.5.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
+ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
+ "dev": true,
+ "requires": {
+ "co": "4.6.0",
+ "fast-deep-equal": "1.0.0",
+ "fast-json-stable-stringify": "2.0.0",
+ "json-schema-traverse": "0.3.1"
+ }
+ },
+ "ajv-keywords": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz",
+ "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=",
+ "dev": true
+ },
+ "ambi": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/ambi/-/ambi-2.5.0.tgz",
+ "integrity": "sha1-fI43K+SIkRV+fOoBy2+RQ9H3QiA=",
+ "dev": true,
+ "requires": {
+ "editions": "1.3.4",
+ "typechecker": "4.4.1"
+ }
+ },
+ "ansi-escapes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz",
+ "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "ansicolors": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz",
+ "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=",
+ "dev": true
+ },
+ "ansistyles": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/ansistyles/-/ansistyles-0.1.3.tgz",
+ "integrity": "sha1-XeYEFb2gcbs3EnhUyGT0GyMlRTk=",
+ "dev": true
+ },
+ "anymatch": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz",
+ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "micromatch": "2.3.11",
+ "normalize-path": "2.1.1"
+ }
+ },
+ "argparse": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
+ "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "1.0.3"
+ }
+ },
+ "arr-diff": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
+ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "arr-flatten": "1.1.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "optional": true
+ },
+ "array-union": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
+ "dev": true,
+ "requires": {
+ "array-uniq": "1.0.3"
+ }
+ },
+ "array-uniq": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
+ "dev": true
+ },
+ "array-unique": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
+ "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
+ "dev": true,
+ "optional": true
+ },
+ "arrify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
+ "dev": true
+ },
+ "asn1": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
+ "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=",
+ "dev": true
+ },
+ "assert-helpers": {
+ "version": "4.5.1",
+ "resolved": "https://registry.npmjs.org/assert-helpers/-/assert-helpers-4.5.1.tgz",
+ "integrity": "sha512-OatrgrHqVW/rFrkRwTLsPsxGkLBRMn3LIEjnYmT7xgJGWo4GKpI4dnwFUOu8IoVhC8TkJ0Za7LuRyXZTrdqEEw==",
+ "dev": true,
+ "requires": {
+ "ansicolors": "0.3.2",
+ "diff": "3.4.0",
+ "editions": "1.3.4"
+ }
+ },
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
+ },
+ "async-each": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
+ "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=",
+ "dev": true,
+ "optional": true
+ },
+ "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.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
+ "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-cli": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz",
+ "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=",
+ "dev": true,
+ "requires": {
+ "babel-core": "6.26.0",
+ "babel-polyfill": "6.26.0",
+ "babel-register": "6.26.0",
+ "babel-runtime": "6.26.0",
+ "chokidar": "1.7.0",
+ "commander": "2.13.0",
+ "convert-source-map": "1.5.1",
+ "fs-readdir-recursive": "1.1.0",
+ "glob": "7.1.2",
+ "lodash": "4.17.4",
+ "output-file-sync": "1.1.2",
+ "path-is-absolute": "1.0.1",
+ "slash": "1.0.0",
+ "source-map": "0.5.7",
+ "v8flags": "2.1.1"
+ }
+ },
+ "babel-code-frame": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
+ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "esutils": "2.0.2",
+ "js-tokens": "3.0.2"
+ }
+ },
+ "babel-core": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz",
+ "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=",
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "6.26.0",
+ "babel-generator": "6.26.0",
+ "babel-helpers": "6.24.1",
+ "babel-messages": "6.23.0",
+ "babel-register": "6.26.0",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0",
+ "babylon": "6.18.0",
+ "convert-source-map": "1.5.1",
+ "debug": "2.6.9",
+ "json5": "0.5.1",
+ "lodash": "4.17.4",
+ "minimatch": "3.0.4",
+ "path-is-absolute": "1.0.1",
+ "private": "0.1.8",
+ "slash": "1.0.0",
+ "source-map": "0.5.7"
+ }
+ },
+ "babel-generator": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz",
+ "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=",
+ "dev": true,
+ "requires": {
+ "babel-messages": "6.23.0",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0",
+ "detect-indent": "4.0.0",
+ "jsesc": "1.3.0",
+ "lodash": "4.17.4",
+ "source-map": "0.5.7",
+ "trim-right": "1.0.1"
+ }
+ },
+ "babel-helper-call-delegate": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz",
+ "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=",
+ "dev": true,
+ "requires": {
+ "babel-helper-hoist-variables": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-helper-define-map": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz",
+ "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=",
+ "dev": true,
+ "requires": {
+ "babel-helper-function-name": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0",
+ "lodash": "4.17.4"
+ }
+ },
+ "babel-helper-function-name": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz",
+ "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=",
+ "dev": true,
+ "requires": {
+ "babel-helper-get-function-arity": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-helper-get-function-arity": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz",
+ "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-helper-hoist-variables": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz",
+ "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-helper-optimise-call-expression": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz",
+ "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-helper-regex": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz",
+ "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0",
+ "lodash": "4.17.4"
+ }
+ },
+ "babel-helper-replace-supers": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz",
+ "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=",
+ "dev": true,
+ "requires": {
+ "babel-helper-optimise-call-expression": "6.24.1",
+ "babel-messages": "6.23.0",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-helpers": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz",
+ "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0"
+ }
+ },
+ "babel-messages": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
+ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-check-es2015-constants": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz",
+ "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-arrow-functions": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz",
+ "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-block-scoped-functions": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz",
+ "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-block-scoping": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz",
+ "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0",
+ "lodash": "4.17.4"
+ }
+ },
+ "babel-plugin-transform-es2015-classes": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz",
+ "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=",
+ "dev": true,
+ "requires": {
+ "babel-helper-define-map": "6.26.0",
+ "babel-helper-function-name": "6.24.1",
+ "babel-helper-optimise-call-expression": "6.24.1",
+ "babel-helper-replace-supers": "6.24.1",
+ "babel-messages": "6.23.0",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-computed-properties": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz",
+ "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-destructuring": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz",
+ "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-duplicate-keys": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz",
+ "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-for-of": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz",
+ "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-function-name": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz",
+ "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=",
+ "dev": true,
+ "requires": {
+ "babel-helper-function-name": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-literals": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz",
+ "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-amd": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz",
+ "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-transform-es2015-modules-commonjs": "6.26.0",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-commonjs": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz",
+ "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-transform-strict-mode": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-systemjs": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz",
+ "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=",
+ "dev": true,
+ "requires": {
+ "babel-helper-hoist-variables": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-umd": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz",
+ "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-transform-es2015-modules-amd": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-object-super": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz",
+ "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=",
+ "dev": true,
+ "requires": {
+ "babel-helper-replace-supers": "6.24.1",
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-parameters": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz",
+ "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=",
+ "dev": true,
+ "requires": {
+ "babel-helper-call-delegate": "6.24.1",
+ "babel-helper-get-function-arity": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-shorthand-properties": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz",
+ "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-spread": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz",
+ "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-sticky-regex": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz",
+ "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=",
+ "dev": true,
+ "requires": {
+ "babel-helper-regex": "6.26.0",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-template-literals": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz",
+ "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-typeof-symbol": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz",
+ "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-unicode-regex": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz",
+ "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=",
+ "dev": true,
+ "requires": {
+ "babel-helper-regex": "6.26.0",
+ "babel-runtime": "6.26.0",
+ "regexpu-core": "2.0.0"
+ }
+ },
+ "babel-plugin-transform-regenerator": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz",
+ "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=",
+ "dev": true,
+ "requires": {
+ "regenerator-transform": "0.10.1"
+ }
+ },
+ "babel-plugin-transform-strict-mode": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz",
+ "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-polyfill": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz",
+ "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "core-js": "2.5.3",
+ "regenerator-runtime": "0.10.5"
+ },
+ "dependencies": {
+ "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
+ }
+ }
+ },
+ "babel-preset-es2015": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz",
+ "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-check-es2015-constants": "6.22.0",
+ "babel-plugin-transform-es2015-arrow-functions": "6.22.0",
+ "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0",
+ "babel-plugin-transform-es2015-block-scoping": "6.26.0",
+ "babel-plugin-transform-es2015-classes": "6.24.1",
+ "babel-plugin-transform-es2015-computed-properties": "6.24.1",
+ "babel-plugin-transform-es2015-destructuring": "6.23.0",
+ "babel-plugin-transform-es2015-duplicate-keys": "6.24.1",
+ "babel-plugin-transform-es2015-for-of": "6.23.0",
+ "babel-plugin-transform-es2015-function-name": "6.24.1",
+ "babel-plugin-transform-es2015-literals": "6.22.0",
+ "babel-plugin-transform-es2015-modules-amd": "6.24.1",
+ "babel-plugin-transform-es2015-modules-commonjs": "6.26.0",
+ "babel-plugin-transform-es2015-modules-systemjs": "6.24.1",
+ "babel-plugin-transform-es2015-modules-umd": "6.24.1",
+ "babel-plugin-transform-es2015-object-super": "6.24.1",
+ "babel-plugin-transform-es2015-parameters": "6.24.1",
+ "babel-plugin-transform-es2015-shorthand-properties": "6.24.1",
+ "babel-plugin-transform-es2015-spread": "6.22.0",
+ "babel-plugin-transform-es2015-sticky-regex": "6.24.1",
+ "babel-plugin-transform-es2015-template-literals": "6.22.0",
+ "babel-plugin-transform-es2015-typeof-symbol": "6.23.0",
+ "babel-plugin-transform-es2015-unicode-regex": "6.24.1",
+ "babel-plugin-transform-regenerator": "6.26.0"
+ }
+ },
+ "babel-register": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz",
+ "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=",
+ "dev": true,
+ "requires": {
+ "babel-core": "6.26.0",
+ "babel-runtime": "6.26.0",
+ "core-js": "2.5.3",
+ "home-or-tmp": "2.0.0",
+ "lodash": "4.17.4",
+ "mkdirp": "0.5.1",
+ "source-map-support": "0.4.18"
+ }
+ },
+ "babel-runtime": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
+ "dev": true,
+ "requires": {
+ "core-js": "2.5.3",
+ "regenerator-runtime": "0.11.1"
+ }
+ },
+ "babel-template": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
+ "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0",
+ "babylon": "6.18.0",
+ "lodash": "4.17.4"
+ }
+ },
+ "babel-traverse": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
+ "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "6.26.0",
+ "babel-messages": "6.23.0",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0",
+ "babylon": "6.18.0",
+ "debug": "2.6.9",
+ "globals": "9.18.0",
+ "invariant": "2.2.2",
+ "lodash": "4.17.4"
+ }
+ },
+ "babel-types": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
+ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "esutils": "2.0.2",
+ "lodash": "4.17.4",
+ "to-fast-properties": "1.0.3"
+ }
+ },
+ "babylon": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
+ "dev": true
+ },
+ "badges": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/badges/-/badges-1.2.4.tgz",
+ "integrity": "sha1-jHts1k/3GrvAZpcvAtWdxCc/H5A=",
+ "dev": true,
+ "requires": {
+ "editions": "1.3.4"
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "dev": true
+ },
+ "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,
+ "requires": {
+ "tweetnacl": "0.14.5"
+ }
+ },
+ "binary-extensions": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz",
+ "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=",
+ "dev": true,
+ "optional": true
+ },
+ "binaryextensions": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.1.1.tgz",
+ "integrity": "sha512-XBaoWE9RW8pPdPQNibZsW2zh8TW6gcarXp1FZPwT8Uop8ScSNldJEWf2k9l3HeTqdrEwsOsFcq74RiJECW34yA==",
+ "dev": true
+ },
+ "boom": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz",
+ "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=",
+ "dev": true,
+ "requires": {
+ "hoek": "4.2.0"
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
+ "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
+ "dev": true,
+ "requires": {
+ "balanced-match": "1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
+ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "expand-range": "1.8.2",
+ "preserve": "0.2.0",
+ "repeat-element": "1.1.2"
+ }
+ },
+ "caller-path": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz",
+ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=",
+ "dev": true,
+ "requires": {
+ "callsites": "0.2.0"
+ }
+ },
+ "callsites": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz",
+ "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=",
+ "dev": true
+ },
+ "caseless": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
+ "dev": true
+ },
+ "caterpillar": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/caterpillar/-/caterpillar-3.0.1.tgz",
+ "integrity": "sha1-RUZagV/tAe8RLGj89Dp+bdO8Gbo=",
+ "dev": true,
+ "requires": {
+ "editions": "1.3.4",
+ "extendr": "3.3.0"
+ }
+ },
+ "caterpillar-filter": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/caterpillar-filter/-/caterpillar-filter-3.0.0.tgz",
+ "integrity": "sha1-WDOMJpwhB0AmuAPQUmi0DwL52IE=",
+ "dev": true,
+ "requires": {
+ "editions": "1.3.4"
+ }
+ },
+ "caterpillar-human": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/caterpillar-human/-/caterpillar-human-3.0.0.tgz",
+ "integrity": "sha1-PcytsXL7fuifjSo1skdc0/FaFXo=",
+ "dev": true,
+ "requires": {
+ "ansicolors": "0.3.2",
+ "ansistyles": "0.1.3",
+ "editions": "1.3.4"
+ }
+ },
+ "chainy-core": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/chainy-core/-/chainy-core-1.6.0.tgz",
+ "integrity": "sha1-9E1KE6QBcfsV6Lz1zb+t9FV2GSk=",
+ "dev": true,
+ "requires": {
+ "csextends": "1.1.1",
+ "taskgroup": "5.0.1"
+ }
+ },
+ "chainy-plugin-each": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/chainy-plugin-each/-/chainy-plugin-each-1.1.0.tgz",
+ "integrity": "sha1-glJBg6Ln+sf7pE/opxznSapczcY=",
+ "dev": true,
+ "requires": {
+ "taskgroup": "5.0.1"
+ }
+ },
+ "chainy-plugin-feed": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/chainy-plugin-feed/-/chainy-plugin-feed-1.0.0.tgz",
+ "integrity": "sha1-GvUyyzgk6HVjnFX9A1Ko38HNA3w=",
+ "dev": true,
+ "requires": {
+ "feedr": "2.13.5"
+ }
+ },
+ "chainy-plugin-map": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/chainy-plugin-map/-/chainy-plugin-map-1.0.5.tgz",
+ "integrity": "sha1-ltjF9h7nmRTrNXS/7TsWWdERiBM=",
+ "dev": true
+ },
+ "chainy-plugin-set": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/chainy-plugin-set/-/chainy-plugin-set-1.0.2.tgz",
+ "integrity": "sha1-9EV53Keqk8U+Pd0TCALgjYJA8Ec=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ }
+ },
+ "chardet": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz",
+ "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=",
+ "dev": true
+ },
+ "chokidar": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
+ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "anymatch": "1.3.2",
+ "async-each": "1.0.1",
+ "fsevents": "1.1.3",
+ "glob-parent": "2.0.0",
+ "inherits": "2.0.3",
+ "is-binary-path": "1.0.1",
+ "is-glob": "2.0.1",
+ "path-is-absolute": "1.0.1",
+ "readdirp": "2.1.0"
+ }
+ },
+ "circular-json": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz",
+ "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==",
+ "dev": true
+ },
+ "cli-color": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-1.2.0.tgz",
+ "integrity": "sha1-OlrnT9drYmevZm5p4q+70B3vNNE=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ansi-regex": "2.1.1",
+ "d": "1.0.0",
+ "es5-ext": "0.10.38",
+ "es6-iterator": "2.0.3",
+ "memoizee": "0.4.11",
+ "timers-ext": "0.1.2"
+ }
+ },
+ "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=",
+ "dev": true,
+ "requires": {
+ "restore-cursor": "2.0.0"
+ }
+ },
+ "cli-width": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
+ "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
+ "dev": true
+ },
+ "co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
+ "dev": true
+ },
+ "coffee-script": {
+ "version": "1.12.7",
+ "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz",
+ "integrity": "sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw==",
+ "dev": true
+ },
+ "color-convert": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz",
+ "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "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,
+ "requires": {
+ "delayed-stream": "1.0.0"
+ }
+ },
+ "commander": {
+ "version": "2.13.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz",
+ "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==",
+ "dev": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
+ "concat-stream": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz",
+ "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "readable-stream": "2.3.3",
+ "typedarray": "0.0.6"
+ }
+ },
+ "convert-source-map": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz",
+ "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=",
+ "dev": true
+ },
+ "core-js": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz",
+ "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=",
+ "dev": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+ "dev": true
+ },
+ "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=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "4.1.1",
+ "shebang-command": "1.2.0",
+ "which": "1.3.0"
+ }
+ },
+ "cryptiles": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz",
+ "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=",
+ "dev": true,
+ "requires": {
+ "boom": "5.2.0"
+ },
+ "dependencies": {
+ "boom": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz",
+ "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==",
+ "dev": true,
+ "requires": {
+ "hoek": "4.2.0"
+ }
+ }
+ }
+ },
+ "csextends": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/csextends/-/csextends-1.1.1.tgz",
+ "integrity": "sha1-zFPBNJ+vfwrmzfb2xKTZFW08TsE=",
+ "dev": true,
+ "requires": {
+ "coffee-script": "1.12.7"
+ }
+ },
+ "cson": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/cson/-/cson-4.1.0.tgz",
+ "integrity": "sha1-sQdTRPqdn+XPiNgPIdk2Ypa4Zcc=",
+ "dev": true,
+ "requires": {
+ "coffee-script": "1.12.7",
+ "cson-parser": "1.3.5",
+ "extract-opts": "3.3.1",
+ "requirefresh": "2.1.0",
+ "safefs": "4.1.0"
+ }
+ },
+ "cson-parser": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/cson-parser/-/cson-parser-1.3.5.tgz",
+ "integrity": "sha1-fsZ14DkUVTO/KmqFYHPxWZ2cLSQ=",
+ "dev": true,
+ "requires": {
+ "coffee-script": "1.12.7"
+ }
+ },
+ "d": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
+ "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
+ "dev": true,
+ "requires": {
+ "es5-ext": "0.10.38"
+ }
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "1.0.0"
+ }
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "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=",
+ "dev": true
+ },
+ "del": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
+ "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=",
+ "dev": true,
+ "requires": {
+ "globby": "5.0.0",
+ "is-path-cwd": "1.0.0",
+ "is-path-in-cwd": "1.0.0",
+ "object-assign": "4.1.1",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1",
+ "rimraf": "2.6.2"
+ }
+ },
+ "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-indent": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
+ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
+ "dev": true,
+ "requires": {
+ "repeating": "2.0.1"
+ }
+ },
+ "diff": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.4.0.tgz",
+ "integrity": "sha512-QpVuMTEoJMF7cKzi6bvWhRulU1fZqZnvyVQgNhPaxxuTYwyjn/j1v9falseQ/uXWwPnO56RBfwtg4h/EQXmucA==",
+ "dev": true
+ },
+ "doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "dev": true,
+ "requires": {
+ "esutils": "2.0.2"
+ }
+ },
+ "eachr": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/eachr/-/eachr-3.2.0.tgz",
+ "integrity": "sha1-LDXkPqCGUW95l8+At6pk1VpKRIQ=",
+ "dev": true,
+ "requires": {
+ "editions": "1.3.4",
+ "typechecker": "4.4.1"
+ }
+ },
+ "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,
+ "requires": {
+ "jsbn": "0.1.1"
+ }
+ },
+ "editions": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/editions/-/editions-1.3.4.tgz",
+ "integrity": "sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg=="
+ },
+ "es5-ext": {
+ "version": "0.10.38",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.38.tgz",
+ "integrity": "sha512-jCMyePo7AXbUESwbl8Qi01VSH2piY9s/a3rSU/5w/MlTIx8HPL1xn2InGN8ejt/xulcJgnTO7vqNtOAxzYd2Kg==",
+ "dev": true,
+ "requires": {
+ "es6-iterator": "2.0.3",
+ "es6-symbol": "3.1.1"
+ }
+ },
+ "es6-iterator": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
+ "dev": true,
+ "requires": {
+ "d": "1.0.0",
+ "es5-ext": "0.10.38",
+ "es6-symbol": "3.1.1"
+ }
+ },
+ "es6-symbol": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
+ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
+ "dev": true,
+ "requires": {
+ "d": "1.0.0",
+ "es5-ext": "0.10.38"
+ }
+ },
+ "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,
+ "optional": true,
+ "requires": {
+ "d": "1.0.0",
+ "es5-ext": "0.10.38",
+ "es6-iterator": "2.0.3",
+ "es6-symbol": "3.1.1"
+ }
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ },
+ "eslint": {
+ "version": "4.16.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.16.0.tgz",
+ "integrity": "sha512-YVXV4bDhNoHHcv0qzU4Meof7/P26B4EuaktMi5L1Tnt52Aov85KmYA8c5D+xyZr/BkhvwUqr011jDSD/QTULxg==",
+ "dev": true,
+ "requires": {
+ "ajv": "5.5.2",
+ "babel-code-frame": "6.26.0",
+ "chalk": "2.3.0",
+ "concat-stream": "1.6.0",
+ "cross-spawn": "5.1.0",
+ "debug": "3.1.0",
+ "doctrine": "2.1.0",
+ "eslint-scope": "3.7.1",
+ "eslint-visitor-keys": "1.0.0",
+ "espree": "3.5.2",
+ "esquery": "1.0.0",
+ "esutils": "2.0.2",
+ "file-entry-cache": "2.0.0",
+ "functional-red-black-tree": "1.0.1",
+ "glob": "7.1.2",
+ "globals": "11.3.0",
+ "ignore": "3.3.7",
+ "imurmurhash": "0.1.4",
+ "inquirer": "3.3.0",
+ "is-resolvable": "1.1.0",
+ "js-yaml": "3.10.0",
+ "json-stable-stringify-without-jsonify": "1.0.1",
+ "levn": "0.3.0",
+ "lodash": "4.17.4",
+ "minimatch": "3.0.4",
+ "mkdirp": "0.5.1",
+ "natural-compare": "1.4.0",
+ "optionator": "0.8.2",
+ "path-is-inside": "1.0.2",
+ "pluralize": "7.0.0",
+ "progress": "2.0.0",
+ "require-uncached": "1.0.3",
+ "semver": "5.5.0",
+ "strip-ansi": "4.0.0",
+ "strip-json-comments": "2.0.1",
+ "table": "4.0.2",
+ "text-table": "0.2.0"
+ },
+ "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
+ },
+ "ansi-styles": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
+ "dev": true,
+ "requires": {
+ "color-convert": "1.9.1"
+ }
+ },
+ "chalk": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
+ "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "3.2.0",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "4.5.0"
+ }
+ },
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "globals": {
+ "version": "11.3.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.3.0.tgz",
+ "integrity": "sha512-kkpcKNlmQan9Z5ZmgqKH/SMbSmjxQ7QjyNqfXVc8VJcoBV2UEg+sxQD15GQofGRh2hfpwUb70VC31DR7Rq5Hdw==",
+ "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,
+ "requires": {
+ "ansi-regex": "3.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
+ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
+ "dev": true,
+ "requires": {
+ "has-flag": "2.0.0"
+ }
+ }
+ }
+ },
+ "eslint-scope": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz",
+ "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=",
+ "dev": true,
+ "requires": {
+ "esrecurse": "4.2.0",
+ "estraverse": "4.2.0"
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz",
+ "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==",
+ "dev": true
+ },
+ "espree": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.2.tgz",
+ "integrity": "sha512-sadKeYwaR/aJ3stC2CdvgXu1T16TdYN+qwCpcWbMnGJ8s0zNWemzrvb2GbD4OhmJ/fwpJjudThAlLobGbWZbCQ==",
+ "dev": true,
+ "requires": {
+ "acorn": "5.3.0",
+ "acorn-jsx": "3.0.1"
+ }
+ },
+ "esprima": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz",
+ "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==",
+ "dev": true
+ },
+ "esquery": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz",
+ "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=",
+ "dev": true,
+ "requires": {
+ "estraverse": "4.2.0"
+ }
+ },
+ "esrecurse": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz",
+ "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=",
+ "dev": true,
+ "requires": {
+ "estraverse": "4.2.0",
+ "object-assign": "4.1.1"
+ }
+ },
+ "estraverse": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
+ "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
+ "dev": true
+ },
+ "esutils": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
+ "dev": true
+ },
+ "event-emitter": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
+ "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "d": "1.0.0",
+ "es5-ext": "0.10.38"
+ }
+ },
+ "event-emitter-grouped": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/event-emitter-grouped/-/event-emitter-grouped-2.5.0.tgz",
+ "integrity": "sha1-tsWioksdb3HIttuONCvY309ZIvw=",
+ "dev": true,
+ "requires": {
+ "ambi": "2.5.0",
+ "editions": "1.3.4",
+ "taskgroup": "5.0.1"
+ }
+ },
+ "expand-brackets": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
+ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-posix-bracket": "0.1.1"
+ }
+ },
+ "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=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "fill-range": "2.2.3"
+ }
+ },
+ "extend": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
+ "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=",
+ "dev": true
+ },
+ "extendr": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/extendr/-/extendr-3.3.0.tgz",
+ "integrity": "sha512-BmBSu+KOX2XOo3XMECiekGY8VAr3O4aGYgOaHQDNg2ez5rOYW+SDfNStao4VNzr+6N27Vw3A7HJKJMrHmAAXvQ==",
+ "dev": true,
+ "requires": {
+ "editions": "1.3.4",
+ "typechecker": "4.4.1"
+ }
+ },
+ "external-editor": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.1.0.tgz",
+ "integrity": "sha512-E44iT5QVOUJBKij4IIV3uvxuNlbKS38Tw1HiupxEIHPv9qtC2PrDYohbXV5U+1jnfIXttny8gUhj+oZvflFlzA==",
+ "dev": true,
+ "requires": {
+ "chardet": "0.4.2",
+ "iconv-lite": "0.4.19",
+ "tmp": "0.0.33"
+ }
+ },
+ "extglob": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
+ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-extglob": "1.0.0"
+ }
+ },
+ "extract-opts": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/extract-opts/-/extract-opts-3.3.1.tgz",
+ "integrity": "sha1-WrvtyYwNUgLjJ4cn+Rktfghsa+E=",
+ "dev": true,
+ "requires": {
+ "eachr": "3.2.0",
+ "editions": "1.3.4",
+ "typechecker": "4.4.1"
+ }
+ },
+ "extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
+ "dev": true
+ },
+ "fast-deep-equal": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz",
+ "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=",
+ "dev": true
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
+ "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
+ "dev": true
+ },
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
+ "dev": true
+ },
+ "feedr": {
+ "version": "2.13.5",
+ "resolved": "https://registry.npmjs.org/feedr/-/feedr-2.13.5.tgz",
+ "integrity": "sha1-Wr26NAH2c0JlccT8PiOMFmvsey0=",
+ "dev": true,
+ "requires": {
+ "cson": "4.1.0",
+ "eachr": "3.2.0",
+ "editions": "1.3.4",
+ "extendr": "3.3.0",
+ "istextorbinary": "2.2.1",
+ "js-yaml": "3.10.0",
+ "request": "2.83.0",
+ "safefs": "4.1.0",
+ "safeps": "6.4.0",
+ "taskgroup": "5.0.1",
+ "typechecker": "4.4.1",
+ "xml2js": "0.4.19"
+ }
+ },
+ "fellow": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/fellow/-/fellow-2.3.0.tgz",
+ "integrity": "sha1-Gr/9OeKKdF5ClPn9GtbdhSFqY1w=",
+ "dev": true,
+ "requires": {
+ "editions": "1.3.4"
+ }
+ },
+ "figures": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
+ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "1.0.5"
+ }
+ },
+ "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,
+ "requires": {
+ "flat-cache": "1.3.0",
+ "object-assign": "4.1.1"
+ }
+ },
+ "filename-regex": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
+ "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
+ "dev": true,
+ "optional": true
+ },
+ "fill-range": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz",
+ "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-number": "2.1.0",
+ "isobject": "2.1.0",
+ "randomatic": "1.1.7",
+ "repeat-element": "1.1.2",
+ "repeat-string": "1.6.1"
+ }
+ },
+ "flat-cache": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz",
+ "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=",
+ "dev": true,
+ "requires": {
+ "circular-json": "0.3.3",
+ "del": "2.2.2",
+ "graceful-fs": "4.1.11",
+ "write": "0.2.1"
+ }
+ },
+ "for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
+ "dev": true,
+ "optional": true
+ },
+ "for-own": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
+ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "for-in": "1.0.2"
+ }
+ },
+ "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.3.1",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz",
+ "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=",
+ "dev": true,
+ "requires": {
+ "asynckit": "0.4.0",
+ "combined-stream": "1.0.5",
+ "mime-types": "2.1.17"
+ }
+ },
+ "fs-readdir-recursive": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz",
+ "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==",
+ "dev": true
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "fsevents": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz",
+ "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "nan": "2.8.0",
+ "node-pre-gyp": "0.6.39"
+ },
+ "dependencies": {
+ "abbrev": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "ajv": {
+ "version": "4.11.8",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "co": "4.6.0",
+ "json-stable-stringify": "1.0.1"
+ }
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "aproba": {
+ "version": "1.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "are-we-there-yet": {
+ "version": "1.1.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "delegates": "1.0.0",
+ "readable-stream": "2.2.9"
+ }
+ },
+ "asn1": {
+ "version": "0.2.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "assert-plus": {
+ "version": "0.2.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "aws-sign2": {
+ "version": "0.6.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "aws4": {
+ "version": "1.6.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "balanced-match": {
+ "version": "0.4.2",
+ "bundled": true,
+ "dev": true
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tweetnacl": "0.14.5"
+ }
+ },
+ "block-stream": {
+ "version": "0.0.9",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3"
+ }
+ },
+ "boom": {
+ "version": "2.10.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "hoek": "2.16.3"
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.7",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "balanced-match": "0.4.2",
+ "concat-map": "0.0.1"
+ }
+ },
+ "buffer-shims": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "caseless": {
+ "version": "0.12.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "co": {
+ "version": "4.6.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "combined-stream": {
+ "version": "1.0.5",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "delayed-stream": "1.0.0"
+ }
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "console-control-strings": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "cryptiles": {
+ "version": "2.0.5",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "boom": "2.10.1"
+ }
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "assert-plus": "1.0.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "debug": {
+ "version": "2.6.8",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "deep-extend": {
+ "version": "0.4.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "delegates": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "detect-libc": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "ecc-jsbn": {
+ "version": "0.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "jsbn": "0.1.1"
+ }
+ },
+ "extend": {
+ "version": "3.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "extsprintf": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "form-data": {
+ "version": "2.1.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "asynckit": "0.4.0",
+ "combined-stream": "1.0.5",
+ "mime-types": "2.1.15"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "fstream": {
+ "version": "1.0.11",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "inherits": "2.0.3",
+ "mkdirp": "0.5.1",
+ "rimraf": "2.6.1"
+ }
+ },
+ "fstream-ignore": {
+ "version": "1.0.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "fstream": "1.0.11",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4"
+ }
+ },
+ "gauge": {
+ "version": "2.7.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "aproba": "1.1.1",
+ "console-control-strings": "1.1.0",
+ "has-unicode": "2.0.1",
+ "object-assign": "4.1.1",
+ "signal-exit": "3.0.2",
+ "string-width": "1.0.2",
+ "strip-ansi": "3.0.1",
+ "wide-align": "1.1.2"
+ }
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "assert-plus": "1.0.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "glob": {
+ "version": "7.1.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.1.11",
+ "bundled": true,
+ "dev": true
+ },
+ "har-schema": {
+ "version": "1.0.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "har-validator": {
+ "version": "4.2.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ajv": "4.11.8",
+ "har-schema": "1.0.5"
+ }
+ },
+ "has-unicode": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "hawk": {
+ "version": "3.1.3",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "boom": "2.10.1",
+ "cryptiles": "2.0.5",
+ "hoek": "2.16.3",
+ "sntp": "1.0.9"
+ }
+ },
+ "hoek": {
+ "version": "2.16.3",
+ "bundled": true,
+ "dev": true
+ },
+ "http-signature": {
+ "version": "1.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "assert-plus": "0.2.0",
+ "jsprim": "1.4.0",
+ "sshpk": "1.13.0"
+ }
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "once": "1.4.0",
+ "wrappy": "1.0.2"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "bundled": true,
+ "dev": true
+ },
+ "ini": {
+ "version": "1.3.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "jodid25519": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "jsbn": "0.1.1"
+ }
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "json-schema": {
+ "version": "0.2.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "json-stable-stringify": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "jsonify": "0.0.0"
+ }
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "jsonify": {
+ "version": "0.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "jsprim": {
+ "version": "1.4.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.0.2",
+ "json-schema": "0.2.3",
+ "verror": "1.3.6"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "mime-db": {
+ "version": "1.27.0",
+ "bundled": true,
+ "dev": true
+ },
+ "mime-types": {
+ "version": "2.1.15",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "mime-db": "1.27.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "brace-expansion": "1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "bundled": true,
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "node-pre-gyp": {
+ "version": "0.6.39",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "detect-libc": "1.0.2",
+ "hawk": "3.1.3",
+ "mkdirp": "0.5.1",
+ "nopt": "4.0.1",
+ "npmlog": "4.1.0",
+ "rc": "1.2.1",
+ "request": "2.81.0",
+ "rimraf": "2.6.1",
+ "semver": "5.3.0",
+ "tar": "2.2.1",
+ "tar-pack": "3.4.0"
+ }
+ },
+ "nopt": {
+ "version": "4.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "abbrev": "1.1.0",
+ "osenv": "0.1.4"
+ }
+ },
+ "npmlog": {
+ "version": "4.1.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "are-we-there-yet": "1.1.4",
+ "console-control-strings": "1.1.0",
+ "gauge": "2.7.4",
+ "set-blocking": "2.0.0"
+ }
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "oauth-sign": {
+ "version": "0.8.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "wrappy": "1.0.2"
+ }
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "osenv": {
+ "version": "0.1.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "os-homedir": "1.0.2",
+ "os-tmpdir": "1.0.2"
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "performance-now": {
+ "version": "0.2.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "process-nextick-args": {
+ "version": "1.0.7",
+ "bundled": true,
+ "dev": true
+ },
+ "punycode": {
+ "version": "1.4.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "qs": {
+ "version": "6.4.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "rc": {
+ "version": "1.2.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "deep-extend": "0.4.2",
+ "ini": "1.3.4",
+ "minimist": "1.2.0",
+ "strip-json-comments": "2.0.1"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "readable-stream": {
+ "version": "2.2.9",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "buffer-shims": "1.0.0",
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "1.0.7",
+ "string_decoder": "1.0.1",
+ "util-deprecate": "1.0.2"
+ }
+ },
+ "request": {
+ "version": "2.81.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "aws-sign2": "0.6.0",
+ "aws4": "1.6.0",
+ "caseless": "0.12.0",
+ "combined-stream": "1.0.5",
+ "extend": "3.0.1",
+ "forever-agent": "0.6.1",
+ "form-data": "2.1.4",
+ "har-validator": "4.2.1",
+ "hawk": "3.1.3",
+ "http-signature": "1.1.1",
+ "is-typedarray": "1.0.0",
+ "isstream": "0.1.2",
+ "json-stringify-safe": "5.0.1",
+ "mime-types": "2.1.15",
+ "oauth-sign": "0.8.2",
+ "performance-now": "0.2.0",
+ "qs": "6.4.0",
+ "safe-buffer": "5.0.1",
+ "stringstream": "0.0.5",
+ "tough-cookie": "2.3.2",
+ "tunnel-agent": "0.6.0",
+ "uuid": "3.0.1"
+ }
+ },
+ "rimraf": {
+ "version": "2.6.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "glob": "7.1.2"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "semver": {
+ "version": "5.3.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "sntp": {
+ "version": "1.0.9",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "hoek": "2.16.3"
+ }
+ },
+ "sshpk": {
+ "version": "1.13.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "asn1": "0.2.3",
+ "assert-plus": "1.0.0",
+ "bcrypt-pbkdf": "1.0.1",
+ "dashdash": "1.14.1",
+ "ecc-jsbn": "0.1.1",
+ "getpass": "0.1.7",
+ "jodid25519": "1.0.2",
+ "jsbn": "0.1.1",
+ "tweetnacl": "0.14.5"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.0.1"
+ }
+ },
+ "stringstream": {
+ "version": "0.0.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "tar": {
+ "version": "2.2.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "block-stream": "0.0.9",
+ "fstream": "1.0.11",
+ "inherits": "2.0.3"
+ }
+ },
+ "tar-pack": {
+ "version": "3.4.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "debug": "2.6.8",
+ "fstream": "1.0.11",
+ "fstream-ignore": "1.0.5",
+ "once": "1.4.0",
+ "readable-stream": "2.2.9",
+ "rimraf": "2.6.1",
+ "tar": "2.2.1",
+ "uid-number": "0.0.6"
+ }
+ },
+ "tough-cookie": {
+ "version": "2.3.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "punycode": "1.4.1"
+ }
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "safe-buffer": "5.0.1"
+ }
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "uid-number": {
+ "version": "0.0.6",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "uuid": {
+ "version": "3.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "verror": {
+ "version": "1.3.6",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "extsprintf": "1.0.2"
+ }
+ },
+ "wide-align": {
+ "version": "1.1.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "string-width": "1.0.2"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ }
+ }
+ },
+ "functional-red-black-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
+ "dev": true
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "1.0.0"
+ }
+ },
+ "glob": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ },
+ "glob-base": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
+ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "glob-parent": "2.0.0",
+ "is-glob": "2.0.1"
+ }
+ },
+ "glob-parent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
+ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
+ "dev": true,
+ "requires": {
+ "is-glob": "2.0.1"
+ }
+ },
+ "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": "5.0.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
+ "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
+ "dev": true,
+ "requires": {
+ "array-union": "1.0.2",
+ "arrify": "1.0.1",
+ "glob": "7.1.2",
+ "object-assign": "4.1.1",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "dev": true
+ },
+ "har-schema": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
+ "dev": true
+ },
+ "har-validator": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
+ "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
+ "dev": true,
+ "requires": {
+ "ajv": "5.5.2",
+ "har-schema": "2.0.0"
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
+ "has-flag": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
+ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
+ "dev": true
+ },
+ "hawk": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz",
+ "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==",
+ "dev": true,
+ "requires": {
+ "boom": "4.3.1",
+ "cryptiles": "3.1.2",
+ "hoek": "4.2.0",
+ "sntp": "2.1.0"
+ }
+ },
+ "hoek": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz",
+ "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==",
+ "dev": true
+ },
+ "home-or-tmp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz",
+ "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=",
+ "dev": true,
+ "requires": {
+ "os-homedir": "1.0.2",
+ "os-tmpdir": "1.0.2"
+ }
+ },
+ "http-signature": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "1.0.0",
+ "jsprim": "1.4.1",
+ "sshpk": "1.13.1"
+ }
+ },
+ "iconv-lite": {
+ "version": "0.4.19",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
+ "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==",
+ "dev": true
+ },
+ "ignore": {
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz",
+ "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==",
+ "dev": true
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "dev": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "requires": {
+ "once": "1.4.0",
+ "wrappy": "1.0.2"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
+ },
+ "inquirer": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
+ "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "3.0.0",
+ "chalk": "2.3.0",
+ "cli-cursor": "2.1.0",
+ "cli-width": "2.2.0",
+ "external-editor": "2.1.0",
+ "figures": "2.0.0",
+ "lodash": "4.17.4",
+ "mute-stream": "0.0.7",
+ "run-async": "2.3.0",
+ "rx-lite": "4.0.8",
+ "rx-lite-aggregates": "4.0.8",
+ "string-width": "2.1.1",
+ "strip-ansi": "4.0.0",
+ "through": "2.3.8"
+ },
+ "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
+ },
+ "ansi-styles": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
+ "dev": true,
+ "requires": {
+ "color-convert": "1.9.1"
+ }
+ },
+ "chalk": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
+ "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "3.2.0",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "4.5.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "3.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
+ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
+ "dev": true,
+ "requires": {
+ "has-flag": "2.0.0"
+ }
+ }
+ }
+ },
+ "invariant": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz",
+ "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=",
+ "dev": true,
+ "requires": {
+ "loose-envify": "1.3.1"
+ }
+ },
+ "is-binary-path": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "binary-extensions": "1.11.0"
+ }
+ },
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+ "dev": true
+ },
+ "is-dotfile": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
+ "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=",
+ "dev": true,
+ "optional": true
+ },
+ "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=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-primitive": "2.0.0"
+ }
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+ "dev": true,
+ "optional": true
+ },
+ "is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
+ "dev": true
+ },
+ "is-finite": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
+ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "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
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "1.0.0"
+ }
+ },
+ "is-number": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
+ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "kind-of": "3.2.2"
+ }
+ },
+ "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,
+ "requires": {
+ "is-path-inside": "1.0.1"
+ }
+ },
+ "is-path-inside": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
+ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
+ "dev": true,
+ "requires": {
+ "path-is-inside": "1.0.2"
+ }
+ },
+ "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=",
+ "dev": true,
+ "optional": true
+ },
+ "is-primitive": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
+ "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
+ "dev": true,
+ "optional": true
+ },
+ "is-promise": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
+ "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
+ "dev": true
+ },
+ "is-resolvable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz",
+ "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==",
+ "dev": true
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
+ "dev": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "isarray": "1.0.0"
+ }
+ },
+ "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": "2.2.1",
+ "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.2.1.tgz",
+ "integrity": "sha512-TS+hoFl8Z5FAFMK38nhBkdLt44CclNRgDHWeMgsV8ko3nDlr/9UI2Sf839sW7enijf8oKsZYXRvM8g0it9Zmcw==",
+ "dev": true,
+ "requires": {
+ "binaryextensions": "2.1.1",
+ "editions": "1.3.4",
+ "textextensions": "2.2.0"
+ }
+ },
+ "joe": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/joe/-/joe-2.0.2.tgz",
+ "integrity": "sha1-iHTrV9w+tDFVj37RX9VYBdDvb08=",
+ "dev": true,
+ "requires": {
+ "editions": "1.3.4",
+ "event-emitter-grouped": "2.5.0",
+ "taskgroup": "5.0.1"
+ }
+ },
+ "joe-reporter-console": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/joe-reporter-console/-/joe-reporter-console-2.0.1.tgz",
+ "integrity": "sha1-4BAbH/wN3s/7o0YE8AqxK6qfzzY=",
+ "dev": true,
+ "requires": {
+ "cli-color": "1.2.0",
+ "editions": "1.3.4"
+ }
+ },
+ "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.10.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz",
+ "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==",
+ "dev": true,
+ "requires": {
+ "argparse": "1.0.9",
+ "esprima": "4.0.0"
+ }
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
+ "dev": true,
+ "optional": true
+ },
+ "jsesc": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
+ "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=",
+ "dev": true
+ },
+ "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-schema-traverse": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
+ "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
+ "dev": true
+ },
+ "json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
+ "dev": true
+ },
+ "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
+ },
+ "json5": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
+ "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
+ "dev": true
+ },
+ "jsprim": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+ "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.2.3",
+ "verror": "1.10.0"
+ }
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ },
+ "levn": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "1.1.2",
+ "type-check": "0.3.2"
+ }
+ },
+ "lodash": {
+ "version": "4.17.4",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
+ "dev": true
+ },
+ "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,
+ "requires": {
+ "js-tokens": "3.0.2"
+ }
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "pseudomap": "1.0.2",
+ "yallist": "2.1.2"
+ }
+ },
+ "lru-queue": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz",
+ "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "es5-ext": "0.10.38"
+ }
+ },
+ "memoizee": {
+ "version": "0.4.11",
+ "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.11.tgz",
+ "integrity": "sha1-vemBdmPJ5A/bKk6hw2cpYIeujI8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "d": "1.0.0",
+ "es5-ext": "0.10.38",
+ "es6-weak-map": "2.0.2",
+ "event-emitter": "0.3.5",
+ "is-promise": "2.1.0",
+ "lru-queue": "0.1.0",
+ "next-tick": "1.0.0",
+ "timers-ext": "0.1.2"
+ }
+ },
+ "micromatch": {
+ "version": "2.3.11",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
+ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "arr-diff": "2.0.0",
+ "array-unique": "0.2.1",
+ "braces": "1.8.5",
+ "expand-brackets": "0.1.5",
+ "extglob": "0.3.2",
+ "filename-regex": "2.0.1",
+ "is-extglob": "1.0.0",
+ "is-glob": "2.0.1",
+ "kind-of": "3.2.2",
+ "normalize-path": "2.1.1",
+ "object.omit": "2.0.1",
+ "parse-glob": "3.0.4",
+ "regex-cache": "0.4.4"
+ }
+ },
+ "mime-db": {
+ "version": "1.30.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz",
+ "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=",
+ "dev": true
+ },
+ "mime-types": {
+ "version": "2.1.17",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz",
+ "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=",
+ "dev": true,
+ "requires": {
+ "mime-db": "1.30.0"
+ }
+ },
+ "mimic-fn": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz",
+ "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "1.1.8"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "mute-stream": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
+ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
+ "dev": true
+ },
+ "nan": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz",
+ "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=",
+ "dev": true,
+ "optional": true
+ },
+ "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
+ },
+ "next-tick": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
+ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=",
+ "dev": true
+ },
+ "normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "dev": true,
+ "requires": {
+ "remove-trailing-separator": "1.1.0"
+ }
+ },
+ "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=",
+ "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=",
+ "dev": true
+ },
+ "object.omit": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
+ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "for-own": "0.1.5",
+ "is-extendable": "0.1.1"
+ }
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "requires": {
+ "wrappy": "1.0.2"
+ }
+ },
+ "onetime": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "1.1.0"
+ }
+ },
+ "optionator": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
+ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
+ "dev": true,
+ "requires": {
+ "deep-is": "0.1.3",
+ "fast-levenshtein": "2.0.6",
+ "levn": "0.3.0",
+ "prelude-ls": "1.1.2",
+ "type-check": "0.3.2",
+ "wordwrap": "1.0.0"
+ }
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+ "dev": true
+ },
+ "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=",
+ "dev": true
+ },
+ "output-file-sync": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz",
+ "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "mkdirp": "0.5.1",
+ "object-assign": "4.1.1"
+ }
+ },
+ "parse-glob": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
+ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "glob-base": "0.3.0",
+ "is-dotfile": "1.0.3",
+ "is-extglob": "1.0.0",
+ "is-glob": "2.0.1"
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true
+ },
+ "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
+ },
+ "performance-now": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
+ "dev": true
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+ "dev": true
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "dev": true,
+ "requires": {
+ "pinkie": "2.0.4"
+ }
+ },
+ "pluralize": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz",
+ "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
+ "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=",
+ "dev": true
+ },
+ "preserve": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
+ "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
+ "dev": true,
+ "optional": true
+ },
+ "private": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
+ "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",
+ "dev": true
+ },
+ "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=",
+ "dev": true
+ },
+ "progress": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz",
+ "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=",
+ "dev": true
+ },
+ "projectz": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/projectz/-/projectz-1.4.0.tgz",
+ "integrity": "sha1-Iq3X40bb+3BMjsHrK0PTbts2AlA=",
+ "dev": true,
+ "requires": {
+ "badges": "1.2.4",
+ "caterpillar": "3.0.1",
+ "caterpillar-filter": "3.0.0",
+ "caterpillar-human": "3.0.0",
+ "chainy-core": "1.6.0",
+ "chainy-plugin-each": "1.1.0",
+ "chainy-plugin-feed": "1.0.0",
+ "chainy-plugin-map": "1.0.5",
+ "chainy-plugin-set": "1.0.2",
+ "commander": "2.13.0",
+ "cson": "4.1.0",
+ "eachr": "3.2.0",
+ "editions": "1.3.4",
+ "extendr": "3.3.0",
+ "fellow": "2.3.0",
+ "safefs": "4.1.0",
+ "spdx": "0.5.1",
+ "spdx-license-list": "3.0.1",
+ "taskgroup": "5.0.1",
+ "typechecker": "4.4.1"
+ }
+ },
+ "pseudomap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
+ "dev": true
+ },
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
+ "dev": true
+ },
+ "qs": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
+ "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==",
+ "dev": true
+ },
+ "randomatic": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz",
+ "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-number": "3.0.0",
+ "kind-of": "4.0.0"
+ },
+ "dependencies": {
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "kind-of": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "1.0.7",
+ "safe-buffer": "5.1.1",
+ "string_decoder": "1.0.3",
+ "util-deprecate": "1.0.2"
+ }
+ },
+ "readdirp": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz",
+ "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "minimatch": "3.0.4",
+ "readable-stream": "2.3.3",
+ "set-immediate-shim": "1.0.1"
+ }
+ },
+ "regenerate": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz",
+ "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==",
+ "dev": true
+ },
+ "regenerator-runtime": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
+ "dev": true
+ },
+ "regenerator-transform": {
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz",
+ "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0",
+ "private": "0.1.8"
+ }
+ },
+ "regex-cache": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
+ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-equal-shallow": "0.1.3"
+ }
+ },
+ "regexpu-core": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz",
+ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=",
+ "dev": true,
+ "requires": {
+ "regenerate": "1.3.3",
+ "regjsgen": "0.2.0",
+ "regjsparser": "0.1.5"
+ }
+ },
+ "regjsgen": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
+ "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
+ "dev": true
+ },
+ "regjsparser": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
+ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
+ "dev": true,
+ "requires": {
+ "jsesc": "0.5.0"
+ },
+ "dependencies": {
+ "jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+ "dev": true
+ }
+ }
+ },
+ "remove-trailing-separator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
+ "dev": true
+ },
+ "repeat-element": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
+ "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=",
+ "dev": true
+ },
+ "repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
+ "dev": true,
+ "optional": true
+ },
+ "repeating": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+ "dev": true,
+ "requires": {
+ "is-finite": "1.0.2"
+ }
+ },
+ "request": {
+ "version": "2.83.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz",
+ "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==",
+ "dev": true,
+ "requires": {
+ "aws-sign2": "0.7.0",
+ "aws4": "1.6.0",
+ "caseless": "0.12.0",
+ "combined-stream": "1.0.5",
+ "extend": "3.0.1",
+ "forever-agent": "0.6.1",
+ "form-data": "2.3.1",
+ "har-validator": "5.0.3",
+ "hawk": "6.0.2",
+ "http-signature": "1.2.0",
+ "is-typedarray": "1.0.0",
+ "isstream": "0.1.2",
+ "json-stringify-safe": "5.0.1",
+ "mime-types": "2.1.17",
+ "oauth-sign": "0.8.2",
+ "performance-now": "2.1.0",
+ "qs": "6.5.1",
+ "safe-buffer": "5.1.1",
+ "stringstream": "0.0.5",
+ "tough-cookie": "2.3.3",
+ "tunnel-agent": "0.6.0",
+ "uuid": "3.2.1"
+ }
+ },
+ "require-uncached": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz",
+ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=",
+ "dev": true,
+ "requires": {
+ "caller-path": "0.1.0",
+ "resolve-from": "1.0.1"
+ }
+ },
+ "requirefresh": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/requirefresh/-/requirefresh-2.1.0.tgz",
+ "integrity": "sha1-dC3Mwg86lpGNZsbxWX3I/+vE9vU=",
+ "dev": true,
+ "requires": {
+ "editions": "1.3.4"
+ }
+ },
+ "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": "2.0.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
+ "dev": true,
+ "requires": {
+ "onetime": "2.0.1",
+ "signal-exit": "3.0.2"
+ }
+ },
+ "rimraf": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
+ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
+ "dev": true,
+ "requires": {
+ "glob": "7.1.2"
+ }
+ },
+ "run-async": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
+ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
+ "dev": true,
+ "requires": {
+ "is-promise": "2.1.0"
+ }
+ },
+ "rx-lite": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz",
+ "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=",
+ "dev": true
+ },
+ "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=",
+ "dev": true,
+ "requires": {
+ "rx-lite": "4.0.8"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
+ "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
+ "dev": true
+ },
+ "safefs": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/safefs/-/safefs-4.1.0.tgz",
+ "integrity": "sha1-+CrrS9165R9lPrIPZyizBYyNZEU=",
+ "dev": true,
+ "requires": {
+ "editions": "1.3.4",
+ "graceful-fs": "4.1.11"
+ }
+ },
+ "safeps": {
+ "version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/safeps/-/safeps-6.4.0.tgz",
+ "integrity": "sha1-s2Kxfd5GVS9xtn1nW1GQKHz3tjw=",
+ "dev": true,
+ "requires": {
+ "editions": "1.3.4",
+ "extract-opts": "3.3.1",
+ "safefs": "4.1.0",
+ "taskgroup": "5.0.1",
+ "typechecker": "4.4.1"
+ }
+ },
+ "sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
+ "dev": true
+ },
+ "semver": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
+ "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==",
+ "dev": true
+ },
+ "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=",
+ "dev": true,
+ "optional": true
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+ "dev": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
+ "dev": true
+ },
+ "slash": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
+ "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
+ "dev": true
+ },
+ "slice-ansi": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz",
+ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "2.0.0"
+ }
+ },
+ "sntp": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz",
+ "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==",
+ "dev": true,
+ "requires": {
+ "hoek": "4.2.0"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "source-map-support": {
+ "version": "0.4.18",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
+ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
+ "dev": true,
+ "requires": {
+ "source-map": "0.5.7"
+ }
+ },
+ "spdx": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/spdx/-/spdx-0.5.1.tgz",
+ "integrity": "sha1-02wnUIi0jXWpBGzUSoOM5LUzmZg=",
+ "dev": true,
+ "requires": {
+ "spdx-exceptions": "1.0.5",
+ "spdx-license-ids": "1.2.2"
+ }
+ },
+ "spdx-exceptions": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-1.0.5.tgz",
+ "integrity": "sha1-nSGsTaS9tx0GD7dOWmdTHQMsu6Y=",
+ "dev": true
+ },
+ "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=",
+ "dev": true
+ },
+ "spdx-license-list": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-license-list/-/spdx-license-list-3.0.1.tgz",
+ "integrity": "sha1-Fj1yEj4A9Pi9bhgSVpawCfEkj/U=",
+ "dev": true
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
+ },
+ "sshpk": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz",
+ "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=",
+ "dev": true,
+ "requires": {
+ "asn1": "0.2.3",
+ "assert-plus": "1.0.0",
+ "bcrypt-pbkdf": "1.0.1",
+ "dashdash": "1.14.1",
+ "ecc-jsbn": "0.1.1",
+ "getpass": "0.1.7",
+ "jsbn": "0.1.1",
+ "tweetnacl": "0.14.5"
+ }
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "2.0.0",
+ "strip-ansi": "4.0.0"
+ },
+ "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
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "3.0.0"
+ }
+ }
+ }
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "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=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
+ "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=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ },
+ "table": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz",
+ "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==",
+ "dev": true,
+ "requires": {
+ "ajv": "5.5.2",
+ "ajv-keywords": "2.1.1",
+ "chalk": "2.3.0",
+ "lodash": "4.17.4",
+ "slice-ansi": "1.0.0",
+ "string-width": "2.1.1"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
+ "dev": true,
+ "requires": {
+ "color-convert": "1.9.1"
+ }
+ },
+ "chalk": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
+ "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "3.2.0",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "4.5.0"
+ }
+ },
+ "supports-color": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
+ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
+ "dev": true,
+ "requires": {
+ "has-flag": "2.0.0"
+ }
+ }
+ }
+ },
+ "taskgroup": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/taskgroup/-/taskgroup-5.0.1.tgz",
+ "integrity": "sha1-CHNsmyRoOxQ0d0Ix60tzqnw/ebU=",
+ "dev": true,
+ "requires": {
+ "ambi": "2.5.0",
+ "eachr": "3.2.0",
+ "editions": "1.3.4",
+ "extendr": "3.3.0"
+ }
+ },
+ "text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
+ "dev": true
+ },
+ "textextensions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.2.0.tgz",
+ "integrity": "sha512-j5EMxnryTvKxwH2Cq+Pb43tsf6sdEgw6Pdwxk83mPaq0ToeFJt6WE4J3s5BqY7vmjlLgkgXvhtXUxo80FyBhCA==",
+ "dev": true
+ },
+ "through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
+ "dev": true
+ },
+ "timers-ext": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.2.tgz",
+ "integrity": "sha1-YcxHp2wavTGV8UUn+XjViulMUgQ=",
+ "dev": true,
+ "requires": {
+ "es5-ext": "0.10.38",
+ "next-tick": "1.0.0"
+ }
+ },
+ "tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "dev": true,
+ "requires": {
+ "os-tmpdir": "1.0.2"
+ }
+ },
+ "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
+ },
+ "tough-cookie": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz",
+ "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=",
+ "dev": true,
+ "requires": {
+ "punycode": "1.4.1"
+ }
+ },
+ "trim-right": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
+ "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
+ "dev": true
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "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=",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "1.1.2"
+ }
+ },
+ "typechecker": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/typechecker/-/typechecker-4.4.1.tgz",
+ "integrity": "sha1-+XuV9RsDhBchLWd9RaNz7nvO1+Y=",
+ "requires": {
+ "editions": "1.3.4"
+ }
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+ "dev": true
+ },
+ "user-home": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz",
+ "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=",
+ "dev": true
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+ "dev": true
+ },
+ "uuid": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz",
+ "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==",
+ "dev": true
+ },
+ "v8flags": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz",
+ "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=",
+ "dev": true,
+ "requires": {
+ "user-home": "1.1.1"
+ }
+ },
+ "verror": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "1.3.0"
+ }
+ },
+ "which": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz",
+ "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==",
+ "dev": true,
+ "requires": {
+ "isexe": "2.0.0"
+ }
+ },
+ "wordwrap": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
+ "dev": true
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "write": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz",
+ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=",
+ "dev": true,
+ "requires": {
+ "mkdirp": "0.5.1"
+ }
+ },
+ "xml2js": {
+ "version": "0.4.19",
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz",
+ "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==",
+ "dev": true,
+ "requires": {
+ "sax": "1.2.4",
+ "xmlbuilder": "9.0.4"
+ }
+ },
+ "xmlbuilder": {
+ "version": "9.0.4",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.4.tgz",
+ "integrity": "sha1-UZy0ymhtAFqEINNJbz8MruzKWA8=",
+ "dev": true
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+ "dev": true
+ }
+ }
+}
diff --git a/package.json b/package.json
index e28c49c..db8d64b 100644
--- a/package.json
+++ b/package.json
@@ -1,15 +1,15 @@
{
"title": "Arguments By Type",
"name": "argsbytype",
- "version": "1.0.1",
+ "version": "1.1.0",
"description": "Provide some arguments, get back a hash object of the arguments indexed by their type. Very useful for agnostic argument orders.",
"homepage": "https://github.com/bevry/argsbytype",
+ "license": "MIT",
"keywords": [
"arguments",
"args",
"utility"
],
- "license": "MIT",
"badges": {
"list": [
"travisci",
@@ -18,66 +18,100 @@
"daviddm",
"daviddmdev",
"---",
- "slackin",
"patreon",
+ "opencollective",
"gratipay",
"flattr",
"paypal",
"bitcoin",
- "wishlist"
+ "wishlist",
+ "---",
+ "slackin"
],
"config": {
"patreonUsername": "bevry",
+ "opencollectiveUsername": "bevry",
"gratipayUsername": "bevry",
- "flattrCode": "344188/balupton-on-Flattr",
+ "flattrUsername": "balupton",
"paypalURL": "https://bevry.me/paypal",
"bitcoinURL": "https://bevry.me/bitcoin",
"wishlistURL": "https://bevry.me/wishlist",
"slackinURL": "https://slack.bevry.me"
}
},
- "author": "2014+ Bevry Pty Ltd (https://bevry.me)",
+ "author": "2014+ Bevry Pty Ltd (http://bevry.me)",
"maintainers": [
- "Benjamin Lupton (https://balupton.com)"
+ "Benjamin Lupton (http://balupton.com)"
],
"contributors": [
- "Benjamin Lupton (https://balupton.com)",
- "Benjamin Lupton (http://balupton.com)"
+ "Benjamin Lupton (http://balupton.com)"
],
"bugs": {
"url": "https://github.com/bevry/argsbytype/issues"
},
"repository": {
"type": "git",
- "url": "http://github.com/bevry/argsbytype.git"
+ "url": "https://github.com/bevry/argsbytype.git"
},
"engines": {
- "node": ">=0.4"
+ "node": ">=0.8"
},
- "browsers": true,
- "main": "./lib/argsbytype.js",
+ "editions": [
+ {
+ "description": "Source + ESNext + Require",
+ "directory": "source",
+ "entry": "index.js",
+ "syntaxes": [
+ "javascript",
+ "esnext",
+ "require"
+ ]
+ },
+ {
+ "description": "Babel Compiled + ES2015 + Require",
+ "directory": "es2015",
+ "entry": "index.js",
+ "syntaxes": [
+ "javascript",
+ "es2015",
+ "require"
+ ]
+ }
+ ],
+ "main": "index.js",
+ "browser": "es2015/index.js",
"dependencies": {
+ "editions": "^1.3.4",
"typechecker": "^4.0.1"
},
"devDependencies": {
- "assert-helpers": "^4.1.0",
- "eslint": "^1.10.3",
- "joe": "^1.6.0",
- "joe-reporter-console": "^1.2.1",
- "projectz": "^1.0.0"
+ "assert-helpers": "^4.5.1",
+ "babel-cli": "^6.26.0",
+ "babel-preset-es2015": "^6.24.1",
+ "eslint": "^4.16.0",
+ "joe": "^2.0.2",
+ "joe-reporter-console": "^2.0.1",
+ "projectz": "^1.4.0"
},
"scripts": {
- "clean": "node --harmony nakefile.js clean",
- "setup": "node --harmony nakefile.js setup",
- "compile": "node --harmony nakefile.js compile",
- "watch": "node --harmony nakefile.js watch",
- "verify": "node --harmony nakefile.js verify",
- "meta": "node --harmony nakefile.js meta",
- "prepare": "node --harmony nakefile.js prepare",
- "release": "node --harmony nakefile.js release",
- "test": "node --harmony ./test/argsbytype-test.js"
+ "our:setup": "npm run our:setup:npm",
+ "our:setup:npm": "npm install",
+ "our:clean": "rm -Rf ./docs ./es2015 ./es5 ./out",
+ "our:compile": "npm run our:compile:es2015",
+ "our:compile:es2015": "babel ./source --out-dir ./es2015 --presets es2015",
+ "our:meta": "npm run our:meta:projectz",
+ "our:meta:projectz": "projectz compile",
+ "our:verify": "npm run our:verify:eslint",
+ "our:verify:eslint": "eslint --fix ./source",
+ "our:test": "npm run our:verify && npm test",
+ "our:release": "npm run our:release:prepare && npm run our:release:check && npm run our:release:tag && npm run our:release:push",
+ "our:release:prepare": "npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta",
+ "our:release:check": "npm run our:release:check:changelog && npm run our:release:check:dirty",
+ "our:release:check:changelog": "cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)",
+ "our:release:check:dirty": "git diff --exit-code",
+ "our:release:tag": "export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"",
+ "our:release:push": "git push origin master && git push origin --tags",
+ "test": "node --harmony ./test.js --joe-reporter=console"
},
- "nakeConfiguration": {
- "ESLINT_SRC_PATH": "esnext"
- }
+ "browsers": true
}
diff --git a/source/index.js b/source/index.js
new file mode 100644
index 0000000..fea0c87
--- /dev/null
+++ b/source/index.js
@@ -0,0 +1,30 @@
+'use strict'
+
+// Import
+const typechecker = require('typechecker')
+
+// Define
+module.exports = function argsbytype (args) {
+ // convert argument objects to array
+ if (Array.isArray(args) === false) args = Array.prototype.slice.call(args)
+
+ // extract types
+ const result = {
+ arrays: [],
+ booleans: [],
+ dates: [],
+ errors: [],
+ functions: [],
+ nulls: [],
+ numbers: [],
+ regexps: [],
+ strings: [],
+ objects: [],
+ undefineds: []
+ }
+ args.forEach(function (arg) {
+ const type = typechecker.getType(arg)
+ result[type + 's'].push(arg)
+ })
+ return result
+}
diff --git a/source/test.js b/source/test.js
new file mode 100644
index 0000000..b0bf30f
--- /dev/null
+++ b/source/test.js
@@ -0,0 +1,41 @@
+/* eslint prefer-rest-params:0, no-undefined:0, no-console:0 */
+'use strict'
+
+// Import
+const argsbytype = require('../')
+const deepEqual = require('assert-helpers').deepEqual,
+joe = require('joe')
+
+// Tests
+joe.describe('argsbytype', function (describe, it) {
+ const now = new Date()
+ const err = new Error('sup')
+ function cb () { }
+ const input = [1, 'two', 3, 'four', { a: 'b' }, /c/, null, false, true, undefined, now, [1, 2, 3], err, cb]
+ const expectedResult = {
+ numbers: [1, 3],
+ strings: ['two', 'four'],
+ objects: [{ a: 'b' }],
+ regexps: [/c/],
+ nulls: [null],
+ booleans: [false, true],
+ undefineds: [undefined],
+ dates: [now],
+ arrays: [[1, 2, 3]],
+ errors: [err],
+ functions: [cb]
+ }
+
+ it('should provide the expected output when given an array', function () {
+ const actualResult = argsbytype(input)
+ deepEqual(actualResult, expectedResult, 'results are as expected')
+ })
+
+ it('should provide the expected output when given arguments', function () {
+ function fn () {
+ const actualResult = argsbytype(arguments)
+ deepEqual(actualResult, expectedResult, 'results are as expected')
+ }
+ fn(...input)
+ })
+})
diff --git a/test.js b/test.js
new file mode 100644
index 0000000..553d33b
--- /dev/null
+++ b/test.js
@@ -0,0 +1,5 @@
+// 2016 December 29
+// https://github.com/bevry/editions
+'use strict'
+
+module.exports = require('editions').requirePackage(__dirname, require, 'test.js')
diff --git a/test/argsbytype-test.js b/test/argsbytype-test.js
deleted file mode 100644
index 775d82b..0000000
--- a/test/argsbytype-test.js
+++ /dev/null
@@ -1,41 +0,0 @@
-/* eslint prefer-reflect:0, no-var:0, prefer-spread:0, key-spacing:0, object-shorthand:0, no-magic-numbers:0, no-undefined:0 */
-'use strict'
-
-// Import
-var deepEqual = require('assert-helpers').deepEqual,
- joe = require('joe')
-
-// Tests
-joe.describe('argsbytype', function (describe, it) {
- var argsbytype = require('../')
- var now = new Date()
- var err = new Error('sup')
- function cb () {}
- var input = [1, 'two', 3, 'four', {a: 'b'}, /c/, null, false, true, undefined, now, [1, 2, 3], err, cb]
- var expectedResult = {
- numbers: [1, 3],
- strings: ['two', 'four'],
- objects: [{a:'b'}],
- regexps: [/c/],
- nulls: [null],
- booleans: [false, true],
- undefineds: [undefined],
- dates: [now],
- arrays: [[1, 2, 3]],
- errors: [err],
- functions: [cb]
- }
-
- it('should provide the expected output when given an array', function () {
- var actualResult = argsbytype(input)
- deepEqual(actualResult, expectedResult, 'results are as expected')
- })
-
- it('should provide the expected output when given arguments', function () {
- function fn () {
- var actualResult = argsbytype(arguments)
- deepEqual(actualResult, expectedResult, 'results are as expected')
- }
- fn.apply(null, input)
- })
-})