├── .gitignore ├── .npmignore ├── CHANGELOG.md ├── LICENSE ├── README.md ├── example ├── components │ ├── Baz.jsx │ └── Foo.jsx ├── docs │ └── README.md └── gulpfile.js ├── index.js ├── package-lock.json ├── package.json └── src └── react-docgen-md.js /.gitignore: -------------------------------------------------------------------------------- 1 | npm-debug.log 2 | npm-debug.log.* 3 | node_modules/ 4 | .DS_Store 5 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | example/ 2 | .gitignore 3 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # gulp-react-docs Change Log 2 | 3 | ## 1.0.0 (2020-03-04) 4 | 5 | ### BREAKING 6 | 7 | - Update `react-docgen` to `5.3.0` 8 | 9 | ### Improvements 10 | 11 | - Upgrade to `gulp@4` for local development 12 | - Update `lodash` to `4.17.15` 13 | - Remove `gulp-util` dependency 14 | 15 | ## 0.1.3 (2017-12-13) 16 | 17 | Upgraded `react-docgen` to `^2.20.0`. Fixes https://github.com/AdRoll/gulp-react-docs/issues/7 18 | 19 | ## 0.1.2 (2016-07-14) 20 | 21 | Make the `options` argument optional and make `gulp-util` a production dependency (https://github.com/AdRoll/gulp-react-docs/pull/4) 22 | 23 | ## 0.1.1 (2016-04-08) 24 | 25 | Pinned `react-docgen` dependency to version `2.7.0`. This prevents backwards incompatible changes in `react-docgen@2.8.0` from breaking this package. 26 | 27 | ## 0.1.0 (2015-12-17) 28 | 29 | Initial publication of the `gulp-react-docs` plugin. The gulp plugin uses `react-docgen@2.4.0` and generates documentation for React components and the `propTypes` they expect. The plugin takes the following options at the moment: 30 | 31 | - `path`: If given, a link from the generated `.md` doc to the source code / file will be included in the generated output. See the repo [README.md](./README.md) for more information. 32 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License 2 | 3 | Copyright (c) 2015 AdRoll, Inc. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # gulp-react-docs 2 | 3 | A [gulp](http://gulpjs.com/) plugin for generating documentation in Markdown format for React components based on their `propTypes`. The plugin uses [react-docgen](https://github.com/reactjs/react-docgen) to extract component prop information, and then render the markdown using [handlebars](http://handlebarsjs.com/). 4 | 5 | This plugin is an extension of the automatic documentation generation tool we use at [AdRoll](http://tech.adroll.com) for our reusable component library as written about [here](http://tech.adroll.com/blog/frontend/2015/11/12/rollup-react-and-npm-at-adroll.html#automatic-documentation-generation). 6 | 7 | ## Installation 8 | 9 | Install package with [npm](http://npmjs.org/) and add it to your development dependencies: 10 | 11 | `npm install gulp-react-docs --save-dev` 12 | 13 | ## Information 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |
Packagegulp-react-docs
DescriptionGenerates Markdown documentation for React components based on component `propTypes`.
Node Version>= 10
28 | 29 | ## Usage 30 | 31 | ```js 32 | var gulpReactDocs = require('gulp-react-docs'); 33 | 34 | gulp.task('react-docs', function() { 35 | var docsDest = 'docs'; 36 | 37 | return gulp.src('./components/**/*.jsx') 38 | .pipe(gulpReactDocs({ 39 | path: docsDest 40 | })) 41 | .pipe(gulp.dest(docsDest)); 42 | }); 43 | ``` 44 | 45 | For example usage, see our example `gulpfile.js` [here](./example/gulpfile.js). 46 | 47 | For example output, see the generated docs [example/docs](./example/docs) generated from the files in [example/components](./example/components). 48 | 49 | ### Options 50 | The `gulp-react-docs` plugin can take an `options` object. The following attributes may be passed as part of the `options` object: 51 | 52 | #### path 53 | 54 | * Type: `string` OR `function` 55 | * Default: `undefined` 56 | 57 | The path specifying the destination directory for your generated documentation files. This option is used to generate links from the output `.md` files to the source code. See the link produced below the heading [here](./example/docs/README.md#baz) for an example. If this option is not given, the link to the source code will not be generated. The `path` can be either a string or a function. 58 | 59 | If you pass in a string, `path` should be the relative path from the `gulpfile.js` using the `gulp-react-docs` plugin to where the generated documentation will be output. The `path` will then be used to generate the relative path from the output documentation to the source code. 60 | 61 | If you pass in a function, `path` is expected to return a string. The return value can be either a relative from where the generated documentation will be output to the source code, or an absolute path / URL pointing to the source code. 62 | 63 | ## Contributors 64 | 65 | - [@marsjosephine](https://github.com/marsjosephine) 66 | - [@jtuulos](https://github.com/jtuulos) 67 | - [@jgrist](https://github.com/jgrist) 68 | -------------------------------------------------------------------------------- /example/components/Baz.jsx: -------------------------------------------------------------------------------- 1 | var React = require('react'); 2 | 3 | var Baz = React.createClass({ 4 | 5 | /************************************************** 6 | * Component Specs and lifecycle * 7 | **************************************************/ 8 | 9 | propTypes: { 10 | /** 11 | * The columns you want the Foo to have. Each column can have the 12 | * following attributes: 13 | * - `key` **(required)**: column identifier 14 | * - `label` **(required)**: Display text for the column. Should alread be 15 | * translated when passed to the Foo. 16 | * - `accessor` **(required)**: Function that returns relevant value from a 17 | * given data item. Later fed to the column `render` function. 18 | * - `render`: Function that takes the output of `accessor` and returns 19 | * what should be rendered for a given data item in that column. Should 20 | * return either a formatted value or can also be html. Columns without 21 | * `render` functions will not be displayed but can be used for filtering 22 | * (see the `filters` prop for more information). 23 | * - `widthMultiplier`: Number to multiply the width of the column relative 24 | * to other columns. By default, all columns are of equal width. 25 | */ 26 | columns: React.PropTypes.arrayOf( 27 | React.PropTypes.shape({ 28 | key: React.PropTypes.string.isRequired, 29 | label: React.PropTypes.string.isRequired, 30 | accessor: React.PropTypes.func.isRequired, 31 | render: React.PropTypes.func, 32 | widthMultiplier: React.PropTypes.number 33 | }) 34 | ), 35 | /** 36 | * Array of data items. These data items can take whatever form or have 37 | * whatever attributes you'd like. As long as the column.accessor and 38 | * column.render functions accounts for the form or attributes of your 39 | * data items. 40 | */ 41 | data: React.PropTypes.array.isRequired, 42 | /** 43 | * CSS class(es) to add to a Baz. Can be a string or a function. If this 44 | * prop is a string, the class(es) will be attached to all Bazzes in the Foo. 45 | * If it is a function, the function will be called with the data item 46 | * to be rendered in the Baz and the classes returned will be applied 47 | * to that item's Baz when rendered. In the case of a function the return 48 | * value is expected to a string of space-separated classes. 49 | */ 50 | bazClassNames: React.PropTypes.oneOfType([ 51 | React.PropTypes.string, 52 | React.PropTypes.func 53 | ]), 54 | /** 55 | * An array of filters you want the Foo to have. When no filters are 56 | * given, no filter dropdowns will be shown. A filter object can have the 57 | * following properties: 58 | * - `columnKey` **(required)**: The key of the column in the `columns` 59 | * array the filter will do the filtering on. 60 | * - `options`: An array of options to display in the filter dropdown. Each 61 | * option is required to have a `value` and `label`. 62 | * - `defaultValue` **(required)**: A default value to render the filter with. 63 | * Should match one of the values in the `options` array. 64 | * - `filterCb` **(required)**: The predicate function used to filter the 65 | * items in the Foo when a selection for this filter is made. The `Foo` 66 | * will call this function with the option `value` as the first argument, and 67 | * the value of each data item (as they're being filtered) as the second 68 | * argument. The value of the data item is determined using the corresponding 69 | * columns (using `columnKey`) `accessor` function. 70 | * - `value`: Given value to the assign to the filter. If not given, this filter's 71 | * `defaultValue` will be used. 72 | */ 73 | filters: React.PropTypes.arrayOf( 74 | React.PropTypes.shape({ 75 | columnKey: React.PropTypes.string.isRequired, 76 | options: React.PropTypes.arrayOf( 77 | React.PropTypes.shape({ 78 | value: React.PropTypes.string.isRequired, 79 | label: React.PropTypes.string.isRequired 80 | }) 81 | ), 82 | defaultValue: React.PropTypes.string.isRequired, 83 | filterCb: React.PropTypes.func.isRequired, 84 | value: React.PropTypes.string 85 | }) 86 | ), 87 | /** 88 | * An array of column keys that designate which columns the search should 89 | * look for matches in. When no search columns are given, the search field 90 | * is not shown in the Foo. 91 | */ 92 | searchColumns: React.PropTypes.arrayOf(React.PropTypes.string), 93 | /** 94 | * The initial search query. Tokenized based on spaces in the string. 95 | */ 96 | searchQuery: React.PropTypes.string, 97 | /** 98 | * A function that when given a data item returns a list of possible actions 99 | * that can be taken for that item. if no `bazActions` are given, then no 100 | * actions will be shown. This function should return an array of either 101 | * a visual divider between action options **OR** objects with a `type` and 102 | * `label`. 103 | */ 104 | bazActions: React.PropTypes.func, 105 | /** 106 | * A React element that renders and controls secondary info. 107 | * This could be bulk action buttons, non-actionable information, etc. 108 | * Will be rendered to the right of the search and filters. 109 | */ 110 | secondaryInfo: React.PropTypes.element 111 | }, 112 | 113 | statics: { 114 | TEXT_ALIGN_LEFT : TEXT_ALIGN_LEFT, 115 | TEXT_ALIGN_RIGHT : TEXT_ALIGN_RIGHT, 116 | SORT_DIRECTION_DESC : SORT_DIRECTION_DESC, 117 | SORT_DIRECTION_ASC : SORT_DIRECTION_ASC 118 | }, 119 | 120 | getDefaultProps() { 121 | return { 122 | maxConfigOptions : 6, 123 | onSearch : _.noop, 124 | onFilter : _.noop, 125 | onSort : _.noop 126 | }; 127 | }, 128 | 129 | /************************************************** 130 | * Rendering * 131 | **************************************************/ 132 | 133 | render: function() { 134 | return ( 135 |
Hello World, this is a Baz element.
136 | ); 137 | } 138 | }); 139 | 140 | module.exports = Baz; 141 | -------------------------------------------------------------------------------- /example/components/Foo.jsx: -------------------------------------------------------------------------------- 1 | var React = require('react'); 2 | 3 | var Foo = React.createClass({ 4 | 5 | /************************************************** 6 | * Component Specs && Lifecycle * 7 | **************************************************/ 8 | 9 | propTypes: { 10 | /** 11 | * Initial value for Foo component in Foo Bar format. 12 | * The Foo Bar format is enforced because it's the most reliable way to 13 | * parse Foos. 14 | */ 15 | initialValue: fooBarFormat, 16 | /** 17 | * Buttons for Foo presets (e.g. "Bar", "Baz"). Each button 18 | * should have the following properties: 19 | * - `label` **(required)**: Display text for the button. 20 | * - `value` **(required)**: The preset Foo or Foo range for the button. 21 | * For single mode, this function should return a string in Foo Bar format. 22 | * For `range` mode, this function should return an array 23 | * of strings in Foo Bar format. 24 | */ 25 | buttons: React.PropTypes.arrayOf( 26 | React.PropTypes.shape({ 27 | label: React.PropTypes.string.isRequired, 28 | value: React.PropTypes.func.isRequired 29 | }) 30 | ), 31 | /** 32 | * Number of Foos to display side by side in the Baz. 33 | * - Defaults to 2. 34 | * - Max 2. 35 | */ 36 | foos: React.PropTypes.oneOf([1, 2]), 37 | /** 38 | * The first selectable Foo. 39 | */ 40 | disableBefore: React.PropTypes.string, 41 | /** 42 | * The last selectable Foo. 43 | */ 44 | disableAfter: React.PropTypes.string, 45 | /** 46 | * When a Foo is clicked in the Baz, this callback receives the 47 | * new selected range as the first argument. 48 | * 49 | * The selected range will be an array of 2 Foos, and each Foo in the 50 | * range is formatted as a Foo Bar Baz. 51 | */ 52 | onChange: React.PropTypes.func, 53 | /** 54 | * User-provided validator function for ranges a user is considering. 55 | * This prop can be used to implement custom range restrictions. This 56 | * function will be called with the range in the form of an array. 57 | * 58 | * For invalid ranges, this function should return an error message. 59 | * Otherwise, it should not return anything. 60 | */ 61 | validate: React.PropTypes.func, 62 | /** 63 | * Boolean for whether or not the Baz should include 64 | * Baz selection dropdowns. 65 | */ 66 | showBazSelector: React.PropTypes.bool 67 | }, 68 | 69 | statics: { 70 | FOO_BAR : BAR_BAZ, 71 | BAZ_FOO : BAR_FOO 72 | }, 73 | 74 | /************************************************** 75 | * Rendering * 76 | **************************************************/ 77 | 78 | render: function() { 79 | return ( 80 |
Hello World, this is a Foo element.
81 | ); 82 | } 83 | }); 84 | 85 | module.exports = Foo; 86 | -------------------------------------------------------------------------------- /example/docs/README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # React Component Reference 4 | 5 | - [Baz](#baz) 6 | - [Foo](#foo) 7 | 8 | 9 | 10 | ## Baz 11 | 12 | From [`../components/Baz.jsx`](../components/Baz.jsx) 13 | 14 | #### bazActions 15 | 16 | ```js 17 | bazActions: Function 18 | ``` 19 | 20 | A function that when given a data item returns a list of possible actions 21 | that can be taken for that item. if no `bazActions` are given, then no 22 | actions will be shown. This function should return an array of either 23 | a visual divider between action options **OR** objects with a `type` and 24 | `label`. 25 | 26 | #### bazClassNames 27 | 28 | ```js 29 | bazClassNames: (String|Function) 30 | ``` 31 | 32 | CSS class(es) to add to a Baz. Can be a string or a function. If this 33 | prop is a string, the class(es) will be attached to all Bazzes in the Foo. 34 | If it is a function, the function will be called with the data item 35 | to be rendered in the Baz and the classes returned will be applied 36 | to that item's Baz when rendered. In the case of a function the return 37 | value is expected to a string of space-separated classes. 38 | 39 | #### columns 40 | 41 | ```js 42 | columns: [{ 43 | key: String 44 | label: String 45 | accessor: Function 46 | render: Function 47 | widthMultiplier: Number 48 | }, ...] 49 | ``` 50 | 51 | The columns you want the Foo to have. Each column can have the 52 | following attributes: 53 | - `key` **(required)**: column identifier 54 | - `label` **(required)**: Display text for the column. Should alread be 55 | translated when passed to the Foo. 56 | - `accessor` **(required)**: Function that returns relevant value from a 57 | given data item. Later fed to the column `render` function. 58 | - `render`: Function that takes the output of `accessor` and returns 59 | what should be rendered for a given data item in that column. Should 60 | return either a formatted value or can also be html. Columns without 61 | `render` functions will not be displayed but can be used for filtering 62 | (see the `filters` prop for more information). 63 | - `widthMultiplier`: Number to multiply the width of the column relative 64 | to other columns. By default, all columns are of equal width. 65 | 66 | #### data 67 | 68 | ```js 69 | // Required 70 | data: Array 71 | ``` 72 | 73 | Array of data items. These data items can take whatever form or have 74 | whatever attributes you'd like. As long as the column.accessor and 75 | column.render functions accounts for the form or attributes of your 76 | data items. 77 | 78 | #### filters 79 | 80 | ```js 81 | filters: [{ 82 | columnKey: String 83 | options: [{ 84 | value: String 85 | label: String 86 | }, ...] 87 | defaultValue: String 88 | filterCb: Function 89 | value: String 90 | }, ...] 91 | ``` 92 | 93 | An array of filters you want the Foo to have. When no filters are 94 | given, no filter dropdowns will be shown. A filter object can have the 95 | following properties: 96 | - `columnKey` **(required)**: The key of the column in the `columns` 97 | array the filter will do the filtering on. 98 | - `options`: An array of options to display in the filter dropdown. Each 99 | option is required to have a `value` and `label`. 100 | - `defaultValue` **(required)**: A default value to render the filter with. 101 | Should match one of the values in the `options` array. 102 | - `filterCb` **(required)**: The predicate function used to filter the 103 | items in the Foo when a selection for this filter is made. The `Foo` 104 | will call this function with the option `value` as the first argument, and 105 | the value of each data item (as they're being filtered) as the second 106 | argument. The value of the data item is determined using the corresponding 107 | columns (using `columnKey`) `accessor` function. 108 | - `value`: Given value to the assign to the filter. If not given, this filter's 109 | `defaultValue` will be used. 110 | 111 | #### maxConfigOptions 112 | 113 | ```js 114 | // Default: 6 115 | maxConfigOptions: 116 | ``` 117 | 118 | #### onFilter 119 | 120 | ```js 121 | // Default: _.noop 122 | onFilter: 123 | ``` 124 | 125 | #### onSearch 126 | 127 | ```js 128 | // Default: _.noop 129 | onSearch: 130 | ``` 131 | 132 | #### onSort 133 | 134 | ```js 135 | // Default: _.noop 136 | onSort: 137 | ``` 138 | 139 | #### searchColumns 140 | 141 | ```js 142 | searchColumns: [String, ...] 143 | ``` 144 | 145 | An array of column keys that designate which columns the search should 146 | look for matches in. When no search columns are given, the search field 147 | is not shown in the Foo. 148 | 149 | #### searchQuery 150 | 151 | ```js 152 | searchQuery: String 153 | ``` 154 | 155 | The initial search query. Tokenized based on spaces in the string. 156 | 157 | #### secondaryInfo 158 | 159 | ```js 160 | secondaryInfo: ReactElement 161 | ``` 162 | 163 | A React element that renders and controls secondary info. 164 | This could be bulk action buttons, non-actionable information, etc. 165 | Will be rendered to the right of the search and filters. 166 | 167 |

168 | 169 | ## Foo 170 | 171 | From [`../components/Foo.jsx`](../components/Foo.jsx) 172 | 173 | #### buttons 174 | 175 | ```js 176 | buttons: [{ 177 | label: String 178 | value: Function 179 | }, ...] 180 | ``` 181 | 182 | Buttons for Foo presets (e.g. "Bar", "Baz"). Each button 183 | should have the following properties: 184 | - `label` **(required)**: Display text for the button. 185 | - `value` **(required)**: The preset Foo or Foo range for the button. 186 | For single mode, this function should return a string in Foo Bar format. 187 | For `range` mode, this function should return an array 188 | of strings in Foo Bar format. 189 | 190 | #### disableAfter 191 | 192 | ```js 193 | disableAfter: String 194 | ``` 195 | 196 | The last selectable Foo. 197 | 198 | #### disableBefore 199 | 200 | ```js 201 | disableBefore: String 202 | ``` 203 | 204 | The first selectable Foo. 205 | 206 | #### foos 207 | 208 | ```js 209 | foos: (1|2) 210 | ``` 211 | 212 | Number of Foos to display side by side in the Baz. 213 | - Defaults to 2. 214 | - Max 2. 215 | 216 | #### initialValue 217 | 218 | ```js 219 | initialValue: fooBarFormat (custom validator) 220 | ``` 221 | 222 | Initial value for Foo component in Foo Bar format. 223 | The Foo Bar format is enforced because it's the most reliable way to 224 | parse Foos. 225 | 226 | #### onChange 227 | 228 | ```js 229 | onChange: Function 230 | ``` 231 | 232 | When a Foo is clicked in the Baz, this callback receives the 233 | new selected range as the first argument. 234 | 235 | The selected range will be an array of 2 Foos, and each Foo in the 236 | range is formatted as a Foo Bar Baz. 237 | 238 | #### showBazSelector 239 | 240 | ```js 241 | showBazSelector: Boolean 242 | ``` 243 | 244 | Boolean for whether or not the Baz should include 245 | Baz selection dropdowns. 246 | 247 | #### validate 248 | 249 | ```js 250 | validate: Function 251 | ``` 252 | 253 | User-provided validator function for ranges a user is considering. 254 | This prop can be used to implement custom range restrictions. This 255 | function will be called with the range in the form of an array. 256 | 257 | For invalid ranges, this function should return an error message. 258 | Otherwise, it should not return anything. 259 | 260 |

261 | -------------------------------------------------------------------------------- /example/gulpfile.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | // Required modules 4 | const gulp = require('gulp'); 5 | const doctoc = require('doctoc/lib/transform'); 6 | const del = require('del'); 7 | const $ = require('gulp-load-plugins')(); 8 | const reactDocsPlugin = require('../'); 9 | const { exec } = require('child_process'); 10 | 11 | // Helper vars 12 | var docsDest = 'docs'; 13 | 14 | // Tasks 15 | gulp.task('clean', function (cb) { 16 | del.sync(docsDest); 17 | cb(); 18 | }); 19 | 20 | gulp.task('check:docs', function (cb) { 21 | exec('git diff --name-only docs/', function (err, diffFiles) { 22 | if (diffFiles.indexOf('.md') > -1) { 23 | console.log('Automatically generated documentation is not up to \ 24 | date with the changes in the codebase. Please run `gulp` and commit the changes.'); 25 | process.exit(1); 26 | } else { 27 | console.log('Automatically generated documentation is up to date!'); 28 | } 29 | cb(); 30 | }); 31 | }); 32 | 33 | gulp.task('react-docs', function () { 34 | var mdTitle = '# React Component Reference'; 35 | 36 | return gulp.src('./components/**/*.jsx') 37 | .pipe(reactDocsPlugin({ 38 | path: docsDest 39 | })) 40 | .pipe($.concat('README.md')) 41 | .pipe($.tap(function (file) { 42 | // Generate table of contents for components.md 43 | var mdWithToc = doctoc(file.contents.toString(), null, 2, mdTitle).data; 44 | file.contents = Buffer.from(mdWithToc); 45 | })) 46 | .pipe(gulp.dest(docsDest)); 47 | }); 48 | 49 | gulp.task('default', gulp.series('react-docs')); 50 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | // external dependencies 2 | var through = require('through2'), 3 | path = require('path'); 4 | 5 | // internal dependencies 6 | var reactDocgenMarkdown = require('./src/react-docgen-md'); 7 | 8 | module.exports = function(options) { 9 | options = options || {}; 10 | 11 | return through.obj(function(file, encoding, cb) { 12 | if (file.isNull()) { 13 | return cb(null, file); 14 | } 15 | 16 | if (file.isStream()) { 17 | throw new Error('Streams not supported!') 18 | 19 | } else if (file.isBuffer()) { 20 | 21 | // figure out where the component headings in the markdown doc 22 | // should link to 23 | var pathToSrc = options.path, 24 | srcLink; 25 | 26 | switch (typeof pathToSrc) { 27 | case 'string': 28 | pathToSrc = path.resolve(pathToSrc); 29 | srcLink = path.relative(pathToSrc, file.path); 30 | break; 31 | case 'function': 32 | srcLink = pathToSrc(file.path); 33 | break; 34 | default: 35 | srcLink = ''; 36 | } 37 | 38 | // get the markdown documentation for the file 39 | var markdownDoc = reactDocgenMarkdown(file.contents, { 40 | componentName : file.relative.replace(file.extname, ''), 41 | srcLink : srcLink 42 | }); 43 | 44 | // replace the file contents and extension 45 | file.contents = Buffer.from(markdownDoc); 46 | file.path = file.path.replace(file.extname, '.md'); 47 | 48 | return cb(null, file); 49 | } 50 | }); 51 | }; 52 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "gulp-react-docs", 3 | "version": "1.0.1", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@babel/code-frame": { 8 | "version": "7.8.3", 9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", 10 | "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", 11 | "requires": { 12 | "@babel/highlight": "^7.8.3" 13 | } 14 | }, 15 | "@babel/core": { 16 | "version": "7.8.6", 17 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.6.tgz", 18 | "integrity": "sha512-Sheg7yEJD51YHAvLEV/7Uvw95AeWqYPL3Vk3zGujJKIhJ+8oLw2ALaf3hbucILhKsgSoADOvtKRJuNVdcJkOrg==", 19 | "requires": { 20 | "@babel/code-frame": "^7.8.3", 21 | "@babel/generator": "^7.8.6", 22 | "@babel/helpers": "^7.8.4", 23 | "@babel/parser": "^7.8.6", 24 | "@babel/template": "^7.8.6", 25 | "@babel/traverse": "^7.8.6", 26 | "@babel/types": "^7.8.6", 27 | "convert-source-map": "^1.7.0", 28 | "debug": "^4.1.0", 29 | "gensync": "^1.0.0-beta.1", 30 | "json5": "^2.1.0", 31 | "lodash": "^4.17.13", 32 | "resolve": "^1.3.2", 33 | "semver": "^5.4.1", 34 | "source-map": "^0.5.0" 35 | }, 36 | "dependencies": { 37 | "source-map": { 38 | "version": "0.5.7", 39 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 40 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" 41 | } 42 | } 43 | }, 44 | "@babel/generator": { 45 | "version": "7.8.6", 46 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.6.tgz", 47 | "integrity": "sha512-4bpOR5ZBz+wWcMeVtcf7FbjcFzCp+817z2/gHNncIRcM9MmKzUhtWCYAq27RAfUrAFwb+OCG1s9WEaVxfi6cjg==", 48 | "requires": { 49 | "@babel/types": "^7.8.6", 50 | "jsesc": "^2.5.1", 51 | "lodash": "^4.17.13", 52 | "source-map": "^0.5.0" 53 | }, 54 | "dependencies": { 55 | "source-map": { 56 | "version": "0.5.7", 57 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 58 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" 59 | } 60 | } 61 | }, 62 | "@babel/helper-function-name": { 63 | "version": "7.8.3", 64 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", 65 | "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", 66 | "requires": { 67 | "@babel/helper-get-function-arity": "^7.8.3", 68 | "@babel/template": "^7.8.3", 69 | "@babel/types": "^7.8.3" 70 | } 71 | }, 72 | "@babel/helper-get-function-arity": { 73 | "version": "7.8.3", 74 | "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", 75 | "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", 76 | "requires": { 77 | "@babel/types": "^7.8.3" 78 | } 79 | }, 80 | "@babel/helper-split-export-declaration": { 81 | "version": "7.8.3", 82 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", 83 | "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", 84 | "requires": { 85 | "@babel/types": "^7.8.3" 86 | } 87 | }, 88 | "@babel/helpers": { 89 | "version": "7.8.4", 90 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz", 91 | "integrity": "sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==", 92 | "requires": { 93 | "@babel/template": "^7.8.3", 94 | "@babel/traverse": "^7.8.4", 95 | "@babel/types": "^7.8.3" 96 | } 97 | }, 98 | "@babel/highlight": { 99 | "version": "7.8.3", 100 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", 101 | "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", 102 | "requires": { 103 | "chalk": "^2.0.0", 104 | "esutils": "^2.0.2", 105 | "js-tokens": "^4.0.0" 106 | } 107 | }, 108 | "@babel/parser": { 109 | "version": "7.8.6", 110 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.6.tgz", 111 | "integrity": "sha512-trGNYSfwq5s0SgM1BMEB8hX3NDmO7EP2wsDGDexiaKMB92BaRpS+qZfpkMqUBhcsOTBwNy9B/jieo4ad/t/z2g==" 112 | }, 113 | "@babel/runtime": { 114 | "version": "7.8.4", 115 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.4.tgz", 116 | "integrity": "sha512-neAp3zt80trRVBI1x0azq6c57aNBqYZH8KhMm3TaB7wEI5Q4A2SHfBHE8w9gOhI/lrqxtEbXZgQIrHP+wvSGwQ==", 117 | "requires": { 118 | "regenerator-runtime": "^0.13.2" 119 | } 120 | }, 121 | "@babel/template": { 122 | "version": "7.8.6", 123 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", 124 | "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", 125 | "requires": { 126 | "@babel/code-frame": "^7.8.3", 127 | "@babel/parser": "^7.8.6", 128 | "@babel/types": "^7.8.6" 129 | } 130 | }, 131 | "@babel/traverse": { 132 | "version": "7.8.6", 133 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz", 134 | "integrity": "sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==", 135 | "requires": { 136 | "@babel/code-frame": "^7.8.3", 137 | "@babel/generator": "^7.8.6", 138 | "@babel/helper-function-name": "^7.8.3", 139 | "@babel/helper-split-export-declaration": "^7.8.3", 140 | "@babel/parser": "^7.8.6", 141 | "@babel/types": "^7.8.6", 142 | "debug": "^4.1.0", 143 | "globals": "^11.1.0", 144 | "lodash": "^4.17.13" 145 | } 146 | }, 147 | "@babel/types": { 148 | "version": "7.8.6", 149 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", 150 | "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", 151 | "requires": { 152 | "esutils": "^2.0.2", 153 | "lodash": "^4.17.13", 154 | "to-fast-properties": "^2.0.0" 155 | } 156 | }, 157 | "anchor-markdown-header": { 158 | "version": "0.5.7", 159 | "resolved": "https://registry.npmjs.org/anchor-markdown-header/-/anchor-markdown-header-0.5.7.tgz", 160 | "integrity": "sha1-BFBj125qH5zTJ6V6ASaqD97Dcac=", 161 | "dev": true, 162 | "requires": { 163 | "emoji-regex": "~6.1.0" 164 | } 165 | }, 166 | "ansi-colors": { 167 | "version": "1.1.0", 168 | "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", 169 | "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", 170 | "dev": true, 171 | "requires": { 172 | "ansi-wrap": "^0.1.0" 173 | } 174 | }, 175 | "ansi-gray": { 176 | "version": "0.1.1", 177 | "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", 178 | "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", 179 | "dev": true, 180 | "requires": { 181 | "ansi-wrap": "0.1.0" 182 | } 183 | }, 184 | "ansi-regex": { 185 | "version": "2.1.1", 186 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 187 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 188 | "dev": true 189 | }, 190 | "ansi-styles": { 191 | "version": "3.2.1", 192 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 193 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 194 | "requires": { 195 | "color-convert": "^1.9.0" 196 | } 197 | }, 198 | "ansi-wrap": { 199 | "version": "0.1.0", 200 | "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", 201 | "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", 202 | "dev": true 203 | }, 204 | "anymatch": { 205 | "version": "2.0.0", 206 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", 207 | "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", 208 | "dev": true, 209 | "requires": { 210 | "micromatch": "^3.1.4", 211 | "normalize-path": "^2.1.1" 212 | } 213 | }, 214 | "append-buffer": { 215 | "version": "1.0.2", 216 | "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", 217 | "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", 218 | "dev": true, 219 | "requires": { 220 | "buffer-equal": "^1.0.0" 221 | } 222 | }, 223 | "archy": { 224 | "version": "1.0.0", 225 | "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", 226 | "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", 227 | "dev": true 228 | }, 229 | "arr-diff": { 230 | "version": "4.0.0", 231 | "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", 232 | "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", 233 | "dev": true 234 | }, 235 | "arr-filter": { 236 | "version": "1.1.2", 237 | "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", 238 | "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", 239 | "dev": true, 240 | "requires": { 241 | "make-iterator": "^1.0.0" 242 | } 243 | }, 244 | "arr-flatten": { 245 | "version": "1.1.0", 246 | "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", 247 | "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", 248 | "dev": true 249 | }, 250 | "arr-map": { 251 | "version": "2.0.2", 252 | "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", 253 | "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", 254 | "dev": true, 255 | "requires": { 256 | "make-iterator": "^1.0.0" 257 | } 258 | }, 259 | "arr-union": { 260 | "version": "3.1.0", 261 | "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", 262 | "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", 263 | "dev": true 264 | }, 265 | "array-each": { 266 | "version": "1.0.1", 267 | "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", 268 | "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", 269 | "dev": true 270 | }, 271 | "array-initial": { 272 | "version": "1.1.0", 273 | "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", 274 | "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", 275 | "dev": true, 276 | "requires": { 277 | "array-slice": "^1.0.0", 278 | "is-number": "^4.0.0" 279 | }, 280 | "dependencies": { 281 | "is-number": { 282 | "version": "4.0.0", 283 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", 284 | "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", 285 | "dev": true 286 | } 287 | } 288 | }, 289 | "array-last": { 290 | "version": "1.3.0", 291 | "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", 292 | "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", 293 | "dev": true, 294 | "requires": { 295 | "is-number": "^4.0.0" 296 | }, 297 | "dependencies": { 298 | "is-number": { 299 | "version": "4.0.0", 300 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", 301 | "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", 302 | "dev": true 303 | } 304 | } 305 | }, 306 | "array-slice": { 307 | "version": "1.1.0", 308 | "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", 309 | "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", 310 | "dev": true 311 | }, 312 | "array-sort": { 313 | "version": "1.0.0", 314 | "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", 315 | "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", 316 | "dev": true, 317 | "requires": { 318 | "default-compare": "^1.0.0", 319 | "get-value": "^2.0.6", 320 | "kind-of": "^5.0.2" 321 | }, 322 | "dependencies": { 323 | "kind-of": { 324 | "version": "5.1.0", 325 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", 326 | "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", 327 | "dev": true 328 | } 329 | } 330 | }, 331 | "array-union": { 332 | "version": "1.0.2", 333 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", 334 | "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", 335 | "dev": true, 336 | "requires": { 337 | "array-uniq": "^1.0.1" 338 | } 339 | }, 340 | "array-uniq": { 341 | "version": "1.0.3", 342 | "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", 343 | "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", 344 | "dev": true 345 | }, 346 | "array-unique": { 347 | "version": "0.3.2", 348 | "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", 349 | "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", 350 | "dev": true 351 | }, 352 | "arrify": { 353 | "version": "1.0.1", 354 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", 355 | "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", 356 | "dev": true 357 | }, 358 | "assign-symbols": { 359 | "version": "1.0.0", 360 | "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", 361 | "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", 362 | "dev": true 363 | }, 364 | "ast-types": { 365 | "version": "0.13.2", 366 | "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.2.tgz", 367 | "integrity": "sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA==" 368 | }, 369 | "async-done": { 370 | "version": "1.3.2", 371 | "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", 372 | "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", 373 | "dev": true, 374 | "requires": { 375 | "end-of-stream": "^1.1.0", 376 | "once": "^1.3.2", 377 | "process-nextick-args": "^2.0.0", 378 | "stream-exhaust": "^1.0.1" 379 | } 380 | }, 381 | "async-each": { 382 | "version": "1.0.3", 383 | "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", 384 | "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", 385 | "dev": true 386 | }, 387 | "async-settle": { 388 | "version": "1.0.0", 389 | "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", 390 | "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", 391 | "dev": true, 392 | "requires": { 393 | "async-done": "^1.2.2" 394 | } 395 | }, 396 | "atob": { 397 | "version": "2.1.2", 398 | "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", 399 | "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", 400 | "dev": true 401 | }, 402 | "bach": { 403 | "version": "1.2.0", 404 | "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", 405 | "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", 406 | "dev": true, 407 | "requires": { 408 | "arr-filter": "^1.1.1", 409 | "arr-flatten": "^1.0.1", 410 | "arr-map": "^2.0.0", 411 | "array-each": "^1.0.0", 412 | "array-initial": "^1.0.0", 413 | "array-last": "^1.1.1", 414 | "async-done": "^1.2.2", 415 | "async-settle": "^1.0.0", 416 | "now-and-later": "^2.0.0" 417 | } 418 | }, 419 | "balanced-match": { 420 | "version": "1.0.0", 421 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 422 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" 423 | }, 424 | "base": { 425 | "version": "0.11.2", 426 | "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", 427 | "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", 428 | "dev": true, 429 | "requires": { 430 | "cache-base": "^1.0.1", 431 | "class-utils": "^0.3.5", 432 | "component-emitter": "^1.2.1", 433 | "define-property": "^1.0.0", 434 | "isobject": "^3.0.1", 435 | "mixin-deep": "^1.2.0", 436 | "pascalcase": "^0.1.1" 437 | }, 438 | "dependencies": { 439 | "define-property": { 440 | "version": "1.0.0", 441 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", 442 | "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", 443 | "dev": true, 444 | "requires": { 445 | "is-descriptor": "^1.0.0" 446 | } 447 | }, 448 | "is-accessor-descriptor": { 449 | "version": "1.0.0", 450 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", 451 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", 452 | "dev": true, 453 | "requires": { 454 | "kind-of": "^6.0.0" 455 | } 456 | }, 457 | "is-data-descriptor": { 458 | "version": "1.0.0", 459 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", 460 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", 461 | "dev": true, 462 | "requires": { 463 | "kind-of": "^6.0.0" 464 | } 465 | }, 466 | "is-descriptor": { 467 | "version": "1.0.2", 468 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", 469 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", 470 | "dev": true, 471 | "requires": { 472 | "is-accessor-descriptor": "^1.0.0", 473 | "is-data-descriptor": "^1.0.0", 474 | "kind-of": "^6.0.2" 475 | } 476 | } 477 | } 478 | }, 479 | "binary-extensions": { 480 | "version": "1.13.1", 481 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", 482 | "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", 483 | "dev": true 484 | }, 485 | "bindings": { 486 | "version": "1.5.0", 487 | "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", 488 | "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", 489 | "dev": true, 490 | "optional": true, 491 | "requires": { 492 | "file-uri-to-path": "1.0.0" 493 | } 494 | }, 495 | "brace-expansion": { 496 | "version": "1.1.11", 497 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 498 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 499 | "requires": { 500 | "balanced-match": "^1.0.0", 501 | "concat-map": "0.0.1" 502 | } 503 | }, 504 | "braces": { 505 | "version": "2.3.2", 506 | "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", 507 | "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", 508 | "dev": true, 509 | "requires": { 510 | "arr-flatten": "^1.1.0", 511 | "array-unique": "^0.3.2", 512 | "extend-shallow": "^2.0.1", 513 | "fill-range": "^4.0.0", 514 | "isobject": "^3.0.1", 515 | "repeat-element": "^1.1.2", 516 | "snapdragon": "^0.8.1", 517 | "snapdragon-node": "^2.0.1", 518 | "split-string": "^3.0.2", 519 | "to-regex": "^3.0.1" 520 | }, 521 | "dependencies": { 522 | "extend-shallow": { 523 | "version": "2.0.1", 524 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 525 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 526 | "dev": true, 527 | "requires": { 528 | "is-extendable": "^0.1.0" 529 | } 530 | } 531 | } 532 | }, 533 | "buffer-equal": { 534 | "version": "1.0.0", 535 | "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", 536 | "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=", 537 | "dev": true 538 | }, 539 | "buffer-from": { 540 | "version": "1.1.1", 541 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", 542 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", 543 | "dev": true 544 | }, 545 | "cache-base": { 546 | "version": "1.0.1", 547 | "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", 548 | "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", 549 | "dev": true, 550 | "requires": { 551 | "collection-visit": "^1.0.0", 552 | "component-emitter": "^1.2.1", 553 | "get-value": "^2.0.6", 554 | "has-value": "^1.0.0", 555 | "isobject": "^3.0.1", 556 | "set-value": "^2.0.0", 557 | "to-object-path": "^0.3.0", 558 | "union-value": "^1.0.0", 559 | "unset-value": "^1.0.0" 560 | } 561 | }, 562 | "camelcase": { 563 | "version": "3.0.0", 564 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", 565 | "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", 566 | "dev": true 567 | }, 568 | "chalk": { 569 | "version": "2.4.2", 570 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 571 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 572 | "requires": { 573 | "ansi-styles": "^3.2.1", 574 | "escape-string-regexp": "^1.0.5", 575 | "supports-color": "^5.3.0" 576 | } 577 | }, 578 | "chokidar": { 579 | "version": "2.1.8", 580 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", 581 | "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", 582 | "dev": true, 583 | "requires": { 584 | "anymatch": "^2.0.0", 585 | "async-each": "^1.0.1", 586 | "braces": "^2.3.2", 587 | "fsevents": "^1.2.7", 588 | "glob-parent": "^3.1.0", 589 | "inherits": "^2.0.3", 590 | "is-binary-path": "^1.0.0", 591 | "is-glob": "^4.0.0", 592 | "normalize-path": "^3.0.0", 593 | "path-is-absolute": "^1.0.0", 594 | "readdirp": "^2.2.1", 595 | "upath": "^1.1.1" 596 | }, 597 | "dependencies": { 598 | "normalize-path": { 599 | "version": "3.0.0", 600 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 601 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 602 | "dev": true 603 | } 604 | } 605 | }, 606 | "class-utils": { 607 | "version": "0.3.6", 608 | "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", 609 | "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", 610 | "dev": true, 611 | "requires": { 612 | "arr-union": "^3.1.0", 613 | "define-property": "^0.2.5", 614 | "isobject": "^3.0.0", 615 | "static-extend": "^0.1.1" 616 | }, 617 | "dependencies": { 618 | "define-property": { 619 | "version": "0.2.5", 620 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", 621 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", 622 | "dev": true, 623 | "requires": { 624 | "is-descriptor": "^0.1.0" 625 | } 626 | } 627 | } 628 | }, 629 | "cliui": { 630 | "version": "3.2.0", 631 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", 632 | "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", 633 | "dev": true, 634 | "requires": { 635 | "string-width": "^1.0.1", 636 | "strip-ansi": "^3.0.1", 637 | "wrap-ansi": "^2.0.0" 638 | } 639 | }, 640 | "clone": { 641 | "version": "2.1.2", 642 | "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", 643 | "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", 644 | "dev": true 645 | }, 646 | "clone-buffer": { 647 | "version": "1.0.0", 648 | "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", 649 | "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", 650 | "dev": true 651 | }, 652 | "clone-stats": { 653 | "version": "1.0.0", 654 | "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", 655 | "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", 656 | "dev": true 657 | }, 658 | "cloneable-readable": { 659 | "version": "1.1.3", 660 | "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", 661 | "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", 662 | "dev": true, 663 | "requires": { 664 | "inherits": "^2.0.1", 665 | "process-nextick-args": "^2.0.0", 666 | "readable-stream": "^2.3.5" 667 | } 668 | }, 669 | "code-point-at": { 670 | "version": "1.1.0", 671 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", 672 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", 673 | "dev": true 674 | }, 675 | "collection-map": { 676 | "version": "1.0.0", 677 | "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", 678 | "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", 679 | "dev": true, 680 | "requires": { 681 | "arr-map": "^2.0.2", 682 | "for-own": "^1.0.0", 683 | "make-iterator": "^1.0.0" 684 | } 685 | }, 686 | "collection-visit": { 687 | "version": "1.0.0", 688 | "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", 689 | "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", 690 | "dev": true, 691 | "requires": { 692 | "map-visit": "^1.0.0", 693 | "object-visit": "^1.0.0" 694 | } 695 | }, 696 | "color-convert": { 697 | "version": "1.9.3", 698 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 699 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 700 | "requires": { 701 | "color-name": "1.1.3" 702 | } 703 | }, 704 | "color-name": { 705 | "version": "1.1.3", 706 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 707 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" 708 | }, 709 | "color-support": { 710 | "version": "1.1.3", 711 | "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", 712 | "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", 713 | "dev": true 714 | }, 715 | "commander": { 716 | "version": "2.20.3", 717 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", 718 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" 719 | }, 720 | "component-emitter": { 721 | "version": "1.3.0", 722 | "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", 723 | "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", 724 | "dev": true 725 | }, 726 | "concat-map": { 727 | "version": "0.0.1", 728 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 729 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" 730 | }, 731 | "concat-stream": { 732 | "version": "1.6.2", 733 | "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", 734 | "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", 735 | "dev": true, 736 | "requires": { 737 | "buffer-from": "^1.0.0", 738 | "inherits": "^2.0.3", 739 | "readable-stream": "^2.2.2", 740 | "typedarray": "^0.0.6" 741 | } 742 | }, 743 | "concat-with-sourcemaps": { 744 | "version": "1.1.0", 745 | "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", 746 | "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", 747 | "dev": true, 748 | "requires": { 749 | "source-map": "^0.6.1" 750 | } 751 | }, 752 | "convert-source-map": { 753 | "version": "1.7.0", 754 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", 755 | "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", 756 | "requires": { 757 | "safe-buffer": "~5.1.1" 758 | } 759 | }, 760 | "copy-descriptor": { 761 | "version": "0.1.1", 762 | "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", 763 | "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", 764 | "dev": true 765 | }, 766 | "copy-props": { 767 | "version": "2.0.4", 768 | "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.4.tgz", 769 | "integrity": "sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A==", 770 | "dev": true, 771 | "requires": { 772 | "each-props": "^1.3.0", 773 | "is-plain-object": "^2.0.1" 774 | } 775 | }, 776 | "core-util-is": { 777 | "version": "1.0.2", 778 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 779 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 780 | }, 781 | "d": { 782 | "version": "1.0.1", 783 | "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", 784 | "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", 785 | "dev": true, 786 | "requires": { 787 | "es5-ext": "^0.10.50", 788 | "type": "^1.0.1" 789 | } 790 | }, 791 | "debug": { 792 | "version": "4.1.1", 793 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", 794 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", 795 | "requires": { 796 | "ms": "^2.1.1" 797 | } 798 | }, 799 | "decamelize": { 800 | "version": "1.2.0", 801 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 802 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", 803 | "dev": true 804 | }, 805 | "decode-uri-component": { 806 | "version": "0.2.0", 807 | "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", 808 | "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", 809 | "dev": true 810 | }, 811 | "default-compare": { 812 | "version": "1.0.0", 813 | "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", 814 | "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", 815 | "dev": true, 816 | "requires": { 817 | "kind-of": "^5.0.2" 818 | }, 819 | "dependencies": { 820 | "kind-of": { 821 | "version": "5.1.0", 822 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", 823 | "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", 824 | "dev": true 825 | } 826 | } 827 | }, 828 | "default-resolution": { 829 | "version": "2.0.0", 830 | "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", 831 | "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=", 832 | "dev": true 833 | }, 834 | "define-properties": { 835 | "version": "1.1.3", 836 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", 837 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", 838 | "dev": true, 839 | "requires": { 840 | "object-keys": "^1.0.12" 841 | } 842 | }, 843 | "define-property": { 844 | "version": "2.0.2", 845 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", 846 | "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", 847 | "dev": true, 848 | "requires": { 849 | "is-descriptor": "^1.0.2", 850 | "isobject": "^3.0.1" 851 | }, 852 | "dependencies": { 853 | "is-accessor-descriptor": { 854 | "version": "1.0.0", 855 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", 856 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", 857 | "dev": true, 858 | "requires": { 859 | "kind-of": "^6.0.0" 860 | } 861 | }, 862 | "is-data-descriptor": { 863 | "version": "1.0.0", 864 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", 865 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", 866 | "dev": true, 867 | "requires": { 868 | "kind-of": "^6.0.0" 869 | } 870 | }, 871 | "is-descriptor": { 872 | "version": "1.0.2", 873 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", 874 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", 875 | "dev": true, 876 | "requires": { 877 | "is-accessor-descriptor": "^1.0.0", 878 | "is-data-descriptor": "^1.0.0", 879 | "kind-of": "^6.0.2" 880 | } 881 | } 882 | } 883 | }, 884 | "del": { 885 | "version": "2.2.2", 886 | "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", 887 | "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", 888 | "dev": true, 889 | "requires": { 890 | "globby": "^5.0.0", 891 | "is-path-cwd": "^1.0.0", 892 | "is-path-in-cwd": "^1.0.0", 893 | "object-assign": "^4.0.1", 894 | "pify": "^2.0.0", 895 | "pinkie-promise": "^2.0.0", 896 | "rimraf": "^2.2.8" 897 | } 898 | }, 899 | "detect-file": { 900 | "version": "1.0.0", 901 | "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", 902 | "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", 903 | "dev": true 904 | }, 905 | "doctoc": { 906 | "version": "0.15.0", 907 | "resolved": "https://registry.npmjs.org/doctoc/-/doctoc-0.15.0.tgz", 908 | "integrity": "sha1-CnpI5Deg76mHKKQwraEk3ZUDnAs=", 909 | "dev": true, 910 | "requires": { 911 | "anchor-markdown-header": "^0.5.4", 912 | "htmlparser2": "~3.7.1", 913 | "minimist": "~1.1.0", 914 | "underscore": ">=1.3.3", 915 | "update-section": "^0.3.0" 916 | }, 917 | "dependencies": { 918 | "minimist": { 919 | "version": "1.1.3", 920 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.1.3.tgz", 921 | "integrity": "sha1-O+39kaktOQFvz6ocaB6Pqhoe/ag=", 922 | "dev": true 923 | } 924 | } 925 | }, 926 | "doctrine": { 927 | "version": "3.0.0", 928 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", 929 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", 930 | "requires": { 931 | "esutils": "^2.0.2" 932 | } 933 | }, 934 | "dom-serializer": { 935 | "version": "0.2.2", 936 | "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", 937 | "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", 938 | "dev": true, 939 | "requires": { 940 | "domelementtype": "^2.0.1", 941 | "entities": "^2.0.0" 942 | }, 943 | "dependencies": { 944 | "domelementtype": { 945 | "version": "2.0.1", 946 | "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz", 947 | "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==", 948 | "dev": true 949 | }, 950 | "entities": { 951 | "version": "2.0.0", 952 | "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", 953 | "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==", 954 | "dev": true 955 | } 956 | } 957 | }, 958 | "domelementtype": { 959 | "version": "1.3.1", 960 | "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", 961 | "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", 962 | "dev": true 963 | }, 964 | "domhandler": { 965 | "version": "2.2.1", 966 | "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.2.1.tgz", 967 | "integrity": "sha1-Wd+dzSJ+gIs2Wuc+H2aErD2Ub8I=", 968 | "dev": true, 969 | "requires": { 970 | "domelementtype": "1" 971 | } 972 | }, 973 | "domutils": { 974 | "version": "1.5.1", 975 | "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", 976 | "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", 977 | "dev": true, 978 | "requires": { 979 | "dom-serializer": "0", 980 | "domelementtype": "1" 981 | } 982 | }, 983 | "duplexer": { 984 | "version": "0.1.1", 985 | "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", 986 | "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", 987 | "dev": true 988 | }, 989 | "duplexify": { 990 | "version": "3.7.1", 991 | "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", 992 | "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", 993 | "dev": true, 994 | "requires": { 995 | "end-of-stream": "^1.0.0", 996 | "inherits": "^2.0.1", 997 | "readable-stream": "^2.0.0", 998 | "stream-shift": "^1.0.0" 999 | } 1000 | }, 1001 | "each-props": { 1002 | "version": "1.3.2", 1003 | "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", 1004 | "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", 1005 | "dev": true, 1006 | "requires": { 1007 | "is-plain-object": "^2.0.1", 1008 | "object.defaults": "^1.1.0" 1009 | } 1010 | }, 1011 | "emoji-regex": { 1012 | "version": "6.1.3", 1013 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.1.3.tgz", 1014 | "integrity": "sha1-7HmjlpsC0uzytyJUJ5v5m8eoOTI=", 1015 | "dev": true 1016 | }, 1017 | "end-of-stream": { 1018 | "version": "1.4.4", 1019 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 1020 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 1021 | "dev": true, 1022 | "requires": { 1023 | "once": "^1.4.0" 1024 | } 1025 | }, 1026 | "entities": { 1027 | "version": "1.0.0", 1028 | "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", 1029 | "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=", 1030 | "dev": true 1031 | }, 1032 | "error-ex": { 1033 | "version": "1.3.2", 1034 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 1035 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 1036 | "dev": true, 1037 | "requires": { 1038 | "is-arrayish": "^0.2.1" 1039 | } 1040 | }, 1041 | "es5-ext": { 1042 | "version": "0.10.53", 1043 | "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", 1044 | "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", 1045 | "dev": true, 1046 | "requires": { 1047 | "es6-iterator": "~2.0.3", 1048 | "es6-symbol": "~3.1.3", 1049 | "next-tick": "~1.0.0" 1050 | } 1051 | }, 1052 | "es6-iterator": { 1053 | "version": "2.0.3", 1054 | "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", 1055 | "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", 1056 | "dev": true, 1057 | "requires": { 1058 | "d": "1", 1059 | "es5-ext": "^0.10.35", 1060 | "es6-symbol": "^3.1.1" 1061 | } 1062 | }, 1063 | "es6-symbol": { 1064 | "version": "3.1.3", 1065 | "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", 1066 | "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", 1067 | "dev": true, 1068 | "requires": { 1069 | "d": "^1.0.1", 1070 | "ext": "^1.1.2" 1071 | } 1072 | }, 1073 | "es6-weak-map": { 1074 | "version": "2.0.3", 1075 | "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", 1076 | "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", 1077 | "dev": true, 1078 | "requires": { 1079 | "d": "1", 1080 | "es5-ext": "^0.10.46", 1081 | "es6-iterator": "^2.0.3", 1082 | "es6-symbol": "^3.1.1" 1083 | } 1084 | }, 1085 | "escape-string-regexp": { 1086 | "version": "1.0.5", 1087 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1088 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" 1089 | }, 1090 | "esutils": { 1091 | "version": "2.0.3", 1092 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 1093 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" 1094 | }, 1095 | "event-stream": { 1096 | "version": "3.1.7", 1097 | "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.1.7.tgz", 1098 | "integrity": "sha1-tMVAAS0P4UmEIPPYlGAI22OTw3o=", 1099 | "dev": true, 1100 | "requires": { 1101 | "duplexer": "~0.1.1", 1102 | "from": "~0", 1103 | "map-stream": "~0.1.0", 1104 | "pause-stream": "0.0.11", 1105 | "split": "0.2", 1106 | "stream-combiner": "~0.0.4", 1107 | "through": "~2.3.1" 1108 | } 1109 | }, 1110 | "expand-brackets": { 1111 | "version": "2.1.4", 1112 | "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", 1113 | "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", 1114 | "dev": true, 1115 | "requires": { 1116 | "debug": "^2.3.3", 1117 | "define-property": "^0.2.5", 1118 | "extend-shallow": "^2.0.1", 1119 | "posix-character-classes": "^0.1.0", 1120 | "regex-not": "^1.0.0", 1121 | "snapdragon": "^0.8.1", 1122 | "to-regex": "^3.0.1" 1123 | }, 1124 | "dependencies": { 1125 | "debug": { 1126 | "version": "2.6.9", 1127 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 1128 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 1129 | "dev": true, 1130 | "requires": { 1131 | "ms": "2.0.0" 1132 | } 1133 | }, 1134 | "define-property": { 1135 | "version": "0.2.5", 1136 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", 1137 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", 1138 | "dev": true, 1139 | "requires": { 1140 | "is-descriptor": "^0.1.0" 1141 | } 1142 | }, 1143 | "extend-shallow": { 1144 | "version": "2.0.1", 1145 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 1146 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 1147 | "dev": true, 1148 | "requires": { 1149 | "is-extendable": "^0.1.0" 1150 | } 1151 | }, 1152 | "ms": { 1153 | "version": "2.0.0", 1154 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 1155 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 1156 | "dev": true 1157 | } 1158 | } 1159 | }, 1160 | "expand-tilde": { 1161 | "version": "2.0.2", 1162 | "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", 1163 | "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", 1164 | "dev": true, 1165 | "requires": { 1166 | "homedir-polyfill": "^1.0.1" 1167 | } 1168 | }, 1169 | "ext": { 1170 | "version": "1.4.0", 1171 | "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", 1172 | "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", 1173 | "dev": true, 1174 | "requires": { 1175 | "type": "^2.0.0" 1176 | }, 1177 | "dependencies": { 1178 | "type": { 1179 | "version": "2.0.0", 1180 | "resolved": "https://registry.npmjs.org/type/-/type-2.0.0.tgz", 1181 | "integrity": "sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==", 1182 | "dev": true 1183 | } 1184 | } 1185 | }, 1186 | "extend": { 1187 | "version": "3.0.2", 1188 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 1189 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", 1190 | "dev": true 1191 | }, 1192 | "extend-shallow": { 1193 | "version": "3.0.2", 1194 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", 1195 | "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", 1196 | "dev": true, 1197 | "requires": { 1198 | "assign-symbols": "^1.0.0", 1199 | "is-extendable": "^1.0.1" 1200 | }, 1201 | "dependencies": { 1202 | "is-extendable": { 1203 | "version": "1.0.1", 1204 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", 1205 | "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", 1206 | "dev": true, 1207 | "requires": { 1208 | "is-plain-object": "^2.0.4" 1209 | } 1210 | } 1211 | } 1212 | }, 1213 | "extglob": { 1214 | "version": "2.0.4", 1215 | "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", 1216 | "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", 1217 | "dev": true, 1218 | "requires": { 1219 | "array-unique": "^0.3.2", 1220 | "define-property": "^1.0.0", 1221 | "expand-brackets": "^2.1.4", 1222 | "extend-shallow": "^2.0.1", 1223 | "fragment-cache": "^0.2.1", 1224 | "regex-not": "^1.0.0", 1225 | "snapdragon": "^0.8.1", 1226 | "to-regex": "^3.0.1" 1227 | }, 1228 | "dependencies": { 1229 | "define-property": { 1230 | "version": "1.0.0", 1231 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", 1232 | "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", 1233 | "dev": true, 1234 | "requires": { 1235 | "is-descriptor": "^1.0.0" 1236 | } 1237 | }, 1238 | "extend-shallow": { 1239 | "version": "2.0.1", 1240 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 1241 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 1242 | "dev": true, 1243 | "requires": { 1244 | "is-extendable": "^0.1.0" 1245 | } 1246 | }, 1247 | "is-accessor-descriptor": { 1248 | "version": "1.0.0", 1249 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", 1250 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", 1251 | "dev": true, 1252 | "requires": { 1253 | "kind-of": "^6.0.0" 1254 | } 1255 | }, 1256 | "is-data-descriptor": { 1257 | "version": "1.0.0", 1258 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", 1259 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", 1260 | "dev": true, 1261 | "requires": { 1262 | "kind-of": "^6.0.0" 1263 | } 1264 | }, 1265 | "is-descriptor": { 1266 | "version": "1.0.2", 1267 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", 1268 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", 1269 | "dev": true, 1270 | "requires": { 1271 | "is-accessor-descriptor": "^1.0.0", 1272 | "is-data-descriptor": "^1.0.0", 1273 | "kind-of": "^6.0.2" 1274 | } 1275 | } 1276 | } 1277 | }, 1278 | "fancy-log": { 1279 | "version": "1.3.3", 1280 | "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", 1281 | "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", 1282 | "dev": true, 1283 | "requires": { 1284 | "ansi-gray": "^0.1.1", 1285 | "color-support": "^1.1.3", 1286 | "parse-node-version": "^1.0.0", 1287 | "time-stamp": "^1.0.0" 1288 | } 1289 | }, 1290 | "file-uri-to-path": { 1291 | "version": "1.0.0", 1292 | "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", 1293 | "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", 1294 | "dev": true, 1295 | "optional": true 1296 | }, 1297 | "fill-range": { 1298 | "version": "4.0.0", 1299 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", 1300 | "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", 1301 | "dev": true, 1302 | "requires": { 1303 | "extend-shallow": "^2.0.1", 1304 | "is-number": "^3.0.0", 1305 | "repeat-string": "^1.6.1", 1306 | "to-regex-range": "^2.1.0" 1307 | }, 1308 | "dependencies": { 1309 | "extend-shallow": { 1310 | "version": "2.0.1", 1311 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 1312 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 1313 | "dev": true, 1314 | "requires": { 1315 | "is-extendable": "^0.1.0" 1316 | } 1317 | } 1318 | } 1319 | }, 1320 | "find-up": { 1321 | "version": "1.1.2", 1322 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", 1323 | "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", 1324 | "dev": true, 1325 | "requires": { 1326 | "path-exists": "^2.0.0", 1327 | "pinkie-promise": "^2.0.0" 1328 | } 1329 | }, 1330 | "findup-sync": { 1331 | "version": "3.0.0", 1332 | "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", 1333 | "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", 1334 | "dev": true, 1335 | "requires": { 1336 | "detect-file": "^1.0.0", 1337 | "is-glob": "^4.0.0", 1338 | "micromatch": "^3.0.4", 1339 | "resolve-dir": "^1.0.1" 1340 | } 1341 | }, 1342 | "fined": { 1343 | "version": "1.2.0", 1344 | "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", 1345 | "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", 1346 | "dev": true, 1347 | "requires": { 1348 | "expand-tilde": "^2.0.2", 1349 | "is-plain-object": "^2.0.3", 1350 | "object.defaults": "^1.1.0", 1351 | "object.pick": "^1.2.0", 1352 | "parse-filepath": "^1.0.1" 1353 | } 1354 | }, 1355 | "flagged-respawn": { 1356 | "version": "1.0.1", 1357 | "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", 1358 | "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", 1359 | "dev": true 1360 | }, 1361 | "flush-write-stream": { 1362 | "version": "1.1.1", 1363 | "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", 1364 | "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", 1365 | "dev": true, 1366 | "requires": { 1367 | "inherits": "^2.0.3", 1368 | "readable-stream": "^2.3.6" 1369 | } 1370 | }, 1371 | "for-in": { 1372 | "version": "1.0.2", 1373 | "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", 1374 | "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", 1375 | "dev": true 1376 | }, 1377 | "for-own": { 1378 | "version": "1.0.0", 1379 | "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", 1380 | "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", 1381 | "dev": true, 1382 | "requires": { 1383 | "for-in": "^1.0.1" 1384 | } 1385 | }, 1386 | "fragment-cache": { 1387 | "version": "0.2.1", 1388 | "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", 1389 | "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", 1390 | "dev": true, 1391 | "requires": { 1392 | "map-cache": "^0.2.2" 1393 | } 1394 | }, 1395 | "from": { 1396 | "version": "0.1.7", 1397 | "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", 1398 | "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", 1399 | "dev": true 1400 | }, 1401 | "fs-mkdirp-stream": { 1402 | "version": "1.0.0", 1403 | "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", 1404 | "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", 1405 | "dev": true, 1406 | "requires": { 1407 | "graceful-fs": "^4.1.11", 1408 | "through2": "^2.0.3" 1409 | } 1410 | }, 1411 | "fs.realpath": { 1412 | "version": "1.0.0", 1413 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1414 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 1415 | "dev": true 1416 | }, 1417 | "fsevents": { 1418 | "version": "1.2.11", 1419 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz", 1420 | "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==", 1421 | "dev": true, 1422 | "optional": true, 1423 | "requires": { 1424 | "bindings": "^1.5.0", 1425 | "nan": "^2.12.1", 1426 | "node-pre-gyp": "*" 1427 | }, 1428 | "dependencies": { 1429 | "abbrev": { 1430 | "version": "1.1.1", 1431 | "bundled": true, 1432 | "dev": true, 1433 | "optional": true 1434 | }, 1435 | "ansi-regex": { 1436 | "version": "2.1.1", 1437 | "bundled": true, 1438 | "dev": true, 1439 | "optional": true 1440 | }, 1441 | "aproba": { 1442 | "version": "1.2.0", 1443 | "bundled": true, 1444 | "dev": true, 1445 | "optional": true 1446 | }, 1447 | "are-we-there-yet": { 1448 | "version": "1.1.5", 1449 | "bundled": true, 1450 | "dev": true, 1451 | "optional": true, 1452 | "requires": { 1453 | "delegates": "^1.0.0", 1454 | "readable-stream": "^2.0.6" 1455 | } 1456 | }, 1457 | "balanced-match": { 1458 | "version": "1.0.0", 1459 | "bundled": true, 1460 | "dev": true, 1461 | "optional": true 1462 | }, 1463 | "brace-expansion": { 1464 | "version": "1.1.11", 1465 | "bundled": true, 1466 | "dev": true, 1467 | "optional": true, 1468 | "requires": { 1469 | "balanced-match": "^1.0.0", 1470 | "concat-map": "0.0.1" 1471 | } 1472 | }, 1473 | "chownr": { 1474 | "version": "1.1.3", 1475 | "bundled": true, 1476 | "dev": true, 1477 | "optional": true 1478 | }, 1479 | "code-point-at": { 1480 | "version": "1.1.0", 1481 | "bundled": true, 1482 | "dev": true, 1483 | "optional": true 1484 | }, 1485 | "concat-map": { 1486 | "version": "0.0.1", 1487 | "bundled": true, 1488 | "dev": true, 1489 | "optional": true 1490 | }, 1491 | "console-control-strings": { 1492 | "version": "1.1.0", 1493 | "bundled": true, 1494 | "dev": true, 1495 | "optional": true 1496 | }, 1497 | "core-util-is": { 1498 | "version": "1.0.2", 1499 | "bundled": true, 1500 | "dev": true, 1501 | "optional": true 1502 | }, 1503 | "debug": { 1504 | "version": "3.2.6", 1505 | "bundled": true, 1506 | "dev": true, 1507 | "optional": true, 1508 | "requires": { 1509 | "ms": "^2.1.1" 1510 | } 1511 | }, 1512 | "deep-extend": { 1513 | "version": "0.6.0", 1514 | "bundled": true, 1515 | "dev": true, 1516 | "optional": true 1517 | }, 1518 | "delegates": { 1519 | "version": "1.0.0", 1520 | "bundled": true, 1521 | "dev": true, 1522 | "optional": true 1523 | }, 1524 | "detect-libc": { 1525 | "version": "1.0.3", 1526 | "bundled": true, 1527 | "dev": true, 1528 | "optional": true 1529 | }, 1530 | "fs-minipass": { 1531 | "version": "1.2.7", 1532 | "bundled": true, 1533 | "dev": true, 1534 | "optional": true, 1535 | "requires": { 1536 | "minipass": "^2.6.0" 1537 | } 1538 | }, 1539 | "fs.realpath": { 1540 | "version": "1.0.0", 1541 | "bundled": true, 1542 | "dev": true, 1543 | "optional": true 1544 | }, 1545 | "gauge": { 1546 | "version": "2.7.4", 1547 | "bundled": true, 1548 | "dev": true, 1549 | "optional": true, 1550 | "requires": { 1551 | "aproba": "^1.0.3", 1552 | "console-control-strings": "^1.0.0", 1553 | "has-unicode": "^2.0.0", 1554 | "object-assign": "^4.1.0", 1555 | "signal-exit": "^3.0.0", 1556 | "string-width": "^1.0.1", 1557 | "strip-ansi": "^3.0.1", 1558 | "wide-align": "^1.1.0" 1559 | } 1560 | }, 1561 | "glob": { 1562 | "version": "7.1.6", 1563 | "bundled": true, 1564 | "dev": true, 1565 | "optional": true, 1566 | "requires": { 1567 | "fs.realpath": "^1.0.0", 1568 | "inflight": "^1.0.4", 1569 | "inherits": "2", 1570 | "minimatch": "^3.0.4", 1571 | "once": "^1.3.0", 1572 | "path-is-absolute": "^1.0.0" 1573 | } 1574 | }, 1575 | "has-unicode": { 1576 | "version": "2.0.1", 1577 | "bundled": true, 1578 | "dev": true, 1579 | "optional": true 1580 | }, 1581 | "iconv-lite": { 1582 | "version": "0.4.24", 1583 | "bundled": true, 1584 | "dev": true, 1585 | "optional": true, 1586 | "requires": { 1587 | "safer-buffer": ">= 2.1.2 < 3" 1588 | } 1589 | }, 1590 | "ignore-walk": { 1591 | "version": "3.0.3", 1592 | "bundled": true, 1593 | "dev": true, 1594 | "optional": true, 1595 | "requires": { 1596 | "minimatch": "^3.0.4" 1597 | } 1598 | }, 1599 | "inflight": { 1600 | "version": "1.0.6", 1601 | "bundled": true, 1602 | "dev": true, 1603 | "optional": true, 1604 | "requires": { 1605 | "once": "^1.3.0", 1606 | "wrappy": "1" 1607 | } 1608 | }, 1609 | "inherits": { 1610 | "version": "2.0.4", 1611 | "bundled": true, 1612 | "dev": true, 1613 | "optional": true 1614 | }, 1615 | "ini": { 1616 | "version": "1.3.5", 1617 | "bundled": true, 1618 | "dev": true, 1619 | "optional": true 1620 | }, 1621 | "is-fullwidth-code-point": { 1622 | "version": "1.0.0", 1623 | "bundled": true, 1624 | "dev": true, 1625 | "optional": true, 1626 | "requires": { 1627 | "number-is-nan": "^1.0.0" 1628 | } 1629 | }, 1630 | "isarray": { 1631 | "version": "1.0.0", 1632 | "bundled": true, 1633 | "dev": true, 1634 | "optional": true 1635 | }, 1636 | "minimatch": { 1637 | "version": "3.0.4", 1638 | "bundled": true, 1639 | "dev": true, 1640 | "optional": true, 1641 | "requires": { 1642 | "brace-expansion": "^1.1.7" 1643 | } 1644 | }, 1645 | "minimist": { 1646 | "version": "0.0.8", 1647 | "bundled": true, 1648 | "dev": true, 1649 | "optional": true 1650 | }, 1651 | "minipass": { 1652 | "version": "2.9.0", 1653 | "bundled": true, 1654 | "dev": true, 1655 | "optional": true, 1656 | "requires": { 1657 | "safe-buffer": "^5.1.2", 1658 | "yallist": "^3.0.0" 1659 | } 1660 | }, 1661 | "minizlib": { 1662 | "version": "1.3.3", 1663 | "bundled": true, 1664 | "dev": true, 1665 | "optional": true, 1666 | "requires": { 1667 | "minipass": "^2.9.0" 1668 | } 1669 | }, 1670 | "mkdirp": { 1671 | "version": "0.5.1", 1672 | "bundled": true, 1673 | "dev": true, 1674 | "optional": true, 1675 | "requires": { 1676 | "minimist": "0.0.8" 1677 | } 1678 | }, 1679 | "ms": { 1680 | "version": "2.1.2", 1681 | "bundled": true, 1682 | "dev": true, 1683 | "optional": true 1684 | }, 1685 | "needle": { 1686 | "version": "2.4.0", 1687 | "bundled": true, 1688 | "dev": true, 1689 | "optional": true, 1690 | "requires": { 1691 | "debug": "^3.2.6", 1692 | "iconv-lite": "^0.4.4", 1693 | "sax": "^1.2.4" 1694 | } 1695 | }, 1696 | "node-pre-gyp": { 1697 | "version": "0.14.0", 1698 | "bundled": true, 1699 | "dev": true, 1700 | "optional": true, 1701 | "requires": { 1702 | "detect-libc": "^1.0.2", 1703 | "mkdirp": "^0.5.1", 1704 | "needle": "^2.2.1", 1705 | "nopt": "^4.0.1", 1706 | "npm-packlist": "^1.1.6", 1707 | "npmlog": "^4.0.2", 1708 | "rc": "^1.2.7", 1709 | "rimraf": "^2.6.1", 1710 | "semver": "^5.3.0", 1711 | "tar": "^4.4.2" 1712 | } 1713 | }, 1714 | "nopt": { 1715 | "version": "4.0.1", 1716 | "bundled": true, 1717 | "dev": true, 1718 | "optional": true, 1719 | "requires": { 1720 | "abbrev": "1", 1721 | "osenv": "^0.1.4" 1722 | } 1723 | }, 1724 | "npm-bundled": { 1725 | "version": "1.1.1", 1726 | "bundled": true, 1727 | "dev": true, 1728 | "optional": true, 1729 | "requires": { 1730 | "npm-normalize-package-bin": "^1.0.1" 1731 | } 1732 | }, 1733 | "npm-normalize-package-bin": { 1734 | "version": "1.0.1", 1735 | "bundled": true, 1736 | "dev": true, 1737 | "optional": true 1738 | }, 1739 | "npm-packlist": { 1740 | "version": "1.4.7", 1741 | "bundled": true, 1742 | "dev": true, 1743 | "optional": true, 1744 | "requires": { 1745 | "ignore-walk": "^3.0.1", 1746 | "npm-bundled": "^1.0.1" 1747 | } 1748 | }, 1749 | "npmlog": { 1750 | "version": "4.1.2", 1751 | "bundled": true, 1752 | "dev": true, 1753 | "optional": true, 1754 | "requires": { 1755 | "are-we-there-yet": "~1.1.2", 1756 | "console-control-strings": "~1.1.0", 1757 | "gauge": "~2.7.3", 1758 | "set-blocking": "~2.0.0" 1759 | } 1760 | }, 1761 | "number-is-nan": { 1762 | "version": "1.0.1", 1763 | "bundled": true, 1764 | "dev": true, 1765 | "optional": true 1766 | }, 1767 | "object-assign": { 1768 | "version": "4.1.1", 1769 | "bundled": true, 1770 | "dev": true, 1771 | "optional": true 1772 | }, 1773 | "once": { 1774 | "version": "1.4.0", 1775 | "bundled": true, 1776 | "dev": true, 1777 | "optional": true, 1778 | "requires": { 1779 | "wrappy": "1" 1780 | } 1781 | }, 1782 | "os-homedir": { 1783 | "version": "1.0.2", 1784 | "bundled": true, 1785 | "dev": true, 1786 | "optional": true 1787 | }, 1788 | "os-tmpdir": { 1789 | "version": "1.0.2", 1790 | "bundled": true, 1791 | "dev": true, 1792 | "optional": true 1793 | }, 1794 | "osenv": { 1795 | "version": "0.1.5", 1796 | "bundled": true, 1797 | "dev": true, 1798 | "optional": true, 1799 | "requires": { 1800 | "os-homedir": "^1.0.0", 1801 | "os-tmpdir": "^1.0.0" 1802 | } 1803 | }, 1804 | "path-is-absolute": { 1805 | "version": "1.0.1", 1806 | "bundled": true, 1807 | "dev": true, 1808 | "optional": true 1809 | }, 1810 | "process-nextick-args": { 1811 | "version": "2.0.1", 1812 | "bundled": true, 1813 | "dev": true, 1814 | "optional": true 1815 | }, 1816 | "rc": { 1817 | "version": "1.2.8", 1818 | "bundled": true, 1819 | "dev": true, 1820 | "optional": true, 1821 | "requires": { 1822 | "deep-extend": "^0.6.0", 1823 | "ini": "~1.3.0", 1824 | "minimist": "^1.2.0", 1825 | "strip-json-comments": "~2.0.1" 1826 | }, 1827 | "dependencies": { 1828 | "minimist": { 1829 | "version": "1.2.0", 1830 | "bundled": true, 1831 | "dev": true, 1832 | "optional": true 1833 | } 1834 | } 1835 | }, 1836 | "readable-stream": { 1837 | "version": "2.3.6", 1838 | "bundled": true, 1839 | "dev": true, 1840 | "optional": true, 1841 | "requires": { 1842 | "core-util-is": "~1.0.0", 1843 | "inherits": "~2.0.3", 1844 | "isarray": "~1.0.0", 1845 | "process-nextick-args": "~2.0.0", 1846 | "safe-buffer": "~5.1.1", 1847 | "string_decoder": "~1.1.1", 1848 | "util-deprecate": "~1.0.1" 1849 | } 1850 | }, 1851 | "rimraf": { 1852 | "version": "2.7.1", 1853 | "bundled": true, 1854 | "dev": true, 1855 | "optional": true, 1856 | "requires": { 1857 | "glob": "^7.1.3" 1858 | } 1859 | }, 1860 | "safe-buffer": { 1861 | "version": "5.1.2", 1862 | "bundled": true, 1863 | "dev": true, 1864 | "optional": true 1865 | }, 1866 | "safer-buffer": { 1867 | "version": "2.1.2", 1868 | "bundled": true, 1869 | "dev": true, 1870 | "optional": true 1871 | }, 1872 | "sax": { 1873 | "version": "1.2.4", 1874 | "bundled": true, 1875 | "dev": true, 1876 | "optional": true 1877 | }, 1878 | "semver": { 1879 | "version": "5.7.1", 1880 | "bundled": true, 1881 | "dev": true, 1882 | "optional": true 1883 | }, 1884 | "set-blocking": { 1885 | "version": "2.0.0", 1886 | "bundled": true, 1887 | "dev": true, 1888 | "optional": true 1889 | }, 1890 | "signal-exit": { 1891 | "version": "3.0.2", 1892 | "bundled": true, 1893 | "dev": true, 1894 | "optional": true 1895 | }, 1896 | "string-width": { 1897 | "version": "1.0.2", 1898 | "bundled": true, 1899 | "dev": true, 1900 | "optional": true, 1901 | "requires": { 1902 | "code-point-at": "^1.0.0", 1903 | "is-fullwidth-code-point": "^1.0.0", 1904 | "strip-ansi": "^3.0.0" 1905 | } 1906 | }, 1907 | "string_decoder": { 1908 | "version": "1.1.1", 1909 | "bundled": true, 1910 | "dev": true, 1911 | "optional": true, 1912 | "requires": { 1913 | "safe-buffer": "~5.1.0" 1914 | } 1915 | }, 1916 | "strip-ansi": { 1917 | "version": "3.0.1", 1918 | "bundled": true, 1919 | "dev": true, 1920 | "optional": true, 1921 | "requires": { 1922 | "ansi-regex": "^2.0.0" 1923 | } 1924 | }, 1925 | "strip-json-comments": { 1926 | "version": "2.0.1", 1927 | "bundled": true, 1928 | "dev": true, 1929 | "optional": true 1930 | }, 1931 | "tar": { 1932 | "version": "4.4.13", 1933 | "bundled": true, 1934 | "dev": true, 1935 | "optional": true, 1936 | "requires": { 1937 | "chownr": "^1.1.1", 1938 | "fs-minipass": "^1.2.5", 1939 | "minipass": "^2.8.6", 1940 | "minizlib": "^1.2.1", 1941 | "mkdirp": "^0.5.0", 1942 | "safe-buffer": "^5.1.2", 1943 | "yallist": "^3.0.3" 1944 | } 1945 | }, 1946 | "util-deprecate": { 1947 | "version": "1.0.2", 1948 | "bundled": true, 1949 | "dev": true, 1950 | "optional": true 1951 | }, 1952 | "wide-align": { 1953 | "version": "1.1.3", 1954 | "bundled": true, 1955 | "dev": true, 1956 | "optional": true, 1957 | "requires": { 1958 | "string-width": "^1.0.2 || 2" 1959 | } 1960 | }, 1961 | "wrappy": { 1962 | "version": "1.0.2", 1963 | "bundled": true, 1964 | "dev": true, 1965 | "optional": true 1966 | }, 1967 | "yallist": { 1968 | "version": "3.1.1", 1969 | "bundled": true, 1970 | "dev": true, 1971 | "optional": true 1972 | } 1973 | } 1974 | }, 1975 | "function-bind": { 1976 | "version": "1.1.1", 1977 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1978 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 1979 | "dev": true 1980 | }, 1981 | "gensync": { 1982 | "version": "1.0.0-beta.1", 1983 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", 1984 | "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==" 1985 | }, 1986 | "get-caller-file": { 1987 | "version": "1.0.3", 1988 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", 1989 | "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", 1990 | "dev": true 1991 | }, 1992 | "get-value": { 1993 | "version": "2.0.6", 1994 | "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", 1995 | "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", 1996 | "dev": true 1997 | }, 1998 | "glob": { 1999 | "version": "7.1.6", 2000 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", 2001 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", 2002 | "dev": true, 2003 | "requires": { 2004 | "fs.realpath": "^1.0.0", 2005 | "inflight": "^1.0.4", 2006 | "inherits": "2", 2007 | "minimatch": "^3.0.4", 2008 | "once": "^1.3.0", 2009 | "path-is-absolute": "^1.0.0" 2010 | } 2011 | }, 2012 | "glob-parent": { 2013 | "version": "3.1.0", 2014 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", 2015 | "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", 2016 | "dev": true, 2017 | "requires": { 2018 | "is-glob": "^3.1.0", 2019 | "path-dirname": "^1.0.0" 2020 | }, 2021 | "dependencies": { 2022 | "is-glob": { 2023 | "version": "3.1.0", 2024 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", 2025 | "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", 2026 | "dev": true, 2027 | "requires": { 2028 | "is-extglob": "^2.1.0" 2029 | } 2030 | } 2031 | } 2032 | }, 2033 | "glob-stream": { 2034 | "version": "6.1.0", 2035 | "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", 2036 | "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", 2037 | "dev": true, 2038 | "requires": { 2039 | "extend": "^3.0.0", 2040 | "glob": "^7.1.1", 2041 | "glob-parent": "^3.1.0", 2042 | "is-negated-glob": "^1.0.0", 2043 | "ordered-read-streams": "^1.0.0", 2044 | "pumpify": "^1.3.5", 2045 | "readable-stream": "^2.1.5", 2046 | "remove-trailing-separator": "^1.0.1", 2047 | "to-absolute-glob": "^2.0.0", 2048 | "unique-stream": "^2.0.2" 2049 | } 2050 | }, 2051 | "glob-watcher": { 2052 | "version": "5.0.3", 2053 | "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.3.tgz", 2054 | "integrity": "sha512-8tWsULNEPHKQ2MR4zXuzSmqbdyV5PtwwCaWSGQ1WwHsJ07ilNeN1JB8ntxhckbnpSHaf9dXFUHzIWvm1I13dsg==", 2055 | "dev": true, 2056 | "requires": { 2057 | "anymatch": "^2.0.0", 2058 | "async-done": "^1.2.0", 2059 | "chokidar": "^2.0.0", 2060 | "is-negated-glob": "^1.0.0", 2061 | "just-debounce": "^1.0.0", 2062 | "object.defaults": "^1.1.0" 2063 | } 2064 | }, 2065 | "global-modules": { 2066 | "version": "1.0.0", 2067 | "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", 2068 | "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", 2069 | "dev": true, 2070 | "requires": { 2071 | "global-prefix": "^1.0.1", 2072 | "is-windows": "^1.0.1", 2073 | "resolve-dir": "^1.0.0" 2074 | } 2075 | }, 2076 | "global-prefix": { 2077 | "version": "1.0.2", 2078 | "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", 2079 | "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", 2080 | "dev": true, 2081 | "requires": { 2082 | "expand-tilde": "^2.0.2", 2083 | "homedir-polyfill": "^1.0.1", 2084 | "ini": "^1.3.4", 2085 | "is-windows": "^1.0.1", 2086 | "which": "^1.2.14" 2087 | } 2088 | }, 2089 | "globals": { 2090 | "version": "11.12.0", 2091 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", 2092 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" 2093 | }, 2094 | "globby": { 2095 | "version": "5.0.0", 2096 | "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", 2097 | "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", 2098 | "dev": true, 2099 | "requires": { 2100 | "array-union": "^1.0.1", 2101 | "arrify": "^1.0.0", 2102 | "glob": "^7.0.3", 2103 | "object-assign": "^4.0.1", 2104 | "pify": "^2.0.0", 2105 | "pinkie-promise": "^2.0.0" 2106 | } 2107 | }, 2108 | "glogg": { 2109 | "version": "1.0.2", 2110 | "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", 2111 | "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", 2112 | "dev": true, 2113 | "requires": { 2114 | "sparkles": "^1.0.0" 2115 | } 2116 | }, 2117 | "graceful-fs": { 2118 | "version": "4.2.3", 2119 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", 2120 | "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", 2121 | "dev": true 2122 | }, 2123 | "gulp": { 2124 | "version": "4.0.2", 2125 | "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", 2126 | "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", 2127 | "dev": true, 2128 | "requires": { 2129 | "glob-watcher": "^5.0.3", 2130 | "gulp-cli": "^2.2.0", 2131 | "undertaker": "^1.2.1", 2132 | "vinyl-fs": "^3.0.0" 2133 | }, 2134 | "dependencies": { 2135 | "gulp-cli": { 2136 | "version": "2.2.0", 2137 | "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.2.0.tgz", 2138 | "integrity": "sha512-rGs3bVYHdyJpLqR0TUBnlcZ1O5O++Zs4bA0ajm+zr3WFCfiSLjGwoCBqFs18wzN+ZxahT9DkOK5nDf26iDsWjA==", 2139 | "dev": true, 2140 | "requires": { 2141 | "ansi-colors": "^1.0.1", 2142 | "archy": "^1.0.0", 2143 | "array-sort": "^1.0.0", 2144 | "color-support": "^1.1.3", 2145 | "concat-stream": "^1.6.0", 2146 | "copy-props": "^2.0.1", 2147 | "fancy-log": "^1.3.2", 2148 | "gulplog": "^1.0.0", 2149 | "interpret": "^1.1.0", 2150 | "isobject": "^3.0.1", 2151 | "liftoff": "^3.1.0", 2152 | "matchdep": "^2.0.0", 2153 | "mute-stdout": "^1.0.0", 2154 | "pretty-hrtime": "^1.0.0", 2155 | "replace-homedir": "^1.0.0", 2156 | "semver-greatest-satisfied-range": "^1.1.0", 2157 | "v8flags": "^3.0.1", 2158 | "yargs": "^7.1.0" 2159 | } 2160 | } 2161 | } 2162 | }, 2163 | "gulp-concat": { 2164 | "version": "2.6.1", 2165 | "resolved": "https://registry.npmjs.org/gulp-concat/-/gulp-concat-2.6.1.tgz", 2166 | "integrity": "sha1-Yz0WyV2IUEYorQJmVmPO5aR5M1M=", 2167 | "dev": true, 2168 | "requires": { 2169 | "concat-with-sourcemaps": "^1.0.0", 2170 | "through2": "^2.0.0", 2171 | "vinyl": "^2.0.0" 2172 | } 2173 | }, 2174 | "gulp-load-plugins": { 2175 | "version": "1.6.0", 2176 | "resolved": "https://registry.npmjs.org/gulp-load-plugins/-/gulp-load-plugins-1.6.0.tgz", 2177 | "integrity": "sha512-HlCODki0WHJvQIgAsJYOTkyo0c7TsDCetvfhrdGz9JYPL6A4mFRMGmKfoi6JmXjA/vvzg+fkT91c9FBh7rnkyg==", 2178 | "dev": true, 2179 | "requires": { 2180 | "array-unique": "^0.2.1", 2181 | "fancy-log": "^1.2.0", 2182 | "findup-sync": "^3.0.0", 2183 | "gulplog": "^1.0.0", 2184 | "has-gulplog": "^0.1.0", 2185 | "micromatch": "^3.1.10", 2186 | "resolve": "^1.1.7" 2187 | }, 2188 | "dependencies": { 2189 | "array-unique": { 2190 | "version": "0.2.1", 2191 | "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", 2192 | "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", 2193 | "dev": true 2194 | } 2195 | } 2196 | }, 2197 | "gulp-tap": { 2198 | "version": "0.1.3", 2199 | "resolved": "https://registry.npmjs.org/gulp-tap/-/gulp-tap-0.1.3.tgz", 2200 | "integrity": "sha1-Eg3KKQHnb7hNXLStXzfK0BVjYeQ=", 2201 | "dev": true, 2202 | "requires": { 2203 | "event-stream": "~3.1.0" 2204 | } 2205 | }, 2206 | "gulplog": { 2207 | "version": "1.0.0", 2208 | "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", 2209 | "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", 2210 | "dev": true, 2211 | "requires": { 2212 | "glogg": "^1.0.0" 2213 | } 2214 | }, 2215 | "handlebars": { 2216 | "version": "4.7.3", 2217 | "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.3.tgz", 2218 | "integrity": "sha512-SRGwSYuNfx8DwHD/6InAPzD6RgeruWLT+B8e8a7gGs8FWgHzlExpTFMEq2IA6QpAfOClpKHy6+8IqTjeBCu6Kg==", 2219 | "requires": { 2220 | "neo-async": "^2.6.0", 2221 | "optimist": "^0.6.1", 2222 | "source-map": "^0.6.1", 2223 | "uglify-js": "^3.1.4" 2224 | } 2225 | }, 2226 | "has-flag": { 2227 | "version": "3.0.0", 2228 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 2229 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" 2230 | }, 2231 | "has-gulplog": { 2232 | "version": "0.1.0", 2233 | "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", 2234 | "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", 2235 | "dev": true, 2236 | "requires": { 2237 | "sparkles": "^1.0.0" 2238 | } 2239 | }, 2240 | "has-symbols": { 2241 | "version": "1.0.1", 2242 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", 2243 | "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", 2244 | "dev": true 2245 | }, 2246 | "has-value": { 2247 | "version": "1.0.0", 2248 | "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", 2249 | "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", 2250 | "dev": true, 2251 | "requires": { 2252 | "get-value": "^2.0.6", 2253 | "has-values": "^1.0.0", 2254 | "isobject": "^3.0.0" 2255 | } 2256 | }, 2257 | "has-values": { 2258 | "version": "1.0.0", 2259 | "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", 2260 | "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", 2261 | "dev": true, 2262 | "requires": { 2263 | "is-number": "^3.0.0", 2264 | "kind-of": "^4.0.0" 2265 | }, 2266 | "dependencies": { 2267 | "kind-of": { 2268 | "version": "4.0.0", 2269 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", 2270 | "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", 2271 | "dev": true, 2272 | "requires": { 2273 | "is-buffer": "^1.1.5" 2274 | } 2275 | } 2276 | } 2277 | }, 2278 | "homedir-polyfill": { 2279 | "version": "1.0.3", 2280 | "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", 2281 | "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", 2282 | "dev": true, 2283 | "requires": { 2284 | "parse-passwd": "^1.0.0" 2285 | } 2286 | }, 2287 | "hosted-git-info": { 2288 | "version": "2.8.8", 2289 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", 2290 | "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", 2291 | "dev": true 2292 | }, 2293 | "htmlparser2": { 2294 | "version": "3.7.3", 2295 | "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.7.3.tgz", 2296 | "integrity": "sha1-amTHdjfAjG8w7CqBV6UzM758sF4=", 2297 | "dev": true, 2298 | "requires": { 2299 | "domelementtype": "1", 2300 | "domhandler": "2.2", 2301 | "domutils": "1.5", 2302 | "entities": "1.0", 2303 | "readable-stream": "1.1" 2304 | }, 2305 | "dependencies": { 2306 | "isarray": { 2307 | "version": "0.0.1", 2308 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", 2309 | "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", 2310 | "dev": true 2311 | }, 2312 | "readable-stream": { 2313 | "version": "1.1.14", 2314 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", 2315 | "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", 2316 | "dev": true, 2317 | "requires": { 2318 | "core-util-is": "~1.0.0", 2319 | "inherits": "~2.0.1", 2320 | "isarray": "0.0.1", 2321 | "string_decoder": "~0.10.x" 2322 | } 2323 | }, 2324 | "string_decoder": { 2325 | "version": "0.10.31", 2326 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", 2327 | "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", 2328 | "dev": true 2329 | } 2330 | } 2331 | }, 2332 | "inflight": { 2333 | "version": "1.0.6", 2334 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 2335 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 2336 | "dev": true, 2337 | "requires": { 2338 | "once": "^1.3.0", 2339 | "wrappy": "1" 2340 | } 2341 | }, 2342 | "inherits": { 2343 | "version": "2.0.4", 2344 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 2345 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 2346 | }, 2347 | "ini": { 2348 | "version": "1.3.5", 2349 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", 2350 | "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", 2351 | "dev": true 2352 | }, 2353 | "interpret": { 2354 | "version": "1.2.0", 2355 | "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", 2356 | "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", 2357 | "dev": true 2358 | }, 2359 | "invert-kv": { 2360 | "version": "1.0.0", 2361 | "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", 2362 | "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", 2363 | "dev": true 2364 | }, 2365 | "is-absolute": { 2366 | "version": "1.0.0", 2367 | "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", 2368 | "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", 2369 | "dev": true, 2370 | "requires": { 2371 | "is-relative": "^1.0.0", 2372 | "is-windows": "^1.0.1" 2373 | } 2374 | }, 2375 | "is-accessor-descriptor": { 2376 | "version": "0.1.6", 2377 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", 2378 | "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", 2379 | "dev": true, 2380 | "requires": { 2381 | "kind-of": "^3.0.2" 2382 | }, 2383 | "dependencies": { 2384 | "kind-of": { 2385 | "version": "3.2.2", 2386 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 2387 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 2388 | "dev": true, 2389 | "requires": { 2390 | "is-buffer": "^1.1.5" 2391 | } 2392 | } 2393 | } 2394 | }, 2395 | "is-arrayish": { 2396 | "version": "0.2.1", 2397 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 2398 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", 2399 | "dev": true 2400 | }, 2401 | "is-binary-path": { 2402 | "version": "1.0.1", 2403 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", 2404 | "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", 2405 | "dev": true, 2406 | "requires": { 2407 | "binary-extensions": "^1.0.0" 2408 | } 2409 | }, 2410 | "is-buffer": { 2411 | "version": "1.1.6", 2412 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", 2413 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", 2414 | "dev": true 2415 | }, 2416 | "is-data-descriptor": { 2417 | "version": "0.1.4", 2418 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", 2419 | "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", 2420 | "dev": true, 2421 | "requires": { 2422 | "kind-of": "^3.0.2" 2423 | }, 2424 | "dependencies": { 2425 | "kind-of": { 2426 | "version": "3.2.2", 2427 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 2428 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 2429 | "dev": true, 2430 | "requires": { 2431 | "is-buffer": "^1.1.5" 2432 | } 2433 | } 2434 | } 2435 | }, 2436 | "is-descriptor": { 2437 | "version": "0.1.6", 2438 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", 2439 | "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", 2440 | "dev": true, 2441 | "requires": { 2442 | "is-accessor-descriptor": "^0.1.6", 2443 | "is-data-descriptor": "^0.1.4", 2444 | "kind-of": "^5.0.0" 2445 | }, 2446 | "dependencies": { 2447 | "kind-of": { 2448 | "version": "5.1.0", 2449 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", 2450 | "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", 2451 | "dev": true 2452 | } 2453 | } 2454 | }, 2455 | "is-extendable": { 2456 | "version": "0.1.1", 2457 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", 2458 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", 2459 | "dev": true 2460 | }, 2461 | "is-extglob": { 2462 | "version": "2.1.1", 2463 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 2464 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 2465 | "dev": true 2466 | }, 2467 | "is-fullwidth-code-point": { 2468 | "version": "1.0.0", 2469 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", 2470 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", 2471 | "dev": true, 2472 | "requires": { 2473 | "number-is-nan": "^1.0.0" 2474 | } 2475 | }, 2476 | "is-glob": { 2477 | "version": "4.0.1", 2478 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", 2479 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", 2480 | "dev": true, 2481 | "requires": { 2482 | "is-extglob": "^2.1.1" 2483 | } 2484 | }, 2485 | "is-negated-glob": { 2486 | "version": "1.0.0", 2487 | "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", 2488 | "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", 2489 | "dev": true 2490 | }, 2491 | "is-number": { 2492 | "version": "3.0.0", 2493 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", 2494 | "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", 2495 | "dev": true, 2496 | "requires": { 2497 | "kind-of": "^3.0.2" 2498 | }, 2499 | "dependencies": { 2500 | "kind-of": { 2501 | "version": "3.2.2", 2502 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 2503 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 2504 | "dev": true, 2505 | "requires": { 2506 | "is-buffer": "^1.1.5" 2507 | } 2508 | } 2509 | } 2510 | }, 2511 | "is-path-cwd": { 2512 | "version": "1.0.0", 2513 | "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", 2514 | "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", 2515 | "dev": true 2516 | }, 2517 | "is-path-in-cwd": { 2518 | "version": "1.0.1", 2519 | "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", 2520 | "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", 2521 | "dev": true, 2522 | "requires": { 2523 | "is-path-inside": "^1.0.0" 2524 | } 2525 | }, 2526 | "is-path-inside": { 2527 | "version": "1.0.1", 2528 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", 2529 | "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", 2530 | "dev": true, 2531 | "requires": { 2532 | "path-is-inside": "^1.0.1" 2533 | } 2534 | }, 2535 | "is-plain-object": { 2536 | "version": "2.0.4", 2537 | "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", 2538 | "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", 2539 | "dev": true, 2540 | "requires": { 2541 | "isobject": "^3.0.1" 2542 | } 2543 | }, 2544 | "is-relative": { 2545 | "version": "1.0.0", 2546 | "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", 2547 | "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", 2548 | "dev": true, 2549 | "requires": { 2550 | "is-unc-path": "^1.0.0" 2551 | } 2552 | }, 2553 | "is-unc-path": { 2554 | "version": "1.0.0", 2555 | "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", 2556 | "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", 2557 | "dev": true, 2558 | "requires": { 2559 | "unc-path-regex": "^0.1.2" 2560 | } 2561 | }, 2562 | "is-utf8": { 2563 | "version": "0.2.1", 2564 | "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", 2565 | "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", 2566 | "dev": true 2567 | }, 2568 | "is-valid-glob": { 2569 | "version": "1.0.0", 2570 | "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", 2571 | "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", 2572 | "dev": true 2573 | }, 2574 | "is-windows": { 2575 | "version": "1.0.2", 2576 | "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", 2577 | "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", 2578 | "dev": true 2579 | }, 2580 | "isarray": { 2581 | "version": "1.0.0", 2582 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 2583 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 2584 | }, 2585 | "isexe": { 2586 | "version": "2.0.0", 2587 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 2588 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 2589 | "dev": true 2590 | }, 2591 | "isobject": { 2592 | "version": "3.0.1", 2593 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", 2594 | "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", 2595 | "dev": true 2596 | }, 2597 | "js-tokens": { 2598 | "version": "4.0.0", 2599 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 2600 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 2601 | }, 2602 | "jsesc": { 2603 | "version": "2.5.2", 2604 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", 2605 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" 2606 | }, 2607 | "json-stable-stringify-without-jsonify": { 2608 | "version": "1.0.1", 2609 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 2610 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", 2611 | "dev": true 2612 | }, 2613 | "json5": { 2614 | "version": "2.1.1", 2615 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", 2616 | "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", 2617 | "requires": { 2618 | "minimist": "^1.2.0" 2619 | }, 2620 | "dependencies": { 2621 | "minimist": { 2622 | "version": "1.2.0", 2623 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 2624 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" 2625 | } 2626 | } 2627 | }, 2628 | "just-debounce": { 2629 | "version": "1.0.0", 2630 | "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz", 2631 | "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=", 2632 | "dev": true 2633 | }, 2634 | "kind-of": { 2635 | "version": "6.0.3", 2636 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", 2637 | "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", 2638 | "dev": true 2639 | }, 2640 | "last-run": { 2641 | "version": "1.1.1", 2642 | "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", 2643 | "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", 2644 | "dev": true, 2645 | "requires": { 2646 | "default-resolution": "^2.0.0", 2647 | "es6-weak-map": "^2.0.1" 2648 | } 2649 | }, 2650 | "lazystream": { 2651 | "version": "1.0.0", 2652 | "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", 2653 | "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", 2654 | "dev": true, 2655 | "requires": { 2656 | "readable-stream": "^2.0.5" 2657 | } 2658 | }, 2659 | "lcid": { 2660 | "version": "1.0.0", 2661 | "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", 2662 | "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", 2663 | "dev": true, 2664 | "requires": { 2665 | "invert-kv": "^1.0.0" 2666 | } 2667 | }, 2668 | "lead": { 2669 | "version": "1.0.0", 2670 | "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", 2671 | "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", 2672 | "dev": true, 2673 | "requires": { 2674 | "flush-write-stream": "^1.0.2" 2675 | } 2676 | }, 2677 | "liftoff": { 2678 | "version": "3.1.0", 2679 | "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", 2680 | "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", 2681 | "dev": true, 2682 | "requires": { 2683 | "extend": "^3.0.0", 2684 | "findup-sync": "^3.0.0", 2685 | "fined": "^1.0.1", 2686 | "flagged-respawn": "^1.0.0", 2687 | "is-plain-object": "^2.0.4", 2688 | "object.map": "^1.0.0", 2689 | "rechoir": "^0.6.2", 2690 | "resolve": "^1.1.7" 2691 | } 2692 | }, 2693 | "load-json-file": { 2694 | "version": "1.1.0", 2695 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", 2696 | "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", 2697 | "dev": true, 2698 | "requires": { 2699 | "graceful-fs": "^4.1.2", 2700 | "parse-json": "^2.2.0", 2701 | "pify": "^2.0.0", 2702 | "pinkie-promise": "^2.0.0", 2703 | "strip-bom": "^2.0.0" 2704 | } 2705 | }, 2706 | "lodash": { 2707 | "version": "4.17.15", 2708 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", 2709 | "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" 2710 | }, 2711 | "make-iterator": { 2712 | "version": "1.0.1", 2713 | "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", 2714 | "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", 2715 | "dev": true, 2716 | "requires": { 2717 | "kind-of": "^6.0.2" 2718 | } 2719 | }, 2720 | "map-cache": { 2721 | "version": "0.2.2", 2722 | "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", 2723 | "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", 2724 | "dev": true 2725 | }, 2726 | "map-stream": { 2727 | "version": "0.1.0", 2728 | "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", 2729 | "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=", 2730 | "dev": true 2731 | }, 2732 | "map-visit": { 2733 | "version": "1.0.0", 2734 | "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", 2735 | "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", 2736 | "dev": true, 2737 | "requires": { 2738 | "object-visit": "^1.0.0" 2739 | } 2740 | }, 2741 | "matchdep": { 2742 | "version": "2.0.0", 2743 | "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", 2744 | "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", 2745 | "dev": true, 2746 | "requires": { 2747 | "findup-sync": "^2.0.0", 2748 | "micromatch": "^3.0.4", 2749 | "resolve": "^1.4.0", 2750 | "stack-trace": "0.0.10" 2751 | }, 2752 | "dependencies": { 2753 | "findup-sync": { 2754 | "version": "2.0.0", 2755 | "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", 2756 | "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", 2757 | "dev": true, 2758 | "requires": { 2759 | "detect-file": "^1.0.0", 2760 | "is-glob": "^3.1.0", 2761 | "micromatch": "^3.0.4", 2762 | "resolve-dir": "^1.0.1" 2763 | } 2764 | }, 2765 | "is-glob": { 2766 | "version": "3.1.0", 2767 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", 2768 | "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", 2769 | "dev": true, 2770 | "requires": { 2771 | "is-extglob": "^2.1.0" 2772 | } 2773 | } 2774 | } 2775 | }, 2776 | "micromatch": { 2777 | "version": "3.1.10", 2778 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", 2779 | "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", 2780 | "dev": true, 2781 | "requires": { 2782 | "arr-diff": "^4.0.0", 2783 | "array-unique": "^0.3.2", 2784 | "braces": "^2.3.1", 2785 | "define-property": "^2.0.2", 2786 | "extend-shallow": "^3.0.2", 2787 | "extglob": "^2.0.4", 2788 | "fragment-cache": "^0.2.1", 2789 | "kind-of": "^6.0.2", 2790 | "nanomatch": "^1.2.9", 2791 | "object.pick": "^1.3.0", 2792 | "regex-not": "^1.0.0", 2793 | "snapdragon": "^0.8.1", 2794 | "to-regex": "^3.0.2" 2795 | } 2796 | }, 2797 | "min-indent": { 2798 | "version": "1.0.0", 2799 | "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.0.tgz", 2800 | "integrity": "sha1-z8RcN+nsDY8KDsPdTvf3w6vjklY=" 2801 | }, 2802 | "minimatch": { 2803 | "version": "3.0.4", 2804 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 2805 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 2806 | "requires": { 2807 | "brace-expansion": "^1.1.7" 2808 | } 2809 | }, 2810 | "minimist": { 2811 | "version": "0.0.10", 2812 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", 2813 | "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=" 2814 | }, 2815 | "mixin-deep": { 2816 | "version": "1.3.2", 2817 | "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", 2818 | "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", 2819 | "dev": true, 2820 | "requires": { 2821 | "for-in": "^1.0.2", 2822 | "is-extendable": "^1.0.1" 2823 | }, 2824 | "dependencies": { 2825 | "is-extendable": { 2826 | "version": "1.0.1", 2827 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", 2828 | "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", 2829 | "dev": true, 2830 | "requires": { 2831 | "is-plain-object": "^2.0.4" 2832 | } 2833 | } 2834 | } 2835 | }, 2836 | "ms": { 2837 | "version": "2.1.2", 2838 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 2839 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 2840 | }, 2841 | "mute-stdout": { 2842 | "version": "1.0.1", 2843 | "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", 2844 | "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", 2845 | "dev": true 2846 | }, 2847 | "nan": { 2848 | "version": "2.14.0", 2849 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", 2850 | "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", 2851 | "dev": true, 2852 | "optional": true 2853 | }, 2854 | "nanomatch": { 2855 | "version": "1.2.13", 2856 | "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", 2857 | "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", 2858 | "dev": true, 2859 | "requires": { 2860 | "arr-diff": "^4.0.0", 2861 | "array-unique": "^0.3.2", 2862 | "define-property": "^2.0.2", 2863 | "extend-shallow": "^3.0.2", 2864 | "fragment-cache": "^0.2.1", 2865 | "is-windows": "^1.0.2", 2866 | "kind-of": "^6.0.2", 2867 | "object.pick": "^1.3.0", 2868 | "regex-not": "^1.0.0", 2869 | "snapdragon": "^0.8.1", 2870 | "to-regex": "^3.0.1" 2871 | } 2872 | }, 2873 | "neo-async": { 2874 | "version": "2.6.1", 2875 | "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", 2876 | "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==" 2877 | }, 2878 | "next-tick": { 2879 | "version": "1.0.0", 2880 | "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", 2881 | "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", 2882 | "dev": true 2883 | }, 2884 | "node-dir": { 2885 | "version": "0.1.17", 2886 | "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz", 2887 | "integrity": "sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU=", 2888 | "requires": { 2889 | "minimatch": "^3.0.2" 2890 | } 2891 | }, 2892 | "normalize-package-data": { 2893 | "version": "2.5.0", 2894 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", 2895 | "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", 2896 | "dev": true, 2897 | "requires": { 2898 | "hosted-git-info": "^2.1.4", 2899 | "resolve": "^1.10.0", 2900 | "semver": "2 || 3 || 4 || 5", 2901 | "validate-npm-package-license": "^3.0.1" 2902 | } 2903 | }, 2904 | "normalize-path": { 2905 | "version": "2.1.1", 2906 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", 2907 | "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", 2908 | "dev": true, 2909 | "requires": { 2910 | "remove-trailing-separator": "^1.0.1" 2911 | } 2912 | }, 2913 | "now-and-later": { 2914 | "version": "2.0.1", 2915 | "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", 2916 | "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", 2917 | "dev": true, 2918 | "requires": { 2919 | "once": "^1.3.2" 2920 | } 2921 | }, 2922 | "number-is-nan": { 2923 | "version": "1.0.1", 2924 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 2925 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", 2926 | "dev": true 2927 | }, 2928 | "object-assign": { 2929 | "version": "4.1.1", 2930 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 2931 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 2932 | "dev": true 2933 | }, 2934 | "object-copy": { 2935 | "version": "0.1.0", 2936 | "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", 2937 | "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", 2938 | "dev": true, 2939 | "requires": { 2940 | "copy-descriptor": "^0.1.0", 2941 | "define-property": "^0.2.5", 2942 | "kind-of": "^3.0.3" 2943 | }, 2944 | "dependencies": { 2945 | "define-property": { 2946 | "version": "0.2.5", 2947 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", 2948 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", 2949 | "dev": true, 2950 | "requires": { 2951 | "is-descriptor": "^0.1.0" 2952 | } 2953 | }, 2954 | "kind-of": { 2955 | "version": "3.2.2", 2956 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 2957 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 2958 | "dev": true, 2959 | "requires": { 2960 | "is-buffer": "^1.1.5" 2961 | } 2962 | } 2963 | } 2964 | }, 2965 | "object-keys": { 2966 | "version": "1.1.1", 2967 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 2968 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", 2969 | "dev": true 2970 | }, 2971 | "object-visit": { 2972 | "version": "1.0.1", 2973 | "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", 2974 | "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", 2975 | "dev": true, 2976 | "requires": { 2977 | "isobject": "^3.0.0" 2978 | } 2979 | }, 2980 | "object.assign": { 2981 | "version": "4.1.0", 2982 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", 2983 | "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", 2984 | "dev": true, 2985 | "requires": { 2986 | "define-properties": "^1.1.2", 2987 | "function-bind": "^1.1.1", 2988 | "has-symbols": "^1.0.0", 2989 | "object-keys": "^1.0.11" 2990 | } 2991 | }, 2992 | "object.defaults": { 2993 | "version": "1.1.0", 2994 | "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", 2995 | "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", 2996 | "dev": true, 2997 | "requires": { 2998 | "array-each": "^1.0.1", 2999 | "array-slice": "^1.0.0", 3000 | "for-own": "^1.0.0", 3001 | "isobject": "^3.0.0" 3002 | } 3003 | }, 3004 | "object.map": { 3005 | "version": "1.0.1", 3006 | "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", 3007 | "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", 3008 | "dev": true, 3009 | "requires": { 3010 | "for-own": "^1.0.0", 3011 | "make-iterator": "^1.0.0" 3012 | } 3013 | }, 3014 | "object.pick": { 3015 | "version": "1.3.0", 3016 | "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", 3017 | "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", 3018 | "dev": true, 3019 | "requires": { 3020 | "isobject": "^3.0.1" 3021 | } 3022 | }, 3023 | "object.reduce": { 3024 | "version": "1.0.1", 3025 | "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", 3026 | "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", 3027 | "dev": true, 3028 | "requires": { 3029 | "for-own": "^1.0.0", 3030 | "make-iterator": "^1.0.0" 3031 | } 3032 | }, 3033 | "once": { 3034 | "version": "1.4.0", 3035 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 3036 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 3037 | "dev": true, 3038 | "requires": { 3039 | "wrappy": "1" 3040 | } 3041 | }, 3042 | "optimist": { 3043 | "version": "0.6.1", 3044 | "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", 3045 | "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", 3046 | "requires": { 3047 | "minimist": "~0.0.1", 3048 | "wordwrap": "~0.0.2" 3049 | } 3050 | }, 3051 | "ordered-read-streams": { 3052 | "version": "1.0.1", 3053 | "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", 3054 | "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", 3055 | "dev": true, 3056 | "requires": { 3057 | "readable-stream": "^2.0.1" 3058 | } 3059 | }, 3060 | "os-locale": { 3061 | "version": "1.4.0", 3062 | "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", 3063 | "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", 3064 | "dev": true, 3065 | "requires": { 3066 | "lcid": "^1.0.0" 3067 | } 3068 | }, 3069 | "parse-filepath": { 3070 | "version": "1.0.2", 3071 | "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", 3072 | "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", 3073 | "dev": true, 3074 | "requires": { 3075 | "is-absolute": "^1.0.0", 3076 | "map-cache": "^0.2.0", 3077 | "path-root": "^0.1.1" 3078 | } 3079 | }, 3080 | "parse-json": { 3081 | "version": "2.2.0", 3082 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", 3083 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", 3084 | "dev": true, 3085 | "requires": { 3086 | "error-ex": "^1.2.0" 3087 | } 3088 | }, 3089 | "parse-node-version": { 3090 | "version": "1.0.1", 3091 | "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", 3092 | "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", 3093 | "dev": true 3094 | }, 3095 | "parse-passwd": { 3096 | "version": "1.0.0", 3097 | "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", 3098 | "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", 3099 | "dev": true 3100 | }, 3101 | "pascalcase": { 3102 | "version": "0.1.1", 3103 | "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", 3104 | "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", 3105 | "dev": true 3106 | }, 3107 | "path-dirname": { 3108 | "version": "1.0.2", 3109 | "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", 3110 | "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", 3111 | "dev": true 3112 | }, 3113 | "path-exists": { 3114 | "version": "2.1.0", 3115 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", 3116 | "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", 3117 | "dev": true, 3118 | "requires": { 3119 | "pinkie-promise": "^2.0.0" 3120 | } 3121 | }, 3122 | "path-is-absolute": { 3123 | "version": "1.0.1", 3124 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 3125 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 3126 | "dev": true 3127 | }, 3128 | "path-is-inside": { 3129 | "version": "1.0.2", 3130 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", 3131 | "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", 3132 | "dev": true 3133 | }, 3134 | "path-parse": { 3135 | "version": "1.0.6", 3136 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", 3137 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" 3138 | }, 3139 | "path-root": { 3140 | "version": "0.1.1", 3141 | "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", 3142 | "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", 3143 | "dev": true, 3144 | "requires": { 3145 | "path-root-regex": "^0.1.0" 3146 | } 3147 | }, 3148 | "path-root-regex": { 3149 | "version": "0.1.2", 3150 | "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", 3151 | "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", 3152 | "dev": true 3153 | }, 3154 | "path-type": { 3155 | "version": "1.1.0", 3156 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", 3157 | "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", 3158 | "dev": true, 3159 | "requires": { 3160 | "graceful-fs": "^4.1.2", 3161 | "pify": "^2.0.0", 3162 | "pinkie-promise": "^2.0.0" 3163 | } 3164 | }, 3165 | "pause-stream": { 3166 | "version": "0.0.11", 3167 | "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", 3168 | "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", 3169 | "dev": true, 3170 | "requires": { 3171 | "through": "~2.3" 3172 | } 3173 | }, 3174 | "pify": { 3175 | "version": "2.3.0", 3176 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 3177 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 3178 | "dev": true 3179 | }, 3180 | "pinkie": { 3181 | "version": "2.0.4", 3182 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 3183 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", 3184 | "dev": true 3185 | }, 3186 | "pinkie-promise": { 3187 | "version": "2.0.1", 3188 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 3189 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", 3190 | "dev": true, 3191 | "requires": { 3192 | "pinkie": "^2.0.0" 3193 | } 3194 | }, 3195 | "posix-character-classes": { 3196 | "version": "0.1.1", 3197 | "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", 3198 | "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", 3199 | "dev": true 3200 | }, 3201 | "pretty-hrtime": { 3202 | "version": "1.0.3", 3203 | "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", 3204 | "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", 3205 | "dev": true 3206 | }, 3207 | "process-nextick-args": { 3208 | "version": "2.0.1", 3209 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 3210 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" 3211 | }, 3212 | "pump": { 3213 | "version": "2.0.1", 3214 | "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", 3215 | "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", 3216 | "dev": true, 3217 | "requires": { 3218 | "end-of-stream": "^1.1.0", 3219 | "once": "^1.3.1" 3220 | } 3221 | }, 3222 | "pumpify": { 3223 | "version": "1.5.1", 3224 | "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", 3225 | "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", 3226 | "dev": true, 3227 | "requires": { 3228 | "duplexify": "^3.6.0", 3229 | "inherits": "^2.0.3", 3230 | "pump": "^2.0.0" 3231 | } 3232 | }, 3233 | "react-docgen": { 3234 | "version": "5.3.0", 3235 | "resolved": "https://registry.npmjs.org/react-docgen/-/react-docgen-5.3.0.tgz", 3236 | "integrity": "sha512-hUrv69k6nxazOuOmdGeOpC/ldiKy7Qj/UFpxaQi0eDMrUFUTIPGtY5HJu7BggSmiyAMfREaESbtBL9UzdQ+hyg==", 3237 | "requires": { 3238 | "@babel/core": "^7.7.5", 3239 | "@babel/runtime": "^7.7.6", 3240 | "ast-types": "^0.13.2", 3241 | "commander": "^2.19.0", 3242 | "doctrine": "^3.0.0", 3243 | "neo-async": "^2.6.1", 3244 | "node-dir": "^0.1.10", 3245 | "strip-indent": "^3.0.0" 3246 | } 3247 | }, 3248 | "read-pkg": { 3249 | "version": "1.1.0", 3250 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", 3251 | "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", 3252 | "dev": true, 3253 | "requires": { 3254 | "load-json-file": "^1.0.0", 3255 | "normalize-package-data": "^2.3.2", 3256 | "path-type": "^1.0.0" 3257 | } 3258 | }, 3259 | "read-pkg-up": { 3260 | "version": "1.0.1", 3261 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", 3262 | "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", 3263 | "dev": true, 3264 | "requires": { 3265 | "find-up": "^1.0.0", 3266 | "read-pkg": "^1.0.0" 3267 | } 3268 | }, 3269 | "readable-stream": { 3270 | "version": "2.3.7", 3271 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 3272 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 3273 | "requires": { 3274 | "core-util-is": "~1.0.0", 3275 | "inherits": "~2.0.3", 3276 | "isarray": "~1.0.0", 3277 | "process-nextick-args": "~2.0.0", 3278 | "safe-buffer": "~5.1.1", 3279 | "string_decoder": "~1.1.1", 3280 | "util-deprecate": "~1.0.1" 3281 | } 3282 | }, 3283 | "readdirp": { 3284 | "version": "2.2.1", 3285 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", 3286 | "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", 3287 | "dev": true, 3288 | "requires": { 3289 | "graceful-fs": "^4.1.11", 3290 | "micromatch": "^3.1.10", 3291 | "readable-stream": "^2.0.2" 3292 | } 3293 | }, 3294 | "rechoir": { 3295 | "version": "0.6.2", 3296 | "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", 3297 | "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", 3298 | "dev": true, 3299 | "requires": { 3300 | "resolve": "^1.1.6" 3301 | } 3302 | }, 3303 | "regenerator-runtime": { 3304 | "version": "0.13.3", 3305 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", 3306 | "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==" 3307 | }, 3308 | "regex-not": { 3309 | "version": "1.0.2", 3310 | "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", 3311 | "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", 3312 | "dev": true, 3313 | "requires": { 3314 | "extend-shallow": "^3.0.2", 3315 | "safe-regex": "^1.1.0" 3316 | } 3317 | }, 3318 | "remove-bom-buffer": { 3319 | "version": "3.0.0", 3320 | "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", 3321 | "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", 3322 | "dev": true, 3323 | "requires": { 3324 | "is-buffer": "^1.1.5", 3325 | "is-utf8": "^0.2.1" 3326 | } 3327 | }, 3328 | "remove-bom-stream": { 3329 | "version": "1.2.0", 3330 | "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", 3331 | "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", 3332 | "dev": true, 3333 | "requires": { 3334 | "remove-bom-buffer": "^3.0.0", 3335 | "safe-buffer": "^5.1.0", 3336 | "through2": "^2.0.3" 3337 | } 3338 | }, 3339 | "remove-trailing-separator": { 3340 | "version": "1.1.0", 3341 | "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", 3342 | "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", 3343 | "dev": true 3344 | }, 3345 | "repeat-element": { 3346 | "version": "1.1.3", 3347 | "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", 3348 | "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", 3349 | "dev": true 3350 | }, 3351 | "repeat-string": { 3352 | "version": "1.6.1", 3353 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", 3354 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", 3355 | "dev": true 3356 | }, 3357 | "replace-ext": { 3358 | "version": "1.0.0", 3359 | "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", 3360 | "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", 3361 | "dev": true 3362 | }, 3363 | "replace-homedir": { 3364 | "version": "1.0.0", 3365 | "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", 3366 | "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", 3367 | "dev": true, 3368 | "requires": { 3369 | "homedir-polyfill": "^1.0.1", 3370 | "is-absolute": "^1.0.0", 3371 | "remove-trailing-separator": "^1.1.0" 3372 | } 3373 | }, 3374 | "require-directory": { 3375 | "version": "2.1.1", 3376 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 3377 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", 3378 | "dev": true 3379 | }, 3380 | "require-main-filename": { 3381 | "version": "1.0.1", 3382 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", 3383 | "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", 3384 | "dev": true 3385 | }, 3386 | "resolve": { 3387 | "version": "1.15.1", 3388 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", 3389 | "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", 3390 | "requires": { 3391 | "path-parse": "^1.0.6" 3392 | } 3393 | }, 3394 | "resolve-dir": { 3395 | "version": "1.0.1", 3396 | "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", 3397 | "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", 3398 | "dev": true, 3399 | "requires": { 3400 | "expand-tilde": "^2.0.0", 3401 | "global-modules": "^1.0.0" 3402 | } 3403 | }, 3404 | "resolve-options": { 3405 | "version": "1.1.0", 3406 | "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", 3407 | "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", 3408 | "dev": true, 3409 | "requires": { 3410 | "value-or-function": "^3.0.0" 3411 | } 3412 | }, 3413 | "resolve-url": { 3414 | "version": "0.2.1", 3415 | "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", 3416 | "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", 3417 | "dev": true 3418 | }, 3419 | "ret": { 3420 | "version": "0.1.15", 3421 | "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", 3422 | "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", 3423 | "dev": true 3424 | }, 3425 | "rimraf": { 3426 | "version": "2.7.1", 3427 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", 3428 | "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", 3429 | "dev": true, 3430 | "requires": { 3431 | "glob": "^7.1.3" 3432 | } 3433 | }, 3434 | "safe-buffer": { 3435 | "version": "5.1.2", 3436 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 3437 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 3438 | }, 3439 | "safe-regex": { 3440 | "version": "1.1.0", 3441 | "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", 3442 | "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", 3443 | "dev": true, 3444 | "requires": { 3445 | "ret": "~0.1.10" 3446 | } 3447 | }, 3448 | "semver": { 3449 | "version": "5.7.1", 3450 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 3451 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" 3452 | }, 3453 | "semver-greatest-satisfied-range": { 3454 | "version": "1.1.0", 3455 | "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", 3456 | "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", 3457 | "dev": true, 3458 | "requires": { 3459 | "sver-compat": "^1.5.0" 3460 | } 3461 | }, 3462 | "set-blocking": { 3463 | "version": "2.0.0", 3464 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 3465 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", 3466 | "dev": true 3467 | }, 3468 | "set-value": { 3469 | "version": "2.0.1", 3470 | "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", 3471 | "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", 3472 | "dev": true, 3473 | "requires": { 3474 | "extend-shallow": "^2.0.1", 3475 | "is-extendable": "^0.1.1", 3476 | "is-plain-object": "^2.0.3", 3477 | "split-string": "^3.0.1" 3478 | }, 3479 | "dependencies": { 3480 | "extend-shallow": { 3481 | "version": "2.0.1", 3482 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 3483 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 3484 | "dev": true, 3485 | "requires": { 3486 | "is-extendable": "^0.1.0" 3487 | } 3488 | } 3489 | } 3490 | }, 3491 | "snapdragon": { 3492 | "version": "0.8.2", 3493 | "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", 3494 | "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", 3495 | "dev": true, 3496 | "requires": { 3497 | "base": "^0.11.1", 3498 | "debug": "^2.2.0", 3499 | "define-property": "^0.2.5", 3500 | "extend-shallow": "^2.0.1", 3501 | "map-cache": "^0.2.2", 3502 | "source-map": "^0.5.6", 3503 | "source-map-resolve": "^0.5.0", 3504 | "use": "^3.1.0" 3505 | }, 3506 | "dependencies": { 3507 | "debug": { 3508 | "version": "2.6.9", 3509 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 3510 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 3511 | "dev": true, 3512 | "requires": { 3513 | "ms": "2.0.0" 3514 | } 3515 | }, 3516 | "define-property": { 3517 | "version": "0.2.5", 3518 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", 3519 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", 3520 | "dev": true, 3521 | "requires": { 3522 | "is-descriptor": "^0.1.0" 3523 | } 3524 | }, 3525 | "extend-shallow": { 3526 | "version": "2.0.1", 3527 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 3528 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 3529 | "dev": true, 3530 | "requires": { 3531 | "is-extendable": "^0.1.0" 3532 | } 3533 | }, 3534 | "ms": { 3535 | "version": "2.0.0", 3536 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 3537 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 3538 | "dev": true 3539 | }, 3540 | "source-map": { 3541 | "version": "0.5.7", 3542 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 3543 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 3544 | "dev": true 3545 | } 3546 | } 3547 | }, 3548 | "snapdragon-node": { 3549 | "version": "2.1.1", 3550 | "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", 3551 | "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", 3552 | "dev": true, 3553 | "requires": { 3554 | "define-property": "^1.0.0", 3555 | "isobject": "^3.0.0", 3556 | "snapdragon-util": "^3.0.1" 3557 | }, 3558 | "dependencies": { 3559 | "define-property": { 3560 | "version": "1.0.0", 3561 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", 3562 | "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", 3563 | "dev": true, 3564 | "requires": { 3565 | "is-descriptor": "^1.0.0" 3566 | } 3567 | }, 3568 | "is-accessor-descriptor": { 3569 | "version": "1.0.0", 3570 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", 3571 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", 3572 | "dev": true, 3573 | "requires": { 3574 | "kind-of": "^6.0.0" 3575 | } 3576 | }, 3577 | "is-data-descriptor": { 3578 | "version": "1.0.0", 3579 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", 3580 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", 3581 | "dev": true, 3582 | "requires": { 3583 | "kind-of": "^6.0.0" 3584 | } 3585 | }, 3586 | "is-descriptor": { 3587 | "version": "1.0.2", 3588 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", 3589 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", 3590 | "dev": true, 3591 | "requires": { 3592 | "is-accessor-descriptor": "^1.0.0", 3593 | "is-data-descriptor": "^1.0.0", 3594 | "kind-of": "^6.0.2" 3595 | } 3596 | } 3597 | } 3598 | }, 3599 | "snapdragon-util": { 3600 | "version": "3.0.1", 3601 | "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", 3602 | "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", 3603 | "dev": true, 3604 | "requires": { 3605 | "kind-of": "^3.2.0" 3606 | }, 3607 | "dependencies": { 3608 | "kind-of": { 3609 | "version": "3.2.2", 3610 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 3611 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 3612 | "dev": true, 3613 | "requires": { 3614 | "is-buffer": "^1.1.5" 3615 | } 3616 | } 3617 | } 3618 | }, 3619 | "source-map": { 3620 | "version": "0.6.1", 3621 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 3622 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" 3623 | }, 3624 | "source-map-resolve": { 3625 | "version": "0.5.3", 3626 | "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", 3627 | "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", 3628 | "dev": true, 3629 | "requires": { 3630 | "atob": "^2.1.2", 3631 | "decode-uri-component": "^0.2.0", 3632 | "resolve-url": "^0.2.1", 3633 | "source-map-url": "^0.4.0", 3634 | "urix": "^0.1.0" 3635 | } 3636 | }, 3637 | "source-map-url": { 3638 | "version": "0.4.0", 3639 | "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", 3640 | "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", 3641 | "dev": true 3642 | }, 3643 | "sparkles": { 3644 | "version": "1.0.1", 3645 | "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", 3646 | "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", 3647 | "dev": true 3648 | }, 3649 | "spdx-correct": { 3650 | "version": "3.1.0", 3651 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", 3652 | "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", 3653 | "dev": true, 3654 | "requires": { 3655 | "spdx-expression-parse": "^3.0.0", 3656 | "spdx-license-ids": "^3.0.0" 3657 | } 3658 | }, 3659 | "spdx-exceptions": { 3660 | "version": "2.2.0", 3661 | "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", 3662 | "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", 3663 | "dev": true 3664 | }, 3665 | "spdx-expression-parse": { 3666 | "version": "3.0.0", 3667 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", 3668 | "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", 3669 | "dev": true, 3670 | "requires": { 3671 | "spdx-exceptions": "^2.1.0", 3672 | "spdx-license-ids": "^3.0.0" 3673 | } 3674 | }, 3675 | "spdx-license-ids": { 3676 | "version": "3.0.5", 3677 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", 3678 | "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", 3679 | "dev": true 3680 | }, 3681 | "split": { 3682 | "version": "0.2.10", 3683 | "resolved": "https://registry.npmjs.org/split/-/split-0.2.10.tgz", 3684 | "integrity": "sha1-Zwl8YB1pfOE2j0GPBs0gHPBSGlc=", 3685 | "dev": true, 3686 | "requires": { 3687 | "through": "2" 3688 | } 3689 | }, 3690 | "split-string": { 3691 | "version": "3.1.0", 3692 | "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", 3693 | "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", 3694 | "dev": true, 3695 | "requires": { 3696 | "extend-shallow": "^3.0.0" 3697 | } 3698 | }, 3699 | "stack-trace": { 3700 | "version": "0.0.10", 3701 | "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", 3702 | "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", 3703 | "dev": true 3704 | }, 3705 | "static-extend": { 3706 | "version": "0.1.2", 3707 | "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", 3708 | "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", 3709 | "dev": true, 3710 | "requires": { 3711 | "define-property": "^0.2.5", 3712 | "object-copy": "^0.1.0" 3713 | }, 3714 | "dependencies": { 3715 | "define-property": { 3716 | "version": "0.2.5", 3717 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", 3718 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", 3719 | "dev": true, 3720 | "requires": { 3721 | "is-descriptor": "^0.1.0" 3722 | } 3723 | } 3724 | } 3725 | }, 3726 | "stream-combiner": { 3727 | "version": "0.0.4", 3728 | "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", 3729 | "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", 3730 | "dev": true, 3731 | "requires": { 3732 | "duplexer": "~0.1.1" 3733 | } 3734 | }, 3735 | "stream-exhaust": { 3736 | "version": "1.0.2", 3737 | "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", 3738 | "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", 3739 | "dev": true 3740 | }, 3741 | "stream-shift": { 3742 | "version": "1.0.1", 3743 | "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", 3744 | "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", 3745 | "dev": true 3746 | }, 3747 | "string-width": { 3748 | "version": "1.0.2", 3749 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 3750 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 3751 | "dev": true, 3752 | "requires": { 3753 | "code-point-at": "^1.0.0", 3754 | "is-fullwidth-code-point": "^1.0.0", 3755 | "strip-ansi": "^3.0.0" 3756 | } 3757 | }, 3758 | "string_decoder": { 3759 | "version": "1.1.1", 3760 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 3761 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 3762 | "requires": { 3763 | "safe-buffer": "~5.1.0" 3764 | } 3765 | }, 3766 | "strip-ansi": { 3767 | "version": "3.0.1", 3768 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 3769 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 3770 | "dev": true, 3771 | "requires": { 3772 | "ansi-regex": "^2.0.0" 3773 | } 3774 | }, 3775 | "strip-bom": { 3776 | "version": "2.0.0", 3777 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", 3778 | "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", 3779 | "dev": true, 3780 | "requires": { 3781 | "is-utf8": "^0.2.0" 3782 | } 3783 | }, 3784 | "strip-indent": { 3785 | "version": "3.0.0", 3786 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", 3787 | "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", 3788 | "requires": { 3789 | "min-indent": "^1.0.0" 3790 | } 3791 | }, 3792 | "supports-color": { 3793 | "version": "5.5.0", 3794 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 3795 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 3796 | "requires": { 3797 | "has-flag": "^3.0.0" 3798 | } 3799 | }, 3800 | "sver-compat": { 3801 | "version": "1.5.0", 3802 | "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", 3803 | "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", 3804 | "dev": true, 3805 | "requires": { 3806 | "es6-iterator": "^2.0.1", 3807 | "es6-symbol": "^3.1.1" 3808 | } 3809 | }, 3810 | "through": { 3811 | "version": "2.3.8", 3812 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 3813 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", 3814 | "dev": true 3815 | }, 3816 | "through2": { 3817 | "version": "2.0.5", 3818 | "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", 3819 | "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", 3820 | "requires": { 3821 | "readable-stream": "~2.3.6", 3822 | "xtend": "~4.0.1" 3823 | } 3824 | }, 3825 | "through2-filter": { 3826 | "version": "3.0.0", 3827 | "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", 3828 | "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", 3829 | "dev": true, 3830 | "requires": { 3831 | "through2": "~2.0.0", 3832 | "xtend": "~4.0.0" 3833 | } 3834 | }, 3835 | "time-stamp": { 3836 | "version": "1.1.0", 3837 | "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", 3838 | "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", 3839 | "dev": true 3840 | }, 3841 | "to-absolute-glob": { 3842 | "version": "2.0.2", 3843 | "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", 3844 | "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", 3845 | "dev": true, 3846 | "requires": { 3847 | "is-absolute": "^1.0.0", 3848 | "is-negated-glob": "^1.0.0" 3849 | } 3850 | }, 3851 | "to-fast-properties": { 3852 | "version": "2.0.0", 3853 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", 3854 | "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" 3855 | }, 3856 | "to-object-path": { 3857 | "version": "0.3.0", 3858 | "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", 3859 | "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", 3860 | "dev": true, 3861 | "requires": { 3862 | "kind-of": "^3.0.2" 3863 | }, 3864 | "dependencies": { 3865 | "kind-of": { 3866 | "version": "3.2.2", 3867 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 3868 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 3869 | "dev": true, 3870 | "requires": { 3871 | "is-buffer": "^1.1.5" 3872 | } 3873 | } 3874 | } 3875 | }, 3876 | "to-regex": { 3877 | "version": "3.0.2", 3878 | "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", 3879 | "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", 3880 | "dev": true, 3881 | "requires": { 3882 | "define-property": "^2.0.2", 3883 | "extend-shallow": "^3.0.2", 3884 | "regex-not": "^1.0.2", 3885 | "safe-regex": "^1.1.0" 3886 | } 3887 | }, 3888 | "to-regex-range": { 3889 | "version": "2.1.1", 3890 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", 3891 | "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", 3892 | "dev": true, 3893 | "requires": { 3894 | "is-number": "^3.0.0", 3895 | "repeat-string": "^1.6.1" 3896 | } 3897 | }, 3898 | "to-through": { 3899 | "version": "2.0.0", 3900 | "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", 3901 | "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", 3902 | "dev": true, 3903 | "requires": { 3904 | "through2": "^2.0.3" 3905 | } 3906 | }, 3907 | "type": { 3908 | "version": "1.2.0", 3909 | "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", 3910 | "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", 3911 | "dev": true 3912 | }, 3913 | "typedarray": { 3914 | "version": "0.0.6", 3915 | "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", 3916 | "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", 3917 | "dev": true 3918 | }, 3919 | "uglify-js": { 3920 | "version": "3.8.0", 3921 | "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.8.0.tgz", 3922 | "integrity": "sha512-ugNSTT8ierCsDHso2jkBHXYrU8Y5/fY2ZUprfrJUiD7YpuFvV4jODLFmb3h4btQjqr5Nh4TX4XtgDfCU1WdioQ==", 3923 | "optional": true, 3924 | "requires": { 3925 | "commander": "~2.20.3", 3926 | "source-map": "~0.6.1" 3927 | } 3928 | }, 3929 | "unc-path-regex": { 3930 | "version": "0.1.2", 3931 | "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", 3932 | "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", 3933 | "dev": true 3934 | }, 3935 | "underscore": { 3936 | "version": "1.9.2", 3937 | "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.2.tgz", 3938 | "integrity": "sha512-D39qtimx0c1fI3ya1Lnhk3E9nONswSKhnffBI0gME9C99fYOkNi04xs8K6pePLhvl1frbDemkaBQ5ikWllR2HQ==", 3939 | "dev": true 3940 | }, 3941 | "undertaker": { 3942 | "version": "1.2.1", 3943 | "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.2.1.tgz", 3944 | "integrity": "sha512-71WxIzDkgYk9ZS+spIB8iZXchFhAdEo2YU8xYqBYJ39DIUIqziK78ftm26eecoIY49X0J2MLhG4hr18Yp6/CMA==", 3945 | "dev": true, 3946 | "requires": { 3947 | "arr-flatten": "^1.0.1", 3948 | "arr-map": "^2.0.0", 3949 | "bach": "^1.0.0", 3950 | "collection-map": "^1.0.0", 3951 | "es6-weak-map": "^2.0.1", 3952 | "last-run": "^1.1.0", 3953 | "object.defaults": "^1.0.0", 3954 | "object.reduce": "^1.0.0", 3955 | "undertaker-registry": "^1.0.0" 3956 | } 3957 | }, 3958 | "undertaker-registry": { 3959 | "version": "1.0.1", 3960 | "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", 3961 | "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=", 3962 | "dev": true 3963 | }, 3964 | "union-value": { 3965 | "version": "1.0.1", 3966 | "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", 3967 | "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", 3968 | "dev": true, 3969 | "requires": { 3970 | "arr-union": "^3.1.0", 3971 | "get-value": "^2.0.6", 3972 | "is-extendable": "^0.1.1", 3973 | "set-value": "^2.0.1" 3974 | } 3975 | }, 3976 | "unique-stream": { 3977 | "version": "2.3.1", 3978 | "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", 3979 | "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", 3980 | "dev": true, 3981 | "requires": { 3982 | "json-stable-stringify-without-jsonify": "^1.0.1", 3983 | "through2-filter": "^3.0.0" 3984 | } 3985 | }, 3986 | "unset-value": { 3987 | "version": "1.0.0", 3988 | "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", 3989 | "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", 3990 | "dev": true, 3991 | "requires": { 3992 | "has-value": "^0.3.1", 3993 | "isobject": "^3.0.0" 3994 | }, 3995 | "dependencies": { 3996 | "has-value": { 3997 | "version": "0.3.1", 3998 | "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", 3999 | "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", 4000 | "dev": true, 4001 | "requires": { 4002 | "get-value": "^2.0.3", 4003 | "has-values": "^0.1.4", 4004 | "isobject": "^2.0.0" 4005 | }, 4006 | "dependencies": { 4007 | "isobject": { 4008 | "version": "2.1.0", 4009 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", 4010 | "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", 4011 | "dev": true, 4012 | "requires": { 4013 | "isarray": "1.0.0" 4014 | } 4015 | } 4016 | } 4017 | }, 4018 | "has-values": { 4019 | "version": "0.1.4", 4020 | "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", 4021 | "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", 4022 | "dev": true 4023 | } 4024 | } 4025 | }, 4026 | "upath": { 4027 | "version": "1.2.0", 4028 | "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", 4029 | "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", 4030 | "dev": true 4031 | }, 4032 | "update-section": { 4033 | "version": "0.3.3", 4034 | "resolved": "https://registry.npmjs.org/update-section/-/update-section-0.3.3.tgz", 4035 | "integrity": "sha1-RY8Xgg03gg3GDiC4bZQ5GwASMVg=", 4036 | "dev": true 4037 | }, 4038 | "urix": { 4039 | "version": "0.1.0", 4040 | "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", 4041 | "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", 4042 | "dev": true 4043 | }, 4044 | "use": { 4045 | "version": "3.1.1", 4046 | "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", 4047 | "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", 4048 | "dev": true 4049 | }, 4050 | "util-deprecate": { 4051 | "version": "1.0.2", 4052 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 4053 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 4054 | }, 4055 | "v8flags": { 4056 | "version": "3.1.3", 4057 | "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.3.tgz", 4058 | "integrity": "sha512-amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w==", 4059 | "dev": true, 4060 | "requires": { 4061 | "homedir-polyfill": "^1.0.1" 4062 | } 4063 | }, 4064 | "validate-npm-package-license": { 4065 | "version": "3.0.4", 4066 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", 4067 | "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", 4068 | "dev": true, 4069 | "requires": { 4070 | "spdx-correct": "^3.0.0", 4071 | "spdx-expression-parse": "^3.0.0" 4072 | } 4073 | }, 4074 | "value-or-function": { 4075 | "version": "3.0.0", 4076 | "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", 4077 | "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=", 4078 | "dev": true 4079 | }, 4080 | "vinyl": { 4081 | "version": "2.2.0", 4082 | "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", 4083 | "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", 4084 | "dev": true, 4085 | "requires": { 4086 | "clone": "^2.1.1", 4087 | "clone-buffer": "^1.0.0", 4088 | "clone-stats": "^1.0.0", 4089 | "cloneable-readable": "^1.0.0", 4090 | "remove-trailing-separator": "^1.0.1", 4091 | "replace-ext": "^1.0.0" 4092 | } 4093 | }, 4094 | "vinyl-fs": { 4095 | "version": "3.0.3", 4096 | "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", 4097 | "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", 4098 | "dev": true, 4099 | "requires": { 4100 | "fs-mkdirp-stream": "^1.0.0", 4101 | "glob-stream": "^6.1.0", 4102 | "graceful-fs": "^4.0.0", 4103 | "is-valid-glob": "^1.0.0", 4104 | "lazystream": "^1.0.0", 4105 | "lead": "^1.0.0", 4106 | "object.assign": "^4.0.4", 4107 | "pumpify": "^1.3.5", 4108 | "readable-stream": "^2.3.3", 4109 | "remove-bom-buffer": "^3.0.0", 4110 | "remove-bom-stream": "^1.2.0", 4111 | "resolve-options": "^1.1.0", 4112 | "through2": "^2.0.0", 4113 | "to-through": "^2.0.0", 4114 | "value-or-function": "^3.0.0", 4115 | "vinyl": "^2.0.0", 4116 | "vinyl-sourcemap": "^1.1.0" 4117 | } 4118 | }, 4119 | "vinyl-sourcemap": { 4120 | "version": "1.1.0", 4121 | "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", 4122 | "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", 4123 | "dev": true, 4124 | "requires": { 4125 | "append-buffer": "^1.0.2", 4126 | "convert-source-map": "^1.5.0", 4127 | "graceful-fs": "^4.1.6", 4128 | "normalize-path": "^2.1.1", 4129 | "now-and-later": "^2.0.0", 4130 | "remove-bom-buffer": "^3.0.0", 4131 | "vinyl": "^2.0.0" 4132 | } 4133 | }, 4134 | "which": { 4135 | "version": "1.3.1", 4136 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 4137 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 4138 | "dev": true, 4139 | "requires": { 4140 | "isexe": "^2.0.0" 4141 | } 4142 | }, 4143 | "which-module": { 4144 | "version": "1.0.0", 4145 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", 4146 | "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", 4147 | "dev": true 4148 | }, 4149 | "wordwrap": { 4150 | "version": "0.0.3", 4151 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", 4152 | "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" 4153 | }, 4154 | "wrap-ansi": { 4155 | "version": "2.1.0", 4156 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", 4157 | "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", 4158 | "dev": true, 4159 | "requires": { 4160 | "string-width": "^1.0.1", 4161 | "strip-ansi": "^3.0.1" 4162 | } 4163 | }, 4164 | "wrappy": { 4165 | "version": "1.0.2", 4166 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 4167 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 4168 | "dev": true 4169 | }, 4170 | "xtend": { 4171 | "version": "4.0.2", 4172 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", 4173 | "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" 4174 | }, 4175 | "y18n": { 4176 | "version": "3.2.1", 4177 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", 4178 | "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", 4179 | "dev": true 4180 | }, 4181 | "yargs": { 4182 | "version": "7.1.0", 4183 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", 4184 | "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", 4185 | "dev": true, 4186 | "requires": { 4187 | "camelcase": "^3.0.0", 4188 | "cliui": "^3.2.0", 4189 | "decamelize": "^1.1.1", 4190 | "get-caller-file": "^1.0.1", 4191 | "os-locale": "^1.4.0", 4192 | "read-pkg-up": "^1.0.1", 4193 | "require-directory": "^2.1.1", 4194 | "require-main-filename": "^1.0.1", 4195 | "set-blocking": "^2.0.0", 4196 | "string-width": "^1.0.2", 4197 | "which-module": "^1.0.0", 4198 | "y18n": "^3.2.1", 4199 | "yargs-parser": "^5.0.0" 4200 | } 4201 | }, 4202 | "yargs-parser": { 4203 | "version": "5.0.0", 4204 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", 4205 | "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", 4206 | "dev": true, 4207 | "requires": { 4208 | "camelcase": "^3.0.0" 4209 | } 4210 | } 4211 | } 4212 | } 4213 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "gulp-react-docs", 3 | "version": "1.0.1", 4 | "description": "A gulp plugin for generating documentation in Markdown format for React components based on their `propTypes`.", 5 | "license": "MIT", 6 | "main": "index.js", 7 | "contributors": [ 8 | "Mars Jullian ", 9 | "Jyri Tuulos ", 10 | "Jessica Grist " 11 | ], 12 | "keywords": [ 13 | "gulp", 14 | "gulpplugin", 15 | "plugin", 16 | "react", 17 | "documentation-generation" 18 | ], 19 | "repository": { 20 | "type": "git", 21 | "url": "git+https://github.com/adroll/gulp-react-docs.git" 22 | }, 23 | "bugs": { 24 | "url": "https://github.com/adroll/gulp-react-docs/issues" 25 | }, 26 | "dependencies": { 27 | "handlebars": "^4.0.5", 28 | "lodash": "^4.17.15", 29 | "react-docgen": "^5.3.0", 30 | "through2": "^2.0.0" 31 | }, 32 | "devDependencies": { 33 | "del": "^2.2.0", 34 | "doctoc": "^0.15.0", 35 | "gulp": "^4.0.2", 36 | "gulp-concat": "^2.6.0", 37 | "gulp-load-plugins": "^1.1.0", 38 | "gulp-tap": "^0.1.3" 39 | }, 40 | "engines": { 41 | "node": ">=10" 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/react-docgen-md.js: -------------------------------------------------------------------------------- 1 | var _ = require('lodash'), 2 | reactDocs = require('react-docgen'), 3 | Handlebars = require('handlebars'); 4 | 5 | /******************************************************** 6 | * Helpers * 7 | ********************************************************/ 8 | 9 | var sortObjectByKey = function(obj){ 10 | return _(obj).keys().sort().reduce(function(memo, key) { 11 | memo[key] = obj[key]; 12 | return memo; 13 | }, {}); 14 | }; 15 | 16 | /******************************************************** 17 | * Prop type partials and handblebars helpers * 18 | ********************************************************/ 19 | 20 | Handlebars.registerPartial('catchAll', '{{name}}'); 21 | 22 | // Basic prop types 23 | Handlebars.registerPartial('func', 'Function'); 24 | Handlebars.registerPartial('array', 'Array'); 25 | Handlebars.registerPartial('object', 'Object'); 26 | Handlebars.registerPartial('string', 'String'); 27 | Handlebars.registerPartial('number', 'Number'); 28 | Handlebars.registerPartial('bool', 'Boolean'); 29 | Handlebars.registerPartial('node', 'ReactNode'); 30 | Handlebars.registerPartial('element', 'ReactElement'); 31 | Handlebars.registerPartial('any', '*'); 32 | Handlebars.registerPartial('custom', '{{raw}} (custom validator)'); 33 | 34 | // composed prop types 35 | Handlebars.registerPartial('arrayOf', '[{{> (whichPartial value) value level=level}}, ...]'); 36 | 37 | Handlebars.registerPartial('shape', '{\n\ 38 | {{#indent level}}\ 39 | {{#each value}}\ 40 | {{@key}}: {{> (whichPartial this) this level=(addLevel ../level)}}\n\ 41 | {{/each}}\n\ 42 | }\ 43 | {{/indent}}'); 44 | 45 | Handlebars.registerPartial('enum', '(\ 46 | {{#each value}}\ 47 | {{this.value}}{{#unless @last}}|{{/unless}}\ 48 | {{/each}}\ 49 | )'); 50 | 51 | Handlebars.registerPartial('union', '(\ 52 | {{#each value}}\ 53 | {{> (whichPartial this) this level=../level}}{{#unless @last}}|{{/unless}}\ 54 | {{/each}}\ 55 | )'); 56 | 57 | // Partial helper. Tells us which partial to use based on the "propType" name 58 | Handlebars.registerHelper('whichPartial', function(type) { 59 | var partials = [ 60 | 'any', 'array', 'arrayOf', 'bool', 'custom', 'element', 'enum', 'func', 61 | 'node', 'number', 'object', 'shape', 'string', 'union' 62 | ]; 63 | return type && _.includes(partials, type.name) ? type.name : 'catchAll'; 64 | }); 65 | 66 | /******************************************************** 67 | * General helpers * 68 | ********************************************************/ 69 | 70 | // math helper 71 | Handlebars.registerHelper('addLevel', function(level) { return level + 1; }); 72 | 73 | // loop helper 74 | Handlebars.registerHelper('indent', function(indentLevel, options) { 75 | var content = options.fn(this), 76 | lines = content.split('\n'), 77 | indentString = ''; 78 | 79 | // build the indent string we need for this indent level 80 | for (var i = 0; i < indentLevel; i++) { 81 | indentString += ' '; 82 | } 83 | 84 | // add then indents to each line 85 | lines = lines.map(function(line) { return line = indentString + line; }); 86 | return lines.join('\n'); 87 | }); 88 | 89 | /******************************************************** 90 | * Top-level handlebars template * 91 | ********************************************************/ 92 | 93 | var reactDocgenTemplate = Handlebars.compile('\ 94 | ## {{componentName}}\n\n\ 95 | {{#if srcLink }}From [`{{srcLink}}`]({{srcLink}})\n\n\{{/if}}\ 96 | {{#if description}}{{{description}}}\n\n{{/if}}\ 97 | {{#each props}}\ 98 | #### {{@key}}\n\n\ 99 | ```js\n\ 100 | {{#if this.required}}// Required\n{{/if}}\ 101 | {{#if this.defaultValue}}// Default: {{{this.defaultValue.value}}}\n{{/if}}\ 102 | {{@key}}: {{> (whichPartial this.type) this.type level=0}}\n\ 103 | ```\n\n\ 104 | {{#if this.description}}{{{this.description}}}\n\n{{/if}}\ 105 | {{/each}}\ 106 |

\n'); 107 | 108 | /******************************************************** 109 | * Documentation generator using react-docgen * 110 | ********************************************************/ 111 | 112 | var reactDocgenMarkdown = function (componentSrc, options) { 113 | try { 114 | const docs = reactDocs.parse(componentSrc); 115 | return reactDocgenTemplate({ 116 | srcLink: options.srcLink, 117 | componentName: options.componentName, 118 | description: docs.description, 119 | props: sortObjectByKey(docs.props) 120 | }); 121 | } catch (error) { 122 | // Fallback for components using multiple exports in the same file 123 | const docsList = reactDocs.parse(componentSrc, reactDocs.resolver.findAllExportedComponentDefinitions); 124 | return docsList.reduce((acc, docs) => acc + reactDocgenTemplate({ 125 | srcLink: options.srcLink, 126 | componentName: options.componentName, 127 | description: docs.description, 128 | props: sortObjectByKey(docs.props) 129 | }) + '\n', ''); 130 | } 131 | }; 132 | 133 | module.exports = reactDocgenMarkdown; 134 | --------------------------------------------------------------------------------