├── .editorconfig ├── .gitignore ├── .travis.yml ├── .verb.md ├── CHANGELOG.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── appveyor.yml ├── index.js ├── package.json ├── test.js ├── test ├── parallel.js └── serial.js ├── utils.js └── yarn.lock /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 2 6 | charset = utf-8 7 | trim_trailing_whitespace = true 8 | insert_final_newline = true 9 | 10 | [*.md] 11 | trim_trailing_whitespace = false 12 | insert_final_newline = false 13 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Always-ignore dirs # 2 | # #################### 3 | _gh_pages 4 | node_modules 5 | jspm_packages 6 | bower_components 7 | components 8 | vendor 9 | build 10 | dest 11 | src 12 | lib-cov 13 | coverage 14 | nbproject 15 | cache 16 | temp 17 | tmp 18 | each-promise 19 | 20 | # Packages # 21 | # ########## 22 | *.7z 23 | *.dmg 24 | *.gz 25 | *.iso 26 | *.jar 27 | *.rar 28 | *.tar 29 | *.zip 30 | 31 | # OS, Logs and databases # 32 | # ######################### 33 | logs 34 | *.pid 35 | *.dat 36 | *.log 37 | *.sql 38 | *.sqlite 39 | *~ 40 | ~* 41 | 42 | # Another files # 43 | # ############### 44 | Icon? 45 | .DS_Store* 46 | Thumbs.db 47 | ehthumbs.db 48 | Desktop.ini 49 | npm-debug.log 50 | .directory 51 | ._* 52 | lcov.info 53 | 54 | # Runtime data 55 | pids 56 | *.pid 57 | *.seed 58 | *.pid.lock 59 | 60 | 61 | # nyc test coverage 62 | .nyc_output 63 | 64 | # Grunt intermediate storage 65 | # see here: http://gruntjs.com/creating-plugins#storing-task-files 66 | .grunt 67 | 68 | # Optional npm cache directory 69 | .npm 70 | 71 | # Optional REPL history 72 | .node_repl_history 73 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | language: node_js 3 | 4 | node_js: 5 | - "node" 6 | - "6" 7 | - "4" 8 | - "0.12" 9 | - "0.10" 10 | 11 | notifications: 12 | email: false 13 | 14 | after_success: bash <(curl -s https://codecov.io/bash) 15 | -------------------------------------------------------------------------------- /.verb.md: -------------------------------------------------------------------------------- 1 |

{%= name %} 2 | npm version 3 | npm version 4 | npm downloads monthly 5 | npm downloads total 6 |
7 | Each Promise - Async control flow library
8 | Asynchronous control flow library 9 |

10 | 11 | > {%= description %} 12 | 13 | [![codeclimate][codeclimate-img]][codeclimate-url] 14 | [![codestyle][standard-img]][standard-url] 15 | [![linux build][travis-img]][travis-url] 16 | [![windows build][appveyor-img]][appveyor-url] 17 | [![codecov][coverage-img]][coverage-url] 18 | [![dependency status][david-img]][david-url] 19 | 20 | ## Table of Contents 21 | 22 | 23 | ## Install 24 | Install with [npm](https://www.npmjs.com/) 25 | 26 | ``` 27 | $ npm install {%= name %} --save 28 | ``` 29 | 30 | or install using [yarn](https://yarnpkg.com) 31 | 32 | ``` 33 | $ yarn add {%= name %} 34 | ``` 35 | 36 | ## Usage 37 | > For more use-cases see the [tests](./test.js) 38 | 39 | ```js 40 | const {%= varname %} = require('{%= name %}') 41 | const arr = [ 42 | 123, 43 | 'foo', 44 | () => 456, 45 | Promise.resolve(567) 46 | false, 47 | () => Promise.resolve(11) 48 | ] 49 | 50 | {%= varname %} 51 | .serial(arr) 52 | .then((res) => { 53 | console.log(res) // => [123, 'foo', 456, 567, false, 11] 54 | }) 55 | ``` 56 | 57 | ## Background 58 | You may think why this exists, what is this for, why not Sindre's microlibs like [p-map][], [p-map-series][], [p-settle][], [p-each-series][] or [p-reduce][]. 59 | 60 | ### Why not "promise fun"? 61 | They do their jobs okey, but in some cases they don't. And that's the my case. I need control over _"fast fail"_ behavior, also known as _"settle"_ or _"bail"_. I need serial and parallel iteration, but parallel with concurrency too. They requires node v4, and uses native Promise constructor. I believe in that we should not use modern things if we don't need them, it is just syntax sugar. This package is written in way that works in node versions below v4 and also you can pass custom Promise constructor through [options.Promise](#options) if you want. 62 | 63 | - node@4 required 64 | - no hooks system 65 | - no settle / fail-fast / bail 66 | - no custom Promise 67 | - no real and meaningful tests 68 | - concurrency control 69 | 70 | **[back to top](#readme)** 71 | 72 | ### Why not separate libs? 73 | Why not separate `.serial` and `.parallel` into own libs like Sindre did? Because the main core logic and difference is absolutely in just 2-3 lines of code and one `if` check. The main thing is that `parallel` uses `for` loop with `concurrency` combination, and `series` does not use loops, but recursive function calls. 74 | 75 | For free you get hooks system. And really it cost nothing. It just able to be done, because the structure of the code and because I need such thing. 76 | 77 | - node v0.10 and above 78 | - custom Promise constructor 79 | - real settle / fail fast 80 | - hook system, through options 81 | - very stable and well tested with real tests 82 | - concurrency control 83 | 84 | **[back to top](#readme)** 85 | 86 | ## API 87 | {%= apidocs('index.js') %} 88 | 89 | ## Options 90 | > You have control over everything, through options. 91 | 92 | * `Promise` **{Function}**: custom Promise constructor to be used, defaults to native 93 | * `mapper` **{Function}**: function to apply to each item in `iterable`, see [item section](#item) 94 | * `settle` **{Boolean}**: if `false` stops after first error (also known as _"fail-fast"_ or _"bail"_), default `true` 95 | * `flat` **{Boolean}**: result array to contain only values, default `true` 96 | * `concurrency` **{Number}**: works only with `.parallel` method, defaults to `iterable` length 97 | * `start` **{Function}**: on start hook, see [hooks section](#hooks) 98 | * `beforeEach` **{Function}**: called before each item in `iterable`, see [hooks section](#hooks) 99 | * `afterEach` **{Function}**: called after each item in `iterable`, see [hooks section](#hooks) 100 | * `finish` **{Function}**: called at the end of iteration, see [hooks section](#hooks) 101 | * `context` **{Object}**: custom context to be passed to each `fn` in `iterable` 102 | * `args` **{Array}**: custom argument(s) to be pass to `fn`, given value is arrayified 103 | 104 | **[back to top](#readme)** 105 | 106 | ## Hooks 107 | > You can do what you want between stages through hooks - start, before each, after each, finish. 108 | 109 | * `start` **{Function}**: called at the start of iteration, before anything 110 | * `beforeEach` **{Function}**: passed with `item, index, arr` arguments 111 | + `item` is an object with `value`, `reason` and `index` properties, see [item section](#item) 112 | + `index` is the same as `item.index` 113 | + `arr` is the iterable object - array or object 114 | * `afterEach` **{Function}**: passed with `item, index, arr` arguments 115 | + `item` is an object with `value`, `reason` and `index` properties, see [item section](#item) 116 | + `index` is the same as `item.index` 117 | + `arr` is the iterable object - array or object 118 | * `finish` **{Function}**: called at the end of iteration, see [finish hook section](#finish-hook) 119 | 120 | **[back to top](#readme)** 121 | 122 | ## Item 123 | > That object is special object, that is passed to `beforeEach` and `afterEach` hooks, also can be found in `result` object if you pass `opts.flat: false` option. And passed to `opts.mapper` function too. 124 | 125 | * `item.value` resolved/rejected promise value, if at `beforeEach` hook it can be `function` 126 | * `item.reason` may not exist if `item.value`, if exist it is standard Error object 127 | * `item.index` is number, order of "executing", not the order that is defined in `iterable` 128 | 129 | **[back to top](#readme)** 130 | 131 | ## Finish hook 132 | > This hooks is called when everything is finished / completed. At the very end of iteration. It is passed with `err, result` arguments where: 133 | 134 | * `err` is an Error object, if `opts.settle: false`, otherwise `null` 135 | * `result` is always an array with values or [item objects](#item) if `opts.flat: false` 136 | 137 | **[back to top](#readme)** 138 | 139 | {% if (verb.related && verb.related.list && verb.related.list.length) { %} 140 | ## Related 141 | {%= related(verb.related.list, {words: 18}) %} 142 | {% } %} 143 | 144 | ## Contributing 145 | Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/{%= repository %}/issues/new). 146 | Please read the [contributing guidelines](CONTRIBUTING.md) for advice on opening issues, pull requests, and coding standards. 147 | If you need some help and can spent some cash, feel free to [contact me at CodeMentor.io](https://www.codementor.io/tunnckocore?utm_source=github&utm_medium=button&utm_term=tunnckocore&utm_campaign=github) too. 148 | 149 | **In short:** If you want to contribute to that project, please follow these things 150 | 151 | 1. Please DO NOT edit [README.md](README.md), [CHANGELOG.md](CHANGELOG.md) and [.verb.md](.verb.md) files. See ["Building docs"](#building-docs) section. 152 | 2. Ensure anything is okey by installing the dependencies and run the tests. See ["Running tests"](#running-tests) section. 153 | 3. Always use `npm run commit` to commit changes instead of `git commit`, because it is interactive and user-friendly. It uses [commitizen][] behind the scenes, which follows Conventional Changelog idealogy. 154 | 4. Do NOT bump the version in package.json. For that we use `npm run release`, which is [standard-version][] and follows Conventional Changelog idealogy. 155 | 156 | Thanks a lot! :) 157 | 158 | ## Building docs 159 | Documentation and that readme is generated using [verb-generate-readme][], which is a [verb][] generator, so you need to install both of them and then run `verb` command like that 160 | 161 | ``` 162 | $ npm install verbose/verb#dev verb-generate-readme --global && verb 163 | ``` 164 | 165 | _Please don't edit the README directly. Any changes to the readme must be made in [.verb.md](.verb.md)._ 166 | 167 | ## Running tests 168 | Clone repository and run the following in that cloned directory 169 | 170 | ``` 171 | $ npm install && npm test 172 | ``` 173 | 174 | ## Author 175 | {%= includeEither('authors', 'author') %} 176 | + [codementor/tunnckoCore](https://codementor.io/tunnckoCore) 177 | 178 | ## Logo 179 | The logo is [Cyclone Emoji](https://cdn.jsdelivr.net/emojione/assets/svg/1f300.svg) from [EmojiOne.com](http://emojione.com/). Released under the [CC BY 4.0](http://emojione.com/licensing/) license. 180 | 181 | ## License 182 | {%= copyright({ start: 2016, linkify: true, prefix: 'Copyright', symbol: '©' }) %} {%= licenseStatement %} 183 | 184 | *** 185 | 186 | {%= include('footer') %} 187 | _Project scaffolded using [charlike][] cli._ 188 | 189 | {%= reflinks(verb.reflinks) %} 190 | 191 | [downloads-url]: https://www.npmjs.com/package/{%= name %} 192 | [downloads-img]: https://img.shields.io/npm/dt/{%= name %}.svg 193 | 194 | [codeclimate-url]: https://codeclimate.com/github/{%= repository %} 195 | [codeclimate-img]: https://img.shields.io/codeclimate/github/{%= repository %}.svg 196 | 197 | [travis-url]: https://travis-ci.org/{%= repository %} 198 | [travis-img]: https://img.shields.io/travis/{%= repository %}/master.svg?label=linux 199 | 200 | [appveyor-url]: https://ci.appveyor.com/project/tunnckoCore/{%= name %} 201 | [appveyor-img]: https://img.shields.io/appveyor/ci/tunnckoCore/{%= name %}/master.svg?label=windows 202 | 203 | [coverage-url]: https://codecov.io/gh/{%= repository %} 204 | [coverage-img]: https://img.shields.io/codecov/c/github/{%= repository %}/master.svg 205 | 206 | [david-url]: https://david-dm.org/{%= repository %} 207 | [david-img]: https://img.shields.io/david/{%= repository %}.svg 208 | 209 | [standard-url]: https://github.com/feross/standard 210 | [standard-img]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. 4 | 5 | 6 | ## [1.0.5](https://github.com/tunnckoCore/each-promise/compare/v1.0.4...v1.0.5) (2017-03-19) 7 | 8 | 9 | ### Bug Fixes 10 | 11 | * **deps:** force update deps, swtich to use "native-or-another" ([4136190](https://github.com/tunnckoCore/each-promise/commit/4136190)) 12 | * **docs:** update docs ([f3696a6](https://github.com/tunnckoCore/each-promise/commit/f3696a6)) 13 | * **update:** cleanup ([9a3edb0](https://github.com/tunnckoCore/each-promise/commit/9a3edb0)) 14 | 15 | 16 | 17 | 18 | ## [1.0.4](https://github.com/tunnckocore/each-promise/compare/v1.0.3...v1.0.4) (2017-03-15) 19 | 20 | 21 | ### Bug Fixes 22 | 23 | * **ci:** disallow failures on node 0.10 and node 0.12 ([29f55fb](https://github.com/tunnckocore/each-promise/commit/29f55fb)), closes [#24](https://github.com/tunnckocore/each-promise/issues/24) 24 | * **completion:** use `redolent` for executing the functions ([60e3b84](https://github.com/tunnckocore/each-promise/commit/60e3b84)) 25 | * **handling:** always completion; handle cases when fn has callback argument ([b2323a7](https://github.com/tunnckocore/each-promise/commit/b2323a7)), closes [#23](https://github.com/tunnckocore/each-promise/issues/23) 26 | * **hooks:** ensure finish hook is called when settle:false ([1de4ccc](https://github.com/tunnckocore/each-promise/commit/1de4ccc)) 27 | * **index.js:** pass options to redolent from promiseEach factory ([9ee5d1a](https://github.com/tunnckocore/each-promise/commit/9ee5d1a)) 28 | * **nyc:** force nyc to 100% coverage ([98ef4a3](https://github.com/tunnckocore/each-promise/commit/98ef4a3)) 29 | * **package.json:** fix lint script to lint exact files ([182865c](https://github.com/tunnckocore/each-promise/commit/182865c)) 30 | * **standard:** bump standard to v9 ([ff11c4e](https://github.com/tunnckocore/each-promise/commit/ff11c4e)) 31 | * **tests:** improve and organize tests - should work on node 0.10\n\nyou must provide a opts.Promise if you are in env that don\'t have native Promise support. If you\ndon\'t provide opts.Promise AND no native Promise support AND invalid iterable is passed to some of\nthe methods then THEY WILL THROW a TypeError with message: no native Promise and no opts.Promise.\n\nNO break-ing! ALL methods returns a promise except ONE VERY specific case when no native promise\nsupport AND invalid iterable ([f810fe4](https://github.com/tunnckocore/each-promise/commit/f810fe4)) 32 | 33 | 34 | 35 | 36 | ## [1.0.3](https://github.com/tunnckocore/each-promise/compare/v1.0.2...v1.0.3) (2017-02-28) 37 | 38 | 39 | ### Bug Fixes 40 | 41 | * **ci:** update travis, add appveyor ([392ba5c](https://github.com/tunnckocore/each-promise/commit/392ba5c)) 42 | * **feature:** use try-catch-core when item is function ([59796cf](https://github.com/tunnckocore/each-promise/commit/59796cf)), closes [#9](https://github.com/tunnckocore/each-promise/issues/9) 43 | * **options:** ensure variadic arguments ([63d98d2](https://github.com/tunnckocore/each-promise/commit/63d98d2)), closes [#19](https://github.com/tunnckocore/each-promise/issues/19) 44 | * **package:** update npm scripts & nyc ([8e827ab](https://github.com/tunnckocore/each-promise/commit/8e827ab)) 45 | * **tests:** ensure synchronous functions throw when in "settle: true" mode ([8069464](https://github.com/tunnckocore/each-promise/commit/8069464)), closes [#3](https://github.com/tunnckocore/each-promise/issues/3) 46 | 47 | 48 | 49 | 50 | ## [1.0.2](https://github.com/tunnckocore/each-promise/compare/v1.0.1...v1.0.2) (2016-11-14) 51 | 52 | 53 | ### Bug Fixes 54 | 55 | * **package:** update deps, use "native-promise" to detect Promise ([4146b05](https://github.com/tunnckocore/each-promise/commit/4146b05)) 56 | 57 | 58 | 59 | 60 | ## [1.0.1](https://github.com/tunnckocore/each-promise/compare/v1.0.0...v1.0.1) (2016-11-13) 61 | 62 | 63 | ### Bug Fixes 64 | 65 | * **readme:** update background section ([4de3ec8](https://github.com/tunnckocore/each-promise/commit/4de3ec8)) 66 | 67 | 68 | 69 | 70 | 71 | ## 1.0.0 - 2016-11-13 72 | - First release 73 | - semantic versioning 74 | - add docs 75 | - add keywords 76 | - implement 77 | 78 | ## 0.0.0 - 2016-11-10 79 | - Initial commit -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to each-promise 2 | 3 | :sparkles: Thanks for your contribution in advance! :tada: 4 | 5 | First and foremost, thank you! We appreciate that you want to contribute to `each-promise`, your time is valuable, and your contributions mean a lot to us. 6 | 7 | ## What does "contributing" mean? 8 | 9 | There are many ways to contribute to an open source project, including: 10 | 11 | - Updating or correcting documentation 12 | - Feature requests 13 | - Submitting bug reports 14 | 15 | But you aren't limited to these things. Use your imagination. If you like a project, and you see something that can or should be improved, then you have an opportunity (but not an obligation) to contribute. 16 | 17 | ### Improve documentation 18 | 19 | As a user of `each-promise` you're the perfect candidate to help us improve our documentation. Typo corrections, error fixes, better explanations, more examples, etc. Open issues for things that could be improved. Anything. Even improvements to this document. 20 | 21 | Use the [`docs` label](https://github.com/tunnckoCore/each-promise/labels/docs) to find suggestions for what we'd love to see more documentation on. 22 | 23 | ### Improve issues 24 | 25 | Some issues are created with missing information, not reproducible, or plain invalid. Help make them easier to resolve. Handling issues takes a lot of time that we could rather spend on fixing bugs and adding features. 26 | 27 | ### Give feedback on issues 28 | 29 | We're always looking for more opinions on discussions in the issue tracker. It's a good opportunity to influence the future direction of `each-promise`. 30 | 31 | The [`question` label](https://github.com/tunnckoCore/each-promise/labels/question%20%2F%20discussion) is a good place to find ongoing discussions. 32 | 33 | 34 | ## Why should I contribute? 35 | 36 | Regardless of the details, being an effective contributor means that you're adding _adding value_ to a project. 37 | 38 | Here are just a few of the advantages of adding value to a project: 39 | 40 | - you gain the appreciation and respect of the project's maintainers and community 41 | - you gain valuable experience 42 | - you get noticed by job recruiters 43 | - you become more attrative to potential employers. 44 | 45 | ## Getting familiarized with a project 46 | 47 | Before you attempt to contribute to a project, take a moment to get familiarized with it. In most cases you can learn all you need to know within a couple of minutes. 48 | 49 | ### Required 50 | 51 | The following items are a pre-requisite for contributing to any project. Avoid creating issues or doing pull requests until you've done all of these things: 52 | 53 | - **Review the readme**: Oftentimes a project readme has links to documentation, advice on creating issues or bug reports, and so on. 54 | - **Read contributing guidelines**: look for a `CONTRIBUTING.md` file and, if one exists, read it in its entirety before creating issues or doing a pull request. Typically this is in the root of the project, but it might be in `.github/CONTRIBUTING.md`. 55 | - **Search issues**: Before creating bug reports, feature requests, or submitting issues of any kind, you should always search for existing issues (closed or open) that address the same thing. 56 | 57 | ### Recommended 58 | 59 | - **Review unit tests** - one of the best ways to get familiarized with a project is through its unit tests. Of course, this depends on the type of project, complexity, test coverage, and so on. But when applicable, test are often a good source of insight. 60 | - **Get familiarized with the code** - If the codebase is small, and you're familiar with the language, take a moment to review the code to see if you find anything that can be improved. If the codebase is large, you might be able to provide domain expertise or fixes for specific areas. 61 | - **Ask questions** - Depending the project type and size, it might be good to start by searching google to find anwers to your questions. Then, check to see if the project uses [gitter](https://gitter.im) or has a [slack](https://slack.com) channel, or something similar. Also visit [stackoverflow](https://stackoverflow.com) and do a search to see if others have already asked the same question. As a last resort, create an issue on the project's GitHub repository. 62 | 63 | 64 | ## Details of Highly Effective Bug Reports 65 | 66 | ### Rationale 67 | 68 | The easier you make it for a maintainter or members of the community to react, the more likely it is for them to react quickly. 69 | 70 | Like you, maintainers have to make decisions about where to spend their time. Not only within a given project, but oftentimes across multiple projects. If you're experiencing a bug and you want to make a report, bug reports that are clearly described and organized are much more likely to get addressed by the maintainers or member of the community. 71 | 72 | Providing these details up front will make everyone happy. If you don't provide these details, maintainers will have to ask you for them, which can be annoying for experienced maintainers who have had to ask for these crucial details many times. 73 | 74 | ### The details 75 | 76 | Always include the following essential details in every bug report: 77 | 78 | 1. **version**: what version of `each-promise` were you using when you experienced the bug? 79 | 2. **description**: clear description of the bug, and minimum steps to reproduce it. 80 | 3. **error messages**: paste any error messages into the issue or a [github gist](https://gist.github.com/), use [gfm code blocks][gfm]. 81 | 4. **code**: paste any code necessary for reproducing the bug and use [gfm code blocks][gfm] to wrap the code. 82 | 5. **title**: use a clear and descriptive title. 83 | 84 | See GitHub's guide to [Creating and highlighting code blocks][gfm] for more details. 85 | 86 | ## Submitting a pull requests 87 | 88 | **Working on your first Pull Request?** 89 | 90 | You can learn how from this *free* video series ["How to Contribute to an Open Source Project on GitHub"][howto-oss-github] 91 | 92 | **Details** 93 | 94 | - Non-trivial changes are often best discussed in an issue first, to prevent you from doing unnecessary work. 95 | - For ambitious tasks, you should try to get your work in front of the community for feedback as soon as possible. Open a pull request as soon as you have done the minimum needed to demonstrate your idea. At this early stage, don't worry about making things perfect, or 100% complete. Add a [WIP] prefix to the title, and describe what you still need to do. This lets reviewers know not to nit-pick small details or point out improvements you already know you need to make. 96 | - New features should be accompanied with tests and documentation. 97 | - Don't include unrelated changes. 98 | - Lint and test immediately after you fork by running `$ npm test`. 99 | - Lint and test before submitting the pull request by running `$ npm test`. 100 | - Make the pull request from a [topic branch](https://github.com/dchelimsky/rspec/wiki/Topic-Branches), not master. 101 | - Use a clear and descriptive title for the pull request and commits. 102 | - Write a convincing description of why we should land your pull request. It's your job to convince us. Answer "why" it's needed and provide use-cases. 103 | - You might be asked to do changes to your pull request. There's never a need to open another pull request. [Just update the existing one.][amending] 104 | 105 | ## Other ways to contribute 106 | 107 | ### Show your support 108 | 109 | Sometimes we find a project we like but just don't have time to contribute. That's okay, there are other ways to show support: 110 | 111 | - Star the project 112 | - Tweet about it 113 | - Tell your friends 114 | 115 | ### Show your appreciation 116 | 117 | Maintainers are people too. You can make someone's day by letting them know you appreciate their work. If you use a library in one of your own projects, let the author know you care: 118 | 119 | - Add a link to the project on your project's readme 120 | - Say "thanks" on twitter 121 | 122 | ## Attribution 123 | 124 | This document is adapted from a few Contributing Guides. It is more general and can apply in most cases. Everyone is free to re-use it or re-adapt it. 125 | 126 | ### Good to read 127 | 128 | - [Awesome Contributing][awesomelist] 129 | - [Idiomatic Contributing][idiomatic] 130 | - [AVA's Contributing Guide][avajs] 131 | - [Amending a commit Guide][amending] 132 | - [Creating and highlighting code blocks][gfm] 133 | - [Contributing to Open Source (GitHub)][os-on-github] 134 | - [How to contribute to Open Source Project (Egghead.io videos)][howto-oss-github] 135 | 136 | ### Authors 137 | 138 | **Charlike Mike Reagent** 139 | 140 | * [github/tunnckoCore](https://github.com/tunnckoCore) 141 | * [twitter/tunnckoCore](http://twitter.com/tunnckoCore) 142 | 143 | ## License 144 | 145 | Released under [Creative Commons](https://creativecommons.org/licenses/by/3.0/). 146 | Copyright © 2016, [Charlike Mike Reagent](http://www.tunnckocore.tk). 147 | 148 | [gfm]: https://help.github.com/articles/creating-and-highlighting-code-blocks/ 149 | [avajs]: https://github.com/avajs/ava/blob/master/contributing.md 150 | [idiomatic]: https://github.com/jonschlinkert/idiomatic-contributing 151 | [awesomelist]: https://github.com/jonschlinkert/awesome-contributing 152 | [amending]: https://github.com/RichardLitt/docs/blob/master/amending-a-commit-guide.md 153 | [os-on-github]: https://guides.github.com/activities/contributing-to-open-source/ 154 | [howto-oss-github]: http://j.mp/how-to-contrib-on-github -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) Charlike Mike Reagent <@tunnckoCore> (http://www.tunnckocore.tk) 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 all 13 | 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 THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

each-promise 2 | npm version 3 | npm version 4 | npm downloads monthly 5 | npm downloads total 6 |
7 | Each Promise - Async control flow library
8 | Asynchronous control flow library 9 |

10 | 11 | > Iterate over promises, promise-returning or async/await functions in series or parallel. Support settle (fail-fast), concurrency (limiting) and hooks system (start, beforeEach, afterEach, finish) 12 | 13 | [![codeclimate][codeclimate-img]][codeclimate-url] 14 | [![codestyle][standard-img]][standard-url] 15 | [![linux build][travis-img]][travis-url] 16 | [![windows build][appveyor-img]][appveyor-url] 17 | [![codecov][coverage-img]][coverage-url] 18 | [![dependency status][david-img]][david-url] 19 | 20 | ## Table of Contents 21 | - [Install](#install) 22 | - [Usage](#usage) 23 | - [Background](#background) 24 | * [Why not "promise fun"?](#why-not-promise-fun) 25 | * [Why not separate libs?](#why-not-separate-libs) 26 | - [API](#api) 27 | * [.serial](#serial) 28 | * [.parallel](#parallel) 29 | * [.each](#each) 30 | - [Options](#options) 31 | - [Hooks](#hooks) 32 | - [Item](#item) 33 | - [Finish hook](#finish-hook) 34 | - [Related](#related) 35 | - [Contributing](#contributing) 36 | - [Building docs](#building-docs) 37 | - [Running tests](#running-tests) 38 | - [Author](#author) 39 | - [Logo](#logo) 40 | - [License](#license) 41 | 42 | _(TOC generated by [verb](https://github.com/verbose/verb) using [markdown-toc](https://github.com/jonschlinkert/markdown-toc))_ 43 | 44 | ## Install 45 | Install with [npm](https://www.npmjs.com/) 46 | 47 | ``` 48 | $ npm install each-promise --save 49 | ``` 50 | 51 | or install using [yarn](https://yarnpkg.com) 52 | 53 | ``` 54 | $ yarn add each-promise 55 | ``` 56 | 57 | ## Usage 58 | > For more use-cases see the [tests](./test.js) 59 | 60 | ```js 61 | const eachPromise = require('each-promise') 62 | const arr = [ 63 | 123, 64 | 'foo', 65 | () => 456, 66 | Promise.resolve(567) 67 | false, 68 | () => Promise.resolve(11) 69 | ] 70 | 71 | eachPromise 72 | .serial(arr) 73 | .then((res) => { 74 | console.log(res) // => [123, 'foo', 456, 567, false, 11] 75 | }) 76 | ``` 77 | 78 | ## Background 79 | You may think why this exists, what is this for, why not Sindre's microlibs like [p-map][], [p-map-series][], [p-settle][], [p-each-series][] or [p-reduce][]. 80 | 81 | ### Why not "promise fun"? 82 | They do their jobs okey, but in some cases they don't. And that's the my case. I need control over _"fast fail"_ behavior, also known as _"settle"_ or _"bail"_. I need serial and parallel iteration, but parallel with concurrency too. They requires node v4, and uses native Promise constructor. I believe in that we should not use modern things if we don't need them, it is just syntax sugar. This package is written in way that works in node versions below v4 and also you can pass custom Promise constructor through [options.Promise](#options) if you want. 83 | 84 | - node@4 required 85 | - no hooks system 86 | - no settle / fail-fast / bail 87 | - no custom Promise 88 | - no real and meaningful tests 89 | - concurrency control 90 | 91 | **[back to top](#readme)** 92 | 93 | ### Why not separate libs? 94 | Why not separate `.serial` and `.parallel` into own libs like Sindre did? Because the main core logic and difference is absolutely in just 2-3 lines of code and one `if` check. The main thing is that `parallel` uses `for` loop with `concurrency` combination, and `series` does not use loops, but recursive function calls. 95 | 96 | For free you get hooks system. And really it cost nothing. It just able to be done, because the structure of the code and because I need such thing. 97 | 98 | - node v0.10 and above 99 | - custom Promise constructor 100 | - real settle / fail fast 101 | - hook system, through options 102 | - very stable and well tested with real tests 103 | - concurrency control 104 | 105 | **[back to top](#readme)** 106 | 107 | ## API 108 | 109 | ### [.serial](index.js#L61) 110 | > Iterate over `iterable` in series (serially) with optional `opts` (see [options section](#options)) and optional `mapper` function (see [item section](#item)). 111 | 112 | **Params** 113 | 114 | * `` **{Array}**: iterable object like array with any type of values 115 | * `[mapper]` **{Function}**: function to apply to each item in `iterable`, see [item section](#item) 116 | * `[opts]` **{Object}**: see [options section](#options) 117 | * `returns` **{Promise}**: Always resolved or rejected promise 118 | 119 | **Example** 120 | 121 | ```js 122 | var delay = require('delay') 123 | var eachPromise = require('each-promise') 124 | 125 | var arr = [ 126 | () => delay(500).then(() => 1), 127 | () => delay(200).then(() => { throw Error('foo') }), 128 | () => delay(10).then(() => 3), 129 | () => delay(350).then(() => 4), 130 | () => delay(150).then(() => 5) 131 | ] 132 | 133 | eachPromise 134 | .serial(arr) 135 | .then((res) => { 136 | console.log(res) // [1, Error: foo, 3, 4, 5] 137 | }) 138 | 139 | // see what happens when parallel 140 | eachPromise 141 | .parallel(arr) 142 | .then((res) => { 143 | console.log(res) // => [3, 5, Error: foo, 4, 1] 144 | }) 145 | 146 | // pass `settle: false` if you want 147 | // to stop after first error 148 | eachPromise 149 | .serial(arr, { settle: false }) 150 | .catch((err) => console.log(err)) // => Error: foo 151 | ``` 152 | 153 | ### [.parallel](index.js#L145) 154 | > Iterate concurrently over `iterable` in parallel (support limiting with `opts.concurrency`) with optional `opts` (see [options section](#options)) and optional `mapper` function (see [item section](#item)). 155 | 156 | **Params** 157 | 158 | * `` **{Array}**: iterable object like array with any type of values 159 | * `[mapper]` **{Function}**: function to apply to each item in `iterable`, see [item section](#item) 160 | * `[opts]` **{Object}**: see [options section](#options) 161 | * `returns` **{Promise}**: Always resolved or rejected promise 162 | 163 | **Example** 164 | 165 | ```js 166 | var eachPromise = require('each-promise') 167 | 168 | var arr = [ 169 | function one () { 170 | return delay(200).then(() => { 171 | return 123 172 | }) 173 | }, 174 | Promise.resolve('foobar'), 175 | function two () { 176 | return delay(1500).then(() => { 177 | return 345 178 | }) 179 | }, 180 | delay(10).then(() => 'zero'), 181 | function three () { 182 | return delay(400).then(() => { 183 | coffffnsole.log(3) // eslint-disable-line no-undef 184 | return 567 185 | }) 186 | }, 187 | 'abc', 188 | function four () { 189 | return delay(250).then(() => { 190 | return 789 191 | }) 192 | }, 193 | function five () { 194 | return delay(100).then(() => { 195 | sasasa // eslint-disable-line no-undef 196 | return 444 197 | }) 198 | }, 199 | function six () { 200 | return delay(80).then(() => { 201 | return 'last' 202 | }) 203 | } 204 | ] 205 | 206 | // does not stop after first error 207 | // pass `settle: false` if you want 208 | eachPromise 209 | .parallel(arr) 210 | .then((res) => { 211 | console.log(res) 212 | // => [ 213 | // 'foobar', 214 | // 'abc', 215 | // 'zero', 216 | // 'last', 217 | // ReferenceError: sasasa is not defined, 218 | // 123, 219 | // 789, 220 | // ReferenceError: coffffnsole is not defined 221 | // 345 222 | // ] 223 | }) 224 | ``` 225 | 226 | ### [.each](index.js#L193) 227 | > Iterate over `iterable` in series or parallel (default), depending on default `opts`. Pass `opts.serial: true` if you want to iterate in series, pass `opts.serial: false` or does not pass anything for parallel. 228 | 229 | **Params** 230 | 231 | * `` **{Array}**: iterable object like array with any type of values 232 | * `[mapper]` **{Function}**: function to apply to each item in `iterable`, see [item section](#item) 233 | * `[opts]` **{Object}**: see [options section](#options) 234 | * `returns` **{Promise}**: Always resolved or rejected promise 235 | 236 | **Example** 237 | 238 | ```js 239 | var delay = require('delay') 240 | var eachPromise = require('each-promise') 241 | 242 | var arr = [ 243 | 123, 244 | function () { 245 | return delay(500).then(() => 456) 246 | }, 247 | Promise.resolve(678), 248 | function () { 249 | return 999 250 | }, 251 | function () { 252 | return delay(200).then(() => 'foo') 253 | } 254 | ] 255 | 256 | eachPromise 257 | .each(arr) 258 | .then(function (res) { 259 | console.log('done', res) // => [123, 678, 999, 'foo', 456] 260 | }) 261 | ``` 262 | 263 | ## Options 264 | > You have control over everything, through options. 265 | 266 | * `Promise` **{Function}**: custom Promise constructor to be used, defaults to native 267 | * `mapper` **{Function}**: function to apply to each item in `iterable`, see [item section](#item) 268 | * `settle` **{Boolean}**: if `false` stops after first error (also known as _"fail-fast"_ or _"bail"_), default `true` 269 | * `flat` **{Boolean}**: result array to contain only values, default `true` 270 | * `concurrency` **{Number}**: works only with `.parallel` method, defaults to `iterable` length 271 | * `start` **{Function}**: on start hook, see [hooks section](#hooks) 272 | * `beforeEach` **{Function}**: called before each item in `iterable`, see [hooks section](#hooks) 273 | * `afterEach` **{Function}**: called after each item in `iterable`, see [hooks section](#hooks) 274 | * `finish` **{Function}**: called at the end of iteration, see [hooks section](#hooks) 275 | * `context` **{Object}**: custom context to be passed to each `fn` in `iterable` 276 | * `args` **{Array}**: custom argument(s) to be pass to `fn`, given value is arrayified 277 | 278 | **[back to top](#readme)** 279 | 280 | ## Hooks 281 | > You can do what you want between stages through hooks - start, before each, after each, finish. 282 | 283 | * `start` **{Function}**: called at the start of iteration, before anything 284 | * `beforeEach` **{Function}**: passed with `item, index, arr` arguments 285 | + `item` is an object with `value`, `reason` and `index` properties, see [item section](#item) 286 | + `index` is the same as `item.index` 287 | + `arr` is the iterable object - array or object 288 | * `afterEach` **{Function}**: passed with `item, index, arr` arguments 289 | + `item` is an object with `value`, `reason` and `index` properties, see [item section](#item) 290 | + `index` is the same as `item.index` 291 | + `arr` is the iterable object - array or object 292 | * `finish` **{Function}**: called at the end of iteration, see [finish hook section](#finish-hook) 293 | 294 | **[back to top](#readme)** 295 | 296 | ## Item 297 | > That object is special object, that is passed to `beforeEach` and `afterEach` hooks, also can be found in `result` object if you pass `opts.flat: false` option. And passed to `opts.mapper` function too. 298 | 299 | * `item.value` resolved/rejected promise value, if at `beforeEach` hook it can be `function` 300 | * `item.reason` may not exist if `item.value`, if exist it is standard Error object 301 | * `item.index` is number, order of "executing", not the order that is defined in `iterable` 302 | 303 | **[back to top](#readme)** 304 | 305 | ## Finish hook 306 | > This hooks is called when everything is finished / completed. At the very end of iteration. It is passed with `err, result` arguments where: 307 | 308 | * `err` is an Error object, if `opts.settle: false`, otherwise `null` 309 | * `result` is always an array with values or [item objects](#item) if `opts.flat: false` 310 | 311 | **[back to top](#readme)** 312 | 313 | ## Related 314 | - [always-done](https://www.npmjs.com/package/always-done): Handle completion and errors with elegance! Support for streams, callbacks, promises, child processes, async/await and sync functions. A… [more](https://github.com/hybridables/always-done#readme) | [homepage](https://github.com/hybridables/always-done#readme "Handle completion and errors with elegance! Support for streams, callbacks, promises, child processes, async/await and sync functions. A drop-in replacement for [async-done][] - pass 100% of its tests plus more") 315 | - [minibase-create-plugin](https://www.npmjs.com/package/minibase-create-plugin): Utility for [minibase][] and [base][] that helps you create plugins | [homepage](https://github.com/node-minibase/minibase-create-plugin#readme "Utility for [minibase][] and [base][] that helps you create plugins") 316 | - [minibase-is-registered](https://www.npmjs.com/package/minibase-is-registered): Plugin for [minibase][] and [base][], that adds `isRegistered` method to your application to detect if plugin is already… [more](https://github.com/node-minibase/minibase-is-registered#readme) | [homepage](https://github.com/node-minibase/minibase-is-registered#readme "Plugin for [minibase][] and [base][], that adds `isRegistered` method to your application to detect if plugin is already registered and returns true or false if named plugin is already registered on the instance.") 317 | - [minibase](https://www.npmjs.com/package/minibase): Minimalist alternative for Base. Build complex APIs with small units called plugins. Works well with most of the… [more](https://github.com/node-minibase/minibase#readme) | [homepage](https://github.com/node-minibase/minibase#readme "Minimalist alternative for Base. Build complex APIs with small units called plugins. Works well with most of the already existing [base][] plugins.") 318 | - [mukla](https://www.npmjs.com/package/mukla): Small, parallel and fast test framework with suppport for async/await, promises, callbacks, streams and observables. Targets and works… [more](https://github.com/tunnckocore/mukla#readme) | [homepage](https://github.com/tunnckocore/mukla#readme "Small, parallel and fast test framework with suppport for async/await, promises, callbacks, streams and observables. Targets and works at node.js v0.10 and above.") 319 | - [try-catch-callback](https://www.npmjs.com/package/try-catch-callback): try/catch block with a callback, used in [try-catch-core][]. Use it when you don't care about asyncness so much… [more](https://github.com/hybridables/try-catch-callback#readme) | [homepage](https://github.com/hybridables/try-catch-callback#readme "try/catch block with a callback, used in [try-catch-core][]. Use it when you don't care about asyncness so much and don't want guarantees. If you care use [try-catch-core][].") 320 | - [try-catch-core](https://www.npmjs.com/package/try-catch-core): Low-level package to handle completion and errors of sync or asynchronous functions, using [once][] and [dezalgo][] libs. Useful… [more](https://github.com/hybridables/try-catch-core#readme) | [homepage](https://github.com/hybridables/try-catch-core#readme "Low-level package to handle completion and errors of sync or asynchronous functions, using [once][] and [dezalgo][] libs. Useful for and used in higher-level libs such as [always-done][] to handle completion of anything.") 321 | 322 | ## Contributing 323 | Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/tunnckoCore/each-promise/issues/new). 324 | Please read the [contributing guidelines](CONTRIBUTING.md) for advice on opening issues, pull requests, and coding standards. 325 | If you need some help and can spent some cash, feel free to [contact me at CodeMentor.io](https://www.codementor.io/tunnckocore?utm_source=github&utm_medium=button&utm_term=tunnckocore&utm_campaign=github) too. 326 | 327 | **In short:** If you want to contribute to that project, please follow these things 328 | 329 | 1. Please DO NOT edit [README.md](README.md), [CHANGELOG.md](CHANGELOG.md) and [.verb.md](.verb.md) files. See ["Building docs"](#building-docs) section. 330 | 2. Ensure anything is okey by installing the dependencies and run the tests. See ["Running tests"](#running-tests) section. 331 | 3. Always use `npm run commit` to commit changes instead of `git commit`, because it is interactive and user-friendly. It uses [commitizen][] behind the scenes, which follows Conventional Changelog idealogy. 332 | 4. Do NOT bump the version in package.json. For that we use `npm run release`, which is [standard-version][] and follows Conventional Changelog idealogy. 333 | 334 | Thanks a lot! :) 335 | 336 | ## Building docs 337 | Documentation and that readme is generated using [verb-generate-readme][], which is a [verb][] generator, so you need to install both of them and then run `verb` command like that 338 | 339 | ``` 340 | $ npm install verbose/verb#dev verb-generate-readme --global && verb 341 | ``` 342 | 343 | _Please don't edit the README directly. Any changes to the readme must be made in [.verb.md](.verb.md)._ 344 | 345 | ## Running tests 346 | Clone repository and run the following in that cloned directory 347 | 348 | ``` 349 | $ npm install && npm test 350 | ``` 351 | 352 | ## Author 353 | **Charlike Mike Reagent** 354 | 355 | + [github/tunnckoCore](https://github.com/tunnckoCore) 356 | + [twitter/tunnckoCore](https://twitter.com/tunnckoCore) 357 | + [codementor/tunnckoCore](https://codementor.io/tunnckoCore) 358 | 359 | ## Logo 360 | The logo is [Cyclone Emoji](https://cdn.jsdelivr.net/emojione/assets/svg/1f300.svg) from [EmojiOne.com](http://emojione.com/). Released under the [CC BY 4.0](http://emojione.com/licensing/) license. 361 | 362 | ## License 363 | Copyright © 2016-2018, [Charlike Mike Reagent](http://www.tunnckocore.tk). Released under the [MIT License](LICENSE). 364 | 365 | *** 366 | 367 | _This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.4.3, on March 19, 2017._ 368 | _Project scaffolded using [charlike][] cli._ 369 | 370 | [always-done]: https://github.com/hybridables/always-done 371 | [async-done]: https://github.com/gulpjs/async-done 372 | [base]: https://github.com/node-base/base 373 | [charlike]: https://github.com/tunnckocore/charlike 374 | [commitizen]: https://github.com/commitizen/cz-cli 375 | [dezalgo]: https://github.com/npm/dezalgo 376 | [minibase]: https://github.com/node-minibase/minibase 377 | [once]: https://github.com/isaacs/once 378 | [p-each-series]: https://github.com/sindresorhus/p-each-series 379 | [p-map-series]: https://github.com/sindresorhus/p-map-series 380 | [p-map]: https://github.com/sindresorhus/p-map 381 | [p-reduce]: https://github.com/sindresorhus/p-reduce 382 | [p-settle]: https://github.com/sindresorhus/p-settle 383 | [standard-version]: https://github.com/conventional-changelog/standard-version 384 | [try-catch-core]: https://github.com/hybridables/try-catch-core 385 | [verb-generate-readme]: https://github.com/verbose/verb-generate-readme 386 | [verb]: https://github.com/verbose/verb 387 | 388 | [downloads-url]: https://www.npmjs.com/package/each-promise 389 | [downloads-img]: https://img.shields.io/npm/dt/each-promise.svg 390 | 391 | [codeclimate-url]: https://codeclimate.com/github/olstenlarck/each-promise 392 | [codeclimate-img]: https://img.shields.io/codeclimate/github/olstenlarck/each-promise.svg 393 | 394 | [travis-url]: https://travis-ci.org/olstenlarck/each-promise 395 | [travis-img]: https://img.shields.io/travis/olstenlarck/each-promise/master.svg?label=linux 396 | 397 | [appveyor-url]: https://ci.appveyor.com/project/tunnckoCore/each-promise 398 | [appveyor-img]: https://img.shields.io/appveyor/ci/tunnckoCore/each-promise/master.svg?label=windows 399 | 400 | [coverage-url]: https://codecov.io/gh/olstenlarck/each-promise 401 | [coverage-img]: https://img.shields.io/codecov/c/github/olstenlarck/each-promise/master.svg 402 | 403 | [david-url]: https://david-dm.org/tunnckoCore/each-promise 404 | [david-img]: https://img.shields.io/david/tunnckoCore/each-promise.svg 405 | 406 | [standard-url]: https://github.com/feross/standard 407 | [standard-img]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg 408 | 409 | -------------------------------------------------------------------------------- /appveyor.yml: -------------------------------------------------------------------------------- 1 | environment: 2 | matrix: 3 | # node.js 4 | - nodejs_version: "7" 5 | - nodejs_version: "6" 6 | - nodejs_version: "4" 7 | - nodejs_version: "0.12" 8 | - nodejs_version: "0.10" 9 | 10 | # Install scripts. (runs after repo cloning) 11 | install: 12 | # Get the latest stable version of Node.js or io.js 13 | - ps: Install-Product node $env:nodejs_version 14 | # install modules 15 | - npm install 16 | 17 | # Post-install test scripts. 18 | test_script: 19 | # Output useful info for debugging. 20 | - node --version 21 | - npm --version 22 | # run tests 23 | - npm test 24 | 25 | # Don't actually build. 26 | build: off 27 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * each-promise 3 | * 4 | * Copyright (c) Charlike Mike Reagent <@tunnckoCore> (http://www.tunnckocore.tk) 5 | * Released under the MIT license. 6 | */ 7 | 8 | 'use strict' 9 | 10 | var Promize = require('native-or-another') 11 | var utils = require('./utils') 12 | var eachPromise = {} 13 | 14 | /** 15 | * > Iterate over `iterable` in series (serially) 16 | * with optional `opts` (see [options section](#options)) 17 | * and optional `mapper` function (see [item section](#item)). 18 | * 19 | * **Example** 20 | * 21 | * ```js 22 | * var delay = require('delay') 23 | * var eachPromise = require('each-promise') 24 | * 25 | * var arr = [ 26 | * () => delay(500).then(() => 1), 27 | * () => delay(200).then(() => { throw Error('foo') }), 28 | * () => delay(10).then(() => 3), 29 | * () => delay(350).then(() => 4), 30 | * () => delay(150).then(() => 5) 31 | * ] 32 | * 33 | * eachPromise 34 | * .serial(arr) 35 | * .then((res) => { 36 | * console.log(res) // [1, Error: foo, 3, 4, 5] 37 | * }) 38 | * 39 | * // see what happens when parallel 40 | * eachPromise 41 | * .parallel(arr) 42 | * .then((res) => { 43 | * console.log(res) // => [3, 5, Error: foo, 4, 1] 44 | * }) 45 | * 46 | * // pass `settle: false` if you want 47 | * // to stop after first error 48 | * eachPromise 49 | * .serial(arr, { settle: false }) 50 | * .catch((err) => console.log(err)) // => Error: foo 51 | * ``` 52 | * 53 | * @name .serial 54 | * @param {Array} `` iterable object like array with any type of values 55 | * @param {Function} `[mapper]` function to apply to each item in `iterable`, see [item section](#item) 56 | * @param {Object} `[opts]` see [options section](#options) 57 | * @return {Promise} Always resolved or rejected promise 58 | * @api public 59 | */ 60 | 61 | eachPromise.serial = function eachSerial (iterable, mapper, opts) { 62 | var options = utils.defaults(mapper, opts) 63 | options = utils.extend(options, { 64 | serial: true 65 | }) 66 | return eachPromise.each(iterable, options.mapper, options) 67 | } 68 | 69 | /** 70 | * > Iterate concurrently over `iterable` in parallel (support limiting with `opts.concurrency`) 71 | * with optional `opts` (see [options section](#options)) 72 | * and optional `mapper` function (see [item section](#item)). 73 | * 74 | * **Example** 75 | * 76 | * ```js 77 | * var eachPromise = require('each-promise') 78 | * 79 | * var arr = [ 80 | * function one () { 81 | * return delay(200).then(() => { 82 | * return 123 83 | * }) 84 | * }, 85 | * Promise.resolve('foobar'), 86 | * function two () { 87 | * return delay(1500).then(() => { 88 | * return 345 89 | * }) 90 | * }, 91 | * delay(10).then(() => 'zero'), 92 | * function three () { 93 | * return delay(400).then(() => { 94 | * coffffnsole.log(3) // eslint-disable-line no-undef 95 | * return 567 96 | * }) 97 | * }, 98 | * 'abc', 99 | * function four () { 100 | * return delay(250).then(() => { 101 | * return 789 102 | * }) 103 | * }, 104 | * function five () { 105 | * return delay(100).then(() => { 106 | * sasasa // eslint-disable-line no-undef 107 | * return 444 108 | * }) 109 | * }, 110 | * function six () { 111 | * return delay(80).then(() => { 112 | * return 'last' 113 | * }) 114 | * } 115 | * ] 116 | * 117 | * // does not stop after first error 118 | * // pass `settle: false` if you want 119 | * eachPromise 120 | * .parallel(arr) 121 | * .then((res) => { 122 | * console.log(res) 123 | * // => [ 124 | * // 'foobar', 125 | * // 'abc', 126 | * // 'zero', 127 | * // 'last', 128 | * // ReferenceError: sasasa is not defined, 129 | * // 123, 130 | * // 789, 131 | * // ReferenceError: coffffnsole is not defined 132 | * // 345 133 | * // ] 134 | * }) 135 | * ``` 136 | * 137 | * @name .parallel 138 | * @param {Array} `` iterable object like array with any type of values 139 | * @param {Function} `[mapper]` function to apply to each item in `iterable`, see [item section](#item) 140 | * @param {Object} `[opts]` see [options section](#options) 141 | * @return {Promise} Always resolved or rejected promise 142 | * @api public 143 | */ 144 | 145 | eachPromise.parallel = function eachParallel (iterable, mapper, opts) { 146 | var options = utils.defaults(mapper, opts) 147 | return eachPromise.each(iterable, options.mapper, utils.extend(options, { 148 | serial: false 149 | })) 150 | } 151 | 152 | /** 153 | * > Iterate over `iterable` in series or parallel (default), depending on 154 | * default `opts`. Pass `opts.serial: true` if you 155 | * want to iterate in series, pass `opts.serial: false` or does not 156 | * pass anything for parallel. 157 | * 158 | * **Example** 159 | * 160 | * ```js 161 | * var delay = require('delay') 162 | * var eachPromise = require('each-promise') 163 | * 164 | * var arr = [ 165 | * 123, 166 | * function () { 167 | * return delay(500).then(() => 456) 168 | * }, 169 | * Promise.resolve(678), 170 | * function () { 171 | * return 999 172 | * }, 173 | * function () { 174 | * return delay(200).then(() => 'foo') 175 | * } 176 | * ] 177 | * 178 | * eachPromise 179 | * .each(arr) 180 | * .then(function (res) { 181 | * console.log('done', res) // => [123, 678, 999, 'foo', 456] 182 | * }) 183 | * ``` 184 | * 185 | * @name .each 186 | * @param {Array} `` iterable object like array with any type of values 187 | * @param {Function} `[mapper]` function to apply to each item in `iterable`, see [item section](#item) 188 | * @param {Object} `[opts]` see [options section](#options) 189 | * @return {Promise} Always resolved or rejected promise 190 | * @api public 191 | */ 192 | 193 | eachPromise.each = function each (iterable, mapper, opts) { 194 | if (typeof iterable !== 'object') { 195 | var err = new TypeError('expect `iterable` to be array, iterable or object') 196 | return Promize.reject(err) 197 | } 198 | var options = utils.defaults(mapper, opts) 199 | return promiseEach(iterable, options) 200 | } 201 | 202 | /** 203 | * > Base iterate logic 204 | * 205 | * @param {Array|Object} `` 206 | * @param {Object} `[opts]` 207 | * @return {Promise} 208 | * @api private 209 | */ 210 | 211 | function promiseEach (iterable, opts) { 212 | return new opts.Promise(function (resolve, reject) { 213 | var results = [] 214 | var arr = Array.isArray(iterable) ? iterable : [] 215 | arr.doneCount = 0 216 | 217 | if (!arr.length && typeof iterable === 'object') { 218 | for (var key in iterable) { 219 | arr.push(iterable[key]) 220 | } 221 | } 222 | 223 | opts.concurrency = opts.serial === false ? opts.concurrency : 1 224 | opts.concurrency = opts.concurrency || arr.length 225 | 226 | opts.start() 227 | if (!opts.serial) { 228 | for (var index = 0; index < opts.concurrency; index++) { 229 | utils.iterator(arr, results)(opts, resolve, reject)(index) 230 | } 231 | return 232 | } 233 | utils.iterator(arr, results)(opts, resolve, reject)(0) 234 | }) 235 | } 236 | 237 | module.exports = eachPromise 238 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "each-promise", 3 | "version": "1.0.5", 4 | "description": "Iterate over promises, promise-returning or async/await functions in series or parallel. Support settle (fail-fast), concurrency (limiting) and hooks system (start, beforeEach, afterEach, finish)", 5 | "repository": "tunnckoCore/each-promise", 6 | "author": "Charlike Mike Reagent <@tunnckoCore> (http://www.tunnckocore.tk)", 7 | "precommit.silent": true, 8 | "main": "index.js", 9 | "license": "MIT", 10 | "scripts": { 11 | "lint": "standard index.js test.js test/serial.js test/parallel.js --fix --verbose", 12 | "test": "npm-run-all -s lint test:*", 13 | "test:api": "nyc --reporter lcov node test.js", 14 | "test:report": "nyc report", 15 | "prerelease": "npm test", 16 | "release": "standard-version --sign --no-verify", 17 | "git": "npm-run-all -s git:*", 18 | "git:add": "git add --all", 19 | "git:cz": "git-cz", 20 | "commit": "npm-run-all -s test git" 21 | }, 22 | "dependencies": { 23 | "extend-shallow": "^2.0.1", 24 | "native-or-another": "^5.0.1", 25 | "redolent": "^2.0.3" 26 | }, 27 | "devDependencies": { 28 | "bluebird": "^3.5.0", 29 | "commitizen": "~2.7.0", 30 | "cz-conventional-changelog": "1.1.5", 31 | "mukla": "^0.4.9", 32 | "npm-run-all": "~3.1.2", 33 | "nyc": "^11.0.0", 34 | "pre-commit": "^1.1.3", 35 | "semver": "^5.3.0", 36 | "standard": "^9.0.0", 37 | "standard-version": "^3.0.0" 38 | }, 39 | "files": [ 40 | "index.js", 41 | "utils.js" 42 | ], 43 | "keywords": [ 44 | "aftereach", 45 | "async", 46 | "asyncawait", 47 | "await", 48 | "bail", 49 | "beforeeach", 50 | "concurrency", 51 | "concurrently", 52 | "each", 53 | "eachlimit", 54 | "eachof", 55 | "eachofseries", 56 | "eachseries", 57 | "failfast", 58 | "finish", 59 | "fun", 60 | "hook", 61 | "hooks", 62 | "hooksystem", 63 | "iterate", 64 | "iteration", 65 | "iterator", 66 | "limit", 67 | "map", 68 | "mapper", 69 | "mapseries", 70 | "parallel", 71 | "prom", 72 | "promise", 73 | "promises", 74 | "serial", 75 | "serially", 76 | "series", 77 | "settle", 78 | "start" 79 | ], 80 | "config": { 81 | "commitizen": { 82 | "path": "./node_modules/cz-conventional-changelog" 83 | } 84 | }, 85 | "verb": { 86 | "run": true, 87 | "toc": { 88 | "render": true, 89 | "method": "preWrite", 90 | "maxdepth": 3 91 | }, 92 | "layout": "empty", 93 | "tasks": [ 94 | "readme" 95 | ], 96 | "related": { 97 | "list": [ 98 | "minibase", 99 | "minibase-is-registered", 100 | "minibase-create-plugin", 101 | "always-done", 102 | "mukla", 103 | "try-catch-callback", 104 | "try-catch-core" 105 | ] 106 | }, 107 | "lint": { 108 | "reflinks": true 109 | }, 110 | "reflinks": [ 111 | "always-done", 112 | "async-done", 113 | "base", 114 | "dezalgo", 115 | "minibase", 116 | "once", 117 | "p-each-series", 118 | "p-map", 119 | "p-map-series", 120 | "p-reduce", 121 | "p-settle", 122 | "try-catch-core", 123 | "charlike", 124 | "commitizen", 125 | "standard-version", 126 | "verb", 127 | "verb-generate-readme" 128 | ] 129 | }, 130 | "nyc": { 131 | "check-coverage": true, 132 | "statements": 100, 133 | "functions": 100, 134 | "branches": 100, 135 | "lines": 100 136 | } 137 | } 138 | -------------------------------------------------------------------------------- /test.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * each-promise 3 | * 4 | * Copyright (c) Charlike Mike Reagent <@tunnckoCore> (http://www.tunnckocore.tk) 5 | * Released under the MIT license. 6 | */ 7 | 8 | /* jshint asi:true */ 9 | 10 | 'use strict' 11 | 12 | require('./test/serial') 13 | require('./test/parallel') 14 | -------------------------------------------------------------------------------- /test/parallel.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * each-promise 3 | * 4 | * Copyright (c) Charlike Mike Reagent <@tunnckoCore> (http://www.tunnckocore.tk) 5 | * Released under the MIT license. 6 | */ 7 | 8 | /* jshint asi:true */ 9 | 10 | 'use strict' 11 | 12 | var test = require('mukla') 13 | var eachPromise = require('../index') 14 | var Bluebird = require('bluebird') 15 | var semver = require('semver') 16 | var extend = require('extend-shallow') 17 | 18 | var delay = function (fn, ms) { 19 | return new Bluebird(function (resolve) { 20 | setTimeout(resolve, ms) 21 | }) 22 | } 23 | 24 | var specialError = new Error('errfoo') 25 | var fixtureTwo = function () { 26 | return [ 27 | delay(900).then(function () { return 1 }), 28 | function () { return delay(770).then(function () { throw specialError }) }, 29 | function () { return delay(620).then(function () { return 3 }) }, 30 | delay(800).then(function () { return 4 }), 31 | function () { return delay(700).then(function () { return 5 }) } 32 | ] 33 | } 34 | 35 | function factory (fnParallel) { 36 | test('should `.parallel` run with concurrency default to `iterable` length', function (done) { 37 | fnParallel(fixtureTwo()).then(function (res) { 38 | test.strictEqual(res.length, 5) 39 | // test.deepEqual(res, [1, 4, specialError, 3, 5]) // may not work 40 | test.strictEqual(res.indexOf(3) > -1, true) 41 | test.strictEqual(res.indexOf(5) > -1, true) 42 | test.strictEqual(res.indexOf(4) > -1, true) 43 | test.strictEqual(res.indexOf(1) > -1, true) 44 | test.strictEqual(res.indexOf(specialError) > -1, true) 45 | // test.strictEqual(res[0], 3) 46 | // test.strictEqual(res[1], 5) 47 | // test.strictEqual(res[2].name, 'Error') 48 | // test.strictEqual(res[2].message, 'errfoo') 49 | // test.strictEqual(res[3], 4) 50 | // test.strictEqual(res[4], 1) 51 | done() 52 | }, done).catch(done) 53 | }) 54 | 55 | test('should `.parallel` stop after first error if settle:false', function (done) { 56 | fnParallel(fixtureTwo(), { settle: false }).catch(function (err) { 57 | test.strictEqual(err !== null, true, 'err should be Error object') 58 | test.strictEqual(err.message, 'errfoo') 59 | test.strictEqual(err.name, 'Error') 60 | done() 61 | }).catch(done) 62 | }) 63 | 64 | test('should `.parallel` with custom concurrenc: 2 and `mapper`', function (done) { 65 | var concurrency = 2 66 | var mapper = function (item) { 67 | return (item.reason && item.reason.message) || item.value 68 | } 69 | fnParallel(fixtureTwo(), { 70 | concurrency: concurrency, 71 | mapper: mapper 72 | }).then(function (res) { 73 | test.strictEqual(res.length, 5) 74 | test.strictEqual(res.indexOf(1) > -1, true) 75 | test.strictEqual(res.indexOf(3) > -1, true) 76 | test.strictEqual(res.indexOf(4) > -1, true) 77 | test.strictEqual(res.indexOf(5) > -1, true) 78 | done() 79 | }, done).catch(done) 80 | }) 81 | } 82 | 83 | if (semver.lt(process.version, '0.11.13')) { 84 | factory(function (val, opts) { 85 | return eachPromise.parallel(val, extend({ 86 | Promise: Bluebird 87 | }, opts)) 88 | }) 89 | } else { 90 | factory(eachPromise.parallel) 91 | } 92 | -------------------------------------------------------------------------------- /test/serial.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * each-promise 3 | * 4 | * Copyright (c) Charlike Mike Reagent <@tunnckoCore> (http://www.tunnckocore.tk) 5 | * Released under the MIT license. 6 | */ 7 | 8 | /* jshint asi:true */ 9 | 10 | 'use strict' 11 | 12 | var test = require('mukla') 13 | var eachPromise = require('../index') 14 | var Bluebird = require('bluebird') 15 | var semver = require('semver') 16 | var extend = require('extend-shallow') 17 | 18 | var delay = function (fn, ms) { 19 | return new Bluebird(function (resolve) { 20 | setTimeout(resolve, ms) 21 | }) 22 | } 23 | 24 | var fixtureOne = [ 25 | 123, 26 | function a () { 27 | return 456 28 | }, 29 | false, 30 | Bluebird.resolve(555), 31 | 'foo', 32 | function b () { 33 | return Bluebird.resolve(666) 34 | }, 35 | 789 36 | ] 37 | 38 | var fixtureTwo = function () { 39 | return [ 40 | delay(900).then(function () { return 1 }), 41 | function () { return delay(770).then(function () { throw new Error('foo') }) }, 42 | function () { return delay(620).then(function () { return 3 }) }, 43 | delay(800).then(function () { return 4 }), 44 | function () { return delay(700).then(function () { return 5 }) } 45 | ] 46 | } 47 | 48 | function factory (fnSerial) { 49 | test('should `.serial` resolve any type of values from iterable', function (done) { 50 | fnSerial(fixtureOne).then(function (res) { 51 | test.strictEqual(res.length, 7) 52 | test.deepEqual(res, [ 53 | 123, 54 | 456, 55 | false, 56 | 555, 57 | 'foo', 58 | 666, 59 | 789 60 | ]) 61 | done() 62 | }, done).catch(done) 63 | }) 64 | 65 | test('should `.serial` not stop after first error if settle:true (default)', function (done) { 66 | fnSerial(fixtureTwo()).then(function (res) { 67 | test.strictEqual(res.length >= 5, true) 68 | test.strictEqual(res[0], 1) 69 | test.strictEqual(res[1].name, 'Error') 70 | test.strictEqual(res[2], 3) 71 | test.strictEqual(res[3], 4) 72 | test.strictEqual(res[4], 5) 73 | done() 74 | }, done).catch(done) 75 | }) 76 | 77 | test('should `.serial` stop after first error if settle:false', function (done) { 78 | fnSerial(fixtureTwo(), { settle: false }).catch(function (err) { 79 | test.strictEqual(err.name, 'Error') 80 | test.strictEqual(err.message, 'foo') 81 | done() 82 | }).catch(done) 83 | }) 84 | 85 | test('should `.serial` hooks be called', function (done) { 86 | var befores = 0 87 | var afters = 0 88 | var called = 0 89 | 90 | fnSerial(fixtureTwo(), { 91 | start: function () { called++ }, 92 | beforeEach: function () { befores++ }, 93 | afterEach: function () { afters++ }, 94 | finish: function () { called++ }, 95 | settle: true 96 | }).then(function () { 97 | test.strictEqual(called, 2) 98 | test.strictEqual(befores, 5, 'should call beforeEach hook for each') 99 | test.strictEqual(afters, 5, 'should call afterEach hook for each') 100 | done() 101 | }, done).catch(done) 102 | }) 103 | 104 | test('should `.serial` accept `iterable` object', function (done) { 105 | var fixtureObj = { 106 | a: 123, 107 | b: Bluebird.reject(new Error('qux')), 108 | c: function () { return 456 }, 109 | d: function () { return Bluebird.resolve(567) }, 110 | e: function () { return new Error('zzz1') }, 111 | f: new Error('zzz2') 112 | } 113 | fnSerial(fixtureObj).then(function (res) { 114 | test.strictEqual(res.length, 6) 115 | test.strictEqual(res[0], 123) 116 | test.strictEqual(res[1].name, 'Error') 117 | test.strictEqual(res[2], 456) 118 | test.strictEqual(res[3], 567) 119 | test.strictEqual(res[4].message, 'zzz1') 120 | test.strictEqual(res[5].message, 'zzz2') 121 | done() 122 | }, done).catch(done) 123 | }) 124 | 125 | test('should `.serial` catch returned rejected promise', function (done) { 126 | fnSerial([ 127 | function () { 128 | return Bluebird.reject(new Error('foo bar qux')) 129 | } 130 | ], { settle: false }).catch(function (err) { 131 | test.strictEqual(err.name, 'Error') 132 | test.strictEqual(err.message, 'foo bar qux') 133 | done() 134 | }).catch(done) 135 | }) 136 | 137 | test('should `.serial` catch thrown errors', function (done) { 138 | var fnThrows = function () { 139 | zaz // eslint-disable-line no-undef, no-unused-expressions 140 | } 141 | 142 | fnSerial([fnThrows], { 143 | settle: false 144 | }).catch(function (err) { 145 | test.strictEqual(/zaz is not defined/.test(err.message), true) 146 | test.strictEqual(err.name, 'ReferenceError') 147 | done() 148 | }).catch(done) 149 | }) 150 | 151 | test('should `.serial` catch returned errors', function (done) { 152 | var fn = function () { return new Error('xyz') } 153 | var options = { settle: false } 154 | 155 | fnSerial([fn], options).catch(function (err) { 156 | test.strictEqual(err.name, 'Error') 157 | test.strictEqual(err.message, 'xyz') 158 | done() 159 | }).catch(done) 160 | }) 161 | 162 | test('should `.serial` not have flat results when `flat: false`', function (done) { 163 | var fns = [ 164 | function () { return 111 }, 165 | function () { return 222 } 166 | ] 167 | fnSerial(fns, { 168 | flat: false 169 | }).then(function (res) { 170 | test.strictEqual(res.length, 2) 171 | test.strictEqual(res[0].value, 111) 172 | test.strictEqual(res[1].value, 222) 173 | done() 174 | }, done).catch(done) 175 | }, true) 176 | 177 | test('should `.serial` catch when sync throw in settle:true mode', function (done) { 178 | fnSerial([ 179 | function () { return 123 }, 180 | function () { throw new Error('sync fn throws') }, 181 | function () { return { a: 'b' } } 182 | ]).then(function (res) { 183 | test.strictEqual(res.length, 3) 184 | test.strictEqual(res[0], 123) 185 | test.strictEqual(res[1].message, 'sync fn throws') 186 | test.strictEqual(res[2].a, 'b') 187 | done() 188 | }, done).catch(done) 189 | }) 190 | 191 | test('should call finish hook if settle:false', function (done) { 192 | var called = 0 193 | var promise = fnSerial(fixtureTwo(), { 194 | settle: false, 195 | finish: function (err) { 196 | test.strictEqual(err instanceof Error, true) 197 | called++ 198 | } 199 | }) 200 | 201 | promise 202 | .catch(function (er) { 203 | test.strictEqual(called, 1) 204 | test.strictEqual(er instanceof Error, true) 205 | done() 206 | }) 207 | }) 208 | } 209 | 210 | if (semver.lt(process.version, '0.12.0')) { 211 | factory(function (val, opts) { 212 | return eachPromise.serial(val, extend({ 213 | Promise: Bluebird 214 | }, opts)) 215 | }) 216 | 217 | test('should on node < 0.12 - return rejected promise if not an `iterable`, but has Promise', function (done) { 218 | eachPromise.serial(123, { Promise: Bluebird }).catch(function (err) { 219 | test.strictEqual(err.name, 'TypeError') 220 | test.strictEqual(err.message, 'expect `iterable` to be array, iterable or object') 221 | done() 222 | }).catch(done) 223 | }) 224 | } else { 225 | factory(eachPromise.serial) 226 | 227 | test('should on node >= 0.12 return rejected promise if `iterable` not valid', function (done) { 228 | eachPromise.serial(123).catch(function (err) { 229 | test.strictEqual(err.name, 'TypeError') 230 | test.strictEqual(err.message, 'expect `iterable` to be array, iterable or object') 231 | done() 232 | }).catch(done) 233 | }) 234 | } 235 | -------------------------------------------------------------------------------- /utils.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * each-promise 3 | * 4 | * Copyright (c) Charlike Mike Reagent <@tunnckoCore> (http://www.tunnckocore.tk) 5 | * Released under the MIT license. 6 | */ 7 | 8 | 'use strict' 9 | 10 | var register = require('native-or-another/register') 11 | var Promize = require('native-or-another') 12 | var extendShallow = require('extend-shallow') 13 | var redolent = require('redolent') 14 | 15 | var utils = {} 16 | utils.extend = extendShallow 17 | utils.promisify = redolent 18 | 19 | utils.defaults = function defaults (mapper, opts) { 20 | var options = null 21 | 22 | if (mapper && typeof mapper === 'object') { 23 | options = mapper 24 | mapper = null 25 | } 26 | 27 | options = utils.extend({}, options, opts) 28 | options = utils.extend({ 29 | Promise: Promize, 30 | settle: true, 31 | flat: true, 32 | serial: false, 33 | concurrency: false, 34 | start: function startHook () {}, 35 | beforeEach: function beforeEachHook () {}, 36 | afterEach: function afterEachHook () {}, 37 | finish: function finishHook () {} 38 | }, options) 39 | options.Promise = register({ Promise: options.Promise, 'global': false }) 40 | 41 | mapper = options.mapper || mapper 42 | options.mapper = typeof mapper === 'function' ? mapper : false 43 | 44 | return options 45 | } 46 | 47 | utils.iterator = function iterator (arr, results) { 48 | return function (options, resolve, reject) { 49 | return function next (index) { 50 | if (index >= arr.length) { 51 | return 52 | } 53 | 54 | var item = arr[index] 55 | options.beforeEach({ value: item, index: index }, index, arr) 56 | 57 | var promise = typeof item === 'function' 58 | ? utils.promisify(item, options)() 59 | : utils.promisify(function () { return item }, options)() 60 | 61 | var handle = utils.handleResults({ 62 | arr: arr, 63 | index: index, 64 | results: results 65 | }, options) 66 | 67 | var onRejected = options.settle === false ? function onrejected (err) { 68 | options.finish(err, results) 69 | reject(err) 70 | } : null 71 | 72 | promise.then(handle('value'), handle('reason')) 73 | .catch(onRejected) 74 | .then(function onresolved () { 75 | if (arr.doneCount++ === arr.length - 1) { 76 | options.finish(null, results) 77 | resolve(results) 78 | return 79 | } 80 | next(index + options.concurrency) 81 | }) 82 | .catch(onRejected) 83 | } 84 | } 85 | } 86 | 87 | utils.handleResults = function handleResults (config, options) { 88 | return function handle (name) { 89 | return function handler (val) { 90 | var ret = {} 91 | 92 | ret[name] = val 93 | ret.index = config.index 94 | 95 | options.afterEach(ret, ret.index, config.arr) 96 | if (typeof options.mapper === 'function') { 97 | config.results.push(options.mapper(ret, ret.index, config.arr)) 98 | return 99 | } 100 | 101 | config.results.push(options.flat ? ret[name] : ret) 102 | if (options.settle === false && ret.reason) { 103 | throw val 104 | } 105 | } 106 | } 107 | } 108 | 109 | /** 110 | * Expose `utils` module 111 | */ 112 | 113 | module.exports = utils 114 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | JSONStream@^1.0.4: 6 | version "1.3.1" 7 | resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.1.tgz#707f761e01dae9e16f1bcf93703b78c70966579a" 8 | dependencies: 9 | jsonparse "^1.2.0" 10 | through ">=2.2.7 <3" 11 | 12 | acorn-jsx@^3.0.0: 13 | version "3.0.1" 14 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" 15 | dependencies: 16 | acorn "^3.0.4" 17 | 18 | acorn@4.0.4: 19 | version "4.0.4" 20 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.4.tgz#17a8d6a7a6c4ef538b814ec9abac2779293bf30a" 21 | 22 | acorn@^3.0.4: 23 | version "3.3.0" 24 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" 25 | 26 | ajv-keywords@^1.0.0: 27 | version "1.5.1" 28 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" 29 | 30 | ajv@^4.7.0: 31 | version "4.11.5" 32 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.5.tgz#b6ee74657b993a01dce44b7944d56f485828d5bd" 33 | dependencies: 34 | co "^4.6.0" 35 | json-stable-stringify "^1.0.1" 36 | 37 | align-text@^0.1.1, align-text@^0.1.3: 38 | version "0.1.4" 39 | resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" 40 | dependencies: 41 | kind-of "^3.0.2" 42 | longest "^1.0.1" 43 | repeat-string "^1.5.2" 44 | 45 | always-done@^1.1.0: 46 | version "1.1.0" 47 | resolved "https://registry.yarnpkg.com/always-done/-/always-done-1.1.0.tgz#870577f506870d962adf4b5c7b9a5ca67e2591f7" 48 | dependencies: 49 | is-child-process "^1.0.2" 50 | is-node-stream "^1.0.0" 51 | is-promise "^2.1.0" 52 | is-typeof-error "^1.1.0" 53 | lazy-cache "^2.0.1" 54 | on-stream-end "^1.0.0" 55 | stream-exhaust "^1.0.1" 56 | try-catch-core "^2.0.2" 57 | 58 | amdefine@>=0.0.4: 59 | version "1.0.1" 60 | resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" 61 | 62 | ansi-escapes@^1.1.0: 63 | version "1.4.0" 64 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" 65 | 66 | ansi-regex@^2.0.0: 67 | version "2.1.1" 68 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 69 | 70 | ansi-styles@^2.1.0, ansi-styles@^2.2.1: 71 | version "2.2.1" 72 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 73 | 74 | any-shell-escape@^0.1.1: 75 | version "0.1.1" 76 | resolved "https://registry.yarnpkg.com/any-shell-escape/-/any-shell-escape-0.1.1.tgz#d55ab972244c71a9a5e1ab0879f30bf110806959" 77 | 78 | append-transform@^0.4.0: 79 | version "0.4.0" 80 | resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" 81 | dependencies: 82 | default-require-extensions "^1.0.0" 83 | 84 | archy@^1.0.0: 85 | version "1.0.0" 86 | resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" 87 | 88 | argparse@^1.0.7: 89 | version "1.0.9" 90 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" 91 | dependencies: 92 | sprintf-js "~1.0.2" 93 | 94 | arr-diff@^2.0.0: 95 | version "2.0.0" 96 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" 97 | dependencies: 98 | arr-flatten "^1.0.1" 99 | 100 | arr-flatten@^1.0.1: 101 | version "1.0.1" 102 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.1.tgz#e5ffe54d45e19f32f216e91eb99c8ce892bb604b" 103 | 104 | arr-includes@^2.0.3: 105 | version "2.0.3" 106 | resolved "https://registry.yarnpkg.com/arr-includes/-/arr-includes-2.0.3.tgz#976d12c405a452e2f043e6ed601c009cab207b20" 107 | dependencies: 108 | arrify "^1.0.1" 109 | 110 | array-differ@^1.0.0: 111 | version "1.0.0" 112 | resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" 113 | 114 | array-filter@~0.0.0: 115 | version "0.0.1" 116 | resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" 117 | 118 | array-find-index@^1.0.1: 119 | version "1.0.2" 120 | resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" 121 | 122 | array-ify@^1.0.0: 123 | version "1.0.0" 124 | resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" 125 | 126 | array-map@~0.0.0: 127 | version "0.0.0" 128 | resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" 129 | 130 | array-reduce@~0.0.0: 131 | version "0.0.0" 132 | resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" 133 | 134 | array-union@^1.0.1: 135 | version "1.0.2" 136 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" 137 | dependencies: 138 | array-uniq "^1.0.1" 139 | 140 | array-uniq@^1.0.1, array-uniq@^1.0.2: 141 | version "1.0.3" 142 | resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" 143 | 144 | array-unique@^0.2.1: 145 | version "0.2.1" 146 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" 147 | 148 | array.prototype.find@^2.0.1: 149 | version "2.0.3" 150 | resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.0.3.tgz#08c3ec33e32ec4bab362a2958e686ae92f59271d" 151 | dependencies: 152 | define-properties "^1.1.2" 153 | es-abstract "^1.7.0" 154 | 155 | arrify@^1.0.0, arrify@^1.0.1: 156 | version "1.0.1" 157 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 158 | 159 | asap@^2.0.0: 160 | version "2.0.5" 161 | resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" 162 | 163 | async@^1.4.0, async@^1.4.2: 164 | version "1.5.2" 165 | resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" 166 | 167 | babel-code-frame@^6.16.0, babel-code-frame@^6.22.0: 168 | version "6.22.0" 169 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4" 170 | dependencies: 171 | chalk "^1.1.0" 172 | esutils "^2.0.2" 173 | js-tokens "^3.0.0" 174 | 175 | babel-generator@^6.18.0: 176 | version "6.24.0" 177 | resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.24.0.tgz#eba270a8cc4ce6e09a61be43465d7c62c1f87c56" 178 | dependencies: 179 | babel-messages "^6.23.0" 180 | babel-runtime "^6.22.0" 181 | babel-types "^6.23.0" 182 | detect-indent "^4.0.0" 183 | jsesc "^1.3.0" 184 | lodash "^4.2.0" 185 | source-map "^0.5.0" 186 | trim-right "^1.0.1" 187 | 188 | babel-messages@^6.23.0: 189 | version "6.23.0" 190 | resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" 191 | dependencies: 192 | babel-runtime "^6.22.0" 193 | 194 | babel-runtime@^6.22.0: 195 | version "6.23.0" 196 | resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b" 197 | dependencies: 198 | core-js "^2.4.0" 199 | regenerator-runtime "^0.10.0" 200 | 201 | babel-template@^6.16.0: 202 | version "6.23.0" 203 | resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.23.0.tgz#04d4f270adbb3aa704a8143ae26faa529238e638" 204 | dependencies: 205 | babel-runtime "^6.22.0" 206 | babel-traverse "^6.23.0" 207 | babel-types "^6.23.0" 208 | babylon "^6.11.0" 209 | lodash "^4.2.0" 210 | 211 | babel-traverse@^6.18.0, babel-traverse@^6.23.0: 212 | version "6.23.1" 213 | resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.23.1.tgz#d3cb59010ecd06a97d81310065f966b699e14f48" 214 | dependencies: 215 | babel-code-frame "^6.22.0" 216 | babel-messages "^6.23.0" 217 | babel-runtime "^6.22.0" 218 | babel-types "^6.23.0" 219 | babylon "^6.15.0" 220 | debug "^2.2.0" 221 | globals "^9.0.0" 222 | invariant "^2.2.0" 223 | lodash "^4.2.0" 224 | 225 | babel-types@^6.18.0, babel-types@^6.23.0: 226 | version "6.23.0" 227 | resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.23.0.tgz#bb17179d7538bad38cd0c9e115d340f77e7e9acf" 228 | dependencies: 229 | babel-runtime "^6.22.0" 230 | esutils "^2.0.2" 231 | lodash "^4.2.0" 232 | to-fast-properties "^1.0.1" 233 | 234 | babylon@^6.11.0, babylon@^6.13.0, babylon@^6.15.0: 235 | version "6.16.1" 236 | resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.16.1.tgz#30c5a22f481978a9e7f8cdfdf496b11d94b404d3" 237 | 238 | balanced-match@^0.4.1: 239 | version "0.4.2" 240 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" 241 | 242 | beeper@^1.0.0: 243 | version "1.1.1" 244 | resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809" 245 | 246 | bluebird@^3.5.0: 247 | version "3.5.0" 248 | resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" 249 | 250 | brace-expansion@^1.0.0: 251 | version "1.1.6" 252 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9" 253 | dependencies: 254 | balanced-match "^0.4.1" 255 | concat-map "0.0.1" 256 | 257 | braces@^1.8.2: 258 | version "1.8.5" 259 | resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" 260 | dependencies: 261 | expand-range "^1.8.1" 262 | preserve "^0.2.0" 263 | repeat-element "^1.1.2" 264 | 265 | buf-compare@^1.0.0: 266 | version "1.0.1" 267 | resolved "https://registry.yarnpkg.com/buf-compare/-/buf-compare-1.0.1.tgz#fef28da8b8113a0a0db4430b0b6467b69730b34a" 268 | 269 | buffer-shims@^1.0.0: 270 | version "1.0.0" 271 | resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" 272 | 273 | builtin-modules@^1.0.0: 274 | version "1.1.1" 275 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" 276 | 277 | caching-transform@^1.0.0: 278 | version "1.0.1" 279 | resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-1.0.1.tgz#6dbdb2f20f8d8fbce79f3e94e9d1742dcdf5c0a1" 280 | dependencies: 281 | md5-hex "^1.2.0" 282 | mkdirp "^0.5.1" 283 | write-file-atomic "^1.1.4" 284 | 285 | caller-path@^0.1.0: 286 | version "0.1.0" 287 | resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" 288 | dependencies: 289 | callsites "^0.2.0" 290 | 291 | callsites@^0.2.0: 292 | version "0.2.0" 293 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" 294 | 295 | camelcase-keys@^2.0.0: 296 | version "2.1.0" 297 | resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" 298 | dependencies: 299 | camelcase "^2.0.0" 300 | map-obj "^1.0.0" 301 | 302 | camelcase@^1.0.2: 303 | version "1.2.1" 304 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" 305 | 306 | camelcase@^2.0.0: 307 | version "2.1.1" 308 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" 309 | 310 | camelcase@^3.0.0: 311 | version "3.0.0" 312 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" 313 | 314 | center-align@^0.1.1: 315 | version "0.1.3" 316 | resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" 317 | dependencies: 318 | align-text "^0.1.3" 319 | lazy-cache "^1.0.3" 320 | 321 | chalk@1.1.1: 322 | version "1.1.1" 323 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.1.tgz#509afb67066e7499f7eb3535c77445772ae2d019" 324 | dependencies: 325 | ansi-styles "^2.1.0" 326 | escape-string-regexp "^1.0.2" 327 | has-ansi "^2.0.0" 328 | strip-ansi "^3.0.0" 329 | supports-color "^2.0.0" 330 | 331 | chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: 332 | version "1.1.3" 333 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 334 | dependencies: 335 | ansi-styles "^2.2.1" 336 | escape-string-regexp "^1.0.2" 337 | has-ansi "^2.0.0" 338 | strip-ansi "^3.0.0" 339 | supports-color "^2.0.0" 340 | 341 | circular-json@^0.3.1: 342 | version "0.3.1" 343 | resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d" 344 | 345 | clean-stacktrace-metadata@^1.0.6: 346 | version "1.0.6" 347 | resolved "https://registry.yarnpkg.com/clean-stacktrace-metadata/-/clean-stacktrace-metadata-1.0.6.tgz#e0fc7b59be42820ba39c46b45280bb445b412a96" 348 | 349 | clean-stacktrace-relative-paths@^1.0.3: 350 | version "1.0.4" 351 | resolved "https://registry.yarnpkg.com/clean-stacktrace-relative-paths/-/clean-stacktrace-relative-paths-1.0.4.tgz#b318ce059abab31f3ce58aa702575d205bf3b9f4" 352 | 353 | clean-stacktrace@^1.1.0: 354 | version "1.1.0" 355 | resolved "https://registry.yarnpkg.com/clean-stacktrace/-/clean-stacktrace-1.1.0.tgz#8b8cdc87f640daaba9c595ab6edb897b63b0ce33" 356 | dependencies: 357 | stack-utils-node-internals "^1.0.1" 358 | 359 | cli-cursor@^1.0.1: 360 | version "1.0.2" 361 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" 362 | dependencies: 363 | restore-cursor "^1.0.1" 364 | 365 | cli-width@^2.0.0: 366 | version "2.1.0" 367 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" 368 | 369 | cliui@^2.1.0: 370 | version "2.1.0" 371 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" 372 | dependencies: 373 | center-align "^0.1.1" 374 | right-align "^0.1.1" 375 | wordwrap "0.0.2" 376 | 377 | cliui@^3.2.0: 378 | version "3.2.0" 379 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" 380 | dependencies: 381 | string-width "^1.0.1" 382 | strip-ansi "^3.0.1" 383 | wrap-ansi "^2.0.0" 384 | 385 | clone-stats@^0.0.1: 386 | version "0.0.1" 387 | resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" 388 | 389 | clone@^0.2.0: 390 | version "0.2.0" 391 | resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f" 392 | 393 | clone@^1.0.0, clone@^1.0.2: 394 | version "1.0.2" 395 | resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149" 396 | 397 | co@^4.6.0: 398 | version "4.6.0" 399 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 400 | 401 | code-point-at@^1.0.0: 402 | version "1.1.0" 403 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 404 | 405 | commitizen@~2.7.0: 406 | version "2.7.6" 407 | resolved "https://registry.yarnpkg.com/commitizen/-/commitizen-2.7.6.tgz#0097e3f8209869b0a268b1c068f6e381e5189c7e" 408 | dependencies: 409 | chalk "1.1.1" 410 | cz-conventional-changelog "1.1.5" 411 | dedent "0.6.0" 412 | detect-indent "4.0.0" 413 | find-node-modules "1.0.1" 414 | find-root "^1.0.0" 415 | glob "7.0.3" 416 | gulp "3.9.1" 417 | gulp-git "1.7.0" 418 | home-or-tmp "2.0.0" 419 | inquirer "0.12.0" 420 | lodash "4.6.1" 421 | minimist "1.2.0" 422 | shelljs "0.5.3" 423 | strip-json-comments "2.0.1" 424 | 425 | common-callback-names@^2.0.1: 426 | version "2.0.1" 427 | resolved "https://registry.yarnpkg.com/common-callback-names/-/common-callback-names-2.0.1.tgz#6f9f07d393e59db2b68e603bf6affda1bb3e07f7" 428 | 429 | commondir@^1.0.1: 430 | version "1.0.1" 431 | resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" 432 | 433 | compare-func@^1.3.1: 434 | version "1.3.2" 435 | resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-1.3.2.tgz#99dd0ba457e1f9bc722b12c08ec33eeab31fa648" 436 | dependencies: 437 | array-ify "^1.0.0" 438 | dot-prop "^3.0.0" 439 | 440 | concat-map@0.0.1: 441 | version "0.0.1" 442 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 443 | 444 | concat-stream@^1.4.10, concat-stream@^1.4.7, concat-stream@^1.5.2: 445 | version "1.6.0" 446 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" 447 | dependencies: 448 | inherits "^2.0.3" 449 | readable-stream "^2.2.2" 450 | typedarray "^0.0.6" 451 | 452 | conventional-changelog-angular@^1.3.3: 453 | version "1.3.3" 454 | resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-1.3.3.tgz#e7ce807a85dd4750e1b417f766045497511e0726" 455 | dependencies: 456 | compare-func "^1.3.1" 457 | github-url-from-git "^1.4.0" 458 | q "^1.4.1" 459 | 460 | conventional-changelog-atom@^0.1.0: 461 | version "0.1.0" 462 | resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-0.1.0.tgz#67a47c66a42b2f8909ef1587c9989ae1de730b92" 463 | dependencies: 464 | q "^1.4.1" 465 | 466 | conventional-changelog-codemirror@^0.1.0: 467 | version "0.1.0" 468 | resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.1.0.tgz#7577a591dbf9b538e7a150a7ee62f65a2872b334" 469 | dependencies: 470 | q "^1.4.1" 471 | 472 | conventional-changelog-core@^1.8.0: 473 | version "1.8.0" 474 | resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-1.8.0.tgz#977848b416caf15fb09f20b12a62d40ef145b957" 475 | dependencies: 476 | conventional-changelog-writer "^1.1.0" 477 | conventional-commits-parser "^1.0.0" 478 | dateformat "^1.0.12" 479 | get-pkg-repo "^1.0.0" 480 | git-raw-commits "^1.2.0" 481 | git-remote-origin-url "^2.0.0" 482 | git-semver-tags "^1.2.0" 483 | lodash "^4.0.0" 484 | normalize-package-data "^2.3.5" 485 | q "^1.4.1" 486 | read-pkg "^1.1.0" 487 | read-pkg-up "^1.0.1" 488 | through2 "^2.0.0" 489 | 490 | conventional-changelog-ember@^0.2.5: 491 | version "0.2.5" 492 | resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-0.2.5.tgz#ce21d5cf83cd5ebe05d23fdf232d8844f4b56a4f" 493 | dependencies: 494 | q "^1.4.1" 495 | 496 | conventional-changelog-eslint@^0.1.0: 497 | version "0.1.0" 498 | resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-0.1.0.tgz#a52411e999e0501ce500b856b0a643d0330907e2" 499 | dependencies: 500 | q "^1.4.1" 501 | 502 | conventional-changelog-express@^0.1.0: 503 | version "0.1.0" 504 | resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-0.1.0.tgz#55c6c841c811962036c037bdbd964a54ae310fce" 505 | dependencies: 506 | q "^1.4.1" 507 | 508 | conventional-changelog-jquery@^0.1.0: 509 | version "0.1.0" 510 | resolved "https://registry.yarnpkg.com/conventional-changelog-jquery/-/conventional-changelog-jquery-0.1.0.tgz#0208397162e3846986e71273b6c79c5b5f80f510" 511 | dependencies: 512 | q "^1.4.1" 513 | 514 | conventional-changelog-jscs@^0.1.0: 515 | version "0.1.0" 516 | resolved "https://registry.yarnpkg.com/conventional-changelog-jscs/-/conventional-changelog-jscs-0.1.0.tgz#0479eb443cc7d72c58bf0bcf0ef1d444a92f0e5c" 517 | dependencies: 518 | q "^1.4.1" 519 | 520 | conventional-changelog-jshint@^0.1.0: 521 | version "0.1.0" 522 | resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-0.1.0.tgz#00cab8e9a3317487abd94c4d84671342918d2a07" 523 | dependencies: 524 | compare-func "^1.3.1" 525 | q "^1.4.1" 526 | 527 | conventional-changelog-writer@^1.1.0: 528 | version "1.4.1" 529 | resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-1.4.1.tgz#3f4cb4d003ebb56989d30d345893b52a43639c8e" 530 | dependencies: 531 | compare-func "^1.3.1" 532 | conventional-commits-filter "^1.0.0" 533 | dateformat "^1.0.11" 534 | handlebars "^4.0.2" 535 | json-stringify-safe "^5.0.1" 536 | lodash "^4.0.0" 537 | meow "^3.3.0" 538 | semver "^5.0.1" 539 | split "^1.0.0" 540 | through2 "^2.0.0" 541 | 542 | conventional-changelog@^1.1.0: 543 | version "1.1.3" 544 | resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-1.1.3.tgz#26283078ac38c094df2af1604b0a46bbc0165c4d" 545 | dependencies: 546 | conventional-changelog-angular "^1.3.3" 547 | conventional-changelog-atom "^0.1.0" 548 | conventional-changelog-codemirror "^0.1.0" 549 | conventional-changelog-core "^1.8.0" 550 | conventional-changelog-ember "^0.2.5" 551 | conventional-changelog-eslint "^0.1.0" 552 | conventional-changelog-express "^0.1.0" 553 | conventional-changelog-jquery "^0.1.0" 554 | conventional-changelog-jscs "^0.1.0" 555 | conventional-changelog-jshint "^0.1.0" 556 | 557 | conventional-commits-filter@^1.0.0: 558 | version "1.0.0" 559 | resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-1.0.0.tgz#6fc2a659372bc3f2339cf9ffff7e1b0344b93039" 560 | dependencies: 561 | is-subset "^0.1.1" 562 | modify-values "^1.0.0" 563 | 564 | conventional-commits-parser@^1.0.0, conventional-commits-parser@^1.0.1: 565 | version "1.3.0" 566 | resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-1.3.0.tgz#e327b53194e1a7ad5dc63479ee9099a52b024865" 567 | dependencies: 568 | JSONStream "^1.0.4" 569 | is-text-path "^1.0.0" 570 | lodash "^4.2.1" 571 | meow "^3.3.0" 572 | split2 "^2.0.0" 573 | through2 "^2.0.0" 574 | trim-off-newlines "^1.0.0" 575 | 576 | conventional-recommended-bump@^0.3.0: 577 | version "0.3.0" 578 | resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-0.3.0.tgz#e839de8f57cbb43445c8b4967401de0644c425d8" 579 | dependencies: 580 | concat-stream "^1.4.10" 581 | conventional-commits-filter "^1.0.0" 582 | conventional-commits-parser "^1.0.1" 583 | git-latest-semver-tag "^1.0.0" 584 | git-raw-commits "^1.0.0" 585 | meow "^3.3.0" 586 | object-assign "^4.0.1" 587 | 588 | convert-source-map@^1.3.0: 589 | version "1.4.0" 590 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.4.0.tgz#e3dad195bf61bfe13a7a3c73e9876ec14a0268f3" 591 | 592 | core-assert@^0.2.1: 593 | version "0.2.1" 594 | resolved "https://registry.yarnpkg.com/core-assert/-/core-assert-0.2.1.tgz#f85e2cf9bfed28f773cc8b3fa5c5b69bdc02fe3f" 595 | dependencies: 596 | buf-compare "^1.0.0" 597 | is-error "^2.2.0" 598 | 599 | core-js@^2.4.0: 600 | version "2.4.1" 601 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" 602 | 603 | core-util-is@~1.0.0: 604 | version "1.0.2" 605 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 606 | 607 | cross-spawn@^4, cross-spawn@^4.0.0: 608 | version "4.0.2" 609 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" 610 | dependencies: 611 | lru-cache "^4.0.1" 612 | which "^1.2.9" 613 | 614 | cross-spawn@^5.0.1: 615 | version "5.1.0" 616 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" 617 | dependencies: 618 | lru-cache "^4.0.1" 619 | shebang-command "^1.2.0" 620 | which "^1.2.9" 621 | 622 | currently-unhandled@^0.4.1: 623 | version "0.4.1" 624 | resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" 625 | dependencies: 626 | array-find-index "^1.0.1" 627 | 628 | cz-conventional-changelog@1.1.5: 629 | version "1.1.5" 630 | resolved "https://registry.yarnpkg.com/cz-conventional-changelog/-/cz-conventional-changelog-1.1.5.tgz#0a4d1550c4e2fb6a3aed8f6cd858c21760e119b8" 631 | dependencies: 632 | word-wrap "^1.0.3" 633 | 634 | d@1: 635 | version "1.0.0" 636 | resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" 637 | dependencies: 638 | es5-ext "^0.10.9" 639 | 640 | dargs@^4.0.1: 641 | version "4.1.0" 642 | resolved "https://registry.yarnpkg.com/dargs/-/dargs-4.1.0.tgz#03a9dbb4b5c2f139bf14ae53f0b8a2a6a86f4e17" 643 | dependencies: 644 | number-is-nan "^1.0.0" 645 | 646 | dateformat@^1.0.11, dateformat@^1.0.12: 647 | version "1.0.12" 648 | resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9" 649 | dependencies: 650 | get-stdin "^4.0.1" 651 | meow "^3.3.0" 652 | 653 | dateformat@^2.0.0: 654 | version "2.0.0" 655 | resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.0.0.tgz#2743e3abb5c3fc2462e527dca445e04e9f4dee17" 656 | 657 | debug-log@^1.0.0, debug-log@^1.0.1: 658 | version "1.0.1" 659 | resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f" 660 | 661 | debug@^2.1.1, debug@^2.2.0: 662 | version "2.6.3" 663 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.3.tgz#0f7eb8c30965ec08c72accfa0130c8b79984141d" 664 | dependencies: 665 | ms "0.7.2" 666 | 667 | decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: 668 | version "1.2.0" 669 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 670 | 671 | dedent@0.6.0: 672 | version "0.6.0" 673 | resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.6.0.tgz#0e6da8f0ce52838ef5cec5c8f9396b0c1b64a3cb" 674 | 675 | deep-is@~0.1.3: 676 | version "0.1.3" 677 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 678 | 679 | default-require-extensions@^1.0.0: 680 | version "1.0.0" 681 | resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" 682 | dependencies: 683 | strip-bom "^2.0.0" 684 | 685 | defaults@^1.0.0: 686 | version "1.0.3" 687 | resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" 688 | dependencies: 689 | clone "^1.0.2" 690 | 691 | define-properties@^1.1.2: 692 | version "1.1.2" 693 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" 694 | dependencies: 695 | foreach "^2.0.5" 696 | object-keys "^1.0.8" 697 | 698 | deglob@^2.1.0: 699 | version "2.1.0" 700 | resolved "https://registry.yarnpkg.com/deglob/-/deglob-2.1.0.tgz#4d44abe16ef32c779b4972bd141a80325029a14a" 701 | dependencies: 702 | find-root "^1.0.0" 703 | glob "^7.0.5" 704 | ignore "^3.0.9" 705 | pkg-config "^1.1.0" 706 | run-parallel "^1.1.2" 707 | uniq "^1.0.1" 708 | 709 | del@^2.0.2: 710 | version "2.2.2" 711 | resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" 712 | dependencies: 713 | globby "^5.0.0" 714 | is-path-cwd "^1.0.0" 715 | is-path-in-cwd "^1.0.0" 716 | object-assign "^4.0.1" 717 | pify "^2.0.0" 718 | pinkie-promise "^2.0.0" 719 | rimraf "^2.2.8" 720 | 721 | deprecated@^0.0.1: 722 | version "0.0.1" 723 | resolved "https://registry.yarnpkg.com/deprecated/-/deprecated-0.0.1.tgz#f9c9af5464afa1e7a971458a8bdef2aa94d5bb19" 724 | 725 | detect-file@^0.1.0: 726 | version "0.1.0" 727 | resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-0.1.0.tgz#4935dedfd9488648e006b0129566e9386711ea63" 728 | dependencies: 729 | fs-exists-sync "^0.1.0" 730 | 731 | detect-indent@4.0.0, detect-indent@^4.0.0: 732 | version "4.0.0" 733 | resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" 734 | dependencies: 735 | repeating "^2.0.0" 736 | 737 | dezalgo@^1.0.3: 738 | version "1.0.3" 739 | resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" 740 | dependencies: 741 | asap "^2.0.0" 742 | wrappy "1" 743 | 744 | doctrine@^1.2.2: 745 | version "1.5.0" 746 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" 747 | dependencies: 748 | esutils "^2.0.2" 749 | isarray "^1.0.0" 750 | 751 | doctrine@^2.0.0: 752 | version "2.0.0" 753 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63" 754 | dependencies: 755 | esutils "^2.0.2" 756 | isarray "^1.0.0" 757 | 758 | dot-prop@^3.0.0: 759 | version "3.0.0" 760 | resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177" 761 | dependencies: 762 | is-obj "^1.0.0" 763 | 764 | duplexer2@0.0.2: 765 | version "0.0.2" 766 | resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" 767 | dependencies: 768 | readable-stream "~1.1.9" 769 | 770 | duplexer@~0.1.1: 771 | version "0.1.1" 772 | resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" 773 | 774 | end-of-stream@~0.1.5: 775 | version "0.1.5" 776 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-0.1.5.tgz#8e177206c3c80837d85632e8b9359dfe8b2f6eaf" 777 | dependencies: 778 | once "~1.3.0" 779 | 780 | error-ex@^1.2.0: 781 | version "1.3.1" 782 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" 783 | dependencies: 784 | is-arrayish "^0.2.1" 785 | 786 | error-symbol@^0.1.0: 787 | version "0.1.0" 788 | resolved "https://registry.yarnpkg.com/error-symbol/-/error-symbol-0.1.0.tgz#0a4dae37d600d15a29ba453d8ef920f1844333f6" 789 | 790 | es-abstract@^1.4.3, es-abstract@^1.7.0: 791 | version "1.7.0" 792 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.7.0.tgz#dfade774e01bfcd97f96180298c449c8623fb94c" 793 | dependencies: 794 | es-to-primitive "^1.1.1" 795 | function-bind "^1.1.0" 796 | is-callable "^1.1.3" 797 | is-regex "^1.0.3" 798 | 799 | es-to-primitive@^1.1.1: 800 | version "1.1.1" 801 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" 802 | dependencies: 803 | is-callable "^1.1.1" 804 | is-date-object "^1.0.1" 805 | is-symbol "^1.0.1" 806 | 807 | es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14: 808 | version "0.10.14" 809 | resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.14.tgz#625bc9ab9cac0f6fb9dc271525823d1800b3d360" 810 | dependencies: 811 | es6-iterator "2" 812 | es6-symbol "~3.1" 813 | 814 | es6-iterator@2, es6-iterator@^2.0.1, es6-iterator@~2.0.1: 815 | version "2.0.1" 816 | resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.1.tgz#8e319c9f0453bf575d374940a655920e59ca5512" 817 | dependencies: 818 | d "1" 819 | es5-ext "^0.10.14" 820 | es6-symbol "^3.1" 821 | 822 | es6-map@^0.1.3: 823 | version "0.1.5" 824 | resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" 825 | dependencies: 826 | d "1" 827 | es5-ext "~0.10.14" 828 | es6-iterator "~2.0.1" 829 | es6-set "~0.1.5" 830 | es6-symbol "~3.1.1" 831 | event-emitter "~0.3.5" 832 | 833 | es6-set@~0.1.5: 834 | version "0.1.5" 835 | resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" 836 | dependencies: 837 | d "1" 838 | es5-ext "~0.10.14" 839 | es6-iterator "~2.0.1" 840 | es6-symbol "3.1.1" 841 | event-emitter "~0.3.5" 842 | 843 | es6-symbol@3.1.1, es6-symbol@^3.1, es6-symbol@^3.1.1, es6-symbol@~3.1, es6-symbol@~3.1.1: 844 | version "3.1.1" 845 | resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" 846 | dependencies: 847 | d "1" 848 | es5-ext "~0.10.14" 849 | 850 | es6-weak-map@^2.0.1: 851 | version "2.0.2" 852 | resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" 853 | dependencies: 854 | d "1" 855 | es5-ext "^0.10.14" 856 | es6-iterator "^2.0.1" 857 | es6-symbol "^3.1.1" 858 | 859 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: 860 | version "1.0.5" 861 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 862 | 863 | escope@^3.6.0: 864 | version "3.6.0" 865 | resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" 866 | dependencies: 867 | es6-map "^0.1.3" 868 | es6-weak-map "^2.0.1" 869 | esrecurse "^4.1.0" 870 | estraverse "^4.1.1" 871 | 872 | eslint-config-standard-jsx@3.3.0: 873 | version "3.3.0" 874 | resolved "https://registry.yarnpkg.com/eslint-config-standard-jsx/-/eslint-config-standard-jsx-3.3.0.tgz#cab0801a15a360bf63facb97ab22fbdd88d8a5e0" 875 | 876 | eslint-config-standard@7.1.0: 877 | version "7.1.0" 878 | resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-7.1.0.tgz#47e769ea0739f5b2d5693b1a501c21c9650fafcf" 879 | 880 | eslint-plugin-promise@~3.4.0: 881 | version "3.4.2" 882 | resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-3.4.2.tgz#1be2793eafe2d18b5b123b8136c269f804fe7122" 883 | 884 | eslint-plugin-react@~6.9.0: 885 | version "6.9.0" 886 | resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-6.9.0.tgz#54c2e9906b76f9d10142030bdc34e9d6840a0bb2" 887 | dependencies: 888 | array.prototype.find "^2.0.1" 889 | doctrine "^1.2.2" 890 | jsx-ast-utils "^1.3.4" 891 | 892 | eslint-plugin-standard@~2.0.1: 893 | version "2.0.1" 894 | resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-2.0.1.tgz#3589699ff9c917f2c25f76a916687f641c369ff3" 895 | 896 | eslint@~3.18.0: 897 | version "3.18.0" 898 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.18.0.tgz#647e985c4ae71502d20ac62c109f66d5104c8a4b" 899 | dependencies: 900 | babel-code-frame "^6.16.0" 901 | chalk "^1.1.3" 902 | concat-stream "^1.5.2" 903 | debug "^2.1.1" 904 | doctrine "^2.0.0" 905 | escope "^3.6.0" 906 | espree "^3.4.0" 907 | esquery "^1.0.0" 908 | estraverse "^4.2.0" 909 | esutils "^2.0.2" 910 | file-entry-cache "^2.0.0" 911 | glob "^7.0.3" 912 | globals "^9.14.0" 913 | ignore "^3.2.0" 914 | imurmurhash "^0.1.4" 915 | inquirer "^0.12.0" 916 | is-my-json-valid "^2.10.0" 917 | is-resolvable "^1.0.0" 918 | js-yaml "^3.5.1" 919 | json-stable-stringify "^1.0.0" 920 | levn "^0.3.0" 921 | lodash "^4.0.0" 922 | mkdirp "^0.5.0" 923 | natural-compare "^1.4.0" 924 | optionator "^0.8.2" 925 | path-is-inside "^1.0.1" 926 | pluralize "^1.2.1" 927 | progress "^1.1.8" 928 | require-uncached "^1.0.2" 929 | shelljs "^0.7.5" 930 | strip-bom "^3.0.0" 931 | strip-json-comments "~2.0.1" 932 | table "^3.7.8" 933 | text-table "~0.2.0" 934 | user-home "^2.0.0" 935 | 936 | espree@^3.4.0: 937 | version "3.4.0" 938 | resolved "https://registry.yarnpkg.com/espree/-/espree-3.4.0.tgz#41656fa5628e042878025ef467e78f125cb86e1d" 939 | dependencies: 940 | acorn "4.0.4" 941 | acorn-jsx "^3.0.0" 942 | 943 | esprima@^3.1.1: 944 | version "3.1.3" 945 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" 946 | 947 | esquery@^1.0.0: 948 | version "1.0.0" 949 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" 950 | dependencies: 951 | estraverse "^4.0.0" 952 | 953 | esrecurse@^4.1.0: 954 | version "4.1.0" 955 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220" 956 | dependencies: 957 | estraverse "~4.1.0" 958 | object-assign "^4.0.1" 959 | 960 | estraverse@^4.0.0, estraverse@^4.1.1, estraverse@^4.2.0: 961 | version "4.2.0" 962 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" 963 | 964 | estraverse@~4.1.0: 965 | version "4.1.1" 966 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2" 967 | 968 | esutils@^2.0.2: 969 | version "2.0.2" 970 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 971 | 972 | event-emitter@~0.3.5: 973 | version "0.3.5" 974 | resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" 975 | dependencies: 976 | d "1" 977 | es5-ext "~0.10.14" 978 | 979 | event-stream@~3.3.0: 980 | version "3.3.4" 981 | resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" 982 | dependencies: 983 | duplexer "~0.1.1" 984 | from "~0" 985 | map-stream "~0.1.0" 986 | pause-stream "0.0.11" 987 | split "0.3" 988 | stream-combiner "~0.0.4" 989 | through "~2.3.1" 990 | 991 | exit-hook@^1.0.0: 992 | version "1.1.1" 993 | resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" 994 | 995 | expand-brackets@^0.1.4: 996 | version "0.1.5" 997 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" 998 | dependencies: 999 | is-posix-bracket "^0.1.0" 1000 | 1001 | expand-range@^1.8.1: 1002 | version "1.8.2" 1003 | resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" 1004 | dependencies: 1005 | fill-range "^2.1.0" 1006 | 1007 | expand-tilde@^1.2.1, expand-tilde@^1.2.2: 1008 | version "1.2.2" 1009 | resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-1.2.2.tgz#0b81eba897e5a3d31d1c3d102f8f01441e559449" 1010 | dependencies: 1011 | os-homedir "^1.0.1" 1012 | 1013 | extend-shallow@^2.0.1: 1014 | version "2.0.1" 1015 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" 1016 | dependencies: 1017 | is-extendable "^0.1.0" 1018 | 1019 | extend@^3.0.0: 1020 | version "3.0.0" 1021 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" 1022 | 1023 | extglob@^0.3.1: 1024 | version "0.3.2" 1025 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" 1026 | dependencies: 1027 | is-extglob "^1.0.0" 1028 | 1029 | fancy-log@^1.1.0: 1030 | version "1.3.0" 1031 | resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.0.tgz#45be17d02bb9917d60ccffd4995c999e6c8c9948" 1032 | dependencies: 1033 | chalk "^1.1.1" 1034 | time-stamp "^1.0.0" 1035 | 1036 | fast-levenshtein@~2.0.4: 1037 | version "2.0.6" 1038 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 1039 | 1040 | figures@^1.3.5, figures@^1.5.0: 1041 | version "1.7.0" 1042 | resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" 1043 | dependencies: 1044 | escape-string-regexp "^1.0.5" 1045 | object-assign "^4.1.0" 1046 | 1047 | file-entry-cache@^2.0.0: 1048 | version "2.0.0" 1049 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" 1050 | dependencies: 1051 | flat-cache "^1.2.1" 1052 | object-assign "^4.0.1" 1053 | 1054 | filename-regex@^2.0.0: 1055 | version "2.0.0" 1056 | resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775" 1057 | 1058 | fill-range@^2.1.0: 1059 | version "2.2.3" 1060 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" 1061 | dependencies: 1062 | is-number "^2.1.0" 1063 | isobject "^2.0.0" 1064 | randomatic "^1.1.3" 1065 | repeat-element "^1.1.2" 1066 | repeat-string "^1.5.2" 1067 | 1068 | find-cache-dir@^0.1.1: 1069 | version "0.1.1" 1070 | resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" 1071 | dependencies: 1072 | commondir "^1.0.1" 1073 | mkdirp "^0.5.1" 1074 | pkg-dir "^1.0.0" 1075 | 1076 | find-callsite@^1.1.3: 1077 | version "1.1.3" 1078 | resolved "https://registry.yarnpkg.com/find-callsite/-/find-callsite-1.1.3.tgz#894e8736ba89b6504bb03f64063d927b5f640aa0" 1079 | dependencies: 1080 | clean-stacktrace-relative-paths "^1.0.3" 1081 | extend-shallow "^2.0.1" 1082 | 1083 | find-index@^0.1.1: 1084 | version "0.1.1" 1085 | resolved "https://registry.yarnpkg.com/find-index/-/find-index-0.1.1.tgz#675d358b2ca3892d795a1ab47232f8b6e2e0dde4" 1086 | 1087 | find-node-modules@1.0.1: 1088 | version "1.0.1" 1089 | resolved "https://registry.yarnpkg.com/find-node-modules/-/find-node-modules-1.0.1.tgz#4659628ec5b5e2f12645eae605899ae2ee696959" 1090 | dependencies: 1091 | findup-sync "^0.2.1" 1092 | merge "^1.2.0" 1093 | 1094 | find-root@^1.0.0: 1095 | version "1.0.0" 1096 | resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.0.0.tgz#962ff211aab25c6520feeeb8d6287f8f6e95807a" 1097 | 1098 | find-up@^1.0.0, find-up@^1.1.2: 1099 | version "1.1.2" 1100 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" 1101 | dependencies: 1102 | path-exists "^2.0.0" 1103 | pinkie-promise "^2.0.0" 1104 | 1105 | find-up@^2.0.0: 1106 | version "2.1.0" 1107 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" 1108 | dependencies: 1109 | locate-path "^2.0.0" 1110 | 1111 | findup-sync@^0.2.1: 1112 | version "0.2.1" 1113 | resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.2.1.tgz#e0a90a450075c49466ee513732057514b81e878c" 1114 | dependencies: 1115 | glob "~4.3.0" 1116 | 1117 | findup-sync@^0.4.2: 1118 | version "0.4.3" 1119 | resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.4.3.tgz#40043929e7bc60adf0b7f4827c4c6e75a0deca12" 1120 | dependencies: 1121 | detect-file "^0.1.0" 1122 | is-glob "^2.0.1" 1123 | micromatch "^2.3.7" 1124 | resolve-dir "^0.1.0" 1125 | 1126 | fined@^1.0.1: 1127 | version "1.0.2" 1128 | resolved "https://registry.yarnpkg.com/fined/-/fined-1.0.2.tgz#5b28424b760d7598960b7ef8480dff8ad3660e97" 1129 | dependencies: 1130 | expand-tilde "^1.2.1" 1131 | lodash.assignwith "^4.0.7" 1132 | lodash.isempty "^4.2.1" 1133 | lodash.isplainobject "^4.0.4" 1134 | lodash.isstring "^4.0.1" 1135 | lodash.pick "^4.2.1" 1136 | parse-filepath "^1.0.1" 1137 | 1138 | first-chunk-stream@^1.0.0: 1139 | version "1.0.0" 1140 | resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e" 1141 | 1142 | flagged-respawn@^0.3.2: 1143 | version "0.3.2" 1144 | resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-0.3.2.tgz#ff191eddcd7088a675b2610fffc976be9b8074b5" 1145 | 1146 | flat-cache@^1.2.1: 1147 | version "1.2.2" 1148 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96" 1149 | dependencies: 1150 | circular-json "^0.3.1" 1151 | del "^2.0.2" 1152 | graceful-fs "^4.1.2" 1153 | write "^0.2.1" 1154 | 1155 | fn-name@^2.0.1: 1156 | version "2.0.1" 1157 | resolved "https://registry.yarnpkg.com/fn-name/-/fn-name-2.0.1.tgz#5214d7537a4d06a4a301c0cc262feb84188002e7" 1158 | 1159 | for-in@^1.0.1: 1160 | version "1.0.2" 1161 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" 1162 | 1163 | for-own@^0.1.4: 1164 | version "0.1.5" 1165 | resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" 1166 | dependencies: 1167 | for-in "^1.0.1" 1168 | 1169 | foreach@^2.0.5: 1170 | version "2.0.5" 1171 | resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" 1172 | 1173 | foreground-child@^1.3.3, foreground-child@^1.5.3: 1174 | version "1.5.6" 1175 | resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-1.5.6.tgz#4fd71ad2dfde96789b980a5c0a295937cb2f5ce9" 1176 | dependencies: 1177 | cross-spawn "^4" 1178 | signal-exit "^3.0.0" 1179 | 1180 | from@~0: 1181 | version "0.1.7" 1182 | resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" 1183 | 1184 | fs-access@^1.0.0: 1185 | version "1.0.1" 1186 | resolved "https://registry.yarnpkg.com/fs-access/-/fs-access-1.0.1.tgz#d6a87f262271cefebec30c553407fb995da8777a" 1187 | dependencies: 1188 | null-check "^1.0.0" 1189 | 1190 | fs-exists-sync@^0.1.0: 1191 | version "0.1.0" 1192 | resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" 1193 | 1194 | fs.realpath@^1.0.0: 1195 | version "1.0.0" 1196 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 1197 | 1198 | function-arguments@^1.0.8: 1199 | version "1.0.8" 1200 | resolved "https://registry.yarnpkg.com/function-arguments/-/function-arguments-1.0.8.tgz#b9a01daca6b894eff8c3d36840375ed9636a6c0f" 1201 | 1202 | function-bind@^1.0.2, function-bind@^1.1.0: 1203 | version "1.1.0" 1204 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" 1205 | 1206 | gaze@^0.5.1: 1207 | version "0.5.2" 1208 | resolved "https://registry.yarnpkg.com/gaze/-/gaze-0.5.2.tgz#40b709537d24d1d45767db5a908689dfe69ac44f" 1209 | dependencies: 1210 | globule "~0.1.0" 1211 | 1212 | generate-function@^2.0.0: 1213 | version "2.0.0" 1214 | resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" 1215 | 1216 | generate-object-property@^1.1.0: 1217 | version "1.2.0" 1218 | resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" 1219 | dependencies: 1220 | is-property "^1.0.0" 1221 | 1222 | get-caller-file@^1.0.1: 1223 | version "1.0.2" 1224 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" 1225 | 1226 | get-fn-name@^1.0.0: 1227 | version "1.0.0" 1228 | resolved "https://registry.yarnpkg.com/get-fn-name/-/get-fn-name-1.0.0.tgz#0aa8fadcf99598ebcb44cab0f1a7e95472c316c9" 1229 | dependencies: 1230 | fn-name "^2.0.1" 1231 | 1232 | get-pkg-repo@^1.0.0: 1233 | version "1.3.0" 1234 | resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-1.3.0.tgz#43c6b4c048b75dd604fc5388edecde557f6335df" 1235 | dependencies: 1236 | hosted-git-info "^2.1.4" 1237 | meow "^3.3.0" 1238 | normalize-package-data "^2.3.0" 1239 | parse-github-repo-url "^1.3.0" 1240 | through2 "^2.0.0" 1241 | 1242 | get-stdin@^4.0.1: 1243 | version "4.0.1" 1244 | resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" 1245 | 1246 | get-stdin@^5.0.1: 1247 | version "5.0.1" 1248 | resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" 1249 | 1250 | git-latest-semver-tag@^1.0.0: 1251 | version "1.0.2" 1252 | resolved "https://registry.yarnpkg.com/git-latest-semver-tag/-/git-latest-semver-tag-1.0.2.tgz#061130cbf4274111cc6be4612b3ff3a6d93e2660" 1253 | dependencies: 1254 | git-semver-tags "^1.1.2" 1255 | meow "^3.3.0" 1256 | 1257 | git-raw-commits@^1.0.0, git-raw-commits@^1.2.0: 1258 | version "1.2.0" 1259 | resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-1.2.0.tgz#0f3a8bfd99ae0f2d8b9224d58892975e9a52d03c" 1260 | dependencies: 1261 | dargs "^4.0.1" 1262 | lodash.template "^4.0.2" 1263 | meow "^3.3.0" 1264 | split2 "^2.0.0" 1265 | through2 "^2.0.0" 1266 | 1267 | git-remote-origin-url@^2.0.0: 1268 | version "2.0.0" 1269 | resolved "https://registry.yarnpkg.com/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f" 1270 | dependencies: 1271 | gitconfiglocal "^1.0.0" 1272 | pify "^2.3.0" 1273 | 1274 | git-semver-tags@^1.1.2, git-semver-tags@^1.2.0: 1275 | version "1.2.0" 1276 | resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-1.2.0.tgz#b31fd02c8ab578bd6c9b5cacca5e1c64c1177ac1" 1277 | dependencies: 1278 | meow "^3.3.0" 1279 | semver "^5.0.1" 1280 | 1281 | gitconfiglocal@^1.0.0: 1282 | version "1.0.0" 1283 | resolved "https://registry.yarnpkg.com/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" 1284 | dependencies: 1285 | ini "^1.3.2" 1286 | 1287 | github-url-from-git@^1.4.0: 1288 | version "1.5.0" 1289 | resolved "https://registry.yarnpkg.com/github-url-from-git/-/github-url-from-git-1.5.0.tgz#f985fedcc0a9aa579dc88d7aff068d55cc6251a0" 1290 | 1291 | glob-base@^0.3.0: 1292 | version "0.3.0" 1293 | resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" 1294 | dependencies: 1295 | glob-parent "^2.0.0" 1296 | is-glob "^2.0.0" 1297 | 1298 | glob-parent@^2.0.0: 1299 | version "2.0.0" 1300 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" 1301 | dependencies: 1302 | is-glob "^2.0.0" 1303 | 1304 | glob-stream@^3.1.5: 1305 | version "3.1.18" 1306 | resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-3.1.18.tgz#9170a5f12b790306fdfe598f313f8f7954fd143b" 1307 | dependencies: 1308 | glob "^4.3.1" 1309 | glob2base "^0.0.12" 1310 | minimatch "^2.0.1" 1311 | ordered-read-streams "^0.1.0" 1312 | through2 "^0.6.1" 1313 | unique-stream "^1.0.0" 1314 | 1315 | glob-watcher@^0.0.6: 1316 | version "0.0.6" 1317 | resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-0.0.6.tgz#b95b4a8df74b39c83298b0c05c978b4d9a3b710b" 1318 | dependencies: 1319 | gaze "^0.5.1" 1320 | 1321 | glob2base@^0.0.12: 1322 | version "0.0.12" 1323 | resolved "https://registry.yarnpkg.com/glob2base/-/glob2base-0.0.12.tgz#9d419b3e28f12e83a362164a277055922c9c0d56" 1324 | dependencies: 1325 | find-index "^0.1.1" 1326 | 1327 | glob@7.0.3: 1328 | version "7.0.3" 1329 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.3.tgz#0aa235931a4a96ac13d60ffac2fb877bd6ed4f58" 1330 | dependencies: 1331 | inflight "^1.0.4" 1332 | inherits "2" 1333 | minimatch "2 || 3" 1334 | once "^1.3.0" 1335 | path-is-absolute "^1.0.0" 1336 | 1337 | glob@^4.3.1, glob@~4.3.0: 1338 | version "4.3.5" 1339 | resolved "https://registry.yarnpkg.com/glob/-/glob-4.3.5.tgz#80fbb08ca540f238acce5d11d1e9bc41e75173d3" 1340 | dependencies: 1341 | inflight "^1.0.4" 1342 | inherits "2" 1343 | minimatch "^2.0.1" 1344 | once "^1.3.0" 1345 | 1346 | glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6: 1347 | version "7.1.1" 1348 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" 1349 | dependencies: 1350 | fs.realpath "^1.0.0" 1351 | inflight "^1.0.4" 1352 | inherits "2" 1353 | minimatch "^3.0.2" 1354 | once "^1.3.0" 1355 | path-is-absolute "^1.0.0" 1356 | 1357 | glob@~3.1.21: 1358 | version "3.1.21" 1359 | resolved "https://registry.yarnpkg.com/glob/-/glob-3.1.21.tgz#d29e0a055dea5138f4d07ed40e8982e83c2066cd" 1360 | dependencies: 1361 | graceful-fs "~1.2.0" 1362 | inherits "1" 1363 | minimatch "~0.2.11" 1364 | 1365 | global-modules@^0.2.3: 1366 | version "0.2.3" 1367 | resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d" 1368 | dependencies: 1369 | global-prefix "^0.1.4" 1370 | is-windows "^0.2.0" 1371 | 1372 | global-prefix@^0.1.4: 1373 | version "0.1.5" 1374 | resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-0.1.5.tgz#8d3bc6b8da3ca8112a160d8d496ff0462bfef78f" 1375 | dependencies: 1376 | homedir-polyfill "^1.0.0" 1377 | ini "^1.3.4" 1378 | is-windows "^0.2.0" 1379 | which "^1.2.12" 1380 | 1381 | globals@^9.0.0, globals@^9.14.0: 1382 | version "9.16.0" 1383 | resolved "https://registry.yarnpkg.com/globals/-/globals-9.16.0.tgz#63e903658171ec2d9f51b1d31de5e2b8dc01fb80" 1384 | 1385 | globby@^5.0.0: 1386 | version "5.0.0" 1387 | resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" 1388 | dependencies: 1389 | array-union "^1.0.1" 1390 | arrify "^1.0.0" 1391 | glob "^7.0.3" 1392 | object-assign "^4.0.1" 1393 | pify "^2.0.0" 1394 | pinkie-promise "^2.0.0" 1395 | 1396 | globule@~0.1.0: 1397 | version "0.1.0" 1398 | resolved "https://registry.yarnpkg.com/globule/-/globule-0.1.0.tgz#d9c8edde1da79d125a151b79533b978676346ae5" 1399 | dependencies: 1400 | glob "~3.1.21" 1401 | lodash "~1.0.1" 1402 | minimatch "~0.2.11" 1403 | 1404 | glogg@^1.0.0: 1405 | version "1.0.0" 1406 | resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.0.tgz#7fe0f199f57ac906cf512feead8f90ee4a284fc5" 1407 | dependencies: 1408 | sparkles "^1.0.0" 1409 | 1410 | graceful-fs@^3.0.0: 1411 | version "3.0.11" 1412 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818" 1413 | dependencies: 1414 | natives "^1.1.0" 1415 | 1416 | graceful-fs@^4.1.11, graceful-fs@^4.1.2: 1417 | version "4.1.11" 1418 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 1419 | 1420 | graceful-fs@~1.2.0: 1421 | version "1.2.3" 1422 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364" 1423 | 1424 | gulp-git@1.7.0: 1425 | version "1.7.0" 1426 | resolved "https://registry.yarnpkg.com/gulp-git/-/gulp-git-1.7.0.tgz#614b65349da2ba81e0f9001431f2f0783fa4bfe2" 1427 | dependencies: 1428 | any-shell-escape "^0.1.1" 1429 | gulp-util "^3.0.6" 1430 | require-dir "^0.1.0" 1431 | through2 "^0.6.5" 1432 | 1433 | gulp-util@^3.0.0, gulp-util@^3.0.6: 1434 | version "3.0.8" 1435 | resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f" 1436 | dependencies: 1437 | array-differ "^1.0.0" 1438 | array-uniq "^1.0.2" 1439 | beeper "^1.0.0" 1440 | chalk "^1.0.0" 1441 | dateformat "^2.0.0" 1442 | fancy-log "^1.1.0" 1443 | gulplog "^1.0.0" 1444 | has-gulplog "^0.1.0" 1445 | lodash._reescape "^3.0.0" 1446 | lodash._reevaluate "^3.0.0" 1447 | lodash._reinterpolate "^3.0.0" 1448 | lodash.template "^3.0.0" 1449 | minimist "^1.1.0" 1450 | multipipe "^0.1.2" 1451 | object-assign "^3.0.0" 1452 | replace-ext "0.0.1" 1453 | through2 "^2.0.0" 1454 | vinyl "^0.5.0" 1455 | 1456 | gulp@3.9.1: 1457 | version "3.9.1" 1458 | resolved "https://registry.yarnpkg.com/gulp/-/gulp-3.9.1.tgz#571ce45928dd40af6514fc4011866016c13845b4" 1459 | dependencies: 1460 | archy "^1.0.0" 1461 | chalk "^1.0.0" 1462 | deprecated "^0.0.1" 1463 | gulp-util "^3.0.0" 1464 | interpret "^1.0.0" 1465 | liftoff "^2.1.0" 1466 | minimist "^1.1.0" 1467 | orchestrator "^0.3.0" 1468 | pretty-hrtime "^1.0.0" 1469 | semver "^4.1.0" 1470 | tildify "^1.0.0" 1471 | v8flags "^2.0.2" 1472 | vinyl-fs "^0.3.0" 1473 | 1474 | gulplog@^1.0.0: 1475 | version "1.0.0" 1476 | resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" 1477 | dependencies: 1478 | glogg "^1.0.0" 1479 | 1480 | handlebars@^4.0.2, handlebars@^4.0.3: 1481 | version "4.0.6" 1482 | resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.6.tgz#2ce4484850537f9c97a8026d5399b935c4ed4ed7" 1483 | dependencies: 1484 | async "^1.4.0" 1485 | optimist "^0.6.1" 1486 | source-map "^0.4.4" 1487 | optionalDependencies: 1488 | uglify-js "^2.6" 1489 | 1490 | has-ansi@^2.0.0: 1491 | version "2.0.0" 1492 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 1493 | dependencies: 1494 | ansi-regex "^2.0.0" 1495 | 1496 | has-flag@^1.0.0: 1497 | version "1.0.0" 1498 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" 1499 | 1500 | has-gulplog@^0.1.0: 1501 | version "0.1.0" 1502 | resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce" 1503 | dependencies: 1504 | sparkles "^1.0.0" 1505 | 1506 | has@^1.0.1: 1507 | version "1.0.1" 1508 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" 1509 | dependencies: 1510 | function-bind "^1.0.2" 1511 | 1512 | home-or-tmp@2.0.0, home-or-tmp@^2.0.0: 1513 | version "2.0.0" 1514 | resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" 1515 | dependencies: 1516 | os-homedir "^1.0.0" 1517 | os-tmpdir "^1.0.1" 1518 | 1519 | homedir-polyfill@^1.0.0: 1520 | version "1.0.1" 1521 | resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" 1522 | dependencies: 1523 | parse-passwd "^1.0.0" 1524 | 1525 | hosted-git-info@^2.1.4: 1526 | version "2.3.1" 1527 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.3.1.tgz#ac439421605f0beb0ea1349de7d8bb28e50be1dd" 1528 | 1529 | ignore@^3.0.9, ignore@^3.2.0: 1530 | version "3.2.6" 1531 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.2.6.tgz#26e8da0644be0bb4cb39516f6c79f0e0f4ffe48c" 1532 | 1533 | imurmurhash@^0.1.4: 1534 | version "0.1.4" 1535 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 1536 | 1537 | indent-string@^2.1.0: 1538 | version "2.1.0" 1539 | resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" 1540 | dependencies: 1541 | repeating "^2.0.0" 1542 | 1543 | inflight@^1.0.4: 1544 | version "1.0.6" 1545 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1546 | dependencies: 1547 | once "^1.3.0" 1548 | wrappy "1" 1549 | 1550 | inherits@1: 1551 | version "1.0.2" 1552 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-1.0.2.tgz#ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b" 1553 | 1554 | inherits@2, inherits@^2.0.3, inherits@~2.0.1: 1555 | version "2.0.3" 1556 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 1557 | 1558 | ini@^1.3.2, ini@^1.3.4: 1559 | version "1.3.4" 1560 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" 1561 | 1562 | inquirer@0.12.0, inquirer@^0.12.0: 1563 | version "0.12.0" 1564 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" 1565 | dependencies: 1566 | ansi-escapes "^1.1.0" 1567 | ansi-regex "^2.0.0" 1568 | chalk "^1.0.0" 1569 | cli-cursor "^1.0.1" 1570 | cli-width "^2.0.0" 1571 | figures "^1.3.5" 1572 | lodash "^4.3.0" 1573 | readline2 "^1.0.1" 1574 | run-async "^0.1.0" 1575 | rx-lite "^3.1.2" 1576 | string-width "^1.0.1" 1577 | strip-ansi "^3.0.0" 1578 | through "^2.3.6" 1579 | 1580 | interpret@^1.0.0: 1581 | version "1.0.1" 1582 | resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.1.tgz#d579fb7f693b858004947af39fa0db49f795602c" 1583 | 1584 | invariant@^2.2.0: 1585 | version "2.2.2" 1586 | resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" 1587 | dependencies: 1588 | loose-envify "^1.0.0" 1589 | 1590 | invert-kv@^1.0.0: 1591 | version "1.0.0" 1592 | resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" 1593 | 1594 | is-absolute@^0.2.3: 1595 | version "0.2.6" 1596 | resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-0.2.6.tgz#20de69f3db942ef2d87b9c2da36f172235b1b5eb" 1597 | dependencies: 1598 | is-relative "^0.2.1" 1599 | is-windows "^0.2.0" 1600 | 1601 | is-arrayish@^0.2.1: 1602 | version "0.2.1" 1603 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 1604 | 1605 | is-async-function@^1.2.2: 1606 | version "1.2.3" 1607 | resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-1.2.3.tgz#cf422b62a5019d6b0325569896b7d11403dd3d76" 1608 | dependencies: 1609 | arr-includes "^2.0.3" 1610 | arrify "^1.0.1" 1611 | common-callback-names "^2.0.1" 1612 | function-arguments "^1.0.8" 1613 | 1614 | is-buffer@^1.0.2: 1615 | version "1.1.5" 1616 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" 1617 | 1618 | is-builtin-module@^1.0.0: 1619 | version "1.0.0" 1620 | resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" 1621 | dependencies: 1622 | builtin-modules "^1.0.0" 1623 | 1624 | is-callable@^1.1.1, is-callable@^1.1.3: 1625 | version "1.1.3" 1626 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" 1627 | 1628 | is-child-process@^1.0.0, is-child-process@^1.0.2: 1629 | version "1.0.2" 1630 | resolved "https://registry.yarnpkg.com/is-child-process/-/is-child-process-1.0.2.tgz#c22961acd629e128cb008ed6355b3bcbf85d9bd8" 1631 | dependencies: 1632 | is-node-emitter "^1.0.2" 1633 | isarray "^1.0.0" 1634 | 1635 | is-date-object@^1.0.1: 1636 | version "1.0.1" 1637 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" 1638 | 1639 | is-dotfile@^1.0.0: 1640 | version "1.0.2" 1641 | resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d" 1642 | 1643 | is-equal-shallow@^0.1.3: 1644 | version "0.1.3" 1645 | resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" 1646 | dependencies: 1647 | is-primitive "^2.0.0" 1648 | 1649 | is-error@^2.2.0: 1650 | version "2.2.1" 1651 | resolved "https://registry.yarnpkg.com/is-error/-/is-error-2.2.1.tgz#684a96d84076577c98f4cdb40c6d26a5123bf19c" 1652 | 1653 | is-extendable@^0.1.0, is-extendable@^0.1.1: 1654 | version "0.1.1" 1655 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" 1656 | 1657 | is-extglob@^1.0.0: 1658 | version "1.0.0" 1659 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" 1660 | 1661 | is-finite@^1.0.0: 1662 | version "1.0.2" 1663 | resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" 1664 | dependencies: 1665 | number-is-nan "^1.0.0" 1666 | 1667 | is-fullwidth-code-point@^1.0.0: 1668 | version "1.0.0" 1669 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 1670 | dependencies: 1671 | number-is-nan "^1.0.0" 1672 | 1673 | is-fullwidth-code-point@^2.0.0: 1674 | version "2.0.0" 1675 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 1676 | 1677 | is-glob@^2.0.0, is-glob@^2.0.1: 1678 | version "2.0.1" 1679 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" 1680 | dependencies: 1681 | is-extglob "^1.0.0" 1682 | 1683 | is-my-json-valid@^2.10.0: 1684 | version "2.16.0" 1685 | resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz#f079dd9bfdae65ee2038aae8acbc86ab109e3693" 1686 | dependencies: 1687 | generate-function "^2.0.0" 1688 | generate-object-property "^1.1.0" 1689 | jsonpointer "^4.0.0" 1690 | xtend "^4.0.0" 1691 | 1692 | is-node-emitter@^1.0.2: 1693 | version "1.0.6" 1694 | resolved "https://registry.yarnpkg.com/is-node-emitter/-/is-node-emitter-1.0.6.tgz#807a8b0194ceccf99b6f7d5e95a39f1c957eaa36" 1695 | dependencies: 1696 | is-real-object "^1.0.1" 1697 | isarray "^1.0.0" 1698 | 1699 | is-node-stream@^1.0.0: 1700 | version "1.0.0" 1701 | resolved "https://registry.yarnpkg.com/is-node-stream/-/is-node-stream-1.0.0.tgz#f8e18da7bf1a66a652d8860c834ab2c6c7a6e896" 1702 | dependencies: 1703 | is-node-emitter "^1.0.2" 1704 | 1705 | is-number@^2.0.2, is-number@^2.1.0: 1706 | version "2.1.0" 1707 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" 1708 | dependencies: 1709 | kind-of "^3.0.2" 1710 | 1711 | is-obj@^1.0.0: 1712 | version "1.0.1" 1713 | resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" 1714 | 1715 | is-path-cwd@^1.0.0: 1716 | version "1.0.0" 1717 | resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" 1718 | 1719 | is-path-in-cwd@^1.0.0: 1720 | version "1.0.0" 1721 | resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" 1722 | dependencies: 1723 | is-path-inside "^1.0.0" 1724 | 1725 | is-path-inside@^1.0.0: 1726 | version "1.0.0" 1727 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" 1728 | dependencies: 1729 | path-is-inside "^1.0.1" 1730 | 1731 | is-posix-bracket@^0.1.0: 1732 | version "0.1.1" 1733 | resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" 1734 | 1735 | is-primitive@^2.0.0: 1736 | version "2.0.0" 1737 | resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" 1738 | 1739 | is-promise@^2.1.0: 1740 | version "2.1.0" 1741 | resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" 1742 | 1743 | is-property@^1.0.0: 1744 | version "1.0.2" 1745 | resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" 1746 | 1747 | is-real-object@^1.0.1: 1748 | version "1.0.2" 1749 | resolved "https://registry.yarnpkg.com/is-real-object/-/is-real-object-1.0.2.tgz#dd170ead88829c38c5d4b430596d91e2b9773883" 1750 | dependencies: 1751 | is-extendable "^0.1.1" 1752 | isarray "^1.0.0" 1753 | 1754 | is-regex@^1.0.3: 1755 | version "1.0.4" 1756 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" 1757 | dependencies: 1758 | has "^1.0.1" 1759 | 1760 | is-relative@^0.2.1: 1761 | version "0.2.1" 1762 | resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-0.2.1.tgz#d27f4c7d516d175fb610db84bbeef23c3bc97aa5" 1763 | dependencies: 1764 | is-unc-path "^0.1.1" 1765 | 1766 | is-request-stream@^1.0.1: 1767 | version "1.0.1" 1768 | resolved "https://registry.yarnpkg.com/is-request-stream/-/is-request-stream-1.0.1.tgz#5cbfdcef29e88c47a5680efcf69934627852dfc1" 1769 | dependencies: 1770 | is-node-stream "^1.0.0" 1771 | 1772 | is-resolvable@^1.0.0: 1773 | version "1.0.0" 1774 | resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" 1775 | dependencies: 1776 | tryit "^1.0.1" 1777 | 1778 | is-subset@^0.1.1: 1779 | version "0.1.1" 1780 | resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" 1781 | 1782 | is-symbol@^1.0.1: 1783 | version "1.0.1" 1784 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" 1785 | 1786 | is-text-path@^1.0.0: 1787 | version "1.0.1" 1788 | resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" 1789 | dependencies: 1790 | text-extensions "^1.0.0" 1791 | 1792 | is-typeof-error@^1.1.0: 1793 | version "1.1.0" 1794 | resolved "https://registry.yarnpkg.com/is-typeof-error/-/is-typeof-error-1.1.0.tgz#f824e241342c0678b09d697e8041aeb4f4fa281c" 1795 | dependencies: 1796 | is-extendable "^0.1.1" 1797 | 1798 | is-unc-path@^0.1.1: 1799 | version "0.1.2" 1800 | resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-0.1.2.tgz#6ab053a72573c10250ff416a3814c35178af39b9" 1801 | dependencies: 1802 | unc-path-regex "^0.1.0" 1803 | 1804 | is-utf8@^0.2.0: 1805 | version "0.2.1" 1806 | resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" 1807 | 1808 | is-windows@^0.2.0: 1809 | version "0.2.0" 1810 | resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" 1811 | 1812 | isarray@0.0.1: 1813 | version "0.0.1" 1814 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" 1815 | 1816 | isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: 1817 | version "1.0.0" 1818 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 1819 | 1820 | isexe@^1.1.1: 1821 | version "1.1.2" 1822 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-1.1.2.tgz#36f3e22e60750920f5e7241a476a8c6a42275ad0" 1823 | 1824 | isobject@^2.0.0: 1825 | version "2.1.0" 1826 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" 1827 | dependencies: 1828 | isarray "1.0.0" 1829 | 1830 | istanbul-lib-coverage@^1.0.0, istanbul-lib-coverage@^1.0.0-alpha, istanbul-lib-coverage@^1.0.0-alpha.0, istanbul-lib-coverage@^1.0.1: 1831 | version "1.0.1" 1832 | resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.0.1.tgz#f263efb519c051c5f1f3343034fc40e7b43ff212" 1833 | 1834 | istanbul-lib-hook@^1.0.0: 1835 | version "1.0.0" 1836 | resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.0.0.tgz#fc5367ee27f59268e8f060b0c7aaf051d9c425c5" 1837 | dependencies: 1838 | append-transform "^0.4.0" 1839 | 1840 | istanbul-lib-instrument@^1.4.2: 1841 | version "1.4.2" 1842 | resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.4.2.tgz#0e2fdfac93c1dabf2e31578637dc78a19089f43e" 1843 | dependencies: 1844 | babel-generator "^6.18.0" 1845 | babel-template "^6.16.0" 1846 | babel-traverse "^6.18.0" 1847 | babel-types "^6.18.0" 1848 | babylon "^6.13.0" 1849 | istanbul-lib-coverage "^1.0.0" 1850 | semver "^5.3.0" 1851 | 1852 | istanbul-lib-report@^1.0.0-alpha.3: 1853 | version "1.0.0-alpha.3" 1854 | resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.0.0-alpha.3.tgz#32d5f6ec7f33ca3a602209e278b2e6ff143498af" 1855 | dependencies: 1856 | async "^1.4.2" 1857 | istanbul-lib-coverage "^1.0.0-alpha" 1858 | mkdirp "^0.5.1" 1859 | path-parse "^1.0.5" 1860 | rimraf "^2.4.3" 1861 | supports-color "^3.1.2" 1862 | 1863 | istanbul-lib-source-maps@^1.1.0: 1864 | version "1.1.0" 1865 | resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.1.0.tgz#9d429218f35b823560ea300a96ff0c3bbdab785f" 1866 | dependencies: 1867 | istanbul-lib-coverage "^1.0.0-alpha.0" 1868 | mkdirp "^0.5.1" 1869 | rimraf "^2.4.4" 1870 | source-map "^0.5.3" 1871 | 1872 | istanbul-reports@^1.0.0: 1873 | version "1.0.1" 1874 | resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.0.1.tgz#9a17176bc4a6cbebdae52b2f15961d52fa623fbc" 1875 | dependencies: 1876 | handlebars "^4.0.3" 1877 | 1878 | js-tokens@^3.0.0: 1879 | version "3.0.1" 1880 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" 1881 | 1882 | js-yaml@^3.5.1: 1883 | version "3.8.2" 1884 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.2.tgz#02d3e2c0f6beab20248d412c352203827d786721" 1885 | dependencies: 1886 | argparse "^1.0.7" 1887 | esprima "^3.1.1" 1888 | 1889 | jsesc@^1.3.0: 1890 | version "1.3.0" 1891 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" 1892 | 1893 | json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: 1894 | version "1.0.1" 1895 | resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" 1896 | dependencies: 1897 | jsonify "~0.0.0" 1898 | 1899 | json-stringify-safe@^5.0.1: 1900 | version "5.0.1" 1901 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 1902 | 1903 | jsonify@~0.0.0: 1904 | version "0.0.0" 1905 | resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" 1906 | 1907 | jsonparse@^1.2.0: 1908 | version "1.3.0" 1909 | resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.0.tgz#85fc245b1d9259acc6941960b905adf64e7de0e8" 1910 | 1911 | jsonpointer@^4.0.0: 1912 | version "4.0.1" 1913 | resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" 1914 | 1915 | jsx-ast-utils@^1.3.4: 1916 | version "1.4.0" 1917 | resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.4.0.tgz#5afe38868f56bc8cc7aeaef0100ba8c75bd12591" 1918 | dependencies: 1919 | object-assign "^4.1.0" 1920 | 1921 | kind-of@^3.0.2: 1922 | version "3.1.0" 1923 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.1.0.tgz#475d698a5e49ff5e53d14e3e732429dc8bf4cf47" 1924 | dependencies: 1925 | is-buffer "^1.0.2" 1926 | 1927 | lazy-cache@^1.0.3: 1928 | version "1.0.4" 1929 | resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" 1930 | 1931 | lazy-cache@^2.0.1: 1932 | version "2.0.2" 1933 | resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-2.0.2.tgz#b9190a4f913354694840859f8a8f7084d8822264" 1934 | dependencies: 1935 | set-getter "^0.1.0" 1936 | 1937 | lcid@^1.0.0: 1938 | version "1.0.0" 1939 | resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" 1940 | dependencies: 1941 | invert-kv "^1.0.0" 1942 | 1943 | levn@^0.3.0, levn@~0.3.0: 1944 | version "0.3.0" 1945 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" 1946 | dependencies: 1947 | prelude-ls "~1.1.2" 1948 | type-check "~0.3.2" 1949 | 1950 | liftoff@^2.1.0: 1951 | version "2.3.0" 1952 | resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-2.3.0.tgz#a98f2ff67183d8ba7cfaca10548bd7ff0550b385" 1953 | dependencies: 1954 | extend "^3.0.0" 1955 | findup-sync "^0.4.2" 1956 | fined "^1.0.1" 1957 | flagged-respawn "^0.3.2" 1958 | lodash.isplainobject "^4.0.4" 1959 | lodash.isstring "^4.0.1" 1960 | lodash.mapvalues "^4.4.0" 1961 | rechoir "^0.6.2" 1962 | resolve "^1.1.7" 1963 | 1964 | load-json-file@^1.0.0: 1965 | version "1.1.0" 1966 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" 1967 | dependencies: 1968 | graceful-fs "^4.1.2" 1969 | parse-json "^2.2.0" 1970 | pify "^2.0.0" 1971 | pinkie-promise "^2.0.0" 1972 | strip-bom "^2.0.0" 1973 | 1974 | load-json-file@^2.0.0: 1975 | version "2.0.0" 1976 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" 1977 | dependencies: 1978 | graceful-fs "^4.1.2" 1979 | parse-json "^2.2.0" 1980 | pify "^2.0.0" 1981 | strip-bom "^3.0.0" 1982 | 1983 | locate-path@^2.0.0: 1984 | version "2.0.0" 1985 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" 1986 | dependencies: 1987 | p-locate "^2.0.0" 1988 | path-exists "^3.0.0" 1989 | 1990 | lodash._basecopy@^3.0.0: 1991 | version "3.0.1" 1992 | resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" 1993 | 1994 | lodash._basetostring@^3.0.0: 1995 | version "3.0.1" 1996 | resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" 1997 | 1998 | lodash._basevalues@^3.0.0: 1999 | version "3.0.0" 2000 | resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7" 2001 | 2002 | lodash._getnative@^3.0.0: 2003 | version "3.9.1" 2004 | resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" 2005 | 2006 | lodash._isiterateecall@^3.0.0: 2007 | version "3.0.9" 2008 | resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" 2009 | 2010 | lodash._reescape@^3.0.0: 2011 | version "3.0.0" 2012 | resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a" 2013 | 2014 | lodash._reevaluate@^3.0.0: 2015 | version "3.0.0" 2016 | resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed" 2017 | 2018 | lodash._reinterpolate@^3.0.0, lodash._reinterpolate@~3.0.0: 2019 | version "3.0.0" 2020 | resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" 2021 | 2022 | lodash._root@^3.0.0: 2023 | version "3.0.1" 2024 | resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" 2025 | 2026 | lodash.assignwith@^4.0.7: 2027 | version "4.2.0" 2028 | resolved "https://registry.yarnpkg.com/lodash.assignwith/-/lodash.assignwith-4.2.0.tgz#127a97f02adc41751a954d24b0de17e100e038eb" 2029 | 2030 | lodash.escape@^3.0.0: 2031 | version "3.2.0" 2032 | resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698" 2033 | dependencies: 2034 | lodash._root "^3.0.0" 2035 | 2036 | lodash.isarguments@^3.0.0: 2037 | version "3.1.0" 2038 | resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" 2039 | 2040 | lodash.isarray@^3.0.0: 2041 | version "3.0.4" 2042 | resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" 2043 | 2044 | lodash.isempty@^4.2.1: 2045 | version "4.4.0" 2046 | resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e" 2047 | 2048 | lodash.isplainobject@^4.0.4: 2049 | version "4.0.6" 2050 | resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" 2051 | 2052 | lodash.isstring@^4.0.1: 2053 | version "4.0.1" 2054 | resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" 2055 | 2056 | lodash.keys@^3.0.0: 2057 | version "3.1.2" 2058 | resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" 2059 | dependencies: 2060 | lodash._getnative "^3.0.0" 2061 | lodash.isarguments "^3.0.0" 2062 | lodash.isarray "^3.0.0" 2063 | 2064 | lodash.mapvalues@^4.4.0: 2065 | version "4.6.0" 2066 | resolved "https://registry.yarnpkg.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz#1bafa5005de9dd6f4f26668c30ca37230cc9689c" 2067 | 2068 | lodash.pick@^4.2.1: 2069 | version "4.4.0" 2070 | resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" 2071 | 2072 | lodash.restparam@^3.0.0: 2073 | version "3.6.1" 2074 | resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" 2075 | 2076 | lodash.template@^3.0.0: 2077 | version "3.6.2" 2078 | resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f" 2079 | dependencies: 2080 | lodash._basecopy "^3.0.0" 2081 | lodash._basetostring "^3.0.0" 2082 | lodash._basevalues "^3.0.0" 2083 | lodash._isiterateecall "^3.0.0" 2084 | lodash._reinterpolate "^3.0.0" 2085 | lodash.escape "^3.0.0" 2086 | lodash.keys "^3.0.0" 2087 | lodash.restparam "^3.0.0" 2088 | lodash.templatesettings "^3.0.0" 2089 | 2090 | lodash.template@^4.0.2: 2091 | version "4.4.0" 2092 | resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0" 2093 | dependencies: 2094 | lodash._reinterpolate "~3.0.0" 2095 | lodash.templatesettings "^4.0.0" 2096 | 2097 | lodash.templatesettings@^3.0.0: 2098 | version "3.1.1" 2099 | resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5" 2100 | dependencies: 2101 | lodash._reinterpolate "^3.0.0" 2102 | lodash.escape "^3.0.0" 2103 | 2104 | lodash.templatesettings@^4.0.0: 2105 | version "4.1.0" 2106 | resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz#2b4d4e95ba440d915ff08bc899e4553666713316" 2107 | dependencies: 2108 | lodash._reinterpolate "~3.0.0" 2109 | 2110 | lodash@4.6.1, lodash@^4.0.0, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0: 2111 | version "4.6.1" 2112 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.6.1.tgz#df00c1164ad236b183cfc3887a5e8d38cc63cbbc" 2113 | 2114 | lodash@~1.0.1: 2115 | version "1.0.2" 2116 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-1.0.2.tgz#8f57560c83b59fc270bd3d561b690043430e2551" 2117 | 2118 | longest@^1.0.1: 2119 | version "1.0.1" 2120 | resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" 2121 | 2122 | loose-envify@^1.0.0: 2123 | version "1.3.1" 2124 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" 2125 | dependencies: 2126 | js-tokens "^3.0.0" 2127 | 2128 | loud-rejection@^1.0.0: 2129 | version "1.6.0" 2130 | resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" 2131 | dependencies: 2132 | currently-unhandled "^0.4.1" 2133 | signal-exit "^3.0.0" 2134 | 2135 | lru-cache@2: 2136 | version "2.7.3" 2137 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952" 2138 | 2139 | lru-cache@^4.0.1: 2140 | version "4.0.2" 2141 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.2.tgz#1d17679c069cda5d040991a09dbc2c0db377e55e" 2142 | dependencies: 2143 | pseudomap "^1.0.1" 2144 | yallist "^2.0.0" 2145 | 2146 | map-cache@^0.2.0: 2147 | version "0.2.2" 2148 | resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" 2149 | 2150 | map-obj@^1.0.0, map-obj@^1.0.1: 2151 | version "1.0.1" 2152 | resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" 2153 | 2154 | map-stream@~0.1.0: 2155 | version "0.1.0" 2156 | resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" 2157 | 2158 | md5-hex@^1.2.0: 2159 | version "1.3.0" 2160 | resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-1.3.0.tgz#d2c4afe983c4370662179b8cad145219135046c4" 2161 | dependencies: 2162 | md5-o-matic "^0.1.1" 2163 | 2164 | md5-o-matic@^0.1.1: 2165 | version "0.1.1" 2166 | resolved "https://registry.yarnpkg.com/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3" 2167 | 2168 | meow@^3.3.0: 2169 | version "3.7.0" 2170 | resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" 2171 | dependencies: 2172 | camelcase-keys "^2.0.0" 2173 | decamelize "^1.1.2" 2174 | loud-rejection "^1.0.0" 2175 | map-obj "^1.0.1" 2176 | minimist "^1.1.3" 2177 | normalize-package-data "^2.3.4" 2178 | object-assign "^4.0.1" 2179 | read-pkg-up "^1.0.1" 2180 | redent "^1.0.0" 2181 | trim-newlines "^1.0.0" 2182 | 2183 | merge-source-map@^1.0.2: 2184 | version "1.0.3" 2185 | resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.0.3.tgz#da1415f2722a5119db07b14c4f973410863a2abf" 2186 | dependencies: 2187 | source-map "^0.5.3" 2188 | 2189 | merge@^1.2.0: 2190 | version "1.2.0" 2191 | resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da" 2192 | 2193 | micromatch@^2.3.11, micromatch@^2.3.7: 2194 | version "2.3.11" 2195 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" 2196 | dependencies: 2197 | arr-diff "^2.0.0" 2198 | array-unique "^0.2.1" 2199 | braces "^1.8.2" 2200 | expand-brackets "^0.1.4" 2201 | extglob "^0.3.1" 2202 | filename-regex "^2.0.0" 2203 | is-extglob "^1.0.0" 2204 | is-glob "^2.0.1" 2205 | kind-of "^3.0.2" 2206 | normalize-path "^2.0.1" 2207 | object.omit "^2.0.0" 2208 | parse-glob "^3.0.4" 2209 | regex-cache "^0.4.2" 2210 | 2211 | "minimatch@2 || 3", minimatch@^3.0.2: 2212 | version "3.0.3" 2213 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" 2214 | dependencies: 2215 | brace-expansion "^1.0.0" 2216 | 2217 | minimatch@^2.0.1: 2218 | version "2.0.10" 2219 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7" 2220 | dependencies: 2221 | brace-expansion "^1.0.0" 2222 | 2223 | minimatch@~0.2.11: 2224 | version "0.2.14" 2225 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.2.14.tgz#c74e780574f63c6f9a090e90efbe6ef53a6a756a" 2226 | dependencies: 2227 | lru-cache "2" 2228 | sigmund "~1.0.0" 2229 | 2230 | minimist@0.0.8, minimist@~0.0.1: 2231 | version "0.0.8" 2232 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 2233 | 2234 | minimist@1.2.0, minimist@^1.1.0, minimist@^1.1.3: 2235 | version "1.2.0" 2236 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 2237 | 2238 | mkdirp@^0.5.0, mkdirp@^0.5.1: 2239 | version "0.5.1" 2240 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 2241 | dependencies: 2242 | minimist "0.0.8" 2243 | 2244 | modify-values@^1.0.0: 2245 | version "1.0.0" 2246 | resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.0.tgz#e2b6cdeb9ce19f99317a53722f3dbf5df5eaaab2" 2247 | 2248 | ms@0.7.2: 2249 | version "0.7.2" 2250 | resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" 2251 | 2252 | mukla@^0.4.9: 2253 | version "0.4.9" 2254 | resolved "https://registry.yarnpkg.com/mukla/-/mukla-0.4.9.tgz#195cf3954154597e35599fdbb4a13c2a41d733f4" 2255 | dependencies: 2256 | always-done "^1.1.0" 2257 | core-assert "^0.2.1" 2258 | error-symbol "^0.1.0" 2259 | extend-shallow "^2.0.1" 2260 | get-fn-name "^1.0.0" 2261 | stacktrace-metadata "^2.0.1" 2262 | success-symbol "^0.1.0" 2263 | 2264 | multipipe@^0.1.2: 2265 | version "0.1.2" 2266 | resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b" 2267 | dependencies: 2268 | duplexer2 "0.0.2" 2269 | 2270 | mute-stream@0.0.5: 2271 | version "0.0.5" 2272 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" 2273 | 2274 | native-or-another@^5.0.1: 2275 | version "5.0.1" 2276 | resolved "https://registry.yarnpkg.com/native-or-another/-/native-or-another-5.0.1.tgz#be5c182dd11958e23674a4a6d09653429cec11ab" 2277 | dependencies: 2278 | extend-shallow "^2.0.1" 2279 | native-promise "^1.0.1" 2280 | semver "^5.3.0" 2281 | try-catch-callback "^2.0.2" 2282 | 2283 | native-promise@^1.0.1: 2284 | version "1.0.1" 2285 | resolved "https://registry.yarnpkg.com/native-promise/-/native-promise-1.0.1.tgz#6d7e9d06c3d45f51c5306da3400b7e91a5f8890e" 2286 | 2287 | natives@^1.1.0: 2288 | version "1.1.0" 2289 | resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.0.tgz#e9ff841418a6b2ec7a495e939984f78f163e6e31" 2290 | 2291 | natural-compare@^1.4.0: 2292 | version "1.4.0" 2293 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 2294 | 2295 | normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5: 2296 | version "2.3.6" 2297 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.6.tgz#498fa420c96401f787402ba21e600def9f981fff" 2298 | dependencies: 2299 | hosted-git-info "^2.1.4" 2300 | is-builtin-module "^1.0.0" 2301 | semver "2 || 3 || 4 || 5" 2302 | validate-npm-package-license "^3.0.1" 2303 | 2304 | normalize-path@^2.0.1: 2305 | version "2.0.1" 2306 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a" 2307 | 2308 | npm-run-all@~3.1.2: 2309 | version "3.1.2" 2310 | resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-3.1.2.tgz#c7e3faf4aa0a59bf0dcfc12601166151692171cf" 2311 | dependencies: 2312 | chalk "^1.1.3" 2313 | cross-spawn "^4.0.0" 2314 | minimatch "^3.0.2" 2315 | object-assign "^4.0.1" 2316 | pinkie-promise "^2.0.1" 2317 | ps-tree "^1.0.1" 2318 | read-pkg "^1.1.0" 2319 | read-pkg-up "^1.0.1" 2320 | shell-quote "^1.6.1" 2321 | string.prototype.padend "^3.0.0" 2322 | 2323 | null-check@^1.0.0: 2324 | version "1.0.0" 2325 | resolved "https://registry.yarnpkg.com/null-check/-/null-check-1.0.0.tgz#977dffd7176012b9ec30d2a39db5cf72a0439edd" 2326 | 2327 | number-is-nan@^1.0.0: 2328 | version "1.0.1" 2329 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 2330 | 2331 | nyc@^10.1.2: 2332 | version "10.1.2" 2333 | resolved "https://registry.yarnpkg.com/nyc/-/nyc-10.1.2.tgz#ea7acaa20a235210101604f4e7d56d28453b0274" 2334 | dependencies: 2335 | archy "^1.0.0" 2336 | arrify "^1.0.1" 2337 | caching-transform "^1.0.0" 2338 | convert-source-map "^1.3.0" 2339 | debug-log "^1.0.1" 2340 | default-require-extensions "^1.0.0" 2341 | find-cache-dir "^0.1.1" 2342 | find-up "^1.1.2" 2343 | foreground-child "^1.5.3" 2344 | glob "^7.0.6" 2345 | istanbul-lib-coverage "^1.0.1" 2346 | istanbul-lib-hook "^1.0.0" 2347 | istanbul-lib-instrument "^1.4.2" 2348 | istanbul-lib-report "^1.0.0-alpha.3" 2349 | istanbul-lib-source-maps "^1.1.0" 2350 | istanbul-reports "^1.0.0" 2351 | md5-hex "^1.2.0" 2352 | merge-source-map "^1.0.2" 2353 | micromatch "^2.3.11" 2354 | mkdirp "^0.5.0" 2355 | resolve-from "^2.0.0" 2356 | rimraf "^2.5.4" 2357 | signal-exit "^3.0.1" 2358 | spawn-wrap "1.2.4" 2359 | test-exclude "^3.3.0" 2360 | yargs "^6.6.0" 2361 | yargs-parser "^4.0.2" 2362 | 2363 | object-assign@^3.0.0: 2364 | version "3.0.0" 2365 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" 2366 | 2367 | object-assign@^4.0.1, object-assign@^4.1.0: 2368 | version "4.1.1" 2369 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 2370 | 2371 | object-keys@^1.0.8: 2372 | version "1.0.11" 2373 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" 2374 | 2375 | object.omit@^2.0.0: 2376 | version "2.0.1" 2377 | resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" 2378 | dependencies: 2379 | for-own "^0.1.4" 2380 | is-extendable "^0.1.1" 2381 | 2382 | on-stream-end@^1.0.0: 2383 | version "1.0.0" 2384 | resolved "https://registry.yarnpkg.com/on-stream-end/-/on-stream-end-1.0.0.tgz#8939261df6fd751f12efca8488346a4129f5fa73" 2385 | dependencies: 2386 | dezalgo "^1.0.3" 2387 | is-child-process "^1.0.0" 2388 | is-node-stream "^1.0.0" 2389 | is-real-object "^1.0.1" 2390 | is-request-stream "^1.0.1" 2391 | onetime "^1.0.0" 2392 | 2393 | once@^1.3.0, once@^1.4.0: 2394 | version "1.4.0" 2395 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 2396 | dependencies: 2397 | wrappy "1" 2398 | 2399 | once@~1.3.0: 2400 | version "1.3.3" 2401 | resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" 2402 | dependencies: 2403 | wrappy "1" 2404 | 2405 | onetime@^1.0.0: 2406 | version "1.1.0" 2407 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" 2408 | 2409 | optimist@^0.6.1: 2410 | version "0.6.1" 2411 | resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" 2412 | dependencies: 2413 | minimist "~0.0.1" 2414 | wordwrap "~0.0.2" 2415 | 2416 | optionator@^0.8.2: 2417 | version "0.8.2" 2418 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" 2419 | dependencies: 2420 | deep-is "~0.1.3" 2421 | fast-levenshtein "~2.0.4" 2422 | levn "~0.3.0" 2423 | prelude-ls "~1.1.2" 2424 | type-check "~0.3.2" 2425 | wordwrap "~1.0.0" 2426 | 2427 | orchestrator@^0.3.0: 2428 | version "0.3.8" 2429 | resolved "https://registry.yarnpkg.com/orchestrator/-/orchestrator-0.3.8.tgz#14e7e9e2764f7315fbac184e506c7aa6df94ad7e" 2430 | dependencies: 2431 | end-of-stream "~0.1.5" 2432 | sequencify "~0.0.7" 2433 | stream-consume "~0.1.0" 2434 | 2435 | ordered-read-streams@^0.1.0: 2436 | version "0.1.0" 2437 | resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz#fd565a9af8eb4473ba69b6ed8a34352cb552f126" 2438 | 2439 | os-homedir@^1.0.0, os-homedir@^1.0.1: 2440 | version "1.0.2" 2441 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 2442 | 2443 | os-locale@^1.4.0: 2444 | version "1.4.0" 2445 | resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" 2446 | dependencies: 2447 | lcid "^1.0.0" 2448 | 2449 | os-shim@^0.1.2: 2450 | version "0.1.3" 2451 | resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917" 2452 | 2453 | os-tmpdir@^1.0.1: 2454 | version "1.0.2" 2455 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 2456 | 2457 | p-limit@^1.1.0: 2458 | version "1.1.0" 2459 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc" 2460 | 2461 | p-locate@^2.0.0: 2462 | version "2.0.0" 2463 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" 2464 | dependencies: 2465 | p-limit "^1.1.0" 2466 | 2467 | parse-filepath@^1.0.1: 2468 | version "1.0.1" 2469 | resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.1.tgz#159d6155d43904d16c10ef698911da1e91969b73" 2470 | dependencies: 2471 | is-absolute "^0.2.3" 2472 | map-cache "^0.2.0" 2473 | path-root "^0.1.1" 2474 | 2475 | parse-github-repo-url@^1.3.0: 2476 | version "1.4.0" 2477 | resolved "https://registry.yarnpkg.com/parse-github-repo-url/-/parse-github-repo-url-1.4.0.tgz#286c53e2c9962e0641649ee3ac9508fca4dd959c" 2478 | 2479 | parse-glob@^3.0.4: 2480 | version "3.0.4" 2481 | resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" 2482 | dependencies: 2483 | glob-base "^0.3.0" 2484 | is-dotfile "^1.0.0" 2485 | is-extglob "^1.0.0" 2486 | is-glob "^2.0.0" 2487 | 2488 | parse-json@^2.2.0: 2489 | version "2.2.0" 2490 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" 2491 | dependencies: 2492 | error-ex "^1.2.0" 2493 | 2494 | parse-passwd@^1.0.0: 2495 | version "1.0.0" 2496 | resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" 2497 | 2498 | path-exists@^2.0.0: 2499 | version "2.1.0" 2500 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" 2501 | dependencies: 2502 | pinkie-promise "^2.0.0" 2503 | 2504 | path-exists@^3.0.0: 2505 | version "3.0.0" 2506 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 2507 | 2508 | path-is-absolute@^1.0.0: 2509 | version "1.0.1" 2510 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 2511 | 2512 | path-is-inside@^1.0.1: 2513 | version "1.0.2" 2514 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" 2515 | 2516 | path-parse@^1.0.5: 2517 | version "1.0.5" 2518 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" 2519 | 2520 | path-root-regex@^0.1.0: 2521 | version "0.1.2" 2522 | resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" 2523 | 2524 | path-root@^0.1.1: 2525 | version "0.1.1" 2526 | resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" 2527 | dependencies: 2528 | path-root-regex "^0.1.0" 2529 | 2530 | path-type@^1.0.0: 2531 | version "1.1.0" 2532 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" 2533 | dependencies: 2534 | graceful-fs "^4.1.2" 2535 | pify "^2.0.0" 2536 | pinkie-promise "^2.0.0" 2537 | 2538 | pause-stream@0.0.11: 2539 | version "0.0.11" 2540 | resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" 2541 | dependencies: 2542 | through "~2.3" 2543 | 2544 | pify@^2.0.0, pify@^2.3.0: 2545 | version "2.3.0" 2546 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 2547 | 2548 | pinkie-promise@^2.0.0, pinkie-promise@^2.0.1: 2549 | version "2.0.1" 2550 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 2551 | dependencies: 2552 | pinkie "^2.0.0" 2553 | 2554 | pinkie@^2.0.0: 2555 | version "2.0.4" 2556 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 2557 | 2558 | pkg-conf@^2.0.0: 2559 | version "2.0.0" 2560 | resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-2.0.0.tgz#071c87650403bccfb9c627f58751bfe47c067279" 2561 | dependencies: 2562 | find-up "^2.0.0" 2563 | load-json-file "^2.0.0" 2564 | 2565 | pkg-config@^1.1.0: 2566 | version "1.1.1" 2567 | resolved "https://registry.yarnpkg.com/pkg-config/-/pkg-config-1.1.1.tgz#557ef22d73da3c8837107766c52eadabde298fe4" 2568 | dependencies: 2569 | debug-log "^1.0.0" 2570 | find-root "^1.0.0" 2571 | xtend "^4.0.1" 2572 | 2573 | pkg-dir@^1.0.0: 2574 | version "1.0.0" 2575 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" 2576 | dependencies: 2577 | find-up "^1.0.0" 2578 | 2579 | pluralize@^1.2.1: 2580 | version "1.2.1" 2581 | resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" 2582 | 2583 | pre-commit@^1.1.3: 2584 | version "1.2.2" 2585 | resolved "https://registry.yarnpkg.com/pre-commit/-/pre-commit-1.2.2.tgz#dbcee0ee9de7235e57f79c56d7ce94641a69eec6" 2586 | dependencies: 2587 | cross-spawn "^5.0.1" 2588 | spawn-sync "^1.0.15" 2589 | which "1.2.x" 2590 | 2591 | prelude-ls@~1.1.2: 2592 | version "1.1.2" 2593 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 2594 | 2595 | preserve@^0.2.0: 2596 | version "0.2.0" 2597 | resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" 2598 | 2599 | pretty-hrtime@^1.0.0: 2600 | version "1.0.3" 2601 | resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" 2602 | 2603 | process-nextick-args@~1.0.6: 2604 | version "1.0.7" 2605 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" 2606 | 2607 | progress@^1.1.8: 2608 | version "1.1.8" 2609 | resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" 2610 | 2611 | ps-tree@^1.0.1: 2612 | version "1.1.0" 2613 | resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.1.0.tgz#b421b24140d6203f1ed3c76996b4427b08e8c014" 2614 | dependencies: 2615 | event-stream "~3.3.0" 2616 | 2617 | pseudomap@^1.0.1: 2618 | version "1.0.2" 2619 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" 2620 | 2621 | q@^1.4.1: 2622 | version "1.4.1" 2623 | resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" 2624 | 2625 | randomatic@^1.1.3: 2626 | version "1.1.6" 2627 | resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb" 2628 | dependencies: 2629 | is-number "^2.0.2" 2630 | kind-of "^3.0.2" 2631 | 2632 | read-pkg-up@^1.0.1: 2633 | version "1.0.1" 2634 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" 2635 | dependencies: 2636 | find-up "^1.0.0" 2637 | read-pkg "^1.0.0" 2638 | 2639 | read-pkg@^1.0.0, read-pkg@^1.1.0: 2640 | version "1.1.0" 2641 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" 2642 | dependencies: 2643 | load-json-file "^1.0.0" 2644 | normalize-package-data "^2.3.2" 2645 | path-type "^1.0.0" 2646 | 2647 | "readable-stream@>=1.0.33-1 <1.1.0-0": 2648 | version "1.0.34" 2649 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" 2650 | dependencies: 2651 | core-util-is "~1.0.0" 2652 | inherits "~2.0.1" 2653 | isarray "0.0.1" 2654 | string_decoder "~0.10.x" 2655 | 2656 | readable-stream@^2.1.5, readable-stream@^2.2.2: 2657 | version "2.2.6" 2658 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.6.tgz#8b43aed76e71483938d12a8d46c6cf1a00b1f816" 2659 | dependencies: 2660 | buffer-shims "^1.0.0" 2661 | core-util-is "~1.0.0" 2662 | inherits "~2.0.1" 2663 | isarray "~1.0.0" 2664 | process-nextick-args "~1.0.6" 2665 | string_decoder "~0.10.x" 2666 | util-deprecate "~1.0.1" 2667 | 2668 | readable-stream@~1.1.9: 2669 | version "1.1.14" 2670 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" 2671 | dependencies: 2672 | core-util-is "~1.0.0" 2673 | inherits "~2.0.1" 2674 | isarray "0.0.1" 2675 | string_decoder "~0.10.x" 2676 | 2677 | readline2@^1.0.1: 2678 | version "1.0.1" 2679 | resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" 2680 | dependencies: 2681 | code-point-at "^1.0.0" 2682 | is-fullwidth-code-point "^1.0.0" 2683 | mute-stream "0.0.5" 2684 | 2685 | rechoir@^0.6.2: 2686 | version "0.6.2" 2687 | resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" 2688 | dependencies: 2689 | resolve "^1.1.6" 2690 | 2691 | redent@^1.0.0: 2692 | version "1.0.0" 2693 | resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" 2694 | dependencies: 2695 | indent-string "^2.1.0" 2696 | strip-indent "^1.0.1" 2697 | 2698 | redolent@^2.0.3: 2699 | version "2.0.3" 2700 | resolved "https://registry.yarnpkg.com/redolent/-/redolent-2.0.3.tgz#aaf3a507f80f74d796fa3c25b7cd91a92d54a51e" 2701 | dependencies: 2702 | native-or-another "^5.0.1" 2703 | 2704 | regenerator-runtime@^0.10.0: 2705 | version "0.10.3" 2706 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.3.tgz#8c4367a904b51ea62a908ac310bf99ff90a82a3e" 2707 | 2708 | regex-cache@^0.4.2: 2709 | version "0.4.3" 2710 | resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" 2711 | dependencies: 2712 | is-equal-shallow "^0.1.3" 2713 | is-primitive "^2.0.0" 2714 | 2715 | repeat-element@^1.1.2: 2716 | version "1.1.2" 2717 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" 2718 | 2719 | repeat-string@^1.5.2: 2720 | version "1.6.1" 2721 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" 2722 | 2723 | repeating@^2.0.0: 2724 | version "2.0.1" 2725 | resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" 2726 | dependencies: 2727 | is-finite "^1.0.0" 2728 | 2729 | replace-ext@0.0.1: 2730 | version "0.0.1" 2731 | resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" 2732 | 2733 | require-dir@^0.1.0: 2734 | version "0.1.0" 2735 | resolved "https://registry.yarnpkg.com/require-dir/-/require-dir-0.1.0.tgz#81e01e299faf5b74c34b6594f8e5add5985ddec5" 2736 | 2737 | require-directory@^2.1.1: 2738 | version "2.1.1" 2739 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 2740 | 2741 | require-main-filename@^1.0.1: 2742 | version "1.0.1" 2743 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" 2744 | 2745 | require-uncached@^1.0.2: 2746 | version "1.0.3" 2747 | resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" 2748 | dependencies: 2749 | caller-path "^0.1.0" 2750 | resolve-from "^1.0.0" 2751 | 2752 | resolve-dir@^0.1.0: 2753 | version "0.1.1" 2754 | resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-0.1.1.tgz#b219259a5602fac5c5c496ad894a6e8cc430261e" 2755 | dependencies: 2756 | expand-tilde "^1.2.2" 2757 | global-modules "^0.2.3" 2758 | 2759 | resolve-from@^1.0.0: 2760 | version "1.0.1" 2761 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" 2762 | 2763 | resolve-from@^2.0.0: 2764 | version "2.0.0" 2765 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" 2766 | 2767 | resolve@^1.1.6, resolve@^1.1.7: 2768 | version "1.3.2" 2769 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.2.tgz#1f0442c9e0cbb8136e87b9305f932f46c7f28235" 2770 | dependencies: 2771 | path-parse "^1.0.5" 2772 | 2773 | restore-cursor@^1.0.1: 2774 | version "1.0.1" 2775 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" 2776 | dependencies: 2777 | exit-hook "^1.0.0" 2778 | onetime "^1.0.0" 2779 | 2780 | right-align@^0.1.1: 2781 | version "0.1.3" 2782 | resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" 2783 | dependencies: 2784 | align-text "^0.1.1" 2785 | 2786 | rimraf@^2.2.8, rimraf@^2.3.3, rimraf@^2.4.3, rimraf@^2.4.4, rimraf@^2.5.4: 2787 | version "2.6.1" 2788 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" 2789 | dependencies: 2790 | glob "^7.0.5" 2791 | 2792 | run-async@^0.1.0: 2793 | version "0.1.0" 2794 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" 2795 | dependencies: 2796 | once "^1.3.0" 2797 | 2798 | run-parallel@^1.1.2: 2799 | version "1.1.6" 2800 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.6.tgz#29003c9a2163e01e2d2dfc90575f2c6c1d61a039" 2801 | 2802 | rx-lite@^3.1.2: 2803 | version "3.1.2" 2804 | resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" 2805 | 2806 | "semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.1.0, semver@^5.3.0: 2807 | version "5.3.0" 2808 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" 2809 | 2810 | semver@^4.1.0: 2811 | version "4.3.6" 2812 | resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" 2813 | 2814 | sequencify@~0.0.7: 2815 | version "0.0.7" 2816 | resolved "https://registry.yarnpkg.com/sequencify/-/sequencify-0.0.7.tgz#90cff19d02e07027fd767f5ead3e7b95d1e7380c" 2817 | 2818 | set-blocking@^2.0.0: 2819 | version "2.0.0" 2820 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 2821 | 2822 | set-getter@^0.1.0: 2823 | version "0.1.0" 2824 | resolved "https://registry.yarnpkg.com/set-getter/-/set-getter-0.1.0.tgz#d769c182c9d5a51f409145f2fba82e5e86e80376" 2825 | dependencies: 2826 | to-object-path "^0.3.0" 2827 | 2828 | shebang-command@^1.2.0: 2829 | version "1.2.0" 2830 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 2831 | dependencies: 2832 | shebang-regex "^1.0.0" 2833 | 2834 | shebang-regex@^1.0.0: 2835 | version "1.0.0" 2836 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 2837 | 2838 | shell-quote@^1.6.1: 2839 | version "1.6.1" 2840 | resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" 2841 | dependencies: 2842 | array-filter "~0.0.0" 2843 | array-map "~0.0.0" 2844 | array-reduce "~0.0.0" 2845 | jsonify "~0.0.0" 2846 | 2847 | shelljs@0.5.3: 2848 | version "0.5.3" 2849 | resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.5.3.tgz#c54982b996c76ef0c1e6b59fbdc5825f5b713113" 2850 | 2851 | shelljs@^0.7.5: 2852 | version "0.7.7" 2853 | resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.7.tgz#b2f5c77ef97148f4b4f6e22682e10bba8667cff1" 2854 | dependencies: 2855 | glob "^7.0.0" 2856 | interpret "^1.0.0" 2857 | rechoir "^0.6.2" 2858 | 2859 | sigmund@~1.0.0: 2860 | version "1.0.1" 2861 | resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" 2862 | 2863 | signal-exit@^2.0.0: 2864 | version "2.1.2" 2865 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-2.1.2.tgz#375879b1f92ebc3b334480d038dc546a6d558564" 2866 | 2867 | signal-exit@^3.0.0, signal-exit@^3.0.1: 2868 | version "3.0.2" 2869 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 2870 | 2871 | slice-ansi@0.0.4: 2872 | version "0.0.4" 2873 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" 2874 | 2875 | slide@^1.1.5: 2876 | version "1.1.6" 2877 | resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" 2878 | 2879 | source-map@^0.4.4: 2880 | version "0.4.4" 2881 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" 2882 | dependencies: 2883 | amdefine ">=0.0.4" 2884 | 2885 | source-map@^0.5.0, source-map@^0.5.3, source-map@~0.5.1: 2886 | version "0.5.6" 2887 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" 2888 | 2889 | sparkles@^1.0.0: 2890 | version "1.0.0" 2891 | resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3" 2892 | 2893 | spawn-sync@^1.0.15: 2894 | version "1.0.15" 2895 | resolved "https://registry.yarnpkg.com/spawn-sync/-/spawn-sync-1.0.15.tgz#b00799557eb7fb0c8376c29d44e8a1ea67e57476" 2896 | dependencies: 2897 | concat-stream "^1.4.7" 2898 | os-shim "^0.1.2" 2899 | 2900 | spawn-wrap@1.2.4: 2901 | version "1.2.4" 2902 | resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.2.4.tgz#920eb211a769c093eebfbd5b0e7a5d2e68ab2e40" 2903 | dependencies: 2904 | foreground-child "^1.3.3" 2905 | mkdirp "^0.5.0" 2906 | os-homedir "^1.0.1" 2907 | rimraf "^2.3.3" 2908 | signal-exit "^2.0.0" 2909 | which "^1.2.4" 2910 | 2911 | spdx-correct@~1.0.0: 2912 | version "1.0.2" 2913 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" 2914 | dependencies: 2915 | spdx-license-ids "^1.0.2" 2916 | 2917 | spdx-expression-parse@~1.0.0: 2918 | version "1.0.4" 2919 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" 2920 | 2921 | spdx-license-ids@^1.0.2: 2922 | version "1.2.2" 2923 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" 2924 | 2925 | split2@^2.0.0: 2926 | version "2.1.1" 2927 | resolved "https://registry.yarnpkg.com/split2/-/split2-2.1.1.tgz#7a1f551e176a90ecd3345f7246a0cfe175ef4fd0" 2928 | dependencies: 2929 | through2 "^2.0.2" 2930 | 2931 | split@0.3: 2932 | version "0.3.3" 2933 | resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" 2934 | dependencies: 2935 | through "2" 2936 | 2937 | split@^1.0.0: 2938 | version "1.0.0" 2939 | resolved "https://registry.yarnpkg.com/split/-/split-1.0.0.tgz#c4395ce683abcd254bc28fe1dabb6e5c27dcffae" 2940 | dependencies: 2941 | through "2" 2942 | 2943 | sprintf-js@~1.0.2: 2944 | version "1.0.3" 2945 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 2946 | 2947 | stack-utils-node-internals@^1.0.1: 2948 | version "1.0.1" 2949 | resolved "https://registry.yarnpkg.com/stack-utils-node-internals/-/stack-utils-node-internals-1.0.1.tgz#ab4a8a469b6cbec72b0bfb589df5e28b1d12281f" 2950 | 2951 | stacktrace-metadata@^2.0.1: 2952 | version "2.0.4" 2953 | resolved "https://registry.yarnpkg.com/stacktrace-metadata/-/stacktrace-metadata-2.0.4.tgz#fd126eec712e998165dfc9ed848a92ba5d4b11db" 2954 | dependencies: 2955 | clean-stacktrace "^1.1.0" 2956 | clean-stacktrace-metadata "^1.0.6" 2957 | clean-stacktrace-relative-paths "^1.0.3" 2958 | extend-shallow "^2.0.1" 2959 | find-callsite "^1.1.3" 2960 | 2961 | standard-engine@~5.4.0: 2962 | version "5.4.0" 2963 | resolved "https://registry.yarnpkg.com/standard-engine/-/standard-engine-5.4.0.tgz#e0e86959ea0786425d3383e40c1bf70d2f985579" 2964 | dependencies: 2965 | deglob "^2.1.0" 2966 | get-stdin "^5.0.1" 2967 | home-or-tmp "^2.0.0" 2968 | minimist "^1.1.0" 2969 | pkg-conf "^2.0.0" 2970 | 2971 | standard-version@^3.0.0: 2972 | version "3.0.0" 2973 | resolved "https://registry.yarnpkg.com/standard-version/-/standard-version-3.0.0.tgz#dc1dc9f6ad3436e3ace8a9b050634d8a04762929" 2974 | dependencies: 2975 | chalk "^1.1.3" 2976 | conventional-changelog "^1.1.0" 2977 | conventional-recommended-bump "^0.3.0" 2978 | figures "^1.5.0" 2979 | fs-access "^1.0.0" 2980 | object-assign "^4.1.0" 2981 | semver "^5.1.0" 2982 | yargs "^6.0.0" 2983 | 2984 | standard@^9.0.0: 2985 | version "9.0.2" 2986 | resolved "https://registry.yarnpkg.com/standard/-/standard-9.0.2.tgz#9bd3b9467492e212b1914d78553943ff9b48fd99" 2987 | dependencies: 2988 | eslint "~3.18.0" 2989 | eslint-config-standard "7.1.0" 2990 | eslint-config-standard-jsx "3.3.0" 2991 | eslint-plugin-promise "~3.4.0" 2992 | eslint-plugin-react "~6.9.0" 2993 | eslint-plugin-standard "~2.0.1" 2994 | standard-engine "~5.4.0" 2995 | 2996 | stream-combiner@~0.0.4: 2997 | version "0.0.4" 2998 | resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" 2999 | dependencies: 3000 | duplexer "~0.1.1" 3001 | 3002 | stream-consume@~0.1.0: 3003 | version "0.1.0" 3004 | resolved "https://registry.yarnpkg.com/stream-consume/-/stream-consume-0.1.0.tgz#a41ead1a6d6081ceb79f65b061901b6d8f3d1d0f" 3005 | 3006 | stream-exhaust@^1.0.1: 3007 | version "1.0.1" 3008 | resolved "https://registry.yarnpkg.com/stream-exhaust/-/stream-exhaust-1.0.1.tgz#c0c4455e54ce5a179ca8736e73334b4e7fd67553" 3009 | 3010 | string-width@^1.0.1, string-width@^1.0.2: 3011 | version "1.0.2" 3012 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 3013 | dependencies: 3014 | code-point-at "^1.0.0" 3015 | is-fullwidth-code-point "^1.0.0" 3016 | strip-ansi "^3.0.0" 3017 | 3018 | string-width@^2.0.0: 3019 | version "2.0.0" 3020 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e" 3021 | dependencies: 3022 | is-fullwidth-code-point "^2.0.0" 3023 | strip-ansi "^3.0.0" 3024 | 3025 | string.prototype.padend@^3.0.0: 3026 | version "3.0.0" 3027 | resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz#f3aaef7c1719f170c5eab1c32bf780d96e21f2f0" 3028 | dependencies: 3029 | define-properties "^1.1.2" 3030 | es-abstract "^1.4.3" 3031 | function-bind "^1.0.2" 3032 | 3033 | string_decoder@~0.10.x: 3034 | version "0.10.31" 3035 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" 3036 | 3037 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 3038 | version "3.0.1" 3039 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 3040 | dependencies: 3041 | ansi-regex "^2.0.0" 3042 | 3043 | strip-bom@^1.0.0: 3044 | version "1.0.0" 3045 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-1.0.0.tgz#85b8862f3844b5a6d5ec8467a93598173a36f794" 3046 | dependencies: 3047 | first-chunk-stream "^1.0.0" 3048 | is-utf8 "^0.2.0" 3049 | 3050 | strip-bom@^2.0.0: 3051 | version "2.0.0" 3052 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" 3053 | dependencies: 3054 | is-utf8 "^0.2.0" 3055 | 3056 | strip-bom@^3.0.0: 3057 | version "3.0.0" 3058 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 3059 | 3060 | strip-indent@^1.0.1: 3061 | version "1.0.1" 3062 | resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" 3063 | dependencies: 3064 | get-stdin "^4.0.1" 3065 | 3066 | strip-json-comments@2.0.1, strip-json-comments@~2.0.1: 3067 | version "2.0.1" 3068 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 3069 | 3070 | success-symbol@^0.1.0: 3071 | version "0.1.0" 3072 | resolved "https://registry.yarnpkg.com/success-symbol/-/success-symbol-0.1.0.tgz#24022e486f3bf1cdca094283b769c472d3b72897" 3073 | 3074 | supports-color@^2.0.0: 3075 | version "2.0.0" 3076 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 3077 | 3078 | supports-color@^3.1.2: 3079 | version "3.2.3" 3080 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" 3081 | dependencies: 3082 | has-flag "^1.0.0" 3083 | 3084 | table@^3.7.8: 3085 | version "3.8.3" 3086 | resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" 3087 | dependencies: 3088 | ajv "^4.7.0" 3089 | ajv-keywords "^1.0.0" 3090 | chalk "^1.1.1" 3091 | lodash "^4.0.0" 3092 | slice-ansi "0.0.4" 3093 | string-width "^2.0.0" 3094 | 3095 | test-exclude@^3.3.0: 3096 | version "3.3.0" 3097 | resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-3.3.0.tgz#7a17ca1239988c98367b0621456dbb7d4bc38977" 3098 | dependencies: 3099 | arrify "^1.0.1" 3100 | micromatch "^2.3.11" 3101 | object-assign "^4.1.0" 3102 | read-pkg-up "^1.0.1" 3103 | require-main-filename "^1.0.1" 3104 | 3105 | text-extensions@^1.0.0: 3106 | version "1.4.0" 3107 | resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.4.0.tgz#c385d2e80879fe6ef97893e1709d88d9453726e9" 3108 | 3109 | text-table@~0.2.0: 3110 | version "0.2.0" 3111 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 3112 | 3113 | through2@^0.6.1, through2@^0.6.5: 3114 | version "0.6.5" 3115 | resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" 3116 | dependencies: 3117 | readable-stream ">=1.0.33-1 <1.1.0-0" 3118 | xtend ">=4.0.0 <4.1.0-0" 3119 | 3120 | through2@^2.0.0, through2@^2.0.2: 3121 | version "2.0.3" 3122 | resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" 3123 | dependencies: 3124 | readable-stream "^2.1.5" 3125 | xtend "~4.0.1" 3126 | 3127 | through@2, "through@>=2.2.7 <3", through@^2.3.6, through@~2.3, through@~2.3.1: 3128 | version "2.3.8" 3129 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 3130 | 3131 | tildify@^1.0.0: 3132 | version "1.2.0" 3133 | resolved "https://registry.yarnpkg.com/tildify/-/tildify-1.2.0.tgz#dcec03f55dca9b7aa3e5b04f21817eb56e63588a" 3134 | dependencies: 3135 | os-homedir "^1.0.0" 3136 | 3137 | time-stamp@^1.0.0: 3138 | version "1.0.1" 3139 | resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.0.1.tgz#9f4bd23559c9365966f3302dbba2b07c6b99b151" 3140 | 3141 | to-fast-properties@^1.0.1: 3142 | version "1.0.2" 3143 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.2.tgz#f3f5c0c3ba7299a7ef99427e44633257ade43320" 3144 | 3145 | to-object-path@^0.3.0: 3146 | version "0.3.0" 3147 | resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" 3148 | dependencies: 3149 | kind-of "^3.0.2" 3150 | 3151 | trim-newlines@^1.0.0: 3152 | version "1.0.0" 3153 | resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" 3154 | 3155 | trim-off-newlines@^1.0.0: 3156 | version "1.0.1" 3157 | resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" 3158 | 3159 | trim-right@^1.0.1: 3160 | version "1.0.1" 3161 | resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" 3162 | 3163 | try-catch-callback@^2.0.0, try-catch-callback@^2.0.2: 3164 | version "2.0.2" 3165 | resolved "https://registry.yarnpkg.com/try-catch-callback/-/try-catch-callback-2.0.2.tgz#3ca71efa4242d8a45ee1c02c91bd17a150cdd534" 3166 | dependencies: 3167 | extend-shallow "^2.0.1" 3168 | 3169 | try-catch-core@^2.0.2: 3170 | version "2.0.3" 3171 | resolved "https://registry.yarnpkg.com/try-catch-core/-/try-catch-core-2.0.3.tgz#7835ccb1d472b7167d688c8cc4f7d4f695eefa22" 3172 | dependencies: 3173 | dezalgo "^1.0.3" 3174 | extend-shallow "^2.0.1" 3175 | is-async-function "^1.2.2" 3176 | once "^1.4.0" 3177 | try-catch-callback "^2.0.0" 3178 | 3179 | tryit@^1.0.1: 3180 | version "1.0.3" 3181 | resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" 3182 | 3183 | type-check@~0.3.2: 3184 | version "0.3.2" 3185 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 3186 | dependencies: 3187 | prelude-ls "~1.1.2" 3188 | 3189 | typedarray@^0.0.6: 3190 | version "0.0.6" 3191 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" 3192 | 3193 | uglify-js@^2.6: 3194 | version "2.8.13" 3195 | resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.13.tgz#d0cdf02f3c661484fac601b7e723207b735a374c" 3196 | dependencies: 3197 | source-map "~0.5.1" 3198 | uglify-to-browserify "~1.0.0" 3199 | yargs "~3.10.0" 3200 | 3201 | uglify-to-browserify@~1.0.0: 3202 | version "1.0.2" 3203 | resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" 3204 | 3205 | unc-path-regex@^0.1.0: 3206 | version "0.1.2" 3207 | resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" 3208 | 3209 | uniq@^1.0.1: 3210 | version "1.0.1" 3211 | resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" 3212 | 3213 | unique-stream@^1.0.0: 3214 | version "1.0.0" 3215 | resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-1.0.0.tgz#d59a4a75427447d9aa6c91e70263f8d26a4b104b" 3216 | 3217 | user-home@^1.1.1: 3218 | version "1.1.1" 3219 | resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" 3220 | 3221 | user-home@^2.0.0: 3222 | version "2.0.0" 3223 | resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" 3224 | dependencies: 3225 | os-homedir "^1.0.0" 3226 | 3227 | util-deprecate@~1.0.1: 3228 | version "1.0.2" 3229 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 3230 | 3231 | v8flags@^2.0.2: 3232 | version "2.0.11" 3233 | resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.0.11.tgz#bca8f30f0d6d60612cc2c00641e6962d42ae6881" 3234 | dependencies: 3235 | user-home "^1.1.1" 3236 | 3237 | validate-npm-package-license@^3.0.1: 3238 | version "3.0.1" 3239 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" 3240 | dependencies: 3241 | spdx-correct "~1.0.0" 3242 | spdx-expression-parse "~1.0.0" 3243 | 3244 | vinyl-fs@^0.3.0: 3245 | version "0.3.14" 3246 | resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-0.3.14.tgz#9a6851ce1cac1c1cea5fe86c0931d620c2cfa9e6" 3247 | dependencies: 3248 | defaults "^1.0.0" 3249 | glob-stream "^3.1.5" 3250 | glob-watcher "^0.0.6" 3251 | graceful-fs "^3.0.0" 3252 | mkdirp "^0.5.0" 3253 | strip-bom "^1.0.0" 3254 | through2 "^0.6.1" 3255 | vinyl "^0.4.0" 3256 | 3257 | vinyl@^0.4.0: 3258 | version "0.4.6" 3259 | resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847" 3260 | dependencies: 3261 | clone "^0.2.0" 3262 | clone-stats "^0.0.1" 3263 | 3264 | vinyl@^0.5.0: 3265 | version "0.5.3" 3266 | resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde" 3267 | dependencies: 3268 | clone "^1.0.0" 3269 | clone-stats "^0.0.1" 3270 | replace-ext "0.0.1" 3271 | 3272 | which-module@^1.0.0: 3273 | version "1.0.0" 3274 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" 3275 | 3276 | which@1.2.x, which@^1.2.12, which@^1.2.4, which@^1.2.9: 3277 | version "1.2.12" 3278 | resolved "https://registry.yarnpkg.com/which/-/which-1.2.12.tgz#de67b5e450269f194909ef23ece4ebe416fa1192" 3279 | dependencies: 3280 | isexe "^1.1.1" 3281 | 3282 | window-size@0.1.0: 3283 | version "0.1.0" 3284 | resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" 3285 | 3286 | word-wrap@^1.0.3: 3287 | version "1.2.1" 3288 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.1.tgz#248f459b465d179a17bc407c854d3151d07e45d8" 3289 | 3290 | wordwrap@0.0.2: 3291 | version "0.0.2" 3292 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" 3293 | 3294 | wordwrap@~0.0.2: 3295 | version "0.0.3" 3296 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" 3297 | 3298 | wordwrap@~1.0.0: 3299 | version "1.0.0" 3300 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" 3301 | 3302 | wrap-ansi@^2.0.0: 3303 | version "2.1.0" 3304 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" 3305 | dependencies: 3306 | string-width "^1.0.1" 3307 | strip-ansi "^3.0.1" 3308 | 3309 | wrappy@1: 3310 | version "1.0.2" 3311 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 3312 | 3313 | write-file-atomic@^1.1.4: 3314 | version "1.3.1" 3315 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.1.tgz#7d45ba32316328dd1ec7d90f60ebc0d845bb759a" 3316 | dependencies: 3317 | graceful-fs "^4.1.11" 3318 | imurmurhash "^0.1.4" 3319 | slide "^1.1.5" 3320 | 3321 | write@^0.2.1: 3322 | version "0.2.1" 3323 | resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" 3324 | dependencies: 3325 | mkdirp "^0.5.1" 3326 | 3327 | "xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: 3328 | version "4.0.1" 3329 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" 3330 | 3331 | y18n@^3.2.1: 3332 | version "3.2.1" 3333 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" 3334 | 3335 | yallist@^2.0.0: 3336 | version "2.1.2" 3337 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" 3338 | 3339 | yargs-parser@^4.0.2, yargs-parser@^4.2.0: 3340 | version "4.2.1" 3341 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" 3342 | dependencies: 3343 | camelcase "^3.0.0" 3344 | 3345 | yargs@^6.0.0, yargs@^6.6.0: 3346 | version "6.6.0" 3347 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" 3348 | dependencies: 3349 | camelcase "^3.0.0" 3350 | cliui "^3.2.0" 3351 | decamelize "^1.1.1" 3352 | get-caller-file "^1.0.1" 3353 | os-locale "^1.4.0" 3354 | read-pkg-up "^1.0.1" 3355 | require-directory "^2.1.1" 3356 | require-main-filename "^1.0.1" 3357 | set-blocking "^2.0.0" 3358 | string-width "^1.0.2" 3359 | which-module "^1.0.0" 3360 | y18n "^3.2.1" 3361 | yargs-parser "^4.2.0" 3362 | 3363 | yargs@~3.10.0: 3364 | version "3.10.0" 3365 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" 3366 | dependencies: 3367 | camelcase "^1.0.2" 3368 | cliui "^2.1.0" 3369 | decamelize "^1.0.0" 3370 | window-size "0.1.0" 3371 | --------------------------------------------------------------------------------