diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/.DS_Store differ diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 0000000..738cf4a --- /dev/null +++ b/.eslintrc @@ -0,0 +1,60 @@ +{ "extends": ["eslint-config-airbnb"], + "env": { + "browser": false, + "node": true, + "mocha": true + }, + "parser": "babel-eslint", + "parserOptions": { + "sourceType": "module" + }, + "rules": { + "import/default": 0, + "import/no-duplicates": 0, + "import/named": 0, + "import/namespace": 0, + "import/no-unresolved": 0, + "import/extensions": 0, + "import/prefer-default-export": 0, + "import/no-extraneous-dependencies": 0, + "comma-dangle": 0, + "indent": [2, 2, {"SwitchCase": 1}], + "no-alert": 0, + "strict": 0, + "arrow-parens": 0, + "class-methods-use-this": 0, + "newline-per-chained-call": 0, + "no-underscore-dangle": 0, + "no-trailing-spaces": 0, + + // OFF + "global-require": 0, + "no-console": 0, + "eol-last": 0, + + // ERRORS + "arrow-body-style": [2, "as-needed"], + "no-confusing-arrow": [2, {"allowParens": true}], + "import/no-named-as-default": 2, + + // WARNINGS + "padded-blocks": 1, + "quotes": 1, + "quote-props": 1, + "semi": 1, + "no-multiple-empty-lines": 1, + "no-unused-vars": 1 + }, + "plugins": [ + "import" + ], + "settings": { + "import/parser": "babel-eslint", + "import/resolve": { + "moduleDirectory": ["node_modules", "."] + } + }, + "globals": { + "__DEVELOPMENT__": true + } +} diff --git a/README.md b/README.md index f33d009..5c722e6 100644 --- a/README.md +++ b/README.md @@ -1,40 +1,60 @@ -# Docky -Auto-Generate JavaScript documenation. +#

Docky

-## CLI Usage - -Install docky globally: +

Auto-Generate JavaScript documenation.

-`npm install -g docky` -Run docky: -`docky .js` +## CLI Usage -## Programmatic Usage +Install docky globally: -`npm install --save-dev docky` +```shell +npm install -g docky +``` -```javascript -const docky = require('docky'); +Run docky on a single file or entire folder: -docky('filename.js', { - readme: '../README.md' -}); +```shell +docky src/components/**/*.js ``` ## Options -```shell - Usage: docky [options] +```shell + Usage: docky [options] Options: -h, --help output usage information -v, --version output the version number - -r, --readme Specify a README file + -w, --watch run on file change + + +``` + +## Contributing + +Docky uses Pug (formally known as Jade) and SASS for template generation. The files can be found under the `template` directory. + +There is a `components` directory which contains some example React components for testing. You can run docky over the local folder by running: + +```shell +npm run docs +``` + +or + +```shell +./bin/docky.js components/**/*.js +``` + +To compile the sass, run: +```shell +npm run sass ``` -## Scripts -Compile the template SASS: -`npm run sass` +Alternatively, you can add a `:watch` flag to auto-generate on change: + +```shell +npm run sass:watch +``` diff --git a/babylon.js b/babylon.js new file mode 100644 index 0000000..132896a --- /dev/null +++ b/babylon.js @@ -0,0 +1,29 @@ +const babylon = require('babylon'); + +const options = { + sourceType: 'module', + strictMode: false, + locations: true, + ranges: true, + ecmaVersion: 7, + features: { + 'es7.classProperties': true, + 'es7.decorators': true, + 'es7.comprehensions': true, + 'es7.asyncFunctions': true, + 'es7.exportExtensions': true, + 'es7.trailingFunctionCommas': true, + 'es7.objectRestSpread': true, + 'es7.doExpressions': true, + 'es7.functionBind': true, + }, + plugins: ['jsx'] +}; + +module.exports = { + parse(src) { + const file = babylon.parse(src, options); + file.program.comments = file.comments; + return file.program; + } +}; diff --git a/bin/docky.js b/bin/docky.js index e8bf8f8..d78c37a 100755 --- a/bin/docky.js +++ b/bin/docky.js @@ -1,23 +1,38 @@ #!/usr/bin/env node -var program = require('commander'); -var package = require('../package.json'); -var Docky = require('../index.js'); - -require('colors'); - -program - .version(package.version, '-v, --version') - .usage(' [options]') - .arguments('') - .option('-r, --readme ', 'Specify a README file') - .action(function (file, options) { - Docky(file, options); - }) - .parse(process.argv); - -if (!program.args.length) { - console.log('You must specify at least one file to run docky.'.red); - program.help(); +const Docky = require('../index.js'); + +const options = { + watch: false +}; + +const flags = { + watch: ['-w', '--watch'] +}; + +if (process.argv.length < 3) { + console.error('\nNo file(s) specified.\n'.red); + process.exit(1); +} + +const args = process.argv.slice(2); + +const files = + Object.keys(flags) + .map(flag => ( + args.map(arg => { + if (flags[flag].indexOf(arg) > -1) { + options[flag] = true; + return null; + } + + return arg; + }).filter(x => x) + ))[0]; + +if (!files || !files.length) { + console.error('\nNo file(s) specified.\n'.red); process.exit(1); } + +Docky(files, options); diff --git a/commentParser.js b/commentParser.js new file mode 100755 index 0000000..c48c6e2 --- /dev/null +++ b/commentParser.js @@ -0,0 +1,175 @@ +#!/usr/bin/env babel-node + +const dockyPkg = require('./package.json'); +const parse = require('comment-parser'); +const _ = require('lodash'); +const fs = require('fs-extra'); +const path = require('path'); +const jade = require('jade'); +const docgen = require('react-docgen'); +const extractor = require('./parser.js'); +require('colors'); +const del = require('del'); +const Promise = require('promised-io/promise'); +const FS = require('promised-io/fs'); +const glob = require('glob'); + +const cwd = process.cwd(); +const dockyPath = path.resolve(__dirname); +const pkg = JSON.parse(fs.readFileSync(`${cwd}/package.json`)); + +/** + * Custom debug logger + * @method log + */ +const log = (...args) => { + console.log(`[Docky v${dockyPkg.version}]`.green, ...args); +}; + +/** + * Checks if a folder exists + * @method folderExists + * @param {String} folder + * @param {Function} cb(exists) - callback where exists is a boolean + */ +function folderExists(folder) { + try { + return fs.statSync(`${cwd}/${folder}`).isDirectory(); + } catch (err) { + return false; + } +} + +/** + * Checks if a file exists and is not a directory + * @method fileExists + * @param {String} file + * @param {Function} cb - callback + */ +function fileExists(file) { + try { + return fs.statSync(`${cwd}/${file}`).isFile(); + } catch (err) { + return false; + } +} + +/** + * Copies template assets to docs folder + * @method copyAssets + */ +function copyAssets() { + log('Copying documentation assets'); + + return Promise.all([ + fs.copy(`${dockyPath}/template/css`, 'docs/css'), + fs.copy(`${dockyPath}/template/images`, 'docs/images'), + fs.copy(`${dockyPath}/template/js`, 'docs/js'), + ]); +} + +/** + * Cleans the docs folder + * @method cleanDocsFolder + * @return {Promise} + */ +function cleanDocsFolder() { + log('Cleaning Docs folder'); + return del(['docs/*']); +} + + +/** + * Writes the template file to /docs + * @method writeTemplateFile + */ +function writeTemplateFile(html) { + log('Writing template file'); + + return FS.writeFile(`${cwd}/docs/index.html`, html, 'utf8'); +} + +/** + * Creates the docs folder + * @method createDocs + * @param {String} template + */ +function createDocs(html) { + log('Creating Docs'); + + if (folderExists('docs')) { + cleanDocsFolder() + .then(writeTemplateFile(html)) + .then(copyAssets) + .then(() => { + log('\u2713'.green, 'Docs successfully generated'); + console.log('\n Type \'open docs/index.html\' to view them'); + }); + } else { + log('Creating docs folder'); + + fs.mkdir(`${cwd}/docs`, err => { + if (err) throw err; + + writeTemplateFile(html) + .then(copyAssets) + .then(() => { + log('\u2713'.green, 'Docs successfully generated'); + console.log('\n Type \'open docs/index.html\' to view them'); + }); + }); + } +} + +/** + * docky.js + * @param {String} file - the file to parse + * @param {Object} options - additonal options + */ +module.exports = (file, options) => { + let hasReadme; + let readme; + + if (options.readme) { + if (fileExists(options.readme)) { + hasReadme = true; + readme = fs.readFileSync(`${cwd}/${options.readme}`, 'utf8'); + } else { + console.log('[Warning] README file not found. Continuing without it...'.red); + } + } + + if (!fileExists(file)) { + console.error(`${file} does not exist. You must specify an existing file.`.red); + process.exit(1); + } + + log(`Processing "${file}"...`.green); + + parse.file(file, (err, source) => { + console.log(docgen.parse(source)); + + if (err) throw err; + + source = extractor.getMethodNames(source); + source = extractor.getParameters(source); + source = extractor.getExamples(source); + source = extractor.getDeprecated(source); + source = extractor.groupMethods(source); + + const data = { + package: pkg, + methods: source, + pretty: true, + markdown: require('marked'), + _, + readme: hasReadme ? readme : undefined + }; + + jade.renderFile(`${dockyPath}/template/template.jade`, data, (renderErr, html) => { + if (renderErr) throw renderErr; + + createDocs(html); + }); + }); +}; diff --git a/components/Loader/Loader.js b/components/Loader/Loader.js new file mode 100644 index 0000000..8594a8e --- /dev/null +++ b/components/Loader/Loader.js @@ -0,0 +1,71 @@ +import React, { PropTypes, Component } from 'react'; +import styles from './Loader.scss'; + +/** + * Higher order component that displays a loader until your content is finished loading. + */ +class Loader extends Component { + render() { + const { + loading, + children, + height, + width, + text, + style + } = this.props; + + if (!loading) return children; + + return ( +
+ + + + + {text ?

{text}

: null} +
+ ); + } +} + +Loader.defaultProps = { + loading: false +}; + +Loader.propTypes = { + /** + * Boolean to determine whether the loader should be shown + */ + loading: PropTypes.bool.isRequired, + /** + * The content you wish to load + */ + children: PropTypes.any.isRequired, + /** + * Optional loader container width parameter + */ + width: PropTypes.number, + /** + * Optional loader container height parameter + */ + height: PropTypes.number, + /** + * Optional loading text to be displayed below the loader + */ + text: PropTypes.string, + /** + * Optional style options for the loader container + */ + style: PropTypes.object +}; + +export default Loader; diff --git a/components/Loader2/Loader2.js b/components/Loader2/Loader2.js new file mode 100644 index 0000000..fc3e733 --- /dev/null +++ b/components/Loader2/Loader2.js @@ -0,0 +1,71 @@ +import React, { PropTypes, Component } from 'react'; +import styles from './Loader.scss'; + +/** + * General component description. + */ +class Loader extends Component { + render() { + const { + loading, + children, + height, + width, + text, + style + } = this.props; + + if (!loading) return children; + + return ( +
+ + + + + {text ?

{text}

: null} +
+ ); + } +} + +Loader.defaultProps = { + loading: false +}; + +Loader.propTypes = { + /** + * Boolean to determine whether the loader should be shown + */ + loading: PropTypes.bool.isRequired, + /** + * The content you wish to load + */ + children: PropTypes.any.isRequired, + /** + * Optional loader container width parameter + */ + width: PropTypes.number, + /** + * Optional loader container height parameter + */ + height: PropTypes.number, + /** + * Optional loading text to be displayed below the loader + */ + text: PropTypes.string, + /** + * Optional style options for the loader container + */ + style: PropTypes.object +}; + +export default Loader; diff --git a/components/Loader3/Loader3.js b/components/Loader3/Loader3.js new file mode 100644 index 0000000..fc3e733 --- /dev/null +++ b/components/Loader3/Loader3.js @@ -0,0 +1,71 @@ +import React, { PropTypes, Component } from 'react'; +import styles from './Loader.scss'; + +/** + * General component description. + */ +class Loader extends Component { + render() { + const { + loading, + children, + height, + width, + text, + style + } = this.props; + + if (!loading) return children; + + return ( +
+ + + + + {text ?

{text}

: null} +
+ ); + } +} + +Loader.defaultProps = { + loading: false +}; + +Loader.propTypes = { + /** + * Boolean to determine whether the loader should be shown + */ + loading: PropTypes.bool.isRequired, + /** + * The content you wish to load + */ + children: PropTypes.any.isRequired, + /** + * Optional loader container width parameter + */ + width: PropTypes.number, + /** + * Optional loader container height parameter + */ + height: PropTypes.number, + /** + * Optional loading text to be displayed below the loader + */ + text: PropTypes.string, + /** + * Optional style options for the loader container + */ + style: PropTypes.object +}; + +export default Loader; diff --git a/docs/css/hljs-theme.css b/docs/css/hljs-theme.css new file mode 100644 index 0000000..ca94f5f --- /dev/null +++ b/docs/css/hljs-theme.css @@ -0,0 +1,93 @@ +/* +Atom One Light by Daniel Gamage +Original One Light Syntax theme from https://github.com/atom/one-light-syntax +base: #fafafa +mono-1: #383a42 +mono-2: #686b77 +mono-3: #a0a1a7 +hue-1: #0184bb +hue-2: #4078f2 +hue-3: #a626a4 +hue-4: #50a14f +hue-5: #e45649 +hue-5-2: #c91243 +hue-6: #986801 +hue-6-2: #c18401 +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + color: #383a42; + background: #fafafa; +} + +.hljs-comment, +.hljs-quote { + color: #a0a1a7; + font-style: italic; +} + +.hljs-doctag, +.hljs-keyword, +.hljs-formula { + color: #a626a4; +} + +.hljs-section, +.hljs-name, +.hljs-selector-tag, +.hljs-deletion, +.hljs-subst { + color: #e45649; +} + +.hljs-literal { + color: #0184bb; +} + +.hljs-string, +.hljs-regexp, +.hljs-addition, +.hljs-attribute, +.hljs-meta-string { + color: #50a14f; +} + +.hljs-built_in, +.hljs-class .hljs-title { + color: #c18401; +} + +.hljs-attr, +.hljs-variable, +.hljs-template-variable, +.hljs-type, +.hljs-selector-class, +.hljs-selector-attr, +.hljs-selector-pseudo, +.hljs-number { + color: #986801; +} + +.hljs-symbol, +.hljs-bullet, +.hljs-link, +.hljs-meta, +.hljs-selector-id, +.hljs-title { + color: #4078f2; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} + +.hljs-link { + text-decoration: underline; +} diff --git a/docs/css/main.css b/docs/css/main.css index 9639442..0666707 100644 --- a/docs/css/main.css +++ b/docs/css/main.css @@ -1,5 +1,5 @@ html, body { - font-family: 'PT Sans', sans-serif; + font-family: 'Source Sans Pro', sans-serif; font-size: 100%; line-height: 1.65; } @@ -15,6 +15,15 @@ code, kbd, pre, samp { code { border-radius: 4px; } +h2 { + padding-bottom: 0.3em; + border-bottom: 1px solid #eee; } + +blockquote { + padding: 0 1em; + color: #777; + border-left: 0.25em solid #ddd; } + *, ::after, ::before { @@ -30,17 +39,36 @@ input[type="search"] { header { width: 100%; - background: #FF6E6E; + background: #2E8CFF; color: white; - padding: 1em; } - header > span { - opacity: 0.6; - font-style: italic; - font-size: 0.9em; } - header > a { - position: relative; - float: right; - top: 3px; } + padding: 0.75em 1em; + overflow: hidden; } + header .title { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + margin-bottom: 0.25em; } + header .info { + display: flex; + justify-content: space-between; + align-items: center; } + header .info span.version { + opacity: 0.6; + font-style: italic; + font-size: 0.9em; } + header .info .github { + font-size: 12px; + display: flex; + align-items: center; + color: white; + padding: 5px 10px; + border-radius: 4px; + background: rgba(255, 255, 255, 0.1); + transition: background 150ms ease; } + header .info .github:hover { + background: rgba(255, 255, 255, 0.2); } + header .info .github img { + margin-left: 0.75em; } main { display: flex; @@ -50,47 +78,47 @@ main { border-right: 1px solid #eee; position: fixed; top: 0; - background: ghostwhite; width: 260px; box-shadow: 2px 0 6px 0 rgba(0, 0, 0, 0.05); } - main aside .group-name { - margin-right: 1.5em; - margin-bottom: 0.5em; - color: #252525; - text-transform: capitalize; } main aside ul { height: calc(100vh - 60px); overflow-y: scroll; list-style: none; padding: 0; padding-bottom: 5em; - margin: 0; - text-align: right; } - main aside ul li:first-of-type a { - border-top: 1px solid #eee; } - main aside ul li a { - display: block; - font-size: 0.9em; - padding: 0.75em 2em; - border-bottom: 1px solid #eee; - color: #656565; } - main aside ul li a:hover { - background: white; } - main aside ul li a.active { - color: #FF6E6E; } + margin: 0; } + main aside ul li.component-name { + color: #252525; + text-transform: capitalize; } + main aside ul li.component-name:first-of-type a { + border-top: 1px solid #eee; } + main aside ul li.component-name a { + display: block; + font-size: 0.9em; + padding: 0.75em 1.5em; + border-bottom: 1px solid #eee; + color: #656565; + transition: background 150ms ease; } + main aside ul li.component-name a:hover { + background: #fafafb; } + main aside ul li.component-name a.active { + color: #2E8CFF; } main section { max-width: calc(100% - 260px); flex: 1; - background: #fafafb; margin-left: 260px; } - main section h1 { - text-align: center; + main section .component { + padding-bottom: 150px; } + main section header { padding: 0.75em; background: white; margin-top: -1px; margin-bottom: 0; border-top: 1px solid #eee; border-bottom: 1px solid #eee; } + main section h1 { + text-align: left; + color: black; } main section article { padding: 4em 23%; border-bottom: 1px solid #eee; @@ -109,6 +137,9 @@ code.lang-shell { code { background: #f4f4f7; padding: 6px; } + code div { + margin: 0; + display: block; } .badge { padding: 4px 8px; @@ -123,7 +154,23 @@ div#readme { padding: 1em 12%; } .container { - max-width: 600px; - margin: 0 auto; } + max-width: 800px; + margin: 0 auto; + padding: 0 2em; } + +table th, table td { + padding: 0.75em 1.5em 0.75em 1em; } +table thead { + text-align: left; + text-transform: uppercase; + letter-spacing: 1px; + font-size: 11px; + opacity: 0.4; } +table tbody td { + border-bottom: 1px solid rgba(0, 0, 0, 0.03); + line-height: 1.65; + color: #666666; } +table td > strong { + color: black; } /*# sourceMappingURL=main.css.map */ diff --git a/docs/css/main.css.map b/docs/css/main.css.map index 5fdb28c..f9084d9 100644 --- a/docs/css/main.css.map +++ b/docs/css/main.css.map @@ -1,7 +1,7 @@ { "version": 3, -"mappings": "AAMA,UAAW;EACT,WAAW,EAAE,qBAAqB;EAClC,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;;AAGnB;;OAEQ;EAEN,eAAe,EAAE,OAAO;;AAG1B,oBAAqB;EACnB,SAAS,EAAE,KAAK;EAChB,SAAS,EAAE,IAAI;;AAGjB,IAAK;EACH,aAAa,EAAE,GAAG;;AAGpB;;QAES;EACP,UAAU,EAAE,UAAU;;AAGxB,oBAAqB;EACnB,OAAO,EAAE,GAAG;EACZ,SAAS,EAAE,GAAG;EACd,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,OAAO,EAAE,IAAI;EACb,UAAU,EAAE,UAAU;;AAGxB,MAAO;EACL,KAAK,EAAE,IAAI;EACX,UAAU,EA3CF,OAAO;EA4Cf,KAAK,EAAE,KAAK;EACZ,OAAO,EAAE,GAAG;EAEZ,aAAO;IACL,OAAO,EAAE,GAAG;IACZ,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE,KAAK;EAGlB,UAAI;IACF,QAAQ,EAAE,QAAQ;IAClB,KAAK,EAAE,KAAK;IACZ,GAAG,EAAE,GAAG;;AAIZ,IAAK;EACH,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,GAAG;EAEnB,UAAM;IACJ,SAAS,EAnEG,KAAK;IAoEjB,YAAY,EAAE,cAAc;IAC5B,QAAQ,EAAE,KAAK;IACf,GAAG,EAAE,CAAC;IACN,UAAU,EAAE,UAAU;IACtB,KAAK,EAxEO,KAAK;IAyEjB,UAAU,EAAE,+BAA+B;IAE3C,sBAAY;MACV,YAAY,EAAE,KAAK;MACnB,aAAa,EAAE,KAAK;MACpB,KAAK,EAAE,OAAO;MACd,cAAc,EAAE,UAAU;IAG5B,aAAG;MACD,MAAM,EAAE,kBAA+B;MACvC,UAAU,EAAE,MAAM;MAClB,UAAU,EAAE,IAAI;MAChB,OAAO,EAAE,CAAC;MACV,cAAc,EAAE,GAAG;MACnB,MAAM,EAAE,CAAC;MACT,UAAU,EAAE,KAAK;MAIf,gCAAkB;QAChB,UAAU,EAAE,cAAc;MAG5B,kBAAE;QACA,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,UAAU;QACnB,aAAa,EAAE,cAAc;QAC7B,KAAK,EAAE,OAAO;QAEd,wBAAQ;UACN,UAAU,EAAE,KAAK;QAGnB,yBAAS;UACP,KAAK,EA3GP,OAAO;EAkHf,YAAQ;IACN,SAAS,EAAE,kBAA8B;IACzC,IAAI,EAAE,CAAC;IACP,UAAU,EAAE,OAAoB;IAChC,WAAW,EAxHC,KAAK;IA0HjB,eAAG;MACD,UAAU,EAAE,MAAM;MAClB,OAAO,EAAE,MAAM;MACf,UAAU,EAAE,KAAK;MACjB,UAAU,EAAE,IAAI;MAChB,aAAa,EAAE,CAAC;MAChB,UAAU,EAAE,cAAc;MAC1B,aAAa,EAAE,cAAc;IAG/B,oBAAQ;MACN,OAAO,EAAE,OAAO;MAChB,aAAa,EAAE,cAAc;MAC7B,UAAU,EAAE,oBAAoB;MAEhC,wCAAoB;QAClB,KAAK,EAAE,OAAO;MAGhB,0BAAQ;QACN,UAAU,EAAE,KAAK;MAGnB,uBAAG;QACD,SAAS,EAAE,KAAK;;AAMxB,eAAgB;EACd,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,KAAK;;AAGhB,IAAK;EACH,UAAU,EAAE,OAAO;EACnB,OAAO,EAAE,GAAG;;AAGd,MAAO;EACL,OAAO,EAAE,OAAO;EAChB,SAAS,EAAE,IAAI;EACf,UAAU,EAAE,IAAI;EAChB,aAAa,EAAE,IAAI;EACnB,WAAW,EAAE,GAAG;EAChB,cAAc,EAAE,MAAM;EACtB,KAAK,EAAE,KAAK;;AAGd,UAAW;EACT,OAAO,EAAE,OAAO;;AAGlB,UAAW;EACT,SAAS,EAAE,KAAK;EAChB,MAAM,EAAE,MAAM", +"mappings": "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", "sources": ["../sass/main.scss"], "names": [], "file": "main.css" -} +} \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 37f7855..17e1832 100644 --- a/docs/index.html +++ b/docs/index.html @@ -6,79 +6,239 @@ Docky - + - - + +
-
-

Parser

-
-

getMethodNamesdeprecated

-

Adds the name to each method

-
function getMethodNames(methods) { ... }
-

Params:

-
    -
  • methods - {Object}
  • -
-
-
-

getParameters

-

Gets each method parameter

-
function getParameters(methods) { ... }
-

Params:

-
    -
  • methods - {Object}
  • -
-
-
-

getExamples

-

Gets examples for each method

-
function getExamples(methods) { ... }
-

Params:

-
    -
  • methods - {Object}
  • -
-
-
-

groupMethods

-

Groups the methods based on their "@group" tag

-
function groupMethods(methods) { ... }
-

Params:

-
    -
  • methods - {Object}
  • -
-
-
-
-

Ungrouped

-
-

hasTag

-

Checks if a method has a specific tag

-
function hasTag(methods) { ... }
-

Params:

-
    -
  • methods - {Object}
  • -
-

Usage:

-
hasTag(methods, 'deprecated', callback)
-
+

Docky

+

Auto-Generate JavaScript documenation.

+ + + +

CLI Usage

+

Install docky globally:

+
npm install -g docky
+
+

Run docky on a single file or entire folder:

+
docky src/components/**/*.js
+
+

Options

+
  Usage: docky <files> [options]
+
+  Options:
+
+    -h, --help               output usage information
+    -v, --version            output the version number
+    -w, --watch              run on file change
+
+

Contributing

+

Docky uses Pug (formally known as Jade) and SASS for template generation. The files can be found under the template directory.

+

There is a components directory which contains some example React components for testing. You can run docky over the local folder by running:

+
npm run docs
+
+

or

+
./bin/docky.js components/**/*.js
+
+

To compile the sass, run:

+
npm run sass
+
+

Alternatively, you can add a :watch flag to auto-generate on change:

+
npm run sass:watch
+
+
+
+
+
+
+

<Loader />

+
+
+
+

Higher order component that displays a loader until your content is finished loading.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
ChildrenAnyThe content you wish to load
HeightNumberOptional loader container height parameter
LoadingBoolfalseBoolean to determine whether the loader should be shown
StyleObjectOptional style options for the loader container
TextStringOptional loading text to be displayed below the loader
WidthNumberOptional loader container width parameter
+
+
+
+
+
+

<Loader2 />

+
+
+
+

General component description.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
ChildrenAnyThe content you wish to load
HeightNumberOptional loader container height parameter
LoadingBoolfalseBoolean to determine whether the loader should be shown
StyleObjectOptional style options for the loader container
TextStringOptional loading text to be displayed below the loader
WidthNumberOptional loader container width parameter
+
+
+
+
+
+

<Loader3 />

+
+
+
+

General component description.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
ChildrenAnyThe content you wish to load
HeightNumberOptional loader container height parameter
LoadingBoolfalseBoolean to determine whether the loader should be shown
StyleObjectOptional style options for the loader container
TextStringOptional loading text to be displayed below the loader
WidthNumberOptional loader container width parameter
+
+
diff --git a/index.js b/index.js index abf03ce..efcbc38 100644 --- a/index.js +++ b/index.js @@ -1,27 +1,27 @@ -const package = require('./package.json'); -const parse = require('comment-parser'); +const dockyPkg = require('./package.json'); +const docgen = require('react-docgen'); const _ = require('lodash'); const fs = require('fs-extra'); const path = require('path'); -const dockyPath = path.resolve(__dirname); -const jade = require('jade'); -const extractor = require('./parser.js'); -const cwd = process.cwd(); -const colors = require('colors'); +const pug = require('pug'); const del = require('del'); -const async = require('async'); const Promise = require('promised-io/promise'); const FS = require('promised-io/fs'); +const chokidar = require('chokidar'); + +require('colors'); + +const cwd = process.cwd(); +const dockyPath = path.resolve(__dirname); +const pkg = JSON.parse(fs.readFileSync(`${cwd}/package.json`)); /** * Custom debug logger * @method log */ -function log() { - var args = Array.prototype.slice.call(arguments); - args.unshift(`[Docky v${package.version}]`.green); - console.log.apply(console, args); -} +const log = (...args) => { + console.log(`[Docky v${dockyPkg.version}]`.green, ...args); +}; /** * Checks if a folder exists @@ -32,8 +32,7 @@ function log() { function folderExists(folder) { try { return fs.statSync(`${cwd}/${folder}`).isDirectory(); - } - catch (err) { + } catch (err) { return false; } } @@ -47,8 +46,7 @@ function folderExists(folder) { function fileExists(file) { try { return fs.statSync(`${cwd}/${file}`).isFile(); - } - catch (err) { + } catch (err) { return false; } } @@ -67,6 +65,27 @@ function copyAssets() { ]); } +/** + * Cleans the docs folder + * @method cleanDocsFolder + * @return {Promise} + */ +function cleanDocsFolder() { + log('Cleaning Docs folder'); + return del(['docs/*']); +} + + +/** + * Writes the template file to /docs + * @method writeTemplateFile + */ +function writeTemplateFile(html) { + log('Writing template file'); + + return FS.writeFile(`${cwd}/docs/index.html`, html, 'utf8'); +} + /** * Creates the docs folder * @method createDocs @@ -75,103 +94,87 @@ function copyAssets() { function createDocs(html) { log('Creating Docs'); - if (folderExists(`docs`)) { - cleanDocsFolder().then(() => { - writeTemplateFile(html).then(() => { - copyAssets().then(() => { - log('\u2713'.green, 'Docs successfully generated'); - console.log('\n Type \'open docs/index.html\' to view them'); - }); + if (folderExists('docs')) { + cleanDocsFolder() + .then(() => writeTemplateFile(html)) + .then(copyAssets) + .then(() => { + log('\u2713'.green, 'Docs successfully generated'); + console.log('\n Type \'open docs/index.html\' to view them'); }); - }); } else { log('Creating docs folder'); fs.mkdir(`${cwd}/docs`, err => { if (err) throw err; - writeTemplateFile(html).then(() => { - copyAssets().then(() => { + writeTemplateFile(html) + .then(copyAssets) + .then(() => { log('\u2713'.green, 'Docs successfully generated'); console.log('\n Type \'open docs/index.html\' to view them'); }); - }); }); } } -/** - * Writes the template file to /docs - * @method writeTemplateFile - */ -function writeTemplateFile(html) { - log('Writing template file'); +const getComponentName = (filename) => ( + filename.replace(/^(.*)\/(\w+)(.jsx?)$/g, '$2') +); + +const run = (files) => { + let docs; + + const components = files.map(file => { + docs = docgen.parse(fs.readFileSync(file, 'utf8')); + + return Object.assign(docs, { + name: getComponentName(file), + props: _.sortBy( + Object.keys(docs.props) + .map(prop => (Object.assign(docs.props[prop], { + name: prop, + type: docs.props[prop].type.name, + defaultValue: docs.props[prop].defaultValue ? + docs.props[prop].defaultValue.value : undefined + }))), + 'name' + ) + }); + }); - return FS.writeFile(`${cwd}/docs/index.html`, html, 'utf8'); -} + const data = { + package: pkg, + components: _.sortBy(components, 'name'), + pretty: true, + markdown: require('marked'), + capitalize: _.capitalize + }; -/** - * Cleans the docs folder - * @method cleanDocsFolder - * @return {Promise} - */ -function cleanDocsFolder() { - log('Cleaning Docs folder'); - return del([`docs/*`]); -} + if (fileExists('./README.md')) { + data.readme = fs.readFileSync('./README.md', 'utf8'); + } + + pug.renderFile(`${dockyPath}/template/template.pug`, data, (renderErr, html) => { + if (renderErr) throw renderErr; + + createDocs(html); + }); +}; /** * docky.js * @param {String} file - the file to parse * @param {Object} options - additonal options */ -module.exports = function (file, options) { - - var hasReadme; - var readme; - - if (options.readme) { - if (fileExists(options.readme)) { - hasReadme = true; - readme = fs.readFileSync(`${cwd}/${options.readme}`, 'utf8'); - } else { - console.log('[Warning] README file not found. Continuing without it...'.red); - } - } - - if (!fileExists(file)) { - console.error(`${file} does not exist. You must specify an existing file.`.red); - process.exit(1); +module.exports = (files, options = {}) => { + run(files); + + if (options.watch) { + chokidar.watch(files) + .on('change', (p) => { + log(p, 'changed'); + run(files); + }); } - - log(`Processing "${file}"...`.green); - - parse.file(file, (err, source) => { - if (err) throw err; - - source = extractor.getMethodNames(source); - source = extractor.getParameters(source); - source = extractor.getExamples(source); - source = extractor.getDeprecated(source); - source = extractor.groupMethods(source); - - var data = { - package, - methods: source, - pretty: true, - markdown: require('marked'), - _, - }; - - if (hasReadme) { - data.readme = readme; - } - - jade.renderFile(`${dockyPath}/template/template.jade`, data, (err, html) => { - if (err) throw err; - - createDocs(html); - }); - }); - }; diff --git a/package.json b/package.json index 3fccdd2..f7103a4 100644 --- a/package.json +++ b/package.json @@ -1,38 +1,48 @@ { "name": "docky", + "title": "Docky", "version": "0.1.1", "description": "Generate JavaScript documentation", "main": "index.js", "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", - "sass": "sass ./template/sass/main.scss ./template/css/main.css" + "sass": "sass ./template/sass/main.scss ./template/css/main.css", + "sass:watch": "sass --watch ./template/sass/main.scss:./template/css/main.css", + "docs": "./bin/docky.js components/**/*.js", + "docs:watch": "./bin/docky.js --watch components/**/*.js" }, "bin": { "docky": "./bin/docky.js" }, "repository": { "type": "git", - "url": "git+https://github.com/bxfsh/docky.git" + "url": "https://github.com/markmur/docky.git" }, + "homepage": "https://github.com/markmur/docky.git", "author": "Mark Murray ", "license": "MIT", - "bugs": { - "url": "https://github.com/bxfsh/docky/issues" - }, - "homepage": "https://github.com/bxfsh/docky#readme", "dependencies": { - "async": "^1.5.2", + "chokidar": "^1.6.1", "colors": "^1.1.2", "commander": "^2.9.0", "comment-parser": "^0.4.0", "del": "^2.2.0", "fs-extra": "^0.26.5", - "handlebars": "^4.0.5", - "jade": "^1.11.0", + "glob": "^7.1.1", "jstransformer-markdown": "^1.1.0", "lodash": "^4.6.1", "markdown": "^0.5.0", "marked": "^0.3.5", - "promised-io": "^0.3.5" + "promised-io": "^0.3.5", + "pug": "^2.0.0-beta11", + "react": "^15.4.2", + "react-docgen": "^2.13.0" + }, + "devDependencies": { + "babel-eslint": "^7.2.1", + "eslint": "^3.18.0", + "eslint-config-airbnb": "^14.1.0", + "eslint-plugin-import": "^2.2.0", + "eslint-plugin-jsx-a11y": "^4.0.0", + "eslint-plugin-react": "^6.10.3" } } diff --git a/parser.js b/parser.js index 54cdbb8..5a23599 100644 --- a/parser.js +++ b/parser.js @@ -55,6 +55,18 @@ module.exports = { return methods; }, + getDescriptions: function(methods) { + methods.forEach(method => { + _.each(method.tags, function (tag) { + if (tag.tag === 'description') { + method.description = tag.source.replace('@description ', ''); + } + }); + }); + + return methods; + }, + /** * Gets each method parameter * @method getParameters @@ -113,9 +125,9 @@ module.exports = { methods.forEach(method => { // Method is grouped - if (_.some(method.tags, { tag: 'group' })) { + if (_.some(method.tags, { tag: 'name' })) { _.each(method.tags, tag => { - if (tag.tag === 'group') { + if (tag.tag === 'name') { tagName = tag.name.toLowerCase(); @@ -134,7 +146,6 @@ module.exports = { } }); - methods = Object.assign({}, { grouped }, { ungrouped }); - return methods; + return { grouped }; }, }; diff --git a/template/css/hljs-theme.css b/template/css/hljs-theme.css new file mode 100644 index 0000000..ca94f5f --- /dev/null +++ b/template/css/hljs-theme.css @@ -0,0 +1,93 @@ +/* +Atom One Light by Daniel Gamage +Original One Light Syntax theme from https://github.com/atom/one-light-syntax +base: #fafafa +mono-1: #383a42 +mono-2: #686b77 +mono-3: #a0a1a7 +hue-1: #0184bb +hue-2: #4078f2 +hue-3: #a626a4 +hue-4: #50a14f +hue-5: #e45649 +hue-5-2: #c91243 +hue-6: #986801 +hue-6-2: #c18401 +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + color: #383a42; + background: #fafafa; +} + +.hljs-comment, +.hljs-quote { + color: #a0a1a7; + font-style: italic; +} + +.hljs-doctag, +.hljs-keyword, +.hljs-formula { + color: #a626a4; +} + +.hljs-section, +.hljs-name, +.hljs-selector-tag, +.hljs-deletion, +.hljs-subst { + color: #e45649; +} + +.hljs-literal { + color: #0184bb; +} + +.hljs-string, +.hljs-regexp, +.hljs-addition, +.hljs-attribute, +.hljs-meta-string { + color: #50a14f; +} + +.hljs-built_in, +.hljs-class .hljs-title { + color: #c18401; +} + +.hljs-attr, +.hljs-variable, +.hljs-template-variable, +.hljs-type, +.hljs-selector-class, +.hljs-selector-attr, +.hljs-selector-pseudo, +.hljs-number { + color: #986801; +} + +.hljs-symbol, +.hljs-bullet, +.hljs-link, +.hljs-meta, +.hljs-selector-id, +.hljs-title { + color: #4078f2; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} + +.hljs-link { + text-decoration: underline; +} diff --git a/template/css/main.css b/template/css/main.css index 9639442..0666707 100644 --- a/template/css/main.css +++ b/template/css/main.css @@ -1,5 +1,5 @@ html, body { - font-family: 'PT Sans', sans-serif; + font-family: 'Source Sans Pro', sans-serif; font-size: 100%; line-height: 1.65; } @@ -15,6 +15,15 @@ code, kbd, pre, samp { code { border-radius: 4px; } +h2 { + padding-bottom: 0.3em; + border-bottom: 1px solid #eee; } + +blockquote { + padding: 0 1em; + color: #777; + border-left: 0.25em solid #ddd; } + *, ::after, ::before { @@ -30,17 +39,36 @@ input[type="search"] { header { width: 100%; - background: #FF6E6E; + background: #2E8CFF; color: white; - padding: 1em; } - header > span { - opacity: 0.6; - font-style: italic; - font-size: 0.9em; } - header > a { - position: relative; - float: right; - top: 3px; } + padding: 0.75em 1em; + overflow: hidden; } + header .title { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + margin-bottom: 0.25em; } + header .info { + display: flex; + justify-content: space-between; + align-items: center; } + header .info span.version { + opacity: 0.6; + font-style: italic; + font-size: 0.9em; } + header .info .github { + font-size: 12px; + display: flex; + align-items: center; + color: white; + padding: 5px 10px; + border-radius: 4px; + background: rgba(255, 255, 255, 0.1); + transition: background 150ms ease; } + header .info .github:hover { + background: rgba(255, 255, 255, 0.2); } + header .info .github img { + margin-left: 0.75em; } main { display: flex; @@ -50,47 +78,47 @@ main { border-right: 1px solid #eee; position: fixed; top: 0; - background: ghostwhite; width: 260px; box-shadow: 2px 0 6px 0 rgba(0, 0, 0, 0.05); } - main aside .group-name { - margin-right: 1.5em; - margin-bottom: 0.5em; - color: #252525; - text-transform: capitalize; } main aside ul { height: calc(100vh - 60px); overflow-y: scroll; list-style: none; padding: 0; padding-bottom: 5em; - margin: 0; - text-align: right; } - main aside ul li:first-of-type a { - border-top: 1px solid #eee; } - main aside ul li a { - display: block; - font-size: 0.9em; - padding: 0.75em 2em; - border-bottom: 1px solid #eee; - color: #656565; } - main aside ul li a:hover { - background: white; } - main aside ul li a.active { - color: #FF6E6E; } + margin: 0; } + main aside ul li.component-name { + color: #252525; + text-transform: capitalize; } + main aside ul li.component-name:first-of-type a { + border-top: 1px solid #eee; } + main aside ul li.component-name a { + display: block; + font-size: 0.9em; + padding: 0.75em 1.5em; + border-bottom: 1px solid #eee; + color: #656565; + transition: background 150ms ease; } + main aside ul li.component-name a:hover { + background: #fafafb; } + main aside ul li.component-name a.active { + color: #2E8CFF; } main section { max-width: calc(100% - 260px); flex: 1; - background: #fafafb; margin-left: 260px; } - main section h1 { - text-align: center; + main section .component { + padding-bottom: 150px; } + main section header { padding: 0.75em; background: white; margin-top: -1px; margin-bottom: 0; border-top: 1px solid #eee; border-bottom: 1px solid #eee; } + main section h1 { + text-align: left; + color: black; } main section article { padding: 4em 23%; border-bottom: 1px solid #eee; @@ -109,6 +137,9 @@ code.lang-shell { code { background: #f4f4f7; padding: 6px; } + code div { + margin: 0; + display: block; } .badge { padding: 4px 8px; @@ -123,7 +154,23 @@ div#readme { padding: 1em 12%; } .container { - max-width: 600px; - margin: 0 auto; } + max-width: 800px; + margin: 0 auto; + padding: 0 2em; } + +table th, table td { + padding: 0.75em 1.5em 0.75em 1em; } +table thead { + text-align: left; + text-transform: uppercase; + letter-spacing: 1px; + font-size: 11px; + opacity: 0.4; } +table tbody td { + border-bottom: 1px solid rgba(0, 0, 0, 0.03); + line-height: 1.65; + color: #666666; } +table td > strong { + color: black; } /*# sourceMappingURL=main.css.map */ diff --git a/template/css/main.css.map b/template/css/main.css.map index 5fdb28c..f9084d9 100644 --- a/template/css/main.css.map +++ b/template/css/main.css.map @@ -1,7 +1,7 @@ { "version": 3, -"mappings": "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", +"mappings": "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", "sources": ["../sass/main.scss"], "names": [], "file": "main.css" -} +} \ No newline at end of file diff --git a/template/method.jade b/template/method.jade deleted file mode 100644 index 8fe4101..0000000 --- a/template/method.jade +++ /dev/null @@ -1,24 +0,0 @@ -- var method_params = _.map(method.params, 'name').join(', '); -article(id="#{method.name}") - h2= method.name - if method.deprecated - span.badge deprecated - p= method.description - pre - code.javascript function #{method.name}(#{method_params}) { ... } - if method.params - h4 Params: - ul.params - each param in method.params - li - code #{param.name} - span - {#{capitalize(param.type)}} #{param.description} - if method.example - h4 Usage: - pre - code.javascript #{method.example} - - if method.returns - h4 Returns: - pre - code.javascript #{method.returns} diff --git a/template/method.pug b/template/method.pug new file mode 100644 index 0000000..7cbf933 --- /dev/null +++ b/template/method.pug @@ -0,0 +1,9 @@ +article(id=prop.name) + p= prop.name + if p.params + h4 Props: + ul.params + each param in method.params + li + code #{param.name} + span - {#{capitalize(param.type)}} #{param.description} diff --git a/template/sass/main.scss b/template/sass/main.scss index 00c44b7..dbb01cd 100644 --- a/template/sass/main.scss +++ b/template/sass/main.scss @@ -1,11 +1,11 @@ $sidebar-width: 260px; $header-height: 60px; -$primary: #FF6E6E; +$primary: #2E8CFF; //=======================================// html, body { - font-family: 'PT Sans', sans-serif; + font-family: 'Source Sans Pro', sans-serif; font-size: 100%; line-height: 1.65; } @@ -26,6 +26,17 @@ code { border-radius: 4px; } +h2 { + padding-bottom: 0.3em; + border-bottom: 1px solid #eee; +} + +blockquote { + padding: 0 1em; + color: #777; + border-left: 0.25em solid #ddd; +} + *, ::after, ::before { @@ -45,18 +56,45 @@ header { width: 100%; background: $primary; color: white; - padding: 1em; - - > span { - opacity: 0.6; - font-style: italic; - font-size: 0.9em; + padding: 0.75em 1em; + overflow: hidden; + + .title { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + margin-bottom: 0.25em; } - > a { - position: relative; - float: right; - top: 3px; + .info { + display: flex; + justify-content: space-between; + align-items: center; + + span.version { + opacity: 0.6; + font-style: italic; + font-size: 0.9em; + } + + .github { + font-size: 12px; + display: flex; + align-items: center; + color: white; + padding: 5px 10px; + border-radius: 4px; + background: rgba(white, 0.1); + transition: background 150ms ease; + + &:hover { + background: rgba(white, 0.2); + } + + img { + margin-left: 0.75em; + } + } } } @@ -69,17 +107,9 @@ main { border-right: 1px solid #eee; position: fixed; top: 0; - background: ghostwhite; width: $sidebar-width; box-shadow: 2px 0 6px 0 rgba(0, 0, 0, 0.05); - .group-name { - margin-right: 1.5em; - margin-bottom: 0.5em; - color: #252525; - text-transform: capitalize; - } - ul { height: calc(100vh - #{$header-height}); overflow-y: scroll; @@ -87,9 +117,10 @@ main { padding: 0; padding-bottom: 5em; margin: 0; - text-align: right; - li { + li.component-name { + color: #252525; + text-transform: capitalize; &:first-of-type a { border-top: 1px solid #eee; @@ -98,12 +129,13 @@ main { a { display: block; font-size: 0.9em; - padding: 0.75em 2em; + padding: 0.75em 1.5em; border-bottom: 1px solid #eee; color: #656565; + transition: background 150ms ease; &:hover { - background: white; + background: lighten(#f4f4f7, 2%); } &.active { @@ -117,11 +149,13 @@ main { section { max-width: calc(100% - #{$sidebar-width}); flex: 1; - background: lighten(#f4f4f7, 2%); margin-left: $sidebar-width; - h1 { - text-align: center; + .component { + padding-bottom: 150px; + } + + header { padding: 0.75em; background: white; margin-top: -1px; @@ -130,6 +164,11 @@ main { border-bottom: 1px solid #eee; } + h1 { + text-align: left; + color: black; + } + article { padding: 4em 23%; border-bottom: 1px solid #eee; @@ -158,6 +197,11 @@ code.lang-shell { code { background: #f4f4f7; padding: 6px; + + div { + margin: 0; + display: block; + } } .badge { @@ -175,6 +219,32 @@ div#readme { } .container { - max-width: 600px; + max-width: 800px; margin: 0 auto; + padding: 0 2em; +} + +table { + + th, td { + padding: 0.75em 1.5em 0.75em 1em; + } + + thead { + text-align: left; + text-transform: uppercase; + letter-spacing: 1px; + font-size: 11px; + opacity: 0.4; + } + + tbody td { + border-bottom: 1px solid rgba(black, 0.03); + line-height: 1.65; + color: lighten(black, 40%); + } + + td > strong { + color: black; + } } diff --git a/template/template.jade b/template/template.jade deleted file mode 100644 index 833bff1..0000000 --- a/template/template.jade +++ /dev/null @@ -1,66 +0,0 @@ -- function capitalize(string) { return string.charAt(0).toUpperCase() + string.slice(1); } - -doctype html -html - head - meta(charset="utf-8") - meta(http-equiv="x-ua-compatible", content="ie=edge") - title Docky - meta(name="description", content="Docky") - meta(name="viewport", content="width=device-width, initial-scale=1") - - link(href='https://fonts.googleapis.com/css?family=PT+Sans:400,300', rel='stylesheet', type='text/css') - link(rel="stylesheet", href="css/normalize.css") - link(rel="stylesheet", href="css/main.css") - //- link(rel="stylesheet", href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.2.0/styles/tomorrow-night.min.css") - link(rel="stylesheet", href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.2.0/styles/hybrid.min.css") - script(src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.2.0/highlight.min.js") - - body - main - //- Sidebar - aside - //- Sidebar header - header= capitalize(package.name) - if package.version - span - small (#{package.version}) - if package.homepage - a(href="#{package.homepage}") - img(src="images/github.svg") - - ul.grouped - //- Groups - each list, group in methods.grouped - h4(class="group-name")= group - each method in list - li - a(href="##{method.name}")= method.name - - if methods.ungrouped.length - h4(class="group-name") Ungrouped - each method in methods.ungrouped - li - a(href="##{method.name}")= method.name - - section#methods - if readme - div(id="readme")!= markdown(readme) - - div.grouped - each list, group in methods.grouped - h1= capitalize(group) - each method in list - include method - - if methods.ungrouped.length - div.ungrouped - h1 Ungrouped - each method in methods.ungrouped - include method - - script(type="text/javascript"). - hljs.initHighlightingOnLoad(); - script(src="https://code.jquery.com/jquery-1.12.1.min.js") - script(src="js/waypoints.min.js") - script(src="js/main.js") diff --git a/template/template.pug b/template/template.pug new file mode 100644 index 0000000..f996941 --- /dev/null +++ b/template/template.pug @@ -0,0 +1,79 @@ +doctype html +html + head + meta(charset="utf-8") + meta(http-equiv="x-ua-compatible", content="ie=edge") + if package.title + title= package.title + else + title= capitalize(package.name) + meta(name="description", content="Docky") + meta(name="viewport", content="width=device-width, initial-scale=1") + + link(href='https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,500,600', rel='stylesheet', type='text/css') + link(rel="stylesheet", href="css/normalize.css") + link(rel="stylesheet", href="css/main.css") + link(rel="stylesheet", href="css/hljs-theme.css") + script(src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.4.0/highlight.min.js") + + body + main + //- Sidebar + aside + //- Sidebar header + header + if package.title + div.title + strong= package.title + else + div.title= capitalize(package.name) + div.info + if package.version + span.version (#{package.version}) + if package.homepage + a.github(href=package.homepage, target="_blank") View on GitHub + img(src="images/github.svg") + + ul.grouped + li(class="component-name") + a(href="#readme") Introduction + //- components + each component in components + li(class="component-name") + a(href='#' + component.name)= component.name + + + section#methods + if readme + div(id="readme")!= markdown(readme) + + div.components + each component in components + div.component(id=component.name) + header + .container + h1= '<' + component.name + ' />' + .container + p= component.description + table + thead + tr + th Name + th Type + th Default + th Description + tbody + each prop in component.props + tr + td + strong= capitalize(prop.name) + td= capitalize(prop.type) + td= prop.defaultValue + td= prop.description + + + script(type="text/javascript"). + hljs.initHighlightingOnLoad(); + script(src="https://code.jquery.com/jquery-1.12.1.min.js") + script(src="js/waypoints.min.js") + script(src="js/main.js") diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..d652aae --- /dev/null +++ b/yarn.lock @@ -0,0 +1,2240 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +abbrev@1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" + +acorn-globals@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-3.1.0.tgz#fd8270f71fbb4996b004fa880ee5d46573a731bf" + dependencies: + acorn "^4.0.4" + +acorn-jsx@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + dependencies: + acorn "^3.0.4" + +acorn@4.0.4, acorn@^4.0.4, acorn@~4.0.2: + version "4.0.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.4.tgz#17a8d6a7a6c4ef538b814ec9abac2779293bf30a" + +acorn@^3.0.4, acorn@^3.1.0, acorn@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + +ajv-keywords@^1.0.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" + +ajv@^4.7.0, ajv@^4.9.1: + version "4.11.5" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.5.tgz#b6ee74657b993a01dce44b7944d56f485828d5bd" + dependencies: + co "^4.6.0" + json-stable-stringify "^1.0.1" + +align-text@^0.1.1, align-text@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + dependencies: + kind-of "^3.0.2" + longest "^1.0.1" + repeat-string "^1.5.2" + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + +ansi-escapes@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +anymatch@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507" + dependencies: + arrify "^1.0.0" + micromatch "^2.1.5" + +aproba@^1.0.3: + version "1.1.1" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.1.tgz#95d3600f07710aa0e9298c726ad5ecf2eacbabab" + +are-we-there-yet@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz#80e470e95a084794fe1899262c5667c6e88de1b3" + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.0 || ^1.1.13" + +argparse@^1.0.7: + version "1.0.9" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" + dependencies: + sprintf-js "~1.0.2" + +aria-query@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-0.3.0.tgz#cb8a9984e2862711c83c80ade5b8f5ca0de2b467" + dependencies: + ast-types-flow "0.0.7" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + dependencies: + arr-flatten "^1.0.1" + +arr-flatten@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.1.tgz#e5ffe54d45e19f32f216e91eb99c8ce892bb604b" + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + +array.prototype.find@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.0.3.tgz#08c3ec33e32ec4bab362a2958e686ae92f59271d" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.7.0" + +arrify@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + +asap@~2.0.3: + version "2.0.5" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" + +asn1@~0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + +assert-plus@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" + +ast-types-flow@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" + +ast-types@0.9.6: + version "0.9.6" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9" + +async-each@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + +async@^1.4.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + +aws-sign2@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" + +aws4@^1.2.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" + +babel-code-frame@^6.16.0, babel-code-frame@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4" + dependencies: + chalk "^1.1.0" + esutils "^2.0.2" + js-tokens "^3.0.0" + +babel-eslint@^7.2.1: + version "7.2.1" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-7.2.1.tgz#079422eb73ba811e3ca0865ce87af29327f8c52f" + dependencies: + babel-code-frame "^6.22.0" + babel-traverse "^6.23.1" + babel-types "^6.23.0" + babylon "^6.16.1" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + dependencies: + babel-runtime "^6.22.0" + +babel-runtime@^6.22.0, babel-runtime@^6.9.2: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.10.0" + +babel-traverse@^6.23.1: + version "6.23.1" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.23.1.tgz#d3cb59010ecd06a97d81310065f966b699e14f48" + dependencies: + babel-code-frame "^6.22.0" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-types "^6.23.0" + babylon "^6.15.0" + debug "^2.2.0" + globals "^9.0.0" + invariant "^2.2.0" + lodash "^4.2.0" + +babel-types@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.23.0.tgz#bb17179d7538bad38cd0c9e115d340f77e7e9acf" + dependencies: + babel-runtime "^6.22.0" + esutils "^2.0.2" + lodash "^4.2.0" + to-fast-properties "^1.0.1" + +babylon@^6.15.0, babylon@^6.16.1: + version "6.16.1" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.16.1.tgz#30c5a22f481978a9e7f8cdfdf496b11d94b404d3" + +babylon@~5.8.3: + version "5.8.38" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-5.8.38.tgz#ec9b120b11bf6ccd4173a18bf217e60b79859ffd" + +balanced-match@^0.4.1: + version "0.4.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" + +bcrypt-pbkdf@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" + dependencies: + tweetnacl "^0.14.3" + +binary-extensions@^1.0.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774" + +block-stream@*: + version "0.0.9" + resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + dependencies: + inherits "~2.0.0" + +boom@2.x.x: + version "2.10.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" + dependencies: + hoek "2.x.x" + +brace-expansion@^1.0.0: + version "1.1.6" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9" + dependencies: + balanced-match "^0.4.1" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +buffer-shims@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" + +builtin-modules@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + +caller-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" + dependencies: + callsites "^0.2.0" + +callsites@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" + +camelcase@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + +center-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + +chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +character-parser@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/character-parser/-/character-parser-2.2.0.tgz#c7ce28f36d4bcd9744e5ffc2c5fcde1c73261fc0" + dependencies: + is-regex "^1.0.3" + +chokidar@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2" + dependencies: + anymatch "^1.3.0" + async-each "^1.0.0" + glob-parent "^2.0.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^2.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + optionalDependencies: + fsevents "^1.0.0" + +circular-json@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d" + +clean-css@^3.3.0: + version "3.4.25" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-3.4.25.tgz#9e9a52d5c1e6bc5123e1b2783fa65fe958946ede" + dependencies: + commander "2.8.x" + source-map "0.4.x" + +cli-cursor@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" + dependencies: + restore-cursor "^1.0.1" + +cli-width@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" + +cliui@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + dependencies: + center-align "^0.1.1" + right-align "^0.1.1" + wordwrap "0.0.2" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + +colors@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" + +combined-stream@^1.0.5, combined-stream@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" + dependencies: + delayed-stream "~1.0.0" + +commander@2.8.x: + version "2.8.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" + dependencies: + graceful-readlink ">= 1.0.0" + +commander@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + dependencies: + graceful-readlink ">= 1.0.0" + +comment-parser@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-0.4.0.tgz#b274a3c924b6b2e55768f712acd3e3003cb55f57" + dependencies: + readable-stream "^2.0.4" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +concat-stream@^1.5.2: + version "1.6.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" + dependencies: + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + +constantinople@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/constantinople/-/constantinople-3.1.0.tgz#7569caa8aa3f8d5935d62e1fa96f9f702cd81c79" + dependencies: + acorn "^3.1.0" + is-expression "^2.0.1" + +contains-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + +core-js@^1.0.0: + version "1.2.7" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" + +core-js@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" + +core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + +cryptiles@2.x.x: + version "2.0.5" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" + dependencies: + boom "2.x.x" + +d@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" + dependencies: + es5-ext "^0.10.9" + +damerau-levenshtein@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.3.tgz#ae4f4ce0b62acae10ff63a01bb08f652f5213af2" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + dependencies: + assert-plus "^1.0.0" + +debug@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" + dependencies: + ms "0.7.1" + +debug@^2.1.1, debug@^2.2.0: + version "2.6.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.3.tgz#0f7eb8c30965ec08c72accfa0130c8b79984141d" + dependencies: + ms "0.7.2" + +decamelize@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + +deep-extend@~0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253" + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + +define-properties@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" + dependencies: + foreach "^2.0.5" + object-keys "^1.0.8" + +del@^2.0.2, del@^2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" + dependencies: + globby "^5.0.0" + is-path-cwd "^1.0.0" + is-path-in-cwd "^1.0.0" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + rimraf "^2.2.8" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + +doctrine@1.5.0, doctrine@^1.2.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +doctrine@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63" + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +doctypes@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/doctypes/-/doctypes-1.1.0.tgz#ea80b106a87538774e8a3a4a5afe293de489e0a9" + +ecc-jsbn@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" + dependencies: + jsbn "~0.1.0" + +emoji-regex@^6.1.0: + version "6.4.1" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.4.1.tgz#77486fe9cd45421d260a6238b88d721e2fad2050" + +encoding@^0.1.11: + version "0.1.12" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" + dependencies: + iconv-lite "~0.4.13" + +es-abstract@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.7.0.tgz#dfade774e01bfcd97f96180298c449c8623fb94c" + dependencies: + es-to-primitive "^1.1.1" + function-bind "^1.1.0" + is-callable "^1.1.3" + is-regex "^1.0.3" + +es-to-primitive@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" + dependencies: + is-callable "^1.1.1" + is-date-object "^1.0.1" + is-symbol "^1.0.1" + +es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14: + version "0.10.15" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.15.tgz#c330a5934c1ee21284a7c081a86e5fd937c91ea6" + dependencies: + es6-iterator "2" + es6-symbol "~3.1" + +es6-iterator@2, es6-iterator@^2.0.1, es6-iterator@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.1.tgz#8e319c9f0453bf575d374940a655920e59ca5512" + dependencies: + d "1" + es5-ext "^0.10.14" + es6-symbol "^3.1" + +es6-map@^0.1.3: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-set "~0.1.5" + es6-symbol "~3.1.1" + event-emitter "~0.3.5" + +es6-set@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-symbol "3.1.1" + event-emitter "~0.3.5" + +es6-symbol@3.1.1, es6-symbol@^3.1, es6-symbol@^3.1.1, es6-symbol@~3.1, es6-symbol@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" + dependencies: + d "1" + es5-ext "~0.10.14" + +es6-weak-map@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" + dependencies: + d "1" + es5-ext "^0.10.14" + es6-iterator "^2.0.1" + es6-symbol "^3.1.1" + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +escope@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" + dependencies: + es6-map "^0.1.3" + es6-weak-map "^2.0.1" + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-config-airbnb-base@^11.1.0: + version "11.1.1" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-11.1.1.tgz#61e9e89e4eb89f474f6913ac817be9fbb59063e0" + +eslint-config-airbnb@^14.1.0: + version "14.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-14.1.0.tgz#355d290040bbf8e00bf8b4b19f4b70cbe7c2317f" + dependencies: + eslint-config-airbnb-base "^11.1.0" + +eslint-import-resolver-node@^0.2.0: + version "0.2.3" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.2.3.tgz#5add8106e8c928db2cba232bcd9efa846e3da16c" + dependencies: + debug "^2.2.0" + object-assign "^4.0.1" + resolve "^1.1.6" + +eslint-module-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.0.0.tgz#a6f8c21d901358759cdc35dbac1982ae1ee58bce" + dependencies: + debug "2.2.0" + pkg-dir "^1.0.0" + +eslint-plugin-import@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.2.0.tgz#72ba306fad305d67c4816348a4699a4229ac8b4e" + dependencies: + builtin-modules "^1.1.1" + contains-path "^0.1.0" + debug "^2.2.0" + doctrine "1.5.0" + eslint-import-resolver-node "^0.2.0" + eslint-module-utils "^2.0.0" + has "^1.0.1" + lodash.cond "^4.3.0" + minimatch "^3.0.3" + pkg-up "^1.0.0" + +eslint-plugin-jsx-a11y@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-4.0.0.tgz#779bb0fe7b08da564a422624911de10061e048ee" + dependencies: + aria-query "^0.3.0" + ast-types-flow "0.0.7" + damerau-levenshtein "^1.0.0" + emoji-regex "^6.1.0" + jsx-ast-utils "^1.0.0" + object-assign "^4.0.1" + +eslint-plugin-react@^6.10.3: + version "6.10.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-6.10.3.tgz#c5435beb06774e12c7db2f6abaddcbf900cd3f78" + dependencies: + array.prototype.find "^2.0.1" + doctrine "^1.2.2" + has "^1.0.1" + jsx-ast-utils "^1.3.4" + object.assign "^4.0.4" + +eslint@^3.18.0: + version "3.18.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.18.0.tgz#647e985c4ae71502d20ac62c109f66d5104c8a4b" + dependencies: + babel-code-frame "^6.16.0" + chalk "^1.1.3" + concat-stream "^1.5.2" + debug "^2.1.1" + doctrine "^2.0.0" + escope "^3.6.0" + espree "^3.4.0" + esquery "^1.0.0" + estraverse "^4.2.0" + esutils "^2.0.2" + file-entry-cache "^2.0.0" + glob "^7.0.3" + globals "^9.14.0" + ignore "^3.2.0" + imurmurhash "^0.1.4" + inquirer "^0.12.0" + is-my-json-valid "^2.10.0" + is-resolvable "^1.0.0" + js-yaml "^3.5.1" + json-stable-stringify "^1.0.0" + levn "^0.3.0" + lodash "^4.0.0" + mkdirp "^0.5.0" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.1" + pluralize "^1.2.1" + progress "^1.1.8" + require-uncached "^1.0.2" + shelljs "^0.7.5" + strip-bom "^3.0.0" + strip-json-comments "~2.0.1" + table "^3.7.8" + text-table "~0.2.0" + user-home "^2.0.0" + +espree@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-3.4.0.tgz#41656fa5628e042878025ef467e78f125cb86e1d" + dependencies: + acorn "4.0.4" + acorn-jsx "^3.0.0" + +esprima@^3.1.1, esprima@~3.1.0: + version "3.1.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" + +esquery@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" + dependencies: + estraverse "^4.0.0" + +esrecurse@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220" + dependencies: + estraverse "~4.1.0" + object-assign "^4.0.1" + +estraverse@^4.0.0, estraverse@^4.1.1, estraverse@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + +estraverse@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2" + +esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + +event-emitter@~0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + dependencies: + d "1" + es5-ext "~0.10.14" + +exit-hook@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + dependencies: + is-posix-bracket "^0.1.0" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + dependencies: + fill-range "^2.1.0" + +extend@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" + +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + dependencies: + is-extglob "^1.0.0" + +extsprintf@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" + +fast-levenshtein@~2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + +fbjs@^0.8.4: + version "0.8.11" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.11.tgz#340b590b8a2278a01ef7467c07a16da9b753db24" + dependencies: + core-js "^1.0.0" + isomorphic-fetch "^2.1.1" + loose-envify "^1.0.0" + object-assign "^4.1.0" + promise "^7.1.1" + setimmediate "^1.0.5" + ua-parser-js "^0.7.9" + +figures@^1.3.5: + version "1.7.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + dependencies: + escape-string-regexp "^1.0.5" + object-assign "^4.1.0" + +file-entry-cache@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + dependencies: + flat-cache "^1.2.1" + object-assign "^4.0.1" + +filename-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775" + +fill-range@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^1.1.3" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +flat-cache@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96" + dependencies: + circular-json "^0.3.1" + del "^2.0.2" + graceful-fs "^4.1.2" + write "^0.2.1" + +for-in@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + +for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + dependencies: + for-in "^1.0.1" + +foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + +form-data@~2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.2.tgz#89c3534008b97eada4cbb157d58f6f5df025eae4" + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.5" + mime-types "^2.1.12" + +fs-extra@^0.26.5: + version "0.26.7" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.26.7.tgz#9ae1fdd94897798edab76d0918cf42d0c3184fa9" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + klaw "^1.0.0" + path-is-absolute "^1.0.0" + rimraf "^2.2.8" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +fsevents@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.1.tgz#f19fd28f43eeaf761680e519a203c4d0b3d31aff" + dependencies: + nan "^2.3.0" + node-pre-gyp "^0.6.29" + +fstream-ignore@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" + dependencies: + fstream "^1.0.0" + inherits "2" + minimatch "^3.0.0" + +fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: + version "1.0.11" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + +function-bind@^1.0.2, function-bind@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" + +gauge@~2.7.1: + version "2.7.3" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.3.tgz#1c23855f962f17b3ad3d0dc7443f304542edfe09" + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +generate-function@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" + +generate-object-property@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" + dependencies: + is-property "^1.0.0" + +getpass@^0.1.1: + version "0.1.6" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6" + dependencies: + assert-plus "^1.0.0" + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + dependencies: + is-glob "^2.0.0" + +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.2" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^9.0.0, globals@^9.14.0: + version "9.16.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.16.0.tgz#63e903658171ec2d9f51b1d31de5e2b8dc01fb80" + +globby@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" + dependencies: + array-union "^1.0.1" + arrify "^1.0.0" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + +har-schema@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" + +har-validator@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" + dependencies: + ajv "^4.9.1" + har-schema "^1.0.5" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + +has@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" + dependencies: + function-bind "^1.0.2" + +hawk@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" + dependencies: + boom "2.x.x" + cryptiles "2.x.x" + hoek "2.x.x" + sntp "1.x.x" + +hoek@2.x.x: + version "2.16.3" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" + +http-signature@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" + dependencies: + assert-plus "^0.2.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +iconv-lite@~0.4.13: + version "0.4.15" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb" + +ignore@^3.2.0: + version "3.2.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.2.6.tgz#26e8da0644be0bb4cb39516f6c79f0e0f4ffe48c" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +ini@~1.3.0: + version "1.3.4" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" + +inquirer@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" + dependencies: + ansi-escapes "^1.1.0" + ansi-regex "^2.0.0" + chalk "^1.0.0" + cli-cursor "^1.0.1" + cli-width "^2.0.0" + figures "^1.3.5" + lodash "^4.3.0" + readline2 "^1.0.1" + run-async "^0.1.0" + rx-lite "^3.1.2" + string-width "^1.0.1" + strip-ansi "^3.0.0" + through "^2.3.6" + +interpret@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.1.tgz#d579fb7f693b858004947af39fa0db49f795602c" + +invariant@^2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" + dependencies: + loose-envify "^1.0.0" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.0.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" + +is-callable@^1.1.1, is-callable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" + +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + +is-dotfile@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d" + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + dependencies: + is-primitive "^2.0.0" + +is-expression@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-expression/-/is-expression-2.1.0.tgz#91be9d47debcfef077977e9722be6dcfb4465ef0" + dependencies: + acorn "~3.3.0" + object-assign "^4.0.1" + +is-expression@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-expression/-/is-expression-3.0.0.tgz#39acaa6be7fd1f3471dc42c7416e61c24317ac9f" + dependencies: + acorn "~4.0.2" + object-assign "^4.0.1" + +is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + dependencies: + is-extglob "^1.0.0" + +is-my-json-valid@^2.10.0: + version "2.16.0" + resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz#f079dd9bfdae65ee2038aae8acbc86ab109e3693" + dependencies: + generate-function "^2.0.0" + generate-object-property "^1.1.0" + jsonpointer "^4.0.0" + xtend "^4.0.0" + +is-number@^2.0.2, is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + dependencies: + kind-of "^3.0.2" + +is-path-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" + +is-path-in-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" + dependencies: + is-path-inside "^1.0.0" + +is-path-inside@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" + dependencies: + path-is-inside "^1.0.1" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + +is-promise@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + +is-property@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" + +is-regex@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + dependencies: + has "^1.0.1" + +is-resolvable@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" + dependencies: + tryit "^1.0.1" + +is-stream@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + +is-symbol@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + dependencies: + isarray "1.0.0" + +isomorphic-fetch@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" + dependencies: + node-fetch "^1.0.1" + whatwg-fetch ">=0.10.0" + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + +jodid25519@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967" + dependencies: + jsbn "~0.1.0" + +js-stringify@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/js-stringify/-/js-stringify-1.0.2.tgz#1736fddfd9724f28a3682adc6230ae7e4e9679db" + +js-tokens@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" + +js-yaml@^3.5.1: + version "3.8.2" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.2.tgz#02d3e2c0f6beab20248d412c352203827d786721" + dependencies: + argparse "^1.0.7" + esprima "^3.1.1" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + +json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + +jsonfile@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + +jsonpointer@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" + +jsprim@^1.2.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918" + dependencies: + assert-plus "1.0.0" + extsprintf "1.0.2" + json-schema "0.2.3" + verror "1.3.6" + +jstransformer-markdown@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/jstransformer-markdown/-/jstransformer-markdown-1.1.1.tgz#8017074235d658b69c69e4e941fc80c71a80b9c0" + dependencies: + markdown "^0.5.0" + +jstransformer@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/jstransformer/-/jstransformer-1.0.0.tgz#ed8bf0921e2f3f1ed4d5c1a44f68709ed24722c3" + dependencies: + is-promise "^2.0.0" + promise "^7.0.1" + +jsx-ast-utils@^1.0.0, jsx-ast-utils@^1.3.4: + version "1.4.0" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.4.0.tgz#5afe38868f56bc8cc7aeaef0100ba8c75bd12591" + dependencies: + object-assign "^4.1.0" + +kind-of@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.1.0.tgz#475d698a5e49ff5e53d14e3e732429dc8bf4cf47" + dependencies: + is-buffer "^1.0.2" + +klaw@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + optionalDependencies: + graceful-fs "^4.1.9" + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lodash.cond@^4.3.0: + version "4.5.2" + resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5" + +lodash@^4.0.0, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.6.1: + version "4.17.4" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" + +longest@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + +loose-envify@^1.0.0, loose-envify@^1.1.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" + dependencies: + js-tokens "^3.0.0" + +markdown@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/markdown/-/markdown-0.5.0.tgz#28205b565a8ae7592de207463d6637dc182722b2" + dependencies: + nopt "~2.1.1" + +marked@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.6.tgz#b2c6c618fccece4ef86c4fc6cb8a7cbf5aeda8d7" + +micromatch@^2.1.5: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +mime-db@~1.27.0: + version "1.27.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1" + +mime-types@^2.1.12, mime-types@~2.1.7: + version "2.1.15" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed" + dependencies: + mime-db "~1.27.0" + +minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" + dependencies: + brace-expansion "^1.0.0" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + +ms@0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" + +ms@0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" + +mute-stream@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" + +nan@^2.3.0: + version "2.5.1" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.5.1.tgz#d5b01691253326a97a2bbee9e61c55d8d60351e2" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + +node-dir@^0.1.10: + version "0.1.16" + resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.16.tgz#d2ef583aa50b90d93db8cdd26fcea58353957fe4" + dependencies: + minimatch "^3.0.2" + +node-fetch@^1.0.1: + version "1.6.3" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" + +node-pre-gyp@^0.6.29: + version "0.6.34" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.34.tgz#94ad1c798a11d7fc67381b50d47f8cc18d9799f7" + dependencies: + mkdirp "^0.5.1" + nopt "^4.0.1" + npmlog "^4.0.2" + rc "^1.1.7" + request "^2.81.0" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^2.2.1" + tar-pack "^3.4.0" + +nopt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + dependencies: + abbrev "1" + osenv "^0.1.4" + +nopt@~2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-2.1.2.tgz#6cccd977b80132a07731d6e8ce58c2c8303cf9af" + dependencies: + abbrev "1" + +normalize-path@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a" + +npmlog@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.0.2.tgz#d03950e0e78ce1527ba26d2a7592e9348ac3e75f" + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.1" + set-blocking "~2.0.0" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + +oauth-sign@~0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" + +object-assign@^4.0.1, object-assign@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + +object-keys@^1.0.10, object-keys@^1.0.8: + version "1.0.11" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" + +object.assign@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.0.4.tgz#b1c9cc044ef1b9fe63606fc141abbb32e14730cc" + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.0" + object-keys "^1.0.10" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +once@^1.3.0, once@^1.3.3: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +onetime@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + +optionator@^0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.4" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + wordwrap "~1.0.0" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +os-tmpdir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + +osenv@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + dependencies: + pinkie-promise "^2.0.0" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +path-is-inside@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + +path-parse@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" + +performance-now@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + +pkg-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" + dependencies: + find-up "^1.0.0" + +pkg-up@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-1.0.0.tgz#3e08fb461525c4421624a33b9f7e6d0af5b05a26" + dependencies: + find-up "^1.0.0" + +pluralize@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + +private@~0.1.5: + version "0.1.7" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1" + +process-nextick-args@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + +progress@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" + +promise@^7.0.1, promise@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.1.1.tgz#489654c692616b8aa55b0724fa809bb7db49c5bf" + dependencies: + asap "~2.0.3" + +promised-io@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/promised-io/-/promised-io-0.3.5.tgz#4ad217bb3658bcaae9946b17a8668ecd851e1356" + +pug-attrs@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/pug-attrs/-/pug-attrs-2.0.2.tgz#8be2b2225568ffa75d1b866982bff9f4111affcb" + dependencies: + constantinople "^3.0.1" + js-stringify "^1.0.1" + pug-runtime "^2.0.3" + +pug-code-gen@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pug-code-gen/-/pug-code-gen-1.1.1.tgz#1cf72744ef2a039eae6a3340caaa1105871258e8" + dependencies: + constantinople "^3.0.1" + doctypes "^1.1.0" + js-stringify "^1.0.1" + pug-attrs "^2.0.2" + pug-error "^1.3.2" + pug-runtime "^2.0.3" + void-elements "^2.0.1" + with "^5.0.0" + +pug-error@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/pug-error/-/pug-error-1.3.2.tgz#53ae7d9d29bb03cf564493a026109f54c47f5f26" + +pug-filters@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/pug-filters/-/pug-filters-2.1.1.tgz#10ab2b6d7e5aeec99cad28a1e4c8085f823fc754" + dependencies: + clean-css "^3.3.0" + constantinople "^3.0.1" + jstransformer "1.0.0" + pug-error "^1.3.2" + pug-walk "^1.1.1" + resolve "^1.1.6" + uglify-js "^2.6.1" + +pug-lexer@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pug-lexer/-/pug-lexer-3.0.0.tgz#173b00a082e5684a60eb0deb5aae4e514a172e26" + dependencies: + character-parser "^2.1.1" + is-expression "^3.0.0" + pug-error "^1.3.2" + +pug-linker@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/pug-linker/-/pug-linker-2.0.2.tgz#1deca67d741fab46b028c1366f178fbaee620233" + dependencies: + pug-error "^1.3.2" + pug-walk "^1.1.1" + +pug-load@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/pug-load/-/pug-load-2.0.5.tgz#eaaf46ccace8aff7461e0fad1e2b67305514f2c6" + dependencies: + object-assign "^4.1.0" + pug-walk "^1.1.1" + +pug-parser@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/pug-parser/-/pug-parser-2.0.2.tgz#53a680cfd05039dcb0c27d029094bc4a792689b0" + dependencies: + pug-error "^1.3.2" + token-stream "0.0.1" + +pug-runtime@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/pug-runtime/-/pug-runtime-2.0.3.tgz#98162607b0fce9e254d427f33987a5aee7168bda" + +pug-strip-comments@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pug-strip-comments/-/pug-strip-comments-1.0.2.tgz#d313afa01bcc374980e1399e23ebf2eb9bdc8513" + dependencies: + pug-error "^1.3.2" + +pug-walk@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pug-walk/-/pug-walk-1.1.1.tgz#b9976240d213692e6993fbc13ae1205c54052efe" + +pug@^2.0.0-beta11: + version "2.0.0-beta11" + resolved "https://registry.yarnpkg.com/pug/-/pug-2.0.0-beta11.tgz#15abe6af5004c7e2cf4613e4b27465c9546b5f01" + dependencies: + pug-code-gen "^1.1.1" + pug-filters "^2.1.1" + pug-lexer "^3.0.0" + pug-linker "^2.0.2" + pug-load "^2.0.5" + pug-parser "^2.0.2" + pug-runtime "^2.0.3" + pug-strip-comments "^1.0.2" + +punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + +qs@~6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" + +randomatic@^1.1.3: + version "1.1.6" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb" + dependencies: + is-number "^2.0.2" + kind-of "^3.0.2" + +rc@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.1.7.tgz#c5ea564bb07aff9fd3a5b32e906c1d3a65940fea" + dependencies: + deep-extend "~0.4.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-docgen@^2.13.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/react-docgen/-/react-docgen-2.13.0.tgz#7fcc4a3104ea8d4fd428383ba38df11166837be9" + dependencies: + async "^1.4.2" + babel-runtime "^6.9.2" + babylon "~5.8.3" + commander "^2.9.0" + doctrine "^2.0.0" + node-dir "^0.1.10" + recast "^0.11.5" + +react@^15.4.2: + version "15.4.2" + resolved "https://registry.yarnpkg.com/react/-/react-15.4.2.tgz#41f7991b26185392ba9bae96c8889e7e018397ef" + dependencies: + fbjs "^0.8.4" + loose-envify "^1.1.0" + object-assign "^4.1.0" + +"readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.1.4, readable-stream@^2.2.2: + version "2.2.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.6.tgz#8b43aed76e71483938d12a8d46c6cf1a00b1f816" + dependencies: + buffer-shims "^1.0.0" + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~0.10.x" + util-deprecate "~1.0.1" + +readdirp@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" + dependencies: + graceful-fs "^4.1.2" + minimatch "^3.0.2" + readable-stream "^2.0.2" + set-immediate-shim "^1.0.1" + +readline2@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + mute-stream "0.0.5" + +recast@^0.11.5: + version "0.11.23" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.11.23.tgz#451fd3004ab1e4df9b4e4b66376b2a21912462d3" + dependencies: + ast-types "0.9.6" + esprima "~3.1.0" + private "~0.1.5" + source-map "~0.5.0" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + dependencies: + resolve "^1.1.6" + +regenerator-runtime@^0.10.0: + version "0.10.3" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.3.tgz#8c4367a904b51ea62a908ac310bf99ff90a82a3e" + +regex-cache@^0.4.2: + version "0.4.3" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" + dependencies: + is-equal-shallow "^0.1.3" + is-primitive "^2.0.0" + +repeat-element@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + +repeat-string@^1.5.2: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + +request@^2.81.0: + version "2.81.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~4.2.1" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + oauth-sign "~0.8.1" + performance-now "^0.2.0" + qs "~6.4.0" + safe-buffer "^5.0.1" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "^0.6.0" + uuid "^3.0.0" + +require-uncached@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" + dependencies: + caller-path "^0.1.0" + resolve-from "^1.0.0" + +resolve-from@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + +resolve@^1.1.6: + version "1.3.2" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.2.tgz#1f0442c9e0cbb8136e87b9305f932f46c7f28235" + dependencies: + path-parse "^1.0.5" + +restore-cursor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" + dependencies: + exit-hook "^1.0.0" + onetime "^1.0.0" + +right-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + dependencies: + align-text "^0.1.1" + +rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" + dependencies: + glob "^7.0.5" + +run-async@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" + dependencies: + once "^1.3.0" + +rx-lite@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" + +safe-buffer@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" + +semver@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + +set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + +set-immediate-shim@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + +setimmediate@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + +shelljs@^0.7.5: + version "0.7.7" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.7.tgz#b2f5c77ef97148f4b4f6e22682e10bba8667cff1" + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +signal-exit@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + +sntp@1.x.x: + version "1.0.9" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" + dependencies: + hoek "2.x.x" + +source-map@0.4.x: + version "0.4.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + dependencies: + amdefine ">=0.0.4" + +source-map@~0.5.0, source-map@~0.5.1: + version "0.5.6" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + +sshpk@^1.7.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.11.0.tgz#2d8d5ebb4a6fab28ffba37fa62a90f4a3ea59d77" + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + dashdash "^1.12.0" + getpass "^0.1.1" + optionalDependencies: + bcrypt-pbkdf "^1.0.0" + ecc-jsbn "~0.1.1" + jodid25519 "^1.0.0" + jsbn "~0.1.0" + tweetnacl "~0.14.0" + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string-width@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^3.0.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + +stringstream@~0.0.4: + version "0.0.5" + resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +table@^3.7.8: + version "3.8.3" + resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" + dependencies: + ajv "^4.7.0" + ajv-keywords "^1.0.0" + chalk "^1.1.1" + lodash "^4.0.0" + slice-ansi "0.0.4" + string-width "^2.0.0" + +tar-pack@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984" + dependencies: + debug "^2.2.0" + fstream "^1.0.10" + fstream-ignore "^1.0.5" + once "^1.3.3" + readable-stream "^2.1.4" + rimraf "^2.5.1" + tar "^2.2.1" + uid-number "^0.0.6" + +tar@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" + dependencies: + block-stream "*" + fstream "^1.0.2" + inherits "2" + +text-table@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + +through@^2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +to-fast-properties@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.2.tgz#f3f5c0c3ba7299a7ef99427e44633257ade43320" + +token-stream@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/token-stream/-/token-stream-0.0.1.tgz#ceeefc717a76c4316f126d0b9dbaa55d7e7df01a" + +tough-cookie@~2.3.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" + dependencies: + punycode "^1.4.1" + +tryit@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + dependencies: + prelude-ls "~1.1.2" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + +ua-parser-js@^0.7.9: + version "0.7.12" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.12.tgz#04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb" + +uglify-js@^2.6.1: + version "2.8.16" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.16.tgz#d286190b6eefc6fd65eb0ecac6551e0b0e8839a4" + dependencies: + source-map "~0.5.1" + yargs "~3.10.0" + optionalDependencies: + uglify-to-browserify "~1.0.0" + +uglify-to-browserify@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + +uid-number@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" + +user-home@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" + dependencies: + os-homedir "^1.0.0" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + +uuid@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" + +verror@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" + dependencies: + extsprintf "1.0.2" + +void-elements@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" + +whatwg-fetch@>=0.10.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" + +wide-align@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad" + dependencies: + string-width "^1.0.1" + +window-size@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + +with@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/with/-/with-5.1.1.tgz#fa4daa92daf32c4ea94ed453c81f04686b575dfe" + dependencies: + acorn "^3.1.0" + acorn-globals "^3.0.0" + +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + +wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +write@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + dependencies: + mkdirp "^0.5.1" + +xtend@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + +yargs@~3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + dependencies: + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0"