├── .flowconfig ├── .gitignore ├── LICENSE ├── README.md ├── docs ├── img │ └── examples-getting-started.png └── index.html ├── example ├── README.md ├── index.js ├── templates │ ├── README.md │ ├── _layouts │ │ └── email-transactional.html │ ├── welcome-css-preprocessor │ │ ├── email.html │ │ ├── email.scss │ │ └── index.js │ ├── welcome-localized-simple │ │ ├── email-en.html │ │ ├── email-fr.html │ │ └── index.js │ ├── welcome-multi-channels │ │ ├── email.html │ │ └── index.js │ └── welcome-simple.js └── util.js ├── index.js ├── package.json ├── types.js └── yarn.lock /.flowconfig: -------------------------------------------------------------------------------- 1 | [ignore] 2 | 3 | [include] 4 | 5 | [libs] 6 | 7 | [options] 8 | module.ignore_non_literal_requires=true 9 | suppress_comment= \\(.\\|\n\\)*\\$FlowIgnore 10 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | yarn-error.log 3 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 David Brown 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 |

2 | 3 | Notif.me 4 | 5 |

6 | 7 |

8 | Template plugin for Notif.me SDK. 9 |

10 | 11 |

12 | npm-status 13 | js-standard-style 14 | flow-typed 15 | license 16 |

17 | 18 | - [Features](#features) 19 | - [Getting started](#getting-started) 20 | - [How to use](#how-to-use) 21 | - [Contributing](#contributing) 22 | - [Need help? Found a bug?](#need-help-found-a-bug) 23 | 24 | ## Features 25 | 26 | * **All your notifications in one place** — Define all your `email`, `sms`, `push`, and `webpush` templates in one folder :thumbsup: 27 | 28 | * **Choose your template engine** — `facebook/react`, `mozilla/nunjucks`, `handlebars.js`, `mustache.js`, `lodash`, `underscore`, `marko`, `doT`, `swig`, `linkedin/dustjs`, `twig.js`, `ejs`... and many more. Literally the one you want :dancer: 29 | 30 | * **Complete control** — No magic: you define all the behaviours you need (layouts, CSS preprocessor...) :rocket: 31 | 32 | * **No dependencies** — Lightning fast installation :zap: 33 | 34 | * **Localization** — Easily implement i18n/l10n for all your notifications :globe_with_meridians: 35 | 36 | * **CSS inlining** — Add [Juice](https://github.com/Automattic/juice) to your dependencies and the CSS in your emails will automatically be inlined :ribbon: 37 | 38 | * **MIT license** — Use it like you want. 39 | 40 | ## Getting Started 41 | 42 | ```shell 43 | $ yarn add notifme-template 44 | ``` 45 | 46 | ```javascript 47 | // Example with nunjucks template engine ($ yarn add nunjucks) 48 | const nunjucks = require('nunjucks') 49 | const getRenderer = require('notifme-template') 50 | 51 | const render = getRenderer(nunjucks.renderString, './templates') 52 | 53 | const data = {user: {firstname: 'John', email: 'john@example.com', ...}} 54 | render('welcome', data, 'en-US').then((notification) => { 55 | // Send the notification on its channels 56 | }) 57 | ``` 58 | 59 | ```javascript 60 | // ./templates/welcome.js 61 | module.exports = () => ({ 62 | name: 'welcome', 63 | title: 'Welcome {{user.firstname}}', 64 | version: 1, 65 | channels: { 66 | sms: { 67 | from: '{{smsFrom}}', 68 | to: '{{user.phone}}', 69 | text: "Hi {{user.firstname}}, we're very happy to welcome you on board!" 70 | }, 71 | email: { 72 | from: '{{emailFrom}}', 73 | to: '{{user.email}}', 74 | subject: 'Welcome {{user.firstname}}', 75 | html: `{% extends "templates/_layouts/email-transactional.html" %} 76 | {% block content %} 77 | Hi {{user.firstname}},

78 | We're very happy to welcome you on board.

79 | See you soon! 80 | {% endblock %}` 81 | }, 82 | push: { 83 | registrationToken: '{{user.pushToken}}', 84 | title: 'Welcome {{user.firstname}}', 85 | body: "Hi {{user.firstname}}, we're very happy to welcome you on board" 86 | } 87 | }, 88 | sampleData: { 89 | smsFrom: 'Notifme', 90 | emailFrom: '"David, Notif.me team" ', 91 | user: { 92 | firstname: 'John', 93 | email: 'john@example.com', 94 | phone: '+15000000001', 95 | pushToken: 'xxxxx' 96 | } 97 | } 98 | }) 99 | ``` 100 | 101 | See a [complete working example](https://github.com/notifme/notifme-template/tree/master/example) for more details. 102 | 103 | ## How to use 104 | 105 | ### Constructor options 106 | 107 | ```javascript 108 | const getRenderer = require('notifme-template') 109 | 110 | const render = getRenderer(/* renderer, folder, options */) 111 | ``` 112 | 113 | | Argument name | Type | Required | Description | 114 | | --- | --- | --- | --- | 115 | | `renderer` | `Function` | `true` | Template engine function to use. It must implement (templateName: `string`, data: `Object`) => `string` | `Promise`. | 116 | | `folder` | `string` | `true` | The path to the folder containing all [your templates](#template-declaration). | 117 | | `options` | `Object` | `false` | See [options definition](https://github.com/notifme/notifme-template/blob/master/types.js#L6-L22). | 118 | 119 | This returns the `render` function [documented below](#render-method). 120 | 121 | ### Template declaration 122 | 123 | ``` 124 | project/ 125 | │ 126 | └───templates/ <= you can place this folder where you want and choose its name 127 | │ template1.js 128 | │ 129 | └───template2/ 130 | │ index.js 131 | ``` 132 | 133 | With the structure above, you will have two templates `template1` and `template2`. `notifme-template` makes a dynamic require ``` require(`${path.resolve(folder, templateName)}`) ``` the first time you call them. 134 | 135 | Each template must export a `function` implementing: `(lang: string) => TemplateType | Promise`. See [TemplateType definition](https://github.com/notifme/notifme-template/blob/master/types.js#L24-L119) and [examples](https://github.com/notifme/notifme-template/tree/master/example) for more details. 136 | 137 | ### `render` method 138 | 139 | ```javascript 140 | render(/* templateName, data, lang */).then((notification) => { 141 | // Send the notification on its channels 142 | }) 143 | ``` 144 | 145 | | Argument name | Type | Required | Description | 146 | | --- | --- | --- | --- | 147 | | `templateName` | `string` | `true` | The template name to use. | 148 | | `data` | `Object` | `true` | Data to use when rendering the notification. | 149 | | `lang` | `string` | `false` | User language. | 150 | 151 | This returns a `Promise` resolving with [the rendered template](https://github.com/notifme/notifme-template/blob/master/types.js#L24-L119). 152 | 153 | ## Contributing 154 | 155 | [![js-standard-style](https://img.shields.io/badge/codestyle-standard-brightgreen.svg?style=flat)](https://github.com/standard/standard) 156 | [![flow-typed](https://img.shields.io/badge/typing-Flow_Type-brightgreen.svg?style=flat)](https://flow.org/) 157 | 158 | Contributions are very welcome! 159 | 160 | To get started: [fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device. 161 | 162 | ```shell 163 | $ git clone git@github.com:[YOUR_USERNAME]/notifme-template.git && cd notifme-template 164 | $ yarn install 165 | ``` 166 | 167 | ## Need Help? Found a bug? 168 | 169 | [Submit an issue](https://github.com/notifme/notifme-template/issues) to the project Github if you need any help. 170 | And, of course, feel free to submit pull requests with bug fixes or changes. 171 | -------------------------------------------------------------------------------- /docs/img/examples-getting-started.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/notifme/notifme-template/1b5f50a798e90b35315448f4648a22eefdf82d58/docs/img/examples-getting-started.png -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | notifme/notifme-sdk: A Node.js library to send all kinds of transactional notifications. 9 | 10 | 11 | 12 | 13 | 28 | 29 | 30 | Fork me on GitHub 31 |

32 | 33 | Notif.me 34 | 35 |

36 |

37 | Template plugin for Notif.me SDK. 38 |

39 |

40 | npm-status 41 | js-standard-style 42 | flow-typed 43 | license 44 |

45 |

Features

46 |
    47 |
  • 48 |

    All your notifications in one place — Define all your email, sms, push, and webpush templates in one folder :+1:

    49 |
  • 50 |
  • 51 |

    Choose your template enginefacebook/react, mozilla/nunjucks, handlebars.js, mustache.js, lodash, underscore, marko, doT, swig, linkedin/dustjs, twig.js, ejs... and many more. Literally the one you want :dancer:

    52 |
  • 53 |
  • 54 |

    Complete control — No magic: you define all the behaviours you need (layouts, CSS preprocessor...) :rocket:

    55 |
  • 56 |
  • 57 |

    No dependencies — Lightning fast installation :zap:

    58 |
  • 59 |
  • 60 |

    Localization — Easily implement i18n/l10n for all your notifications :globe_with_meridians:

    61 |
  • 62 |
  • 63 |

    CSS inlining — Add Juice to your dependencies and the CSS in your emails will automatically be inlined :ribbon:

    64 |
  • 65 |
  • 66 |

    MIT license — Use it like you want.

    67 |
  • 68 |
69 |
70 |

71 | See complete documentation on GitHub 72 |

73 |
74 |
75 | 76 | 77 | -------------------------------------------------------------------------------- /example/README.md: -------------------------------------------------------------------------------- 1 | ## Examples 2 | 3 | This folder contains examples of ways to use `notifme-template`. 4 | 5 | `index.js` contains the code that instanciates the renderer, renders all the templates defined in the `templates` folder, and then send then to a devtool called [Notification Catcher](https://github.com/notifme/catcher). 6 | 7 | It uses [mozilla/nunjucks](https://github.com/mozilla/nunjucks) as template engine. 8 | Go to the [template folder](https://github.com/notifme/notifme-template/tree/master/example/templates) to check them out. 9 | 10 | 11 |

How to run

12 | 13 | ```shell 14 | $ git clone https://github.com/notifme/notifme-template.git && cd notifme-template 15 | $ yarn install 16 | $ yarn run notification-catcher 17 | $ # In a new terminal: 18 | $ yarn run dev 19 | $ # Open http://localhost:1080 20 | ``` 21 | 22 | You should see the [Notification Catcher](https://github.com/notifme/catcher) running: 23 | 24 | ![examples-getting-started](https://notifme.github.io/notifme-template/img/examples-getting-started.png) 25 | -------------------------------------------------------------------------------- /example/index.js: -------------------------------------------------------------------------------- 1 | const nunjucks = require('nunjucks') 2 | const NotifmeSdk = require('notifme-sdk').default 3 | const getRenderer = require('..') // notifme-template 4 | 5 | // Renderer (Example with nunjucks) 6 | nunjucks.configure({autoescape: false}) 7 | const render = getRenderer(nunjucks.renderString, 'example/templates') 8 | 9 | // Notif.me sender 10 | const notifmeSdk = new NotifmeSdk({ 11 | useNotificationCatcher: true 12 | }) 13 | 14 | // Render a template and send it 15 | const data = { 16 | smsFrom: 'Notifme', 17 | emailFrom: '"David, Notif.me team" ', 18 | user: { 19 | firstname: 'John', 20 | email: 'john@example.com', 21 | phone: '+15000000001', 22 | pushToken: 'xxxxx', 23 | webpush: { 24 | endpoint: 'xxxxx', 25 | keys: { 26 | auth: 'xxxxx', 27 | p256dh: 'xxxxx' 28 | } 29 | } 30 | } 31 | } 32 | 33 | // Multi-channels example 34 | render('welcome-multi-channels', data).then((notification) => { 35 | // Then select channels... 36 | // (you can do things like: if push or webpush exists, then don't send an SMS) 37 | notifmeSdk.send(notification.channels) 38 | }) 39 | 40 | // Simple multi-channels example 41 | render('welcome-simple', data).then((notification) => { 42 | notifmeSdk.send(notification.channels) 43 | }) 44 | 45 | // Localized example 46 | render('welcome-localized-simple', data, 'fr').then((notification) => { 47 | notifmeSdk.send(notification.channels) 48 | }) 49 | 50 | // Example with a CSS preprocessor 51 | render('welcome-css-preprocessor', data).then((notification) => { 52 | notifmeSdk.send(notification.channels) 53 | }) 54 | -------------------------------------------------------------------------------- /example/templates/README.md: -------------------------------------------------------------------------------- 1 | ## Templates 2 | 3 | In this folder you will find four different templates: 4 | 5 | * **welcome-simple** — This is a simple multi-channels template. 6 | 7 | * **welcome-multi-channels** — Same than `welcome-simple` but loading email html from an external file. 8 | 9 | * **welcome-css-preprocessor** — Example with [SASS](http://sass-lang.com/) as CSS preprocessor. You can also use less, stylus, styl, or any other preprocessor you want. 10 | 11 | * **welcome-localized-simple** — Simple example of a localized template. You can also add your favorite l10n library. 12 | -------------------------------------------------------------------------------- /example/templates/_layouts/email-transactional.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 17 | 18 | 24 | 25 | 33 | 40 | 43 | 48 | 49 | 50 |
51 | 56 |
57 | 58 | 59 | 60 | 105 | 106 | 107 |
61 | 64 |
65 | 66 | 67 | 68 | 77 | 78 | 79 | 83 | 84 | 85 | 92 | 93 | 94 | 97 | 98 | 99 |
69 | 70 | 71 | 72 | 73 | 74 | 75 |
76 |
80 |

81 | 82 |
86 |
87 | 88 | {% block content %}{% endblock %} 89 | 90 |
91 |
95 |
 
96 |
100 |
101 | 104 |
108 |
109 | 112 |
113 | 114 | 115 | -------------------------------------------------------------------------------- /example/templates/welcome-css-preprocessor/email.html: -------------------------------------------------------------------------------- 1 | {% extends "example/templates/_layouts/email-transactional.html" %} 2 | 3 | {% block content %} 4 | 7 | 8 |
9 | Hi {{user.firstname}},

10 | We're very happy to welcome you on board.

11 | See you soon! 12 |
13 | {% endblock %} 14 | -------------------------------------------------------------------------------- /example/templates/welcome-css-preprocessor/email.scss: -------------------------------------------------------------------------------- 1 | .content { 2 | text-align: center; 3 | 4 | .username { 5 | color: red; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /example/templates/welcome-css-preprocessor/index.js: -------------------------------------------------------------------------------- 1 | /* @flow */ 2 | /* :: import type {TemplateType} from '../../../types' */ // notifme-template/types 3 | 4 | const sass = require('node-sass') 5 | const path = require('path') 6 | const readFile = require('../../util').readFile 7 | 8 | function getCss (file) { 9 | return new Promise((resolve, reject) => { 10 | sass.render({file}, (error, result) => { 11 | error ? reject(error) : resolve(result.css.toString('utf8')) 12 | }) 13 | }) 14 | } 15 | 16 | function getTemplate () { 17 | return Promise.all([ 18 | readFile(path.join(__dirname, './email.html')), 19 | getCss(path.join(__dirname, './email.scss')) 20 | ]).then(([emailHtml, emailScss]) => 21 | constructWelcomeTemplate(`{% set extracss = "${emailScss}" %}\n\n${emailHtml}`) 22 | ) 23 | } 24 | 25 | function constructWelcomeTemplate (emailHtml) /* : TemplateType */ { 26 | return { 27 | name: 'welcome-css-preprocessor', 28 | title: 'Welcome {{user.firstname}}', 29 | version: 1, 30 | channels: { 31 | email: { 32 | from: '{{emailFrom}}', 33 | to: '{{user.email}}', 34 | subject: '[CSS] Welcome {{user.firstname}}', 35 | html: emailHtml 36 | } 37 | }, 38 | sampleData: { 39 | emailFrom: '"David, Notif.me team" ', 40 | user: { 41 | firstname: 'John', 42 | email: 'john@example.com' 43 | } 44 | } 45 | } 46 | } 47 | 48 | module.exports = getTemplate 49 | -------------------------------------------------------------------------------- /example/templates/welcome-localized-simple/email-en.html: -------------------------------------------------------------------------------- 1 | {% extends "example/templates/_layouts/email-transactional.html" %} 2 | 3 | {% block content %} 4 | Hi {{user.firstname}},

5 | We're very happy to welcome you on board.

6 | See you soon! 7 | {% endblock %} 8 | -------------------------------------------------------------------------------- /example/templates/welcome-localized-simple/email-fr.html: -------------------------------------------------------------------------------- 1 | {% extends "example/templates/_layouts/email-transactional.html" %} 2 | 3 | {% block content %} 4 | Bonjour {{user.firstname}},

5 | Tout l'équipage vous souhaite la bienvenue à bord.

6 | A bientôt! 7 | {% endblock %} 8 | -------------------------------------------------------------------------------- /example/templates/welcome-localized-simple/index.js: -------------------------------------------------------------------------------- 1 | /* @flow */ 2 | /* :: import type {TemplateType} from '../../../types' */ // notifme-template/types 3 | 4 | const path = require('path') 5 | const readFile = require('../../util').readFile 6 | 7 | const l10n = { 8 | 'email-template': { 9 | en: './email-en.html', 10 | fr: './email-fr.html' 11 | }, 12 | 'email.subject': { 13 | en: '[EN] Welcome {{user.firstname}}', 14 | fr: '[FR] Bienvenue {{user.firstname}}' 15 | } 16 | } 17 | function _ (key, lang) { 18 | return l10n[key] ? l10n[key][lang] || l10n[key][Object.keys(l10n[key])[0]] : '' 19 | } 20 | 21 | function getTemplate (lang /* : string */) { 22 | return readFile(path.join(__dirname, _('email-template', lang))) 23 | .then((emailHtml) => constructWelcomeTemplate(lang, emailHtml)) 24 | } 25 | 26 | function constructWelcomeTemplate (lang, emailHtml) /* : TemplateType */ { 27 | return { 28 | name: 'welcome-localized-simple', 29 | title: 'Welcome {{user.firstname}}', 30 | version: 1, 31 | channels: { 32 | email: { 33 | from: '{{emailFrom}}', 34 | to: '{{user.email}}', 35 | subject: _('email.subject', lang), 36 | html: emailHtml 37 | } 38 | }, 39 | sampleData: { 40 | emailFrom: '"David, Notif.me team" ', 41 | user: { 42 | firstname: 'John', 43 | email: 'john@example.com' 44 | } 45 | } 46 | } 47 | } 48 | 49 | module.exports = getTemplate 50 | -------------------------------------------------------------------------------- /example/templates/welcome-multi-channels/email.html: -------------------------------------------------------------------------------- 1 | {% extends "example/templates/_layouts/email-transactional.html" %} 2 | 3 | {% block content %} 4 | Hi {{user.firstname}},

5 | We're very happy to welcome you on board.

6 | See you soon! 7 | {% endblock %} 8 | -------------------------------------------------------------------------------- /example/templates/welcome-multi-channels/index.js: -------------------------------------------------------------------------------- 1 | /* @flow */ 2 | /* :: import type {TemplateType} from '../../../types' */ // notifme-template/types 3 | 4 | const path = require('path') 5 | const readFile = require('../../util').readFile 6 | 7 | function getTemplate () { 8 | return readFile(path.join(__dirname, './email.html')) 9 | .then((emailHtml) => constructWelcomeTemplate(emailHtml)) 10 | } 11 | 12 | function constructWelcomeTemplate (emailHtml) /* : TemplateType */ { 13 | return { 14 | name: 'welcome-multi-channels', 15 | title: 'Welcome {{user.firstname}}', 16 | version: 1, 17 | channels: { 18 | sms: { 19 | from: '{{smsFrom}}', 20 | to: '{{user.phone}}', 21 | text: "[Multi-channel] Hi {{user.firstname}}, we're very happy to welcome you on board!" 22 | }, 23 | email: { 24 | from: '{{emailFrom}}', 25 | to: '{{user.email}}', 26 | subject: '[Multi-channel] Welcome {{user.firstname}}', 27 | html: emailHtml 28 | }, 29 | push: { 30 | registrationToken: '{{user.pushToken}}', 31 | title: '[Multi-channel] Welcome {{user.firstname}}', 32 | body: "Hi {{user.firstname}}, we're very happy to welcome you on board" 33 | }, 34 | webpush: { 35 | subscription: { 36 | endpoint: '{{user.webpush.endpoint}}', 37 | keys: { 38 | auth: '{{user.webpush.keys.auth}}', 39 | p256dh: '{{user.webpush.keys.auth}}' 40 | } 41 | }, 42 | title: '[Multi-channel] Welcome {{user.firstname}}', 43 | body: "Hi {{user.firstname}}, we're very happy to welcome you on board", 44 | icon: 'https://fakeimg.pl/100x100/', 45 | image: 'https://fakeimg.pl/400x240/', 46 | actions: [ 47 | { 48 | action: 'share', 49 | title: 'Share with your friends', 50 | icon: 'https://cdnjs.cloudflare.com/ajax/libs/ionicons/2.0.1/png/512/android-share.png' 51 | } 52 | ], 53 | requireInteraction: true, 54 | redirects: { 55 | 'default': 'https://www.notif.me', 56 | share: 'https://www.notif.me/?click=share' 57 | } 58 | } 59 | }, 60 | sampleData: { 61 | smsFrom: 'Notifme', 62 | emailFrom: '"David, Notif.me team" ', 63 | user: { 64 | firstname: 'John', 65 | email: 'john@example.com', 66 | phone: '+15000000001', 67 | pushToken: 'xxxxx', 68 | webpush: { 69 | endpoint: 'xxxxx', 70 | keys: { 71 | auth: 'xxxxx', 72 | p256dh: 'xxxxx' 73 | } 74 | } 75 | } 76 | } 77 | } 78 | } 79 | 80 | module.exports = getTemplate 81 | -------------------------------------------------------------------------------- /example/templates/welcome-simple.js: -------------------------------------------------------------------------------- 1 | /* @flow */ 2 | /* :: import type {TemplateType} from '../../types' */ // notifme-template/types 3 | 4 | function getTemplate () /* : TemplateType */ { 5 | return { 6 | name: 'welcome-simple', 7 | title: 'Welcome {{user.firstname}}', 8 | version: 1, 9 | channels: { 10 | sms: { 11 | from: '{{smsFrom}}', 12 | to: '{{user.phone}}', 13 | text: "[Simple] Hi {{user.firstname}}, we're very happy to welcome you on board!" 14 | }, 15 | email: { 16 | from: '{{emailFrom}}', 17 | to: '{{user.email}}', 18 | subject: '[Simple] Welcome {{user.firstname}}', 19 | html: `{% extends "example/templates/_layouts/email-transactional.html" %} 20 | {% block content %} 21 | Hi {{user.firstname}},

22 | We're very happy to welcome you on board.

23 | See you soon! 24 | {% endblock %}` 25 | }, 26 | push: { 27 | registrationToken: '{{user.pushToken}}', 28 | title: '[Simple] Welcome {{user.firstname}}', 29 | body: "Hi {{user.firstname}}, we're very happy to welcome you on board" 30 | }, 31 | webpush: { 32 | subscription: { 33 | endpoint: '{{user.webpush.endpoint}}', 34 | keys: { 35 | auth: '{{user.webpush.keys.auth}}', 36 | p256dh: '{{user.webpush.keys.auth}}' 37 | } 38 | }, 39 | title: '[Simple] Welcome {{user.firstname}}', 40 | body: "Hi {{user.firstname}}, we're very happy to welcome you on board", 41 | icon: 'https://fakeimg.pl/100x100/', 42 | image: 'https://fakeimg.pl/400x240/', 43 | actions: [ 44 | { 45 | action: 'share', 46 | title: 'Share with your friends', 47 | icon: 'https://cdnjs.cloudflare.com/ajax/libs/ionicons/2.0.1/png/512/android-share.png' 48 | } 49 | ], 50 | requireInteraction: true, 51 | redirects: { 52 | 'default': 'https://www.notif.me', 53 | share: 'https://www.notif.me/?click=share' 54 | } 55 | } 56 | }, 57 | sampleData: { 58 | smsFrom: 'Notifme', 59 | emailFrom: '"David, Notif.me team" ', 60 | user: { 61 | firstname: 'John', 62 | email: 'john@example.com', 63 | phone: '+15000000001', 64 | pushToken: 'xxxxx', 65 | webpush: { 66 | endpoint: 'xxxxx', 67 | keys: { 68 | auth: 'xxxxx', 69 | p256dh: 'xxxxx' 70 | } 71 | } 72 | } 73 | } 74 | } 75 | } 76 | 77 | module.exports = getTemplate 78 | -------------------------------------------------------------------------------- /example/util.js: -------------------------------------------------------------------------------- 1 | /* @flow */ 2 | const fs = require('fs') 3 | 4 | function readFile (filePath /* : string */) { 5 | return new Promise((resolve, reject) => { 6 | fs.readFile(filePath, (error, content) => { 7 | error ? reject(error) : resolve(content.toString('utf8')) 8 | }) 9 | }) 10 | } 11 | 12 | module.exports = { 13 | readFile 14 | } 15 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | /* @flow */ 2 | /* :: import type {RendererType, OptionsType, TemplateType} from './types' */ 3 | 4 | const path = require('path') 5 | let juice 6 | try { 7 | juice = require('juice') 8 | } catch (error) { 9 | juice = null 10 | } 11 | 12 | function resolveObjectProperties (globalResolve /* : Function */, promiseObject /* : {[string]: Promise} */) { 13 | Promise.all(Object.keys(promiseObject).map((key) => { 14 | return new Promise((resolve) => { 15 | promiseObject[key].then((promise) => resolve({key, promise})) 16 | }) 17 | })).then((keyPromises) => globalResolve(keyPromises.reduce((acc, keyPromise) => { 18 | acc[keyPromise.key] = keyPromise.promise 19 | return acc 20 | }, {}))) 21 | } 22 | 23 | function render (renderer /* : RendererType */, chunk /* : any */, data /* : Object */) /* : Promise */ { 24 | return new Promise((resolve) => { 25 | if (typeof chunk === 'string') { 26 | Promise.resolve(renderer(chunk, data)).then(resolve) 27 | } else if (Array.isArray(chunk)) { 28 | Promise.all(chunk.map((value) => render(renderer, value, data))).then(resolve) 29 | } else if (chunk !== null && typeof chunk === 'object') { 30 | resolveObjectProperties(resolve, Object.keys(chunk).reduce((acc, key) => { 31 | acc[key] = render(renderer, chunk[key], data) 32 | return acc 33 | }, {})) 34 | } else { 35 | resolve(chunk) 36 | } 37 | }) 38 | } 39 | 40 | const templates = {} 41 | function getTemplateFromName (templateName /* : string */, folder /* : string */, lang /* : string */) { 42 | if (!templates[templateName]) { 43 | templates[templateName] = {} 44 | } 45 | if (!templates[templateName][lang]) { 46 | const getTemplate = require(`${path.resolve(folder, templateName)}`) 47 | templates[templateName][lang] = getTemplate(lang) 48 | } 49 | return Promise.resolve(templates[templateName][lang]) 50 | } 51 | 52 | function inlineCss (notif /* : TemplateType */, juiceOptions /* : $PropertyType */) { 53 | if (juice && juiceOptions !== false && notif && notif.channels && notif.channels.email && notif.channels.email.html) { 54 | // $FlowIgnore 55 | notif.channels.email.html = juice(notif.channels.email.html, Object.assign({}, {removeStyleTags: false}, juiceOptions)) 56 | } 57 | return notif 58 | } 59 | 60 | function filterChannelsWithEmptyContact (notif /* : TemplateType */) { 61 | if (notif && notif.channels) { 62 | if (notif.channels.email && !notif.channels.email.to) { 63 | delete notif.channels.email 64 | } 65 | if (notif.channels.sms && !notif.channels.sms.to) { 66 | delete notif.channels.sms 67 | } 68 | if (notif.channels.push && !notif.channels.push.registrationToken) { 69 | delete notif.channels.push 70 | } 71 | if (notif.channels.webpush && (!notif.channels.webpush.subscription || !notif.channels.webpush.subscription.endpoint)) { 72 | delete notif.channels.webpush 73 | } 74 | } 75 | return notif 76 | } 77 | 78 | module.exports = (renderer /* : RendererType */, folder /* : string */, options /* : OptionsType */ = {}) => { 79 | return (templateName /* : string */, data /* : Object */, lang /* : string */ = '') /* : Promise */ => { 80 | return new Promise((resolve) => { 81 | getTemplateFromName(templateName, folder, lang).then((template) => { 82 | render(renderer, template, data).then((notification) => { 83 | resolve(inlineCss(filterChannelsWithEmptyContact(notification), options.juice)) 84 | }) 85 | }) 86 | }) 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "notifme-template", 3 | "version": "1.0.0", 4 | "description": "A Node.js library to easily handle all your notification templates", 5 | "main": "index.js", 6 | "repository": "https://github.com/notifme/notifme-template", 7 | "author": "Notif.me", 8 | "license": "MIT", 9 | "scripts": { 10 | "dev": "node example/index.js", 11 | "lint": "yarn run flow && standard", 12 | "run-catcher": "notification-catcher", 13 | "test": "yarn run lint" 14 | }, 15 | "devDependencies": { 16 | "flow-bin": "^0.53.1", 17 | "node-sass": "^4.5.3", 18 | "notification-catcher": "^1.0.3", 19 | "notifme-sdk": "^1.0.1", 20 | "nunjucks": "^3.0.1", 21 | "standard": "^10.0.3" 22 | }, 23 | "optionalDependencies": { 24 | "juice": "^4.1.0" 25 | }, 26 | "files": [ 27 | "index.js", 28 | "types.js" 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /types.js: -------------------------------------------------------------------------------- 1 | /* @flow */ 2 | 3 | /* :: 4 | export type RendererType = (string, Object) => string | Promise 5 | 6 | export type OptionsType = { 7 | juice?: false | { // CSS inliner (see https://github.com/Automattic/juice) 8 | applyAttributesTableElements?: boolean, 9 | applyHeightAttributes?: boolean, 10 | applyStyleTags?: boolean, 11 | applyWidthAttributes?: boolean, 12 | extraCss?: string, 13 | insertPreservedExtraCss?: boolean, 14 | inlinePseudoElements?: boolean, 15 | preserveFontFaces?: boolean, 16 | preserveImportant?: boolean, 17 | preserveMediaQueries?: boolean, 18 | removeStyleTags?: boolean, 19 | webResources?: Object, 20 | xmlMode?: boolean 21 | } 22 | } 23 | 24 | export type TemplateType = { 25 | name: string, 26 | title: string, 27 | version: number, 28 | channels: { 29 | email?: { 30 | from: string, 31 | to: string, 32 | subject: string, 33 | cc?: string[], 34 | bcc?: string[], 35 | replyTo?: string, 36 | text?: string, 37 | html?: string, 38 | attachments?: { 39 | contentType: string, 40 | filename: string, 41 | content: string | Buffer 42 | }[], 43 | headers?: {[string]: string | number | boolean} 44 | }, 45 | sms?: { 46 | from: string, 47 | to: string, 48 | text: string, 49 | type?: 'text' | 'unicode', // Defaults to 'text' 50 | nature?: 'marketing' | 'transactional', 51 | ttl?: number, 52 | messageClass?: 0 | 1 | 2 | 3 53 | }, 54 | push?: { 55 | registrationToken: string, 56 | title: string, 57 | body: string, 58 | custom?: Object, 59 | priority?: 'high' | 'normal', // gcm, apn. Will be translated to 10 and 5 for apn. Defaults to 'high' 60 | collapseKey?: string, // gcm for android, used as collapseId in apn 61 | contentAvailable?: boolean, // gcm for android 62 | delayWhileIdle?: boolean, // gcm for android 63 | restrictedPackageName?: string, // gcm for android 64 | dryRun?: boolean, // gcm for android 65 | icon?: string, // gcm for android 66 | tag?: string, // gcm for android 67 | color?: string, // gcm for android 68 | clickAction?: string, // gcm for android. In ios, category will be used if not supplied 69 | locKey?: string, // gcm, apn 70 | bodyLocArgs?: string, // gcm, apn 71 | titleLocKey?: string, // gcm, apn 72 | titleLocArgs?: string, // gcm, apn 73 | retries?: number, // gcm, apn 74 | encoding?: string, // apn 75 | badge?: number, // gcm for ios, apn 76 | sound?: string, // gcm, apn 77 | alert?: string | Object, // apn, will take precedence over title and body 78 | titleLocKey?: string, // apn and gcm for ios 79 | titleLocArgs?: string, // apn and gcm for ios 80 | launchImage?: string, // apn and gcm for ios 81 | action?: string, // apn and gcm for ios 82 | topic?: string, // apn and gcm for ios 83 | category?: string, // apn and gcm for ios 84 | contentAvailable?: string, // apn and gcm for ios 85 | mdm?: string, // apn and gcm for ios 86 | urlArgs?: string, // apn and gcm for ios 87 | truncateAtWordEnd?: boolean, // apn and gcm for ios 88 | mutableContent?: number, // apn 89 | expiry?: number, // seconds 90 | timeToLive?: number, // if both expiry and timeToLive are given, expiry will take precedency 91 | headers?: {[string]: string | number | boolean}, // wns 92 | launch?: string, // wns 93 | duration?: string, // wns 94 | consolidationKey?: string // ADM 95 | }, 96 | webpush?: { 97 | subscription: { 98 | endpoint: string, 99 | keys: { 100 | auth: string, 101 | p256dh: string 102 | } 103 | }, 104 | title: string, // C22 F22 S6 105 | body: string, // C22 F22 S6 106 | actions?: { 107 | action: string, 108 | title: string, 109 | icon?: string 110 | }[], // C53 111 | badge?: string, // C53 112 | dir?: 'auto' | 'rtl' | 'ltr', // C22 F22 S6 113 | icon?: string, // C22 F22 114 | image?: string, // C55 F22 115 | redirects?: {[key: string]: string}, // added for local tests 116 | requireInteraction?: boolean // C22 F52 117 | } 118 | } 119 | } 120 | */ 121 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | a-sync-waterfall@^1.0.0: 6 | version "1.0.0" 7 | resolved "https://registry.yarnpkg.com/a-sync-waterfall/-/a-sync-waterfall-1.0.0.tgz#38e8319d79379e24628845b53b96722b29e0e47c" 8 | 9 | abbrev@1: 10 | version "1.1.0" 11 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" 12 | 13 | accepts@1.3.3: 14 | version "1.3.3" 15 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" 16 | dependencies: 17 | mime-types "~2.1.11" 18 | negotiator "0.6.1" 19 | 20 | accepts@~1.2.12: 21 | version "1.2.13" 22 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.2.13.tgz#e5f1f3928c6d95fd96558c36ec3d9d0de4a6ecea" 23 | dependencies: 24 | mime-types "~2.1.6" 25 | negotiator "0.5.3" 26 | 27 | acorn-jsx@^3.0.0: 28 | version "3.0.1" 29 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" 30 | dependencies: 31 | acorn "^3.0.4" 32 | 33 | acorn@^3.0.4: 34 | version "3.3.0" 35 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" 36 | 37 | acorn@^5.1.1: 38 | version "5.1.1" 39 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.1.tgz#53fe161111f912ab999ee887a90a0bc52822fd75" 40 | 41 | addressparser@~1.0.1: 42 | version "1.0.1" 43 | resolved "https://registry.yarnpkg.com/addressparser/-/addressparser-1.0.1.tgz#47afbe1a2a9262191db6838e4fd1d39b40821746" 44 | 45 | after@0.8.2: 46 | version "0.8.2" 47 | resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" 48 | 49 | ajv-keywords@^1.0.0: 50 | version "1.5.1" 51 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" 52 | 53 | ajv@^4.7.0, ajv@^4.9.1: 54 | version "4.11.8" 55 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" 56 | dependencies: 57 | co "^4.6.0" 58 | json-stable-stringify "^1.0.1" 59 | 60 | amdefine@>=0.0.4: 61 | version "1.0.1" 62 | resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" 63 | 64 | ansi-escapes@^1.1.0: 65 | version "1.4.0" 66 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" 67 | 68 | ansi-regex@^2.0.0: 69 | version "2.1.1" 70 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 71 | 72 | ansi-regex@^3.0.0: 73 | version "3.0.0" 74 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 75 | 76 | ansi-styles@^2.2.1: 77 | version "2.2.1" 78 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 79 | 80 | anymatch@^1.3.0: 81 | version "1.3.2" 82 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" 83 | dependencies: 84 | micromatch "^2.1.5" 85 | normalize-path "^2.0.0" 86 | 87 | apn@^2.1.1: 88 | version "2.1.5" 89 | resolved "https://registry.yarnpkg.com/apn/-/apn-2.1.5.tgz#5e0b7193c646a55fa165874118d9af7f7ccfd6db" 90 | dependencies: 91 | debug "^2.6.8" 92 | http2 "https://github.com/node-apn/node-http2/archive/apn-2.1.4.tar.gz" 93 | jsonwebtoken "^7.4.1" 94 | node-forge "^0.7.1" 95 | verror "^1.10.0" 96 | 97 | aproba@^1.0.3: 98 | version "1.1.2" 99 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.2.tgz#45c6629094de4e96f693ef7eab74ae079c240fc1" 100 | 101 | are-we-there-yet@~1.1.2: 102 | version "1.1.4" 103 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" 104 | dependencies: 105 | delegates "^1.0.0" 106 | readable-stream "^2.0.6" 107 | 108 | argparse@^1.0.7: 109 | version "1.0.9" 110 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" 111 | dependencies: 112 | sprintf-js "~1.0.2" 113 | 114 | arr-diff@^2.0.0: 115 | version "2.0.0" 116 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" 117 | dependencies: 118 | arr-flatten "^1.0.1" 119 | 120 | arr-flatten@^1.0.1: 121 | version "1.1.0" 122 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" 123 | 124 | array-find-index@^1.0.1: 125 | version "1.0.2" 126 | resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" 127 | 128 | array-flatten@1.1.1: 129 | version "1.1.1" 130 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" 131 | 132 | array-union@^1.0.1: 133 | version "1.0.2" 134 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" 135 | dependencies: 136 | array-uniq "^1.0.1" 137 | 138 | array-uniq@^1.0.1: 139 | version "1.0.3" 140 | resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" 141 | 142 | array-unique@^0.2.1: 143 | version "0.2.1" 144 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" 145 | 146 | array.prototype.find@^2.0.1: 147 | version "2.0.4" 148 | resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.0.4.tgz#556a5c5362c08648323ddaeb9de9d14bc1864c90" 149 | dependencies: 150 | define-properties "^1.1.2" 151 | es-abstract "^1.7.0" 152 | 153 | arraybuffer.slice@0.0.6: 154 | version "0.0.6" 155 | resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca" 156 | 157 | arrify@^1.0.0: 158 | version "1.0.1" 159 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 160 | 161 | asap@^2.0.3: 162 | version "2.0.6" 163 | resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" 164 | 165 | asn1.js@^4.8.1: 166 | version "4.9.1" 167 | resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.1.tgz#48ba240b45a9280e94748990ba597d216617fd40" 168 | dependencies: 169 | bn.js "^4.0.0" 170 | inherits "^2.0.1" 171 | minimalistic-assert "^1.0.0" 172 | 173 | asn1@~0.2.3: 174 | version "0.2.3" 175 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" 176 | 177 | assert-plus@1.0.0, assert-plus@^1.0.0: 178 | version "1.0.0" 179 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" 180 | 181 | assert-plus@^0.2.0: 182 | version "0.2.0" 183 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" 184 | 185 | async-each@^1.0.0: 186 | version "1.0.1" 187 | resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" 188 | 189 | async-foreach@^0.1.3: 190 | version "0.1.3" 191 | resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" 192 | 193 | async@1.5.1: 194 | version "1.5.1" 195 | resolved "https://registry.yarnpkg.com/async/-/async-1.5.1.tgz#b05714f4b11b357bf79adaffdd06da42d0766c10" 196 | 197 | async@^2.1.2: 198 | version "2.5.0" 199 | resolved "https://registry.yarnpkg.com/async/-/async-2.5.0.tgz#843190fd6b7357a0b9e1c956edddd5ec8462b54d" 200 | dependencies: 201 | lodash "^4.14.0" 202 | 203 | async@~1.0.0: 204 | version "1.0.0" 205 | resolved "https://registry.yarnpkg.com/async/-/async-1.0.0.tgz#f8fc04ca3a13784ade9e1641af98578cfbd647a9" 206 | 207 | asynckit@^0.4.0: 208 | version "0.4.0" 209 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 210 | 211 | aws-sign2@~0.6.0: 212 | version "0.6.0" 213 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" 214 | 215 | aws4@^1.2.1: 216 | version "1.6.0" 217 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" 218 | 219 | babel-code-frame@^6.16.0: 220 | version "6.26.0" 221 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" 222 | dependencies: 223 | chalk "^1.1.3" 224 | esutils "^2.0.2" 225 | js-tokens "^3.0.2" 226 | 227 | babel-runtime@6.25.0: 228 | version "6.25.0" 229 | resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.25.0.tgz#33b98eaa5d482bb01a8d1aa6b437ad2b01aec41c" 230 | dependencies: 231 | core-js "^2.4.0" 232 | regenerator-runtime "^0.10.0" 233 | 234 | backo2@1.0.2: 235 | version "1.0.2" 236 | resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" 237 | 238 | balanced-match@^1.0.0: 239 | version "1.0.0" 240 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 241 | 242 | base64-arraybuffer@0.1.5: 243 | version "0.1.5" 244 | resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" 245 | 246 | base64id@1.0.0: 247 | version "1.0.0" 248 | resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" 249 | 250 | base64url@2.0.0, base64url@^2.0.0: 251 | version "2.0.0" 252 | resolved "https://registry.yarnpkg.com/base64url/-/base64url-2.0.0.tgz#eac16e03ea1438eff9423d69baa36262ed1f70bb" 253 | 254 | bcrypt-pbkdf@^1.0.0: 255 | version "1.0.1" 256 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" 257 | dependencies: 258 | tweetnacl "^0.14.3" 259 | 260 | better-assert@~1.0.0: 261 | version "1.0.2" 262 | resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" 263 | dependencies: 264 | callsite "1.0.0" 265 | 266 | binary-extensions@^1.0.0: 267 | version "1.10.0" 268 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.10.0.tgz#9aeb9a6c5e88638aad171e167f5900abe24835d0" 269 | 270 | blob@0.0.4: 271 | version "0.0.4" 272 | resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921" 273 | 274 | block-stream@*: 275 | version "0.0.9" 276 | resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" 277 | dependencies: 278 | inherits "~2.0.0" 279 | 280 | bn.js@^4.0.0: 281 | version "4.11.8" 282 | resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" 283 | 284 | boolbase@~1.0.0: 285 | version "1.0.0" 286 | resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" 287 | 288 | boom@2.x.x: 289 | version "2.10.1" 290 | resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" 291 | dependencies: 292 | hoek "2.x.x" 293 | 294 | brace-expansion@^1.1.7: 295 | version "1.1.8" 296 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" 297 | dependencies: 298 | balanced-match "^1.0.0" 299 | concat-map "0.0.1" 300 | 301 | braces@^1.8.2: 302 | version "1.8.5" 303 | resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" 304 | dependencies: 305 | expand-range "^1.8.1" 306 | preserve "^0.2.0" 307 | repeat-element "^1.1.2" 308 | 309 | buffer-equal-constant-time@1.0.1: 310 | version "1.0.1" 311 | resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" 312 | 313 | builtin-modules@^1.0.0, builtin-modules@^1.1.1: 314 | version "1.1.1" 315 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" 316 | 317 | caller-path@^0.1.0: 318 | version "0.1.0" 319 | resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" 320 | dependencies: 321 | callsites "^0.2.0" 322 | 323 | callsite@1.0.0: 324 | version "1.0.0" 325 | resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" 326 | 327 | callsites@^0.2.0: 328 | version "0.2.0" 329 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" 330 | 331 | camelcase-keys@^2.0.0: 332 | version "2.1.0" 333 | resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" 334 | dependencies: 335 | camelcase "^2.0.0" 336 | map-obj "^1.0.0" 337 | 338 | camelcase@^2.0.0, camelcase@^2.0.1: 339 | version "2.1.1" 340 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" 341 | 342 | camelcase@^3.0.0: 343 | version "3.0.0" 344 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" 345 | 346 | caseless@~0.12.0: 347 | version "0.12.0" 348 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" 349 | 350 | chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: 351 | version "1.1.3" 352 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 353 | dependencies: 354 | ansi-styles "^2.2.1" 355 | escape-string-regexp "^1.0.2" 356 | has-ansi "^2.0.0" 357 | strip-ansi "^3.0.0" 358 | supports-color "^2.0.0" 359 | 360 | cheerio@^0.22.0: 361 | version "0.22.0" 362 | resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e" 363 | dependencies: 364 | css-select "~1.2.0" 365 | dom-serializer "~0.1.0" 366 | entities "~1.1.1" 367 | htmlparser2 "^3.9.1" 368 | lodash.assignin "^4.0.9" 369 | lodash.bind "^4.1.4" 370 | lodash.defaults "^4.0.1" 371 | lodash.filter "^4.4.0" 372 | lodash.flatten "^4.2.0" 373 | lodash.foreach "^4.3.0" 374 | lodash.map "^4.4.0" 375 | lodash.merge "^4.4.0" 376 | lodash.pick "^4.2.1" 377 | lodash.reduce "^4.4.0" 378 | lodash.reject "^4.4.0" 379 | lodash.some "^4.4.0" 380 | 381 | chokidar@^1.6.0: 382 | version "1.7.0" 383 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" 384 | dependencies: 385 | anymatch "^1.3.0" 386 | async-each "^1.0.0" 387 | glob-parent "^2.0.0" 388 | inherits "^2.0.1" 389 | is-binary-path "^1.0.0" 390 | is-glob "^2.0.0" 391 | path-is-absolute "^1.0.0" 392 | readdirp "^2.0.0" 393 | optionalDependencies: 394 | fsevents "^1.0.0" 395 | 396 | circular-json@^0.3.1: 397 | version "0.3.3" 398 | resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" 399 | 400 | cli-cursor@^1.0.1: 401 | version "1.0.2" 402 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" 403 | dependencies: 404 | restore-cursor "^1.0.1" 405 | 406 | cli-width@^2.0.0: 407 | version "2.2.0" 408 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" 409 | 410 | cliui@^3.0.3, cliui@^3.2.0: 411 | version "3.2.0" 412 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" 413 | dependencies: 414 | string-width "^1.0.1" 415 | strip-ansi "^3.0.1" 416 | wrap-ansi "^2.0.0" 417 | 418 | co@^4.6.0: 419 | version "4.6.0" 420 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 421 | 422 | code-point-at@^1.0.0: 423 | version "1.1.0" 424 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 425 | 426 | colors@1.0.x: 427 | version "1.0.3" 428 | resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" 429 | 430 | combined-stream@^1.0.5, combined-stream@~1.0.5: 431 | version "1.0.5" 432 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" 433 | dependencies: 434 | delayed-stream "~1.0.0" 435 | 436 | commander@2.9.0: 437 | version "2.9.0" 438 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" 439 | dependencies: 440 | graceful-readlink ">= 1.0.0" 441 | 442 | component-bind@1.0.0: 443 | version "1.0.0" 444 | resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" 445 | 446 | component-emitter@1.1.2: 447 | version "1.1.2" 448 | resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.1.2.tgz#296594f2753daa63996d2af08d15a95116c9aec3" 449 | 450 | component-emitter@1.2.1: 451 | version "1.2.1" 452 | resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" 453 | 454 | component-inherit@0.0.3: 455 | version "0.0.3" 456 | resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" 457 | 458 | concat-map@0.0.1: 459 | version "0.0.1" 460 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 461 | 462 | concat-stream@^1.5.2: 463 | version "1.6.0" 464 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" 465 | dependencies: 466 | inherits "^2.0.3" 467 | readable-stream "^2.2.2" 468 | typedarray "^0.0.6" 469 | 470 | console-control-strings@^1.0.0, console-control-strings@~1.1.0: 471 | version "1.1.0" 472 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" 473 | 474 | contains-path@^0.1.0: 475 | version "0.1.0" 476 | resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" 477 | 478 | content-disposition@0.5.1: 479 | version "0.5.1" 480 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.1.tgz#87476c6a67c8daa87e32e87616df883ba7fb071b" 481 | 482 | content-type@~1.0.1: 483 | version "1.0.2" 484 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" 485 | 486 | cookie-signature@1.0.6: 487 | version "1.0.6" 488 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" 489 | 490 | cookie@0.1.5: 491 | version "0.1.5" 492 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.1.5.tgz#6ab9948a4b1ae21952cd2588530a4722d4044d7c" 493 | 494 | cookie@0.3.1: 495 | version "0.3.1" 496 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" 497 | 498 | core-js@^2.4.0: 499 | version "2.5.0" 500 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.0.tgz#569c050918be6486b3837552028ae0466b717086" 501 | 502 | core-util-is@1.0.2, core-util-is@~1.0.0: 503 | version "1.0.2" 504 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 505 | 506 | cross-spawn@^3.0.0: 507 | version "3.0.1" 508 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" 509 | dependencies: 510 | lru-cache "^4.0.1" 511 | which "^1.2.9" 512 | 513 | cross-spawn@^5.0.1: 514 | version "5.1.0" 515 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" 516 | dependencies: 517 | lru-cache "^4.0.1" 518 | shebang-command "^1.2.0" 519 | which "^1.2.9" 520 | 521 | cryptiles@2.x.x: 522 | version "2.0.5" 523 | resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" 524 | dependencies: 525 | boom "2.x.x" 526 | 527 | css-select@~1.2.0: 528 | version "1.2.0" 529 | resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" 530 | dependencies: 531 | boolbase "~1.0.0" 532 | css-what "2.1" 533 | domutils "1.5.1" 534 | nth-check "~1.0.1" 535 | 536 | css-what@2.1: 537 | version "2.1.0" 538 | resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd" 539 | 540 | currently-unhandled@^0.4.1: 541 | version "0.4.1" 542 | resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" 543 | dependencies: 544 | array-find-index "^1.0.1" 545 | 546 | cycle@1.0.x: 547 | version "1.0.3" 548 | resolved "https://registry.yarnpkg.com/cycle/-/cycle-1.0.3.tgz#21e80b2be8580f98b468f379430662b046c34ad2" 549 | 550 | d@1: 551 | version "1.0.0" 552 | resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" 553 | dependencies: 554 | es5-ext "^0.10.9" 555 | 556 | dashdash@^1.12.0: 557 | version "1.14.1" 558 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" 559 | dependencies: 560 | assert-plus "^1.0.0" 561 | 562 | datauri@^1.0.4: 563 | version "1.0.5" 564 | resolved "https://registry.yarnpkg.com/datauri/-/datauri-1.0.5.tgz#d0975d1ab6c8f2e0ce3ca43baa4539be12d289a0" 565 | dependencies: 566 | image-size "^0.3.5" 567 | mimer "^0.2.1" 568 | semver "^5.0.3" 569 | 570 | debug-log@^1.0.0: 571 | version "1.0.1" 572 | resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f" 573 | 574 | debug@2.2.0, debug@~2.2.0: 575 | version "2.2.0" 576 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" 577 | dependencies: 578 | ms "0.7.1" 579 | 580 | debug@2.3.3: 581 | version "2.3.3" 582 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c" 583 | dependencies: 584 | ms "0.7.2" 585 | 586 | debug@^0.8.1: 587 | version "0.8.1" 588 | resolved "https://registry.yarnpkg.com/debug/-/debug-0.8.1.tgz#20ff4d26f5e422cb68a1bacbbb61039ad8c1c130" 589 | 590 | debug@^2.1.1, debug@^2.2.0, debug@^2.6.8: 591 | version "2.6.8" 592 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" 593 | dependencies: 594 | ms "2.0.0" 595 | 596 | decamelize@^1.1.1, decamelize@^1.1.2: 597 | version "1.2.0" 598 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 599 | 600 | deep-extend@^0.5.0: 601 | version "0.5.0" 602 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.5.0.tgz#6ef4a09b05f98b0e358d6d93d4ca3caec6672803" 603 | 604 | deep-extend@~0.4.0: 605 | version "0.4.2" 606 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" 607 | 608 | deep-is@~0.1.3: 609 | version "0.1.3" 610 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 611 | 612 | define-properties@^1.1.2: 613 | version "1.1.2" 614 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" 615 | dependencies: 616 | foreach "^2.0.5" 617 | object-keys "^1.0.8" 618 | 619 | deglob@^2.1.0: 620 | version "2.1.0" 621 | resolved "https://registry.yarnpkg.com/deglob/-/deglob-2.1.0.tgz#4d44abe16ef32c779b4972bd141a80325029a14a" 622 | dependencies: 623 | find-root "^1.0.0" 624 | glob "^7.0.5" 625 | ignore "^3.0.9" 626 | pkg-config "^1.1.0" 627 | run-parallel "^1.1.2" 628 | uniq "^1.0.1" 629 | 630 | del@^2.0.2: 631 | version "2.2.2" 632 | resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" 633 | dependencies: 634 | globby "^5.0.0" 635 | is-path-cwd "^1.0.0" 636 | is-path-in-cwd "^1.0.0" 637 | object-assign "^4.0.1" 638 | pify "^2.0.0" 639 | pinkie-promise "^2.0.0" 640 | rimraf "^2.2.8" 641 | 642 | delayed-stream@~1.0.0: 643 | version "1.0.0" 644 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 645 | 646 | delegates@^1.0.0: 647 | version "1.0.0" 648 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" 649 | 650 | depd@~1.1.0: 651 | version "1.1.1" 652 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" 653 | 654 | destroy@~1.0.4: 655 | version "1.0.4" 656 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" 657 | 658 | doctrine@1.5.0, doctrine@^1.2.2: 659 | version "1.5.0" 660 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" 661 | dependencies: 662 | esutils "^2.0.2" 663 | isarray "^1.0.0" 664 | 665 | doctrine@^2.0.0: 666 | version "2.0.0" 667 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63" 668 | dependencies: 669 | esutils "^2.0.2" 670 | isarray "^1.0.0" 671 | 672 | dom-serializer@0, dom-serializer@~0.1.0: 673 | version "0.1.0" 674 | resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" 675 | dependencies: 676 | domelementtype "~1.1.1" 677 | entities "~1.1.1" 678 | 679 | domelementtype@1, domelementtype@^1.3.0: 680 | version "1.3.0" 681 | resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" 682 | 683 | domelementtype@~1.1.1: 684 | version "1.1.3" 685 | resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" 686 | 687 | domhandler@^2.3.0: 688 | version "2.4.1" 689 | resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.1.tgz#892e47000a99be55bbf3774ffea0561d8879c259" 690 | dependencies: 691 | domelementtype "1" 692 | 693 | domutils@1.5.1: 694 | version "1.5.1" 695 | resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" 696 | dependencies: 697 | dom-serializer "0" 698 | domelementtype "1" 699 | 700 | domutils@^1.5.1: 701 | version "1.6.2" 702 | resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.6.2.tgz#1958cc0b4c9426e9ed367fb1c8e854891b0fa3ff" 703 | dependencies: 704 | dom-serializer "0" 705 | domelementtype "1" 706 | 707 | ecc-jsbn@~0.1.1: 708 | version "0.1.1" 709 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" 710 | dependencies: 711 | jsbn "~0.1.0" 712 | 713 | ecdsa-sig-formatter@1.0.9: 714 | version "1.0.9" 715 | resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.9.tgz#4bc926274ec3b5abb5016e7e1d60921ac262b2a1" 716 | dependencies: 717 | base64url "^2.0.0" 718 | safe-buffer "^5.0.1" 719 | 720 | ee-first@1.1.1: 721 | version "1.1.1" 722 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 723 | 724 | encoding@^0.1.11, encoding@^0.1.12, encoding@~0.1.12: 725 | version "0.1.12" 726 | resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" 727 | dependencies: 728 | iconv-lite "~0.4.13" 729 | 730 | engine.io-client@1.8.3: 731 | version "1.8.3" 732 | resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.8.3.tgz#1798ed93451246453d4c6f635d7a201fe940d5ab" 733 | dependencies: 734 | component-emitter "1.2.1" 735 | component-inherit "0.0.3" 736 | debug "2.3.3" 737 | engine.io-parser "1.3.2" 738 | has-cors "1.1.0" 739 | indexof "0.0.1" 740 | parsejson "0.0.3" 741 | parseqs "0.0.5" 742 | parseuri "0.0.5" 743 | ws "1.1.2" 744 | xmlhttprequest-ssl "1.5.3" 745 | yeast "0.1.2" 746 | 747 | engine.io-parser@1.3.2: 748 | version "1.3.2" 749 | resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.3.2.tgz#937b079f0007d0893ec56d46cb220b8cb435220a" 750 | dependencies: 751 | after "0.8.2" 752 | arraybuffer.slice "0.0.6" 753 | base64-arraybuffer "0.1.5" 754 | blob "0.0.4" 755 | has-binary "0.1.7" 756 | wtf-8 "1.0.0" 757 | 758 | engine.io@1.8.3: 759 | version "1.8.3" 760 | resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.8.3.tgz#8de7f97895d20d39b85f88eeee777b2bd42b13d4" 761 | dependencies: 762 | accepts "1.3.3" 763 | base64id "1.0.0" 764 | cookie "0.3.1" 765 | debug "2.3.3" 766 | engine.io-parser "1.3.2" 767 | ws "1.1.2" 768 | 769 | entities@^1.1.1, entities@~1.1.1: 770 | version "1.1.1" 771 | resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" 772 | 773 | error-ex@^1.2.0: 774 | version "1.3.1" 775 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" 776 | dependencies: 777 | is-arrayish "^0.2.1" 778 | 779 | es-abstract@^1.7.0: 780 | version "1.8.0" 781 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.8.0.tgz#3b00385e85729932beffa9163bbea1234e932914" 782 | dependencies: 783 | es-to-primitive "^1.1.1" 784 | function-bind "^1.1.0" 785 | has "^1.0.1" 786 | is-callable "^1.1.3" 787 | is-regex "^1.0.4" 788 | 789 | es-to-primitive@^1.1.1: 790 | version "1.1.1" 791 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" 792 | dependencies: 793 | is-callable "^1.1.1" 794 | is-date-object "^1.0.1" 795 | is-symbol "^1.0.1" 796 | 797 | es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14: 798 | version "0.10.30" 799 | resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.30.tgz#7141a16836697dbabfaaaeee41495ce29f52c939" 800 | dependencies: 801 | es6-iterator "2" 802 | es6-symbol "~3.1" 803 | 804 | es6-iterator@2, es6-iterator@^2.0.1, es6-iterator@~2.0.1: 805 | version "2.0.1" 806 | resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.1.tgz#8e319c9f0453bf575d374940a655920e59ca5512" 807 | dependencies: 808 | d "1" 809 | es5-ext "^0.10.14" 810 | es6-symbol "^3.1" 811 | 812 | es6-map@^0.1.3: 813 | version "0.1.5" 814 | resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" 815 | dependencies: 816 | d "1" 817 | es5-ext "~0.10.14" 818 | es6-iterator "~2.0.1" 819 | es6-set "~0.1.5" 820 | es6-symbol "~3.1.1" 821 | event-emitter "~0.3.5" 822 | 823 | es6-set@~0.1.5: 824 | version "0.1.5" 825 | resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" 826 | dependencies: 827 | d "1" 828 | es5-ext "~0.10.14" 829 | es6-iterator "~2.0.1" 830 | es6-symbol "3.1.1" 831 | event-emitter "~0.3.5" 832 | 833 | es6-symbol@3.1.1, es6-symbol@^3.1, es6-symbol@^3.1.1, es6-symbol@~3.1, es6-symbol@~3.1.1: 834 | version "3.1.1" 835 | resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" 836 | dependencies: 837 | d "1" 838 | es5-ext "~0.10.14" 839 | 840 | es6-weak-map@^2.0.1: 841 | version "2.0.2" 842 | resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" 843 | dependencies: 844 | d "1" 845 | es5-ext "^0.10.14" 846 | es6-iterator "^2.0.1" 847 | es6-symbol "^3.1.1" 848 | 849 | escape-html@~1.0.3: 850 | version "1.0.3" 851 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 852 | 853 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: 854 | version "1.0.5" 855 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 856 | 857 | escope@^3.6.0: 858 | version "3.6.0" 859 | resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" 860 | dependencies: 861 | es6-map "^0.1.3" 862 | es6-weak-map "^2.0.1" 863 | esrecurse "^4.1.0" 864 | estraverse "^4.1.1" 865 | 866 | eslint-config-standard-jsx@4.0.2: 867 | version "4.0.2" 868 | resolved "https://registry.yarnpkg.com/eslint-config-standard-jsx/-/eslint-config-standard-jsx-4.0.2.tgz#009e53c4ddb1e9ee70b4650ffe63a7f39f8836e1" 869 | 870 | eslint-config-standard@10.2.1: 871 | version "10.2.1" 872 | resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-10.2.1.tgz#c061e4d066f379dc17cd562c64e819b4dd454591" 873 | 874 | eslint-import-resolver-node@^0.2.0: 875 | version "0.2.3" 876 | resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.2.3.tgz#5add8106e8c928db2cba232bcd9efa846e3da16c" 877 | dependencies: 878 | debug "^2.2.0" 879 | object-assign "^4.0.1" 880 | resolve "^1.1.6" 881 | 882 | eslint-module-utils@^2.0.0: 883 | version "2.1.1" 884 | resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz#abaec824177613b8a95b299639e1b6facf473449" 885 | dependencies: 886 | debug "^2.6.8" 887 | pkg-dir "^1.0.0" 888 | 889 | eslint-plugin-import@~2.2.0: 890 | version "2.2.0" 891 | resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.2.0.tgz#72ba306fad305d67c4816348a4699a4229ac8b4e" 892 | dependencies: 893 | builtin-modules "^1.1.1" 894 | contains-path "^0.1.0" 895 | debug "^2.2.0" 896 | doctrine "1.5.0" 897 | eslint-import-resolver-node "^0.2.0" 898 | eslint-module-utils "^2.0.0" 899 | has "^1.0.1" 900 | lodash.cond "^4.3.0" 901 | minimatch "^3.0.3" 902 | pkg-up "^1.0.0" 903 | 904 | eslint-plugin-node@~4.2.2: 905 | version "4.2.3" 906 | resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-4.2.3.tgz#c04390ab8dbcbb6887174023d6f3a72769e63b97" 907 | dependencies: 908 | ignore "^3.0.11" 909 | minimatch "^3.0.2" 910 | object-assign "^4.0.1" 911 | resolve "^1.1.7" 912 | semver "5.3.0" 913 | 914 | eslint-plugin-promise@~3.5.0: 915 | version "3.5.0" 916 | resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-3.5.0.tgz#78fbb6ffe047201627569e85a6c5373af2a68fca" 917 | 918 | eslint-plugin-react@~6.10.0: 919 | version "6.10.3" 920 | resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-6.10.3.tgz#c5435beb06774e12c7db2f6abaddcbf900cd3f78" 921 | dependencies: 922 | array.prototype.find "^2.0.1" 923 | doctrine "^1.2.2" 924 | has "^1.0.1" 925 | jsx-ast-utils "^1.3.4" 926 | object.assign "^4.0.4" 927 | 928 | eslint-plugin-standard@~3.0.1: 929 | version "3.0.1" 930 | resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz#34d0c915b45edc6f010393c7eef3823b08565cf2" 931 | 932 | eslint@~3.19.0: 933 | version "3.19.0" 934 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.19.0.tgz#c8fc6201c7f40dd08941b87c085767386a679acc" 935 | dependencies: 936 | babel-code-frame "^6.16.0" 937 | chalk "^1.1.3" 938 | concat-stream "^1.5.2" 939 | debug "^2.1.1" 940 | doctrine "^2.0.0" 941 | escope "^3.6.0" 942 | espree "^3.4.0" 943 | esquery "^1.0.0" 944 | estraverse "^4.2.0" 945 | esutils "^2.0.2" 946 | file-entry-cache "^2.0.0" 947 | glob "^7.0.3" 948 | globals "^9.14.0" 949 | ignore "^3.2.0" 950 | imurmurhash "^0.1.4" 951 | inquirer "^0.12.0" 952 | is-my-json-valid "^2.10.0" 953 | is-resolvable "^1.0.0" 954 | js-yaml "^3.5.1" 955 | json-stable-stringify "^1.0.0" 956 | levn "^0.3.0" 957 | lodash "^4.0.0" 958 | mkdirp "^0.5.0" 959 | natural-compare "^1.4.0" 960 | optionator "^0.8.2" 961 | path-is-inside "^1.0.1" 962 | pluralize "^1.2.1" 963 | progress "^1.1.8" 964 | require-uncached "^1.0.2" 965 | shelljs "^0.7.5" 966 | strip-bom "^3.0.0" 967 | strip-json-comments "~2.0.1" 968 | table "^3.7.8" 969 | text-table "~0.2.0" 970 | user-home "^2.0.0" 971 | 972 | espree@^3.4.0: 973 | version "3.5.0" 974 | resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.0.tgz#98358625bdd055861ea27e2867ea729faf463d8d" 975 | dependencies: 976 | acorn "^5.1.1" 977 | acorn-jsx "^3.0.0" 978 | 979 | esprima@^4.0.0: 980 | version "4.0.0" 981 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" 982 | 983 | esquery@^1.0.0: 984 | version "1.0.0" 985 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" 986 | dependencies: 987 | estraverse "^4.0.0" 988 | 989 | esrecurse@^4.1.0: 990 | version "4.2.0" 991 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" 992 | dependencies: 993 | estraverse "^4.1.0" 994 | object-assign "^4.0.1" 995 | 996 | estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: 997 | version "4.2.0" 998 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" 999 | 1000 | esutils@^2.0.2: 1001 | version "2.0.2" 1002 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 1003 | 1004 | etag@~1.7.0: 1005 | version "1.7.0" 1006 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.7.0.tgz#03d30b5f67dd6e632d2945d30d6652731a34d5d8" 1007 | 1008 | event-emitter@~0.3.5: 1009 | version "0.3.5" 1010 | resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" 1011 | dependencies: 1012 | d "1" 1013 | es5-ext "~0.10.14" 1014 | 1015 | exit-hook@^1.0.0: 1016 | version "1.1.1" 1017 | resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" 1018 | 1019 | expand-brackets@^0.1.4: 1020 | version "0.1.5" 1021 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" 1022 | dependencies: 1023 | is-posix-bracket "^0.1.0" 1024 | 1025 | expand-range@^1.8.1: 1026 | version "1.8.2" 1027 | resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" 1028 | dependencies: 1029 | fill-range "^2.1.0" 1030 | 1031 | express@4.13.4: 1032 | version "4.13.4" 1033 | resolved "https://registry.yarnpkg.com/express/-/express-4.13.4.tgz#3c0b76f3c77590c8345739061ec0bd3ba067ec24" 1034 | dependencies: 1035 | accepts "~1.2.12" 1036 | array-flatten "1.1.1" 1037 | content-disposition "0.5.1" 1038 | content-type "~1.0.1" 1039 | cookie "0.1.5" 1040 | cookie-signature "1.0.6" 1041 | debug "~2.2.0" 1042 | depd "~1.1.0" 1043 | escape-html "~1.0.3" 1044 | etag "~1.7.0" 1045 | finalhandler "0.4.1" 1046 | fresh "0.3.0" 1047 | merge-descriptors "1.0.1" 1048 | methods "~1.1.2" 1049 | on-finished "~2.3.0" 1050 | parseurl "~1.3.1" 1051 | path-to-regexp "0.1.7" 1052 | proxy-addr "~1.0.10" 1053 | qs "4.0.0" 1054 | range-parser "~1.0.3" 1055 | send "0.13.1" 1056 | serve-static "~1.10.2" 1057 | type-is "~1.6.6" 1058 | utils-merge "1.0.0" 1059 | vary "~1.0.1" 1060 | 1061 | extend@~3.0.0: 1062 | version "3.0.1" 1063 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" 1064 | 1065 | extglob@^0.3.1: 1066 | version "0.3.2" 1067 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" 1068 | dependencies: 1069 | is-extglob "^1.0.0" 1070 | 1071 | extsprintf@1.3.0, extsprintf@^1.2.0: 1072 | version "1.3.0" 1073 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" 1074 | 1075 | eyes@0.1.x: 1076 | version "0.1.8" 1077 | resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" 1078 | 1079 | fast-levenshtein@~2.0.4: 1080 | version "2.0.6" 1081 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 1082 | 1083 | figures@^1.3.5: 1084 | version "1.7.0" 1085 | resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" 1086 | dependencies: 1087 | escape-string-regexp "^1.0.5" 1088 | object-assign "^4.1.0" 1089 | 1090 | file-entry-cache@^2.0.0: 1091 | version "2.0.0" 1092 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" 1093 | dependencies: 1094 | flat-cache "^1.2.1" 1095 | object-assign "^4.0.1" 1096 | 1097 | filename-regex@^2.0.0: 1098 | version "2.0.1" 1099 | resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" 1100 | 1101 | fill-range@^2.1.0: 1102 | version "2.2.3" 1103 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" 1104 | dependencies: 1105 | is-number "^2.1.0" 1106 | isobject "^2.0.0" 1107 | randomatic "^1.1.3" 1108 | repeat-element "^1.1.2" 1109 | repeat-string "^1.5.2" 1110 | 1111 | finalhandler@0.4.1: 1112 | version "0.4.1" 1113 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-0.4.1.tgz#85a17c6c59a94717d262d61230d4b0ebe3d4a14d" 1114 | dependencies: 1115 | debug "~2.2.0" 1116 | escape-html "~1.0.3" 1117 | on-finished "~2.3.0" 1118 | unpipe "~1.0.0" 1119 | 1120 | find-root@^1.0.0: 1121 | version "1.1.0" 1122 | resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" 1123 | 1124 | find-up@^1.0.0: 1125 | version "1.1.2" 1126 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" 1127 | dependencies: 1128 | path-exists "^2.0.0" 1129 | pinkie-promise "^2.0.0" 1130 | 1131 | find-up@^2.0.0: 1132 | version "2.1.0" 1133 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" 1134 | dependencies: 1135 | locate-path "^2.0.0" 1136 | 1137 | flat-cache@^1.2.1: 1138 | version "1.2.2" 1139 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96" 1140 | dependencies: 1141 | circular-json "^0.3.1" 1142 | del "^2.0.2" 1143 | graceful-fs "^4.1.2" 1144 | write "^0.2.1" 1145 | 1146 | flow-bin@^0.53.1: 1147 | version "0.53.1" 1148 | resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.53.1.tgz#9b22b63a23c99763ae533ebbab07f88c88c97d84" 1149 | 1150 | for-in@^1.0.1: 1151 | version "1.0.2" 1152 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" 1153 | 1154 | for-own@^0.1.4: 1155 | version "0.1.5" 1156 | resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" 1157 | dependencies: 1158 | for-in "^1.0.1" 1159 | 1160 | foreach@^2.0.5: 1161 | version "2.0.5" 1162 | resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" 1163 | 1164 | forever-agent@~0.6.1: 1165 | version "0.6.1" 1166 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" 1167 | 1168 | form-data@2.2.0: 1169 | version "2.2.0" 1170 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.2.0.tgz#9a5e3b9295f980b2623cf64fa238b14cebca707b" 1171 | dependencies: 1172 | asynckit "^0.4.0" 1173 | combined-stream "^1.0.5" 1174 | mime-types "^2.1.12" 1175 | 1176 | form-data@~2.1.1: 1177 | version "2.1.4" 1178 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" 1179 | dependencies: 1180 | asynckit "^0.4.0" 1181 | combined-stream "^1.0.5" 1182 | mime-types "^2.1.12" 1183 | 1184 | forwarded@~0.1.0: 1185 | version "0.1.0" 1186 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.0.tgz#19ef9874c4ae1c297bcf078fde63a09b66a84363" 1187 | 1188 | fresh@0.3.0: 1189 | version "0.3.0" 1190 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.3.0.tgz#651f838e22424e7566de161d8358caa199f83d4f" 1191 | 1192 | fs.realpath@^1.0.0: 1193 | version "1.0.0" 1194 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 1195 | 1196 | fsevents@^1.0.0: 1197 | version "1.1.2" 1198 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.2.tgz#3282b713fb3ad80ede0e9fcf4611b5aa6fc033f4" 1199 | dependencies: 1200 | nan "^2.3.0" 1201 | node-pre-gyp "^0.6.36" 1202 | 1203 | fstream-ignore@^1.0.5: 1204 | version "1.0.5" 1205 | resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" 1206 | dependencies: 1207 | fstream "^1.0.0" 1208 | inherits "2" 1209 | minimatch "^3.0.0" 1210 | 1211 | fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: 1212 | version "1.0.11" 1213 | resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" 1214 | dependencies: 1215 | graceful-fs "^4.1.2" 1216 | inherits "~2.0.0" 1217 | mkdirp ">=0.5 0" 1218 | rimraf "2" 1219 | 1220 | function-bind@^1.0.2, function-bind@^1.1.0: 1221 | version "1.1.0" 1222 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" 1223 | 1224 | gauge@~2.7.3: 1225 | version "2.7.4" 1226 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" 1227 | dependencies: 1228 | aproba "^1.0.3" 1229 | console-control-strings "^1.0.0" 1230 | has-unicode "^2.0.0" 1231 | object-assign "^4.1.0" 1232 | signal-exit "^3.0.0" 1233 | string-width "^1.0.1" 1234 | strip-ansi "^3.0.1" 1235 | wide-align "^1.1.0" 1236 | 1237 | gaze@^1.0.0: 1238 | version "1.1.2" 1239 | resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.2.tgz#847224677adb8870d679257ed3388fdb61e40105" 1240 | dependencies: 1241 | globule "^1.0.0" 1242 | 1243 | generate-function@^2.0.0: 1244 | version "2.0.0" 1245 | resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" 1246 | 1247 | generate-object-property@^1.1.0: 1248 | version "1.2.0" 1249 | resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" 1250 | dependencies: 1251 | is-property "^1.0.0" 1252 | 1253 | get-caller-file@^1.0.1: 1254 | version "1.0.2" 1255 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" 1256 | 1257 | get-stdin@^4.0.1: 1258 | version "4.0.1" 1259 | resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" 1260 | 1261 | get-stdin@^5.0.1: 1262 | version "5.0.1" 1263 | resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" 1264 | 1265 | getpass@^0.1.1: 1266 | version "0.1.7" 1267 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" 1268 | dependencies: 1269 | assert-plus "^1.0.0" 1270 | 1271 | glob-base@^0.3.0: 1272 | version "0.3.0" 1273 | resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" 1274 | dependencies: 1275 | glob-parent "^2.0.0" 1276 | is-glob "^2.0.0" 1277 | 1278 | glob-parent@^2.0.0: 1279 | version "2.0.0" 1280 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" 1281 | dependencies: 1282 | is-glob "^2.0.0" 1283 | 1284 | glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@~7.1.1: 1285 | version "7.1.2" 1286 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" 1287 | dependencies: 1288 | fs.realpath "^1.0.0" 1289 | inflight "^1.0.4" 1290 | inherits "2" 1291 | minimatch "^3.0.4" 1292 | once "^1.3.0" 1293 | path-is-absolute "^1.0.0" 1294 | 1295 | globals@^9.14.0: 1296 | version "9.18.0" 1297 | resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" 1298 | 1299 | globby@^5.0.0: 1300 | version "5.0.0" 1301 | resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" 1302 | dependencies: 1303 | array-union "^1.0.1" 1304 | arrify "^1.0.0" 1305 | glob "^7.0.3" 1306 | object-assign "^4.0.1" 1307 | pify "^2.0.0" 1308 | pinkie-promise "^2.0.0" 1309 | 1310 | globule@^1.0.0: 1311 | version "1.2.0" 1312 | resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.0.tgz#1dc49c6822dd9e8a2fa00ba2a295006e8664bd09" 1313 | dependencies: 1314 | glob "~7.1.1" 1315 | lodash "~4.17.4" 1316 | minimatch "~3.0.2" 1317 | 1318 | graceful-fs@^4.1.2: 1319 | version "4.1.11" 1320 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 1321 | 1322 | "graceful-readlink@>= 1.0.0": 1323 | version "1.0.1" 1324 | resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" 1325 | 1326 | har-schema@^1.0.5: 1327 | version "1.0.5" 1328 | resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" 1329 | 1330 | har-validator@~4.2.1: 1331 | version "4.2.1" 1332 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" 1333 | dependencies: 1334 | ajv "^4.9.1" 1335 | har-schema "^1.0.5" 1336 | 1337 | has-ansi@^2.0.0: 1338 | version "2.0.0" 1339 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 1340 | dependencies: 1341 | ansi-regex "^2.0.0" 1342 | 1343 | has-binary@0.1.7: 1344 | version "0.1.7" 1345 | resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.7.tgz#68e61eb16210c9545a0a5cce06a873912fe1e68c" 1346 | dependencies: 1347 | isarray "0.0.1" 1348 | 1349 | has-cors@1.1.0: 1350 | version "1.1.0" 1351 | resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" 1352 | 1353 | has-unicode@^2.0.0: 1354 | version "2.0.1" 1355 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" 1356 | 1357 | has@^1.0.1: 1358 | version "1.0.1" 1359 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" 1360 | dependencies: 1361 | function-bind "^1.0.2" 1362 | 1363 | hawk@~3.1.3: 1364 | version "3.1.3" 1365 | resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" 1366 | dependencies: 1367 | boom "2.x.x" 1368 | cryptiles "2.x.x" 1369 | hoek "2.x.x" 1370 | sntp "1.x.x" 1371 | 1372 | hoek@2.x.x: 1373 | version "2.16.3" 1374 | resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" 1375 | 1376 | hosted-git-info@^2.1.4: 1377 | version "2.5.0" 1378 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" 1379 | 1380 | htmlparser2@^3.9.1, htmlparser2@^3.9.2: 1381 | version "3.9.2" 1382 | resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338" 1383 | dependencies: 1384 | domelementtype "^1.3.0" 1385 | domhandler "^2.3.0" 1386 | domutils "^1.5.1" 1387 | entities "^1.1.1" 1388 | inherits "^2.0.1" 1389 | readable-stream "^2.0.2" 1390 | 1391 | http-errors@~1.3.1: 1392 | version "1.3.1" 1393 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.3.1.tgz#197e22cdebd4198585e8694ef6786197b91ed942" 1394 | dependencies: 1395 | inherits "~2.0.1" 1396 | statuses "1" 1397 | 1398 | http-signature@~1.1.0: 1399 | version "1.1.1" 1400 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" 1401 | dependencies: 1402 | assert-plus "^0.2.0" 1403 | jsprim "^1.2.2" 1404 | sshpk "^1.7.0" 1405 | 1406 | "http2@https://github.com/node-apn/node-http2/archive/apn-2.1.4.tar.gz": 1407 | version "3.3.6" 1408 | resolved "https://github.com/node-apn/node-http2/archive/apn-2.1.4.tar.gz#8333dee2d6e0089152cefad30f41ced502f9c366" 1409 | 1410 | http_ece@^0.5.2: 1411 | version "0.5.2" 1412 | resolved "https://registry.yarnpkg.com/http_ece/-/http_ece-0.5.2.tgz#5654d7ec9d996b749ce00a276e18d54b6d8f905f" 1413 | dependencies: 1414 | urlsafe-base64 "~1.0.0" 1415 | 1416 | iconv-lite@~0.4.13: 1417 | version "0.4.18" 1418 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2" 1419 | 1420 | ignore@^3.0.11, ignore@^3.0.9, ignore@^3.2.0: 1421 | version "3.3.4" 1422 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.4.tgz#85ab6d0a9ca8b27b31604c09efe1c14dc21ab872" 1423 | 1424 | image-size@^0.3.5: 1425 | version "0.3.5" 1426 | resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.3.5.tgz#83240eab2fb5b00b04aab8c74b0471e9cba7ad8c" 1427 | 1428 | imurmurhash@^0.1.4: 1429 | version "0.1.4" 1430 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 1431 | 1432 | in-publish@^2.0.0: 1433 | version "2.0.0" 1434 | resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51" 1435 | 1436 | indent-string@^2.1.0: 1437 | version "2.1.0" 1438 | resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" 1439 | dependencies: 1440 | repeating "^2.0.0" 1441 | 1442 | indexof@0.0.1: 1443 | version "0.0.1" 1444 | resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" 1445 | 1446 | inflight@^1.0.4: 1447 | version "1.0.6" 1448 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1449 | dependencies: 1450 | once "^1.3.0" 1451 | wrappy "1" 1452 | 1453 | inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: 1454 | version "2.0.3" 1455 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 1456 | 1457 | ini@~1.3.0: 1458 | version "1.3.4" 1459 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" 1460 | 1461 | inquirer@^0.12.0: 1462 | version "0.12.0" 1463 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" 1464 | dependencies: 1465 | ansi-escapes "^1.1.0" 1466 | ansi-regex "^2.0.0" 1467 | chalk "^1.0.0" 1468 | cli-cursor "^1.0.1" 1469 | cli-width "^2.0.0" 1470 | figures "^1.3.5" 1471 | lodash "^4.3.0" 1472 | readline2 "^1.0.1" 1473 | run-async "^0.1.0" 1474 | rx-lite "^3.1.2" 1475 | string-width "^1.0.1" 1476 | strip-ansi "^3.0.0" 1477 | through "^2.3.6" 1478 | 1479 | interpret@^1.0.0: 1480 | version "1.0.3" 1481 | resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90" 1482 | 1483 | invert-kv@^1.0.0: 1484 | version "1.0.0" 1485 | resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" 1486 | 1487 | ipaddr.js@1.0.5: 1488 | version "1.0.5" 1489 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.0.5.tgz#5fa78cf301b825c78abc3042d812723049ea23c7" 1490 | 1491 | ipv6-normalize@^1.0.1: 1492 | version "1.0.1" 1493 | resolved "https://registry.yarnpkg.com/ipv6-normalize/-/ipv6-normalize-1.0.1.tgz#1b3258290d365fa83239e89907dde4592e7620a8" 1494 | 1495 | is-arrayish@^0.2.1: 1496 | version "0.2.1" 1497 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 1498 | 1499 | is-binary-path@^1.0.0: 1500 | version "1.0.1" 1501 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" 1502 | dependencies: 1503 | binary-extensions "^1.0.0" 1504 | 1505 | is-buffer@^1.1.5: 1506 | version "1.1.5" 1507 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" 1508 | 1509 | is-builtin-module@^1.0.0: 1510 | version "1.0.0" 1511 | resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" 1512 | dependencies: 1513 | builtin-modules "^1.0.0" 1514 | 1515 | is-callable@^1.1.1, is-callable@^1.1.3: 1516 | version "1.1.3" 1517 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" 1518 | 1519 | is-date-object@^1.0.1: 1520 | version "1.0.1" 1521 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" 1522 | 1523 | is-dotfile@^1.0.0: 1524 | version "1.0.3" 1525 | resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" 1526 | 1527 | is-equal-shallow@^0.1.3: 1528 | version "0.1.3" 1529 | resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" 1530 | dependencies: 1531 | is-primitive "^2.0.0" 1532 | 1533 | is-extendable@^0.1.1: 1534 | version "0.1.1" 1535 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" 1536 | 1537 | is-extglob@^1.0.0: 1538 | version "1.0.0" 1539 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" 1540 | 1541 | is-finite@^1.0.0: 1542 | version "1.0.2" 1543 | resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" 1544 | dependencies: 1545 | number-is-nan "^1.0.0" 1546 | 1547 | is-fullwidth-code-point@^1.0.0: 1548 | version "1.0.0" 1549 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 1550 | dependencies: 1551 | number-is-nan "^1.0.0" 1552 | 1553 | is-fullwidth-code-point@^2.0.0: 1554 | version "2.0.0" 1555 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 1556 | 1557 | is-glob@^2.0.0, is-glob@^2.0.1: 1558 | version "2.0.1" 1559 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" 1560 | dependencies: 1561 | is-extglob "^1.0.0" 1562 | 1563 | is-my-json-valid@^2.10.0: 1564 | version "2.16.1" 1565 | resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.16.1.tgz#5a846777e2c2620d1e69104e5d3a03b1f6088f11" 1566 | dependencies: 1567 | generate-function "^2.0.0" 1568 | generate-object-property "^1.1.0" 1569 | jsonpointer "^4.0.0" 1570 | xtend "^4.0.0" 1571 | 1572 | is-number@^2.1.0: 1573 | version "2.1.0" 1574 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" 1575 | dependencies: 1576 | kind-of "^3.0.2" 1577 | 1578 | is-number@^3.0.0: 1579 | version "3.0.0" 1580 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" 1581 | dependencies: 1582 | kind-of "^3.0.2" 1583 | 1584 | is-path-cwd@^1.0.0: 1585 | version "1.0.0" 1586 | resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" 1587 | 1588 | is-path-in-cwd@^1.0.0: 1589 | version "1.0.0" 1590 | resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" 1591 | dependencies: 1592 | is-path-inside "^1.0.0" 1593 | 1594 | is-path-inside@^1.0.0: 1595 | version "1.0.0" 1596 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" 1597 | dependencies: 1598 | path-is-inside "^1.0.1" 1599 | 1600 | is-posix-bracket@^0.1.0: 1601 | version "0.1.1" 1602 | resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" 1603 | 1604 | is-primitive@^2.0.0: 1605 | version "2.0.0" 1606 | resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" 1607 | 1608 | is-property@^1.0.0: 1609 | version "1.0.2" 1610 | resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" 1611 | 1612 | is-regex@^1.0.4: 1613 | version "1.0.4" 1614 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" 1615 | dependencies: 1616 | has "^1.0.1" 1617 | 1618 | is-resolvable@^1.0.0: 1619 | version "1.0.0" 1620 | resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" 1621 | dependencies: 1622 | tryit "^1.0.1" 1623 | 1624 | is-stream@^1.0.1: 1625 | version "1.1.0" 1626 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 1627 | 1628 | is-symbol@^1.0.1: 1629 | version "1.0.1" 1630 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" 1631 | 1632 | is-typedarray@~1.0.0: 1633 | version "1.0.0" 1634 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 1635 | 1636 | is-utf8@^0.2.0: 1637 | version "0.2.1" 1638 | resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" 1639 | 1640 | isarray@0.0.1: 1641 | version "0.0.1" 1642 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" 1643 | 1644 | isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: 1645 | version "1.0.0" 1646 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 1647 | 1648 | isemail@1.x.x: 1649 | version "1.2.0" 1650 | resolved "https://registry.yarnpkg.com/isemail/-/isemail-1.2.0.tgz#be03df8cc3e29de4d2c5df6501263f1fa4595e9a" 1651 | 1652 | isexe@^2.0.0: 1653 | version "2.0.0" 1654 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1655 | 1656 | isobject@^2.0.0: 1657 | version "2.1.0" 1658 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" 1659 | dependencies: 1660 | isarray "1.0.0" 1661 | 1662 | isstream@0.1.x, isstream@~0.1.2: 1663 | version "0.1.2" 1664 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" 1665 | 1666 | joi@^6.10.1: 1667 | version "6.10.1" 1668 | resolved "https://registry.yarnpkg.com/joi/-/joi-6.10.1.tgz#4d50c318079122000fe5f16af1ff8e1917b77e06" 1669 | dependencies: 1670 | hoek "2.x.x" 1671 | isemail "1.x.x" 1672 | moment "2.x.x" 1673 | topo "1.x.x" 1674 | 1675 | js-base64@^2.1.8: 1676 | version "2.1.9" 1677 | resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.1.9.tgz#f0e80ae039a4bd654b5f281fc93f04a914a7fcce" 1678 | 1679 | js-tokens@^3.0.2: 1680 | version "3.0.2" 1681 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" 1682 | 1683 | js-yaml@^3.5.1: 1684 | version "3.9.1" 1685 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.9.1.tgz#08775cebdfdd359209f0d2acd383c8f86a6904a0" 1686 | dependencies: 1687 | argparse "^1.0.7" 1688 | esprima "^4.0.0" 1689 | 1690 | jsbn@~0.1.0: 1691 | version "0.1.1" 1692 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" 1693 | 1694 | json-schema@0.2.3: 1695 | version "0.2.3" 1696 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" 1697 | 1698 | json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: 1699 | version "1.0.1" 1700 | resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" 1701 | dependencies: 1702 | jsonify "~0.0.0" 1703 | 1704 | json-stringify-safe@~5.0.1: 1705 | version "5.0.1" 1706 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 1707 | 1708 | json3@3.3.2: 1709 | version "3.3.2" 1710 | resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" 1711 | 1712 | jsonify@~0.0.0: 1713 | version "0.0.0" 1714 | resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" 1715 | 1716 | jsonpointer@^4.0.0: 1717 | version "4.0.1" 1718 | resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" 1719 | 1720 | jsonwebtoken@^7.4.1: 1721 | version "7.4.3" 1722 | resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-7.4.3.tgz#77f5021de058b605a1783fa1283e99812e645638" 1723 | dependencies: 1724 | joi "^6.10.1" 1725 | jws "^3.1.4" 1726 | lodash.once "^4.0.0" 1727 | ms "^2.0.0" 1728 | xtend "^4.0.1" 1729 | 1730 | jsprim@^1.2.2: 1731 | version "1.4.1" 1732 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" 1733 | dependencies: 1734 | assert-plus "1.0.0" 1735 | extsprintf "1.3.0" 1736 | json-schema "0.2.3" 1737 | verror "1.10.0" 1738 | 1739 | jsx-ast-utils@^1.3.4: 1740 | version "1.4.1" 1741 | resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz#3867213e8dd79bf1e8f2300c0cfc1efb182c0df1" 1742 | 1743 | juice@^4.1.0: 1744 | version "4.1.0" 1745 | resolved "https://registry.yarnpkg.com/juice/-/juice-4.1.0.tgz#f54177a6576e7a82d108a6fd0b92ebb043470d81" 1746 | dependencies: 1747 | cheerio "^0.22.0" 1748 | commander "2.9.0" 1749 | cross-spawn "^5.0.1" 1750 | deep-extend "^0.5.0" 1751 | mensch "^0.3.3" 1752 | slick "1.12.2" 1753 | web-resource-inliner "^4.1.0" 1754 | 1755 | jwa@^1.1.4: 1756 | version "1.1.5" 1757 | resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.1.5.tgz#a0552ce0220742cd52e153774a32905c30e756e5" 1758 | dependencies: 1759 | base64url "2.0.0" 1760 | buffer-equal-constant-time "1.0.1" 1761 | ecdsa-sig-formatter "1.0.9" 1762 | safe-buffer "^5.0.1" 1763 | 1764 | jws@^3.1.3, jws@^3.1.4: 1765 | version "3.1.4" 1766 | resolved "https://registry.yarnpkg.com/jws/-/jws-3.1.4.tgz#f9e8b9338e8a847277d6444b1464f61880e050a2" 1767 | dependencies: 1768 | base64url "^2.0.0" 1769 | jwa "^1.1.4" 1770 | safe-buffer "^5.0.1" 1771 | 1772 | kind-of@^3.0.2: 1773 | version "3.2.2" 1774 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" 1775 | dependencies: 1776 | is-buffer "^1.1.5" 1777 | 1778 | kind-of@^4.0.0: 1779 | version "4.0.0" 1780 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" 1781 | dependencies: 1782 | is-buffer "^1.1.5" 1783 | 1784 | lcid@^1.0.0: 1785 | version "1.0.0" 1786 | resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" 1787 | dependencies: 1788 | invert-kv "^1.0.0" 1789 | 1790 | levn@^0.3.0, levn@~0.3.0: 1791 | version "0.3.0" 1792 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" 1793 | dependencies: 1794 | prelude-ls "~1.1.2" 1795 | type-check "~0.3.2" 1796 | 1797 | load-json-file@^1.0.0: 1798 | version "1.1.0" 1799 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" 1800 | dependencies: 1801 | graceful-fs "^4.1.2" 1802 | parse-json "^2.2.0" 1803 | pify "^2.0.0" 1804 | pinkie-promise "^2.0.0" 1805 | strip-bom "^2.0.0" 1806 | 1807 | load-json-file@^2.0.0: 1808 | version "2.0.0" 1809 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" 1810 | dependencies: 1811 | graceful-fs "^4.1.2" 1812 | parse-json "^2.2.0" 1813 | pify "^2.0.0" 1814 | strip-bom "^3.0.0" 1815 | 1816 | locate-path@^2.0.0: 1817 | version "2.0.0" 1818 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" 1819 | dependencies: 1820 | p-locate "^2.0.0" 1821 | path-exists "^3.0.0" 1822 | 1823 | lodash.assign@^4.2.0: 1824 | version "4.2.0" 1825 | resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" 1826 | 1827 | lodash.assignin@^4.0.9: 1828 | version "4.2.0" 1829 | resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" 1830 | 1831 | lodash.bind@^4.1.4: 1832 | version "4.2.1" 1833 | resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35" 1834 | 1835 | lodash.clonedeep@^4.3.2: 1836 | version "4.5.0" 1837 | resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" 1838 | 1839 | lodash.cond@^4.3.0: 1840 | version "4.5.2" 1841 | resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5" 1842 | 1843 | lodash.defaults@^4.0.1: 1844 | version "4.2.0" 1845 | resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" 1846 | 1847 | lodash.filter@^4.4.0: 1848 | version "4.6.0" 1849 | resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" 1850 | 1851 | lodash.flatten@^4.2.0: 1852 | version "4.4.0" 1853 | resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" 1854 | 1855 | lodash.foreach@^4.3.0: 1856 | version "4.5.0" 1857 | resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" 1858 | 1859 | lodash.map@^4.4.0: 1860 | version "4.6.0" 1861 | resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" 1862 | 1863 | lodash.merge@^4.4.0: 1864 | version "4.6.0" 1865 | resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.0.tgz#69884ba144ac33fe699737a6086deffadd0f89c5" 1866 | 1867 | lodash.mergewith@^4.6.0: 1868 | version "4.6.0" 1869 | resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz#150cf0a16791f5903b8891eab154609274bdea55" 1870 | 1871 | lodash.once@^4.0.0: 1872 | version "4.1.1" 1873 | resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" 1874 | 1875 | lodash.pick@^4.2.1: 1876 | version "4.4.0" 1877 | resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" 1878 | 1879 | lodash.reduce@^4.4.0: 1880 | version "4.6.0" 1881 | resolved "https://registry.yarnpkg.com/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b" 1882 | 1883 | lodash.reject@^4.4.0: 1884 | version "4.6.0" 1885 | resolved "https://registry.yarnpkg.com/lodash.reject/-/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415" 1886 | 1887 | lodash.some@^4.4.0: 1888 | version "4.6.0" 1889 | resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" 1890 | 1891 | lodash.unescape@^4.0.1: 1892 | version "4.0.1" 1893 | resolved "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz#bf2249886ce514cda112fae9218cdc065211fc9c" 1894 | 1895 | lodash@^3.10.1: 1896 | version "3.10.1" 1897 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" 1898 | 1899 | lodash@^4.0.0, lodash@^4.14.0, lodash@^4.3.0, lodash@~4.17.4: 1900 | version "4.17.4" 1901 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" 1902 | 1903 | loud-rejection@^1.0.0: 1904 | version "1.6.0" 1905 | resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" 1906 | dependencies: 1907 | currently-unhandled "^0.4.1" 1908 | signal-exit "^3.0.0" 1909 | 1910 | lru-cache@^4.0.1: 1911 | version "4.1.1" 1912 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" 1913 | dependencies: 1914 | pseudomap "^1.0.2" 1915 | yallist "^2.1.2" 1916 | 1917 | mailparser@0.6.2: 1918 | version "0.6.2" 1919 | resolved "https://registry.yarnpkg.com/mailparser/-/mailparser-0.6.2.tgz#03c486039bdf4df6cd3b6adcaaac4107dfdbc068" 1920 | dependencies: 1921 | encoding "^0.1.12" 1922 | mime "^1.3.4" 1923 | mimelib "^0.3.0" 1924 | uue "^3.1.0" 1925 | 1926 | map-obj@^1.0.0, map-obj@^1.0.1: 1927 | version "1.0.1" 1928 | resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" 1929 | 1930 | media-typer@0.3.0: 1931 | version "0.3.0" 1932 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 1933 | 1934 | mensch@^0.3.3: 1935 | version "0.3.3" 1936 | resolved "https://registry.yarnpkg.com/mensch/-/mensch-0.3.3.tgz#e200ff4dd823717f8e0563b32e3f5481fca262b2" 1937 | 1938 | meow@^3.7.0: 1939 | version "3.7.0" 1940 | resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" 1941 | dependencies: 1942 | camelcase-keys "^2.0.0" 1943 | decamelize "^1.1.2" 1944 | loud-rejection "^1.0.0" 1945 | map-obj "^1.0.1" 1946 | minimist "^1.1.3" 1947 | normalize-package-data "^2.3.4" 1948 | object-assign "^4.0.1" 1949 | read-pkg-up "^1.0.1" 1950 | redent "^1.0.0" 1951 | trim-newlines "^1.0.0" 1952 | 1953 | merge-descriptors@1.0.1: 1954 | version "1.0.1" 1955 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" 1956 | 1957 | methods@~1.1.2: 1958 | version "1.1.2" 1959 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 1960 | 1961 | micromatch@^2.1.5: 1962 | version "2.3.11" 1963 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" 1964 | dependencies: 1965 | arr-diff "^2.0.0" 1966 | array-unique "^0.2.1" 1967 | braces "^1.8.2" 1968 | expand-brackets "^0.1.4" 1969 | extglob "^0.3.1" 1970 | filename-regex "^2.0.0" 1971 | is-extglob "^1.0.0" 1972 | is-glob "^2.0.1" 1973 | kind-of "^3.0.2" 1974 | normalize-path "^2.0.1" 1975 | object.omit "^2.0.0" 1976 | parse-glob "^3.0.4" 1977 | regex-cache "^0.4.2" 1978 | 1979 | mime-db@~1.29.0: 1980 | version "1.29.0" 1981 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.29.0.tgz#48d26d235589651704ac5916ca06001914266878" 1982 | 1983 | mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.15, mime-types@~2.1.6, mime-types@~2.1.7: 1984 | version "2.1.16" 1985 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.16.tgz#2b858a52e5ecd516db897ac2be87487830698e23" 1986 | dependencies: 1987 | mime-db "~1.29.0" 1988 | 1989 | mime@1.3.4: 1990 | version "1.3.4" 1991 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" 1992 | 1993 | mime@^1.3.4: 1994 | version "1.3.6" 1995 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.6.tgz#591d84d3653a6b0b4a3b9df8de5aa8108e72e5e0" 1996 | 1997 | mimelib@^0.3.0: 1998 | version "0.3.1" 1999 | resolved "https://registry.yarnpkg.com/mimelib/-/mimelib-0.3.1.tgz#787add2415d827acb3af6ec4bca1ea9596418853" 2000 | dependencies: 2001 | addressparser "~1.0.1" 2002 | encoding "~0.1.12" 2003 | 2004 | mimer@^0.2.1: 2005 | version "0.2.1" 2006 | resolved "https://registry.yarnpkg.com/mimer/-/mimer-0.2.1.tgz#c63c5a17fe86423f5161a85d55c3ed5189baaffc" 2007 | 2008 | minimalistic-assert@^1.0.0: 2009 | version "1.0.0" 2010 | resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" 2011 | 2012 | minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2: 2013 | version "3.0.4" 2014 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 2015 | dependencies: 2016 | brace-expansion "^1.1.7" 2017 | 2018 | minimist@0.0.8: 2019 | version "0.0.8" 2020 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 2021 | 2022 | minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0: 2023 | version "1.2.0" 2024 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 2025 | 2026 | "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1: 2027 | version "0.5.1" 2028 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 2029 | dependencies: 2030 | minimist "0.0.8" 2031 | 2032 | moment@2.x.x: 2033 | version "2.18.1" 2034 | resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f" 2035 | 2036 | ms@0.7.1: 2037 | version "0.7.1" 2038 | resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" 2039 | 2040 | ms@0.7.2: 2041 | version "0.7.2" 2042 | resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" 2043 | 2044 | ms@2.0.0, ms@^2.0.0: 2045 | version "2.0.0" 2046 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 2047 | 2048 | mute-stream@0.0.5: 2049 | version "0.0.5" 2050 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" 2051 | 2052 | nan@^2.3.0, nan@^2.3.2: 2053 | version "2.6.2" 2054 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" 2055 | 2056 | natural-compare@^1.4.0: 2057 | version "1.4.0" 2058 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 2059 | 2060 | negotiator@0.5.3: 2061 | version "0.5.3" 2062 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.5.3.tgz#269d5c476810ec92edbe7b6c2f28316384f9a7e8" 2063 | 2064 | negotiator@0.6.1: 2065 | version "0.6.1" 2066 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" 2067 | 2068 | node-adm@^0.9.1: 2069 | version "0.9.1" 2070 | resolved "https://registry.yarnpkg.com/node-adm/-/node-adm-0.9.1.tgz#f8c6a72ffadb1a7dfd6637102c950a9a9496e842" 2071 | 2072 | node-fetch@1.7.2: 2073 | version "1.7.2" 2074 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.2.tgz#c54e9aac57e432875233525f3c891c4159ffefd7" 2075 | dependencies: 2076 | encoding "^0.1.11" 2077 | is-stream "^1.0.1" 2078 | 2079 | node-forge@^0.7.1: 2080 | version "0.7.1" 2081 | resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.1.tgz#9da611ea08982f4b94206b3beb4cc9665f20c300" 2082 | 2083 | node-gcm@^0.14.4: 2084 | version "0.14.6" 2085 | resolved "https://registry.yarnpkg.com/node-gcm/-/node-gcm-0.14.6.tgz#a0172e50c616b28fef7549f08d1caae0ed8c0d99" 2086 | dependencies: 2087 | debug "^0.8.1" 2088 | lodash "^3.10.1" 2089 | request "^2.81.0" 2090 | 2091 | node-gyp@^3.3.1: 2092 | version "3.6.2" 2093 | resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.6.2.tgz#9bfbe54562286284838e750eac05295853fa1c60" 2094 | dependencies: 2095 | fstream "^1.0.0" 2096 | glob "^7.0.3" 2097 | graceful-fs "^4.1.2" 2098 | minimatch "^3.0.2" 2099 | mkdirp "^0.5.0" 2100 | nopt "2 || 3" 2101 | npmlog "0 || 1 || 2 || 3 || 4" 2102 | osenv "0" 2103 | request "2" 2104 | rimraf "2" 2105 | semver "~5.3.0" 2106 | tar "^2.0.0" 2107 | which "1" 2108 | 2109 | node-pre-gyp@^0.6.36: 2110 | version "0.6.36" 2111 | resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz#db604112cb74e0d477554e9b505b17abddfab786" 2112 | dependencies: 2113 | mkdirp "^0.5.1" 2114 | nopt "^4.0.1" 2115 | npmlog "^4.0.2" 2116 | rc "^1.1.7" 2117 | request "^2.81.0" 2118 | rimraf "^2.6.1" 2119 | semver "^5.3.0" 2120 | tar "^2.2.1" 2121 | tar-pack "^3.4.0" 2122 | 2123 | node-pushnotifications@1.0.18: 2124 | version "1.0.18" 2125 | resolved "https://registry.yarnpkg.com/node-pushnotifications/-/node-pushnotifications-1.0.18.tgz#a54863b04879ef7f01f811ddc8c81db04f8e2bc3" 2126 | dependencies: 2127 | apn "^2.1.1" 2128 | node-adm "^0.9.1" 2129 | node-gcm "^0.14.4" 2130 | wns "^0.5.3" 2131 | 2132 | node-sass@^4.5.3: 2133 | version "4.5.3" 2134 | resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.5.3.tgz#d09c9d1179641239d1b97ffc6231fdcec53e1568" 2135 | dependencies: 2136 | async-foreach "^0.1.3" 2137 | chalk "^1.1.1" 2138 | cross-spawn "^3.0.0" 2139 | gaze "^1.0.0" 2140 | get-stdin "^4.0.1" 2141 | glob "^7.0.3" 2142 | in-publish "^2.0.0" 2143 | lodash.assign "^4.2.0" 2144 | lodash.clonedeep "^4.3.2" 2145 | lodash.mergewith "^4.6.0" 2146 | meow "^3.7.0" 2147 | mkdirp "^0.5.1" 2148 | nan "^2.3.2" 2149 | node-gyp "^3.3.1" 2150 | npmlog "^4.0.0" 2151 | request "^2.79.0" 2152 | sass-graph "^2.1.1" 2153 | stdout-stream "^1.4.0" 2154 | 2155 | nodemailer-fetch@1.3.0: 2156 | version "1.3.0" 2157 | resolved "https://registry.yarnpkg.com/nodemailer-fetch/-/nodemailer-fetch-1.3.0.tgz#9f37f6a5b80c1cb5d697ca2bfbde41a6582a50b0" 2158 | 2159 | nodemailer-fetch@1.6.0: 2160 | version "1.6.0" 2161 | resolved "https://registry.yarnpkg.com/nodemailer-fetch/-/nodemailer-fetch-1.6.0.tgz#79c4908a1c0f5f375b73fe888da9828f6dc963a4" 2162 | 2163 | nodemailer-shared@1.0.4: 2164 | version "1.0.4" 2165 | resolved "https://registry.yarnpkg.com/nodemailer-shared/-/nodemailer-shared-1.0.4.tgz#8b5c5c35bfb29a47dda7d38303f3a4fb47ba38ae" 2166 | dependencies: 2167 | nodemailer-fetch "1.3.0" 2168 | 2169 | nodemailer-shared@^1.1.0: 2170 | version "1.1.0" 2171 | resolved "https://registry.yarnpkg.com/nodemailer-shared/-/nodemailer-shared-1.1.0.tgz#cf5994e2fd268d00f5cf0fa767a08169edb07ec0" 2172 | dependencies: 2173 | nodemailer-fetch "1.6.0" 2174 | 2175 | nodemailer@4.0.1: 2176 | version "4.0.1" 2177 | resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-4.0.1.tgz#b95864b07facee8287e8232effd6f1d56ec75ab2" 2178 | 2179 | "nopt@2 || 3": 2180 | version "3.0.6" 2181 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" 2182 | dependencies: 2183 | abbrev "1" 2184 | 2185 | nopt@^4.0.1: 2186 | version "4.0.1" 2187 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" 2188 | dependencies: 2189 | abbrev "1" 2190 | osenv "^0.1.4" 2191 | 2192 | normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: 2193 | version "2.4.0" 2194 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" 2195 | dependencies: 2196 | hosted-git-info "^2.1.4" 2197 | is-builtin-module "^1.0.0" 2198 | semver "2 || 3 || 4 || 5" 2199 | validate-npm-package-license "^3.0.1" 2200 | 2201 | normalize-path@^2.0.0, normalize-path@^2.0.1: 2202 | version "2.1.1" 2203 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" 2204 | dependencies: 2205 | remove-trailing-separator "^1.0.1" 2206 | 2207 | notification-catcher@^1.0.3: 2208 | version "1.0.3" 2209 | resolved "https://registry.yarnpkg.com/notification-catcher/-/notification-catcher-1.0.3.tgz#738c3a9591b42af7a634faf4e7b5cf0da20b9698" 2210 | dependencies: 2211 | async "1.5.1" 2212 | commander "2.9.0" 2213 | express "4.13.4" 2214 | mailparser "0.6.2" 2215 | open "0.0.5" 2216 | smtp-connection "2.3.1" 2217 | smtp-server "1.16.1" 2218 | socket.io "1.7.3" 2219 | wildstring "1.0.8" 2220 | 2221 | notifme-sdk@^1.0.1: 2222 | version "1.0.1" 2223 | resolved "https://registry.yarnpkg.com/notifme-sdk/-/notifme-sdk-1.0.1.tgz#b9c6fbf5dd6300099a9920439ae944bb4fad8163" 2224 | dependencies: 2225 | babel-runtime "6.25.0" 2226 | form-data "2.2.0" 2227 | node-fetch "1.7.2" 2228 | node-pushnotifications "1.0.18" 2229 | nodemailer "4.0.1" 2230 | web-push "3.2.2" 2231 | winston "2.3.1" 2232 | 2233 | "npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2: 2234 | version "4.1.2" 2235 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" 2236 | dependencies: 2237 | are-we-there-yet "~1.1.2" 2238 | console-control-strings "~1.1.0" 2239 | gauge "~2.7.3" 2240 | set-blocking "~2.0.0" 2241 | 2242 | nth-check@~1.0.1: 2243 | version "1.0.1" 2244 | resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4" 2245 | dependencies: 2246 | boolbase "~1.0.0" 2247 | 2248 | number-is-nan@^1.0.0: 2249 | version "1.0.1" 2250 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 2251 | 2252 | nunjucks@^3.0.1: 2253 | version "3.0.1" 2254 | resolved "https://registry.yarnpkg.com/nunjucks/-/nunjucks-3.0.1.tgz#4de74a3e550baf6fa3370323f3d1c7c2a86bdc4d" 2255 | dependencies: 2256 | a-sync-waterfall "^1.0.0" 2257 | asap "^2.0.3" 2258 | yargs "^3.32.0" 2259 | optionalDependencies: 2260 | chokidar "^1.6.0" 2261 | 2262 | oauth-sign@~0.8.1: 2263 | version "0.8.2" 2264 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" 2265 | 2266 | object-assign@4.1.0: 2267 | version "4.1.0" 2268 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" 2269 | 2270 | object-assign@^4.0.1, object-assign@^4.1.0: 2271 | version "4.1.1" 2272 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 2273 | 2274 | object-component@0.0.3: 2275 | version "0.0.3" 2276 | resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" 2277 | 2278 | object-keys@^1.0.10, object-keys@^1.0.8: 2279 | version "1.0.11" 2280 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" 2281 | 2282 | object.assign@^4.0.4: 2283 | version "4.0.4" 2284 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.0.4.tgz#b1c9cc044ef1b9fe63606fc141abbb32e14730cc" 2285 | dependencies: 2286 | define-properties "^1.1.2" 2287 | function-bind "^1.1.0" 2288 | object-keys "^1.0.10" 2289 | 2290 | object.omit@^2.0.0: 2291 | version "2.0.1" 2292 | resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" 2293 | dependencies: 2294 | for-own "^0.1.4" 2295 | is-extendable "^0.1.1" 2296 | 2297 | on-finished@~2.3.0: 2298 | version "2.3.0" 2299 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" 2300 | dependencies: 2301 | ee-first "1.1.1" 2302 | 2303 | once@^1.3.0, once@^1.3.3: 2304 | version "1.4.0" 2305 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 2306 | dependencies: 2307 | wrappy "1" 2308 | 2309 | onetime@^1.0.0: 2310 | version "1.1.0" 2311 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" 2312 | 2313 | open@0.0.5: 2314 | version "0.0.5" 2315 | resolved "https://registry.yarnpkg.com/open/-/open-0.0.5.tgz#42c3e18ec95466b6bf0dc42f3a2945c3f0cad8fc" 2316 | 2317 | optionator@^0.8.2: 2318 | version "0.8.2" 2319 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" 2320 | dependencies: 2321 | deep-is "~0.1.3" 2322 | fast-levenshtein "~2.0.4" 2323 | levn "~0.3.0" 2324 | prelude-ls "~1.1.2" 2325 | type-check "~0.3.2" 2326 | wordwrap "~1.0.0" 2327 | 2328 | options@>=0.0.5: 2329 | version "0.0.6" 2330 | resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" 2331 | 2332 | os-homedir@^1.0.0: 2333 | version "1.0.2" 2334 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 2335 | 2336 | os-locale@^1.4.0: 2337 | version "1.4.0" 2338 | resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" 2339 | dependencies: 2340 | lcid "^1.0.0" 2341 | 2342 | os-tmpdir@^1.0.0: 2343 | version "1.0.2" 2344 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 2345 | 2346 | osenv@0, osenv@^0.1.4: 2347 | version "0.1.4" 2348 | resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" 2349 | dependencies: 2350 | os-homedir "^1.0.0" 2351 | os-tmpdir "^1.0.0" 2352 | 2353 | p-limit@^1.1.0: 2354 | version "1.1.0" 2355 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc" 2356 | 2357 | p-locate@^2.0.0: 2358 | version "2.0.0" 2359 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" 2360 | dependencies: 2361 | p-limit "^1.1.0" 2362 | 2363 | parse-glob@^3.0.4: 2364 | version "3.0.4" 2365 | resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" 2366 | dependencies: 2367 | glob-base "^0.3.0" 2368 | is-dotfile "^1.0.0" 2369 | is-extglob "^1.0.0" 2370 | is-glob "^2.0.0" 2371 | 2372 | parse-json@^2.2.0: 2373 | version "2.2.0" 2374 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" 2375 | dependencies: 2376 | error-ex "^1.2.0" 2377 | 2378 | parsejson@0.0.3: 2379 | version "0.0.3" 2380 | resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.3.tgz#ab7e3759f209ece99437973f7d0f1f64ae0e64ab" 2381 | dependencies: 2382 | better-assert "~1.0.0" 2383 | 2384 | parseqs@0.0.5: 2385 | version "0.0.5" 2386 | resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" 2387 | dependencies: 2388 | better-assert "~1.0.0" 2389 | 2390 | parseuri@0.0.5: 2391 | version "0.0.5" 2392 | resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" 2393 | dependencies: 2394 | better-assert "~1.0.0" 2395 | 2396 | parseurl@~1.3.1: 2397 | version "1.3.1" 2398 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56" 2399 | 2400 | path-exists@^2.0.0: 2401 | version "2.1.0" 2402 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" 2403 | dependencies: 2404 | pinkie-promise "^2.0.0" 2405 | 2406 | path-exists@^3.0.0: 2407 | version "3.0.0" 2408 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 2409 | 2410 | path-is-absolute@^1.0.0: 2411 | version "1.0.1" 2412 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 2413 | 2414 | path-is-inside@^1.0.1: 2415 | version "1.0.2" 2416 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" 2417 | 2418 | path-parse@^1.0.5: 2419 | version "1.0.5" 2420 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" 2421 | 2422 | path-to-regexp@0.1.7: 2423 | version "0.1.7" 2424 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" 2425 | 2426 | path-type@^1.0.0: 2427 | version "1.1.0" 2428 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" 2429 | dependencies: 2430 | graceful-fs "^4.1.2" 2431 | pify "^2.0.0" 2432 | pinkie-promise "^2.0.0" 2433 | 2434 | performance-now@^0.2.0: 2435 | version "0.2.0" 2436 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" 2437 | 2438 | pify@^2.0.0: 2439 | version "2.3.0" 2440 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 2441 | 2442 | pinkie-promise@^2.0.0: 2443 | version "2.0.1" 2444 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 2445 | dependencies: 2446 | pinkie "^2.0.0" 2447 | 2448 | pinkie@^2.0.0: 2449 | version "2.0.4" 2450 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 2451 | 2452 | pkg-conf@^2.0.0: 2453 | version "2.0.0" 2454 | resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-2.0.0.tgz#071c87650403bccfb9c627f58751bfe47c067279" 2455 | dependencies: 2456 | find-up "^2.0.0" 2457 | load-json-file "^2.0.0" 2458 | 2459 | pkg-config@^1.1.0: 2460 | version "1.1.1" 2461 | resolved "https://registry.yarnpkg.com/pkg-config/-/pkg-config-1.1.1.tgz#557ef22d73da3c8837107766c52eadabde298fe4" 2462 | dependencies: 2463 | debug-log "^1.0.0" 2464 | find-root "^1.0.0" 2465 | xtend "^4.0.1" 2466 | 2467 | pkg-dir@^1.0.0: 2468 | version "1.0.0" 2469 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" 2470 | dependencies: 2471 | find-up "^1.0.0" 2472 | 2473 | pkg-up@^1.0.0: 2474 | version "1.0.0" 2475 | resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-1.0.0.tgz#3e08fb461525c4421624a33b9f7e6d0af5b05a26" 2476 | dependencies: 2477 | find-up "^1.0.0" 2478 | 2479 | pluralize@^1.2.1: 2480 | version "1.2.1" 2481 | resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" 2482 | 2483 | prelude-ls@~1.1.2: 2484 | version "1.1.2" 2485 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 2486 | 2487 | preserve@^0.2.0: 2488 | version "0.2.0" 2489 | resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" 2490 | 2491 | process-nextick-args@~1.0.6: 2492 | version "1.0.7" 2493 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" 2494 | 2495 | progress@^1.1.8: 2496 | version "1.1.8" 2497 | resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" 2498 | 2499 | proxy-addr@~1.0.10: 2500 | version "1.0.10" 2501 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.0.10.tgz#0d40a82f801fc355567d2ecb65efe3f077f121c5" 2502 | dependencies: 2503 | forwarded "~0.1.0" 2504 | ipaddr.js "1.0.5" 2505 | 2506 | pseudomap@^1.0.2: 2507 | version "1.0.2" 2508 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" 2509 | 2510 | punycode@^1.4.1: 2511 | version "1.4.1" 2512 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" 2513 | 2514 | qs@4.0.0: 2515 | version "4.0.0" 2516 | resolved "https://registry.yarnpkg.com/qs/-/qs-4.0.0.tgz#c31d9b74ec27df75e543a86c78728ed8d4623607" 2517 | 2518 | qs@~6.4.0: 2519 | version "6.4.0" 2520 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" 2521 | 2522 | randomatic@^1.1.3: 2523 | version "1.1.7" 2524 | resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" 2525 | dependencies: 2526 | is-number "^3.0.0" 2527 | kind-of "^4.0.0" 2528 | 2529 | range-parser@~1.0.3: 2530 | version "1.0.3" 2531 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.0.3.tgz#6872823535c692e2c2a0103826afd82c2e0ff175" 2532 | 2533 | rc@^1.1.7: 2534 | version "1.2.1" 2535 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95" 2536 | dependencies: 2537 | deep-extend "~0.4.0" 2538 | ini "~1.3.0" 2539 | minimist "^1.2.0" 2540 | strip-json-comments "~2.0.1" 2541 | 2542 | read-pkg-up@^1.0.1: 2543 | version "1.0.1" 2544 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" 2545 | dependencies: 2546 | find-up "^1.0.0" 2547 | read-pkg "^1.0.0" 2548 | 2549 | read-pkg@^1.0.0: 2550 | version "1.1.0" 2551 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" 2552 | dependencies: 2553 | load-json-file "^1.0.0" 2554 | normalize-package-data "^2.3.2" 2555 | path-type "^1.0.0" 2556 | 2557 | readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2: 2558 | version "2.3.3" 2559 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" 2560 | dependencies: 2561 | core-util-is "~1.0.0" 2562 | inherits "~2.0.3" 2563 | isarray "~1.0.0" 2564 | process-nextick-args "~1.0.6" 2565 | safe-buffer "~5.1.1" 2566 | string_decoder "~1.0.3" 2567 | util-deprecate "~1.0.1" 2568 | 2569 | readdirp@^2.0.0: 2570 | version "2.1.0" 2571 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" 2572 | dependencies: 2573 | graceful-fs "^4.1.2" 2574 | minimatch "^3.0.2" 2575 | readable-stream "^2.0.2" 2576 | set-immediate-shim "^1.0.1" 2577 | 2578 | readline2@^1.0.1: 2579 | version "1.0.1" 2580 | resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" 2581 | dependencies: 2582 | code-point-at "^1.0.0" 2583 | is-fullwidth-code-point "^1.0.0" 2584 | mute-stream "0.0.5" 2585 | 2586 | rechoir@^0.6.2: 2587 | version "0.6.2" 2588 | resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" 2589 | dependencies: 2590 | resolve "^1.1.6" 2591 | 2592 | redent@^1.0.0: 2593 | version "1.0.0" 2594 | resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" 2595 | dependencies: 2596 | indent-string "^2.1.0" 2597 | strip-indent "^1.0.1" 2598 | 2599 | regenerator-runtime@^0.10.0: 2600 | version "0.10.5" 2601 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" 2602 | 2603 | regex-cache@^0.4.2: 2604 | version "0.4.3" 2605 | resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" 2606 | dependencies: 2607 | is-equal-shallow "^0.1.3" 2608 | is-primitive "^2.0.0" 2609 | 2610 | remove-trailing-separator@^1.0.1: 2611 | version "1.1.0" 2612 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" 2613 | 2614 | repeat-element@^1.1.2: 2615 | version "1.1.2" 2616 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" 2617 | 2618 | repeat-string@^1.5.2: 2619 | version "1.6.1" 2620 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" 2621 | 2622 | repeating@^2.0.0: 2623 | version "2.0.1" 2624 | resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" 2625 | dependencies: 2626 | is-finite "^1.0.0" 2627 | 2628 | request@2, request@^2.78.0, request@^2.79.0, request@^2.81.0: 2629 | version "2.81.0" 2630 | resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" 2631 | dependencies: 2632 | aws-sign2 "~0.6.0" 2633 | aws4 "^1.2.1" 2634 | caseless "~0.12.0" 2635 | combined-stream "~1.0.5" 2636 | extend "~3.0.0" 2637 | forever-agent "~0.6.1" 2638 | form-data "~2.1.1" 2639 | har-validator "~4.2.1" 2640 | hawk "~3.1.3" 2641 | http-signature "~1.1.0" 2642 | is-typedarray "~1.0.0" 2643 | isstream "~0.1.2" 2644 | json-stringify-safe "~5.0.1" 2645 | mime-types "~2.1.7" 2646 | oauth-sign "~0.8.1" 2647 | performance-now "^0.2.0" 2648 | qs "~6.4.0" 2649 | safe-buffer "^5.0.1" 2650 | stringstream "~0.0.4" 2651 | tough-cookie "~2.3.0" 2652 | tunnel-agent "^0.6.0" 2653 | uuid "^3.0.0" 2654 | 2655 | require-directory@^2.1.1: 2656 | version "2.1.1" 2657 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 2658 | 2659 | require-main-filename@^1.0.1: 2660 | version "1.0.1" 2661 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" 2662 | 2663 | require-uncached@^1.0.2: 2664 | version "1.0.3" 2665 | resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" 2666 | dependencies: 2667 | caller-path "^0.1.0" 2668 | resolve-from "^1.0.0" 2669 | 2670 | resolve-from@^1.0.0: 2671 | version "1.0.1" 2672 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" 2673 | 2674 | resolve@^1.1.6, resolve@^1.1.7: 2675 | version "1.4.0" 2676 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86" 2677 | dependencies: 2678 | path-parse "^1.0.5" 2679 | 2680 | restore-cursor@^1.0.1: 2681 | version "1.0.1" 2682 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" 2683 | dependencies: 2684 | exit-hook "^1.0.0" 2685 | onetime "^1.0.0" 2686 | 2687 | rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.6.1: 2688 | version "2.6.1" 2689 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" 2690 | dependencies: 2691 | glob "^7.0.5" 2692 | 2693 | run-async@^0.1.0: 2694 | version "0.1.0" 2695 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" 2696 | dependencies: 2697 | once "^1.3.0" 2698 | 2699 | run-parallel@^1.1.2: 2700 | version "1.1.6" 2701 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.6.tgz#29003c9a2163e01e2d2dfc90575f2c6c1d61a039" 2702 | 2703 | rx-lite@^3.1.2: 2704 | version "3.1.2" 2705 | resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" 2706 | 2707 | safe-buffer@^5.0.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 2708 | version "5.1.1" 2709 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" 2710 | 2711 | sass-graph@^2.1.1: 2712 | version "2.2.4" 2713 | resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49" 2714 | dependencies: 2715 | glob "^7.0.0" 2716 | lodash "^4.0.0" 2717 | scss-tokenizer "^0.2.3" 2718 | yargs "^7.0.0" 2719 | 2720 | scss-tokenizer@^0.2.3: 2721 | version "0.2.3" 2722 | resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1" 2723 | dependencies: 2724 | js-base64 "^2.1.8" 2725 | source-map "^0.4.2" 2726 | 2727 | "semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.3.0: 2728 | version "5.4.1" 2729 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" 2730 | 2731 | semver@5.3.0, semver@~5.3.0: 2732 | version "5.3.0" 2733 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" 2734 | 2735 | send@0.13.1: 2736 | version "0.13.1" 2737 | resolved "https://registry.yarnpkg.com/send/-/send-0.13.1.tgz#a30d5f4c82c8a9bae9ad00a1d9b1bdbe6f199ed7" 2738 | dependencies: 2739 | debug "~2.2.0" 2740 | depd "~1.1.0" 2741 | destroy "~1.0.4" 2742 | escape-html "~1.0.3" 2743 | etag "~1.7.0" 2744 | fresh "0.3.0" 2745 | http-errors "~1.3.1" 2746 | mime "1.3.4" 2747 | ms "0.7.1" 2748 | on-finished "~2.3.0" 2749 | range-parser "~1.0.3" 2750 | statuses "~1.2.1" 2751 | 2752 | send@0.13.2: 2753 | version "0.13.2" 2754 | resolved "https://registry.yarnpkg.com/send/-/send-0.13.2.tgz#765e7607c8055452bba6f0b052595350986036de" 2755 | dependencies: 2756 | debug "~2.2.0" 2757 | depd "~1.1.0" 2758 | destroy "~1.0.4" 2759 | escape-html "~1.0.3" 2760 | etag "~1.7.0" 2761 | fresh "0.3.0" 2762 | http-errors "~1.3.1" 2763 | mime "1.3.4" 2764 | ms "0.7.1" 2765 | on-finished "~2.3.0" 2766 | range-parser "~1.0.3" 2767 | statuses "~1.2.1" 2768 | 2769 | serve-static@~1.10.2: 2770 | version "1.10.3" 2771 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.10.3.tgz#ce5a6ecd3101fed5ec09827dac22a9c29bfb0535" 2772 | dependencies: 2773 | escape-html "~1.0.3" 2774 | parseurl "~1.3.1" 2775 | send "0.13.2" 2776 | 2777 | set-blocking@^2.0.0, set-blocking@~2.0.0: 2778 | version "2.0.0" 2779 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 2780 | 2781 | set-immediate-shim@^1.0.1: 2782 | version "1.0.1" 2783 | resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" 2784 | 2785 | shebang-command@^1.2.0: 2786 | version "1.2.0" 2787 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 2788 | dependencies: 2789 | shebang-regex "^1.0.0" 2790 | 2791 | shebang-regex@^1.0.0: 2792 | version "1.0.0" 2793 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 2794 | 2795 | shelljs@^0.7.5: 2796 | version "0.7.8" 2797 | resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3" 2798 | dependencies: 2799 | glob "^7.0.0" 2800 | interpret "^1.0.0" 2801 | rechoir "^0.6.2" 2802 | 2803 | signal-exit@^3.0.0: 2804 | version "3.0.2" 2805 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 2806 | 2807 | slice-ansi@0.0.4: 2808 | version "0.0.4" 2809 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" 2810 | 2811 | slick@1.12.2: 2812 | version "1.12.2" 2813 | resolved "https://registry.yarnpkg.com/slick/-/slick-1.12.2.tgz#bd048ddb74de7d1ca6915faa4a57570b3550c2d7" 2814 | 2815 | smtp-connection@2.3.1: 2816 | version "2.3.1" 2817 | resolved "https://registry.yarnpkg.com/smtp-connection/-/smtp-connection-2.3.1.tgz#d169c8f1c9a73854134cdabe6fb818237dfc4fba" 2818 | dependencies: 2819 | nodemailer-shared "1.0.4" 2820 | 2821 | smtp-server@1.16.1: 2822 | version "1.16.1" 2823 | resolved "https://registry.yarnpkg.com/smtp-server/-/smtp-server-1.16.1.tgz#91d2dbd5e8bb9ed395b1a1774e8b60dd7b24e453" 2824 | dependencies: 2825 | ipv6-normalize "^1.0.1" 2826 | nodemailer-shared "^1.1.0" 2827 | 2828 | sntp@1.x.x: 2829 | version "1.0.9" 2830 | resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" 2831 | dependencies: 2832 | hoek "2.x.x" 2833 | 2834 | socket.io-adapter@0.5.0: 2835 | version "0.5.0" 2836 | resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz#cb6d4bb8bec81e1078b99677f9ced0046066bb8b" 2837 | dependencies: 2838 | debug "2.3.3" 2839 | socket.io-parser "2.3.1" 2840 | 2841 | socket.io-client@1.7.3: 2842 | version "1.7.3" 2843 | resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.7.3.tgz#b30e86aa10d5ef3546601c09cde4765e381da377" 2844 | dependencies: 2845 | backo2 "1.0.2" 2846 | component-bind "1.0.0" 2847 | component-emitter "1.2.1" 2848 | debug "2.3.3" 2849 | engine.io-client "1.8.3" 2850 | has-binary "0.1.7" 2851 | indexof "0.0.1" 2852 | object-component "0.0.3" 2853 | parseuri "0.0.5" 2854 | socket.io-parser "2.3.1" 2855 | to-array "0.1.4" 2856 | 2857 | socket.io-parser@2.3.1: 2858 | version "2.3.1" 2859 | resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.3.1.tgz#dd532025103ce429697326befd64005fcfe5b4a0" 2860 | dependencies: 2861 | component-emitter "1.1.2" 2862 | debug "2.2.0" 2863 | isarray "0.0.1" 2864 | json3 "3.3.2" 2865 | 2866 | socket.io@1.7.3: 2867 | version "1.7.3" 2868 | resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.7.3.tgz#b8af9caba00949e568e369f1327ea9be9ea2461b" 2869 | dependencies: 2870 | debug "2.3.3" 2871 | engine.io "1.8.3" 2872 | has-binary "0.1.7" 2873 | object-assign "4.1.0" 2874 | socket.io-adapter "0.5.0" 2875 | socket.io-client "1.7.3" 2876 | socket.io-parser "2.3.1" 2877 | 2878 | source-map@^0.4.2: 2879 | version "0.4.4" 2880 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" 2881 | dependencies: 2882 | amdefine ">=0.0.4" 2883 | 2884 | spdx-correct@~1.0.0: 2885 | version "1.0.2" 2886 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" 2887 | dependencies: 2888 | spdx-license-ids "^1.0.2" 2889 | 2890 | spdx-expression-parse@~1.0.0: 2891 | version "1.0.4" 2892 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" 2893 | 2894 | spdx-license-ids@^1.0.2: 2895 | version "1.2.2" 2896 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" 2897 | 2898 | sprintf-js@~1.0.2: 2899 | version "1.0.3" 2900 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 2901 | 2902 | sshpk@^1.7.0: 2903 | version "1.13.1" 2904 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" 2905 | dependencies: 2906 | asn1 "~0.2.3" 2907 | assert-plus "^1.0.0" 2908 | dashdash "^1.12.0" 2909 | getpass "^0.1.1" 2910 | optionalDependencies: 2911 | bcrypt-pbkdf "^1.0.0" 2912 | ecc-jsbn "~0.1.1" 2913 | jsbn "~0.1.0" 2914 | tweetnacl "~0.14.0" 2915 | 2916 | stack-trace@0.0.x: 2917 | version "0.0.10" 2918 | resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" 2919 | 2920 | standard-engine@~7.0.0: 2921 | version "7.0.0" 2922 | resolved "https://registry.yarnpkg.com/standard-engine/-/standard-engine-7.0.0.tgz#ebb77b9c8fc2c8165ffa353bd91ba0dff41af690" 2923 | dependencies: 2924 | deglob "^2.1.0" 2925 | get-stdin "^5.0.1" 2926 | minimist "^1.1.0" 2927 | pkg-conf "^2.0.0" 2928 | 2929 | standard@^10.0.3: 2930 | version "10.0.3" 2931 | resolved "https://registry.yarnpkg.com/standard/-/standard-10.0.3.tgz#7869bcbf422bdeeaab689a1ffb1fea9677dd50ea" 2932 | dependencies: 2933 | eslint "~3.19.0" 2934 | eslint-config-standard "10.2.1" 2935 | eslint-config-standard-jsx "4.0.2" 2936 | eslint-plugin-import "~2.2.0" 2937 | eslint-plugin-node "~4.2.2" 2938 | eslint-plugin-promise "~3.5.0" 2939 | eslint-plugin-react "~6.10.0" 2940 | eslint-plugin-standard "~3.0.1" 2941 | standard-engine "~7.0.0" 2942 | 2943 | statuses@1: 2944 | version "1.3.1" 2945 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" 2946 | 2947 | statuses@~1.2.1: 2948 | version "1.2.1" 2949 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.2.1.tgz#dded45cc18256d51ed40aec142489d5c61026d28" 2950 | 2951 | stdout-stream@^1.4.0: 2952 | version "1.4.0" 2953 | resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.0.tgz#a2c7c8587e54d9427ea9edb3ac3f2cd522df378b" 2954 | dependencies: 2955 | readable-stream "^2.0.1" 2956 | 2957 | string-width@^1.0.1, string-width@^1.0.2: 2958 | version "1.0.2" 2959 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 2960 | dependencies: 2961 | code-point-at "^1.0.0" 2962 | is-fullwidth-code-point "^1.0.0" 2963 | strip-ansi "^3.0.0" 2964 | 2965 | string-width@^2.0.0: 2966 | version "2.1.1" 2967 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 2968 | dependencies: 2969 | is-fullwidth-code-point "^2.0.0" 2970 | strip-ansi "^4.0.0" 2971 | 2972 | string_decoder@~1.0.3: 2973 | version "1.0.3" 2974 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" 2975 | dependencies: 2976 | safe-buffer "~5.1.0" 2977 | 2978 | stringstream@~0.0.4: 2979 | version "0.0.5" 2980 | resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" 2981 | 2982 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 2983 | version "3.0.1" 2984 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 2985 | dependencies: 2986 | ansi-regex "^2.0.0" 2987 | 2988 | strip-ansi@^4.0.0: 2989 | version "4.0.0" 2990 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 2991 | dependencies: 2992 | ansi-regex "^3.0.0" 2993 | 2994 | strip-bom@^2.0.0: 2995 | version "2.0.0" 2996 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" 2997 | dependencies: 2998 | is-utf8 "^0.2.0" 2999 | 3000 | strip-bom@^3.0.0: 3001 | version "3.0.0" 3002 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 3003 | 3004 | strip-indent@^1.0.1: 3005 | version "1.0.1" 3006 | resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" 3007 | dependencies: 3008 | get-stdin "^4.0.1" 3009 | 3010 | strip-json-comments@~2.0.1: 3011 | version "2.0.1" 3012 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 3013 | 3014 | supports-color@^2.0.0: 3015 | version "2.0.0" 3016 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 3017 | 3018 | table@^3.7.8: 3019 | version "3.8.3" 3020 | resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" 3021 | dependencies: 3022 | ajv "^4.7.0" 3023 | ajv-keywords "^1.0.0" 3024 | chalk "^1.1.1" 3025 | lodash "^4.0.0" 3026 | slice-ansi "0.0.4" 3027 | string-width "^2.0.0" 3028 | 3029 | tar-pack@^3.4.0: 3030 | version "3.4.0" 3031 | resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984" 3032 | dependencies: 3033 | debug "^2.2.0" 3034 | fstream "^1.0.10" 3035 | fstream-ignore "^1.0.5" 3036 | once "^1.3.3" 3037 | readable-stream "^2.1.4" 3038 | rimraf "^2.5.1" 3039 | tar "^2.2.1" 3040 | uid-number "^0.0.6" 3041 | 3042 | tar@^2.0.0, tar@^2.2.1: 3043 | version "2.2.1" 3044 | resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" 3045 | dependencies: 3046 | block-stream "*" 3047 | fstream "^1.0.2" 3048 | inherits "2" 3049 | 3050 | text-table@~0.2.0: 3051 | version "0.2.0" 3052 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 3053 | 3054 | through@^2.3.6: 3055 | version "2.3.8" 3056 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 3057 | 3058 | to-array@0.1.4: 3059 | version "0.1.4" 3060 | resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" 3061 | 3062 | topo@1.x.x: 3063 | version "1.1.0" 3064 | resolved "https://registry.yarnpkg.com/topo/-/topo-1.1.0.tgz#e9d751615d1bb87dc865db182fa1ca0a5ef536d5" 3065 | dependencies: 3066 | hoek "2.x.x" 3067 | 3068 | tough-cookie@~2.3.0: 3069 | version "2.3.2" 3070 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" 3071 | dependencies: 3072 | punycode "^1.4.1" 3073 | 3074 | trim-newlines@^1.0.0: 3075 | version "1.0.0" 3076 | resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" 3077 | 3078 | tryit@^1.0.1: 3079 | version "1.0.3" 3080 | resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" 3081 | 3082 | tunnel-agent@^0.6.0: 3083 | version "0.6.0" 3084 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" 3085 | dependencies: 3086 | safe-buffer "^5.0.1" 3087 | 3088 | tweetnacl@^0.14.3, tweetnacl@~0.14.0: 3089 | version "0.14.5" 3090 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" 3091 | 3092 | type-check@~0.3.2: 3093 | version "0.3.2" 3094 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 3095 | dependencies: 3096 | prelude-ls "~1.1.2" 3097 | 3098 | type-is@~1.6.6: 3099 | version "1.6.15" 3100 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410" 3101 | dependencies: 3102 | media-typer "0.3.0" 3103 | mime-types "~2.1.15" 3104 | 3105 | typedarray@^0.0.6: 3106 | version "0.0.6" 3107 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" 3108 | 3109 | uid-number@^0.0.6: 3110 | version "0.0.6" 3111 | resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" 3112 | 3113 | ultron@1.0.x: 3114 | version "1.0.2" 3115 | resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa" 3116 | 3117 | uniq@^1.0.1: 3118 | version "1.0.1" 3119 | resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" 3120 | 3121 | unpipe@~1.0.0: 3122 | version "1.0.0" 3123 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 3124 | 3125 | urlsafe-base64@^1.0.0, urlsafe-base64@~1.0.0: 3126 | version "1.0.0" 3127 | resolved "https://registry.yarnpkg.com/urlsafe-base64/-/urlsafe-base64-1.0.0.tgz#23f89069a6c62f46cf3a1d3b00169cefb90be0c6" 3128 | 3129 | user-home@^2.0.0: 3130 | version "2.0.0" 3131 | resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" 3132 | dependencies: 3133 | os-homedir "^1.0.0" 3134 | 3135 | util-deprecate@~1.0.1: 3136 | version "1.0.2" 3137 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 3138 | 3139 | utils-merge@1.0.0: 3140 | version "1.0.0" 3141 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" 3142 | 3143 | uue@^3.1.0: 3144 | version "3.1.0" 3145 | resolved "https://registry.yarnpkg.com/uue/-/uue-3.1.0.tgz#5d67d37030e66efebbb4b8aac46daf9b55befbf6" 3146 | dependencies: 3147 | extend "~3.0.0" 3148 | 3149 | uuid@^3.0.0: 3150 | version "3.1.0" 3151 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" 3152 | 3153 | validate-npm-package-license@^3.0.1: 3154 | version "3.0.1" 3155 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" 3156 | dependencies: 3157 | spdx-correct "~1.0.0" 3158 | spdx-expression-parse "~1.0.0" 3159 | 3160 | vary@~1.0.1: 3161 | version "1.0.1" 3162 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.0.1.tgz#99e4981566a286118dfb2b817357df7993376d10" 3163 | 3164 | verror@1.10.0, verror@^1.10.0: 3165 | version "1.10.0" 3166 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" 3167 | dependencies: 3168 | assert-plus "^1.0.0" 3169 | core-util-is "1.0.2" 3170 | extsprintf "^1.2.0" 3171 | 3172 | web-push@3.2.2: 3173 | version "3.2.2" 3174 | resolved "https://registry.yarnpkg.com/web-push/-/web-push-3.2.2.tgz#d2f7c5590a3037cb50e4442b5117edd6475768a5" 3175 | dependencies: 3176 | asn1.js "^4.8.1" 3177 | http_ece "^0.5.2" 3178 | jws "^3.1.3" 3179 | minimist "^1.2.0" 3180 | urlsafe-base64 "^1.0.0" 3181 | 3182 | web-resource-inliner@^4.1.0: 3183 | version "4.1.0" 3184 | resolved "https://registry.yarnpkg.com/web-resource-inliner/-/web-resource-inliner-4.1.0.tgz#a97aeb899c3d3c7f812dec6d5910843032667943" 3185 | dependencies: 3186 | async "^2.1.2" 3187 | chalk "^1.1.3" 3188 | datauri "^1.0.4" 3189 | htmlparser2 "^3.9.2" 3190 | lodash.unescape "^4.0.1" 3191 | request "^2.78.0" 3192 | xtend "^4.0.0" 3193 | 3194 | which-module@^1.0.0: 3195 | version "1.0.0" 3196 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" 3197 | 3198 | which@1, which@^1.2.9: 3199 | version "1.3.0" 3200 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" 3201 | dependencies: 3202 | isexe "^2.0.0" 3203 | 3204 | wide-align@^1.1.0: 3205 | version "1.1.2" 3206 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" 3207 | dependencies: 3208 | string-width "^1.0.2" 3209 | 3210 | wildstring@1.0.8: 3211 | version "1.0.8" 3212 | resolved "https://registry.yarnpkg.com/wildstring/-/wildstring-1.0.8.tgz#80b5f85b7f8aa98bc19cc230e60ac7f5e0dd226d" 3213 | 3214 | window-size@^0.1.4: 3215 | version "0.1.4" 3216 | resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876" 3217 | 3218 | winston@2.3.1: 3219 | version "2.3.1" 3220 | resolved "https://registry.yarnpkg.com/winston/-/winston-2.3.1.tgz#0b48420d978c01804cf0230b648861598225a119" 3221 | dependencies: 3222 | async "~1.0.0" 3223 | colors "1.0.x" 3224 | cycle "1.0.x" 3225 | eyes "0.1.x" 3226 | isstream "0.1.x" 3227 | stack-trace "0.0.x" 3228 | 3229 | wns@^0.5.3: 3230 | version "0.5.3" 3231 | resolved "https://registry.yarnpkg.com/wns/-/wns-0.5.3.tgz#00f4e85cfcf8e3383dcbd81898906f1f6ad4845f" 3232 | 3233 | wordwrap@~1.0.0: 3234 | version "1.0.0" 3235 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" 3236 | 3237 | wrap-ansi@^2.0.0: 3238 | version "2.1.0" 3239 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" 3240 | dependencies: 3241 | string-width "^1.0.1" 3242 | strip-ansi "^3.0.1" 3243 | 3244 | wrappy@1: 3245 | version "1.0.2" 3246 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 3247 | 3248 | write@^0.2.1: 3249 | version "0.2.1" 3250 | resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" 3251 | dependencies: 3252 | mkdirp "^0.5.1" 3253 | 3254 | ws@1.1.2: 3255 | version "1.1.2" 3256 | resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.2.tgz#8a244fa052401e08c9886cf44a85189e1fd4067f" 3257 | dependencies: 3258 | options ">=0.0.5" 3259 | ultron "1.0.x" 3260 | 3261 | wtf-8@1.0.0: 3262 | version "1.0.0" 3263 | resolved "https://registry.yarnpkg.com/wtf-8/-/wtf-8-1.0.0.tgz#392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a" 3264 | 3265 | xmlhttprequest-ssl@1.5.3: 3266 | version "1.5.3" 3267 | resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d" 3268 | 3269 | xtend@^4.0.0, xtend@^4.0.1: 3270 | version "4.0.1" 3271 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" 3272 | 3273 | y18n@^3.2.0, y18n@^3.2.1: 3274 | version "3.2.1" 3275 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" 3276 | 3277 | yallist@^2.1.2: 3278 | version "2.1.2" 3279 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" 3280 | 3281 | yargs-parser@^5.0.0: 3282 | version "5.0.0" 3283 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" 3284 | dependencies: 3285 | camelcase "^3.0.0" 3286 | 3287 | yargs@^3.32.0: 3288 | version "3.32.0" 3289 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.32.0.tgz#03088e9ebf9e756b69751611d2a5ef591482c995" 3290 | dependencies: 3291 | camelcase "^2.0.1" 3292 | cliui "^3.0.3" 3293 | decamelize "^1.1.1" 3294 | os-locale "^1.4.0" 3295 | string-width "^1.0.1" 3296 | window-size "^0.1.4" 3297 | y18n "^3.2.0" 3298 | 3299 | yargs@^7.0.0: 3300 | version "7.1.0" 3301 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" 3302 | dependencies: 3303 | camelcase "^3.0.0" 3304 | cliui "^3.2.0" 3305 | decamelize "^1.1.1" 3306 | get-caller-file "^1.0.1" 3307 | os-locale "^1.4.0" 3308 | read-pkg-up "^1.0.1" 3309 | require-directory "^2.1.1" 3310 | require-main-filename "^1.0.1" 3311 | set-blocking "^2.0.0" 3312 | string-width "^1.0.2" 3313 | which-module "^1.0.0" 3314 | y18n "^3.2.1" 3315 | yargs-parser "^5.0.0" 3316 | 3317 | yeast@0.1.2: 3318 | version "0.1.2" 3319 | resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" 3320 | --------------------------------------------------------------------------------