├── .all-contributorsrc ├── .circleci └── config.yml ├── .editorconfig ├── .eslintignore ├── .flowconfig ├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── .gitignore ├── .nycrc.json ├── .prettierrc.js ├── .verb.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── foo ├── index.js ├── now.json ├── now.v2.json ├── package.json ├── src ├── index.js └── render.js ├── test └── index.js └── yarn.lock /.all-contributorsrc: -------------------------------------------------------------------------------- 1 | { 2 | "projectName": "release", 3 | "projectOwner": "tunnckoCore", 4 | "repoType": "github", 5 | "repoHost": "https://github.com", 6 | "files": [ 7 | "README.md" 8 | ], 9 | "imageSize": 120, 10 | "commit": false, 11 | "contributorsPerLine": 6, 12 | "contributors": [ 13 | { 14 | "login": "tunnckoCore", 15 | "name": "Charlike Mike Reagent", 16 | "avatar_url": "https://avatars3.githubusercontent.com/u/5038030?v=4", 17 | "profile": "https://tunnckocore.com", 18 | "contributions": [ 19 | "code", 20 | "doc", 21 | "question", 22 | "review", 23 | "fundingFinding" 24 | ] 25 | } 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /.circleci/config.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | 3 | workdir: &workdir 4 | working_directory: ~/repo 5 | 6 | # node8osx: &node8osx 7 | # <<: *workdir 8 | # macos: 9 | # xcode: "9.2" 10 | 11 | # node10osx: &node10osx 12 | # <<: *workdir 13 | # macos: 14 | # xcode: "9" 15 | 16 | node8linux: &node8linux 17 | <<: *workdir 18 | docker: 19 | - image: circleci/node:8 20 | 21 | node10linux: &node10linux 22 | <<: *workdir 23 | docker: 24 | - image: circleci/node:10 25 | 26 | restore_modules_cache: &restore_modules_cache 27 | restore_cache: 28 | keys: 29 | - repo-{{ checksum "yarn.lock" }} 30 | # fallback to using the latest cache if no exact match is found 31 | - repo- 32 | 33 | # jobinstall: &jobinstall 34 | # steps: 35 | # - checkout 36 | # # - *restore_modules_cache 37 | # - run: 38 | # name: Installing PNPM package manager 39 | # command: sudo npm i -g pnpm 40 | # - run: 41 | # name: Installing project dependencies 42 | # command: pnpm run inst 43 | # - save_cache: 44 | # key: repo-{{ checksum "yarn.lock" }} 45 | # paths: node_modules 46 | # - run: 47 | # name: Remove node_modules to cleanup workspace 48 | # command: rm -rf node_modules 49 | 50 | jobtest: &jobtest 51 | steps: 52 | - checkout 53 | - *restore_modules_cache 54 | - run: 55 | name: Installing project dependencies 56 | command: yarn install --prefer-offline || yarn install 57 | - run: 58 | name: Checking and linting 59 | command: |- 60 | yarn add --dev eslint-config-tunnckocore@next eslint prettier && 61 | yarn scripts lint && 62 | yarn remove eslint-config-tunnckocore eslint prettier 63 | - run: 64 | name: Testing your project 65 | command: yarn global add nyc && yarn scripts test 66 | - save_cache: 67 | key: repo-{{ checksum "yarn.lock" }} 68 | paths: node_modules 69 | - run: 70 | name: Sending test coverage to CodeCov 71 | command: bash <(curl -s https://codecov.io/bash) 72 | 73 | jobs: 74 | # install-node8linux: 75 | # <<: *node8linux 76 | # <<: *jobinstall 77 | 78 | test-node8linux: 79 | <<: *node8linux 80 | <<: *jobtest 81 | 82 | # install-node10linux: 83 | # <<: *node10linux 84 | # <<: *jobinstall 85 | 86 | test-node10linux: 87 | <<: *node10linux 88 | <<: *jobtest 89 | 90 | # install-node8osx: 91 | # <<: *node8osx 92 | # <<: *jobinstall 93 | 94 | # test-node8osx: 95 | # <<: *node8osx 96 | # <<: *jobtest 97 | 98 | # install-node10osx: 99 | # <<: *node10osx 100 | # <<: *jobinstall 101 | 102 | # test-node10osx: 103 | # <<: *node10osx 104 | # <<: *jobtest 105 | 106 | publish: 107 | <<: *node10linux 108 | steps: 109 | - checkout 110 | - *restore_modules_cache 111 | - run: 112 | name: Bundling your awesome project 113 | command: yarn scripts build || echo "No build step." 114 | - run: 115 | name: Releasing and publishing 116 | command: |- 117 | yarn global add @tunnckocore/release-cli && 118 | yarn scripts release 119 | 120 | workflows: 121 | version: 2 122 | automated: 123 | jobs: 124 | # Linux 125 | - test-node8linux 126 | - test-node10linux 127 | 128 | # - install-node8linux 129 | # - test-node8linux: 130 | # requires: 131 | # - install-node8linux 132 | # - install-node10linux 133 | # - test-node10linux: 134 | # requires: 135 | # - install-node10linux 136 | # OSX 137 | # - install-node8osx 138 | # - test-node8osx: 139 | # requires: 140 | # - install-node8osx 141 | # - install-node10osx 142 | # - test-node10osx: 143 | # requires: 144 | # - install-node10osx 145 | 146 | # Release and NPM publish 147 | # Executed only on master 148 | - publish: 149 | requires: 150 | # - test-node8osx 151 | # - test-node10osx 152 | - test-node8linux 153 | - test-node10linux 154 | filters: 155 | branches: 156 | only: master 157 | context: org-global 158 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org/ 2 | root = true 3 | 4 | [*.{js,mjs,jsx,ts,tsx}] 5 | indent_style = space 6 | indent_size = 2 7 | charset = utf-8 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true 10 | 11 | [*.md] 12 | trim_trailing_whitespace = false 13 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | dist 2 | release 3 | 4 | # Lockfiles. We use Yarn (https://yarnpkg.com/) 5 | package-lock.json 6 | npm-shrinkwrap.json 7 | shrinkwrap.yaml 8 | 9 | # Archives and packages # 10 | # ########## 11 | *.7z 12 | *.dmg 13 | *.iso 14 | *.jar 15 | *.rar 16 | *.tar 17 | *.zip 18 | 19 | # node-waf configuration 20 | .lock-wscript 21 | 22 | # OS, Logs and databases # 23 | # ######################### 24 | logs 25 | *.log 26 | *.log* 27 | *.dat 28 | *.sql 29 | *.sqlite 30 | *~ 31 | ~* 32 | .DS_Store* 33 | 34 | # dotenv environment variables file 35 | .env 36 | .pem 37 | *.pem 38 | 39 | # Runtime data 40 | pids 41 | *.pid 42 | *.seed 43 | *.pid.lock 44 | 45 | # Directory for instrumented libs generated by jscoverage/JSCover 46 | lib-cov 47 | 48 | # Coverage directory used by tools like istanbul 49 | coverage 50 | 51 | # nyc test coverage 52 | .nyc_output 53 | 54 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 55 | .grunt 56 | 57 | # Bower dependency directory (https://bower.io/) 58 | bower_components 59 | 60 | # node-waf configuration 61 | .lock-wscript 62 | 63 | # Compiled binary addons (https://nodejs.org/api/addons.html) 64 | build/Release 65 | 66 | # Dependency directories 67 | node_modules/ 68 | jspm_packages/ 69 | 70 | # TypeScript v1 declaration files 71 | typings/ 72 | 73 | # Optional npm cache directory 74 | .npm 75 | 76 | # Optional eslint cache 77 | .eslintcache 78 | 79 | # Optional REPL history 80 | .node_repl_history 81 | 82 | # Output of 'npm pack' 83 | *.tgz 84 | 85 | # Yarn Integrity file 86 | .yarn-integrity 87 | 88 | # dotenv environment variables file 89 | .env 90 | 91 | # next.js build output 92 | .next 93 | -------------------------------------------------------------------------------- /.flowconfig: -------------------------------------------------------------------------------- 1 | [ignore] 2 | .*/node_modules 3 | .*/dist 4 | 5 | [include] 6 | 7 | [libs] 8 | 9 | [lints] 10 | 11 | [options] 12 | 13 | [strict] 14 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | 5 | --- 6 | 7 | **Describe the bug** 8 | A clear and concise description of what the bug is. 9 | 10 | **To Reproduce** 11 | Steps to reproduce the behavior: 12 | 1. Go to '...' 13 | 2. Click on '....' 14 | 3. Scroll down to '....' 15 | 4. See error 16 | 17 | **Expected behavior** 18 | A clear and concise description of what you expected to happen. 19 | 20 | **Screenshots** 21 | If applicable, add screenshots to help explain your problem. 22 | 23 | **Desktop (please complete the following information):** 24 | - OS: [e.g. iOS] 25 | - Browser [e.g. chrome, safari] 26 | - Version [e.g. 22] 27 | 28 | **Smartphone (please complete the following information):** 29 | - Device: [e.g. iPhone6] 30 | - OS: [e.g. iOS8.1] 31 | - Browser [e.g. stock browser, safari] 32 | - Version [e.g. 22] 33 | 34 | **Additional context** 35 | Add any other context about the problem here. 36 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | 5 | --- 6 | 7 | **Is your feature request related to a problem? Please describe.** 8 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 9 | 10 | **Describe the solution you'd like** 11 | A clear and concise description of what you want to happen. 12 | 13 | **Describe alternatives you've considered** 14 | A clear and concise description of any alternative solutions or features you've considered. 15 | 16 | **Additional context** 17 | Add any other context or screenshots about the feature request here. 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | release 3 | 4 | # Lockfiles. We use Yarn (https://yarnpkg.com/) 5 | package-lock.json 6 | npm-shrinkwrap.json 7 | shrinkwrap.yaml 8 | 9 | # Archives and packages # 10 | # ########## 11 | *.7z 12 | *.dmg 13 | *.iso 14 | *.jar 15 | *.rar 16 | *.tar 17 | *.zip 18 | 19 | # node-waf configuration 20 | .lock-wscript 21 | 22 | # OS, Logs and databases # 23 | # ######################### 24 | logs 25 | *.log 26 | *.log* 27 | *.dat 28 | *.sql 29 | *.sqlite 30 | *~ 31 | ~* 32 | .DS_Store* 33 | 34 | # dotenv environment variables file 35 | .env 36 | .pem 37 | *.pem 38 | 39 | # Runtime data 40 | pids 41 | *.pid 42 | *.seed 43 | *.pid.lock 44 | 45 | # Directory for instrumented libs generated by jscoverage/JSCover 46 | lib-cov 47 | 48 | # Coverage directory used by tools like istanbul 49 | coverage 50 | 51 | # nyc test coverage 52 | .nyc_output 53 | 54 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 55 | .grunt 56 | 57 | # Bower dependency directory (https://bower.io/) 58 | bower_components 59 | 60 | # node-waf configuration 61 | .lock-wscript 62 | 63 | # Compiled binary addons (https://nodejs.org/api/addons.html) 64 | build/Release 65 | 66 | # Dependency directories 67 | node_modules/ 68 | jspm_packages/ 69 | 70 | # TypeScript v1 declaration files 71 | typings/ 72 | 73 | # Optional npm cache directory 74 | .npm 75 | 76 | # Optional eslint cache 77 | .eslintcache 78 | 79 | # Optional REPL history 80 | .node_repl_history 81 | 82 | # Output of 'npm pack' 83 | *.tgz 84 | 85 | # Yarn Integrity file 86 | .yarn-integrity 87 | 88 | # dotenv environment variables file 89 | .env 90 | 91 | # next.js build output 92 | .next 93 | -------------------------------------------------------------------------------- /.nycrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "statements": 0, 3 | "branches": 0, 4 | "functions": 0, 5 | "lines": 0, 6 | "cache": true, 7 | "check-coverage": true, 8 | "require": "esm", 9 | "reporter": [ 10 | "lcov", 11 | "text" 12 | ], 13 | "include": [ 14 | "src/**/*.js" 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /.prettierrc.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = require('eslint-config-tunnckocore/prettier'); 4 | -------------------------------------------------------------------------------- /.verb.md: -------------------------------------------------------------------------------- 1 | # {%= name %} [![npm version][npmv-img]][npmv-url] [![github release][ghrelease-img]][ghrelease-url] [![License][license-img]][license-url] 2 | 3 | > GitHub App for creating GitHub Releases, following the [Conventional Commits](https://conventionalcommits.org) and [SemVer](https://semver.org) specifications 4 | 5 | Please consider following this project's author, [Charlike Mike Reagent](https://github.com/tunnckoCore), and :star: the project to show your :heart: and support. 6 | 7 |
8 | 9 | [![Code style][codestyle-img]][codestyle-url] 10 | [![CircleCI linux build][linuxbuild-img]][linuxbuild-url] 11 | [![CodeCov coverage status][codecoverage-img]][codecoverage-url] 12 | [![DavidDM dependency status][dependencies-img]][dependencies-url] 13 | [![Renovate App Status][renovateapp-img]][renovateapp-url] 14 | [![Make A Pull Request][prs-welcome-img]][prs-welcome-url] 15 | [![Semantically Released][new-release-img]][new-release-url] 16 | 17 | If you have any _how-to_ kind of questions, please read the [Contributing Guide](./CONTRIBUTING.md) and [Code of Conduct](./CODE_OF_CONDUCT.md) documents. 18 | For bugs reports and feature requests, [please create an issue][open-issue-url] or ping 19 | [@tunnckoCore](https://twitter.com/tunnckoCore) at Twitter. 20 | 21 | [![Become a Patron][patreon-img]][patreon-url] 22 | [![Conventional Commits][ccommits-img]][ccommits-url] 23 | [![NPM Downloads Weekly][downloads-weekly-img]][npmv-url] 24 | [![NPM Downloads Monthly][downloads-monthly-img]][npmv-url] 25 | [![NPM Downloads Total][downloads-total-img]][npmv-url] 26 | [![Share Love Tweet][shareb]][shareu] 27 | 28 | Project is [semantically](https://semver.org) & automatically released on [CircleCI](https://circleci.com) by itself. 29 | 30 | 39 | 40 | ## Table of Contents 41 | 42 | 43 | 44 | ## Install the App 45 | 46 | ![uptime status](https://badgen.net/uptime-robot/status/m781479241-8659699c878ab68940b6fe8f) 47 | ![uptime day](https://badgen.net/uptime-robot/day/m781479241-8659699c878ab68940b6fe8f) 48 | ![uptime month](https://badgen.net/uptime-robot/month/m781479241-8659699c878ab68940b6fe8f) 49 | ![uptime response](https://badgen.net/uptime-robot/response/m781479241-8659699c878ab68940b6fe8f) 50 | 51 | Install this app on your preferred account: [Standard Release GitHub App](https://github.com/apps/standard-release) 52 | 53 | Automatically publish GitHub releases, based on commits that follows [Conventional Commits](https://conventionalcommits.org) specification. 54 | Pretty similar to the [Semantic Release](https://github.com/semantic-release), but only an App. 55 | 56 | **[back to top](#thetop)** 57 | 58 | ## Usual Flow 59 | 60 | This app works best with it's [@standard-release/cli](https://github.com/standard-release/cli) for npm publishing, but is not limited to it! 61 | So in case you want to combine both, follow this steps: 62 | 63 | 1. Install this App 64 | 2. Add your `NPM_TOKEN` env variable (needed for the CLI only) in your CI 65 | 3. Install [`@standard-release/cli`](https://github.com/standard-release/cli) (as devDependency for example) 66 | 4. Configure your CI to run `standard-release` only on master branch 67 | 68 | _Note: If you don't want automatic publish on continuous integration services, but want to run it locally whenever you want, then you should run `standard-release --no-ci` instead. See the cli docs for more info._ 69 | 70 | ## Alternative Flow 71 | 72 | Otherwise, you still can use only the App and leave the npm publishing to another tool, for example [semantic-release](https://github.com/semantic-release) or [standard-version][], or Sindre's [np](https://npm.im/np). In this case the step is one: just install that app on your preferred account (your own or to some organization). 73 | 74 | Basically, how this app works is pretty simple. It will listen to all CI jobs to finish successfully and then publish a GitHub Release. If some of the CI stuff fail, it won't do anything. The CI detection is based on a [status name check](https://github.com/standard-release/app/blob/1a3e8119d75f7385b354045eeb0858ef94d58720/src/index.js#L12-L19), so it works for Travis, CircleCI, AppVeyor and others. 75 | 76 | **[back to top](#thetop)** 77 | 78 | {% if (verb.related && verb.related.list && verb.related.list.length) { %} 79 | 80 | ## See Also 81 | 82 | Some of these projects are used here or were inspiration for this one, others are just related. So, thanks for your existance! 83 | 84 | {%= related(verb.related.list, { words: 10 }) %} 85 | 86 | **[back to top](#thetop)** 87 | 88 | {% } %} 89 | 90 | ## Contributing 91 | 92 | ### Follow the Guidelines 93 | 94 | Please read the [Contributing Guide](./CONTRIBUTING.md) and [Code of Conduct](./CODE_OF_CONDUCT.md) documents for advices. 95 | For bugs reports and feature requests, [please create an issue][open-issue-url] or ping 96 | [@tunnckoCore](https://twitter.com/tunnckoCore) at Twitter. 97 | 98 | ### Support the project 99 | 100 | [Become a Partner or Sponsor?][patreon-url] :dollar: Check the **Partner**, **Sponsor** or **Omega-level** tiers! :tada: You can get your company logo, link & name on this file. It's also rendered on package page in [npmjs.com][npmv-url] and [yarnpkg.com](https://yarnpkg.com/en/package/{%= name %}) sites too! :rocket: 101 | 102 | Not financial support? Okey! [Pull requests](https://github.com/tunnckoCoreLabs/contributing#opening-a-pull-request), stars and all kind of [contributions](https://opensource.guide/how-to-contribute/#what-it-means-to-contribute) are always 103 | welcome. :sparkles: 104 | 105 | ### OPEN Open Source 106 | 107 | This project is following [OPEN Open Source](http://openopensource.org) model 108 | 109 | > Individuals making significant and valuable contributions are given commit-access to the project to contribute as they see fit. This project is built on collective efforts and it's not strongly guarded by its founders. 110 | 111 | There are a few basic ground-rules for its contributors 112 | 113 | 1. Any **significant modifications** must be subject to a pull request to get feedback from other contributors. 114 | 2. [Pull requests](https://github.com/tunnckoCoreLabs/contributing#opening-a-pull-request) to get feedback are _encouraged_ for any other trivial contributions, but are not required. 115 | 3. Contributors should attempt to adhere to the prevailing code-style and development workflow. 116 | 117 | ### Wonderful Contributors 118 | 119 | Thanks to the hard work of these wonderful people this project is alive! It follows the 120 | [all-contributors](https://github.com/kentcdodds/all-contributors) specification. 121 | Don't hesitate to add yourself to that list if you have made any contribution! ;) [See how, 122 | here](https://github.com/jfmengels/all-contributors-cli#usage). 123 | 124 | 125 | 126 | | [
Charlike Mike Reagent](https://tunnckocore.com)
[💻](https://github.com/standard-release/app/commits?author=tunnckoCore "Code") [📖](https://github.com/standard-release/app/commits?author=tunnckoCore "Documentation") [💬](#question-tunnckoCore "Answering Questions") [👀](#review-tunnckoCore "Reviewed Pull Requests") [🔍](#fundingFinding-tunnckoCore "Funding Finding") | 127 | | :---: | 128 | 129 | 130 | 131 | Consider showing your [support](#support-the-project) to them. :sparkling_heart: 132 | 133 | ## License 134 | 135 | Copyright (c) 2017-present, [Charlike Mike Reagent](https://tunnckocore.com) `` & [contributors](#wonderful-contributors). 136 | Released under the [Apache-2.0 License][license-url]. 137 | 138 | 139 | 140 | [npmv-url]: https://www.npmjs.com/package/{%= name %} 141 | [npmv-img]: https://badgen.net/npm/v/{%= name %}?icon=npm 142 | 143 | [ghrelease-url]: https://github.com/standard-release/app/releases/latest 144 | [ghrelease-img]: https://badgen.net/github/release/standard-release/app?icon=github 145 | 146 | [license-url]: https://github.com/standard-release/app/blob/master/LICENSE 147 | [license-img]: https://badgen.net/npm/license/{%= name %} 148 | 149 | 150 | 151 | [codestyle-url]: https://github.com/airbnb/javascript 152 | [codestyle-img]: https://badgen.net/badge/code%20style/airbnb/ff5a5f?icon=airbnb 153 | 154 | [linuxbuild-url]: https://circleci.com/gh/standard-release/app/tree/master 155 | [linuxbuild-img]: https://badgen.net/circleci/github/standard-release/app/master?label=build&icon=circleci 156 | 157 | [codecoverage-url]: https://codecov.io/gh/standard-release/app 158 | [codecoverage-img]: https://badgen.net/codecov/c/github/standard-release/app?icon=codecov 159 | 160 | [dependencies-url]: https://david-dm.org/standard-release/app 161 | [dependencies-img]: https://badgen.net/david/dep/standard-release/app?label=deps 162 | 163 | [ccommits-url]: https://conventionalcommits.org/ 164 | [ccommits-img]: https://badgen.net/badge/conventional%20commits/v1.0.0/dfb317 165 | [new-release-url]: https://github.com/apps/standard-release 166 | [new-release-img]: https://badgen.net/badge/semantically/released/05c5ff 167 | 168 | [downloads-weekly-img]: https://badgen.net/npm/dw/{%= name %} 169 | [downloads-monthly-img]: https://badgen.net/npm/dm/{%= name %} 170 | [downloads-total-img]: https://badgen.net/npm/dt/{%= name %} 171 | 172 | [renovateapp-url]: https://renovatebot.com 173 | [renovateapp-img]: https://badgen.net/badge/renovate/enabled/green 174 | [prs-welcome-img]: https://badgen.net/badge/PRs/welcome/green 175 | [prs-welcome-url]: http://makeapullrequest.com 176 | [paypal-donate-url]: https://paypal.me/tunnckoCore/10 177 | [paypal-donate-img]: https://badgen.net/badge/$/support/purple 178 | [patreon-url]: https://www.patreon.com/bePatron?u=5579781 179 | [patreon-img]: https://badgen.net/badge/patreon/tunnckoCore/F96854?icon=patreon 180 | [patreon-sponsor-img]: https://badgen.net/badge/become/a%20sponsor/F96854?icon=patreon 181 | 182 | [shareu]: https://twitter.com/intent/tweet?text=https://github.com/standard-release/app&via=tunnckoCore 183 | [shareb]: https://badgen.net/badge/twitter/share/1da1f2?icon=twitter 184 | [open-issue-url]: https://github.com/standard-release/app/issues/new 185 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as 6 | contributors and maintainers pledge to making participation in our project and 7 | our community a harassment-free experience for everyone, regardless of age, body 8 | size, disability, ethnicity, gender identity and expression, level of experience, 9 | nationality, personal appearance, race, religion, or sexual identity and 10 | orientation. 11 | 12 | ## Our Standards 13 | 14 | Examples of behavior that contributes to creating a positive environment 15 | include: 16 | 17 | - Using welcoming and inclusive language 18 | - Being respectful of differing viewpoints and experiences 19 | - Gracefully accepting constructive criticism 20 | - Focusing on what is best for the community 21 | - Showing empathy towards other community members 22 | 23 | Examples of unacceptable behavior by participants include: 24 | 25 | - The use of sexualized language or imagery and unwelcome sexual attention or 26 | advances 27 | - Trolling, insulting/derogatory comments, and personal or political attacks 28 | - Public or private harassment 29 | - Publishing others' private information, such as a physical or electronic 30 | address, without explicit permission 31 | - Other conduct which could reasonably be considered inappropriate in a professional setting 32 | 33 | ## Our Responsibilities 34 | 35 | Project maintainers are responsible for clarifying the standards of acceptable 36 | behavior and are expected to take appropriate and fair corrective action in 37 | response to any instances of unacceptable behavior. 38 | 39 | Project maintainers have the right and responsibility to remove, edit, or 40 | reject comments, commits, code, wiki edits, issues, and other contributions 41 | that are not aligned to this Code of Conduct, or to ban temporarily or 42 | permanently any contributor for other behaviors that they deem inappropriate, 43 | threatening, offensive, or harmful. 44 | 45 | ## Scope 46 | 47 | This Code of Conduct applies both within project spaces and in public spaces 48 | when an individual is representing the project or its community. Examples of 49 | representing a project or community include using an official project e-mail 50 | address, posting via an official social media account, or acting as an appointed 51 | representative at an online or offline event. Representation of a project may be 52 | further defined and clarified by project maintainers. 53 | 54 | ## Enforcement 55 | 56 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 57 | reported by contacting the project team at `mameto2011@gmail.com` mail address. All 58 | complaints will be reviewed and investigated and will result in a response that 59 | is deemed necessary and appropriate to the circumstances. The project team is 60 | obligated to maintain confidentiality with regard to the reporter of an incident. 61 | Further details of specific enforcement policies may be posted separately. 62 | 63 | Project maintainers who do not follow or enforce the Code of Conduct in good 64 | faith may face temporary or permanent repercussions as determined by other 65 | members of the project's leadership. 66 | 67 | ## Attribution 68 | 69 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 70 | available at [http://contributor-covenant.org/version/1/4][version] 71 | 72 | [homepage]: http://contributor-covenant.org 73 | [version]: http://contributor-covenant.org/version/1/4/ 74 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | 2 | # Contributing Guide :100: 3 | 4 | > _Hello stranger! :sparkles: Please, read the [Code Of Conduct](./CODE_OF_CONDUCT.md) and the full guide at 5 | > [tunnckoCore/contributing](https://github.com/tunnckoCoreLabs/contributing)! 6 | > Even if you are an experienced developer or active open source maintainer, it worth look over there._ 7 | 8 | ![welcome-teal](https://cloud.githubusercontent.com/assets/194400/22215755/76cb4dbc-e194-11e6-95ed-7def95e68f14.png) 9 | 10 | > “_Every thought, **every word**, and **every action** 11 | > that **adds to** the **positive** is a **contribution to peace**.
12 | > Each and **every one** of us is **capable** of making such a **contribution**_.” 13 | > ~ [Aung San Suu Kyi](https://en.wikipedia.org/wiki/Aung_San_Suu_Kyi) 14 | 15 | 16 | 17 | ## Are you new to Open Source? 18 | 19 | If you’re a **new** open source contributor, the process can be intimidating. 20 | _What if you don’t know how to code?_ What if something goes wrong? **Don't worry!** 21 | 22 | **You don’t have to contribute code!** A common misconception about contributing to open source is that you 23 | need to _contribute code_. In fact, it’s often the other parts of a project that are most neglected or 24 | overlooked. You’ll do the project a _huge favor_ by offering to pitch in with these types of 25 | **contributions**! 26 | 27 | **Even if you like to write code**, other types of contributions are a great way to get involved with a 28 | project and meet other community members. Building those relationships will give you opportunities to work on 29 | other parts of the project. 30 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "{}" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright (c) 2017-present, Charlike Mike Reagent & contributors. 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # @standard-release/app [![npm version][npmv-img]][npmv-url] [![github release][ghrelease-img]][ghrelease-url] [![License][license-img]][license-url] 2 | 3 | > GitHub App for creating GitHub Releases, following the [Conventional Commits](https://conventionalcommits.org) and [SemVer](https://semver.org) specifications 4 | 5 | Please consider following this project's author, [Charlike Mike Reagent](https://github.com/tunnckoCore), and :star: the project to show your :heart: and support. 6 | 7 |
8 | 9 | [![Code style][codestyle-img]][codestyle-url] 10 | [![CircleCI linux build][linuxbuild-img]][linuxbuild-url] 11 | [![CodeCov coverage status][codecoverage-img]][codecoverage-url] 12 | [![DavidDM dependency status][dependencies-img]][dependencies-url] 13 | [![Renovate App Status][renovateapp-img]][renovateapp-url] 14 | [![Make A Pull Request][prs-welcome-img]][prs-welcome-url] 15 | [![Semantically Released][new-release-img]][new-release-url] 16 | 17 | If you have any _how-to_ kind of questions, please read the [Contributing Guide](./CONTRIBUTING.md) and [Code of Conduct](./CODE_OF_CONDUCT.md) documents. 18 | For bugs reports and feature requests, [please create an issue][open-issue-url] or ping 19 | [@tunnckoCore](https://twitter.com/tunnckoCore) at Twitter. 20 | 21 | [![Become a Patron][patreon-img]][patreon-url] 22 | [![Conventional Commits][ccommits-img]][ccommits-url] 23 | [![NPM Downloads Weekly][downloads-weekly-img]][npmv-url] 24 | [![NPM Downloads Monthly][downloads-monthly-img]][npmv-url] 25 | [![NPM Downloads Total][downloads-total-img]][npmv-url] 26 | [![Share Love Tweet][shareb]][shareu] 27 | 28 | Project is [semantically](https://semver.org) & automatically released on [CircleCI](https://circleci.com) by itself. 29 | 30 | 39 | 40 | ## Table of Contents 41 | 42 | - [Install the App](#install-the-app) 43 | - [Usual Flow](#usual-flow) 44 | - [Alternative Flow](#alternative-flow) 45 | - [See Also](#see-also) 46 | - [Contributing](#contributing) 47 | * [Follow the Guidelines](#follow-the-guidelines) 48 | * [Support the project](#support-the-project) 49 | * [OPEN Open Source](#open-open-source) 50 | * [Wonderful Contributors](#wonderful-contributors) 51 | - [License](#license) 52 | 53 | _(TOC generated by [verb](https://github.com/verbose/verb) using [markdown-toc](https://github.com/jonschlinkert/markdown-toc))_ 54 | 55 | ## Install the App 56 | 57 | ![uptime status](https://badgen.net/uptime-robot/status/m781479241-8659699c878ab68940b6fe8f) 58 | ![uptime day](https://badgen.net/uptime-robot/day/m781479241-8659699c878ab68940b6fe8f) 59 | ![uptime month](https://badgen.net/uptime-robot/month/m781479241-8659699c878ab68940b6fe8f) 60 | ![uptime response](https://badgen.net/uptime-robot/response/m781479241-8659699c878ab68940b6fe8f) 61 | 62 | Install this app on your preferred account: [Standard Release GitHub App](https://github.com/apps/standard-release) 63 | 64 | Automatically publish GitHub releases, based on commits that follows [Conventional Commits](https://conventionalcommits.org) specification. 65 | Pretty similar to the [Semantic Release](https://github.com/semantic-release), but only an App. 66 | 67 | **[back to top](#thetop)** 68 | 69 | ## Usual Flow 70 | 71 | This app works best with it's [@standard-release/cli](https://github.com/standard-release/cli) for npm publishing, but is not limited to it! 72 | So in case you want to combine both, follow this steps: 73 | 74 | 1. Install this App 75 | 2. Add your `NPM_TOKEN` env variable (needed for the CLI only) in your CI 76 | 3. Install [`@standard-release/cli`](https://github.com/standard-release/cli) (as devDependency for example) 77 | 4. Configure your CI to run `standard-release` only on master branch 78 | 79 | _Note: If you don't want automatic publish on continuous integration services, but want to run it locally whenever you want, then you should run `standard-release --no-ci` instead. See the cli docs for more info._ 80 | 81 | ## Alternative Flow 82 | 83 | Otherwise, you still can use only the App and leave the npm publishing to another tool, for example [semantic-release](https://github.com/semantic-release) or [standard-version][], or Sindre's [np](https://npm.im/np). In this case the step is one: just install that app on your preferred account (your own or to some organization). 84 | 85 | Basically, how this app works is pretty simple. It will listen to all CI jobs to finish successfully and then publish a GitHub Release. If some of the CI stuff fail, it won't do anything. The CI detection is based on a [status name check](https://github.com/standard-release/app/blob/1a3e8119d75f7385b354045eeb0858ef94d58720/src/index.js#L12-L19), so it works for Travis, CircleCI, AppVeyor and others. 86 | 87 | **[back to top](#thetop)** 88 | 89 | ## See Also 90 | 91 | Some of these projects are used here or were inspiration for this one, others are just related. So, thanks for your existance! 92 | 93 | - [asia](https://www.npmjs.com/package/asia): Blazingly fast, magical and minimalist testing framework, for Today and… [more](https://github.com/olstenlarck/asia#readme) | [homepage](https://github.com/olstenlarck/asia#readme "Blazingly fast, magical and minimalist testing framework, for Today and Tomorrow") 94 | - [detect-next-version](https://www.npmjs.com/package/detect-next-version): Calculates next version, based on given commit message and following… [more](https://github.com/tunnckoCoreLabs/detect-next-version) | [homepage](https://github.com/tunnckoCoreLabs/detect-next-version "Calculates next version, based on given commit message and following Conventional Commits") 95 | - [docks](https://www.npmjs.com/package/docks): Extensible system for parsing and generating documentation. It just freaking… [more](https://github.com/tunnckoCore/docks) | [homepage](https://github.com/tunnckoCore/docks "Extensible system for parsing and generating documentation. It just freaking works!") 96 | - [git-commits-since](https://www.npmjs.com/package/git-commits-since): Get all commits since given period of time or by… [more](https://github.com/tunnckoCoreLabs/git-commits-since) | [homepage](https://github.com/tunnckoCoreLabs/git-commits-since "Get all commits since given period of time or by default from latest git semver tag. Understands and follows both SemVer and the Conventional Commits specification.") 97 | - [gitcommit](https://www.npmjs.com/package/gitcommit): Lightweight and joyful `git commit` replacement. Conventional Commits compliant. | [homepage](https://github.com/tunnckoCore/gitcommit "Lightweight and joyful `git commit` replacement. Conventional Commits compliant.") 98 | - [parse-commit-message](https://www.npmjs.com/package/parse-commit-message): Extensible parser for git commit messages following Conventional Commits Specification | [homepage](https://github.com/tunnckoCoreLabs/parse-commit-message "Extensible parser for git commit messages following Conventional Commits Specification") 99 | 100 | **[back to top](#thetop)** 101 | 102 | ## Contributing 103 | 104 | ### Follow the Guidelines 105 | 106 | Please read the [Contributing Guide](./CONTRIBUTING.md) and [Code of Conduct](./CODE_OF_CONDUCT.md) documents for advices. 107 | For bugs reports and feature requests, [please create an issue][open-issue-url] or ping 108 | [@tunnckoCore](https://twitter.com/tunnckoCore) at Twitter. 109 | 110 | ### Support the project 111 | 112 | [Become a Partner or Sponsor?][patreon-url] :dollar: Check the **Partner**, **Sponsor** or **Omega-level** tiers! :tada: You can get your company logo, link & name on this file. It's also rendered on package page in [npmjs.com][npmv-url] and [yarnpkg.com](https://yarnpkg.com/en/package/@standard-release/app) sites too! :rocket: 113 | 114 | Not financial support? Okey! [Pull requests](https://github.com/tunnckoCoreLabs/contributing#opening-a-pull-request), stars and all kind of [contributions](https://opensource.guide/how-to-contribute/#what-it-means-to-contribute) are always 115 | welcome. :sparkles: 116 | 117 | ### OPEN Open Source 118 | 119 | This project is following [OPEN Open Source](http://openopensource.org) model 120 | 121 | > Individuals making significant and valuable contributions are given commit-access to the project to contribute as they see fit. This project is built on collective efforts and it's not strongly guarded by its founders. 122 | 123 | There are a few basic ground-rules for its contributors 124 | 125 | 1. Any **significant modifications** must be subject to a pull request to get feedback from other contributors. 126 | 2. [Pull requests](https://github.com/tunnckoCoreLabs/contributing#opening-a-pull-request) to get feedback are _encouraged_ for any other trivial contributions, but are not required. 127 | 3. Contributors should attempt to adhere to the prevailing code-style and development workflow. 128 | 129 | ### Wonderful Contributors 130 | 131 | Thanks to the hard work of these wonderful people this project is alive! It follows the 132 | [all-contributors](https://github.com/kentcdodds/all-contributors) specification. 133 | Don't hesitate to add yourself to that list if you have made any contribution! ;) [See how, 134 | here](https://github.com/jfmengels/all-contributors-cli#usage). 135 | 136 | 137 | 138 | | [
Charlike Mike Reagent](https://tunnckocore.com)
[💻](https://github.com/standard-release/app/commits?author=tunnckoCore "Code") [📖](https://github.com/standard-release/app/commits?author=tunnckoCore "Documentation") [💬](#question-tunnckoCore "Answering Questions") [👀](#review-tunnckoCore "Reviewed Pull Requests") [🔍](#fundingFinding-tunnckoCore "Funding Finding") | 139 | | :---: | 140 | 141 | 142 | 143 | Consider showing your [support](#support-the-project) to them. :sparkling_heart: 144 | 145 | ## License 146 | 147 | Copyright (c) 2017-present, [Charlike Mike Reagent](https://tunnckocore.com) `` & [contributors](#wonderful-contributors). 148 | Released under the [Apache-2.0 License][license-url]. 149 | 150 | 151 | 152 | [npmv-url]: https://www.npmjs.com/package/@standard-release/app 153 | [npmv-img]: https://badgen.net/npm/v/@standard-release/app?icon=npm 154 | 155 | [ghrelease-url]: https://github.com/standard-release/app/releases/latest 156 | [ghrelease-img]: https://badgen.net/github/release/standard-release/app?icon=github 157 | 158 | [license-url]: https://github.com/standard-release/app/blob/master/LICENSE 159 | [license-img]: https://badgen.net/npm/license/@standard-release/app 160 | 161 | 162 | 163 | [codestyle-url]: https://github.com/airbnb/javascript 164 | [codestyle-img]: https://badgen.net/badge/code%20style/airbnb/ff5a5f?icon=airbnb 165 | 166 | [linuxbuild-url]: https://circleci.com/gh/standard-release/app/tree/master 167 | [linuxbuild-img]: https://badgen.net/circleci/github/standard-release/app/master?label=build&icon=circleci 168 | 169 | [codecoverage-url]: https://codecov.io/gh/standard-release/app 170 | [codecoverage-img]: https://badgen.net/codecov/c/github/standard-release/app?icon=codecov 171 | 172 | [dependencies-url]: https://david-dm.org/standard-release/app 173 | [dependencies-img]: https://badgen.net/david/dep/standard-release/app?label=deps 174 | 175 | [ccommits-url]: https://conventionalcommits.org/ 176 | [ccommits-img]: https://badgen.net/badge/conventional%20commits/v1.0.0/dfb317 177 | [new-release-url]: https://github.com/apps/standard-release 178 | [new-release-img]: https://badgen.net/badge/semantically/released/05c5ff 179 | 180 | [downloads-weekly-img]: https://badgen.net/npm/dw/@standard-release/app 181 | [downloads-monthly-img]: https://badgen.net/npm/dm/@standard-release/app 182 | [downloads-total-img]: https://badgen.net/npm/dt/@standard-release/app 183 | 184 | [renovateapp-url]: https://renovatebot.com 185 | [renovateapp-img]: https://badgen.net/badge/renovate/enabled/green 186 | [prs-welcome-img]: https://badgen.net/badge/PRs/welcome/green 187 | [prs-welcome-url]: http://makeapullrequest.com 188 | [paypal-donate-url]: https://paypal.me/tunnckoCore/10 189 | [paypal-donate-img]: https://badgen.net/badge/$/support/purple 190 | [patreon-url]: https://www.patreon.com/bePatron?u=5579781 191 | [patreon-img]: https://badgen.net/badge/patreon/tunnckoCore/F96854?icon=patreon 192 | [patreon-sponsor-img]: https://badgen.net/badge/become/a%20sponsor/F96854?icon=patreon 193 | 194 | [shareu]: https://twitter.com/intent/tweet?text=https://github.com/standard-release/app&via=tunnckoCore 195 | [shareb]: https://badgen.net/badge/twitter/share/1da1f2?icon=twitter 196 | [open-issue-url]: https://github.com/standard-release/app/issues/new 197 | 198 | [new-release]: https://github.com/tunnckoCoreLabs/new-release 199 | [semantic-release]: https://github.com/semantic-release/semantic-release 200 | [standard-version]: https://github.com/conventional-changelog/standard-version -------------------------------------------------------------------------------- /foo: -------------------------------------------------------------------------------- 1 | foo 2 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const path = require('path'); 4 | const esmLoader = require('esm'); 5 | const pkg = require('./package.json'); 6 | 7 | const esmRequire = esmLoader(module); 8 | 9 | function interop(x) { 10 | if (Object.keys(x).length === 1 && x.default) { 11 | return x.default; 12 | } 13 | return x; 14 | } 15 | 16 | const mod = esmRequire(path.join(__dirname, pkg.module)); 17 | 18 | module.exports = interop(mod); 19 | -------------------------------------------------------------------------------- /now.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "public": true, 4 | "name": "standard-release-app", 5 | "alias": "standard-release", 6 | "env": { 7 | "APP_ID": "@tunnckocore-release-id", 8 | "NODE_ENV": "production", 9 | "PRIVATE_KEY": "@tunnckocore-release-private-key", 10 | "WEBHOOK_SECRET": "@tunnckocore-release-webhook-secret" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /now.v2.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 2, 3 | "name": "standard-release-app", 4 | "alias": "standard-release", 5 | "builds": [ 6 | { "src": "package.json", "use": "@now/node-server" } 7 | ], 8 | "env": { 9 | "APP_ID": "@tunnckocore-release-id", 10 | "NODE_ENV": "production", 11 | "PRIVATE_KEY": "@tunnckocore-release-private-key", 12 | "WEBHOOK_SECRET": "@tunnckocore-release-webhook-secret" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@standard-release/app", 3 | "description": "GitHub App for creating GitHub Releases, following the Conventional Commits and SemVer specifications", 4 | "license": "Apache-2.0", 5 | "licenseStart": "2017", 6 | "scripts": { 7 | "now-start": "PRIVATE_KEY=$(echo $PRIVATE_KEY | base64 -d) yarn start", 8 | "start": "probot run ./index.js", 9 | "docs": "scripts verb", 10 | "lint": "scripts eslint '{src,test}/**/*.js' '*.js' --cache --fix --quiet --format codeframe", 11 | "test-only": "node -r esm test/index.js", 12 | "test": "scripts nyc node test/index.js", 13 | "precommit": "scripts lint && scripts test-only", 14 | "commit": "scripts dry", 15 | "dry": "git add -A && git status --porcelain && scripts gitcommit", 16 | "deploy:rm": "now rm -y standard-release-app", 17 | "deploy:now": "now && now alias", 18 | "deploy": "(yarn deploy:rm && yarn deploy:now) || yarn deploy:now" 19 | }, 20 | "engines": { 21 | "node": "^8.10.0 || >=10.13.0" 22 | }, 23 | "dependencies": { 24 | "detect-next-version": "^3.1.1", 25 | "esm": "^3.0.84", 26 | "parse-commit-message": "^3.2.2", 27 | "probot": "^7.4.0", 28 | "probot-config": "^1.0.0" 29 | }, 30 | "devDependencies": { 31 | "@tunnckocore/scripts": "^1.2.5", 32 | "asia": "^1.0.0-rc.25" 33 | }, 34 | "files": [ 35 | "src", 36 | "index.js" 37 | ], 38 | "main": "index.js", 39 | "module": "src/index.js", 40 | "typings": "src/index.d.ts", 41 | "version": "0.15.1", 42 | "repository": "standard-release/app", 43 | "homepage": "https://github.com/standard-release/app", 44 | "author": "Charlike Mike Reagent (https://tunnckocore.com)", 45 | "publishConfig": { 46 | "access": "public", 47 | "tag": "latest" 48 | }, 49 | "renovate": { 50 | "extends": "tunnckocore" 51 | }, 52 | "eslintConfig": { 53 | "extends": "tunnckocore" 54 | }, 55 | "verb": { 56 | "run": true, 57 | "toc": { 58 | "render": true, 59 | "method": "preWrite", 60 | "maxdepth": 4 61 | }, 62 | "layout": "empty", 63 | "tasks": [ 64 | "readme" 65 | ], 66 | "related": { 67 | "list": [ 68 | "asia", 69 | "docks", 70 | "gitcommit", 71 | "git-commits-since", 72 | "parse-commit-message", 73 | "detect-next-version" 74 | ] 75 | }, 76 | "lint": { 77 | "reflinks": true 78 | }, 79 | "reflinks": [ 80 | "new-release", 81 | "semantic-release" 82 | ] 83 | } 84 | } 85 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import { applyPlugins, plugins, parse, check } from 'parse-commit-message'; 2 | import detector from 'detect-next-version'; 3 | import getConfig from 'probot-config'; 4 | 5 | import render from './render'; 6 | 7 | const defaultConfig = { 8 | defaultBranch: 'master', 9 | interval: 30, 10 | }; 11 | 12 | function isCI(val) { 13 | return ( 14 | val.includes('continuous-integration') || 15 | val.includes('circleci') || 16 | val.includes('ci') || 17 | false 18 | ); 19 | } 20 | 21 | async function delay(secs = 10000) { 22 | await new Promise((resolve) => setTimeout(resolve, secs * 1000)); 23 | } 24 | 25 | export default function releaseGitHubApp(robot) { 26 | robot.on('push', async (context) => { 27 | const settingsConfig = await getConfig(context, 'new-release.yml'); 28 | const config = Object.assign({}, defaultConfig, settingsConfig); 29 | 30 | if (context.payload.ref !== `refs/heads/${config.defaultBranch}`) { 31 | return; 32 | } 33 | 34 | const info = await getPkgMeta(context, robot); 35 | 36 | // If no need for bump, then exit. 37 | if (!info || (info && !info.increment)) { 38 | robot.log('No need for release publishing'); 39 | return; 40 | } 41 | 42 | // pkgMeta is like `{ lastVersion, nextVersion, pkg, increment }` 43 | robot.log(info); 44 | 45 | // Delay for 10 seconds, then continue. 46 | // Creating release should not be instant, we should wait 47 | // until statuses/checks are ready first. 48 | await delay(10); 49 | 50 | const status = await ensureStatus(context, { info, config }); 51 | 52 | // It's always a 'success' or `true`, if it is true, 53 | // then it already created the release from within `ensureStatus`, 54 | // Because there it checks recursively every 30 seconds, until success or failure. 55 | // If it is failure, it will throw, so we are safe. 56 | if (status === 'success') { 57 | robot.log(info); 58 | await createRelease(context, context.repo({ info })); 59 | } 60 | 61 | // And we are done. 62 | }); 63 | } 64 | 65 | async function getPkgMeta(context, robot) { 66 | const pkg = await getPkg(context, robot); 67 | if (!pkg) return null; 68 | 69 | const result = await context.github.repos.getLatestRelease(context.repo()); 70 | const { data: commits } = await context.github.repos.getCommits( 71 | context.repo({ since: result.data.created_at }), 72 | ); 73 | 74 | const allCommitsSinceLastTag = commits 75 | .slice(0, -1) 76 | .reduce( 77 | (acc, commit) => 78 | acc.concat( 79 | ...applyPlugins( 80 | plugins.concat((cmt) => Object.assign({}, commit, cmt)), 81 | check(parse(commit.commit.message)), 82 | ), 83 | ), 84 | [], 85 | ) 86 | .map((commit) => 87 | Object.assign( 88 | { repository: context.payload.repository.full_name }, 89 | commit, 90 | ), 91 | ); 92 | 93 | // const endpoint = (name) => `https://registry.npmjs.org/${name}`; 94 | return detector(pkg.name, allCommitsSinceLastTag); 95 | } 96 | 97 | async function getPkg(context, robot) { 98 | let pkgData = null; 99 | 100 | try { 101 | pkgData = await context.github.repos.getContent( 102 | context.repo({ 103 | ref: context.payload.ref, 104 | path: 'package.json', 105 | }), 106 | ); 107 | } catch (err) { 108 | robot.log(err); 109 | return null; 110 | } 111 | // for ensurance, sometimes.. js can be bad boy. 112 | if (!pkgData) return null; 113 | 114 | let pkgJSON = null; 115 | 116 | try { 117 | pkgJSON = JSON.parse(Buffer.from(pkgData.data.content, 'base64')); 118 | } catch (err) { 119 | robot.log(err); 120 | return null; 121 | } 122 | 123 | return pkgJSON; 124 | } 125 | 126 | async function ensureStatus(context, { info, config }) { 127 | const status = await getStatus(context); 128 | if (status === null) { 129 | throw new Error('No CI is detected on that repository.'); 130 | } 131 | 132 | if (status === 'success') { 133 | await createRelease(context, context.repo({ info })); 134 | return true; 135 | } 136 | if (status === 'failure') { 137 | throw new Error('The CI statuses are failing, not creating a release.'); 138 | } 139 | 140 | await delay(config.interval); 141 | return ensureStatus(context, { info, config }); 142 | } 143 | 144 | async function getStatus(context) { 145 | const { data } = await context.github.repos.getCombinedStatusForRef( 146 | context.repo({ ref: context.payload.ref }), 147 | ); 148 | 149 | if (data.state === 'success') { 150 | return data.state; 151 | } 152 | 153 | // 1. data.state === pending and there is success CI, then we don't care 154 | // that there are pending statuses, we continue to release 155 | // 2. data.state === failure, then we check if CIs are okey, 156 | // if they are okey, then we don't care about the other failing statuses 157 | 158 | const states = { 159 | success: [], 160 | failure: [], 161 | pending: [], 162 | }; 163 | 164 | data.statuses.forEach((status) => { 165 | if (isCI(status.context)) { 166 | states[status.state].push(status); 167 | } 168 | }); 169 | 170 | if (states.pending.length > 0) { 171 | return 'pending'; 172 | } 173 | if (states.failure.length > 0) { 174 | return 'failure'; 175 | } 176 | if (states.success.length > 0) { 177 | return 'success'; 178 | } 179 | return null; 180 | } 181 | 182 | async function createRelease(context, { owner, repo, info }) { 183 | const [date] = context.payload.head_commit.timestamp.split('T'); 184 | const body = render(Object.assign({}, { owner, repo, date }, info)); 185 | const tagName = `v${info.nextVersion}`; 186 | 187 | await context.github.repos.createRelease({ 188 | owner, 189 | repo, 190 | body: body.trim(), 191 | tag_name: tagName, 192 | name: tagName, 193 | draft: false, 194 | prerelease: false, 195 | }); 196 | } 197 | -------------------------------------------------------------------------------- /src/render.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | function renderDataForType(commits, tpl) { 4 | commits.forEach((commit) => { 5 | const hash = commit.sha.slice(0, 10); 6 | const shaLink = `[[\`${hash}\`](${commit.html_url})] - `; 7 | 8 | const { scope, subject } = commit.header; 9 | const header = scope ? `**${scope}:** ${subject}` : subject; 10 | 11 | const profile = `@${commit.author.login}`; 12 | const profiles = 13 | commit.mentions && commit.mentions.length > 0 14 | ? [profile].concat(commit.mentions).join(', ') 15 | : profile; 16 | 17 | tpl.push(`- ${shaLink}${header} (${profiles})`); 18 | }); 19 | } 20 | 21 | export default function render(locals) { 22 | const tpl = []; 23 | const { owner, repo } = locals; 24 | const from = locals.lastVersion; 25 | const to = locals.nextVersion; 26 | 27 | const repository = `${owner}/${repo}`; 28 | const link = `https://github.com/${repository}/compare/v${from}..v${to}`; 29 | 30 | tpl.push(`# [v${to}](${link}) (${locals.date})`, ''); 31 | 32 | let heading = null; 33 | 34 | if (locals.major) { 35 | heading = '## :exclamation: BREAKING CHANGES! :scream:'; 36 | tpl.push(heading, ''); 37 | renderDataForType(locals.major, tpl); 38 | } 39 | if (locals.minor) { 40 | heading = '## :tada: New Features'; 41 | tpl.push(heading, ''); 42 | renderDataForType(locals.minor, tpl); 43 | } 44 | if (locals.patch) { 45 | heading = '## :bug: Bug Fixes'; 46 | tpl.push(heading, ''); 47 | renderDataForType(locals.patch, tpl); 48 | } 49 | 50 | tpl.push('', ''); 51 | 52 | return tpl 53 | .concat('', `[\`v${from}...v${to}\`](${link})`) 54 | .filter((x) => x !== null && x !== ' ') 55 | .join('\n') 56 | .trim(); 57 | } 58 | -------------------------------------------------------------------------------- /test/index.js: -------------------------------------------------------------------------------- 1 | import assert from 'assert'; 2 | import test from 'asia'; 3 | import mod from '../src/index'; 4 | 5 | test('todo', () => { 6 | assert.strictEqual(typeof mod, 'function'); 7 | }); 8 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@octokit/rest@^15.18.0": 6 | version "15.18.0" 7 | resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-15.18.0.tgz#e6de702b57dec94c71e806f1cff0ecb9725b3054" 8 | integrity sha512-D1dDJMbvT4dok9++vc8uwCr92ndadwfz6vHK+IklzBHKSsuLlhpv2/dzx97Y4aRlm0t74LeXKDp4j0b4M2vmQw== 9 | dependencies: 10 | before-after-hook "^1.1.0" 11 | btoa-lite "^1.0.0" 12 | debug "^3.1.0" 13 | http-proxy-agent "^2.1.0" 14 | https-proxy-agent "^2.2.0" 15 | lodash "^4.17.4" 16 | node-fetch "^2.1.1" 17 | universal-user-agent "^2.0.0" 18 | url-template "^2.0.8" 19 | 20 | "@octokit/webhooks@^5.0.2": 21 | version "5.0.2" 22 | resolved "https://registry.yarnpkg.com/@octokit/webhooks/-/webhooks-5.0.2.tgz#fbf31398f0d235199591cef3c4a8fef7073c6073" 23 | integrity sha512-htxI5cNiaEOlJbero6akw8bVZm3maN7LtCZbczxJQko3NvQqiROmzryE39+FnaoaHkQr6IAOx2JnPBZlkPHnVQ== 24 | dependencies: 25 | buffer-equal-constant-time "^1.0.1" 26 | debug "^4.0.0" 27 | 28 | "@tunnckocore/execa@^2.2.1": 29 | version "2.2.1" 30 | resolved "https://registry.yarnpkg.com/@tunnckocore/execa/-/execa-2.2.1.tgz#34557ab1a44af060edd9938b41d9508fffb3c399" 31 | integrity sha512-YkRe0ny24JKuoxo/uIx7TzbunGnsfsQZ7neuIGPRnh1ykHG50FijGH9tUaTZfqzyrvMJF31Uh2QVmgEBjnFuXg== 32 | dependencies: 33 | esm "^3.0.84" 34 | execa "^1.0.0" 35 | p-map-series "^1.0.0" 36 | split-cmd "^1.0.0" 37 | 38 | "@tunnckocore/package-json@^1.0.1": 39 | version "1.0.3" 40 | resolved "https://registry.yarnpkg.com/@tunnckocore/package-json/-/package-json-1.0.3.tgz#93fccf6d504f38d5c0db581607a0402de06c5d41" 41 | integrity sha512-BSpZbuoHtnpuBhZV1cWZSD6G7BKc6l3ogw1mJTyviOsck5iGxbDtplmV6OA3vwpYJcJ5tOOWARiy7A+4aW88LA== 42 | dependencies: 43 | axios "^0.18.0" 44 | esm "^3.0.84" 45 | parse-package-name "^0.1.0" 46 | 47 | "@tunnckocore/scripts@^1.2.5": 48 | version "1.2.5" 49 | resolved "https://registry.yarnpkg.com/@tunnckocore/scripts/-/scripts-1.2.5.tgz#c0b9f4aaa9258c9d4fec488c7c236f7a0a1052d3" 50 | integrity sha512-brBfywuijhuRNT+Ts0Akg9DSh85MUasQVccdyvt2CdwQYxM+CVN7F8PWy5Xv3T+1c8WrEatscGTX4383tKumtQ== 51 | dependencies: 52 | "@tunnckocore/execa" "^2.2.1" 53 | all-module-paths "^0.7.1" 54 | esm "^3.0.84" 55 | 56 | "@types/supports-color@^5.3.0": 57 | version "5.3.0" 58 | resolved "https://registry.yarnpkg.com/@types/supports-color/-/supports-color-5.3.0.tgz#eb6a52e9531fb3ebcd401cec774d1bdfb571f793" 59 | integrity sha512-WxwTXnHTIsk7srax1icjLgX+6w1MUAJbhyCpRP/45paEElsPDQUJZDgr1UpKuL2S3Tb+ZyX9MjWwmcSD4bUoOQ== 60 | 61 | accepts@~1.3.5: 62 | version "1.3.5" 63 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" 64 | integrity sha1-63d99gEXI6OxTopywIBcjoZ0a9I= 65 | dependencies: 66 | mime-types "~2.1.18" 67 | negotiator "0.6.1" 68 | 69 | agent-base@4, agent-base@^4.1.0: 70 | version "4.2.1" 71 | resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" 72 | integrity sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg== 73 | dependencies: 74 | es6-promisify "^5.0.0" 75 | 76 | align-text@^0.1.1, align-text@^0.1.3: 77 | version "0.1.4" 78 | resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" 79 | integrity sha1-DNkKVhCT810KmSVsIrcGlDP60Rc= 80 | dependencies: 81 | kind-of "^3.0.2" 82 | longest "^1.0.1" 83 | repeat-string "^1.5.2" 84 | 85 | all-module-paths@^0.7.1: 86 | version "0.7.1" 87 | resolved "https://registry.yarnpkg.com/all-module-paths/-/all-module-paths-0.7.1.tgz#2d16dd821185d9d4b2b99a83473f6999863c5d43" 88 | integrity sha512-KS0BdamB3hDP6PLiqijm4s1XU7yXFj8L49FPTnXTITKPFos7yWSbrwGpLCECunOwtYSh51cxcIvmDDpRrG4ydA== 89 | dependencies: 90 | esm "^3.0.84" 91 | global-dirs "^0.1.1" 92 | 93 | amdefine@>=0.0.4: 94 | version "1.0.1" 95 | resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" 96 | integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= 97 | 98 | ansicolors@~0.2.1: 99 | version "0.2.1" 100 | resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.2.1.tgz#be089599097b74a5c9c4a84a0cdbcdb62bd87aef" 101 | integrity sha1-vgiVmQl7dKXJxKhKDNvNtivYeu8= 102 | 103 | ansistyles@~0.1.1: 104 | version "0.1.3" 105 | resolved "https://registry.yarnpkg.com/ansistyles/-/ansistyles-0.1.3.tgz#5de60415bda071bb37127854c864f41b23254539" 106 | integrity sha1-XeYEFb2gcbs3EnhUyGT0GyMlRTk= 107 | 108 | argparse@^1.0.7: 109 | version "1.0.10" 110 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 111 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== 112 | dependencies: 113 | sprintf-js "~1.0.2" 114 | 115 | array-flatten@1.1.1: 116 | version "1.1.1" 117 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" 118 | integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= 119 | 120 | asia@^1.0.0-rc.25: 121 | version "1.0.0-rc.25" 122 | resolved "https://registry.yarnpkg.com/asia/-/asia-1.0.0-rc.25.tgz#be91fb8cb50ae1501c516a70258b57f684d92c6f" 123 | integrity sha512-HTpRiz1qWD7agvNVICV4kdl+Vs76LpNDj/aDZlMlGBSu9NwKfz9o5nDT8l+Hr8TQqo+79EnNBrlDKjFyg4293w== 124 | 125 | async@1.5.2, async@^1.4.0: 126 | version "1.5.2" 127 | resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" 128 | integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= 129 | 130 | axios@^0.18.0: 131 | version "0.18.0" 132 | resolved "https://registry.yarnpkg.com/axios/-/axios-0.18.0.tgz#32d53e4851efdc0a11993b6cd000789d70c05102" 133 | integrity sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI= 134 | dependencies: 135 | follow-redirects "^1.3.0" 136 | is-buffer "^1.1.5" 137 | 138 | balanced-match@^1.0.0: 139 | version "1.0.0" 140 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 141 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= 142 | 143 | before-after-hook@^1.1.0: 144 | version "1.2.0" 145 | resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-1.2.0.tgz#1079c10312cd4d4ad0d1676d37951ef8bfc3a563" 146 | integrity sha512-wI3QtdLppHNkmM1VgRVLCrlWCKk/YexlPicYbXPs4eYdd1InrUCTFsx5bX1iUQzzMsoRXXPpM1r+p7JEJJydag== 147 | 148 | body-parser@1.18.3: 149 | version "1.18.3" 150 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4" 151 | integrity sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ= 152 | dependencies: 153 | bytes "3.0.0" 154 | content-type "~1.0.4" 155 | debug "2.6.9" 156 | depd "~1.1.2" 157 | http-errors "~1.6.3" 158 | iconv-lite "0.4.23" 159 | on-finished "~2.3.0" 160 | qs "6.5.2" 161 | raw-body "2.3.3" 162 | type-is "~1.6.16" 163 | 164 | bottleneck@^2.8.0: 165 | version "2.13.0" 166 | resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-2.13.0.tgz#875df17df9e62c76bea42b62af3a45c73a995c4f" 167 | integrity sha512-9YmZ0aiKta2OAxTujKCS/INjGWCIGWK4Ff1nQpgHnR4CTjlk9jcnpaHOjPnMZPtqRXkqwKdtxZgvJ9udsXylaw== 168 | 169 | brace-expansion@^1.1.7: 170 | version "1.1.11" 171 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 172 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 173 | dependencies: 174 | balanced-match "^1.0.0" 175 | concat-map "0.0.1" 176 | 177 | btoa-lite@^1.0.0: 178 | version "1.0.0" 179 | resolved "https://registry.yarnpkg.com/btoa-lite/-/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337" 180 | integrity sha1-M3dm2hWAEhD92VbCLpxokaudAzc= 181 | 182 | buffer-equal-constant-time@1.0.1, buffer-equal-constant-time@^1.0.1: 183 | version "1.0.1" 184 | resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" 185 | integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk= 186 | 187 | bunyan-format@^0.2.1: 188 | version "0.2.1" 189 | resolved "https://registry.yarnpkg.com/bunyan-format/-/bunyan-format-0.2.1.tgz#a4b3b0d80070a865279417269e3f00ff02fbcb47" 190 | integrity sha1-pLOw2ABwqGUnlBcmnj8A/wL7y0c= 191 | dependencies: 192 | ansicolors "~0.2.1" 193 | ansistyles "~0.1.1" 194 | xtend "~2.1.1" 195 | 196 | bunyan-sentry-stream@^1.1.0: 197 | version "1.2.1" 198 | resolved "https://registry.yarnpkg.com/bunyan-sentry-stream/-/bunyan-sentry-stream-1.2.1.tgz#fdd9f42fa75879f2a210579bdc2712f8285cd12b" 199 | integrity sha1-/dn0L6dYefKiEFeb3CcS+Chc0Ss= 200 | dependencies: 201 | lodash.omit "4.5.0" 202 | 203 | bunyan@^1.8.12: 204 | version "1.8.12" 205 | resolved "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.12.tgz#f150f0f6748abdd72aeae84f04403be2ef113797" 206 | integrity sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c= 207 | optionalDependencies: 208 | dtrace-provider "~0.8" 209 | moment "^2.10.6" 210 | mv "~2" 211 | safe-json-stringify "~1" 212 | 213 | bytes@3.0.0: 214 | version "3.0.0" 215 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" 216 | integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= 217 | 218 | cache-manager@^2.4.0: 219 | version "2.9.0" 220 | resolved "https://registry.yarnpkg.com/cache-manager/-/cache-manager-2.9.0.tgz#5e1f6317ca1a25e40ddf365a7162757af152353e" 221 | integrity sha1-Xh9jF8oaJeQN3zZacWJ1evFSNT4= 222 | dependencies: 223 | async "1.5.2" 224 | lru-cache "4.0.0" 225 | 226 | camelcase@^1.0.2: 227 | version "1.2.1" 228 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" 229 | integrity sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk= 230 | 231 | center-align@^0.1.1: 232 | version "0.1.3" 233 | resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" 234 | integrity sha1-qg0yYptu6XIgBBHL1EYckHvCt60= 235 | dependencies: 236 | align-text "^0.1.3" 237 | lazy-cache "^1.0.3" 238 | 239 | charenc@~0.0.1: 240 | version "0.0.2" 241 | resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" 242 | integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc= 243 | 244 | cliui@^2.1.0: 245 | version "2.1.0" 246 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" 247 | integrity sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE= 248 | dependencies: 249 | center-align "^0.1.1" 250 | right-align "^0.1.1" 251 | wordwrap "0.0.2" 252 | 253 | collect-mentions@^1.0.2: 254 | version "1.0.2" 255 | resolved "https://registry.yarnpkg.com/collect-mentions/-/collect-mentions-1.0.2.tgz#30734fcb33cbf8999cf7fd6d9c3133045f0b4dcc" 256 | integrity sha512-/jRhzWp5bkZnvgtR+agXT0RvYKBXOl4uG+eKA6ip3tp1x+jRAV36jW2TceKutOeuEPjHKaQ6DJjeh5zvZF0fWQ== 257 | dependencies: 258 | mentions-regex "^2.0.3" 259 | 260 | commander@^2.19.0: 261 | version "2.19.0" 262 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" 263 | integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== 264 | 265 | concat-map@0.0.1: 266 | version "0.0.1" 267 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 268 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 269 | 270 | content-disposition@0.5.2: 271 | version "0.5.2" 272 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" 273 | integrity sha1-DPaLud318r55YcOoUXjLhdunjLQ= 274 | 275 | content-type@~1.0.4: 276 | version "1.0.4" 277 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" 278 | integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== 279 | 280 | cookie-signature@1.0.6: 281 | version "1.0.6" 282 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" 283 | integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= 284 | 285 | cookie@0.3.1: 286 | version "0.3.1" 287 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" 288 | integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= 289 | 290 | cross-spawn@^6.0.0: 291 | version "6.0.5" 292 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" 293 | integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== 294 | dependencies: 295 | nice-try "^1.0.4" 296 | path-key "^2.0.1" 297 | semver "^5.5.0" 298 | shebang-command "^1.2.0" 299 | which "^1.2.9" 300 | 301 | crypt@~0.0.1: 302 | version "0.0.2" 303 | resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" 304 | integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= 305 | 306 | debug@2.6.9: 307 | version "2.6.9" 308 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 309 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 310 | dependencies: 311 | ms "2.0.0" 312 | 313 | debug@3.1.0, debug@=3.1.0: 314 | version "3.1.0" 315 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 316 | integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== 317 | dependencies: 318 | ms "2.0.0" 319 | 320 | debug@^3.1.0: 321 | version "3.2.6" 322 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" 323 | integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== 324 | dependencies: 325 | ms "^2.1.1" 326 | 327 | debug@^4.0.0: 328 | version "4.1.0" 329 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.0.tgz#373687bffa678b38b1cd91f861b63850035ddc87" 330 | integrity sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg== 331 | dependencies: 332 | ms "^2.1.1" 333 | 334 | decamelize@^1.0.0: 335 | version "1.2.0" 336 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 337 | integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= 338 | 339 | dedent@^0.7.0: 340 | version "0.7.0" 341 | resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" 342 | integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= 343 | 344 | deepmerge@^2.2.1: 345 | version "2.2.1" 346 | resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170" 347 | integrity sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA== 348 | 349 | depd@~1.1.2: 350 | version "1.1.2" 351 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" 352 | integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= 353 | 354 | destroy@~1.0.4: 355 | version "1.0.4" 356 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" 357 | integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= 358 | 359 | detect-next-version@^3.1.1: 360 | version "3.1.1" 361 | resolved "https://registry.yarnpkg.com/detect-next-version/-/detect-next-version-3.1.1.tgz#85fe0acb13779bffb012723d497465ce8c76c146" 362 | integrity sha512-DF7rPmtb3zfbGOs+zn+poF/oFQijTPnnpqbRkb1lyrWdUO9Ocb5ltVGRHkLHRDQ7ushOpdtDksljOgP+Wj2lHQ== 363 | dependencies: 364 | "@tunnckocore/package-json" "^1.0.1" 365 | esm "^3.0.84" 366 | recommended-bump "^1.3.0" 367 | 368 | dotenv@~6.1.0: 369 | version "6.1.0" 370 | resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-6.1.0.tgz#9853b6ca98292acb7dec67a95018fa40bccff42c" 371 | integrity sha512-/veDn2ztgRlB7gKmE3i9f6CmDIyXAy6d5nBq+whO9SLX+Zs1sXEgFLPi+aSuWqUuusMfbi84fT8j34fs1HaYUw== 372 | 373 | dtrace-provider@~0.8: 374 | version "0.8.7" 375 | resolved "https://registry.yarnpkg.com/dtrace-provider/-/dtrace-provider-0.8.7.tgz#dc939b4d3e0620cfe0c1cd803d0d2d7ed04ffd04" 376 | integrity sha1-3JObTT4GIM/gwc2APQ0tftBP/QQ= 377 | dependencies: 378 | nan "^2.10.0" 379 | 380 | ecdsa-sig-formatter@1.0.10: 381 | version "1.0.10" 382 | resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz#1c595000f04a8897dfb85000892a0f4c33af86c3" 383 | integrity sha1-HFlQAPBKiJffuFAAiSoPTDOvhsM= 384 | dependencies: 385 | safe-buffer "^5.0.1" 386 | 387 | ee-first@1.1.1: 388 | version "1.1.1" 389 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 390 | integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= 391 | 392 | encodeurl@~1.0.2: 393 | version "1.0.2" 394 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" 395 | integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= 396 | 397 | end-of-stream@^1.1.0: 398 | version "1.4.1" 399 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" 400 | integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== 401 | dependencies: 402 | once "^1.4.0" 403 | 404 | error-ex@^1.3.1: 405 | version "1.3.2" 406 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" 407 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== 408 | dependencies: 409 | is-arrayish "^0.2.1" 410 | 411 | es6-promise@^4.0.3: 412 | version "4.2.5" 413 | resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.5.tgz#da6d0d5692efb461e082c14817fe2427d8f5d054" 414 | integrity sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg== 415 | 416 | es6-promisify@^5.0.0: 417 | version "5.0.0" 418 | resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" 419 | integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= 420 | dependencies: 421 | es6-promise "^4.0.3" 422 | 423 | escape-html@~1.0.3: 424 | version "1.0.3" 425 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 426 | integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= 427 | 428 | esm@^3.0.84: 429 | version "3.0.84" 430 | resolved "https://registry.yarnpkg.com/esm/-/esm-3.0.84.tgz#bb108989f4673b32d4f62406869c28eed3815a63" 431 | integrity sha512-SzSGoZc17S7P+12R9cg21Bdb7eybX25RnIeRZ80xZs+VZ3kdQKzqTp2k4hZJjR7p9l0186TTXSgrxzlMDBktlw== 432 | 433 | esprima@^4.0.0: 434 | version "4.0.1" 435 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 436 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== 437 | 438 | etag@~1.8.1: 439 | version "1.8.1" 440 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" 441 | integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= 442 | 443 | execa@^0.10.0: 444 | version "0.10.0" 445 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50" 446 | integrity sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw== 447 | dependencies: 448 | cross-spawn "^6.0.0" 449 | get-stream "^3.0.0" 450 | is-stream "^1.1.0" 451 | npm-run-path "^2.0.0" 452 | p-finally "^1.0.0" 453 | signal-exit "^3.0.0" 454 | strip-eof "^1.0.0" 455 | 456 | execa@^1.0.0: 457 | version "1.0.0" 458 | resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" 459 | integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== 460 | dependencies: 461 | cross-spawn "^6.0.0" 462 | get-stream "^4.0.0" 463 | is-stream "^1.1.0" 464 | npm-run-path "^2.0.0" 465 | p-finally "^1.0.0" 466 | signal-exit "^3.0.0" 467 | strip-eof "^1.0.0" 468 | 469 | express-async-errors@^3.0.0: 470 | version "3.1.1" 471 | resolved "https://registry.yarnpkg.com/express-async-errors/-/express-async-errors-3.1.1.tgz#6053236d61d21ddef4892d6bd1d736889fc9da41" 472 | integrity sha512-h6aK1da4tpqWSbyCa3FxB/V6Ehd4EEB15zyQq9qe75OZBp0krinNKuH4rAY+S/U/2I36vdLAUFSjQJ+TFmODng== 473 | 474 | express@^4.16.2: 475 | version "4.16.4" 476 | resolved "https://registry.yarnpkg.com/express/-/express-4.16.4.tgz#fddef61926109e24c515ea97fd2f1bdbf62df12e" 477 | integrity sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg== 478 | dependencies: 479 | accepts "~1.3.5" 480 | array-flatten "1.1.1" 481 | body-parser "1.18.3" 482 | content-disposition "0.5.2" 483 | content-type "~1.0.4" 484 | cookie "0.3.1" 485 | cookie-signature "1.0.6" 486 | debug "2.6.9" 487 | depd "~1.1.2" 488 | encodeurl "~1.0.2" 489 | escape-html "~1.0.3" 490 | etag "~1.8.1" 491 | finalhandler "1.1.1" 492 | fresh "0.5.2" 493 | merge-descriptors "1.0.1" 494 | methods "~1.1.2" 495 | on-finished "~2.3.0" 496 | parseurl "~1.3.2" 497 | path-to-regexp "0.1.7" 498 | proxy-addr "~2.0.4" 499 | qs "6.5.2" 500 | range-parser "~1.2.0" 501 | safe-buffer "5.1.2" 502 | send "0.16.2" 503 | serve-static "1.13.2" 504 | setprototypeof "1.1.0" 505 | statuses "~1.4.0" 506 | type-is "~1.6.16" 507 | utils-merge "1.0.1" 508 | vary "~1.1.2" 509 | 510 | finalhandler@1.1.1: 511 | version "1.1.1" 512 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" 513 | integrity sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg== 514 | dependencies: 515 | debug "2.6.9" 516 | encodeurl "~1.0.2" 517 | escape-html "~1.0.3" 518 | on-finished "~2.3.0" 519 | parseurl "~1.3.2" 520 | statuses "~1.4.0" 521 | unpipe "~1.0.0" 522 | 523 | find-up@^2.0.0: 524 | version "2.1.0" 525 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" 526 | integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= 527 | dependencies: 528 | locate-path "^2.0.0" 529 | 530 | follow-redirects@^1.3.0: 531 | version "1.5.10" 532 | resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" 533 | integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== 534 | dependencies: 535 | debug "=3.1.0" 536 | 537 | foreachasync@^3.0.0: 538 | version "3.0.0" 539 | resolved "https://registry.yarnpkg.com/foreachasync/-/foreachasync-3.0.0.tgz#5502987dc8714be3392097f32e0071c9dee07cf6" 540 | integrity sha1-VQKYfchxS+M5IJfzLgBxyd7gfPY= 541 | 542 | forwarded@~0.1.2: 543 | version "0.1.2" 544 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" 545 | integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= 546 | 547 | fresh@0.5.2: 548 | version "0.5.2" 549 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 550 | integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= 551 | 552 | get-stream@^3.0.0: 553 | version "3.0.0" 554 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" 555 | integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= 556 | 557 | get-stream@^4.0.0: 558 | version "4.1.0" 559 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" 560 | integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== 561 | dependencies: 562 | pump "^3.0.0" 563 | 564 | glob@^6.0.1: 565 | version "6.0.4" 566 | resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" 567 | integrity sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI= 568 | dependencies: 569 | inflight "^1.0.4" 570 | inherits "2" 571 | minimatch "2 || 3" 572 | once "^1.3.0" 573 | path-is-absolute "^1.0.0" 574 | 575 | global-dirs@^0.1.1: 576 | version "0.1.1" 577 | resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" 578 | integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= 579 | dependencies: 580 | ini "^1.3.4" 581 | 582 | graceful-fs@^4.1.2: 583 | version "4.1.15" 584 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" 585 | integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== 586 | 587 | handlebars@4.0.5: 588 | version "4.0.5" 589 | resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.5.tgz#92c6ed6bb164110c50d4d8d0fbddc70806c6f8e7" 590 | integrity sha1-ksbta7FkEQxQ1NjQ+93HCAbG+Oc= 591 | dependencies: 592 | async "^1.4.0" 593 | optimist "^0.6.1" 594 | source-map "^0.4.4" 595 | optionalDependencies: 596 | uglify-js "^2.6" 597 | 598 | has-flag@^3.0.0: 599 | version "3.0.0" 600 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 601 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 602 | 603 | hbs@^4.0.1: 604 | version "4.0.1" 605 | resolved "https://registry.yarnpkg.com/hbs/-/hbs-4.0.1.tgz#4bfd98650dc8c9dac44b3ca9adf9c098e8bc33b6" 606 | integrity sha1-S/2YZQ3IydrESzyprfnAmOi8M7Y= 607 | dependencies: 608 | handlebars "4.0.5" 609 | walk "2.3.9" 610 | 611 | http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3: 612 | version "1.6.3" 613 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" 614 | integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= 615 | dependencies: 616 | depd "~1.1.2" 617 | inherits "2.0.3" 618 | setprototypeof "1.1.0" 619 | statuses ">= 1.4.0 < 2" 620 | 621 | http-proxy-agent@^2.1.0: 622 | version "2.1.0" 623 | resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405" 624 | integrity sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg== 625 | dependencies: 626 | agent-base "4" 627 | debug "3.1.0" 628 | 629 | https-proxy-agent@^2.2.0: 630 | version "2.2.1" 631 | resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0" 632 | integrity sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ== 633 | dependencies: 634 | agent-base "^4.1.0" 635 | debug "^3.1.0" 636 | 637 | iconv-lite@0.4.23: 638 | version "0.4.23" 639 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" 640 | integrity sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA== 641 | dependencies: 642 | safer-buffer ">= 2.1.2 < 3" 643 | 644 | inflight@^1.0.4: 645 | version "1.0.6" 646 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 647 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 648 | dependencies: 649 | once "^1.3.0" 650 | wrappy "1" 651 | 652 | inherits@2, inherits@2.0.3: 653 | version "2.0.3" 654 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 655 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= 656 | 657 | ini@^1.3.4: 658 | version "1.3.5" 659 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" 660 | integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== 661 | 662 | ipaddr.js@1.8.0: 663 | version "1.8.0" 664 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e" 665 | integrity sha1-6qM9bd16zo9/b+DJygRA5wZzix4= 666 | 667 | is-arrayish@^0.2.1: 668 | version "0.2.1" 669 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 670 | integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= 671 | 672 | is-base64@0.1.0: 673 | version "0.1.0" 674 | resolved "https://registry.yarnpkg.com/is-base64/-/is-base64-0.1.0.tgz#a6f20610c6ef4863a51cba32bc0222544b932622" 675 | integrity sha512-WRRyllsGXJM7ZN7gPTCCQ/6wNPTRDwiWdPK66l5sJzcU/oOzcIcRRf0Rux8bkpox/1yjt0F6VJRsQOIG2qz5sg== 676 | 677 | is-buffer@^1.1.5, is-buffer@~1.1.1: 678 | version "1.1.6" 679 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" 680 | integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== 681 | 682 | is-stream@^1.1.0: 683 | version "1.1.0" 684 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 685 | integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= 686 | 687 | isexe@^2.0.0: 688 | version "2.0.0" 689 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 690 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 691 | 692 | js-yaml@^3.10.0, js-yaml@^3.9.1: 693 | version "3.12.0" 694 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" 695 | integrity sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A== 696 | dependencies: 697 | argparse "^1.0.7" 698 | esprima "^4.0.0" 699 | 700 | json-parse-better-errors@^1.0.1: 701 | version "1.0.2" 702 | resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" 703 | integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== 704 | 705 | jsonwebtoken@^8.1.0: 706 | version "8.4.0" 707 | resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.4.0.tgz#8757f7b4cb7440d86d5e2f3becefa70536c8e46a" 708 | integrity sha512-coyXjRTCy0pw5WYBpMvWOMN+Kjaik2MwTUIq9cna/W7NpO9E+iYbumZONAz3hcr+tXFJECoQVrtmIoC3Oz0gvg== 709 | dependencies: 710 | jws "^3.1.5" 711 | lodash.includes "^4.3.0" 712 | lodash.isboolean "^3.0.3" 713 | lodash.isinteger "^4.0.4" 714 | lodash.isnumber "^3.0.3" 715 | lodash.isplainobject "^4.0.6" 716 | lodash.isstring "^4.0.1" 717 | lodash.once "^4.0.0" 718 | ms "^2.1.1" 719 | 720 | jwa@^1.1.5: 721 | version "1.1.6" 722 | resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.1.6.tgz#87240e76c9808dbde18783cf2264ef4929ee50e6" 723 | integrity sha512-tBO/cf++BUsJkYql/kBbJroKOgHWEigTKBAjjBEmrMGYd1QMBC74Hr4Wo2zCZw6ZrVhlJPvoMrkcOnlWR/DJfw== 724 | dependencies: 725 | buffer-equal-constant-time "1.0.1" 726 | ecdsa-sig-formatter "1.0.10" 727 | safe-buffer "^5.0.1" 728 | 729 | jws@^3.1.5: 730 | version "3.1.5" 731 | resolved "https://registry.yarnpkg.com/jws/-/jws-3.1.5.tgz#80d12d05b293d1e841e7cb8b4e69e561adcf834f" 732 | integrity sha512-GsCSexFADNQUr8T5HPJvayTjvPIfoyJPtLQBwn5a4WZQchcrPMPMAWcC1AzJVRDKyD6ZPROPAxgv6rfHViO4uQ== 733 | dependencies: 734 | jwa "^1.1.5" 735 | safe-buffer "^5.0.1" 736 | 737 | kind-of@^3.0.2: 738 | version "3.2.2" 739 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" 740 | integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= 741 | dependencies: 742 | is-buffer "^1.1.5" 743 | 744 | lazy-cache@^1.0.3: 745 | version "1.0.4" 746 | resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" 747 | integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= 748 | 749 | load-json-file@^4.0.0: 750 | version "4.0.0" 751 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" 752 | integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= 753 | dependencies: 754 | graceful-fs "^4.1.2" 755 | parse-json "^4.0.0" 756 | pify "^3.0.0" 757 | strip-bom "^3.0.0" 758 | 759 | locate-path@^2.0.0: 760 | version "2.0.0" 761 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" 762 | integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= 763 | dependencies: 764 | p-locate "^2.0.0" 765 | path-exists "^3.0.0" 766 | 767 | lodash.includes@^4.3.0: 768 | version "4.3.0" 769 | resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" 770 | integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8= 771 | 772 | lodash.isboolean@^3.0.3: 773 | version "3.0.3" 774 | resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" 775 | integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY= 776 | 777 | lodash.isinteger@^4.0.4: 778 | version "4.0.4" 779 | resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" 780 | integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M= 781 | 782 | lodash.isnumber@^3.0.3: 783 | version "3.0.3" 784 | resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" 785 | integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w= 786 | 787 | lodash.isplainobject@^4.0.6: 788 | version "4.0.6" 789 | resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" 790 | integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= 791 | 792 | lodash.isstring@^4.0.1: 793 | version "4.0.1" 794 | resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" 795 | integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= 796 | 797 | lodash.omit@4.5.0: 798 | version "4.5.0" 799 | resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60" 800 | integrity sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA= 801 | 802 | lodash.once@^4.0.0: 803 | version "4.1.1" 804 | resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" 805 | integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= 806 | 807 | lodash@^4.17.4: 808 | version "4.17.11" 809 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" 810 | integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== 811 | 812 | longest@^1.0.1: 813 | version "1.0.1" 814 | resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" 815 | integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= 816 | 817 | lru-cache@4.0.0: 818 | version "4.0.0" 819 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.0.tgz#b5cbf01556c16966febe54ceec0fb4dc90df6c28" 820 | integrity sha1-tcvwFVbBaWb+vlTO7A+03JDfbCg= 821 | dependencies: 822 | pseudomap "^1.0.1" 823 | yallist "^2.0.0" 824 | 825 | macos-release@^2.0.0: 826 | version "2.0.0" 827 | resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.0.0.tgz#7dddf4caf79001a851eb4fba7fb6034f251276ab" 828 | integrity sha512-iCM3ZGeqIzlrH7KxYK+fphlJpCCczyHXc+HhRVbEu9uNTCrzYJjvvtefzeKTCVHd5AP/aD/fzC80JZ4ZP+dQ/A== 829 | 830 | md5@^2.2.1: 831 | version "2.2.1" 832 | resolved "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz#53ab38d5fe3c8891ba465329ea23fac0540126f9" 833 | integrity sha1-U6s41f48iJG6RlMp6iP6wFQBJvk= 834 | dependencies: 835 | charenc "~0.0.1" 836 | crypt "~0.0.1" 837 | is-buffer "~1.1.1" 838 | 839 | media-typer@0.3.0: 840 | version "0.3.0" 841 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 842 | integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= 843 | 844 | mentions-regex@^2.0.3: 845 | version "2.0.3" 846 | resolved "https://registry.yarnpkg.com/mentions-regex/-/mentions-regex-2.0.3.tgz#442717a0048e53c2d2e2ae5e63a4e54a55ca9603" 847 | integrity sha1-RCcXoASOU8LS4q5eY6TlSlXKlgM= 848 | 849 | merge-descriptors@1.0.1: 850 | version "1.0.1" 851 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" 852 | integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= 853 | 854 | methods@~1.1.2: 855 | version "1.1.2" 856 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 857 | integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= 858 | 859 | mime-db@~1.37.0: 860 | version "1.37.0" 861 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.37.0.tgz#0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8" 862 | integrity sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg== 863 | 864 | mime-types@~2.1.18: 865 | version "2.1.21" 866 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.21.tgz#28995aa1ecb770742fe6ae7e58f9181c744b3f96" 867 | integrity sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg== 868 | dependencies: 869 | mime-db "~1.37.0" 870 | 871 | mime@1.4.1: 872 | version "1.4.1" 873 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" 874 | integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ== 875 | 876 | "minimatch@2 || 3": 877 | version "3.0.4" 878 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 879 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 880 | dependencies: 881 | brace-expansion "^1.1.7" 882 | 883 | minimist@0.0.8: 884 | version "0.0.8" 885 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 886 | integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= 887 | 888 | minimist@~0.0.1: 889 | version "0.0.10" 890 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" 891 | integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= 892 | 893 | mixin-deep@^2.0.0: 894 | version "2.0.0" 895 | resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-2.0.0.tgz#9dfd525156720ec6cbee14fcb4b968253ba358ee" 896 | integrity sha512-2tAhDtV+OCFCeknyf2cJD5rD+xfvM2ax/RZ3iI1G67Eh6x5UxKJlGDVpmCX27y7WvuXpAkMHQs9ooaxIHIit+A== 897 | 898 | mkdirp@~0.5.1: 899 | version "0.5.1" 900 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 901 | integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= 902 | dependencies: 903 | minimist "0.0.8" 904 | 905 | moment@^2.10.6: 906 | version "2.22.2" 907 | resolved "https://registry.yarnpkg.com/moment/-/moment-2.22.2.tgz#3c257f9839fc0e93ff53149632239eb90783ff66" 908 | integrity sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y= 909 | 910 | ms@2.0.0: 911 | version "2.0.0" 912 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 913 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 914 | 915 | ms@^2.1.1: 916 | version "2.1.1" 917 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" 918 | integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== 919 | 920 | mv@~2: 921 | version "2.1.1" 922 | resolved "https://registry.yarnpkg.com/mv/-/mv-2.1.1.tgz#ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2" 923 | integrity sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI= 924 | dependencies: 925 | mkdirp "~0.5.1" 926 | ncp "~2.0.0" 927 | rimraf "~2.4.0" 928 | 929 | nan@^2.10.0: 930 | version "2.11.1" 931 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.11.1.tgz#90e22bccb8ca57ea4cd37cc83d3819b52eea6766" 932 | integrity sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA== 933 | 934 | ncp@~2.0.0: 935 | version "2.0.0" 936 | resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3" 937 | integrity sha1-GVoh1sRuNh0vsSgbo4uR6d9727M= 938 | 939 | negotiator@0.6.1: 940 | version "0.6.1" 941 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" 942 | integrity sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk= 943 | 944 | nice-try@^1.0.4: 945 | version "1.0.5" 946 | resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" 947 | integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== 948 | 949 | node-fetch@^2.1.1: 950 | version "2.3.0" 951 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.3.0.tgz#1a1d940bbfb916a1d3e0219f037e89e71f8c5fa5" 952 | integrity sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA== 953 | 954 | npm-run-path@^2.0.0: 955 | version "2.0.2" 956 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" 957 | integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= 958 | dependencies: 959 | path-key "^2.0.0" 960 | 961 | object-keys@~0.4.0: 962 | version "0.4.0" 963 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" 964 | integrity sha1-KKaq50KN0sOpLz2V8hM13SBOAzY= 965 | 966 | on-finished@~2.3.0: 967 | version "2.3.0" 968 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" 969 | integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= 970 | dependencies: 971 | ee-first "1.1.1" 972 | 973 | once@^1.3.0, once@^1.3.1, once@^1.4.0: 974 | version "1.4.0" 975 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 976 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 977 | dependencies: 978 | wrappy "1" 979 | 980 | optimist@^0.6.1: 981 | version "0.6.1" 982 | resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" 983 | integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= 984 | dependencies: 985 | minimist "~0.0.1" 986 | wordwrap "~0.0.2" 987 | 988 | os-name@^3.0.0: 989 | version "3.0.0" 990 | resolved "https://registry.yarnpkg.com/os-name/-/os-name-3.0.0.tgz#e1434dbfddb8e74b44c98b56797d951b7648a5d9" 991 | integrity sha512-7c74tib2FsdFbQ3W+qj8Tyd1R3Z6tuVRNNxXjJcZ4NgjIEQU9N/prVMqcW29XZPXGACqaXN3jq58/6hoaoXH6g== 992 | dependencies: 993 | macos-release "^2.0.0" 994 | windows-release "^3.1.0" 995 | 996 | p-finally@^1.0.0: 997 | version "1.0.0" 998 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 999 | integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= 1000 | 1001 | p-limit@^1.1.0: 1002 | version "1.3.0" 1003 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" 1004 | integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== 1005 | dependencies: 1006 | p-try "^1.0.0" 1007 | 1008 | p-locate@^2.0.0: 1009 | version "2.0.0" 1010 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" 1011 | integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= 1012 | dependencies: 1013 | p-limit "^1.1.0" 1014 | 1015 | p-map-series@^1.0.0: 1016 | version "1.0.0" 1017 | resolved "https://registry.yarnpkg.com/p-map-series/-/p-map-series-1.0.0.tgz#bf98fe575705658a9e1351befb85ae4c1f07bdca" 1018 | integrity sha1-v5j+V1cFZYqeE1G++4WuTB8Hvco= 1019 | dependencies: 1020 | p-reduce "^1.0.0" 1021 | 1022 | p-reduce@^1.0.0: 1023 | version "1.0.0" 1024 | resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" 1025 | integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo= 1026 | 1027 | p-try@^1.0.0: 1028 | version "1.0.0" 1029 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" 1030 | integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= 1031 | 1032 | parse-commit-message@^3.2.0, parse-commit-message@^3.2.2: 1033 | version "3.2.2" 1034 | resolved "https://registry.yarnpkg.com/parse-commit-message/-/parse-commit-message-3.2.2.tgz#911ab4516c13e11b7ce7ee5bafe815c659c7a66f" 1035 | integrity sha512-8ugSdaYjnJic76DOWOuCE+ASvGDSLRwTnysPnbJmXnOvokPQ0NdJs99dDS6MtgM8bRa14EruzxdqVjF9ix7a6w== 1036 | dependencies: 1037 | collect-mentions "^1.0.2" 1038 | dedent "^0.7.0" 1039 | esm "^3.0.84" 1040 | mixin-deep "^2.0.0" 1041 | 1042 | parse-json@^4.0.0: 1043 | version "4.0.0" 1044 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" 1045 | integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= 1046 | dependencies: 1047 | error-ex "^1.3.1" 1048 | json-parse-better-errors "^1.0.1" 1049 | 1050 | parse-package-name@^0.1.0: 1051 | version "0.1.0" 1052 | resolved "https://registry.yarnpkg.com/parse-package-name/-/parse-package-name-0.1.0.tgz#3f44dd838feb4c2be4bf318bae4477d7706bade4" 1053 | integrity sha1-P0Tdg4/rTCvkvzGLrkR313BrreQ= 1054 | 1055 | parseurl@~1.3.2: 1056 | version "1.3.2" 1057 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" 1058 | integrity sha1-/CidTtiZMRlGDBViUyYs3I3mW/M= 1059 | 1060 | path-exists@^3.0.0: 1061 | version "3.0.0" 1062 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 1063 | integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= 1064 | 1065 | path-is-absolute@^1.0.0: 1066 | version "1.0.1" 1067 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1068 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 1069 | 1070 | path-key@^2.0.0, path-key@^2.0.1: 1071 | version "2.0.1" 1072 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 1073 | integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= 1074 | 1075 | path-parse@^1.0.5: 1076 | version "1.0.6" 1077 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" 1078 | integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== 1079 | 1080 | path-to-regexp@0.1.7: 1081 | version "0.1.7" 1082 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" 1083 | integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= 1084 | 1085 | pify@^3.0.0: 1086 | version "3.0.0" 1087 | resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" 1088 | integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= 1089 | 1090 | pkg-conf@^2.0.0: 1091 | version "2.1.0" 1092 | resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-2.1.0.tgz#2126514ca6f2abfebd168596df18ba57867f0058" 1093 | integrity sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg= 1094 | dependencies: 1095 | find-up "^2.0.0" 1096 | load-json-file "^4.0.0" 1097 | 1098 | probot-config@^1.0.0: 1099 | version "1.0.0" 1100 | resolved "https://registry.yarnpkg.com/probot-config/-/probot-config-1.0.0.tgz#4da831672fd08dab26fc522b6aee0027095039d0" 1101 | integrity sha512-5zV1JjvVH0zy67OZcjv36I/sz7AE7gsVSCkn7rHfNw4tndJhVuKDtq0sn78MoPEPazMbqvq5k0WVYz5MM2Ajyg== 1102 | dependencies: 1103 | deepmerge "^2.2.1" 1104 | js-yaml "^3.10.0" 1105 | 1106 | probot@^7.4.0: 1107 | version "7.4.0" 1108 | resolved "https://registry.yarnpkg.com/probot/-/probot-7.4.0.tgz#96a70148e8a114bcba75fd1a261155a559916cc5" 1109 | integrity sha512-xyvra7baRi8o/KortENZHFae8TZCBHvrKKTVvL1l5DhLBb1mfey+6AM2bxEai5ajDkrKnNiA69aDtb32WO5bRQ== 1110 | dependencies: 1111 | "@octokit/rest" "^15.18.0" 1112 | "@octokit/webhooks" "^5.0.2" 1113 | "@types/supports-color" "^5.3.0" 1114 | bottleneck "^2.8.0" 1115 | bunyan "^1.8.12" 1116 | bunyan-format "^0.2.1" 1117 | bunyan-sentry-stream "^1.1.0" 1118 | cache-manager "^2.4.0" 1119 | commander "^2.19.0" 1120 | dotenv "~6.1.0" 1121 | express "^4.16.2" 1122 | express-async-errors "^3.0.0" 1123 | hbs "^4.0.1" 1124 | is-base64 "0.1.0" 1125 | js-yaml "^3.9.1" 1126 | jsonwebtoken "^8.1.0" 1127 | pkg-conf "^2.0.0" 1128 | promise-events "^0.1.3" 1129 | qs "^6.5.2" 1130 | raven "^2.4.2" 1131 | resolve "^1.4.0" 1132 | semver "^5.5.0" 1133 | supports-color "^5.5.0" 1134 | update-dotenv "^1.1.0" 1135 | uuid "^3.2.1" 1136 | 1137 | promise-events@^0.1.3: 1138 | version "0.1.4" 1139 | resolved "https://registry.yarnpkg.com/promise-events/-/promise-events-0.1.4.tgz#3c88fae97e448da68f7fcf19d4ee308d6e432d5b" 1140 | integrity sha1-PIj66X5EjaaPf88Z1O4wjW5DLVs= 1141 | 1142 | proxy-addr@~2.0.4: 1143 | version "2.0.4" 1144 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz#ecfc733bf22ff8c6f407fa275327b9ab67e48b93" 1145 | integrity sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA== 1146 | dependencies: 1147 | forwarded "~0.1.2" 1148 | ipaddr.js "1.8.0" 1149 | 1150 | pseudomap@^1.0.1: 1151 | version "1.0.2" 1152 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" 1153 | integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= 1154 | 1155 | pump@^3.0.0: 1156 | version "3.0.0" 1157 | resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" 1158 | integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 1159 | dependencies: 1160 | end-of-stream "^1.1.0" 1161 | once "^1.3.1" 1162 | 1163 | qs@6.5.2: 1164 | version "6.5.2" 1165 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" 1166 | integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== 1167 | 1168 | qs@^6.5.2: 1169 | version "6.6.0" 1170 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.6.0.tgz#a99c0f69a8d26bf7ef012f871cdabb0aee4424c2" 1171 | integrity sha512-KIJqT9jQJDQx5h5uAVPimw6yVg2SekOKu959OCtktD3FjzbpvaPr8i4zzg07DOMz+igA4W/aNM7OV8H37pFYfA== 1172 | 1173 | range-parser@~1.2.0: 1174 | version "1.2.0" 1175 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" 1176 | integrity sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4= 1177 | 1178 | raven@^2.4.2: 1179 | version "2.6.4" 1180 | resolved "https://registry.yarnpkg.com/raven/-/raven-2.6.4.tgz#458d4a380c8fbb59e0150c655625aaf60c167ea3" 1181 | integrity sha512-6PQdfC4+DQSFncowthLf+B6Hr0JpPsFBgTVYTAOq7tCmx/kR4SXbeawtPch20+3QfUcQDoJBLjWW1ybvZ4kXTw== 1182 | dependencies: 1183 | cookie "0.3.1" 1184 | md5 "^2.2.1" 1185 | stack-trace "0.0.10" 1186 | timed-out "4.0.1" 1187 | uuid "3.3.2" 1188 | 1189 | raw-body@2.3.3: 1190 | version "2.3.3" 1191 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3" 1192 | integrity sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw== 1193 | dependencies: 1194 | bytes "3.0.0" 1195 | http-errors "1.6.3" 1196 | iconv-lite "0.4.23" 1197 | unpipe "1.0.0" 1198 | 1199 | recommended-bump@^1.3.0: 1200 | version "1.3.1" 1201 | resolved "https://registry.yarnpkg.com/recommended-bump/-/recommended-bump-1.3.1.tgz#6d543d8c0b31f9ecadaf6c8c3b75eee97df26d60" 1202 | integrity sha512-ZorBGI8pgDODaRyIuBAPABsUZI7A5mSZ0w0F+VOXaAabSkT9JFPBmFL1Jb74+Km6PtQD3/oHlVD7f/Riwv/T2A== 1203 | dependencies: 1204 | esm "^3.0.84" 1205 | parse-commit-message "^3.2.0" 1206 | 1207 | repeat-string@^1.5.2: 1208 | version "1.6.1" 1209 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" 1210 | integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= 1211 | 1212 | resolve@^1.4.0: 1213 | version "1.8.1" 1214 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" 1215 | integrity sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA== 1216 | dependencies: 1217 | path-parse "^1.0.5" 1218 | 1219 | right-align@^0.1.1: 1220 | version "0.1.3" 1221 | resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" 1222 | integrity sha1-YTObci/mo1FWiSENJOFMlhSGE+8= 1223 | dependencies: 1224 | align-text "^0.1.1" 1225 | 1226 | rimraf@~2.4.0: 1227 | version "2.4.5" 1228 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da" 1229 | integrity sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto= 1230 | dependencies: 1231 | glob "^6.0.1" 1232 | 1233 | safe-buffer@5.1.2, safe-buffer@^5.0.1: 1234 | version "5.1.2" 1235 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 1236 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 1237 | 1238 | safe-json-stringify@~1: 1239 | version "1.2.0" 1240 | resolved "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz#356e44bc98f1f93ce45df14bcd7c01cda86e0afd" 1241 | integrity sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg== 1242 | 1243 | "safer-buffer@>= 2.1.2 < 3": 1244 | version "2.1.2" 1245 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 1246 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 1247 | 1248 | semver@^5.5.0: 1249 | version "5.6.0" 1250 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" 1251 | integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== 1252 | 1253 | send@0.16.2: 1254 | version "0.16.2" 1255 | resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" 1256 | integrity sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw== 1257 | dependencies: 1258 | debug "2.6.9" 1259 | depd "~1.1.2" 1260 | destroy "~1.0.4" 1261 | encodeurl "~1.0.2" 1262 | escape-html "~1.0.3" 1263 | etag "~1.8.1" 1264 | fresh "0.5.2" 1265 | http-errors "~1.6.2" 1266 | mime "1.4.1" 1267 | ms "2.0.0" 1268 | on-finished "~2.3.0" 1269 | range-parser "~1.2.0" 1270 | statuses "~1.4.0" 1271 | 1272 | serve-static@1.13.2: 1273 | version "1.13.2" 1274 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" 1275 | integrity sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw== 1276 | dependencies: 1277 | encodeurl "~1.0.2" 1278 | escape-html "~1.0.3" 1279 | parseurl "~1.3.2" 1280 | send "0.16.2" 1281 | 1282 | setprototypeof@1.1.0: 1283 | version "1.1.0" 1284 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" 1285 | integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== 1286 | 1287 | shebang-command@^1.2.0: 1288 | version "1.2.0" 1289 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 1290 | integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= 1291 | dependencies: 1292 | shebang-regex "^1.0.0" 1293 | 1294 | shebang-regex@^1.0.0: 1295 | version "1.0.0" 1296 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 1297 | integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= 1298 | 1299 | signal-exit@^3.0.0: 1300 | version "3.0.2" 1301 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 1302 | integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= 1303 | 1304 | source-map@^0.4.4: 1305 | version "0.4.4" 1306 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" 1307 | integrity sha1-66T12pwNyZneaAMti092FzZSA2s= 1308 | dependencies: 1309 | amdefine ">=0.0.4" 1310 | 1311 | source-map@~0.5.1: 1312 | version "0.5.7" 1313 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 1314 | integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= 1315 | 1316 | split-cmd@^1.0.0: 1317 | version "1.0.0" 1318 | resolved "https://registry.yarnpkg.com/split-cmd/-/split-cmd-1.0.0.tgz#9a5eabce3e580b22e599295b994d93e0739b6c6f" 1319 | integrity sha512-swsF1ILoo7nnuua37fZXLfh5tk3FsIVhu7Temvg4qefMqgsi8OJsdyv15pMJ2gN04fT6WK8+XdU6fDIiFFezLg== 1320 | 1321 | sprintf-js@~1.0.2: 1322 | version "1.0.3" 1323 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 1324 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= 1325 | 1326 | stack-trace@0.0.10: 1327 | version "0.0.10" 1328 | resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" 1329 | integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= 1330 | 1331 | "statuses@>= 1.4.0 < 2": 1332 | version "1.5.0" 1333 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" 1334 | integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= 1335 | 1336 | statuses@~1.4.0: 1337 | version "1.4.0" 1338 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" 1339 | integrity sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew== 1340 | 1341 | strip-bom@^3.0.0: 1342 | version "3.0.0" 1343 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 1344 | integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= 1345 | 1346 | strip-eof@^1.0.0: 1347 | version "1.0.0" 1348 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 1349 | integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= 1350 | 1351 | supports-color@^5.5.0: 1352 | version "5.5.0" 1353 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1354 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1355 | dependencies: 1356 | has-flag "^3.0.0" 1357 | 1358 | timed-out@4.0.1: 1359 | version "4.0.1" 1360 | resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" 1361 | integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= 1362 | 1363 | type-is@~1.6.16: 1364 | version "1.6.16" 1365 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" 1366 | integrity sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q== 1367 | dependencies: 1368 | media-typer "0.3.0" 1369 | mime-types "~2.1.18" 1370 | 1371 | uglify-js@^2.6: 1372 | version "2.8.29" 1373 | resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" 1374 | integrity sha1-KcVzMUgFe7Th913zW3qcty5qWd0= 1375 | dependencies: 1376 | source-map "~0.5.1" 1377 | yargs "~3.10.0" 1378 | optionalDependencies: 1379 | uglify-to-browserify "~1.0.0" 1380 | 1381 | uglify-to-browserify@~1.0.0: 1382 | version "1.0.2" 1383 | resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" 1384 | integrity sha1-bgkk1r2mta/jSeOabWMoUKD4grc= 1385 | 1386 | universal-user-agent@^2.0.0: 1387 | version "2.0.2" 1388 | resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-2.0.2.tgz#b0322da546100c658adcf4965110a56ed238aee6" 1389 | integrity sha512-nOwvHWLH3dBazyuzbECPA5uVFNd7AlgviXRHgR4yf48QqitIvpdncRrxMbZNMpPPEfgz30I9ubd1XmiJiqsTrg== 1390 | dependencies: 1391 | os-name "^3.0.0" 1392 | 1393 | unpipe@1.0.0, unpipe@~1.0.0: 1394 | version "1.0.0" 1395 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 1396 | integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= 1397 | 1398 | update-dotenv@^1.1.0: 1399 | version "1.1.1" 1400 | resolved "https://registry.yarnpkg.com/update-dotenv/-/update-dotenv-1.1.1.tgz#17146f302f216c3c92419d5a327a45be910050ca" 1401 | integrity sha512-3cIC18In/t0X/yH793c00qqxcKD8jVCgNOPif/fGQkFpYMGecM9YAc+kaAKXuZsM2dE9I9wFI7KvAuNX22SGMQ== 1402 | 1403 | url-template@^2.0.8: 1404 | version "2.0.8" 1405 | resolved "https://registry.yarnpkg.com/url-template/-/url-template-2.0.8.tgz#fc565a3cccbff7730c775f5641f9555791439f21" 1406 | integrity sha1-/FZaPMy/93MMd19WQflVV5FDnyE= 1407 | 1408 | utils-merge@1.0.1: 1409 | version "1.0.1" 1410 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" 1411 | integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= 1412 | 1413 | uuid@3.3.2, uuid@^3.2.1: 1414 | version "3.3.2" 1415 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" 1416 | integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== 1417 | 1418 | vary@~1.1.2: 1419 | version "1.1.2" 1420 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 1421 | integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= 1422 | 1423 | walk@2.3.9: 1424 | version "2.3.9" 1425 | resolved "https://registry.yarnpkg.com/walk/-/walk-2.3.9.tgz#31b4db6678f2ae01c39ea9fb8725a9031e558a7b" 1426 | integrity sha1-MbTbZnjyrgHDnqn7hyWpAx5Vins= 1427 | dependencies: 1428 | foreachasync "^3.0.0" 1429 | 1430 | which@^1.2.9: 1431 | version "1.3.1" 1432 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 1433 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== 1434 | dependencies: 1435 | isexe "^2.0.0" 1436 | 1437 | window-size@0.1.0: 1438 | version "0.1.0" 1439 | resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" 1440 | integrity sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0= 1441 | 1442 | windows-release@^3.1.0: 1443 | version "3.1.0" 1444 | resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-3.1.0.tgz#8d4a7e266cbf5a233f6c717dac19ce00af36e12e" 1445 | integrity sha512-hBb7m7acFgQPQc222uEQTmdcGLeBmQLNLFIh0rDk3CwFOBrfjefLzEfEfmpMq8Af/n/GnFf3eYf203FY1PmudA== 1446 | dependencies: 1447 | execa "^0.10.0" 1448 | 1449 | wordwrap@0.0.2: 1450 | version "0.0.2" 1451 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" 1452 | integrity sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8= 1453 | 1454 | wordwrap@~0.0.2: 1455 | version "0.0.3" 1456 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" 1457 | integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= 1458 | 1459 | wrappy@1: 1460 | version "1.0.2" 1461 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1462 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 1463 | 1464 | xtend@~2.1.1: 1465 | version "2.1.2" 1466 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" 1467 | integrity sha1-bv7MKk2tjmlixJAbM3znuoe10os= 1468 | dependencies: 1469 | object-keys "~0.4.0" 1470 | 1471 | yallist@^2.0.0: 1472 | version "2.1.2" 1473 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" 1474 | integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= 1475 | 1476 | yargs@~3.10.0: 1477 | version "3.10.0" 1478 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" 1479 | integrity sha1-9+572FfdfB0tOMDnTvvWgdFDH9E= 1480 | dependencies: 1481 | camelcase "^1.0.2" 1482 | cliui "^2.1.0" 1483 | decamelize "^1.0.0" 1484 | window-size "0.1.0" 1485 | --------------------------------------------------------------------------------