From 7b58bdded9c2dd79d120c89592fcfdacb937d35f Mon Sep 17 00:00:00 2001 From: Algolia Date: Wed, 12 Apr 2023 14:24:35 +0000 Subject: [PATCH] auto commit [ci skip] --- 404.html | 6 +++--- assets/js/{10.1ae03918.js => 10.c2d3d241.js} | 2 +- assets/js/{12.a53014ef.js => 12.d705fb41.js} | 2 +- assets/js/{13.f1242808.js => 13.dfbdba99.js} | 2 +- assets/js/{14.f956f708.js => 14.175211bb.js} | 2 +- assets/js/{4.e34d428e.js => 4.6c656b1d.js} | 2 +- assets/js/{6.5a7af512.js => 6.5a377bae.js} | 2 +- assets/js/{app.e3c7b603.js => app.0be5ee5c.js} | 4 ++-- guide/community.html | 4 ++-- guide/contributing.html | 4 ++-- guide/getting-started.html | 4 ++-- guide/index.html | 4 ++-- guide/useful-config.html | 4 ++-- index.html | 4 ++-- reference/all-config.html | 4 ++-- reference/commands.html | 4 ++-- reference/resources.html | 4 ++-- 17 files changed, 29 insertions(+), 29 deletions(-) rename assets/js/{10.1ae03918.js => 10.c2d3d241.js} (97%) rename assets/js/{12.a53014ef.js => 12.d705fb41.js} (99%) rename assets/js/{13.f1242808.js => 13.dfbdba99.js} (95%) rename assets/js/{14.f956f708.js => 14.175211bb.js} (93%) rename assets/js/{4.e34d428e.js => 4.6c656b1d.js} (96%) rename assets/js/{6.5a7af512.js => 6.5a377bae.js} (97%) rename assets/js/{app.e3c7b603.js => app.0be5ee5c.js} (96%) diff --git a/404.html b/404.html index a7190b8d..513c2a2a 100644 --- a/404.html +++ b/404.html @@ -7,13 +7,13 @@ - + -

404

There's nothing here.
+ - + diff --git a/assets/js/10.1ae03918.js b/assets/js/10.c2d3d241.js similarity index 97% rename from assets/js/10.1ae03918.js rename to assets/js/10.c2d3d241.js index 9ee75150..37e213f1 100644 --- a/assets/js/10.1ae03918.js +++ b/assets/js/10.c2d3d241.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{364:function(t,e,a){"use strict";a.r(e);var s=a(41),r=Object(s.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"how-to-contribute"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-to-contribute"}},[t._v("#")]),t._v(" How to Contribute?")]),t._v(" "),a("p",[t._v("All kind of contribution is welcomed. You can always "),a("a",{attrs:{href:"https://github.com/algolia/shipjs/issues/new/choose",target:"_blank",rel:"noopener noreferrer"}},[t._v("create an issue at GitHub"),a("OutboundLink")],1),t._v(".")]),t._v(" "),a("p",[t._v("If you want to work on code and send a pull request, we highly recommend you to create an issue first to discuss how to implement it and to be aligned with the roadmap of Ship.js.")]),t._v(" "),a("h2",{attrs:{id:"working-on-code"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#working-on-code"}},[t._v("#")]),t._v(" Working on code")]),t._v(" "),a("ol",[a("li",[a("a",{attrs:{href:"https://help.github.com/en/github/getting-started-with-github/fork-a-repo",target:"_blank",rel:"noopener noreferrer"}},[t._v("Fork the project"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://help.github.com/en/github/getting-started-with-github/fork-a-repo",target:"_blank",rel:"noopener noreferrer"}},[t._v("Clone the repository"),a("OutboundLink")],1)]),t._v(" "),a("li",[t._v("Install the dependencies: "),a("code",[t._v("yarn install")])])]),t._v(" "),a("p",[t._v("Ship.js is using "),a("a",{attrs:{href:"https://yarnpkg.com/lang/en/docs/workspaces/",target:"_blank",rel:"noopener noreferrer"}},[t._v("yarn workspace"),a("OutboundLink")],1),t._v(" for its monorepo structure.")]),t._v(" "),a("p",[t._v("Ship.js consists of two packages:")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("shipjs")]),t._v(": CLI package")]),t._v(" "),a("li",[a("code",[t._v("shipjs-lib")]),t._v(": A library package used by "),a("code",[t._v("shipjs")])])]),t._v(" "),a("h3",{attrs:{id:"testing-and-linting"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#testing-and-linting"}},[t._v("#")]),t._v(" Testing and linting")]),t._v(" "),a("p",[t._v("We ask you to write test cases whenever you make a change. You can run tests by the following commands:")]),t._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("yarn")]),t._v(" workspace shipjs test:watch\n\nor\n\n"),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("yarn")]),t._v(" workspace shipjs-lib test:watch\n")])])]),a("p",[t._v("And please make sure your code passes eslint.")]),t._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("yarn")]),t._v(" lint\n")])])]),a("p",[t._v("Always reach out to us on GitHub when you are blocked in any way during the contribution.")]),t._v(" "),a("h3",{attrs:{id:"testing-your-code-in-action"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#testing-your-code-in-action"}},[t._v("#")]),t._v(" Testing your code in action")]),t._v(" "),a("p",[t._v("If you've made some change in "),a("code",[t._v("prepare")]),t._v(" command, you can run it over your test repository like the following:")]),t._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("yarn")]),t._v(" workspace shipjs test:run:prepare --dir ~/workspace/your-test-repository\n")])])]),a("h2",{attrs:{id:"contributors-list"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#contributors-list"}},[t._v("#")]),t._v(" Contributors list")]),t._v(" "),a("p",[t._v("When you make a contribution, you can be on the contributors list.")]),t._v(" "),a("p",[t._v("Run the following command and send a new pull request.")]),t._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("yarn")]),t._v(" contributors:add "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("your-github-username"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("contribution-type"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v("\n")])])]),a("p",[t._v("For example,")]),t._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("yarn")]),t._v(" contributors:add eunjae-lee code,doc\n")])])]),a("p",[t._v("Ship.js is using "),a("code",[t._v("all-contributors")]),t._v(" to maintain the contributors list.")]),t._v(" "),a("p",[t._v("The full list of contribution types can be found "),a("a",{attrs:{href:"https://allcontributors.org/docs/en/emoji-key",target:"_blank",rel:"noopener noreferrer"}},[t._v("here"),a("OutboundLink")],1),t._v(".")])])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{365:function(t,e,a){"use strict";a.r(e);var s=a(41),r=Object(s.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"how-to-contribute"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-to-contribute"}},[t._v("#")]),t._v(" How to Contribute?")]),t._v(" "),a("p",[t._v("All kind of contribution is welcomed. You can always "),a("a",{attrs:{href:"https://github.com/algolia/shipjs/issues/new/choose",target:"_blank",rel:"noopener noreferrer"}},[t._v("create an issue at GitHub"),a("OutboundLink")],1),t._v(".")]),t._v(" "),a("p",[t._v("If you want to work on code and send a pull request, we highly recommend you to create an issue first to discuss how to implement it and to be aligned with the roadmap of Ship.js.")]),t._v(" "),a("h2",{attrs:{id:"working-on-code"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#working-on-code"}},[t._v("#")]),t._v(" Working on code")]),t._v(" "),a("ol",[a("li",[a("a",{attrs:{href:"https://help.github.com/en/github/getting-started-with-github/fork-a-repo",target:"_blank",rel:"noopener noreferrer"}},[t._v("Fork the project"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://help.github.com/en/github/getting-started-with-github/fork-a-repo",target:"_blank",rel:"noopener noreferrer"}},[t._v("Clone the repository"),a("OutboundLink")],1)]),t._v(" "),a("li",[t._v("Install the dependencies: "),a("code",[t._v("yarn install")])])]),t._v(" "),a("p",[t._v("Ship.js is using "),a("a",{attrs:{href:"https://yarnpkg.com/lang/en/docs/workspaces/",target:"_blank",rel:"noopener noreferrer"}},[t._v("yarn workspace"),a("OutboundLink")],1),t._v(" for its monorepo structure.")]),t._v(" "),a("p",[t._v("Ship.js consists of two packages:")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("shipjs")]),t._v(": CLI package")]),t._v(" "),a("li",[a("code",[t._v("shipjs-lib")]),t._v(": A library package used by "),a("code",[t._v("shipjs")])])]),t._v(" "),a("h3",{attrs:{id:"testing-and-linting"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#testing-and-linting"}},[t._v("#")]),t._v(" Testing and linting")]),t._v(" "),a("p",[t._v("We ask you to write test cases whenever you make a change. You can run tests by the following commands:")]),t._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("yarn")]),t._v(" workspace shipjs test:watch\n\nor\n\n"),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("yarn")]),t._v(" workspace shipjs-lib test:watch\n")])])]),a("p",[t._v("And please make sure your code passes eslint.")]),t._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("yarn")]),t._v(" lint\n")])])]),a("p",[t._v("Always reach out to us on GitHub when you are blocked in any way during the contribution.")]),t._v(" "),a("h3",{attrs:{id:"testing-your-code-in-action"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#testing-your-code-in-action"}},[t._v("#")]),t._v(" Testing your code in action")]),t._v(" "),a("p",[t._v("If you've made some change in "),a("code",[t._v("prepare")]),t._v(" command, you can run it over your test repository like the following:")]),t._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("yarn")]),t._v(" workspace shipjs test:run:prepare --dir ~/workspace/your-test-repository\n")])])]),a("h2",{attrs:{id:"contributors-list"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#contributors-list"}},[t._v("#")]),t._v(" Contributors list")]),t._v(" "),a("p",[t._v("When you make a contribution, you can be on the contributors list.")]),t._v(" "),a("p",[t._v("Run the following command and send a new pull request.")]),t._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("yarn")]),t._v(" contributors:add "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("your-github-username"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("contribution-type"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v("\n")])])]),a("p",[t._v("For example,")]),t._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("yarn")]),t._v(" contributors:add eunjae-lee code,doc\n")])])]),a("p",[t._v("Ship.js is using "),a("code",[t._v("all-contributors")]),t._v(" to maintain the contributors list.")]),t._v(" "),a("p",[t._v("The full list of contribution types can be found "),a("a",{attrs:{href:"https://allcontributors.org/docs/en/emoji-key",target:"_blank",rel:"noopener noreferrer"}},[t._v("here"),a("OutboundLink")],1),t._v(".")])])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/12.a53014ef.js b/assets/js/12.d705fb41.js similarity index 99% rename from assets/js/12.a53014ef.js rename to assets/js/12.d705fb41.js index 09b21aa0..5d8a25b5 100644 --- a/assets/js/12.a53014ef.js +++ b/assets/js/12.d705fb41.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{370:function(t,s,a){"use strict";a.r(s);var n=a(41),e=Object(n.a)({},(function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"all-configurations"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#all-configurations"}},[t._v("#")]),t._v(" All Configurations")]),t._v(" "),a("h2",{attrs:{id:"monorepo"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#monorepo"}},[t._v("#")]),t._v(" "),a("code",[t._v("monorepo")])]),t._v(" "),a("p",[a("em",[t._v("default:")]),t._v(" "),a("code",[t._v("undefined")])]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// example")]),t._v("\nmodule"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("exports "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n monorepo"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n mainVersionFile"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'package.json'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n packagesToBump"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'packages/*'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'examples/*'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n packagesToPublish"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'packages/*'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n updateDependencies"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// optional, default: true")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("p",[t._v("If "),a("code",[t._v("monorepo")]),t._v(" is defined, Ship.js will treat the project as a monorepo.")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("NOTICE")]),t._v(" "),a("p",[t._v("Ship.js currently does not support independent versioning out of the box. You can still support it yourself by leveraging the "),a("a",{attrs:{href:"#releases"}},[a("code",[t._v("version")])]),t._v(" lifecycle hook and use a separate tool (like Lerna) to update versions.")])]),t._v(" "),a("h3",{attrs:{id:"shipjs-prepare"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#shipjs-prepare"}},[t._v("#")]),t._v(" "),a("strong",[a("code",[t._v("shipjs prepare")])])]),t._v(" "),a("ol",[a("li",[t._v("Ship.js reads version from "),a("code",[t._v("mainVersionFile")]),t._v(".")]),t._v(" "),a("li",[t._v("When next version is decided, Ship.js will update the version at "),a("code",[t._v("mainVersionFile")]),t._v(".")]),t._v(" "),a("li",[t._v("Ship.js will update all the versions in "),a("code",[t._v("packagesToBump")]),t._v(".")]),t._v(" "),a("li",[t._v("When "),a("code",[t._v("updateDependencies: true")]),t._v(", it updates the dependencies, too.")])]),t._v(" "),a("p",[t._v("For example,")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// ship.config.js")]),t._v("\npackagesToBump"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'packages/my-package-core'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'packages/my-package-js'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n")])])]),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// packages/my-package-js/package.json")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"dependencies"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"my-package-core"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"^x.y.z"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("p",[t._v("Ship.js will check "),a("code",[t._v("dependencies")]),t._v(", "),a("code",[t._v("devDependencies")]),t._v(" and "),a("code",[t._v("peerDependencies")]),t._v(" and update the version to the latest. If you don't want this behavior, put "),a("code",[t._v("updateDependencies: false")]),t._v(" in the config.")]),t._v(" "),a("h3",{attrs:{id:"shipjs-trigger"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#shipjs-trigger"}},[t._v("#")]),t._v(" "),a("strong",[a("code",[t._v("shipjs trigger")])])]),t._v(" "),a("ol",[a("li",[t._v("Ship.js will only publish the packages from "),a("code",[t._v("packagesToPublish")]),t._v(".")])]),t._v(" "),a("h2",{attrs:{id:"version"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#version"}},[t._v("#")]),t._v(" "),a("code",[t._v("version")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs prepare")])]),t._v(" "),a("p",[a("em",[t._v("default")]),t._v(": "),a("code",[t._v("undefined")])]),t._v(" "),a("p",[t._v("When provided, Ship.js skips all other validation and creation of changelog, and only runs "),a("code",[t._v("version")]),t._v(" instead. The steps you need to recreate in this hook are:")]),t._v(" "),a("ul",[a("li",[t._v("decide on the next version (for each package)")]),t._v(" "),a("li",[t._v('validate the conditions in "shouldPrepare"')]),t._v(" "),a("li",[t._v("update version numbers")]),t._v(" "),a("li",[t._v("updating or writing changelog")])]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("version")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" exec "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("exec")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'yarn lerna version --no-push --no-git-tag-version --yes --conventional-commits'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("h2",{attrs:{id:"shouldprepare"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#shouldprepare"}},[t._v("#")]),t._v(" "),a("code",[t._v("shouldPrepare")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs prepare")])]),t._v(" "),a("p",[a("em",[t._v("default")]),t._v(": "),a("code",[t._v("undefined")])]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// example")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("shouldPrepare")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n commits"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n nextVersion"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n releaseType"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n releaseTag"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n commitNumbersPerType"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* ... */")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("p",[t._v("This is a lifecycle hook where you can decide whether or not to proceed with the preparation.")]),t._v(" "),a("ul",[a("li",[t._v("commits: string of commit titles. Be aware that it's not an array of strings. It comes from "),a("code",[t._v("git log --pretty=format:%s")]),t._v(".")]),t._v(" "),a("li",[t._v("nextVersion: "),a("code",[t._v("x.y.z")])]),t._v(" "),a("li",[t._v("releaseType: "),a("code",[t._v("'major' | 'minor' | 'patch' | 'prerelease'")])]),t._v(" "),a("li",[t._v("releaseTag: "),a("code",[t._v("'latest' | 'alpha' | 'beta' | ...")])]),t._v(" "),a("li",[t._v("commitNumbersPerType: an object with keys of conventional commit type, and with values of number of commits of the type. "),a("code",[t._v("{ feat: 2, fix: 4, chore: 8 }")])])]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// example")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("shouldPrepare")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" releaseType"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" commitNumbersPerType "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" fix "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" commitNumbersPerType"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("releaseType "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("===")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'patch'")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("&&")]),t._v(" fix "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("===")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("p",[t._v("With the config above, you can skip if it's going to be a patch release but without any "),a("code",[t._v("fix")]),t._v(" commits.")]),t._v(" "),a("h2",{attrs:{id:"updatechangelog"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#updatechangelog"}},[t._v("#")]),t._v(" "),a("code",[t._v("updateChangelog")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs prepare")])]),t._v(" "),a("p",[a("em",[t._v("default:")]),t._v(" "),a("code",[t._v("true")])]),t._v(" "),a("p",[t._v("If "),a("code",[t._v("false")]),t._v(", Ship.js won't run "),a("code",[t._v("conventional-changelog")]),t._v(" during "),a("code",[t._v("shipjs prepare")]),t._v(".")]),t._v(" "),a("h2",{attrs:{id:"conventionalchangelogargs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#conventionalchangelogargs"}},[t._v("#")]),t._v(" "),a("code",[t._v("conventionalChangelogArgs")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs prepare")])]),t._v(" "),a("p",[a("em",[t._v("default:")]),t._v(" "),a("code",[t._v("'-p angular -i CHANGELOG.md -s'")])]),t._v(" "),a("p",[t._v("This is passed to "),a("code",[t._v("conventional-changelog")]),t._v(" CLI to update CHANGELOG.md.")]),t._v(" "),a("h2",{attrs:{id:"installcommand"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#installcommand"}},[t._v("#")]),t._v(" "),a("code",[t._v("installCommand")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs prepare")])]),t._v(" "),a("p",[a("em",[t._v("default:")])]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("installCommand")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" isYarn "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v("\n isYarn "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'yarn install --silent'")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'npm install'")]),t._v("`\n")])])]),a("h2",{attrs:{id:"getnextversion"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getnextversion"}},[t._v("#")]),t._v(" "),a("code",[t._v("getNextVersion")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs prepare")])]),t._v(" "),a("p",[a("em",[t._v("default:")]),t._v(" "),a("code",[t._v("undefined")])]),t._v(" "),a("p",[t._v("This hook determines what the next version should be. It returns the next version as string. If not given, by default, Ship.js follows "),a("a",{attrs:{href:"https://www.conventionalcommits.org",target:"_blank",rel:"noopener noreferrer"}},[t._v("conventional commits"),a("OutboundLink")],1),t._v(".")]),t._v(" "),a("ul",[a("li",[t._v("revisionRange: for example, "),a("code",[t._v("v0.1.0..HEAD")])]),t._v(" "),a("li",[t._v("commitTitles: string of commit titles. Be aware that it's not an array of strings. It comes from "),a("code",[t._v("git log --pretty=format:%s")]),t._v(".")]),t._v(" "),a("li",[t._v("commitBodies: string of commit bodies. Be aware that it's not an array of strings. It comes from "),a("code",[t._v("git log --pretty=format:%b")]),t._v(".")]),t._v(" "),a("li",[t._v("currentVersion: for example, "),a("code",[t._v("0.1.0")])]),t._v(" "),a("li",[t._v("dir: current working dir")])]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// example")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("getNextVersion")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" revisionRange"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" commitTitles"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" commitBodies"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" currentVersion"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" dir "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// do something")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" nextVersion"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v('// for example, `"0.2.0"`')]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("h2",{attrs:{id:"versionupdated"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#versionupdated"}},[t._v("#")]),t._v(" "),a("code",[t._v("versionUpdated")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs prepare")])]),t._v(" "),a("p",[a("em",[t._v("default:")]),t._v(" "),a("code",[t._v("undefined")])]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// example")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("versionUpdated")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" version"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" releaseType"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" dir"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" exec "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* ... */")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("p",[t._v("This is a lifecycle hook where you can put additional code after version is updated. You can read "),a("RouterLink",{attrs:{to:"/guide/useful-config.html#extra-work-on-updating-version"}},[t._v("an example here")]),t._v(".")],1),t._v(" "),a("ul",[a("li",[t._v("version: "),a("code",[t._v("x.y.z")])]),t._v(" "),a("li",[t._v("releaseType: "),a("code",[t._v("'major' | 'minor' | 'patch' | 'prerelease'")])]),t._v(" "),a("li",[t._v("dir: current working dir")]),t._v(" "),a("li",[t._v("exec: "),a("code",[t._v("shelljs.exec")]),t._v(" bound with the "),a("code",[t._v("dir")]),t._v(".\n"),a("ul",[a("li",[t._v("For example, "),a("code",[t._v("exec('yarn some-command')")])]),t._v(" "),a("li",[t._v("This is a synchronous function.")])])])]),t._v(" "),a("h2",{attrs:{id:"beforecommitchanges"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforecommitchanges"}},[t._v("#")]),t._v(" "),a("code",[t._v("beforeCommitChanges")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs prepare")])]),t._v(" "),a("p",[a("em",[t._v("default:")]),t._v(" "),a("code",[t._v("undefined")])]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// example")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("beforeCommitChanges")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" nextVersion"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" releaseType"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" exec"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" dir "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* ... */")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("p",[t._v("This is a lifecycle hook which is executed right before "),a("code",[t._v("git commit")]),t._v(" happens. You can put additional code like modifying some other files.")]),t._v(" "),a("h2",{attrs:{id:"draftpullrequest"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#draftpullrequest"}},[t._v("#")]),t._v(" "),a("code",[t._v("draftPullRequest")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs prepare")])]),t._v(" "),a("p",[a("em",[t._v("default:")]),t._v(" "),a("code",[t._v("false")])]),t._v(" "),a("p",[t._v("If "),a("code",[t._v("true")]),t._v(", Ship.js will create a draft pull request.")]),t._v(" "),a("h2",{attrs:{id:"pullrequestreviewers"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#pullrequestreviewers"}},[t._v("#")]),t._v(" "),a("code",[t._v("pullRequestReviewers")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs prepare")])]),t._v(" "),a("p",[a("em",[t._v("default:")]),t._v(" "),a("code",[t._v("undefined")])]),t._v(" "),a("p",[t._v("You can put an array of strings.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("pullRequestReviewers"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'user1'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'user2'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'user3'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("p",[t._v("One thing you need to be aware of is, you cannot assign yourself as a reviewer. You can put github username of your team or colleagues.")]),t._v(" "),a("h2",{attrs:{id:"pullrequestteamreviewers"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#pullrequestteamreviewers"}},[t._v("#")]),t._v(" "),a("code",[t._v("pullRequestTeamReviewers")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs prepare")])]),t._v(" "),a("p",[a("em",[t._v("default:")]),t._v(" "),a("code",[t._v("undefined")])]),t._v(" "),a("p",[t._v("You can put an array of strings.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("pullRequestTeamReviewers"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'team-username1'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"buildcommand"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#buildcommand"}},[t._v("#")]),t._v(" "),a("code",[t._v("buildCommand")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs trigger")])]),t._v(" "),a("p",[a("em",[t._v("default:")])]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("buildCommand")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" isYarn"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" version "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v("\n isYarn "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'yarn build'")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'npm run build'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("p",[t._v("If there's nothing to build before publishing, you can skip this step:")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("buildCommand")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"beforepublish"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforepublish"}},[t._v("#")]),t._v(" "),a("code",[t._v("beforePublish")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs trigger")])]),t._v(" "),a("p",[a("em",[t._v("default:")]),t._v(" "),a("code",[t._v("undefined")])]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// example")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("beforePublish")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" exec"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" dir "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* do something */")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"publishcommand"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#publishcommand"}},[t._v("#")]),t._v(" "),a("code",[t._v("publishCommand")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs trigger")])]),t._v(" "),a("p",[a("em",[t._v("default:")])]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("publishCommand")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" isYarn"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" tag"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" defaultCommand"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" dir "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" defaultCommand"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("p",[a("code",[t._v("defaultCommand")]),t._v(":")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("isYarn\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token template-string"}},[a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("npm_config_registry=https://registry.npmjs.org/ npm publish --tag ")]),a("span",{pre:!0,attrs:{class:"token interpolation"}},[a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("${")]),t._v("tag"),a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token template-string"}},[a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("npm publish --tag ")]),a("span",{pre:!0,attrs:{class:"token interpolation"}},[a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("${")]),t._v("tag"),a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("p",[t._v("By default, "),a("code",[t._v("publishCommand")]),t._v(" will return "),a("code",[t._v("npm publish ...")]),t._v(".")]),t._v(" "),a("h3",{attrs:{id:"scoped-package"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#scoped-package"}},[t._v("#")]),t._v(" Scoped Package")]),t._v(" "),a("p",[t._v("If your project is a scoped package and you want it to be public, you need to add "),a("code",[t._v("--access public")]),t._v(" to the publish command. To do so,")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("publishCommand")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" isYarn"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" tag"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" defaultCommand"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" dir "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token template-string"}},[a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")]),a("span",{pre:!0,attrs:{class:"token interpolation"}},[a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("${")]),t._v("defaultCommand"),a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v(" --access public")]),a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h3",{attrs:{id:"monorepo-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#monorepo-2"}},[t._v("#")]),t._v(" Monorepo")]),t._v(" "),a("p",[t._v("If your project is a monorepo and if you want to use different publish command per package,")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("publishCommand")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" isYarn"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" tag"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" defaultCommand"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" dir "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("dir"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("endsWith")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'/website'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'npx now'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("else")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" defaultCommand"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"afterpublish"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterpublish"}},[t._v("#")]),t._v(" "),a("code",[t._v("afterPublish")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs trigger")])]),t._v(" "),a("p",[a("em",[t._v("default:")]),t._v(" "),a("code",[t._v("undefined")])]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// example")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("afterPublish")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" exec"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" dir"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" version"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" releaseTag "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* do something */")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"testcommandbeforerelease"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#testcommandbeforerelease"}},[t._v("#")]),t._v(" "),a("code",[t._v("testCommandBeforeRelease")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs trigger")])]),t._v(" "),a("p",[a("em",[t._v("default:")]),t._v(" "),a("code",[t._v("undefined")])]),t._v(" "),a("p",[t._v("Ship.js runs this command at "),a("code",[t._v("shipjs trigger")]),t._v(" before publishing the package to make sure if it works correctly.")]),t._v(" "),a("p",[t._v("By default, it's undefined because you may already have a CI service running tests on your GitHub PR.")]),t._v(" "),a("p",[t._v("If you want to run something right before release, you can do so like the following:")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("testCommandBeforeRelease")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" isYarn "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v("\n isYarn "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'yarn test'")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'npm run test'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"releases"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#releases"}},[t._v("#")]),t._v(" "),a("code",[t._v("releases")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs trigger")])]),t._v(" "),a("p",[a("em",[t._v("default:")]),t._v(" "),a("code",[t._v("undefined")])]),t._v(" "),a("p",[t._v('By default, Ship.js will create a release on "releases" tab at GitHub.')]),t._v(" "),a("p",[t._v("By defining "),a("code",[t._v("releases")]),t._v(", you can optionally attach assets or customize content of release.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// example")]),t._v("\nreleases"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n assetsToUpload"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// optional")]),t._v("\n extractChangelog"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// optional")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("ul",[a("li",[a("code",[t._v("assetsToUpload")]),t._v(": String | String[] | Function\n"),a("ul",[a("li",[a("code",[t._v("archive.zip")])]),t._v(" "),a("li",[a("code",[t._v("archive.*.zip")])]),t._v(" "),a("li",[a("code",[t._v("['package.json', 'dist/*.zip']")])]),t._v(" "),a("li",[a("code",[t._v("({dir, version, tagName}) => [...]")])])])]),t._v(" "),a("li",[a("code",[t._v("extractChangelog")]),t._v(": "),a("code",[t._v("({ version, dir }) => 'some specific changelog to that version'")])])]),t._v(" "),a("h2",{attrs:{id:"appname"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#appname"}},[t._v("#")]),t._v(" "),a("code",[t._v("appName")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs trigger")])]),t._v(" "),a("p",[a("em",[t._v("default:")]),t._v(" "),a("code",[t._v("undefined")])]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// example")]),t._v("\nappName"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'My Awesome Package'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("p",[t._v("This is used when Ship.js sends message to your Slack channel. If it's "),a("code",[t._v("undefined")]),t._v(", Ship.js will take "),a("code",[t._v("name")]),t._v(" from your "),a("code",[t._v("package.json")]),t._v(" by default.")]),t._v(" "),a("h2",{attrs:{id:"messaging-to-slack"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#messaging-to-slack"}},[t._v("#")]),t._v(" Messaging to Slack")]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs trigger")])]),t._v(" "),a("p",[t._v("If you configure an environment variable "),a("code",[t._v("SLACK_INCOMING_HOOK")]),t._v(", Ship.js will send messages")]),t._v(" "),a("ul",[a("li",[t._v("when "),a("code",[t._v("shipjs prepare")]),t._v(" is finished ("),a("code",[t._v("prepare")]),t._v(")")]),t._v(" "),a("li",[t._v("when "),a("code",[t._v("shipjs trigger")]),t._v(" is finished ("),a("code",[t._v("releaseSuccess")]),t._v(")")])]),t._v(" "),a("p",[t._v("You can specify sender's username:")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("slack"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("default")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n username"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'My Release Bot'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("p",[t._v("As described above, there are three phases of Slack messages: "),a("code",[t._v("prepare")]),t._v(" and "),a("code",[t._v("releaseSuccess")]),t._v(".")]),t._v(" "),a("p",[t._v("You can customize the messages. The following is the default value. You can read "),a("a",{attrs:{href:"https://api.slack.com/docs/messages/builder",target:"_blank",rel:"noopener noreferrer"}},[t._v("this documentation from Slack"),a("OutboundLink")],1),t._v(" to learn how to format messages.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("slack"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("prepared")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" appName"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" version"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" pullRequestUrl "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n pretext"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token template-string"}},[a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v(":writing_hand: The release for *")]),a("span",{pre:!0,attrs:{class:"token interpolation"}},[a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("${")]),t._v("appName"),a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("@")]),a("span",{pre:!0,attrs:{class:"token interpolation"}},[a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("${")]),t._v("version"),a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("* is prepared!")]),a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n fields"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n title"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Branch'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'master'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n short"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n title"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Version'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" version"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n short"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n title"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Pull Request'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" pullRequestUrl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n short"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("releaseSuccess")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n appName"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n version"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n latestCommitHash"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n latestCommitUrl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n repoURL"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n pretext"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token template-string"}},[a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v(":tada: Successfully released *")]),a("span",{pre:!0,attrs:{class:"token interpolation"}},[a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("${")]),t._v("appName"),a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("@")]),a("span",{pre:!0,attrs:{class:"token interpolation"}},[a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("${")]),t._v("version"),a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("*")]),a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n fields"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n title"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Branch'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'master'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n short"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n title"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Commit'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token template-string"}},[a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("*<")]),a("span",{pre:!0,attrs:{class:"token interpolation"}},[a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("${")]),t._v("latestCommitUrl"),a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("|")]),a("span",{pre:!0,attrs:{class:"token interpolation"}},[a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("${")]),t._v("latestCommitHash"),a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v(">*")]),a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n short"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n title"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Version'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" version"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n short"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n title"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'CHANGELOG'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token template-string"}},[a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")]),a("span",{pre:!0,attrs:{class:"token interpolation"}},[a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("${")]),t._v("repoURL"),a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("/blob/master/CHANGELOG.md")]),a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("p",[t._v("If you don't want, you can skip some of the messages:")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("slack"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n prepared"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("p",[t._v("In this way, Ship.js won't send a message when a pull request is prepared.")]),t._v(" "),a("p",[t._v("When Ship.js loads your "),a("code",[t._v("ship.config.js")]),t._v(", it deep-merges "),a("code",[t._v("slack")]),t._v(" object.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("defaultConfig "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n slack"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("default")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n username"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Ship.js'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("prepared")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* ... */")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("releaseSuccess")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* ... */")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\nyourConfig "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n slack"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n prepared"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\nfinalConfig "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n slack"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("default")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n username"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Ship.js'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n prepared"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// <- only this is affected")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("releaseSuccess")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* ... */")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{368:function(t,s,a){"use strict";a.r(s);var n=a(41),e=Object(n.a)({},(function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"all-configurations"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#all-configurations"}},[t._v("#")]),t._v(" All Configurations")]),t._v(" "),a("h2",{attrs:{id:"monorepo"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#monorepo"}},[t._v("#")]),t._v(" "),a("code",[t._v("monorepo")])]),t._v(" "),a("p",[a("em",[t._v("default:")]),t._v(" "),a("code",[t._v("undefined")])]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// example")]),t._v("\nmodule"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("exports "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n monorepo"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n mainVersionFile"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'package.json'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n packagesToBump"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'packages/*'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'examples/*'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n packagesToPublish"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'packages/*'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n updateDependencies"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// optional, default: true")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("p",[t._v("If "),a("code",[t._v("monorepo")]),t._v(" is defined, Ship.js will treat the project as a monorepo.")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("NOTICE")]),t._v(" "),a("p",[t._v("Ship.js currently does not support independent versioning out of the box. You can still support it yourself by leveraging the "),a("a",{attrs:{href:"#releases"}},[a("code",[t._v("version")])]),t._v(" lifecycle hook and use a separate tool (like Lerna) to update versions.")])]),t._v(" "),a("h3",{attrs:{id:"shipjs-prepare"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#shipjs-prepare"}},[t._v("#")]),t._v(" "),a("strong",[a("code",[t._v("shipjs prepare")])])]),t._v(" "),a("ol",[a("li",[t._v("Ship.js reads version from "),a("code",[t._v("mainVersionFile")]),t._v(".")]),t._v(" "),a("li",[t._v("When next version is decided, Ship.js will update the version at "),a("code",[t._v("mainVersionFile")]),t._v(".")]),t._v(" "),a("li",[t._v("Ship.js will update all the versions in "),a("code",[t._v("packagesToBump")]),t._v(".")]),t._v(" "),a("li",[t._v("When "),a("code",[t._v("updateDependencies: true")]),t._v(", it updates the dependencies, too.")])]),t._v(" "),a("p",[t._v("For example,")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// ship.config.js")]),t._v("\npackagesToBump"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'packages/my-package-core'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'packages/my-package-js'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n")])])]),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// packages/my-package-js/package.json")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"dependencies"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"my-package-core"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"^x.y.z"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("p",[t._v("Ship.js will check "),a("code",[t._v("dependencies")]),t._v(", "),a("code",[t._v("devDependencies")]),t._v(" and "),a("code",[t._v("peerDependencies")]),t._v(" and update the version to the latest. If you don't want this behavior, put "),a("code",[t._v("updateDependencies: false")]),t._v(" in the config.")]),t._v(" "),a("h3",{attrs:{id:"shipjs-trigger"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#shipjs-trigger"}},[t._v("#")]),t._v(" "),a("strong",[a("code",[t._v("shipjs trigger")])])]),t._v(" "),a("ol",[a("li",[t._v("Ship.js will only publish the packages from "),a("code",[t._v("packagesToPublish")]),t._v(".")])]),t._v(" "),a("h2",{attrs:{id:"version"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#version"}},[t._v("#")]),t._v(" "),a("code",[t._v("version")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs prepare")])]),t._v(" "),a("p",[a("em",[t._v("default")]),t._v(": "),a("code",[t._v("undefined")])]),t._v(" "),a("p",[t._v("When provided, Ship.js skips all other validation and creation of changelog, and only runs "),a("code",[t._v("version")]),t._v(" instead. The steps you need to recreate in this hook are:")]),t._v(" "),a("ul",[a("li",[t._v("decide on the next version (for each package)")]),t._v(" "),a("li",[t._v('validate the conditions in "shouldPrepare"')]),t._v(" "),a("li",[t._v("update version numbers")]),t._v(" "),a("li",[t._v("updating or writing changelog")])]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("version")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" exec "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("exec")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'yarn lerna version --no-push --no-git-tag-version --yes --conventional-commits'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("h2",{attrs:{id:"shouldprepare"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#shouldprepare"}},[t._v("#")]),t._v(" "),a("code",[t._v("shouldPrepare")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs prepare")])]),t._v(" "),a("p",[a("em",[t._v("default")]),t._v(": "),a("code",[t._v("undefined")])]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// example")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("shouldPrepare")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n commits"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n nextVersion"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n releaseType"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n releaseTag"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n commitNumbersPerType"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* ... */")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("p",[t._v("This is a lifecycle hook where you can decide whether or not to proceed with the preparation.")]),t._v(" "),a("ul",[a("li",[t._v("commits: string of commit titles. Be aware that it's not an array of strings. It comes from "),a("code",[t._v("git log --pretty=format:%s")]),t._v(".")]),t._v(" "),a("li",[t._v("nextVersion: "),a("code",[t._v("x.y.z")])]),t._v(" "),a("li",[t._v("releaseType: "),a("code",[t._v("'major' | 'minor' | 'patch' | 'prerelease'")])]),t._v(" "),a("li",[t._v("releaseTag: "),a("code",[t._v("'latest' | 'alpha' | 'beta' | ...")])]),t._v(" "),a("li",[t._v("commitNumbersPerType: an object with keys of conventional commit type, and with values of number of commits of the type. "),a("code",[t._v("{ feat: 2, fix: 4, chore: 8 }")])])]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// example")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("shouldPrepare")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" releaseType"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" commitNumbersPerType "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" fix "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" commitNumbersPerType"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("releaseType "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("===")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'patch'")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("&&")]),t._v(" fix "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("===")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("p",[t._v("With the config above, you can skip if it's going to be a patch release but without any "),a("code",[t._v("fix")]),t._v(" commits.")]),t._v(" "),a("h2",{attrs:{id:"updatechangelog"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#updatechangelog"}},[t._v("#")]),t._v(" "),a("code",[t._v("updateChangelog")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs prepare")])]),t._v(" "),a("p",[a("em",[t._v("default:")]),t._v(" "),a("code",[t._v("true")])]),t._v(" "),a("p",[t._v("If "),a("code",[t._v("false")]),t._v(", Ship.js won't run "),a("code",[t._v("conventional-changelog")]),t._v(" during "),a("code",[t._v("shipjs prepare")]),t._v(".")]),t._v(" "),a("h2",{attrs:{id:"conventionalchangelogargs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#conventionalchangelogargs"}},[t._v("#")]),t._v(" "),a("code",[t._v("conventionalChangelogArgs")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs prepare")])]),t._v(" "),a("p",[a("em",[t._v("default:")]),t._v(" "),a("code",[t._v("'-p angular -i CHANGELOG.md -s'")])]),t._v(" "),a("p",[t._v("This is passed to "),a("code",[t._v("conventional-changelog")]),t._v(" CLI to update CHANGELOG.md.")]),t._v(" "),a("h2",{attrs:{id:"installcommand"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#installcommand"}},[t._v("#")]),t._v(" "),a("code",[t._v("installCommand")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs prepare")])]),t._v(" "),a("p",[a("em",[t._v("default:")])]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("installCommand")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" isYarn "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v("\n isYarn "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'yarn install --silent'")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'npm install'")]),t._v("`\n")])])]),a("h2",{attrs:{id:"getnextversion"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getnextversion"}},[t._v("#")]),t._v(" "),a("code",[t._v("getNextVersion")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs prepare")])]),t._v(" "),a("p",[a("em",[t._v("default:")]),t._v(" "),a("code",[t._v("undefined")])]),t._v(" "),a("p",[t._v("This hook determines what the next version should be. It returns the next version as string. If not given, by default, Ship.js follows "),a("a",{attrs:{href:"https://www.conventionalcommits.org",target:"_blank",rel:"noopener noreferrer"}},[t._v("conventional commits"),a("OutboundLink")],1),t._v(".")]),t._v(" "),a("ul",[a("li",[t._v("revisionRange: for example, "),a("code",[t._v("v0.1.0..HEAD")])]),t._v(" "),a("li",[t._v("commitTitles: string of commit titles. Be aware that it's not an array of strings. It comes from "),a("code",[t._v("git log --pretty=format:%s")]),t._v(".")]),t._v(" "),a("li",[t._v("commitBodies: string of commit bodies. Be aware that it's not an array of strings. It comes from "),a("code",[t._v("git log --pretty=format:%b")]),t._v(".")]),t._v(" "),a("li",[t._v("currentVersion: for example, "),a("code",[t._v("0.1.0")])]),t._v(" "),a("li",[t._v("dir: current working dir")])]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// example")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("getNextVersion")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" revisionRange"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" commitTitles"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" commitBodies"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" currentVersion"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" dir "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// do something")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" nextVersion"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v('// for example, `"0.2.0"`')]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("h2",{attrs:{id:"versionupdated"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#versionupdated"}},[t._v("#")]),t._v(" "),a("code",[t._v("versionUpdated")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs prepare")])]),t._v(" "),a("p",[a("em",[t._v("default:")]),t._v(" "),a("code",[t._v("undefined")])]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// example")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("versionUpdated")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" version"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" releaseType"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" dir"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" exec "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* ... */")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("p",[t._v("This is a lifecycle hook where you can put additional code after version is updated. You can read "),a("RouterLink",{attrs:{to:"/guide/useful-config.html#extra-work-on-updating-version"}},[t._v("an example here")]),t._v(".")],1),t._v(" "),a("ul",[a("li",[t._v("version: "),a("code",[t._v("x.y.z")])]),t._v(" "),a("li",[t._v("releaseType: "),a("code",[t._v("'major' | 'minor' | 'patch' | 'prerelease'")])]),t._v(" "),a("li",[t._v("dir: current working dir")]),t._v(" "),a("li",[t._v("exec: "),a("code",[t._v("shelljs.exec")]),t._v(" bound with the "),a("code",[t._v("dir")]),t._v(".\n"),a("ul",[a("li",[t._v("For example, "),a("code",[t._v("exec('yarn some-command')")])]),t._v(" "),a("li",[t._v("This is a synchronous function.")])])])]),t._v(" "),a("h2",{attrs:{id:"beforecommitchanges"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforecommitchanges"}},[t._v("#")]),t._v(" "),a("code",[t._v("beforeCommitChanges")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs prepare")])]),t._v(" "),a("p",[a("em",[t._v("default:")]),t._v(" "),a("code",[t._v("undefined")])]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// example")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("beforeCommitChanges")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" nextVersion"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" releaseType"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" exec"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" dir "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* ... */")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("p",[t._v("This is a lifecycle hook which is executed right before "),a("code",[t._v("git commit")]),t._v(" happens. You can put additional code like modifying some other files.")]),t._v(" "),a("h2",{attrs:{id:"draftpullrequest"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#draftpullrequest"}},[t._v("#")]),t._v(" "),a("code",[t._v("draftPullRequest")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs prepare")])]),t._v(" "),a("p",[a("em",[t._v("default:")]),t._v(" "),a("code",[t._v("false")])]),t._v(" "),a("p",[t._v("If "),a("code",[t._v("true")]),t._v(", Ship.js will create a draft pull request.")]),t._v(" "),a("h2",{attrs:{id:"pullrequestreviewers"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#pullrequestreviewers"}},[t._v("#")]),t._v(" "),a("code",[t._v("pullRequestReviewers")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs prepare")])]),t._v(" "),a("p",[a("em",[t._v("default:")]),t._v(" "),a("code",[t._v("undefined")])]),t._v(" "),a("p",[t._v("You can put an array of strings.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("pullRequestReviewers"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'user1'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'user2'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'user3'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("p",[t._v("One thing you need to be aware of is, you cannot assign yourself as a reviewer. You can put github username of your team or colleagues.")]),t._v(" "),a("h2",{attrs:{id:"pullrequestteamreviewers"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#pullrequestteamreviewers"}},[t._v("#")]),t._v(" "),a("code",[t._v("pullRequestTeamReviewers")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs prepare")])]),t._v(" "),a("p",[a("em",[t._v("default:")]),t._v(" "),a("code",[t._v("undefined")])]),t._v(" "),a("p",[t._v("You can put an array of strings.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("pullRequestTeamReviewers"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'team-username1'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"buildcommand"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#buildcommand"}},[t._v("#")]),t._v(" "),a("code",[t._v("buildCommand")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs trigger")])]),t._v(" "),a("p",[a("em",[t._v("default:")])]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("buildCommand")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" isYarn"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" version "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v("\n isYarn "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'yarn build'")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'npm run build'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("p",[t._v("If there's nothing to build before publishing, you can skip this step:")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("buildCommand")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"beforepublish"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforepublish"}},[t._v("#")]),t._v(" "),a("code",[t._v("beforePublish")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs trigger")])]),t._v(" "),a("p",[a("em",[t._v("default:")]),t._v(" "),a("code",[t._v("undefined")])]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// example")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("beforePublish")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" exec"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" dir "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* do something */")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"publishcommand"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#publishcommand"}},[t._v("#")]),t._v(" "),a("code",[t._v("publishCommand")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs trigger")])]),t._v(" "),a("p",[a("em",[t._v("default:")])]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("publishCommand")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" isYarn"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" tag"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" defaultCommand"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" dir "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" defaultCommand"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("p",[a("code",[t._v("defaultCommand")]),t._v(":")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("isYarn\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token template-string"}},[a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("npm_config_registry=https://registry.npmjs.org/ npm publish --tag ")]),a("span",{pre:!0,attrs:{class:"token interpolation"}},[a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("${")]),t._v("tag"),a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token template-string"}},[a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("npm publish --tag ")]),a("span",{pre:!0,attrs:{class:"token interpolation"}},[a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("${")]),t._v("tag"),a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("p",[t._v("By default, "),a("code",[t._v("publishCommand")]),t._v(" will return "),a("code",[t._v("npm publish ...")]),t._v(".")]),t._v(" "),a("h3",{attrs:{id:"scoped-package"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#scoped-package"}},[t._v("#")]),t._v(" Scoped Package")]),t._v(" "),a("p",[t._v("If your project is a scoped package and you want it to be public, you need to add "),a("code",[t._v("--access public")]),t._v(" to the publish command. To do so,")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("publishCommand")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" isYarn"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" tag"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" defaultCommand"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" dir "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token template-string"}},[a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")]),a("span",{pre:!0,attrs:{class:"token interpolation"}},[a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("${")]),t._v("defaultCommand"),a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v(" --access public")]),a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h3",{attrs:{id:"monorepo-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#monorepo-2"}},[t._v("#")]),t._v(" Monorepo")]),t._v(" "),a("p",[t._v("If your project is a monorepo and if you want to use different publish command per package,")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("publishCommand")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" isYarn"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" tag"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" defaultCommand"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" dir "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("dir"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("endsWith")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'/website'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'npx now'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("else")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" defaultCommand"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"afterpublish"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterpublish"}},[t._v("#")]),t._v(" "),a("code",[t._v("afterPublish")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs trigger")])]),t._v(" "),a("p",[a("em",[t._v("default:")]),t._v(" "),a("code",[t._v("undefined")])]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// example")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("afterPublish")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" exec"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" dir"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" version"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" releaseTag "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* do something */")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"testcommandbeforerelease"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#testcommandbeforerelease"}},[t._v("#")]),t._v(" "),a("code",[t._v("testCommandBeforeRelease")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs trigger")])]),t._v(" "),a("p",[a("em",[t._v("default:")]),t._v(" "),a("code",[t._v("undefined")])]),t._v(" "),a("p",[t._v("Ship.js runs this command at "),a("code",[t._v("shipjs trigger")]),t._v(" before publishing the package to make sure if it works correctly.")]),t._v(" "),a("p",[t._v("By default, it's undefined because you may already have a CI service running tests on your GitHub PR.")]),t._v(" "),a("p",[t._v("If you want to run something right before release, you can do so like the following:")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("testCommandBeforeRelease")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" isYarn "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v("\n isYarn "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'yarn test'")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'npm run test'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"releases"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#releases"}},[t._v("#")]),t._v(" "),a("code",[t._v("releases")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs trigger")])]),t._v(" "),a("p",[a("em",[t._v("default:")]),t._v(" "),a("code",[t._v("undefined")])]),t._v(" "),a("p",[t._v('By default, Ship.js will create a release on "releases" tab at GitHub.')]),t._v(" "),a("p",[t._v("By defining "),a("code",[t._v("releases")]),t._v(", you can optionally attach assets or customize content of release.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// example")]),t._v("\nreleases"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n assetsToUpload"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// optional")]),t._v("\n extractChangelog"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// optional")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("ul",[a("li",[a("code",[t._v("assetsToUpload")]),t._v(": String | String[] | Function\n"),a("ul",[a("li",[a("code",[t._v("archive.zip")])]),t._v(" "),a("li",[a("code",[t._v("archive.*.zip")])]),t._v(" "),a("li",[a("code",[t._v("['package.json', 'dist/*.zip']")])]),t._v(" "),a("li",[a("code",[t._v("({dir, version, tagName}) => [...]")])])])]),t._v(" "),a("li",[a("code",[t._v("extractChangelog")]),t._v(": "),a("code",[t._v("({ version, dir }) => 'some specific changelog to that version'")])])]),t._v(" "),a("h2",{attrs:{id:"appname"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#appname"}},[t._v("#")]),t._v(" "),a("code",[t._v("appName")])]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs trigger")])]),t._v(" "),a("p",[a("em",[t._v("default:")]),t._v(" "),a("code",[t._v("undefined")])]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// example")]),t._v("\nappName"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'My Awesome Package'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("p",[t._v("This is used when Ship.js sends message to your Slack channel. If it's "),a("code",[t._v("undefined")]),t._v(", Ship.js will take "),a("code",[t._v("name")]),t._v(" from your "),a("code",[t._v("package.json")]),t._v(" by default.")]),t._v(" "),a("h2",{attrs:{id:"messaging-to-slack"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#messaging-to-slack"}},[t._v("#")]),t._v(" Messaging to Slack")]),t._v(" "),a("p",[a("em",[t._v("used at")]),t._v(": "),a("code",[t._v("shipjs trigger")])]),t._v(" "),a("p",[t._v("If you configure an environment variable "),a("code",[t._v("SLACK_INCOMING_HOOK")]),t._v(", Ship.js will send messages")]),t._v(" "),a("ul",[a("li",[t._v("when "),a("code",[t._v("shipjs prepare")]),t._v(" is finished ("),a("code",[t._v("prepare")]),t._v(")")]),t._v(" "),a("li",[t._v("when "),a("code",[t._v("shipjs trigger")]),t._v(" is finished ("),a("code",[t._v("releaseSuccess")]),t._v(")")])]),t._v(" "),a("p",[t._v("You can specify sender's username:")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("slack"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("default")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n username"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'My Release Bot'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("p",[t._v("As described above, there are three phases of Slack messages: "),a("code",[t._v("prepare")]),t._v(" and "),a("code",[t._v("releaseSuccess")]),t._v(".")]),t._v(" "),a("p",[t._v("You can customize the messages. The following is the default value. You can read "),a("a",{attrs:{href:"https://api.slack.com/docs/messages/builder",target:"_blank",rel:"noopener noreferrer"}},[t._v("this documentation from Slack"),a("OutboundLink")],1),t._v(" to learn how to format messages.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("slack"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("prepared")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" appName"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" version"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" pullRequestUrl "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n pretext"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token template-string"}},[a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v(":writing_hand: The release for *")]),a("span",{pre:!0,attrs:{class:"token interpolation"}},[a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("${")]),t._v("appName"),a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("@")]),a("span",{pre:!0,attrs:{class:"token interpolation"}},[a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("${")]),t._v("version"),a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("* is prepared!")]),a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n fields"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n title"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Branch'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'master'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n short"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n title"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Version'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" version"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n short"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n title"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Pull Request'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" pullRequestUrl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n short"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("releaseSuccess")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n appName"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n version"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n latestCommitHash"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n latestCommitUrl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n repoURL"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n pretext"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token template-string"}},[a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v(":tada: Successfully released *")]),a("span",{pre:!0,attrs:{class:"token interpolation"}},[a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("${")]),t._v("appName"),a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("@")]),a("span",{pre:!0,attrs:{class:"token interpolation"}},[a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("${")]),t._v("version"),a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("*")]),a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n fields"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n title"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Branch'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'master'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n short"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n title"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Commit'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token template-string"}},[a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("*<")]),a("span",{pre:!0,attrs:{class:"token interpolation"}},[a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("${")]),t._v("latestCommitUrl"),a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("|")]),a("span",{pre:!0,attrs:{class:"token interpolation"}},[a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("${")]),t._v("latestCommitHash"),a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v(">*")]),a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n short"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n title"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Version'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" version"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n short"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n title"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'CHANGELOG'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token template-string"}},[a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")]),a("span",{pre:!0,attrs:{class:"token interpolation"}},[a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("${")]),t._v("repoURL"),a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("/blob/master/CHANGELOG.md")]),a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("p",[t._v("If you don't want, you can skip some of the messages:")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("slack"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n prepared"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("p",[t._v("In this way, Ship.js won't send a message when a pull request is prepared.")]),t._v(" "),a("p",[t._v("When Ship.js loads your "),a("code",[t._v("ship.config.js")]),t._v(", it deep-merges "),a("code",[t._v("slack")]),t._v(" object.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("defaultConfig "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n slack"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("default")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n username"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Ship.js'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("prepared")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* ... */")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("releaseSuccess")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* ... */")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\nyourConfig "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n slack"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n prepared"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\nfinalConfig "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n slack"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("default")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n username"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Ship.js'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n prepared"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// <- only this is affected")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("releaseSuccess")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* ... */")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/13.f1242808.js b/assets/js/13.dfbdba99.js similarity index 95% rename from assets/js/13.f1242808.js rename to assets/js/13.dfbdba99.js index 9ad6462c..8ea1eaec 100644 --- a/assets/js/13.f1242808.js +++ b/assets/js/13.dfbdba99.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{368:function(e,t,r){"use strict";r.r(t);var s=r(41),a=Object(s.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"commands"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#commands"}},[e._v("#")]),e._v(" Commands")]),e._v(" "),r("h2",{attrs:{id:"setup"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#setup"}},[e._v("#")]),e._v(" "),r("code",[e._v("setup")])]),e._v(" "),r("div",{staticClass:"language- extra-class"},[r("pre",{pre:!0,attrs:{class:"language-text"}},[r("code",[e._v("$ shipjs setup --help\nNAME\n shipjs setup - Setup Ship.js in your project.\n\nUSAGE\n npx shipjs setup [--help] [--dir PATH] [--dry-run]\n\nOPTIONS\n -h, --help\n Print this help\n\n -d, --dir PATH\n Specify the PATH of the repository (default: the current directory).\n\n -D, --dry-run\n Displays the steps without actually doing them.\n")])])]),r("h2",{attrs:{id:"prepare"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#prepare"}},[e._v("#")]),e._v(" "),r("code",[e._v("prepare")])]),e._v(" "),r("div",{staticClass:"language- extra-class"},[r("pre",{pre:!0,attrs:{class:"language-text"}},[r("code",[e._v("$ shipjs prepare --help\nNAME\n shipjs prepare - Prepare a release.\n\nUSAGE\n shipjs prepare [--help] [--dir PATH] [--yes] [--dry-run]\n\nOPTIONS\n -h, --help\n Print this help\n\n -d, --dir PATH\n Specify the PATH of the repository (default: the current directory).\n\n -y, --yes\n Skip all the interactive prompts and use the default values.\n\n -D, --dry-run\n Displays the steps without actually doing them.\n")])])]),r("h2",{attrs:{id:"trigger"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#trigger"}},[e._v("#")]),e._v(" "),r("code",[e._v("trigger")])]),e._v(" "),r("div",{staticClass:"language- extra-class"},[r("pre",{pre:!0,attrs:{class:"language-text"}},[r("code",[e._v("$ shipjs trigger --help\nNAME\n shipjs trigger - Trigger a release.\n\nUSAGE\n shipjs prepare [--help] [--dir PATH] [--dry-run]\n\nOPTIONS\n -h, --help\n Print this help\n\n -d, --dir PATH\n Specify the PATH of the repository (default: the current directory).\n\n -D, --dry-run\n Displays the steps without actually doing them.\n")])])])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{369:function(e,t,r){"use strict";r.r(t);var s=r(41),a=Object(s.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"commands"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#commands"}},[e._v("#")]),e._v(" Commands")]),e._v(" "),r("h2",{attrs:{id:"setup"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#setup"}},[e._v("#")]),e._v(" "),r("code",[e._v("setup")])]),e._v(" "),r("div",{staticClass:"language- extra-class"},[r("pre",{pre:!0,attrs:{class:"language-text"}},[r("code",[e._v("$ shipjs setup --help\nNAME\n shipjs setup - Setup Ship.js in your project.\n\nUSAGE\n npx shipjs setup [--help] [--dir PATH] [--dry-run]\n\nOPTIONS\n -h, --help\n Print this help\n\n -d, --dir PATH\n Specify the PATH of the repository (default: the current directory).\n\n -D, --dry-run\n Displays the steps without actually doing them.\n")])])]),r("h2",{attrs:{id:"prepare"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#prepare"}},[e._v("#")]),e._v(" "),r("code",[e._v("prepare")])]),e._v(" "),r("div",{staticClass:"language- extra-class"},[r("pre",{pre:!0,attrs:{class:"language-text"}},[r("code",[e._v("$ shipjs prepare --help\nNAME\n shipjs prepare - Prepare a release.\n\nUSAGE\n shipjs prepare [--help] [--dir PATH] [--yes] [--dry-run]\n\nOPTIONS\n -h, --help\n Print this help\n\n -d, --dir PATH\n Specify the PATH of the repository (default: the current directory).\n\n -y, --yes\n Skip all the interactive prompts and use the default values.\n\n -D, --dry-run\n Displays the steps without actually doing them.\n")])])]),r("h2",{attrs:{id:"trigger"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#trigger"}},[e._v("#")]),e._v(" "),r("code",[e._v("trigger")])]),e._v(" "),r("div",{staticClass:"language- extra-class"},[r("pre",{pre:!0,attrs:{class:"language-text"}},[r("code",[e._v("$ shipjs trigger --help\nNAME\n shipjs trigger - Trigger a release.\n\nUSAGE\n shipjs prepare [--help] [--dir PATH] [--dry-run]\n\nOPTIONS\n -h, --help\n Print this help\n\n -d, --dir PATH\n Specify the PATH of the repository (default: the current directory).\n\n -D, --dry-run\n Displays the steps without actually doing them.\n")])])])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/14.f956f708.js b/assets/js/14.175211bb.js similarity index 93% rename from assets/js/14.f956f708.js rename to assets/js/14.175211bb.js index ff99535a..a3895b03 100644 --- a/assets/js/14.f956f708.js +++ b/assets/js/14.175211bb.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{369:function(e,r,t){"use strict";t.r(r);var n=t(41),a=Object(n.a)({},(function(){var e=this,r=e.$createElement,t=e._self._c||r;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"resources"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#resources"}},[e._v("#")]),e._v(" Resources")]),e._v(" "),t("h2",{attrs:{id:"blogs"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#blogs"}},[e._v("#")]),e._v(" Blogs")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://qiita.com/kazupon/items/0038529541c1e59e9124",target:"_blank",rel:"noopener noreferrer"}},[e._v("Ship.jsでγƒͺγƒͺースフローを改善する"),t("OutboundLink")],1),e._v(" by "),t("a",{attrs:{href:"https://twitter.com/kazu_pon",target:"_blank",rel:"noopener noreferrer"}},[e._v("kazupon"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://eunjae.dev/release-open-source-library-2020",target:"_blank",rel:"noopener noreferrer"}},[e._v("How to Release Open Source Library in 2020"),t("OutboundLink")],1),e._v(" by "),t("a",{attrs:{href:"https://twitter.com/eunjae_lee",target:"_blank",rel:"noopener noreferrer"}},[e._v("Eunjae Lee"),t("OutboundLink")],1)])])])}),[],!1,null,null,null);r.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{370:function(e,r,t){"use strict";t.r(r);var n=t(41),a=Object(n.a)({},(function(){var e=this,r=e.$createElement,t=e._self._c||r;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"resources"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#resources"}},[e._v("#")]),e._v(" Resources")]),e._v(" "),t("h2",{attrs:{id:"blogs"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#blogs"}},[e._v("#")]),e._v(" Blogs")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://qiita.com/kazupon/items/0038529541c1e59e9124",target:"_blank",rel:"noopener noreferrer"}},[e._v("Ship.jsでγƒͺγƒͺースフローを改善する"),t("OutboundLink")],1),e._v(" by "),t("a",{attrs:{href:"https://twitter.com/kazu_pon",target:"_blank",rel:"noopener noreferrer"}},[e._v("kazupon"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://eunjae.dev/release-open-source-library-2020",target:"_blank",rel:"noopener noreferrer"}},[e._v("How to Release Open Source Library in 2020"),t("OutboundLink")],1),e._v(" by "),t("a",{attrs:{href:"https://twitter.com/eunjae_lee",target:"_blank",rel:"noopener noreferrer"}},[e._v("Eunjae Lee"),t("OutboundLink")],1)])])])}),[],!1,null,null,null);r.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/4.e34d428e.js b/assets/js/4.6c656b1d.js similarity index 96% rename from assets/js/4.e34d428e.js rename to assets/js/4.6c656b1d.js index 67dfaff6..0bbb3e71 100644 --- a/assets/js/4.e34d428e.js +++ b/assets/js/4.6c656b1d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{315:function(e,t,r){},355:function(e,t,r){e.exports=r.p+"assets/img/preview.5ae0edf3.gif"},356:function(e,t,r){"use strict";var a=r(315);r.n(a).a},366:function(e,t,r){"use strict";r.r(t);r(356);var a=r(41),i=Object(a.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"introduction"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#introduction"}},[e._v("#")]),e._v(" Introduction")]),e._v(" "),a("h2",{attrs:{id:"why-πŸ€·πŸ»β€"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#why-πŸ€·πŸ»β€"}},[e._v("#")]),e._v(" Why πŸ€·πŸ»β€")]),e._v(" "),a("p",[e._v("Coding is fun, debugging and testing are okay, but releasing is NOT.")]),e._v(" "),a("p",[e._v("When releasing, you go through something like the following:")]),e._v(" "),a("ul",[a("li",[e._v("Update the version in "),a("code",[e._v("package.json")])]),e._v(" "),a("li",[e._v("Update the changelog")]),e._v(" "),a("li",[e._v("Actually release it (e.g. "),a("code",[e._v("npm run build && npm publish")]),e._v(")")]),e._v(" "),a("li",[e._v("Create a git tag")]),e._v(" "),a("li",[e._v("Create a release on GitHub")])]),e._v(" "),a("h3",{attrs:{id:"what-could-go-wrong"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#what-could-go-wrong"}},[e._v("#")]),e._v(" What could go wrong?")]),e._v(" "),a("ul",[a("li",[e._v("You might make mistakes during the release.\n"),a("ul",[a("li",[e._v("Environments are different across your team members.")]),e._v(" "),a("li",[e._v("You're releasing alone because the whole process happens on your local machine.")]),e._v(" "),a("li",[e._v("It's not your everyday-job. Mistakes can happen.")])])]),e._v(" "),a("li",[e._v("You are blocked and cannot do anything else until it's done.\n"),a("ul",[a("li",[e._v("Even if you have a release script, you need to watch until the script finishes well.")]),e._v(" "),a("li",[e._v("You don't want to switch to another feature branch and work there until the script finishes.")])])])]),e._v(" "),a("h2",{attrs:{id:"how-to-solve-them❓"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-to-solve-them❓"}},[e._v("#")]),e._v(" How to solve them❓")]),e._v(" "),a("p",[e._v("In Ship.js, the release process consists of three parts.")]),e._v(" "),a("h3",{attrs:{id:"part-1-preparation-shipjs-prepare"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#part-1-preparation-shipjs-prepare"}},[e._v("#")]),e._v(" Part 1. Preparation ("),a("code",[e._v("shipjs prepare")]),e._v(")")]),e._v(" "),a("p",[a("img",{attrs:{src:r(355),alt:"Preview"}})]),e._v(" "),a("p",[e._v("Run "),a("code",[e._v("shipjs prepare")]),e._v(" and it will briefly do the following:")]),e._v(" "),a("ul",[a("li",[e._v("Figure out next version.")]),e._v(" "),a("li",[e._v("Update the version and changelog.")]),e._v(" "),a("li",[e._v("Create a pull request.")])]),e._v(" "),a("p",[e._v("It takes less than a couple of minutes.")]),e._v(" "),a("h3",{attrs:{id:"part-2-review"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#part-2-review"}},[e._v("#")]),e._v(" Part 2. Review")]),e._v(" "),a("ul",[a("li",[e._v("Review the PR by yourself, or with your colleagues.")]),e._v(" "),a("li",[e._v("Add more commits to the PR if you want.")]),e._v(" "),a("li",[e._v("You can hold the release, build from the staging branch and test it manually.")]),e._v(" "),a("li",[e._v("If you want to cancel the release, just close the PR and delete the staging branch.")])]),e._v(" "),a("p",[e._v("When you think it's ready to release, merge the PR.")]),e._v(" "),a("h3",{attrs:{id:"part-3-trigger-a-release-shipjs-trigger"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#part-3-trigger-a-release-shipjs-trigger"}},[e._v("#")]),e._v(" Part 3. Trigger a release ("),a("code",[e._v("shipjs trigger")]),e._v(")")]),e._v(" "),a("p",[e._v("Run "),a("code",[e._v("shipjs trigger")]),e._v(" and it will briefly do the following:")]),e._v(" "),a("ul",[a("li",[e._v("Run a final test (unit, e2e, etc).")]),e._v(" "),a("li",[e._v("Release it to NPM (or elsewhere as you configure it).")]),e._v(" "),a("li",[e._v("Create a git tag for the version.")]),e._v(" "),a("li",[e._v("Create a release for the tag on GitHub.")])]),e._v(" "),a("p",[e._v("You can manually run "),a("code",[e._v("shipjs trigger")]),e._v(" on the base branch after the PR is merged.")]),e._v(" "),a("p",[e._v("However you can also configure your CI service(e.g. CircleCI) to do this for you. It means the longest process is on the CI service asynchronously, not occupying your working environment.")]),e._v(" "),a("p",{staticClass:"action"},[a("a",{staticClass:"nav-link action-button",attrs:{href:"./getting-started.html"}},[e._v("Get Started β†’")])]),e._v(" "),a("h2",{attrs:{id:"or-a-little-deeper-look-⁉️"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#or-a-little-deeper-look-⁉️"}},[e._v("#")]),e._v(" Or, a little deeper look ⁉️")]),e._v(" "),a("p",[e._v("Let's assume the following situation:")]),e._v(" "),a("ul",[a("li",[e._v("Current branch: "),a("code",[e._v("master")])]),e._v(" "),a("li",[e._v("Currently released version: "),a("code",[e._v("1.0.0")])]),e._v(" "),a("li",[e._v("Next version: "),a("code",[e._v("1.0.1")]),e._v(" (because there are only commits like "),a("code",[e._v("chore:")]),e._v(", "),a("code",[e._v("fix:")]),e._v(", ...)")])]),e._v(" "),a("h3",{attrs:{id:"part-1-preparation-shipjs-prepare-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#part-1-preparation-shipjs-prepare-2"}},[e._v("#")]),e._v(" Part 1. Preparation ("),a("code",[e._v("shipjs prepare")]),e._v(")")]),e._v(" "),a("p",[e._v("On your terminal, run "),a("code",[e._v("shipjs prepare")]),e._v(" and it will briefly do the following:")]),e._v(" "),a("ul",[a("li",[a("code",[e._v("git checkout -b releases/v1.0.1")])]),e._v(" "),a("li",[e._v("Update the version in "),a("code",[e._v("package.json")]),e._v(".")]),e._v(" "),a("li",[e._v("Update the changelog.")]),e._v(" "),a("li",[a("code",[e._v('git commit -m "chore: release v1.0.1')])]),e._v(" "),a("li",[e._v("Create a PR from "),a("code",[e._v("releases/v1.0.1")]),e._v(" to "),a("code",[e._v("master")]),e._v(".")])]),e._v(" "),a("p",[e._v("You can run "),a("code",[e._v("shipjs prepare --dry-run")]),e._v(" just to see what will be executed without actual execution.")]),e._v(" "),a("h3",{attrs:{id:"part-2-review-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#part-2-review-2"}},[e._v("#")]),e._v(" Part 2. Review")]),e._v(" "),a("p",[e._v("You will review and merge this PR.")]),e._v(" "),a("p",[e._v("You can add more commits to this PR if needed.")]),e._v(" "),a("p",[e._v("Merge the PR into a single commit by "),a("code",[e._v("Squash and merge")]),e._v(".")]),e._v(" "),a("p",[e._v("You can read "),a("a",{attrs:{href:"https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-request-merges#squash-and-merge-your-pull-request-commits",target:"_blank",rel:"noopener noreferrer"}},[e._v("this"),a("OutboundLink")],1),e._v(" to learn more.")]),e._v(" "),a("h3",{attrs:{id:"part-3-trigger-a-release-shipjs-trigger-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#part-3-trigger-a-release-shipjs-trigger-2"}},[e._v("#")]),e._v(" Part 3. Trigger a release ("),a("code",[e._v("shipjs trigger")]),e._v(")")]),e._v(" "),a("p",[e._v("On your terminal, "),a("code",[e._v("git pull")]),e._v(" on "),a("code",[e._v("master")]),e._v(" branch. And run "),a("code",[e._v("shipjs trigger")]),e._v(". It will check the following conditions whether it should proceed releasing or not.")]),e._v(" "),a("ul",[a("li",[e._v("if it's "),a("code",[e._v("master")]),e._v(" branch now")]),e._v(" "),a("li",[e._v("if the latest commit message is like "),a("code",[e._v("chore: releases v1.0.1 (#xx)")])])]),e._v(" "),a("p",[e._v("If the conditions are met, "),a("code",[e._v("shipjs trigger")]),e._v(" will briefly do the following:")]),e._v(" "),a("ul",[a("li",[e._v("Send a Slack message to notify the beginning of the release(If configured).")]),e._v(" "),a("li",[e._v("Run test, build and release it.")]),e._v(" "),a("li",[a("code",[e._v("git tag v1.0.1")]),e._v(".")]),e._v(" "),a("li",[e._v("Push them to git remote.")]),e._v(" "),a("li",[a("code",[e._v("hub release create -m v1.0.1")])]),e._v(" "),a("li",[e._v("Notify at Slack.")])]),e._v(" "),a("p",[e._v("You can run "),a("code",[e._v("shipjs trigger --dry-run")]),e._v(" just to see what will be executed without actual execution.")]),e._v(" "),a("p",[e._v("And you can configure your CI service to run the Part 3 on behalf of you. What you need to do is just to make it run "),a("code",[e._v("shipjs trigger")]),e._v(" every time there is a new commit. It's okay to do so because "),a("code",[e._v("shipjs trigger")]),e._v(" triggers release only when the conditions are met. If not, it skips.")]),e._v(" "),a("p",{staticClass:"action"},[a("a",{staticClass:"nav-link action-button",attrs:{href:"./getting-started.html"}},[e._v("Get Started β†’")])])])}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{315:function(e,t,r){},353:function(e,t,r){e.exports=r.p+"assets/img/preview.5ae0edf3.gif"},354:function(e,t,r){"use strict";var a=r(315);r.n(a).a},364:function(e,t,r){"use strict";r.r(t);r(354);var a=r(41),i=Object(a.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"introduction"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#introduction"}},[e._v("#")]),e._v(" Introduction")]),e._v(" "),a("h2",{attrs:{id:"why-πŸ€·πŸ»β€"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#why-πŸ€·πŸ»β€"}},[e._v("#")]),e._v(" Why πŸ€·πŸ»β€")]),e._v(" "),a("p",[e._v("Coding is fun, debugging and testing are okay, but releasing is NOT.")]),e._v(" "),a("p",[e._v("When releasing, you go through something like the following:")]),e._v(" "),a("ul",[a("li",[e._v("Update the version in "),a("code",[e._v("package.json")])]),e._v(" "),a("li",[e._v("Update the changelog")]),e._v(" "),a("li",[e._v("Actually release it (e.g. "),a("code",[e._v("npm run build && npm publish")]),e._v(")")]),e._v(" "),a("li",[e._v("Create a git tag")]),e._v(" "),a("li",[e._v("Create a release on GitHub")])]),e._v(" "),a("h3",{attrs:{id:"what-could-go-wrong"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#what-could-go-wrong"}},[e._v("#")]),e._v(" What could go wrong?")]),e._v(" "),a("ul",[a("li",[e._v("You might make mistakes during the release.\n"),a("ul",[a("li",[e._v("Environments are different across your team members.")]),e._v(" "),a("li",[e._v("You're releasing alone because the whole process happens on your local machine.")]),e._v(" "),a("li",[e._v("It's not your everyday-job. Mistakes can happen.")])])]),e._v(" "),a("li",[e._v("You are blocked and cannot do anything else until it's done.\n"),a("ul",[a("li",[e._v("Even if you have a release script, you need to watch until the script finishes well.")]),e._v(" "),a("li",[e._v("You don't want to switch to another feature branch and work there until the script finishes.")])])])]),e._v(" "),a("h2",{attrs:{id:"how-to-solve-them❓"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-to-solve-them❓"}},[e._v("#")]),e._v(" How to solve them❓")]),e._v(" "),a("p",[e._v("In Ship.js, the release process consists of three parts.")]),e._v(" "),a("h3",{attrs:{id:"part-1-preparation-shipjs-prepare"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#part-1-preparation-shipjs-prepare"}},[e._v("#")]),e._v(" Part 1. Preparation ("),a("code",[e._v("shipjs prepare")]),e._v(")")]),e._v(" "),a("p",[a("img",{attrs:{src:r(353),alt:"Preview"}})]),e._v(" "),a("p",[e._v("Run "),a("code",[e._v("shipjs prepare")]),e._v(" and it will briefly do the following:")]),e._v(" "),a("ul",[a("li",[e._v("Figure out next version.")]),e._v(" "),a("li",[e._v("Update the version and changelog.")]),e._v(" "),a("li",[e._v("Create a pull request.")])]),e._v(" "),a("p",[e._v("It takes less than a couple of minutes.")]),e._v(" "),a("h3",{attrs:{id:"part-2-review"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#part-2-review"}},[e._v("#")]),e._v(" Part 2. Review")]),e._v(" "),a("ul",[a("li",[e._v("Review the PR by yourself, or with your colleagues.")]),e._v(" "),a("li",[e._v("Add more commits to the PR if you want.")]),e._v(" "),a("li",[e._v("You can hold the release, build from the staging branch and test it manually.")]),e._v(" "),a("li",[e._v("If you want to cancel the release, just close the PR and delete the staging branch.")])]),e._v(" "),a("p",[e._v("When you think it's ready to release, merge the PR.")]),e._v(" "),a("h3",{attrs:{id:"part-3-trigger-a-release-shipjs-trigger"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#part-3-trigger-a-release-shipjs-trigger"}},[e._v("#")]),e._v(" Part 3. Trigger a release ("),a("code",[e._v("shipjs trigger")]),e._v(")")]),e._v(" "),a("p",[e._v("Run "),a("code",[e._v("shipjs trigger")]),e._v(" and it will briefly do the following:")]),e._v(" "),a("ul",[a("li",[e._v("Run a final test (unit, e2e, etc).")]),e._v(" "),a("li",[e._v("Release it to NPM (or elsewhere as you configure it).")]),e._v(" "),a("li",[e._v("Create a git tag for the version.")]),e._v(" "),a("li",[e._v("Create a release for the tag on GitHub.")])]),e._v(" "),a("p",[e._v("You can manually run "),a("code",[e._v("shipjs trigger")]),e._v(" on the base branch after the PR is merged.")]),e._v(" "),a("p",[e._v("However you can also configure your CI service(e.g. CircleCI) to do this for you. It means the longest process is on the CI service asynchronously, not occupying your working environment.")]),e._v(" "),a("p",{staticClass:"action"},[a("a",{staticClass:"nav-link action-button",attrs:{href:"./getting-started.html"}},[e._v("Get Started β†’")])]),e._v(" "),a("h2",{attrs:{id:"or-a-little-deeper-look-⁉️"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#or-a-little-deeper-look-⁉️"}},[e._v("#")]),e._v(" Or, a little deeper look ⁉️")]),e._v(" "),a("p",[e._v("Let's assume the following situation:")]),e._v(" "),a("ul",[a("li",[e._v("Current branch: "),a("code",[e._v("master")])]),e._v(" "),a("li",[e._v("Currently released version: "),a("code",[e._v("1.0.0")])]),e._v(" "),a("li",[e._v("Next version: "),a("code",[e._v("1.0.1")]),e._v(" (because there are only commits like "),a("code",[e._v("chore:")]),e._v(", "),a("code",[e._v("fix:")]),e._v(", ...)")])]),e._v(" "),a("h3",{attrs:{id:"part-1-preparation-shipjs-prepare-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#part-1-preparation-shipjs-prepare-2"}},[e._v("#")]),e._v(" Part 1. Preparation ("),a("code",[e._v("shipjs prepare")]),e._v(")")]),e._v(" "),a("p",[e._v("On your terminal, run "),a("code",[e._v("shipjs prepare")]),e._v(" and it will briefly do the following:")]),e._v(" "),a("ul",[a("li",[a("code",[e._v("git checkout -b releases/v1.0.1")])]),e._v(" "),a("li",[e._v("Update the version in "),a("code",[e._v("package.json")]),e._v(".")]),e._v(" "),a("li",[e._v("Update the changelog.")]),e._v(" "),a("li",[a("code",[e._v('git commit -m "chore: release v1.0.1')])]),e._v(" "),a("li",[e._v("Create a PR from "),a("code",[e._v("releases/v1.0.1")]),e._v(" to "),a("code",[e._v("master")]),e._v(".")])]),e._v(" "),a("p",[e._v("You can run "),a("code",[e._v("shipjs prepare --dry-run")]),e._v(" just to see what will be executed without actual execution.")]),e._v(" "),a("h3",{attrs:{id:"part-2-review-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#part-2-review-2"}},[e._v("#")]),e._v(" Part 2. Review")]),e._v(" "),a("p",[e._v("You will review and merge this PR.")]),e._v(" "),a("p",[e._v("You can add more commits to this PR if needed.")]),e._v(" "),a("p",[e._v("Merge the PR into a single commit by "),a("code",[e._v("Squash and merge")]),e._v(".")]),e._v(" "),a("p",[e._v("You can read "),a("a",{attrs:{href:"https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-request-merges#squash-and-merge-your-pull-request-commits",target:"_blank",rel:"noopener noreferrer"}},[e._v("this"),a("OutboundLink")],1),e._v(" to learn more.")]),e._v(" "),a("h3",{attrs:{id:"part-3-trigger-a-release-shipjs-trigger-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#part-3-trigger-a-release-shipjs-trigger-2"}},[e._v("#")]),e._v(" Part 3. Trigger a release ("),a("code",[e._v("shipjs trigger")]),e._v(")")]),e._v(" "),a("p",[e._v("On your terminal, "),a("code",[e._v("git pull")]),e._v(" on "),a("code",[e._v("master")]),e._v(" branch. And run "),a("code",[e._v("shipjs trigger")]),e._v(". It will check the following conditions whether it should proceed releasing or not.")]),e._v(" "),a("ul",[a("li",[e._v("if it's "),a("code",[e._v("master")]),e._v(" branch now")]),e._v(" "),a("li",[e._v("if the latest commit message is like "),a("code",[e._v("chore: releases v1.0.1 (#xx)")])])]),e._v(" "),a("p",[e._v("If the conditions are met, "),a("code",[e._v("shipjs trigger")]),e._v(" will briefly do the following:")]),e._v(" "),a("ul",[a("li",[e._v("Send a Slack message to notify the beginning of the release(If configured).")]),e._v(" "),a("li",[e._v("Run test, build and release it.")]),e._v(" "),a("li",[a("code",[e._v("git tag v1.0.1")]),e._v(".")]),e._v(" "),a("li",[e._v("Push them to git remote.")]),e._v(" "),a("li",[a("code",[e._v("hub release create -m v1.0.1")])]),e._v(" "),a("li",[e._v("Notify at Slack.")])]),e._v(" "),a("p",[e._v("You can run "),a("code",[e._v("shipjs trigger --dry-run")]),e._v(" just to see what will be executed without actual execution.")]),e._v(" "),a("p",[e._v("And you can configure your CI service to run the Part 3 on behalf of you. What you need to do is just to make it run "),a("code",[e._v("shipjs trigger")]),e._v(" every time there is a new commit. It's okay to do so because "),a("code",[e._v("shipjs trigger")]),e._v(" triggers release only when the conditions are met. If not, it skips.")]),e._v(" "),a("p",{staticClass:"action"},[a("a",{staticClass:"nav-link action-button",attrs:{href:"./getting-started.html"}},[e._v("Get Started β†’")])])])}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/6.5a7af512.js b/assets/js/6.5a377bae.js similarity index 97% rename from assets/js/6.5a7af512.js rename to assets/js/6.5a377bae.js index 3062eb8f..7c9104b4 100644 --- a/assets/js/6.5a7af512.js +++ b/assets/js/6.5a377bae.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{353:function(t,e,a){t.exports=a.p+"assets/img/setup.9490a016.png"},354:function(t,e,a){t.exports=a.p+"assets/img/automation-token.097bbd88.png"},365:function(t,e,a){"use strict";a.r(e);var s=a(41),n=Object(s.a)({},(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"getting-started"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getting-started"}},[t._v("#")]),t._v(" Getting Started")]),t._v(" "),s("p",[t._v("You can following the guide below, or watch this video.")]),t._v(" "),s("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/FPj7urChN_E",frameborder:"0",allow:"autoplay; encrypted-media",allowfullscreen:""}}),t._v(" "),s("h2",{attrs:{id:"installation"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#installation"}},[t._v("#")]),t._v(" Installation")]),t._v(" "),s("p",[t._v("Running the following command will guide you to set it up interactively.")]),t._v(" "),s("div",{staticClass:"language-bash extra-class"},[s("pre",{pre:!0,attrs:{class:"language-bash"}},[s("code",[t._v("npx shipjs setup\n")])])]),s("p",[t._v("This interactive CLI will help you install Ship.js into your package and create a tailored config file for your project.")]),t._v(" "),s("p",[s("img",{attrs:{src:a(353),alt:"npx shipjs setup"}})]),t._v(" "),s("p",[t._v("Otherwise, you can still do it manually.")]),t._v(" "),s("div",{staticClass:"language-bash extra-class"},[s("pre",{pre:!0,attrs:{class:"language-bash"}},[s("code",[s("span",{pre:!0,attrs:{class:"token function"}},[t._v("npm")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("install")]),t._v(" --save-dev shipjs\n\nor\n\n"),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("yarn")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("add")]),t._v(" -D shipjs\n")])])]),s("p",[t._v("Add the following to the "),s("code",[t._v("scripts")]),t._v(" section in your "),s("code",[t._v("package.json")]),t._v(".")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[t._v('"scripts'),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//...")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"release"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"shipjs prepare"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"github-token"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#github-token"}},[t._v("#")]),t._v(" GitHub Token")]),t._v(" "),s("div",{staticClass:"custom-block warning"},[s("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),s("p",[t._v("If you use Ship.js at work, I recommend you to get a token from a shared account, not from your personal account because after you quit, your token will still be used.")])]),t._v(" "),s("p",[t._v("GitHub token is used in both "),s("code",[t._v("shipjs prepare")]),t._v(" and "),s("code",[t._v("shipjs trigger")]),t._v(".")]),t._v(" "),s("ol",[s("li",[t._v("Go to "),s("a",{attrs:{href:"https://github.com/settings/tokens/new",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/settings/tokens/new"),s("OutboundLink")],1)]),t._v(" "),s("li",[t._v('Check "repo(Full control of private repositories)"')]),t._v(" "),s("li",[t._v("Generate/copy the token")])]),t._v(" "),s("p",[t._v("You can put it in the following two ways:")]),t._v(" "),s("ul",[s("li",[t._v("Prepend it in your command like: "),s("code",[t._v("GITHUB_TOKEN=xxx shipjs prepare")])]),t._v(" "),s("li",[t._v('Create a file named ".env" and put the following content: '),s("code",[t._v("GITHUB_TOKEN=xxx")]),t._v(' (".env" should not be committed. Add it to ".gitignore".)')])]),t._v(" "),s("p",[t._v("If you automate flows in your CI, you can add the token to Environment Variable section in your CI service.")]),t._v(" "),s("h3",{attrs:{id:"dry-mode"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#dry-mode"}},[t._v("#")]),t._v(" Dry Mode")]),t._v(" "),s("p",[t._v("If you're not sure, you can always run commands in dry mode.")]),t._v(" "),s("div",{staticClass:"language-bash extra-class"},[s("pre",{pre:!0,attrs:{class:"language-bash"}},[s("code",[s("span",{pre:!0,attrs:{class:"token function"}},[t._v("yarn")]),t._v(" run release --dry-run\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# or")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("npm")]),t._v(" run release -- --dry-run\n")])])]),s("p",[t._v("It will show you which steps are going to be executed without actually executing them.")]),t._v(" "),s("h2",{attrs:{id:"on-your-local-machine"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#on-your-local-machine"}},[t._v("#")]),t._v(" On your local machine")]),t._v(" "),s("ul",[s("li",[t._v("Part 1: "),s("code",[t._v("yarn run release")]),t._v(" will create a pull request.")]),t._v(" "),s("li",[t._v("Part 2: Review and merge the PR.")]),t._v(" "),s("li",[t._v("Part 3: "),s("code",[t._v("git pull")]),t._v(" and "),s("code",[t._v("yarn shipjs trigger")]),t._v("(or "),s("code",[t._v("npx shipjs trigger")]),t._v(") to actually publish it to NPM.")])]),t._v(" "),s("h2",{attrs:{id:"automate-part-3-trigger"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#automate-part-3-trigger"}},[t._v("#")]),t._v(" Automate Part 3 ("),s("code",[t._v("trigger")]),t._v(")")]),t._v(" "),s("p",[t._v("This guide is based on CircleCI. It may be done similarly on other CI services.")]),t._v(" "),s("p",[t._v("If you are using GitHub Actions, you can jump to "),s("RouterLink",{attrs:{to:"/guide/getting-started.html#setup-github-actions"}},[t._v("Setup GitHub Actions")]),t._v(".")],1),t._v(" "),s("p",[t._v("A minimal "),s("code",[t._v(".circleci/config.yml")]),t._v(" looks like the following:")]),t._v(" "),s("div",{staticClass:"language-yaml extra-class"},[s("pre",{pre:!0,attrs:{class:"language-yaml"}},[s("code",[s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("version")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("jobs")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("shipjs_trigger")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("docker")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("image")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'circleci/node:latest'")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("steps")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" checkout\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("run")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("name")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Install\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("command")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" yarn install\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("run")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("name")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Triggering Ship.js to Release\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("command")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("|")]),s("span",{pre:!0,attrs:{class:"token scalar string"}},[t._v('\n git config --global user.email "you@example.com"\n git config --global user.name "Your Name"\n yarn shipjs trigger')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("workflows")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("version")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("release_if_needed")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("jobs")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("shipjs_trigger")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("filters")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("branches")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("only")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" master "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# or whatever branch you'd like (normally your base branch)")]),t._v("\n")])])]),s("p",[t._v("At Part 2, if you merge the PR, a new commit will be added and CircleCI will run "),s("code",[t._v("yarn shipjs trigger")]),t._v("(or "),s("code",[t._v("npx shipjs trigger")]),t._v("). Then, it will check if the latest commit message is in convention and the current branch is right. If the conditions are met, it will trigger a release. Otherwise, it will skip.")]),t._v(" "),s("p",[t._v('When merging a PR, you need to "Squash and merge" into a single commit.')]),t._v(" "),s("p",[t._v('You can go to "Settings" menu of your repository, and even force "Squash and merge" behavior under "Merge button" section.')]),t._v(" "),s("p",[t._v("To learn more, you can read "),s("a",{attrs:{href:"https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-request-merges#squash-and-merge-your-pull-request-commits",target:"_blank",rel:"noopener noreferrer"}},[t._v("this"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("h3",{attrs:{id:"npm-token"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#npm-token"}},[t._v("#")]),t._v(" NPM Token")]),t._v(" "),s("p",[t._v("Setup an NPM token to allow Ship.js("),s("strong",[t._v("at CircleCI")]),t._v(") to release the package to NPM.")]),t._v(" "),s("ol",[s("li",[t._v("Login at "),s("a",{attrs:{href:"https://www.npmjs.com/",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://www.npmjs.com/"),s("OutboundLink")],1),t._v(', click your profile icon and go to "Tokens".')]),t._v(" "),s("li",[t._v('Click "Create New Token", make sure the access level is "Read and Publish" and copy the token.')]),t._v(" "),s("li",[t._v('At CircleCI, go to "Project Settings" β†’ "BUILD SETTINGS" β†’ "Environment Variables".')]),t._v(" "),s("li",[t._v('Click "Add Variable".\n'),s("ul",[s("li",[t._v("Name: "),s("code",[t._v("NPM_AUTH_TOKEN")])]),t._v(" "),s("li",[t._v("Value: Paste the token from clipboard.")])])])]),t._v(" "),s("div",{staticClass:"custom-block warning"},[s("p",{staticClass:"custom-block-title"},[t._v("WARNING for 2FA")]),t._v(" "),s("p",[t._v("If you have enabled 2FA for both authorization and publishing, when "),s("code",[t._v("shipjs trigger")]),t._v(" runs, it will be prompted for one-time password. You probably have configured CI service (CircleCI, GitHub Actions, etc) to run that command for you. It means "),s("code",[t._v("shipjs trigger")]),t._v(" will be stuck.")]),t._v(" "),s("p",[t._v("NPM has "),s("a",{attrs:{href:"https://github.blog/changelog/2020-10-02-npm-automation-tokens/",target:"_blank",rel:"noopener noreferrer"}},[t._v("released"),s("OutboundLink")],1),t._v(' a new feature "Automation token" to solve this.')]),t._v(" "),s("p",[s("img",{attrs:{src:a(354),alt:"NPM automatin token"}})])]),t._v(" "),s("h3",{attrs:{id:"github-token-2"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#github-token-2"}},[t._v("#")]),t._v(" GitHub Token")]),t._v(" "),s("p",[t._v("Setup a GitHub token to allow Ship.js("),s("strong",[t._v("at CircleCI")]),t._v(") to create a git tag and push it to remote after release.")]),t._v(" "),s("ol",[s("li",[t._v("Go to https://github.com/settings/tokens/new")]),t._v(" "),s("li",[t._v('Check "repo(Full control of private repositories)"')]),t._v(" "),s("li",[t._v("Generate/copy the token")]),t._v(" "),s("li",[t._v('At CircleCI, go to "Project Settings" β†’ "BUILD SETTINGS" β†’ "Environment Variables".')]),t._v(" "),s("li",[t._v('Click "Add Variable".\n'),s("ul",[s("li",[t._v("Name: "),s("code",[t._v("GITHUB_TOKEN")])]),t._v(" "),s("li",[t._v("Value: Paste the token from clipboard.")])])])]),t._v(" "),s("h2",{attrs:{id:"setup-github-actions"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#setup-github-actions"}},[t._v("#")]),t._v(" Setup GitHub Actions")]),t._v(" "),s("p",[t._v("If you are using GitHub Actions, you need to setup the NPM token to release package to NPM:")]),t._v(" "),s("ol",[s("li",[t._v("Login at "),s("a",{attrs:{href:"https://www.npmjs.com/",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://www.npmjs.com/"),s("OutboundLink")],1),t._v(', click your profile icon and go to "Auth Tokens".')]),t._v(" "),s("li",[t._v('Click "Create New Token", make sure the access level is "Read and Publish" and copy the token.')]),t._v(" "),s("li",[t._v('At your GitHub repo, go to "Settings" β†’ "Secrets".')]),t._v(" "),s("li",[t._v('Click "Add a new secret".\n'),s("ul",[s("li",[t._v("Name: "),s("code",[t._v("NPM_AUTH_TOKEN")])]),t._v(" "),s("li",[t._v("Value: Paste the token from clipboard.")])])])])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{355:function(t,e,a){t.exports=a.p+"assets/img/setup.9490a016.png"},356:function(t,e,a){t.exports=a.p+"assets/img/automation-token.097bbd88.png"},366:function(t,e,a){"use strict";a.r(e);var s=a(41),n=Object(s.a)({},(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"getting-started"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getting-started"}},[t._v("#")]),t._v(" Getting Started")]),t._v(" "),s("p",[t._v("You can following the guide below, or watch this video.")]),t._v(" "),s("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/FPj7urChN_E",frameborder:"0",allow:"autoplay; encrypted-media",allowfullscreen:""}}),t._v(" "),s("h2",{attrs:{id:"installation"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#installation"}},[t._v("#")]),t._v(" Installation")]),t._v(" "),s("p",[t._v("Running the following command will guide you to set it up interactively.")]),t._v(" "),s("div",{staticClass:"language-bash extra-class"},[s("pre",{pre:!0,attrs:{class:"language-bash"}},[s("code",[t._v("npx shipjs setup\n")])])]),s("p",[t._v("This interactive CLI will help you install Ship.js into your package and create a tailored config file for your project.")]),t._v(" "),s("p",[s("img",{attrs:{src:a(355),alt:"npx shipjs setup"}})]),t._v(" "),s("p",[t._v("Otherwise, you can still do it manually.")]),t._v(" "),s("div",{staticClass:"language-bash extra-class"},[s("pre",{pre:!0,attrs:{class:"language-bash"}},[s("code",[s("span",{pre:!0,attrs:{class:"token function"}},[t._v("npm")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("install")]),t._v(" --save-dev shipjs\n\nor\n\n"),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("yarn")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("add")]),t._v(" -D shipjs\n")])])]),s("p",[t._v("Add the following to the "),s("code",[t._v("scripts")]),t._v(" section in your "),s("code",[t._v("package.json")]),t._v(".")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[t._v('"scripts'),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//...")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"release"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"shipjs prepare"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"github-token"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#github-token"}},[t._v("#")]),t._v(" GitHub Token")]),t._v(" "),s("div",{staticClass:"custom-block warning"},[s("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),s("p",[t._v("If you use Ship.js at work, I recommend you to get a token from a shared account, not from your personal account because after you quit, your token will still be used.")])]),t._v(" "),s("p",[t._v("GitHub token is used in both "),s("code",[t._v("shipjs prepare")]),t._v(" and "),s("code",[t._v("shipjs trigger")]),t._v(".")]),t._v(" "),s("ol",[s("li",[t._v("Go to "),s("a",{attrs:{href:"https://github.com/settings/tokens/new",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/settings/tokens/new"),s("OutboundLink")],1)]),t._v(" "),s("li",[t._v('Check "repo(Full control of private repositories)"')]),t._v(" "),s("li",[t._v("Generate/copy the token")])]),t._v(" "),s("p",[t._v("You can put it in the following two ways:")]),t._v(" "),s("ul",[s("li",[t._v("Prepend it in your command like: "),s("code",[t._v("GITHUB_TOKEN=xxx shipjs prepare")])]),t._v(" "),s("li",[t._v('Create a file named ".env" and put the following content: '),s("code",[t._v("GITHUB_TOKEN=xxx")]),t._v(' (".env" should not be committed. Add it to ".gitignore".)')])]),t._v(" "),s("p",[t._v("If you automate flows in your CI, you can add the token to Environment Variable section in your CI service.")]),t._v(" "),s("h3",{attrs:{id:"dry-mode"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#dry-mode"}},[t._v("#")]),t._v(" Dry Mode")]),t._v(" "),s("p",[t._v("If you're not sure, you can always run commands in dry mode.")]),t._v(" "),s("div",{staticClass:"language-bash extra-class"},[s("pre",{pre:!0,attrs:{class:"language-bash"}},[s("code",[s("span",{pre:!0,attrs:{class:"token function"}},[t._v("yarn")]),t._v(" run release --dry-run\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# or")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("npm")]),t._v(" run release -- --dry-run\n")])])]),s("p",[t._v("It will show you which steps are going to be executed without actually executing them.")]),t._v(" "),s("h2",{attrs:{id:"on-your-local-machine"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#on-your-local-machine"}},[t._v("#")]),t._v(" On your local machine")]),t._v(" "),s("ul",[s("li",[t._v("Part 1: "),s("code",[t._v("yarn run release")]),t._v(" will create a pull request.")]),t._v(" "),s("li",[t._v("Part 2: Review and merge the PR.")]),t._v(" "),s("li",[t._v("Part 3: "),s("code",[t._v("git pull")]),t._v(" and "),s("code",[t._v("yarn shipjs trigger")]),t._v("(or "),s("code",[t._v("npx shipjs trigger")]),t._v(") to actually publish it to NPM.")])]),t._v(" "),s("h2",{attrs:{id:"automate-part-3-trigger"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#automate-part-3-trigger"}},[t._v("#")]),t._v(" Automate Part 3 ("),s("code",[t._v("trigger")]),t._v(")")]),t._v(" "),s("p",[t._v("This guide is based on CircleCI. It may be done similarly on other CI services.")]),t._v(" "),s("p",[t._v("If you are using GitHub Actions, you can jump to "),s("RouterLink",{attrs:{to:"/guide/getting-started.html#setup-github-actions"}},[t._v("Setup GitHub Actions")]),t._v(".")],1),t._v(" "),s("p",[t._v("A minimal "),s("code",[t._v(".circleci/config.yml")]),t._v(" looks like the following:")]),t._v(" "),s("div",{staticClass:"language-yaml extra-class"},[s("pre",{pre:!0,attrs:{class:"language-yaml"}},[s("code",[s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("version")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("jobs")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("shipjs_trigger")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("docker")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("image")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'circleci/node:latest'")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("steps")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" checkout\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("run")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("name")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Install\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("command")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" yarn install\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("run")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("name")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Triggering Ship.js to Release\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("command")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("|")]),s("span",{pre:!0,attrs:{class:"token scalar string"}},[t._v('\n git config --global user.email "you@example.com"\n git config --global user.name "Your Name"\n yarn shipjs trigger')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("workflows")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("version")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("release_if_needed")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("jobs")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("shipjs_trigger")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("filters")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("branches")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("only")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" master "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# or whatever branch you'd like (normally your base branch)")]),t._v("\n")])])]),s("p",[t._v("At Part 2, if you merge the PR, a new commit will be added and CircleCI will run "),s("code",[t._v("yarn shipjs trigger")]),t._v("(or "),s("code",[t._v("npx shipjs trigger")]),t._v("). Then, it will check if the latest commit message is in convention and the current branch is right. If the conditions are met, it will trigger a release. Otherwise, it will skip.")]),t._v(" "),s("p",[t._v('When merging a PR, you need to "Squash and merge" into a single commit.')]),t._v(" "),s("p",[t._v('You can go to "Settings" menu of your repository, and even force "Squash and merge" behavior under "Merge button" section.')]),t._v(" "),s("p",[t._v("To learn more, you can read "),s("a",{attrs:{href:"https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-request-merges#squash-and-merge-your-pull-request-commits",target:"_blank",rel:"noopener noreferrer"}},[t._v("this"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("h3",{attrs:{id:"npm-token"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#npm-token"}},[t._v("#")]),t._v(" NPM Token")]),t._v(" "),s("p",[t._v("Setup an NPM token to allow Ship.js("),s("strong",[t._v("at CircleCI")]),t._v(") to release the package to NPM.")]),t._v(" "),s("ol",[s("li",[t._v("Login at "),s("a",{attrs:{href:"https://www.npmjs.com/",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://www.npmjs.com/"),s("OutboundLink")],1),t._v(', click your profile icon and go to "Tokens".')]),t._v(" "),s("li",[t._v('Click "Create New Token", make sure the access level is "Read and Publish" and copy the token.')]),t._v(" "),s("li",[t._v('At CircleCI, go to "Project Settings" β†’ "BUILD SETTINGS" β†’ "Environment Variables".')]),t._v(" "),s("li",[t._v('Click "Add Variable".\n'),s("ul",[s("li",[t._v("Name: "),s("code",[t._v("NPM_AUTH_TOKEN")])]),t._v(" "),s("li",[t._v("Value: Paste the token from clipboard.")])])])]),t._v(" "),s("div",{staticClass:"custom-block warning"},[s("p",{staticClass:"custom-block-title"},[t._v("WARNING for 2FA")]),t._v(" "),s("p",[t._v("If you have enabled 2FA for both authorization and publishing, when "),s("code",[t._v("shipjs trigger")]),t._v(" runs, it will be prompted for one-time password. You probably have configured CI service (CircleCI, GitHub Actions, etc) to run that command for you. It means "),s("code",[t._v("shipjs trigger")]),t._v(" will be stuck.")]),t._v(" "),s("p",[t._v("NPM has "),s("a",{attrs:{href:"https://github.blog/changelog/2020-10-02-npm-automation-tokens/",target:"_blank",rel:"noopener noreferrer"}},[t._v("released"),s("OutboundLink")],1),t._v(' a new feature "Automation token" to solve this.')]),t._v(" "),s("p",[s("img",{attrs:{src:a(356),alt:"NPM automatin token"}})])]),t._v(" "),s("h3",{attrs:{id:"github-token-2"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#github-token-2"}},[t._v("#")]),t._v(" GitHub Token")]),t._v(" "),s("p",[t._v("Setup a GitHub token to allow Ship.js("),s("strong",[t._v("at CircleCI")]),t._v(") to create a git tag and push it to remote after release.")]),t._v(" "),s("ol",[s("li",[t._v("Go to https://github.com/settings/tokens/new")]),t._v(" "),s("li",[t._v('Check "repo(Full control of private repositories)"')]),t._v(" "),s("li",[t._v("Generate/copy the token")]),t._v(" "),s("li",[t._v('At CircleCI, go to "Project Settings" β†’ "BUILD SETTINGS" β†’ "Environment Variables".')]),t._v(" "),s("li",[t._v('Click "Add Variable".\n'),s("ul",[s("li",[t._v("Name: "),s("code",[t._v("GITHUB_TOKEN")])]),t._v(" "),s("li",[t._v("Value: Paste the token from clipboard.")])])])]),t._v(" "),s("h2",{attrs:{id:"setup-github-actions"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#setup-github-actions"}},[t._v("#")]),t._v(" Setup GitHub Actions")]),t._v(" "),s("p",[t._v("If you are using GitHub Actions, you need to setup the NPM token to release package to NPM:")]),t._v(" "),s("ol",[s("li",[t._v("Login at "),s("a",{attrs:{href:"https://www.npmjs.com/",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://www.npmjs.com/"),s("OutboundLink")],1),t._v(', click your profile icon and go to "Auth Tokens".')]),t._v(" "),s("li",[t._v('Click "Create New Token", make sure the access level is "Read and Publish" and copy the token.')]),t._v(" "),s("li",[t._v('At your GitHub repo, go to "Settings" β†’ "Secrets".')]),t._v(" "),s("li",[t._v('Click "Add a new secret".\n'),s("ul",[s("li",[t._v("Name: "),s("code",[t._v("NPM_AUTH_TOKEN")])]),t._v(" "),s("li",[t._v("Value: Paste the token from clipboard.")])])])])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/app.e3c7b603.js b/assets/js/app.0be5ee5c.js similarity index 96% rename from assets/js/app.e3c7b603.js rename to assets/js/app.0be5ee5c.js index 27adb007..94645c16 100644 --- a/assets/js/app.e3c7b603.js +++ b/assets/js/app.0be5ee5c.js @@ -1,4 +1,4 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(t){function e(e){for(var r,a,u=e[0],c=e[1],s=e[2],l=0,p=[];l0?o(r(t),9007199254740991):0}},function(t,e,n){var r=n(76),o=n(9),i=n(191);r||o(Object.prototype,"toString",i,{unsafe:!0})},function(t,e){var n=Array.isArray;t.exports=n},function(t,e,n){var r=n(33),o=n(22);t.exports=function(t){return r(o(t))}},function(t,e,n){var r=n(138),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();t.exports=i},function(t,e,n){var r=n(5),o=n(2),i=n(6),a=Object.defineProperty,u={},c=function(t){throw t};t.exports=function(t,e){if(i(u,t))return u[t];e||(e={});var n=[][t],s=!!i(e,"ACCESSORS")&&e.ACCESSORS,f=i(e,0)?e[0]:c,l=i(e,1)?e[1]:void 0;return u[t]=!!n&&!o((function(){if(s&&!r)return!0;var t={length:-1};s?a(t,1,{enumerable:!0,get:c}):t[1]=1,n.call(t,f,l)}))}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e){t.exports=!1},function(t,e,n){var r=n(112),o=n(3),i=function(t){return"function"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t])||i(o[t]):r[t]&&r[t][e]||o[t]&&o[t][e]}},function(t,e,n){var r=n(218),o=n(221);t.exports=function(t,e){var n=o(t,e);return r(n)?n:void 0}},function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,n){"use strict";var r=n(0),o=n(30).filter,i=n(51),a=n(17),u=i("filter"),c=a("filter");r({target:"Array",proto:!0,forced:!u||!c},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},function(t,e,n){var r=n(5),o=n(73),i=n(29),a=n(15),u=n(46),c=n(6),s=n(107),f=Object.getOwnPropertyDescriptor;e.f=r?f:function(t,e){if(t=a(t),e=u(e,!0),s)try{return f(t,e)}catch(t){}if(c(t,e))return i(!o.f.call(t,e),t[e])}},function(t,e){t.exports=function(t){return null!=t&&"object"==typeof t}},function(t,e,n){var r,o,i,a=n(183),u=n(3),c=n(4),s=n(10),f=n(6),l=n(50),p=n(34),h=u.WeakMap;if(a){var d=new h,v=d.get,y=d.has,g=d.set;r=function(t,e){return g.call(d,t,e),e},o=function(t){return v.call(d,t)||{}},i=function(t){return y.call(d,t)}}else{var m=l("state");p[m]=!0,r=function(t,e){return s(t,m,e),e},o=function(t){return f(t,m)?t[m]:{}},i=function(t){return f(t,m)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!c(e)||(n=o(e)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return n}}}},function(t,e,n){"use strict";var r=n(100).charAt,o=n(26),i=n(113),a=o.set,u=o.getterFor("String Iterator");i(String,"String",(function(t){a(this,{type:"String Iterator",string:String(t),index:0})}),(function(){var t,e=u(this),n=e.string,o=e.index;return o>=n.length?{value:void 0,done:!0}:(t=r(n,o),e.index+=t.length,{value:t,done:!1})}))},function(t,e,n){"use strict";var r=n(15),o=n(95),i=n(35),a=n(26),u=n(113),c=a.set,s=a.getterFor("Array Iterator");t.exports=u(Array,"Array",(function(t,e){c(this,{type:"Array Iterator",target:r(t),index:0,kind:e})}),(function(){var t=s(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,{value:void 0,done:!0}):"keys"==n?{value:r,done:!1}:"values"==n?{value:e[r],done:!1}:{value:[r,e[r]],done:!1}}),"values"),i.Arguments=i.Array,o("keys"),o("values"),o("entries")},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){var r=n(45),o=n(33),i=n(11),a=n(12),u=n(128),c=[].push,s=function(t){var e=1==t,n=2==t,s=3==t,f=4==t,l=6==t,p=5==t||l;return function(h,d,v,y){for(var g,m,b=i(h),_=o(b),x=r(d,v,3),w=a(_.length),O=0,S=y||u,j=e?S(h,w):n?S(h,0):void 0;w>O;O++)if((p||O in _)&&(m=x(g=_[O],O,b),t))if(e)j[O]=m;else if(m)switch(t){case 3:return!0;case 5:return g;case 6:return O;case 2:c.call(j,g)}else if(f)return!1;return l?-1:s||f?f:j}};t.exports={forEach:s(0),map:s(1),filter:s(2),some:s(3),every:s(4),find:s(5),findIndex:s(6)}},function(t,e,n){var r=n(3),o=n(129),i=n(28),a=n(10),u=n(1),c=u("iterator"),s=u("toStringTag"),f=i.values;for(var l in o){var p=r[l],h=p&&p.prototype;if(h){if(h[c]!==f)try{a(h,c,f)}catch(t){h[c]=f}if(h[s]||a(h,s,l),o[l])for(var d in i)if(h[d]!==i[d])try{a(h,d,i[d])}catch(t){h[d]=i[d]}}}},function(t,e,n){var r=n(39),o=n(203),i=n(204),a="[object Null]",u="[object Undefined]",c=r?r.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?u:a:c&&c in Object(t)?o(t):i(t)}},function(t,e,n){var r=n(2),o=n(18),i="".split;t.exports=r((function(){return!Object("z").propertyIsEnumerable(0)}))?function(t){return"String"==o(t)?i.call(t,""):Object(t)}:Object},function(t,e){t.exports={}},function(t,e){t.exports={}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t}},function(t,e,n){var r=n(18);t.exports=Array.isArray||function(t){return"Array"==r(t)}},function(t,e,n){"use strict";var r=n(2);t.exports=function(t,e){var n=[][t];return!!n&&r((function(){n.call(null,e||function(){throw 1},1)}))}},function(t,e,n){var r=n(16).Symbol;t.exports=r},function(t,e,n){"use strict";n(93);n(53),n(54),n(79),n(199),n(28),n(80),n(13),n(94),n(27),n(31);function r(t){return function(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e"+t+"<\/script>"},d=function(){try{r=document.domain&&new ActiveXObject("htmlfile")}catch(t){}var t,e;d=r?function(t){t.write(h("")),t.close();var e=t.parentWindow.Object;return t=null,e}(r):((e=s("iframe")).style.display="none",c.appendChild(e),e.src=String("javascript:"),(t=e.contentWindow.document).open(),t.write(h("document.F=Object")),t.close(),t.F);for(var n=a.length;n--;)delete d.prototype[a[n]];return d()};u[l]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(p.prototype=o(t),n=new p,p.prototype=null,n[l]=t):n=d(),void 0===e?n:i(n,e)}},function(t,e,n){var r=n(36);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},function(t,e,n){var r=n(4);t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++n+r).toString(36)}},function(t,e,n){var r=n(109),o=n(71);t.exports=Object.keys||function(t){return r(t,o)}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e,n){var r=n(66),o=n(47),i=r("keys");t.exports=function(t){return i[t]||(i[t]=o(t))}},function(t,e,n){var r=n(2),o=n(1),i=n(77),a=o("species");t.exports=function(t){return i>=51||!r((function(){var e=[];return(e.constructor={})[a]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},function(t,e,n){"use strict";var r=n(46),o=n(8),i=n(29);t.exports=function(t,e,n){var a=r(e);a in t?o.f(t,a,i(0,n)):t[a]=n}},function(t,e,n){"use strict";var r=n(0),o=n(3),i=n(20),a=n(19),u=n(5),c=n(69),s=n(108),f=n(2),l=n(6),p=n(37),h=n(4),d=n(7),v=n(11),y=n(15),g=n(46),m=n(29),b=n(44),_=n(48),x=n(64),w=n(198),O=n(74),S=n(24),j=n(8),A=n(73),k=n(10),E=n(9),C=n(66),$=n(50),P=n(34),T=n(47),R=n(1),L=n(135),I=n(136),M=n(43),D=n(26),N=n(30).forEach,F=$("hidden"),U=R("toPrimitive"),z=D.set,B=D.getterFor("Symbol"),V=Object.prototype,q=o.Symbol,H=i("JSON","stringify"),W=S.f,G=j.f,K=w.f,X=A.f,Y=C("symbols"),J=C("op-symbols"),Q=C("string-to-symbol-registry"),Z=C("symbol-to-string-registry"),tt=C("wks"),et=o.QObject,nt=!et||!et.prototype||!et.prototype.findChild,rt=u&&f((function(){return 7!=b(G({},"a",{get:function(){return G(this,"a",{value:7}).a}})).a}))?function(t,e,n){var r=W(V,e);r&&delete V[e],G(t,e,n),r&&t!==V&&G(V,e,r)}:G,ot=function(t,e){var n=Y[t]=b(q.prototype);return z(n,{type:"Symbol",tag:t,description:e}),u||(n.description=e),n},it=s?function(t){return"symbol"==typeof t}:function(t){return Object(t)instanceof q},at=function(t,e,n){t===V&&at(J,e,n),d(t);var r=g(e,!0);return d(n),l(Y,r)?(n.enumerable?(l(t,F)&&t[F][r]&&(t[F][r]=!1),n=b(n,{enumerable:m(0,!1)})):(l(t,F)||G(t,F,m(1,{})),t[F][r]=!0),rt(t,r,n)):G(t,r,n)},ut=function(t,e){d(t);var n=y(e),r=_(n).concat(lt(n));return N(r,(function(e){u&&!ct.call(n,e)||at(t,e,n[e])})),t},ct=function(t){var e=g(t,!0),n=X.call(this,e);return!(this===V&&l(Y,e)&&!l(J,e))&&(!(n||!l(this,e)||!l(Y,e)||l(this,F)&&this[F][e])||n)},st=function(t,e){var n=y(t),r=g(e,!0);if(n!==V||!l(Y,r)||l(J,r)){var o=W(n,r);return!o||!l(Y,r)||l(n,F)&&n[F][r]||(o.enumerable=!0),o}},ft=function(t){var e=K(y(t)),n=[];return N(e,(function(t){l(Y,t)||l(P,t)||n.push(t)})),n},lt=function(t){var e=t===V,n=K(e?J:y(t)),r=[];return N(n,(function(t){!l(Y,t)||e&&!l(V,t)||r.push(Y[t])})),r};(c||(E((q=function(){if(this instanceof q)throw TypeError("Symbol is not a constructor");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=T(t),n=function(t){this===V&&n.call(J,t),l(this,F)&&l(this[F],e)&&(this[F][e]=!1),rt(this,e,m(1,t))};return u&&nt&&rt(V,e,{configurable:!0,set:n}),ot(e,t)}).prototype,"toString",(function(){return B(this).tag})),E(q,"withoutSetter",(function(t){return ot(T(t),t)})),A.f=ct,j.f=at,S.f=st,x.f=w.f=ft,O.f=lt,L.f=function(t){return ot(R(t),t)},u&&(G(q.prototype,"description",{configurable:!0,get:function(){return B(this).description}}),a||E(V,"propertyIsEnumerable",ct,{unsafe:!0}))),r({global:!0,wrap:!0,forced:!c,sham:!c},{Symbol:q}),N(_(tt),(function(t){I(t)})),r({target:"Symbol",stat:!0,forced:!c},{for:function(t){var e=String(t);if(l(Q,e))return Q[e];var n=q(e);return Q[e]=n,Z[n]=e,n},keyFor:function(t){if(!it(t))throw TypeError(t+" is not a symbol");if(l(Z,t))return Z[t]},useSetter:function(){nt=!0},useSimple:function(){nt=!1}}),r({target:"Object",stat:!0,forced:!c,sham:!u},{create:function(t,e){return void 0===e?b(t):ut(b(t),e)},defineProperty:at,defineProperties:ut,getOwnPropertyDescriptor:st}),r({target:"Object",stat:!0,forced:!c},{getOwnPropertyNames:ft,getOwnPropertySymbols:lt}),r({target:"Object",stat:!0,forced:f((function(){O.f(1)}))},{getOwnPropertySymbols:function(t){return O.f(v(t))}}),H)&&r({target:"JSON",stat:!0,forced:!c||f((function(){var t=q();return"[null]"!=H([t])||"{}"!=H({a:t})||"{}"!=H(Object(t))}))},{stringify:function(t,e,n){for(var r,o=[t],i=1;arguments.length>i;)o.push(arguments[i++]);if(r=e,(h(e)||void 0!==t)&&!it(t))return p(e)||(e=function(t,e){if("function"==typeof r&&(e=r.call(this,t,e)),!it(e))return e}),o[1]=e,H.apply(null,o)}});q.prototype[U]||k(q.prototype,U,q.prototype.valueOf),M(q,"Symbol"),P[F]=!0},function(t,e,n){"use strict";var r=n(0),o=n(5),i=n(3),a=n(6),u=n(4),c=n(8).f,s=n(114),f=i.Symbol;if(o&&"function"==typeof f&&(!("description"in f.prototype)||void 0!==f().description)){var l={},p=function(){var t=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),e=this instanceof p?new f(t):void 0===t?f():f(t);return""===t&&(l[e]=!0),e};s(p,f);var h=p.prototype=f.prototype;h.constructor=p;var d=h.toString,v="Symbol(test)"==String(f("test")),y=/^Symbol\((.*)\)[^)]+$/;c(h,"description",{configurable:!0,get:function(){var t=u(this)?this.valueOf():this,e=d.call(t);if(a(l,t))return"";var n=v?e.slice(7,-1):e.replace(y,"$1");return""===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:p})}},function(t,e,n){var r=n(208),o=n(209),i=n(210),a=n(211),u=n(212);function c(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e0?o(r(t),9007199254740991):0}},function(t,e,n){var r=n(76),o=n(9),i=n(191);r||o(Object.prototype,"toString",i,{unsafe:!0})},function(t,e){var n=Array.isArray;t.exports=n},function(t,e,n){var r=n(33),o=n(22);t.exports=function(t){return r(o(t))}},function(t,e,n){var r=n(138),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();t.exports=i},function(t,e,n){var r=n(5),o=n(2),i=n(6),a=Object.defineProperty,u={},c=function(t){throw t};t.exports=function(t,e){if(i(u,t))return u[t];e||(e={});var n=[][t],s=!!i(e,"ACCESSORS")&&e.ACCESSORS,f=i(e,0)?e[0]:c,l=i(e,1)?e[1]:void 0;return u[t]=!!n&&!o((function(){if(s&&!r)return!0;var t={length:-1};s?a(t,1,{enumerable:!0,get:c}):t[1]=1,n.call(t,f,l)}))}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e){t.exports=!1},function(t,e,n){var r=n(112),o=n(3),i=function(t){return"function"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t])||i(o[t]):r[t]&&r[t][e]||o[t]&&o[t][e]}},function(t,e,n){var r=n(218),o=n(221);t.exports=function(t,e){var n=o(t,e);return r(n)?n:void 0}},function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,n){"use strict";var r=n(0),o=n(30).filter,i=n(51),a=n(17),u=i("filter"),c=a("filter");r({target:"Array",proto:!0,forced:!u||!c},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},function(t,e,n){var r=n(5),o=n(73),i=n(29),a=n(15),u=n(46),c=n(6),s=n(107),f=Object.getOwnPropertyDescriptor;e.f=r?f:function(t,e){if(t=a(t),e=u(e,!0),s)try{return f(t,e)}catch(t){}if(c(t,e))return i(!o.f.call(t,e),t[e])}},function(t,e){t.exports=function(t){return null!=t&&"object"==typeof t}},function(t,e,n){var r,o,i,a=n(183),u=n(3),c=n(4),s=n(10),f=n(6),l=n(50),p=n(34),h=u.WeakMap;if(a){var d=new h,v=d.get,y=d.has,g=d.set;r=function(t,e){return g.call(d,t,e),e},o=function(t){return v.call(d,t)||{}},i=function(t){return y.call(d,t)}}else{var m=l("state");p[m]=!0,r=function(t,e){return s(t,m,e),e},o=function(t){return f(t,m)?t[m]:{}},i=function(t){return f(t,m)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!c(e)||(n=o(e)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return n}}}},function(t,e,n){"use strict";var r=n(100).charAt,o=n(26),i=n(113),a=o.set,u=o.getterFor("String Iterator");i(String,"String",(function(t){a(this,{type:"String Iterator",string:String(t),index:0})}),(function(){var t,e=u(this),n=e.string,o=e.index;return o>=n.length?{value:void 0,done:!0}:(t=r(n,o),e.index+=t.length,{value:t,done:!1})}))},function(t,e,n){"use strict";var r=n(15),o=n(95),i=n(35),a=n(26),u=n(113),c=a.set,s=a.getterFor("Array Iterator");t.exports=u(Array,"Array",(function(t,e){c(this,{type:"Array Iterator",target:r(t),index:0,kind:e})}),(function(){var t=s(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,{value:void 0,done:!0}):"keys"==n?{value:r,done:!1}:"values"==n?{value:e[r],done:!1}:{value:[r,e[r]],done:!1}}),"values"),i.Arguments=i.Array,o("keys"),o("values"),o("entries")},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){var r=n(45),o=n(33),i=n(11),a=n(12),u=n(128),c=[].push,s=function(t){var e=1==t,n=2==t,s=3==t,f=4==t,l=6==t,p=5==t||l;return function(h,d,v,y){for(var g,m,b=i(h),_=o(b),x=r(d,v,3),w=a(_.length),O=0,S=y||u,j=e?S(h,w):n?S(h,0):void 0;w>O;O++)if((p||O in _)&&(m=x(g=_[O],O,b),t))if(e)j[O]=m;else if(m)switch(t){case 3:return!0;case 5:return g;case 6:return O;case 2:c.call(j,g)}else if(f)return!1;return l?-1:s||f?f:j}};t.exports={forEach:s(0),map:s(1),filter:s(2),some:s(3),every:s(4),find:s(5),findIndex:s(6)}},function(t,e,n){var r=n(3),o=n(129),i=n(28),a=n(10),u=n(1),c=u("iterator"),s=u("toStringTag"),f=i.values;for(var l in o){var p=r[l],h=p&&p.prototype;if(h){if(h[c]!==f)try{a(h,c,f)}catch(t){h[c]=f}if(h[s]||a(h,s,l),o[l])for(var d in i)if(h[d]!==i[d])try{a(h,d,i[d])}catch(t){h[d]=i[d]}}}},function(t,e,n){var r=n(39),o=n(203),i=n(204),a="[object Null]",u="[object Undefined]",c=r?r.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?u:a:c&&c in Object(t)?o(t):i(t)}},function(t,e,n){var r=n(2),o=n(18),i="".split;t.exports=r((function(){return!Object("z").propertyIsEnumerable(0)}))?function(t){return"String"==o(t)?i.call(t,""):Object(t)}:Object},function(t,e){t.exports={}},function(t,e){t.exports={}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t}},function(t,e,n){var r=n(18);t.exports=Array.isArray||function(t){return"Array"==r(t)}},function(t,e,n){"use strict";var r=n(2);t.exports=function(t,e){var n=[][t];return!!n&&r((function(){n.call(null,e||function(){throw 1},1)}))}},function(t,e,n){var r=n(16).Symbol;t.exports=r},function(t,e,n){"use strict";n(93);n(53),n(54),n(79),n(199),n(28),n(80),n(13),n(94),n(27),n(31);function r(t){return function(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e"+t+"<\/script>"},d=function(){try{r=document.domain&&new ActiveXObject("htmlfile")}catch(t){}var t,e;d=r?function(t){t.write(h("")),t.close();var e=t.parentWindow.Object;return t=null,e}(r):((e=s("iframe")).style.display="none",c.appendChild(e),e.src=String("javascript:"),(t=e.contentWindow.document).open(),t.write(h("document.F=Object")),t.close(),t.F);for(var n=a.length;n--;)delete d.prototype[a[n]];return d()};u[l]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(p.prototype=o(t),n=new p,p.prototype=null,n[l]=t):n=d(),void 0===e?n:i(n,e)}},function(t,e,n){var r=n(36);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},function(t,e,n){var r=n(4);t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++n+r).toString(36)}},function(t,e,n){var r=n(109),o=n(71);t.exports=Object.keys||function(t){return r(t,o)}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e,n){var r=n(66),o=n(47),i=r("keys");t.exports=function(t){return i[t]||(i[t]=o(t))}},function(t,e,n){var r=n(2),o=n(1),i=n(77),a=o("species");t.exports=function(t){return i>=51||!r((function(){var e=[];return(e.constructor={})[a]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},function(t,e,n){"use strict";var r=n(46),o=n(8),i=n(29);t.exports=function(t,e,n){var a=r(e);a in t?o.f(t,a,i(0,n)):t[a]=n}},function(t,e,n){"use strict";var r=n(0),o=n(3),i=n(20),a=n(19),u=n(5),c=n(69),s=n(108),f=n(2),l=n(6),p=n(37),h=n(4),d=n(7),v=n(11),y=n(15),g=n(46),m=n(29),b=n(44),_=n(48),x=n(64),w=n(198),O=n(74),S=n(24),j=n(8),A=n(73),k=n(10),E=n(9),C=n(66),$=n(50),P=n(34),T=n(47),R=n(1),L=n(135),I=n(136),M=n(43),D=n(26),N=n(30).forEach,F=$("hidden"),U=R("toPrimitive"),z=D.set,B=D.getterFor("Symbol"),V=Object.prototype,q=o.Symbol,H=i("JSON","stringify"),W=S.f,G=j.f,K=w.f,X=A.f,Y=C("symbols"),J=C("op-symbols"),Q=C("string-to-symbol-registry"),Z=C("symbol-to-string-registry"),tt=C("wks"),et=o.QObject,nt=!et||!et.prototype||!et.prototype.findChild,rt=u&&f((function(){return 7!=b(G({},"a",{get:function(){return G(this,"a",{value:7}).a}})).a}))?function(t,e,n){var r=W(V,e);r&&delete V[e],G(t,e,n),r&&t!==V&&G(V,e,r)}:G,ot=function(t,e){var n=Y[t]=b(q.prototype);return z(n,{type:"Symbol",tag:t,description:e}),u||(n.description=e),n},it=s?function(t){return"symbol"==typeof t}:function(t){return Object(t)instanceof q},at=function(t,e,n){t===V&&at(J,e,n),d(t);var r=g(e,!0);return d(n),l(Y,r)?(n.enumerable?(l(t,F)&&t[F][r]&&(t[F][r]=!1),n=b(n,{enumerable:m(0,!1)})):(l(t,F)||G(t,F,m(1,{})),t[F][r]=!0),rt(t,r,n)):G(t,r,n)},ut=function(t,e){d(t);var n=y(e),r=_(n).concat(lt(n));return N(r,(function(e){u&&!ct.call(n,e)||at(t,e,n[e])})),t},ct=function(t){var e=g(t,!0),n=X.call(this,e);return!(this===V&&l(Y,e)&&!l(J,e))&&(!(n||!l(this,e)||!l(Y,e)||l(this,F)&&this[F][e])||n)},st=function(t,e){var n=y(t),r=g(e,!0);if(n!==V||!l(Y,r)||l(J,r)){var o=W(n,r);return!o||!l(Y,r)||l(n,F)&&n[F][r]||(o.enumerable=!0),o}},ft=function(t){var e=K(y(t)),n=[];return N(e,(function(t){l(Y,t)||l(P,t)||n.push(t)})),n},lt=function(t){var e=t===V,n=K(e?J:y(t)),r=[];return N(n,(function(t){!l(Y,t)||e&&!l(V,t)||r.push(Y[t])})),r};(c||(E((q=function(){if(this instanceof q)throw TypeError("Symbol is not a constructor");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=T(t),n=function(t){this===V&&n.call(J,t),l(this,F)&&l(this[F],e)&&(this[F][e]=!1),rt(this,e,m(1,t))};return u&&nt&&rt(V,e,{configurable:!0,set:n}),ot(e,t)}).prototype,"toString",(function(){return B(this).tag})),E(q,"withoutSetter",(function(t){return ot(T(t),t)})),A.f=ct,j.f=at,S.f=st,x.f=w.f=ft,O.f=lt,L.f=function(t){return ot(R(t),t)},u&&(G(q.prototype,"description",{configurable:!0,get:function(){return B(this).description}}),a||E(V,"propertyIsEnumerable",ct,{unsafe:!0}))),r({global:!0,wrap:!0,forced:!c,sham:!c},{Symbol:q}),N(_(tt),(function(t){I(t)})),r({target:"Symbol",stat:!0,forced:!c},{for:function(t){var e=String(t);if(l(Q,e))return Q[e];var n=q(e);return Q[e]=n,Z[n]=e,n},keyFor:function(t){if(!it(t))throw TypeError(t+" is not a symbol");if(l(Z,t))return Z[t]},useSetter:function(){nt=!0},useSimple:function(){nt=!1}}),r({target:"Object",stat:!0,forced:!c,sham:!u},{create:function(t,e){return void 0===e?b(t):ut(b(t),e)},defineProperty:at,defineProperties:ut,getOwnPropertyDescriptor:st}),r({target:"Object",stat:!0,forced:!c},{getOwnPropertyNames:ft,getOwnPropertySymbols:lt}),r({target:"Object",stat:!0,forced:f((function(){O.f(1)}))},{getOwnPropertySymbols:function(t){return O.f(v(t))}}),H)&&r({target:"JSON",stat:!0,forced:!c||f((function(){var t=q();return"[null]"!=H([t])||"{}"!=H({a:t})||"{}"!=H(Object(t))}))},{stringify:function(t,e,n){for(var r,o=[t],i=1;arguments.length>i;)o.push(arguments[i++]);if(r=e,(h(e)||void 0!==t)&&!it(t))return p(e)||(e=function(t,e){if("function"==typeof r&&(e=r.call(this,t,e)),!it(e))return e}),o[1]=e,H.apply(null,o)}});q.prototype[U]||k(q.prototype,U,q.prototype.valueOf),M(q,"Symbol"),P[F]=!0},function(t,e,n){"use strict";var r=n(0),o=n(5),i=n(3),a=n(6),u=n(4),c=n(8).f,s=n(114),f=i.Symbol;if(o&&"function"==typeof f&&(!("description"in f.prototype)||void 0!==f().description)){var l={},p=function(){var t=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),e=this instanceof p?new f(t):void 0===t?f():f(t);return""===t&&(l[e]=!0),e};s(p,f);var h=p.prototype=f.prototype;h.constructor=p;var d=h.toString,v="Symbol(test)"==String(f("test")),y=/^Symbol\((.*)\)[^)]+$/;c(h,"description",{configurable:!0,get:function(){var t=u(this)?this.valueOf():this,e=d.call(t);if(a(l,t))return"";var n=v?e.slice(7,-1):e.replace(y,"$1");return""===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:p})}},function(t,e,n){var r=n(208),o=n(209),i=n(210),a=n(211),u=n(212);function c(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e
'};function o(t,e,n){return tn?n:t}function i(t){return 100*(-1+t)}n.configure=function(t){var e,n;for(e in t)void 0!==(n=t[e])&&t.hasOwnProperty(e)&&(r[e]=n);return this},n.status=null,n.set=function(t){var e=n.isStarted();t=o(t,r.minimum,1),n.status=1===t?null:t;var c=n.render(!e),s=c.querySelector(r.barSelector),f=r.speed,l=r.easing;return c.offsetWidth,a((function(e){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),u(s,function(t,e,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+i(t)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+i(t)+"%,0)"}:{"margin-left":i(t)+"%"}).transition="all "+e+"ms "+n,o}(t,f,l)),1===t?(u(c,{transition:"none",opacity:1}),c.offsetWidth,setTimeout((function(){u(c,{transition:"all "+f+"ms linear",opacity:0}),setTimeout((function(){n.remove(),e()}),f)}),f)):setTimeout(e,f)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var t=function(){setTimeout((function(){n.status&&(n.trickle(),t())}),r.trickleSpeed)};return r.trickle&&t(),this},n.done=function(t){return t||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(t){var e=n.status;return e?("number"!=typeof t&&(t=(1-e)*o(Math.random()*e,.1,.95)),e=o(e+t,0,.994),n.set(e)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},t=0,e=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===e&&n.start(),t++,e++,r.always((function(){0==--e?(t=0,n.done()):n.set((t-e)/t)})),this):this},n.render=function(t){if(n.isRendered())return document.getElementById("nprogress");s(document.documentElement,"nprogress-busy");var e=document.createElement("div");e.id="nprogress",e.innerHTML=r.template;var o,a=e.querySelector(r.barSelector),c=t?"-100":i(n.status||0),f=document.querySelector(r.parent);return u(a,{transition:"all 0 linear",transform:"translate3d("+c+"%,0,0)"}),r.showSpinner||(o=e.querySelector(r.spinnerSelector))&&p(o),f!=document.body&&s(f,"nprogress-custom-parent"),f.appendChild(e),e},n.remove=function(){f(document.documentElement,"nprogress-busy"),f(document.querySelector(r.parent),"nprogress-custom-parent");var t=document.getElementById("nprogress");t&&p(t)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var t=document.body.style,e="WebkitTransform"in t?"Webkit":"MozTransform"in t?"Moz":"msTransform"in t?"ms":"OTransform"in t?"O":"";return e+"Perspective"in t?"translate3d":e+"Transform"in t?"translate":"margin"};var a=function(){var t=[];function e(){var n=t.shift();n&&n(e)}return function(n){t.push(n),1==t.length&&e()}}(),u=function(){var t=["Webkit","O","Moz","ms"],e={};function n(n){return n=n.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(t,e){return e.toUpperCase()})),e[n]||(e[n]=function(e){var n=document.body.style;if(e in n)return e;for(var r,o=t.length,i=e.charAt(0).toUpperCase()+e.slice(1);o--;)if((r=t[o]+i)in n)return r;return e}(n))}function r(t,e,r){e=n(e),t.style[e]=r}return function(t,e){var n,o,i=arguments;if(2==i.length)for(n in e)void 0!==(o=e[n])&&e.hasOwnProperty(n)&&r(t,n,o);else r(t,i[1],i[2])}}();function c(t,e){return("string"==typeof t?t:l(t)).indexOf(" "+e+" ")>=0}function s(t,e){var n=l(t),r=n+e;c(n,e)||(t.className=r.substring(1))}function f(t,e){var n,r=l(t);c(t,e)&&(n=r.replace(" "+e+" "," "),t.className=n.substring(1,n.length-1))}function l(t){return(" "+(t.className||"")+" ").replace(/\s+/gi," ")}function p(t){t&&t.parentNode&&t.parentNode.removeChild(t)}return n})?r.call(e,n,e,t):r)||(t.exports=o)},function(t,e,n){"use strict";var r=n(166),o=n(7),i=n(11),a=n(12),u=n(49),c=n(22),s=n(167),f=n(168),l=Math.max,p=Math.min,h=Math.floor,d=/\$([$&'`]|\d\d?|<[^>]*>)/g,v=/\$([$&'`]|\d\d?)/g;r("replace",2,(function(t,e,n,r){var y=r.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,g=r.REPLACE_KEEPS_$0,m=y?"$":"$0";return[function(n,r){var o=c(this),i=null==n?void 0:n[t];return void 0!==i?i.call(n,o,r):e.call(String(o),n,r)},function(t,r){if(!y&&g||"string"==typeof r&&-1===r.indexOf(m)){var i=n(e,t,this,r);if(i.done)return i.value}var c=o(t),h=String(this),d="function"==typeof r;d||(r=String(r));var v=c.global;if(v){var _=c.unicode;c.lastIndex=0}for(var x=[];;){var w=f(c,h);if(null===w)break;if(x.push(w),!v)break;""===String(w[0])&&(c.lastIndex=s(h,a(c.lastIndex),_))}for(var O,S="",j=0,A=0;A=j&&(S+=h.slice(j,E)+R,j=E+k.length)}return S+h.slice(j)}];function b(t,n,r,o,a,u){var c=r+t.length,s=o.length,f=v;return void 0!==a&&(a=i(a),f=d),e.call(u,f,(function(e,i){var u;switch(i.charAt(0)){case"$":return"$";case"&":return t;case"`":return n.slice(0,r);case"'":return n.slice(c);case"<":u=a[i.slice(1,-1)];break;default:var f=+i;if(0===f)return e;if(f>s){var l=h(f/10);return 0===l?e:l<=s?void 0===o[l-1]?i.charAt(1):o[l-1]+i.charAt(1):e}u=o[f-1]}return void 0===u?"":u}))}}))},function(t,e,n){"use strict";var r=n(0),o=n(30).map,i=n(51),a=n(17),u=i("map"),c=a("map");r({target:"Array",proto:!0,forced:!u||!c},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},function(t,e,n){var r=n(109),o=n(71).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},function(t,e,n){"use strict";var r,o,i=n(105),a=n(177),u=RegExp.prototype.exec,c=String.prototype.replace,s=u,f=(r=/a/,o=/b*/g,u.call(r,"a"),u.call(o,"a"),0!==r.lastIndex||0!==o.lastIndex),l=a.UNSUPPORTED_Y||a.BROKEN_CARET,p=void 0!==/()??/.exec("")[1];(f||p||l)&&(s=function(t){var e,n,r,o,a=this,s=l&&a.sticky,h=i.call(a),d=a.source,v=0,y=t;return s&&(-1===(h=h.replace("y","")).indexOf("g")&&(h+="g"),y=String(t).slice(a.lastIndex),a.lastIndex>0&&(!a.multiline||a.multiline&&"\n"!==t[a.lastIndex-1])&&(d="(?: "+d+")",y=" "+y,v++),n=new RegExp("^(?:"+d+")",h)),p&&(n=new RegExp("^"+d+"$(?!\\s)",h)),f&&(e=a.lastIndex),r=u.call(s?n:a,y),s?r?(r.input=r.input.slice(v),r[0]=r[0].slice(v),r.index=a.lastIndex,a.lastIndex+=r[0].length):a.lastIndex=0:f&&r&&(a.lastIndex=a.global?r.index+r[0].length:e),p&&r&&r.length>1&&c.call(r[0],n,(function(){for(o=1;of;)if((u=c[f++])!=u)return!0}else for(;s>f;f++)if((t||f in c)&&c[f]===n)return t||f||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},function(t,e){t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(t,e,n){var r=n(106),o=Function.toString;"function"!=typeof r.inspectSource&&(r.inspectSource=function(t){return o.call(t)}),t.exports=r.inspectSource},function(t,e,n){"use strict";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:r},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,n){var r=n(6),o=n(11),i=n(50),a=n(117),u=i("IE_PROTO"),c=Object.prototype;t.exports=a?Object.getPrototypeOf:function(t){return t=o(t),r(t,u)?t[u]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?c:null}},function(t,e,n){var r={};r[n(1)("toStringTag")]="z",t.exports="[object z]"===String(r)},function(t,e,n){var r,o,i=n(3),a=n(125),u=i.process,c=u&&u.versions,s=c&&c.v8;s?o=(r=s.split("."))[0]+r[1]:a&&(!(r=a.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\/(\d+)/))&&(o=r[1]),t.exports=o&&+o},function(t,e,n){"use strict";var r=n(0),o=n(4),i=n(37),a=n(110),u=n(12),c=n(15),s=n(52),f=n(1),l=n(51),p=n(17),h=l("slice"),d=p("slice",{ACCESSORS:!0,0:0,1:2}),v=f("species"),y=[].slice,g=Math.max;r({target:"Array",proto:!0,forced:!h||!d},{slice:function(t,e){var n,r,f,l=c(this),p=u(l.length),h=a(t,p),d=a(void 0===e?p:e,p);if(i(l)&&("function"!=typeof(n=l.constructor)||n!==Array&&!i(n.prototype)?o(n)&&null===(n=n[v])&&(n=void 0):n=void 0,n===Array||void 0===n))return y.call(l,h,d);for(r=new(void 0===n?Array:n)(g(d-h,0)),f=0;h-1&&t%1==0&&t<=n}},function(t,e,n){var r=n(14),o=n(88),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;t.exports=function(t,e){if(r(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!o(t))||(a.test(t)||!i.test(t)||null!=e&&t in Object(e))}},function(t,e,n){var r=n(32),o=n(25),i="[object Symbol]";t.exports=function(t){return"symbol"==typeof t||o(t)&&r(t)==i}},function(t,e){t.exports=function(t){return t}},function(t,e,n){"use strict";n(93);n(53),n(54),n(79),n(28),n(80),n(13),n(94),n(27),n(31);function r(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if(Symbol.iterator in Object(t)||"[object Arguments]"===Object.prototype.toString.call(t)){var n=[],r=!0,o=!1,i=void 0;try{for(var a,u=t[Symbol.iterator]();!(r=(a=u.next()).done)&&(n.push(a.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{r||null==u.return||u.return()}finally{if(o)throw i}}return n}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}n.d(e,"a",(function(){return r}))},function(t,e,n){var r=n(98),o=n(35),i=n(1)("iterator");t.exports=function(t){if(null!=t)return t[i]||t["@@iterator"]||o[r(t)]}},function(t,e,n){var r=n(0),o=n(11),i=n(48);r({target:"Object",stat:!0,forced:n(2)((function(){i(1)}))},{keys:function(t){return i(o(t))}})},function(t,e,n){n(0)({target:"Array",stat:!0},{isArray:n(37)})},function(t,e,n){"use strict";var r=n(9),o=n(7),i=n(2),a=n(105),u=RegExp.prototype,c=u.toString,s=i((function(){return"/a/b"!=c.call({source:"a",flags:"b"})})),f="toString"!=c.name;(s||f)&&r(RegExp.prototype,"toString",(function(){var t=o(this),e=String(t.source),n=t.flags;return"/"+e+"/"+String(void 0===n&&t instanceof RegExp&&!("flags"in u)?a.call(t):n)}),{unsafe:!0})},function(t,e,n){var r=n(1),o=n(44),i=n(8),a=r("unscopables"),u=Array.prototype;null==u[a]&&i.f(u,a,{configurable:!0,value:o(null)}),t.exports=function(t){u[a][t]=!0}},function(t,e,n){var r=n(2),o=/#|\.prototype\./,i=function(t,e){var n=u[a(t)];return n==s||n!=c&&("function"==typeof e?r(e):!!e)},a=i.normalize=function(t){return String(t).replace(o,".").toLowerCase()},u=i.data={},c=i.NATIVE="N",s=i.POLYFILL="P";t.exports=i},function(t,e,n){var r=n(7),o=n(184);t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(n,[]),e=n instanceof Array}catch(t){}return function(n,i){return r(n),o(i),e?t.call(n,i):n.__proto__=i,n}}():void 0)},function(t,e,n){var r=n(76),o=n(18),i=n(1)("toStringTag"),a="Arguments"==o(function(){return arguments}());t.exports=r?o:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),i))?n:a?o(e):"Object"==(r=o(e))&&"function"==typeof e.callee?"Arguments":r}},function(t,e,n){var r=n(7),o=n(36),i=n(1)("species");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||null==(n=r(a)[i])?e:o(n)}},function(t,e,n){var r=n(49),o=n(22),i=function(t){return function(e,n){var i,a,u=String(o(e)),c=r(n),s=u.length;return c<0||c>=s?t?"":void 0:(i=u.charCodeAt(c))<55296||i>56319||c+1===s||(a=u.charCodeAt(c+1))<56320||a>57343?t?u.charAt(c):i:t?u.slice(c,c+2):a-56320+(i-55296<<10)+65536}};t.exports={codeAt:i(!1),charAt:i(!0)}},function(t,e,n){"use strict";var r=n(0),o=n(131);r({target:"Array",proto:!0,forced:[].forEach!=o},{forEach:o})},function(t,e,n){var r=n(165);t.exports=function(t){if(r(t))throw TypeError("The method doesn't accept regular expressions");return t}},function(t,e,n){var r=n(1)("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[r]=!1,"/./"[t](e)}catch(t){}}return!1}},function(t,e,n){var r=n(3),o=n(129),i=n(131),a=n(10);for(var u in o){var c=r[u],s=c&&c.prototype;if(s&&s.forEach!==i)try{a(s,"forEach",i)}catch(t){s.forEach=i}}},function(t,e,n){"use strict";var r=n(7);t.exports=function(){var t=r(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},function(t,e,n){var r=n(3),o=n(67),i=r["__core-js_shared__"]||o("__core-js_shared__",{});t.exports=i},function(t,e,n){var r=n(5),o=n(2),i=n(68);t.exports=!r&&!o((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},function(t,e,n){var r=n(69);t.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},function(t,e,n){var r=n(6),o=n(15),i=n(70).indexOf,a=n(34);t.exports=function(t,e){var n,u=o(t),c=0,s=[];for(n in u)!r(a,n)&&r(u,n)&&s.push(n);for(;e.length>c;)r(u,n=e[c++])&&(~i(s,n)||s.push(n));return s}},function(t,e,n){var r=n(49),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},function(t,e,n){var r=n(20);t.exports=r("document","documentElement")},function(t,e,n){var r=n(3);t.exports=r},function(t,e,n){"use strict";var r=n(0),o=n(172),i=n(75),a=n(97),u=n(43),c=n(10),s=n(9),f=n(1),l=n(19),p=n(35),h=n(116),d=h.IteratorPrototype,v=h.BUGGY_SAFARI_ITERATORS,y=f("iterator"),g=function(){return this};t.exports=function(t,e,n,f,h,m,b){o(n,e,f);var _,x,w,O=function(t){if(t===h&&E)return E;if(!v&&t in A)return A[t];switch(t){case"keys":case"values":case"entries":return function(){return new n(this,t)}}return function(){return new n(this)}},S=e+" Iterator",j=!1,A=t.prototype,k=A[y]||A["@@iterator"]||h&&A[h],E=!v&&k||O(h),C="Array"==e&&A.entries||k;if(C&&(_=i(C.call(new t)),d!==Object.prototype&&_.next&&(l||i(_)===d||(a?a(_,d):"function"!=typeof _[y]&&c(_,y,g)),u(_,S,!0,!0),l&&(p[S]=g))),"values"==h&&k&&"values"!==k.name&&(j=!0,E=function(){return k.call(this)}),l&&!b||A[y]===E||c(A,y,E),p[e]=E,h)if(x={values:O("values"),keys:m?E:O("keys"),entries:O("entries")},b)for(w in x)!v&&!j&&w in A||s(A,w,x[w]);else r({target:e,proto:!0,forced:v||j},x);return x}},function(t,e,n){var r=n(6),o=n(115),i=n(24),a=n(8);t.exports=function(t,e){for(var n=o(e),u=a.f,c=i.f,s=0;s=51&&/native code/.test(F))return!1;var t=F.resolve(1),e=function(t){t((function(){}),(function(){}))};return(t.constructor={})[L]=e,!(t.then((function(){}))instanceof e)})),X=K||!w((function(t){F.all(t).catch((function(){}))})),Y=function(t){var e;return!(!y(t)||"function"!=typeof(e=t.then))&&e},J=function(t,e,n){if(!e.notified){e.notified=!0;var r=e.reactions;j((function(){for(var o=e.value,i=1==e.state,a=0;r.length>a;){var u,c,s,f=r[a++],l=i?f.ok:f.fail,p=f.resolve,h=f.reject,d=f.domain;try{l?(i||(2===e.rejection&&et(t,e),e.rejection=1),!0===l?u=o:(d&&d.enter(),u=l(o),d&&(d.exit(),s=!0)),u===f.promise?h(U("Promise-chain cycle")):(c=Y(u))?c.call(u,p,h):p(u)):h(o)}catch(t){d&&!s&&d.exit(),h(t)}}e.reactions=[],e.notified=!1,n&&!e.rejection&&Z(t,e)}))}},Q=function(t,e,n){var r,o;G?((r=z.createEvent("Event")).promise=e,r.reason=n,r.initEvent(t,!1,!0),s.dispatchEvent(r)):r={promise:e,reason:n},(o=s["on"+t])?o(r):"unhandledrejection"===t&&k("Unhandled promise rejection",n)},Z=function(t,e){S.call(s,(function(){var n,r=e.value;if(tt(e)&&(n=C((function(){W?B.emit("unhandledRejection",r,t):Q("unhandledrejection",t,r)})),e.rejection=W||tt(e)?2:1,n.error))throw n.value}))},tt=function(t){return 1!==t.rejection&&!t.parent},et=function(t,e){S.call(s,(function(){W?B.emit("rejectionHandled",t):Q("rejectionhandled",t,e.value)}))},nt=function(t,e,n,r){return function(o){t(e,n,o,r)}},rt=function(t,e,n,r){e.done||(e.done=!0,r&&(e=r),e.value=n,e.state=2,J(t,e,!0))},ot=function(t,e,n,r){if(!e.done){e.done=!0,r&&(e=r);try{if(t===n)throw U("Promise can't be resolved itself");var o=Y(n);o?j((function(){var r={done:!1};try{o.call(n,nt(ot,t,r,e),nt(rt,t,r,e))}catch(n){rt(t,r,n,e)}})):(e.value=n,e.state=1,J(t,e,!1))}catch(n){rt(t,{done:!1},n,e)}}};K&&(F=function(t){m(this,F,I),g(t),r.call(this);var e=M(this);try{t(nt(ot,this,e),nt(rt,this,e))}catch(t){rt(this,e,t)}},(r=function(t){D(this,{type:I,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=h(F.prototype,{then:function(t,e){var n=N(this),r=q(O(this,F));return r.ok="function"!=typeof t||t,r.fail="function"==typeof e&&e,r.domain=W?B.domain:void 0,n.parent=!0,n.reactions.push(r),0!=n.state&&J(this,n,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r,e=M(t);this.promise=t,this.resolve=nt(ot,t,e),this.reject=nt(rt,t,e)},E.f=q=function(t){return t===F||t===i?new o(t):H(t)},c||"function"!=typeof l||(a=l.prototype.then,p(l.prototype,"then",(function(t,e){var n=this;return new F((function(t,e){a.call(n,t,e)})).then(t,e)}),{unsafe:!0}),"function"==typeof V&&u({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return A(F,V.apply(s,arguments))}}))),u({global:!0,wrap:!0,forced:K},{Promise:F}),d(F,I,!1,!0),v(I),i=f(I),u({target:I,stat:!0,forced:K},{reject:function(t){var e=q(this);return e.reject.call(void 0,t),e.promise}}),u({target:I,stat:!0,forced:c||K},{resolve:function(t){return A(c&&this===i?F:this,t)}}),u({target:I,stat:!0,forced:X},{all:function(t){var e=this,n=q(e),r=n.resolve,o=n.reject,i=C((function(){var n=g(e.resolve),i=[],a=0,u=1;x(t,(function(t){var c=a++,s=!1;i.push(void 0),u++,n.call(e,t).then((function(t){s||(s=!0,i[c]=t,--u||r(i))}),o)})),--u||r(i)}));return i.error&&o(i.value),n.promise},race:function(t){var e=this,n=q(e),r=n.reject,o=C((function(){var o=g(e.resolve);x(t,(function(t){o.call(e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},function(t,e,n){var r=n(3);t.exports=r.Promise},function(t,e,n){var r=n(1),o=n(35),i=r("iterator"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(o.Array===t||a[i]===t)}},function(t,e,n){var r=n(7);t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(e){var i=t.return;throw void 0!==i&&r(i.call(t)),e}}},function(t,e,n){var r=n(1)("iterator"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){o=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(t){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},t(i)}catch(t){}return n}},function(t,e,n){var r,o,i,a=n(3),u=n(2),c=n(18),s=n(45),f=n(111),l=n(68),p=n(124),h=a.location,d=a.setImmediate,v=a.clearImmediate,y=a.process,g=a.MessageChannel,m=a.Dispatch,b=0,_={},x=function(t){if(_.hasOwnProperty(t)){var e=_[t];delete _[t],e()}},w=function(t){return function(){x(t)}},O=function(t){x(t.data)},S=function(t){a.postMessage(t+"",h.protocol+"//"+h.host)};d&&v||(d=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return _[++b]=function(){("function"==typeof t?t:Function(t)).apply(void 0,e)},r(b),b},v=function(t){delete _[t]},"process"==c(y)?r=function(t){y.nextTick(w(t))}:m&&m.now?r=function(t){m.now(w(t))}:g&&!p?(i=(o=new g).port2,o.port1.onmessage=O,r=s(i.postMessage,i,1)):!a.addEventListener||"function"!=typeof postMessage||a.importScripts||u(S)?r="onreadystatechange"in l("script")?function(t){f.appendChild(l("script")).onreadystatechange=function(){f.removeChild(this),x(t)}}:function(t){setTimeout(w(t),0)}:(r=S,a.addEventListener("message",O,!1))),t.exports={set:d,clear:v}},function(t,e,n){var r=n(125);t.exports=/(iphone|ipod|ipad).*applewebkit/i.test(r)},function(t,e,n){var r=n(20);t.exports=r("navigator","userAgent")||""},function(t,e,n){var r=n(7),o=n(4),i=n(127);t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},function(t,e,n){"use strict";var r=n(36),o=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=r})),this.resolve=r(e),this.reject=r(n)};t.exports.f=function(t){return new o(t)}},function(t,e,n){var r=n(4),o=n(37),i=n(1)("species");t.exports=function(t,e){var n;return o(t)&&("function"!=typeof(n=t.constructor)||n!==Array&&!o(n.prototype)?r(n)&&null===(n=n[i])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===e?0:e)}},function(t,e){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},function(t,e,n){var r=function(t){"use strict";var e,n=Object.prototype,r=n.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",u=o.toStringTag||"@@toStringTag";function c(t,e,n,r){var o=e&&e.prototype instanceof v?e:v,i=Object.create(o.prototype),a=new k(r||[]);return i._invoke=function(t,e,n){var r=f;return function(o,i){if(r===p)throw new Error("Generator is already running");if(r===h){if("throw"===o)throw i;return C()}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var u=S(a,n);if(u){if(u===d)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===f)throw r=h,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=p;var c=s(t,e,n);if("normal"===c.type){if(r=n.done?h:l,c.arg===d)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r=h,n.method="throw",n.arg=c.arg)}}}(t,n,a),i}function s(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=c;var f="suspendedStart",l="suspendedYield",p="executing",h="completed",d={};function v(){}function y(){}function g(){}var m={};m[i]=function(){return this};var b=Object.getPrototypeOf,_=b&&b(b(E([])));_&&_!==n&&r.call(_,i)&&(m=_);var x=g.prototype=v.prototype=Object.create(m);function w(t){["next","throw","return"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function O(t){var e;this._invoke=function(n,o){function i(){return new Promise((function(e,i){!function e(n,o,i,a){var u=s(t[n],t,o);if("throw"!==u.type){var c=u.arg,f=c.value;return f&&"object"==typeof f&&r.call(f,"__await")?Promise.resolve(f.__await).then((function(t){e("next",t,i,a)}),(function(t){e("throw",t,i,a)})):Promise.resolve(f).then((function(t){c.value=t,i(c)}),(function(t){return e("throw",t,i,a)}))}a(u.arg)}(n,o,e,i)}))}return e=e?e.then(i,i):i()}}function S(t,n){var r=t.iterator[n.method];if(r===e){if(n.delegate=null,"throw"===n.method){if(t.iterator.return&&(n.method="return",n.arg=e,S(t,n),"throw"===n.method))return d;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return d}var o=s(r,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,d;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,d):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,d)}function j(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function A(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function k(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(j,this),this.reset(!0)}function E(t){if(t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,a=function n(){for(;++o=0;--i){var a=this.tryEntries[i],u=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var c=r.call(a,"catchLoc"),s=r.call(a,"finallyLoc");if(c&&s){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),A(n),d}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var o=r.arg;A(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:E(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),d}},t}(t.exports);try{regeneratorRuntime=r}catch(t){Function("r","regeneratorRuntime = r")(r)}},function(t,e,n){"use strict";var r=n(30).forEach,o=n(38),i=n(17),a=o("forEach"),u=i("forEach");t.exports=a&&u?[].forEach:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}},function(t,e,n){var r=n(2);t.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},function(t,e,n){var r=n(0),o=n(2),i=n(11),a=n(75),u=n(117);r({target:"Object",stat:!0,forced:o((function(){a(1)})),sham:!u},{getPrototypeOf:function(t){return a(i(t))}})},function(t,e,n){n(0)({target:"Object",stat:!0,sham:!n(5)},{create:n(44)})},function(t,e,n){var r=n(1);e.f=r},function(t,e,n){var r=n(112),o=n(6),i=n(135),a=n(8).f;t.exports=function(t){var e=r.Symbol||(r.Symbol={});o(e,t)||a(e,t,{value:i.f(t)})}},function(t,e){t.exports=function(t,e){for(var n=-1,r=e.length,o=t.length;++np))return!1;var d=f.get(t);if(d&&f.get(e))return d==e;var v=-1,y=!0,g=n&u?new r:void 0;for(f.set(t,e),f.set(e,t);++v-1&&t%1==0&&t=e||n<0||p&&t-f>=a}function x(){var t=y();if(_(t))return w(t);c=setTimeout(x,function(t){var n=e-(t-s);return p?v(n,a-(t-f)):n}(t))}function w(t){return c=void 0,h&&o?b(t):(o=i=void 0,u)}function O(){var t=y(),n=_(t);if(o=arguments,i=this,s=t,n){if(void 0===c)return function(t){return f=t,c=setTimeout(x,e),l?b(t):u}(s);if(p)return c=setTimeout(x,e),b(s)}return void 0===c&&(c=setTimeout(x,e)),u}return e=m(e)||0,g(r)&&(l=!!r.leading,a=(p="maxWait"in r)?d(m(r.maxWait)||0,e):a,h="trailing"in r?!!r.trailing:h),O.cancel=function(){void 0!==c&&clearTimeout(c),f=0,o=s=i=c=void 0},O.flush=function(){return void 0===c?u:w(y())},O}},function(t,e,n){"use strict";var r=n(0),o=n(30).some,i=n(38),a=n(17),u=i("some"),c=a("some");r({target:"Array",proto:!0,forced:!u||!c},{some:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},function(t,e,n){"use strict";var r=n(0),o=n(70).indexOf,i=n(38),a=n(17),u=[].indexOf,c=!!u&&1/[1].indexOf(1,-0)<0,s=i("indexOf"),f=a("indexOf",{ACCESSORS:!0,1:0});r({target:"Array",proto:!0,forced:c||!s||!f},{indexOf:function(t){return c?u.apply(this,arguments)||0:o(this,t,arguments.length>1?arguments[1]:void 0)}})},function(t,e){t.exports=function(t,e,n){if(!(t instanceof e))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation");return t}},function(t,e,n){var r=n(4),o=n(18),i=n(1)("match");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:"RegExp"==o(t))}},function(t,e,n){"use strict";n(42);var r=n(9),o=n(2),i=n(1),a=n(65),u=n(10),c=i("species"),s=!o((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$")})),f="$0"==="a".replace(/./,"$0"),l=i("replace"),p=!!/./[l]&&""===/./[l]("a","$0"),h=!o((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2!==n.length||"a"!==n[0]||"b"!==n[1]}));t.exports=function(t,e,n,l){var d=i(t),v=!o((function(){var e={};return e[d]=function(){return 7},7!=""[t](e)})),y=v&&!o((function(){var e=!1,n=/a/;return"split"===t&&((n={}).constructor={},n.constructor[c]=function(){return n},n.flags="",n[d]=/./[d]),n.exec=function(){return e=!0,null},n[d](""),!e}));if(!v||!y||"replace"===t&&(!s||!f||p)||"split"===t&&!h){var g=/./[d],m=n(d,""[t],(function(t,e,n,r,o){return e.exec===a?v&&!o?{done:!0,value:g.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),{REPLACE_KEEPS_$0:f,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:p}),b=m[0],_=m[1];r(String.prototype,t,b),r(RegExp.prototype,d,2==e?function(t,e){return _.call(t,this,e)}:function(t){return _.call(t,this)})}l&&u(RegExp.prototype[d],"sham",!0)}},function(t,e,n){"use strict";var r=n(100).charAt;t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},function(t,e,n){var r=n(18),o=n(65);t.exports=function(t,e){var n=t.exec;if("function"==typeof n){var i=n.call(t,e);if("object"!=typeof i)throw TypeError("RegExp exec method returned something other than an Object or null");return i}if("RegExp"!==r(t))throw TypeError("RegExp#exec called on incompatible receiver");return o.call(t,e)}},function(t,e,n){"use strict";var r=n(0),o=n(2),i=n(37),a=n(4),u=n(11),c=n(12),s=n(52),f=n(128),l=n(51),p=n(1),h=n(77),d=p("isConcatSpreadable"),v=h>=51||!o((function(){var t=[];return t[d]=!1,t.concat()[0]!==t})),y=l("concat"),g=function(t){if(!a(t))return!1;var e=t[d];return void 0!==e?!!e:i(t)};r({target:"Array",proto:!0,forced:!v||!y},{concat:function(t){var e,n,r,o,i,a=u(this),l=f(a,0),p=0;for(e=-1,r=arguments.length;e9007199254740991)throw TypeError("Maximum allowed index exceeded");for(n=0;n=9007199254740991)throw TypeError("Maximum allowed index exceeded");s(l,p++,i)}return l.length=p,l}})},function(t,e,n){"use strict";var r=n(0),o=n(33),i=n(15),a=n(38),u=[].join,c=o!=Object,s=a("join",",");r({target:"Array",proto:!0,forced:c||!s},{join:function(t){return u.call(i(this),void 0===t?",":t)}})},function(t,e,n){var r=n(5),o=n(8),i=n(7),a=n(48);t.exports=r?Object.defineProperties:function(t,e){i(t);for(var n,r=a(e),u=r.length,c=0;u>c;)o.f(t,n=r[c++],e[n]);return t}},function(t,e,n){"use strict";var r=n(116).IteratorPrototype,o=n(44),i=n(29),a=n(43),u=n(35),c=function(){return this};t.exports=function(t,e,n){var s=e+" Iterator";return t.prototype=o(r,{next:i(1,n)}),a(t,s,!1,!0),u[s]=c,t}},function(t,e,n){var r=n(9);t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},function(t,e,n){"use strict";var r=n(20),o=n(8),i=n(1),a=n(5),u=i("species");t.exports=function(t){var e=r(t),n=o.f;a&&e&&!e[u]&&n(e,u,{configurable:!0,get:function(){return this}})}},function(t,e,n){"use strict";var r=n(5),o=n(2),i=n(48),a=n(74),u=n(73),c=n(11),s=n(33),f=Object.assign,l=Object.defineProperty;t.exports=!f||o((function(){if(r&&1!==f({b:1},f(l({},"a",{enumerable:!0,get:function(){l(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol();return t[n]=7,"abcdefghijklmnopqrst".split("").forEach((function(t){e[t]=t})),7!=f({},t)[n]||"abcdefghijklmnopqrst"!=i(f({},e)).join("")}))?function(t,e){for(var n=c(t),o=arguments.length,f=1,l=a.f,p=u.f;o>f;)for(var h,d=s(arguments[f++]),v=l?i(d).concat(l(d)):i(d),y=v.length,g=0;y>g;)h=v[g++],r&&!p.call(d,h)||(n[h]=d[h]);return n}:f},function(t,e,n){"use strict";var r=n(0),o=n(70).includes,i=n(95);r({target:"Array",proto:!0,forced:!n(17)("indexOf",{ACCESSORS:!0,1:0})},{includes:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i("includes")},function(t,e,n){"use strict";var r=n(2);function o(t,e){return RegExp(t,e)}e.UNSUPPORTED_Y=r((function(){var t=o("a","y");return t.lastIndex=2,null!=t.exec("abcd")})),e.BROKEN_CARET=r((function(){var t=o("^r","gy");return t.lastIndex=2,null!=t.exec("str")}))},function(t,e,n){"use strict";var r=n(0),o=n(102),i=n(22);r({target:"String",proto:!0,forced:!n(103)("includes")},{includes:function(t){return!!~String(i(this)).indexOf(o(t),arguments.length>1?arguments[1]:void 0)}})},function(t,e,n){"use strict";var r=n(45),o=n(11),i=n(121),a=n(120),u=n(12),c=n(52),s=n(91);t.exports=function(t){var e,n,f,l,p,h,d=o(t),v="function"==typeof this?this:Array,y=arguments.length,g=y>1?arguments[1]:void 0,m=void 0!==g,b=s(d),_=0;if(m&&(g=r(g,y>2?arguments[2]:void 0,2)),null==b||v==Array&&a(b))for(n=new v(e=u(d.length));e>_;_++)h=m?g(d[_],_):d[_],c(n,_,h);else for(p=(l=b.call(d)).next,n=new v;!(f=p.call(l)).done;_++)h=m?i(l,g,[f.value,_],!0):f.value,c(n,_,h);return n.length=_,n}},function(t,e,n){var r=n(156);t.exports=function(t,e,n){var o=null==t?void 0:r(t,e);return void 0===o?n:o}},function(t,e){t.exports=function(t){var e=null==t?0:t.length;return e?t[e-1]:void 0}},function(t,e,n){t.exports=n(297)},function(t,e,n){var r=n(3),o=n(72),i=r.WeakMap;t.exports="function"==typeof i&&/native code/.test(o(i))},function(t,e,n){var r=n(4);t.exports=function(t){if(!r(t)&&null!==t)throw TypeError("Can't set "+String(t)+" as a prototype");return t}},function(t,e,n){var r=n(7),o=n(120),i=n(12),a=n(45),u=n(91),c=n(121),s=function(t,e){this.stopped=t,this.result=e};(t.exports=function(t,e,n,f,l){var p,h,d,v,y,g,m,b=a(e,n,f?2:1);if(l)p=t;else{if("function"!=typeof(h=u(t)))throw TypeError("Target is not iterable");if(o(h)){for(d=0,v=i(t.length);v>d;d++)if((y=f?b(r(m=t[d])[0],m[1]):b(t[d]))&&y instanceof s)return y;return new s(!1)}p=h.call(t)}for(g=p.next;!(m=g.call(p)).done;)if("object"==typeof(y=c(p,b,m.value,f))&&y&&y instanceof s)return y;return new s(!1)}).stop=function(t){return new s(!0,t)}},function(t,e,n){var r,o,i,a,u,c,s,f,l=n(3),p=n(24).f,h=n(18),d=n(123).set,v=n(124),y=l.MutationObserver||l.WebKitMutationObserver,g=l.process,m=l.Promise,b="process"==h(g),_=p(l,"queueMicrotask"),x=_&&_.value;x||(r=function(){var t,e;for(b&&(t=g.domain)&&t.exit();o;){e=o.fn,o=o.next;try{e()}catch(t){throw o?a():i=void 0,t}}i=void 0,t&&t.enter()},b?a=function(){g.nextTick(r)}:y&&!v?(u=!0,c=document.createTextNode(""),new y(r).observe(c,{characterData:!0}),a=function(){c.data=u=!u}):m&&m.resolve?(s=m.resolve(void 0),f=s.then,a=function(){f.call(s,r)}):a=function(){d.call(l,r)}),t.exports=x||function(t){var e={fn:t,next:void 0};i&&(i.next=e),o||(o=e,a()),i=e}},function(t,e,n){var r=n(3);t.exports=function(t,e){var n=r.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))}},function(t,e){t.exports=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}}},function(t,e,n){var r=n(0),o=n(175);r({target:"Object",stat:!0,forced:Object.assign!==o},{assign:o})},function(t,e,n){"use strict";var r=n(0),o=n(19),i=n(119),a=n(2),u=n(20),c=n(99),s=n(126),f=n(9);r({target:"Promise",proto:!0,real:!0,forced:!!i&&a((function(){i.prototype.finally.call({then:function(){}},(function(){}))}))},{finally:function(t){var e=c(this,u("Promise")),n="function"==typeof t;return this.then(n?function(n){return s(e,t()).then((function(){return n}))}:t,n?function(n){return s(e,t()).then((function(){throw n}))}:t)}}),o||"function"!=typeof i||i.prototype.finally||f(i.prototype,"finally",u("Promise").prototype.finally)},function(t,e,n){"use strict";var r=n(76),o=n(98);t.exports=r?{}.toString:function(){return"[object "+o(this)+"]"}},function(t,e,n){"use strict";var r=n(0),o=n(193).left,i=n(38),a=n(17),u=i("reduce"),c=a("reduce",{1:0});r({target:"Array",proto:!0,forced:!u||!c},{reduce:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},function(t,e,n){var r=n(36),o=n(11),i=n(33),a=n(12),u=function(t){return function(e,n,u,c){r(n);var s=o(e),f=i(s),l=a(s.length),p=t?l-1:0,h=t?-1:1;if(u<2)for(;;){if(p in f){c=f[p],p+=h;break}if(p+=h,t?p<0:l<=p)throw TypeError("Reduce of empty array with no initial value")}for(;t?p>=0:l>p;p+=h)p in f&&(c=n(c,f[p],p,s));return c}};t.exports={left:u(!1),right:u(!0)}},function(t,e,n){var r=n(0),o=n(132),i=n(2),a=n(4),u=n(195).onFreeze,c=Object.freeze;r({target:"Object",stat:!0,forced:i((function(){c(1)})),sham:!o},{freeze:function(t){return c&&a(t)?c(u(t)):t}})},function(t,e,n){var r=n(34),o=n(4),i=n(6),a=n(8).f,u=n(47),c=n(132),s=u("meta"),f=0,l=Object.isExtensible||function(){return!0},p=function(t){a(t,s,{value:{objectID:"O"+ ++f,weakData:{}}})},h=t.exports={REQUIRED:!1,fastKey:function(t,e){if(!o(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!i(t,s)){if(!l(t))return"F";if(!e)return"E";p(t)}return t[s].objectID},getWeakData:function(t,e){if(!i(t,s)){if(!l(t))return!0;if(!e)return!1;p(t)}return t[s].weakData},onFreeze:function(t){return c&&h.REQUIRED&&l(t)&&!i(t,s)&&p(t),t}};r[s]=!0},function(t,e,n){var r=n(0),o=n(5),i=n(115),a=n(15),u=n(24),c=n(52);r({target:"Object",stat:!0,sham:!o},{getOwnPropertyDescriptors:function(t){for(var e,n,r=a(t),o=u.f,s=i(r),f={},l=0;s.length>l;)void 0!==(n=o(r,e=s[l++]))&&c(f,e,n);return f}})},function(t,e,n){"use strict";var r,o=n(0),i=n(24).f,a=n(12),u=n(102),c=n(22),s=n(103),f=n(19),l="".startsWith,p=Math.min,h=s("startsWith");o({target:"String",proto:!0,forced:!!(f||h||(r=i(String.prototype,"startsWith"),!r||r.writable))&&!h},{startsWith:function(t){var e=String(c(this));u(t);var n=a(p(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return l?l.call(e,r,n):e.slice(n,n+r.length)===r}})},function(t,e,n){var r=n(15),o=n(64).f,i={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&"[object Window]"==i.call(t)?function(t){try{return o(t)}catch(t){return a.slice()}}(t):o(r(t))}},function(t,e,n){var r=n(0),o=n(179);r({target:"Array",stat:!0,forced:!n(122)((function(t){Array.from(t)}))},{from:o})},function(t,e,n){var r=n(137),o=n(201);t.exports=function t(e,n,i,a,u){var c=-1,s=e.length;for(i||(i=o),u||(u=[]);++c0&&i(f)?n>1?t(f,n-1,i,a,u):r(u,f):a||(u[u.length]=f)}return u}},function(t,e,n){var r=n(39),o=n(81),i=n(14),a=r?r.isConcatSpreadable:void 0;t.exports=function(t){return i(t)||o(t)||!!(a&&t&&t[a])}},function(t,e,n){var r=n(32),o=n(25),i="[object Arguments]";t.exports=function(t){return o(t)&&r(t)==i}},function(t,e,n){var r=n(39),o=Object.prototype,i=o.hasOwnProperty,a=o.toString,u=r?r.toStringTag:void 0;t.exports=function(t){var e=i.call(t,u),n=t[u];try{t[u]=void 0;var r=!0}catch(t){}var o=a.call(t);return r&&(e?t[u]=n:delete t[u]),o}},function(t,e){var n=Object.prototype.toString;t.exports=function(t){return n.call(t)}},function(t,e,n){var r=n(206),o=n(262),i=n(89),a=n(14),u=n(272);t.exports=function(t){return"function"==typeof t?t:null==t?i:"object"==typeof t?a(t)?o(t[0],t[1]):r(t):u(t)}},function(t,e,n){var r=n(207),o=n(261),i=n(155);t.exports=function(t){var e=o(t);return 1==e.length&&e[0][2]?i(e[0][0],e[0][1]):function(n){return n===t||r(n,t,e)}}},function(t,e,n){var r=n(139),o=n(143),i=1,a=2;t.exports=function(t,e,n,u){var c=n.length,s=c,f=!u;if(null==t)return!s;for(t=Object(t);c--;){var l=n[c];if(f&&l[2]?l[1]!==t[l[0]]:!(l[0]in t))return!1}for(;++c-1}},function(t,e,n){var r=n(56);t.exports=function(t,e){var n=this.__data__,o=r(n,t);return o<0?(++this.size,n.push([t,e])):n[o][1]=e,this}},function(t,e,n){var r=n(55);t.exports=function(){this.__data__=new r,this.size=0}},function(t,e){t.exports=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}},function(t,e){t.exports=function(t){return this.__data__.get(t)}},function(t,e){t.exports=function(t){return this.__data__.has(t)}},function(t,e,n){var r=n(55),o=n(82),i=n(84),a=200;t.exports=function(t,e){var n=this.__data__;if(n instanceof r){var u=n.__data__;if(!o||u.length0){if(++e>=n)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}},function(t,e,n){var r=n(145),o=n(284),i=n(289),a=n(146),u=n(290),c=n(85),s=200;t.exports=function(t,e,n){var f=-1,l=o,p=t.length,h=!0,d=[],v=d;if(n)h=!1,l=i;else if(p>=s){var y=e?null:u(t);if(y)return c(y);h=!1,l=a,v=new r}else v=e?[]:d;t:for(;++f-1}},function(t,e,n){var r=n(286),o=n(287),i=n(288);t.exports=function(t,e,n){return e==e?i(t,e,n):r(t,o,n)}},function(t,e){t.exports=function(t,e,n,r){for(var o=t.length,i=n+(r?1:-1);r?i--:++i-1}function Vo(t,e){return e instanceof t||e&&(e.name===t.name||e._name===t._name)}function qo(t,e){for(var n in e)t[n]=e[n];return t}var Ho={name:"RouterView",functional:!0,props:{name:{type:String,default:"default"}},render:function(t,e){var n=e.props,r=e.children,o=e.parent,i=e.data;i.routerView=!0;for(var a=o.$createElement,u=n.name,c=o.$route,s=o._routerViewCache||(o._routerViewCache={}),f=0,l=!1;o&&o._routerRoot!==o;){var p=o.$vnode&&o.$vnode.data;p&&(p.routerView&&f++,p.keepAlive&&o._inactive&&(l=!0)),o=o.$parent}if(i.routerViewDepth=f,l)return a(s[u],i,r);var h=c.matched[f];if(!h)return s[u]=null,a();var d=s[u]=h.components[u];i.registerRouteInstance=function(t,e){var n=h.instances[u];(e&&n!==t||!e&&n===t)&&(h.instances[u]=e)},(i.hook||(i.hook={})).prepatch=function(t,e){h.instances[u]=e.componentInstance},i.hook.init=function(t){t.data.keepAlive&&t.componentInstance&&t.componentInstance!==h.instances[u]&&(h.instances[u]=t.componentInstance)};var v=i.props=function(t,e){switch(typeof e){case"undefined":return;case"object":return e;case"function":return e(t);case"boolean":return e?t.params:void 0;default:0}}(c,h.props&&h.props[u]);if(v){v=i.props=qo({},v);var y=i.attrs=i.attrs||{};for(var g in v)d.props&&g in d.props||(y[g]=v[g],delete v[g])}return a(d,i,r)}};var Wo=/[!'()*]/g,Go=function(t){return"%"+t.charCodeAt(0).toString(16)},Ko=/%2C/g,Xo=function(t){return encodeURIComponent(t).replace(Wo,Go).replace(Ko,",")},Yo=decodeURIComponent;function Jo(t){var e={};return(t=t.trim().replace(/^(\?|#|&)/,""))?(t.split("&").forEach((function(t){var n=t.replace(/\+/g," ").split("="),r=Yo(n.shift()),o=n.length>0?Yo(n.join("=")):null;void 0===e[r]?e[r]=o:Array.isArray(e[r])?e[r].push(o):e[r]=[e[r],o]})),e):e}function Qo(t){var e=t?Object.keys(t).map((function(e){var n=t[e];if(void 0===n)return"";if(null===n)return Xo(e);if(Array.isArray(n)){var r=[];return n.forEach((function(t){void 0!==t&&(null===t?r.push(Xo(e)):r.push(Xo(e)+"="+Xo(t)))})),r.join("&")}return Xo(e)+"="+Xo(n)})).filter((function(t){return t.length>0})).join("&"):null;return e?"?"+e:""}var Zo=/\/?$/;function ti(t,e,n,r){var o=r&&r.options.stringifyQuery,i=e.query||{};try{i=ei(i)}catch(t){}var a={name:e.name||t&&t.name,meta:t&&t.meta||{},path:e.path||"/",hash:e.hash||"",query:i,params:e.params||{},fullPath:oi(e,o),matched:t?ri(t):[]};return n&&(a.redirectedFrom=oi(n,o)),Object.freeze(a)}function ei(t){if(Array.isArray(t))return t.map(ei);if(t&&"object"==typeof t){var e={};for(var n in t)e[n]=ei(t[n]);return e}return t}var ni=ti(null,{path:"/"});function ri(t){for(var e=[];t;)e.unshift(t),t=t.parent;return e}function oi(t,e){var n=t.path,r=t.query;void 0===r&&(r={});var o=t.hash;return void 0===o&&(o=""),(n||"/")+(e||Qo)(r)+o}function ii(t,e){return e===ni?t===e:!!e&&(t.path&&e.path?t.path.replace(Zo,"")===e.path.replace(Zo,"")&&t.hash===e.hash&&ai(t.query,e.query):!(!t.name||!e.name)&&(t.name===e.name&&t.hash===e.hash&&ai(t.query,e.query)&&ai(t.params,e.params)))}function ai(t,e){if(void 0===t&&(t={}),void 0===e&&(e={}),!t||!e)return t===e;var n=Object.keys(t),r=Object.keys(e);return n.length===r.length&&n.every((function(n){var r=t[n],o=e[n];return"object"==typeof r&&"object"==typeof o?ai(r,o):String(r)===String(o)}))}function ui(t,e,n){var r=t.charAt(0);if("/"===r)return t;if("?"===r||"#"===r)return e+t;var o=e.split("/");n&&o[o.length-1]||o.pop();for(var i=t.replace(/^\//,"").split("/"),a=0;a=0&&(e=t.slice(r),t=t.slice(0,r));var o=t.indexOf("?");return o>=0&&(n=t.slice(o+1),t=t.slice(0,o)),{path:t,query:n,hash:e}}(o.path||""),c=e&&e.path||"/",s=u.path?ui(u.path,c,n||o.append):c,f=function(t,e,n){void 0===e&&(e={});var r,o=n||Jo;try{r=o(t||"")}catch(t){r={}}for(var i in e)r[i]=e[i];return r}(u.query,o.query,r&&r.options.parseQuery),l=o.hash||u.hash;return l&&"#"!==l.charAt(0)&&(l="#"+l),{_normalized:!0,path:s,query:f,hash:l}}var Ei,Ci=function(){},$i={name:"RouterLink",props:{to:{type:[String,Object],required:!0},tag:{type:String,default:"a"},exact:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,event:{type:[String,Array],default:"click"}},render:function(t){var e=this,n=this.$router,r=this.$route,o=n.resolve(this.to,r,this.append),i=o.location,a=o.route,u=o.href,c={},s=n.options.linkActiveClass,f=n.options.linkExactActiveClass,l=null==s?"router-link-active":s,p=null==f?"router-link-exact-active":f,h=null==this.activeClass?l:this.activeClass,d=null==this.exactActiveClass?p:this.exactActiveClass,v=a.redirectedFrom?ti(null,ki(a.redirectedFrom),null,n):a;c[d]=ii(r,v),c[h]=this.exact?c[d]:function(t,e){return 0===t.path.replace(Zo,"/").indexOf(e.path.replace(Zo,"/"))&&(!e.hash||t.hash===e.hash)&&function(t,e){for(var n in e)if(!(n in t))return!1;return!0}(t.query,e.query)}(r,v);var y=function(t){Pi(t)&&(e.replace?n.replace(i,Ci):n.push(i,Ci))},g={click:Pi};Array.isArray(this.event)?this.event.forEach((function(t){g[t]=y})):g[this.event]=y;var m={class:c},b=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:u,route:a,navigate:y,isActive:c[h],isExactActive:c[d]});if(b){if(1===b.length)return b[0];if(b.length>1||!b.length)return 0===b.length?t():t("span",{},b)}if("a"===this.tag)m.on=g,m.attrs={href:u};else{var _=function t(e){var n;if(e)for(var r=0;r-1&&(u.params[p]=n.params[p]);return u.path=Ai(f.path,u.params),c(f,u,a)}if(u.path){u.params={};for(var h=0;h=t.length?n():t[o]?e(t[o],(function(){r(o+1)})):r(o+1)};r(0)}function na(t){return function(e,n,r){var o=!1,i=0,a=null;ra(t,(function(t,e,n,u){if("function"==typeof t&&void 0===t.cid){o=!0,i++;var c,s=aa((function(e){var o;((o=e).__esModule||ia&&"Module"===o[Symbol.toStringTag])&&(e=e.default),t.resolved="function"==typeof e?e:Ei.extend(e),n.components[u]=e,--i<=0&&r()})),f=aa((function(t){var e="Failed to resolve async component "+u+": "+t;a||(a=Bo(t)?t:new Error(e),r(a))}));try{c=t(s,f)}catch(t){f(t)}if(c)if("function"==typeof c.then)c.then(s,f);else{var l=c.component;l&&"function"==typeof l.then&&l.then(s,f)}}})),o||r()}}function ra(t,e){return oa(t.map((function(t){return Object.keys(t.components).map((function(n){return e(t.components[n],t.instances[n],t,n)}))})))}function oa(t){return Array.prototype.concat.apply([],t)}var ia="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function aa(t){var e=!1;return function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];if(!e)return e=!0,t.apply(this,n)}}var ua=function(t){function e(e){t.call(this),this.name=this._name="NavigationDuplicated",this.message='Navigating to current location ("'+e.fullPath+'") is not allowed',Object.defineProperty(this,"stack",{value:(new t).stack,writable:!0,configurable:!0})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Error);ua._name="NavigationDuplicated";var ca=function(t,e){this.router=t,this.base=function(t){if(!t)if(Ti){var e=document.querySelector("base");t=(t=e&&e.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else t="/";"/"!==t.charAt(0)&&(t="/"+t);return t.replace(/\/$/,"")}(e),this.current=ni,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[]};function sa(t,e,n,r){var o=ra(t,(function(t,r,o,i){var a=function(t,e){"function"!=typeof t&&(t=Ei.extend(t));return t.options[e]}(t,e);if(a)return Array.isArray(a)?a.map((function(t){return n(t,r,o,i)})):n(a,r,o,i)}));return oa(r?o.reverse():o)}function fa(t,e){if(e)return function(){return t.apply(e,arguments)}}ca.prototype.listen=function(t){this.cb=t},ca.prototype.onReady=function(t,e){this.ready?t():(this.readyCbs.push(t),e&&this.readyErrorCbs.push(e))},ca.prototype.onError=function(t){this.errorCbs.push(t)},ca.prototype.transitionTo=function(t,e,n){var r=this,o=this.router.match(t,this.current);this.confirmTransition(o,(function(){r.updateRoute(o),e&&e(o),r.ensureURL(),r.ready||(r.ready=!0,r.readyCbs.forEach((function(t){t(o)})))}),(function(t){n&&n(t),t&&!r.ready&&(r.ready=!0,r.readyErrorCbs.forEach((function(e){e(t)})))}))},ca.prototype.confirmTransition=function(t,e,n){var r=this,o=this.current,i=function(t){!Vo(ua,t)&&Bo(t)&&(r.errorCbs.length?r.errorCbs.forEach((function(e){e(t)})):console.error(t)),n&&n(t)};if(ii(t,o)&&t.matched.length===o.matched.length)return this.ensureURL(),i(new ua(t));var a=function(t,e){var n,r=Math.max(t.length,e.length);for(n=0;n-1?decodeURI(t.slice(0,r))+t.slice(r):decodeURI(t)}else n>-1&&(t=decodeURI(t.slice(0,n))+t.slice(n));return t}function ya(t){var e=window.location.href,n=e.indexOf("#");return(n>=0?e.slice(0,n):e)+"#"+t}function ma(t){Qi?Zi(ya(t)):window.location.hash=t}function ba(t){Qi?ta(ya(t)):window.location.replace(ya(t))}var _a=function(t){function e(e,n){t.call(this,e,n),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index+1).concat(t),r.index++,e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index).concat(t),e&&e(t)}),n)},e.prototype.go=function(t){var e=this,n=this.index+t;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,(function(){e.index=n,e.updateRoute(r)}),(function(t){Vo(ua,t)&&(e.index=n)}))}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(ca),xa=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=Ii(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!Qi&&!1!==t.fallback,this.fallback&&(e="hash"),Ti||(e="abstract"),this.mode=e,e){case"history":this.history=new la(this,t.base);break;case"hash":this.history=new ha(this,t.base,this.fallback);break;case"abstract":this.history=new _a(this,t.base);break;default:0}},wa={currentRoute:{configurable:!0}};function Oa(t,e){return t.push(e),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}xa.prototype.match=function(t,e,n){return this.matcher.match(t,e,n)},wa.currentRoute.get=function(){return this.history&&this.history.current},xa.prototype.init=function(t){var e=this;if(this.apps.push(t),t.$once("hook:destroyed",(function(){var n=e.apps.indexOf(t);n>-1&&e.apps.splice(n,1),e.app===t&&(e.app=e.apps[0]||null)})),!this.app){this.app=t;var n=this.history;if(n instanceof la)n.transitionTo(n.getCurrentLocation());else if(n instanceof ha){var r=function(){n.setupListeners()};n.transitionTo(n.getCurrentLocation(),r,r)}n.listen((function(t){e.apps.forEach((function(e){e._route=t}))}))}},xa.prototype.beforeEach=function(t){return Oa(this.beforeHooks,t)},xa.prototype.beforeResolve=function(t){return Oa(this.resolveHooks,t)},xa.prototype.afterEach=function(t){return Oa(this.afterHooks,t)},xa.prototype.onReady=function(t,e){this.history.onReady(t,e)},xa.prototype.onError=function(t){this.history.onError(t)},xa.prototype.push=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise((function(e,n){r.history.push(t,e,n)}));this.history.push(t,e,n)},xa.prototype.replace=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise((function(e,n){r.history.replace(t,e,n)}));this.history.replace(t,e,n)},xa.prototype.go=function(t){this.history.go(t)},xa.prototype.back=function(){this.go(-1)},xa.prototype.forward=function(){this.go(1)},xa.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map((function(t){return Object.keys(t.components).map((function(e){return t.components[e]}))}))):[]},xa.prototype.resolve=function(t,e,n){var r=ki(t,e=e||this.history.current,n,this),o=this.match(r,e),i=o.redirectedFrom||o.fullPath;return{location:r,route:o,href:function(t,e,n){var r="hash"===n?"#"+e:e;return t?ci(t+"/"+r):r}(this.history.base,i,this.mode),normalizedTo:r,resolved:o}},xa.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==ni&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(xa.prototype,wa),xa.install=function t(e){if(!t.installed||Ei!==e){t.installed=!0,Ei=e;var n=function(t){return void 0!==t},r=function(t,e){var r=t.$options._parentVnode;n(r)&&n(r=r.data)&&n(r=r.registerRouteInstance)&&r(t,e)};e.mixin({beforeCreate:function(){n(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),e.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,r(this,this)},destroyed:function(){r(this)}}),Object.defineProperty(e.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(e.prototype,"$route",{get:function(){return this._routerRoot._route}}),e.component("RouterView",Ho),e.component("RouterLink",$i);var o=e.config.optionMergeStrategies;o.beforeRouteEnter=o.beforeRouteLeave=o.beforeRouteUpdate=o.created}},xa.version="3.1.3",Ti&&window.Vue&&window.Vue.use(xa);var Sa=xa;n(101),n(192),n(194),n(196),n(133),n(92),n(197),n(104);n(176),n(134),n(42),n(178),n(62),n(53),n(54),n(79);function ja(t){return(ja="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var Aa=n(40),ka={NotFound:function(){return n.e(7).then(n.bind(null,361))},Layout:function(){return Promise.all([n.e(0),n.e(3)]).then(n.bind(null,360))}},Ea={"v-ab9d2232":function(){return n.e(8).then(n.bind(null,362))},"v-3342ea58":function(){return n.e(9).then(n.bind(null,363))},"v-26bf7ec6":function(){return n.e(10).then(n.bind(null,364))},"v-dd6e1318":function(){return n.e(6).then(n.bind(null,365))},"v-0fb719cd":function(){return Promise.all([n.e(0),n.e(4)]).then(n.bind(null,366))},"v-831a3058":function(){return n.e(11).then(n.bind(null,367))},"v-f2d03530":function(){return n.e(13).then(n.bind(null,368))},"v-dca2db98":function(){return n.e(14).then(n.bind(null,369))},"v-1a98bdc8":function(){return n.e(12).then(n.bind(null,370))}};function Ca(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var $a=/-(\w)/g,Pa=Ca((function(t){return t.replace($a,(function(t,e){return e?e.toUpperCase():""}))})),Ta=/\B([A-Z])/g,Ra=Ca((function(t){return t.replace(Ta,"-$1").toLowerCase()})),La=Ca((function(t){return t.charAt(0).toUpperCase()+t.slice(1)}));function Ia(t,e){if(e)return t(e)?t(e):e.includes("-")?t(La(Pa(e))):t(La(e))||t(Ra(e))}var Ma=Object.assign({},ka,Ea),Da=function(t){return Ma[t]},Na=function(t){return Ea[t]},Fa=function(t){return ka[t]},Ua=function(t){return zo.component(t)};function za(t){return Ia(Na,t)}function Ba(t){return Ia(Fa,t)}function Va(t){return Ia(Da,t)}function qa(t){return Ia(Ua,t)}function Ha(){for(var t=arguments.length,e=new Array(t),n=0;n"})).join("\n "):""}var e},mounted:function(){this.currentMetaTags=Object(Aa.a)(document.querySelectorAll("meta")),this.updateMeta()},methods:{updateMeta:function(){document.title=this.$title,document.documentElement.lang=this.$lang;var t=this.getMergedMetaTags();this.currentMetaTags=Ja(t,this.currentMetaTags)},getMergedMetaTags:function(){var t=this.$page.frontmatter.meta||[];return Xa()([{name:"description",content:this.$description}],t,this.siteMeta,Qa)}},watch:{$page:function(){this.updateMeta()}},beforeDestroy:function(){Ja(null,this.currentMetaTags)}};function Ja(t,e){if(e&&Object(Aa.a)(e).forEach((function(t){document.head.removeChild(t)})),t)return t.map((function(t){var e=document.createElement("meta");return Object.keys(t).forEach((function(n){e.setAttribute(n,t[n])})),document.head.appendChild(e),e}))}function Qa(t){for(var e=0,n=["name","property","itemprop"];e=u.parentElement.offsetTop+10&&(!c||r0}var xu={props:{pageKey:String,slotKey:{type:String,default:"default"}},render:function(t){var e=this.pageKey||this.$parent.$page.key;return Wa("pageKey",e),zo.component(e)||zo.component(e,za(e)),zo.component(e)?t(e):t("")}},wu={functional:!0,props:{slotKey:String,required:!0},render:function(t,e){var n=e.props,r=e.slots;return t("div",{class:["content__".concat(n.slotKey)]},r()[n.slotKey])}},Ou=(n(296),Object(iu.a)({},(function(t,e){var n=e._c;return n("svg",{staticClass:"icon outbound",attrs:{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",x:"0px",y:"0px",viewBox:"0 0 100 100",width:"15",height:"15"}},[n("path",{attrs:{fill:"currentColor",d:"M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"}}),e._v(" "),n("polygon",{attrs:{fill:"currentColor",points:"45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"}})])}),[],!0,null,null,null).exports);function Su(){return(Su=o(regeneratorRuntime.mark((function t(e){var n,r,o,i;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n="undefined"!=typeof window&&window.__VUEPRESS_ROUTER_BASE__?window.__VUEPRESS_ROUTER_BASE__:cu.routerBase||cu.base,bu(r=new Sa({base:n,mode:"history",fallback:!1,routes:uu,scrollBehavior:function(t,e,n){return n||(t.hash?!zo.$vuepress.$get("disableScrollBehavior")&&{selector:t.hash}:{x:0,y:0})}})),o={},t.prev=4,t.next=7,Promise.all(su.filter((function(t){return"function"==typeof t})).map((function(t){return t({Vue:zo,options:o,router:r,siteData:cu,isServer:e})})));case 7:t.next=12;break;case 9:t.prev=9,t.t0=t.catch(4),console.error(t.t0);case 12:return i=new zo(Object.assign(o,{router:r,render:function(t){return t("div",{attrs:{id:"app"}},[t("RouterView",{ref:"layout"}),t("div",{class:"global-ui"},fu.map((function(e){return t(e)})))])}})),t.abrupt("return",{app:i,router:r});case 14:case"end":return t.stop()}}),t,null,[[4,9]])})))).apply(this,arguments)}zo.config.productionTip=!1,zo.use(Sa),zo.use(mu),zo.mixin(function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:zo;!function(t){t.locales&&Object.keys(t.locales).forEach((function(e){t.locales[e].path=e}));Object.freeze(t)}(e),n.$vuepress.$set("siteData",e);var r=new(t(n.$vuepress.$get("siteData"))),o=Object.getOwnPropertyDescriptors(Object.getPrototypeOf(r)),i={};return Object.keys(o).reduce((function(t,e){return e.startsWith("$")&&(t[e]=o[e].get),t}),i),{computed:i}}((function(t){return function(){function e(){lu(this,e)}return hu(e,[{key:"setPage",value:function(t){this.__page=t}},{key:"$site",get:function(){return t}},{key:"$themeConfig",get:function(){return this.$site.themeConfig}},{key:"$frontmatter",get:function(){return this.$page.frontmatter}},{key:"$localeConfig",get:function(){var t,e,n=this.$site.locales,r=void 0===n?{}:n;for(var o in r)"/"===o?e=r[o]:0===this.$page.path.indexOf(o)&&(t=r[o]);return t||e||{}}},{key:"$siteTitle",get:function(){return this.$localeConfig.title||this.$site.title||""}},{key:"$title",get:function(){var t=this.$page,e=this.$page.frontmatter.metaTitle;if("string"==typeof e)return e;var n=this.$siteTitle,r=t.frontmatter.home?null:t.frontmatter.title||t.title;return n?r?r+" | "+n:n:r||"VuePress"}},{key:"$description",get:function(){var t=function(t){if(t){var e=t.filter((function(t){return"description"===t.name}))[0];if(e)return e.content}}(this.$page.frontmatter.meta);return t||(this.$page.frontmatter.description||this.$localeConfig.description||this.$site.description||"")}},{key:"$lang",get:function(){return this.$page.frontmatter.lang||this.$localeConfig.lang||"en-US"}},{key:"$localePath",get:function(){return this.$localeConfig.path||"/"}},{key:"$themeLocaleConfig",get:function(){return(this.$site.themeConfig.locales||{})[this.$localePath]||{}}},{key:"$page",get:function(){return this.__page?this.__page:function(t,e){for(var n=0;n-1}function Vo(t,e){return e instanceof t||e&&(e.name===t.name||e._name===t._name)}function qo(t,e){for(var n in e)t[n]=e[n];return t}var Ho={name:"RouterView",functional:!0,props:{name:{type:String,default:"default"}},render:function(t,e){var n=e.props,r=e.children,o=e.parent,i=e.data;i.routerView=!0;for(var a=o.$createElement,u=n.name,c=o.$route,s=o._routerViewCache||(o._routerViewCache={}),f=0,l=!1;o&&o._routerRoot!==o;){var p=o.$vnode&&o.$vnode.data;p&&(p.routerView&&f++,p.keepAlive&&o._inactive&&(l=!0)),o=o.$parent}if(i.routerViewDepth=f,l)return a(s[u],i,r);var h=c.matched[f];if(!h)return s[u]=null,a();var d=s[u]=h.components[u];i.registerRouteInstance=function(t,e){var n=h.instances[u];(e&&n!==t||!e&&n===t)&&(h.instances[u]=e)},(i.hook||(i.hook={})).prepatch=function(t,e){h.instances[u]=e.componentInstance},i.hook.init=function(t){t.data.keepAlive&&t.componentInstance&&t.componentInstance!==h.instances[u]&&(h.instances[u]=t.componentInstance)};var v=i.props=function(t,e){switch(typeof e){case"undefined":return;case"object":return e;case"function":return e(t);case"boolean":return e?t.params:void 0;default:0}}(c,h.props&&h.props[u]);if(v){v=i.props=qo({},v);var y=i.attrs=i.attrs||{};for(var g in v)d.props&&g in d.props||(y[g]=v[g],delete v[g])}return a(d,i,r)}};var Wo=/[!'()*]/g,Go=function(t){return"%"+t.charCodeAt(0).toString(16)},Ko=/%2C/g,Xo=function(t){return encodeURIComponent(t).replace(Wo,Go).replace(Ko,",")},Yo=decodeURIComponent;function Jo(t){var e={};return(t=t.trim().replace(/^(\?|#|&)/,""))?(t.split("&").forEach((function(t){var n=t.replace(/\+/g," ").split("="),r=Yo(n.shift()),o=n.length>0?Yo(n.join("=")):null;void 0===e[r]?e[r]=o:Array.isArray(e[r])?e[r].push(o):e[r]=[e[r],o]})),e):e}function Qo(t){var e=t?Object.keys(t).map((function(e){var n=t[e];if(void 0===n)return"";if(null===n)return Xo(e);if(Array.isArray(n)){var r=[];return n.forEach((function(t){void 0!==t&&(null===t?r.push(Xo(e)):r.push(Xo(e)+"="+Xo(t)))})),r.join("&")}return Xo(e)+"="+Xo(n)})).filter((function(t){return t.length>0})).join("&"):null;return e?"?"+e:""}var Zo=/\/?$/;function ti(t,e,n,r){var o=r&&r.options.stringifyQuery,i=e.query||{};try{i=ei(i)}catch(t){}var a={name:e.name||t&&t.name,meta:t&&t.meta||{},path:e.path||"/",hash:e.hash||"",query:i,params:e.params||{},fullPath:oi(e,o),matched:t?ri(t):[]};return n&&(a.redirectedFrom=oi(n,o)),Object.freeze(a)}function ei(t){if(Array.isArray(t))return t.map(ei);if(t&&"object"==typeof t){var e={};for(var n in t)e[n]=ei(t[n]);return e}return t}var ni=ti(null,{path:"/"});function ri(t){for(var e=[];t;)e.unshift(t),t=t.parent;return e}function oi(t,e){var n=t.path,r=t.query;void 0===r&&(r={});var o=t.hash;return void 0===o&&(o=""),(n||"/")+(e||Qo)(r)+o}function ii(t,e){return e===ni?t===e:!!e&&(t.path&&e.path?t.path.replace(Zo,"")===e.path.replace(Zo,"")&&t.hash===e.hash&&ai(t.query,e.query):!(!t.name||!e.name)&&(t.name===e.name&&t.hash===e.hash&&ai(t.query,e.query)&&ai(t.params,e.params)))}function ai(t,e){if(void 0===t&&(t={}),void 0===e&&(e={}),!t||!e)return t===e;var n=Object.keys(t),r=Object.keys(e);return n.length===r.length&&n.every((function(n){var r=t[n],o=e[n];return"object"==typeof r&&"object"==typeof o?ai(r,o):String(r)===String(o)}))}function ui(t,e,n){var r=t.charAt(0);if("/"===r)return t;if("?"===r||"#"===r)return e+t;var o=e.split("/");n&&o[o.length-1]||o.pop();for(var i=t.replace(/^\//,"").split("/"),a=0;a=0&&(e=t.slice(r),t=t.slice(0,r));var o=t.indexOf("?");return o>=0&&(n=t.slice(o+1),t=t.slice(0,o)),{path:t,query:n,hash:e}}(o.path||""),c=e&&e.path||"/",s=u.path?ui(u.path,c,n||o.append):c,f=function(t,e,n){void 0===e&&(e={});var r,o=n||Jo;try{r=o(t||"")}catch(t){r={}}for(var i in e)r[i]=e[i];return r}(u.query,o.query,r&&r.options.parseQuery),l=o.hash||u.hash;return l&&"#"!==l.charAt(0)&&(l="#"+l),{_normalized:!0,path:s,query:f,hash:l}}var Ei,Ci=function(){},$i={name:"RouterLink",props:{to:{type:[String,Object],required:!0},tag:{type:String,default:"a"},exact:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,event:{type:[String,Array],default:"click"}},render:function(t){var e=this,n=this.$router,r=this.$route,o=n.resolve(this.to,r,this.append),i=o.location,a=o.route,u=o.href,c={},s=n.options.linkActiveClass,f=n.options.linkExactActiveClass,l=null==s?"router-link-active":s,p=null==f?"router-link-exact-active":f,h=null==this.activeClass?l:this.activeClass,d=null==this.exactActiveClass?p:this.exactActiveClass,v=a.redirectedFrom?ti(null,ki(a.redirectedFrom),null,n):a;c[d]=ii(r,v),c[h]=this.exact?c[d]:function(t,e){return 0===t.path.replace(Zo,"/").indexOf(e.path.replace(Zo,"/"))&&(!e.hash||t.hash===e.hash)&&function(t,e){for(var n in e)if(!(n in t))return!1;return!0}(t.query,e.query)}(r,v);var y=function(t){Pi(t)&&(e.replace?n.replace(i,Ci):n.push(i,Ci))},g={click:Pi};Array.isArray(this.event)?this.event.forEach((function(t){g[t]=y})):g[this.event]=y;var m={class:c},b=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:u,route:a,navigate:y,isActive:c[h],isExactActive:c[d]});if(b){if(1===b.length)return b[0];if(b.length>1||!b.length)return 0===b.length?t():t("span",{},b)}if("a"===this.tag)m.on=g,m.attrs={href:u};else{var _=function t(e){var n;if(e)for(var r=0;r-1&&(u.params[p]=n.params[p]);return u.path=Ai(f.path,u.params),c(f,u,a)}if(u.path){u.params={};for(var h=0;h=t.length?n():t[o]?e(t[o],(function(){r(o+1)})):r(o+1)};r(0)}function na(t){return function(e,n,r){var o=!1,i=0,a=null;ra(t,(function(t,e,n,u){if("function"==typeof t&&void 0===t.cid){o=!0,i++;var c,s=aa((function(e){var o;((o=e).__esModule||ia&&"Module"===o[Symbol.toStringTag])&&(e=e.default),t.resolved="function"==typeof e?e:Ei.extend(e),n.components[u]=e,--i<=0&&r()})),f=aa((function(t){var e="Failed to resolve async component "+u+": "+t;a||(a=Bo(t)?t:new Error(e),r(a))}));try{c=t(s,f)}catch(t){f(t)}if(c)if("function"==typeof c.then)c.then(s,f);else{var l=c.component;l&&"function"==typeof l.then&&l.then(s,f)}}})),o||r()}}function ra(t,e){return oa(t.map((function(t){return Object.keys(t.components).map((function(n){return e(t.components[n],t.instances[n],t,n)}))})))}function oa(t){return Array.prototype.concat.apply([],t)}var ia="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function aa(t){var e=!1;return function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];if(!e)return e=!0,t.apply(this,n)}}var ua=function(t){function e(e){t.call(this),this.name=this._name="NavigationDuplicated",this.message='Navigating to current location ("'+e.fullPath+'") is not allowed',Object.defineProperty(this,"stack",{value:(new t).stack,writable:!0,configurable:!0})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Error);ua._name="NavigationDuplicated";var ca=function(t,e){this.router=t,this.base=function(t){if(!t)if(Ti){var e=document.querySelector("base");t=(t=e&&e.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else t="/";"/"!==t.charAt(0)&&(t="/"+t);return t.replace(/\/$/,"")}(e),this.current=ni,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[]};function sa(t,e,n,r){var o=ra(t,(function(t,r,o,i){var a=function(t,e){"function"!=typeof t&&(t=Ei.extend(t));return t.options[e]}(t,e);if(a)return Array.isArray(a)?a.map((function(t){return n(t,r,o,i)})):n(a,r,o,i)}));return oa(r?o.reverse():o)}function fa(t,e){if(e)return function(){return t.apply(e,arguments)}}ca.prototype.listen=function(t){this.cb=t},ca.prototype.onReady=function(t,e){this.ready?t():(this.readyCbs.push(t),e&&this.readyErrorCbs.push(e))},ca.prototype.onError=function(t){this.errorCbs.push(t)},ca.prototype.transitionTo=function(t,e,n){var r=this,o=this.router.match(t,this.current);this.confirmTransition(o,(function(){r.updateRoute(o),e&&e(o),r.ensureURL(),r.ready||(r.ready=!0,r.readyCbs.forEach((function(t){t(o)})))}),(function(t){n&&n(t),t&&!r.ready&&(r.ready=!0,r.readyErrorCbs.forEach((function(e){e(t)})))}))},ca.prototype.confirmTransition=function(t,e,n){var r=this,o=this.current,i=function(t){!Vo(ua,t)&&Bo(t)&&(r.errorCbs.length?r.errorCbs.forEach((function(e){e(t)})):console.error(t)),n&&n(t)};if(ii(t,o)&&t.matched.length===o.matched.length)return this.ensureURL(),i(new ua(t));var a=function(t,e){var n,r=Math.max(t.length,e.length);for(n=0;n-1?decodeURI(t.slice(0,r))+t.slice(r):decodeURI(t)}else n>-1&&(t=decodeURI(t.slice(0,n))+t.slice(n));return t}function ya(t){var e=window.location.href,n=e.indexOf("#");return(n>=0?e.slice(0,n):e)+"#"+t}function ma(t){Qi?Zi(ya(t)):window.location.hash=t}function ba(t){Qi?ta(ya(t)):window.location.replace(ya(t))}var _a=function(t){function e(e,n){t.call(this,e,n),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index+1).concat(t),r.index++,e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index).concat(t),e&&e(t)}),n)},e.prototype.go=function(t){var e=this,n=this.index+t;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,(function(){e.index=n,e.updateRoute(r)}),(function(t){Vo(ua,t)&&(e.index=n)}))}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(ca),xa=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=Ii(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!Qi&&!1!==t.fallback,this.fallback&&(e="hash"),Ti||(e="abstract"),this.mode=e,e){case"history":this.history=new la(this,t.base);break;case"hash":this.history=new ha(this,t.base,this.fallback);break;case"abstract":this.history=new _a(this,t.base);break;default:0}},wa={currentRoute:{configurable:!0}};function Oa(t,e){return t.push(e),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}xa.prototype.match=function(t,e,n){return this.matcher.match(t,e,n)},wa.currentRoute.get=function(){return this.history&&this.history.current},xa.prototype.init=function(t){var e=this;if(this.apps.push(t),t.$once("hook:destroyed",(function(){var n=e.apps.indexOf(t);n>-1&&e.apps.splice(n,1),e.app===t&&(e.app=e.apps[0]||null)})),!this.app){this.app=t;var n=this.history;if(n instanceof la)n.transitionTo(n.getCurrentLocation());else if(n instanceof ha){var r=function(){n.setupListeners()};n.transitionTo(n.getCurrentLocation(),r,r)}n.listen((function(t){e.apps.forEach((function(e){e._route=t}))}))}},xa.prototype.beforeEach=function(t){return Oa(this.beforeHooks,t)},xa.prototype.beforeResolve=function(t){return Oa(this.resolveHooks,t)},xa.prototype.afterEach=function(t){return Oa(this.afterHooks,t)},xa.prototype.onReady=function(t,e){this.history.onReady(t,e)},xa.prototype.onError=function(t){this.history.onError(t)},xa.prototype.push=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise((function(e,n){r.history.push(t,e,n)}));this.history.push(t,e,n)},xa.prototype.replace=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise((function(e,n){r.history.replace(t,e,n)}));this.history.replace(t,e,n)},xa.prototype.go=function(t){this.history.go(t)},xa.prototype.back=function(){this.go(-1)},xa.prototype.forward=function(){this.go(1)},xa.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map((function(t){return Object.keys(t.components).map((function(e){return t.components[e]}))}))):[]},xa.prototype.resolve=function(t,e,n){var r=ki(t,e=e||this.history.current,n,this),o=this.match(r,e),i=o.redirectedFrom||o.fullPath;return{location:r,route:o,href:function(t,e,n){var r="hash"===n?"#"+e:e;return t?ci(t+"/"+r):r}(this.history.base,i,this.mode),normalizedTo:r,resolved:o}},xa.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==ni&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(xa.prototype,wa),xa.install=function t(e){if(!t.installed||Ei!==e){t.installed=!0,Ei=e;var n=function(t){return void 0!==t},r=function(t,e){var r=t.$options._parentVnode;n(r)&&n(r=r.data)&&n(r=r.registerRouteInstance)&&r(t,e)};e.mixin({beforeCreate:function(){n(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),e.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,r(this,this)},destroyed:function(){r(this)}}),Object.defineProperty(e.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(e.prototype,"$route",{get:function(){return this._routerRoot._route}}),e.component("RouterView",Ho),e.component("RouterLink",$i);var o=e.config.optionMergeStrategies;o.beforeRouteEnter=o.beforeRouteLeave=o.beforeRouteUpdate=o.created}},xa.version="3.1.3",Ti&&window.Vue&&window.Vue.use(xa);var Sa=xa;n(101),n(192),n(194),n(196),n(133),n(92),n(197),n(104);n(176),n(134),n(42),n(178),n(62),n(53),n(54),n(79);function ja(t){return(ja="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var Aa=n(40),ka={NotFound:function(){return n.e(7).then(n.bind(null,361))},Layout:function(){return Promise.all([n.e(0),n.e(3)]).then(n.bind(null,360))}},Ea={"v-ab9d2232":function(){return n.e(8).then(n.bind(null,362))},"v-3342ea58":function(){return n.e(9).then(n.bind(null,363))},"v-0fb719cd":function(){return Promise.all([n.e(0),n.e(4)]).then(n.bind(null,364))},"v-26bf7ec6":function(){return n.e(10).then(n.bind(null,365))},"v-dd6e1318":function(){return n.e(6).then(n.bind(null,366))},"v-831a3058":function(){return n.e(11).then(n.bind(null,367))},"v-1a98bdc8":function(){return n.e(12).then(n.bind(null,368))},"v-f2d03530":function(){return n.e(13).then(n.bind(null,369))},"v-dca2db98":function(){return n.e(14).then(n.bind(null,370))}};function Ca(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var $a=/-(\w)/g,Pa=Ca((function(t){return t.replace($a,(function(t,e){return e?e.toUpperCase():""}))})),Ta=/\B([A-Z])/g,Ra=Ca((function(t){return t.replace(Ta,"-$1").toLowerCase()})),La=Ca((function(t){return t.charAt(0).toUpperCase()+t.slice(1)}));function Ia(t,e){if(e)return t(e)?t(e):e.includes("-")?t(La(Pa(e))):t(La(e))||t(Ra(e))}var Ma=Object.assign({},ka,Ea),Da=function(t){return Ma[t]},Na=function(t){return Ea[t]},Fa=function(t){return ka[t]},Ua=function(t){return zo.component(t)};function za(t){return Ia(Na,t)}function Ba(t){return Ia(Fa,t)}function Va(t){return Ia(Da,t)}function qa(t){return Ia(Ua,t)}function Ha(){for(var t=arguments.length,e=new Array(t),n=0;n"})).join("\n "):""}var e},mounted:function(){this.currentMetaTags=Object(Aa.a)(document.querySelectorAll("meta")),this.updateMeta()},methods:{updateMeta:function(){document.title=this.$title,document.documentElement.lang=this.$lang;var t=this.getMergedMetaTags();this.currentMetaTags=Ja(t,this.currentMetaTags)},getMergedMetaTags:function(){var t=this.$page.frontmatter.meta||[];return Xa()([{name:"description",content:this.$description}],t,this.siteMeta,Qa)}},watch:{$page:function(){this.updateMeta()}},beforeDestroy:function(){Ja(null,this.currentMetaTags)}};function Ja(t,e){if(e&&Object(Aa.a)(e).forEach((function(t){document.head.removeChild(t)})),t)return t.map((function(t){var e=document.createElement("meta");return Object.keys(t).forEach((function(n){e.setAttribute(n,t[n])})),document.head.appendChild(e),e}))}function Qa(t){for(var e=0,n=["name","property","itemprop"];e=u.parentElement.offsetTop+10&&(!c||r0}var xu={props:{pageKey:String,slotKey:{type:String,default:"default"}},render:function(t){var e=this.pageKey||this.$parent.$page.key;return Wa("pageKey",e),zo.component(e)||zo.component(e,za(e)),zo.component(e)?t(e):t("")}},wu={functional:!0,props:{slotKey:String,required:!0},render:function(t,e){var n=e.props,r=e.slots;return t("div",{class:["content__".concat(n.slotKey)]},r()[n.slotKey])}},Ou=(n(296),Object(iu.a)({},(function(t,e){var n=e._c;return n("svg",{staticClass:"icon outbound",attrs:{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",x:"0px",y:"0px",viewBox:"0 0 100 100",width:"15",height:"15"}},[n("path",{attrs:{fill:"currentColor",d:"M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"}}),e._v(" "),n("polygon",{attrs:{fill:"currentColor",points:"45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"}})])}),[],!0,null,null,null).exports);function Su(){return(Su=o(regeneratorRuntime.mark((function t(e){var n,r,o,i;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n="undefined"!=typeof window&&window.__VUEPRESS_ROUTER_BASE__?window.__VUEPRESS_ROUTER_BASE__:cu.routerBase||cu.base,bu(r=new Sa({base:n,mode:"history",fallback:!1,routes:uu,scrollBehavior:function(t,e,n){return n||(t.hash?!zo.$vuepress.$get("disableScrollBehavior")&&{selector:t.hash}:{x:0,y:0})}})),o={},t.prev=4,t.next=7,Promise.all(su.filter((function(t){return"function"==typeof t})).map((function(t){return t({Vue:zo,options:o,router:r,siteData:cu,isServer:e})})));case 7:t.next=12;break;case 9:t.prev=9,t.t0=t.catch(4),console.error(t.t0);case 12:return i=new zo(Object.assign(o,{router:r,render:function(t){return t("div",{attrs:{id:"app"}},[t("RouterView",{ref:"layout"}),t("div",{class:"global-ui"},fu.map((function(e){return t(e)})))])}})),t.abrupt("return",{app:i,router:r});case 14:case"end":return t.stop()}}),t,null,[[4,9]])})))).apply(this,arguments)}zo.config.productionTip=!1,zo.use(Sa),zo.use(mu),zo.mixin(function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:zo;!function(t){t.locales&&Object.keys(t.locales).forEach((function(e){t.locales[e].path=e}));Object.freeze(t)}(e),n.$vuepress.$set("siteData",e);var r=new(t(n.$vuepress.$get("siteData"))),o=Object.getOwnPropertyDescriptors(Object.getPrototypeOf(r)),i={};return Object.keys(o).reduce((function(t,e){return e.startsWith("$")&&(t[e]=o[e].get),t}),i),{computed:i}}((function(t){return function(){function e(){lu(this,e)}return hu(e,[{key:"setPage",value:function(t){this.__page=t}},{key:"$site",get:function(){return t}},{key:"$themeConfig",get:function(){return this.$site.themeConfig}},{key:"$frontmatter",get:function(){return this.$page.frontmatter}},{key:"$localeConfig",get:function(){var t,e,n=this.$site.locales,r=void 0===n?{}:n;for(var o in r)"/"===o?e=r[o]:0===this.$page.path.indexOf(o)&&(t=r[o]);return t||e||{}}},{key:"$siteTitle",get:function(){return this.$localeConfig.title||this.$site.title||""}},{key:"$title",get:function(){var t=this.$page,e=this.$page.frontmatter.metaTitle;if("string"==typeof e)return e;var n=this.$siteTitle,r=t.frontmatter.home?null:t.frontmatter.title||t.title;return n?r?r+" | "+n:n:r||"VuePress"}},{key:"$description",get:function(){var t=function(t){if(t){var e=t.filter((function(t){return"description"===t.name}))[0];if(e)return e.content}}(this.$page.frontmatter.meta);return t||(this.$page.frontmatter.description||this.$localeConfig.description||this.$site.description||"")}},{key:"$lang",get:function(){return this.$page.frontmatter.lang||this.$localeConfig.lang||"en-US"}},{key:"$localePath",get:function(){return this.$localeConfig.path||"/"}},{key:"$themeLocaleConfig",get:function(){return(this.$site.themeConfig.locales||{})[this.$localePath]||{}}},{key:"$page",get:function(){return this.__page?this.__page:function(t,e){for(var n=0;n - + @@ -32,6 +32,6 @@ β†’

- + diff --git a/guide/contributing.html b/guide/contributing.html index dd3706e8..295901d9 100644 --- a/guide/contributing.html +++ b/guide/contributing.html @@ -7,7 +7,7 @@ - + @@ -41,6 +41,6 @@ β†’

- + diff --git a/guide/getting-started.html b/guide/getting-started.html index f316fe9a..0591f67c 100644 --- a/guide/getting-started.html +++ b/guide/getting-started.html @@ -7,7 +7,7 @@ - + @@ -73,6 +73,6 @@ β†’

- + diff --git a/guide/index.html b/guide/index.html index be542009..a759f796 100644 --- a/guide/index.html +++ b/guide/index.html @@ -7,7 +7,7 @@ - + @@ -30,6 +30,6 @@ β†’

- + diff --git a/guide/useful-config.html b/guide/useful-config.html index 94ba9ec7..09114cc0 100644 --- a/guide/useful-config.html +++ b/guide/useful-config.html @@ -7,7 +7,7 @@ - + @@ -108,6 +108,6 @@ β†’

- + diff --git a/index.html b/index.html index 37d38baa..3fc9a81e 100644 --- a/index.html +++ b/index.html @@ -7,7 +7,7 @@ - + @@ -32,6 +32,6 @@

Automated

Minimize your effort for release and make less mistakes.

Asynchronous

You don't have to release on your local machine. Do it asynchronously and continue your work.

Collaborative

Don't sweat it alone. Review the next release on pull request with your colleagues.

- + diff --git a/reference/all-config.html b/reference/all-config.html index bcb627e7..a05b3bdb 100644 --- a/reference/all-config.html +++ b/reference/all-config.html @@ -7,7 +7,7 @@ - + @@ -214,6 +214,6 @@ β†’

- + diff --git a/reference/commands.html b/reference/commands.html index b0f1a5b2..ef774827 100644 --- a/reference/commands.html +++ b/reference/commands.html @@ -7,7 +7,7 @@ - + @@ -83,6 +83,6 @@ β†’

- + diff --git a/reference/resources.html b/reference/resources.html index 73461fec..e450fbce 100644 --- a/reference/resources.html +++ b/reference/resources.html @@ -7,7 +7,7 @@ - + @@ -28,6 +28,6 @@

- +