diff --git a/.eslintignore b/.eslintignore index 07dc46e..a3b8548 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,3 +1,5 @@ -.git/ +.git packages/docsify-server-renderer/build.js -node_modules \ No newline at end of file +node_modules +build +server.js \ No newline at end of file diff --git a/.eslintrc b/.eslintrc index 3a6f901..a8f7cd0 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,15 +1,20 @@ { - "extends": [ - "vue" - ], - "parserOptions": { - "ecmaVersion": 8 - }, - "env": { - "browser": true + "extends": "xo-space/browser", + "rules": { + "semi": [2, "never"], + "no-return-assign": "off", + "no-unused-expressions": "off", + "no-new-func": "off", + "no-multi-assign": "off", + "no-mixed-operators": "off", + "max-params": "off", + "no-script-url": "off", + "camelcase": "off", + "no-warning-comments": "off" }, "globals": { "Docsify": true, - "$docsify": true + "$docsify": true, + "process": true } } diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 0bd565e..0000000 --- a/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..35d6b90 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,38 @@ +--- +name: Bug report +about: Create a report to help us improve + +--- + + + + + +## Bug Report + +#### Steps to reproduce + + + +#### What is current behaviour + + + +#### What is the expected behaviour + + + +#### Other relevant information + + +- [ ] Bug does still occur when all/other plugins are disabled? + +- Your OS: +- Node.js version: +- npm/yarn version: +- Browser version: +- Docsify version: +- Docsify plugins: + + diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..501e4de --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,25 @@ +--- +name: Feature request +about: Suggest an idea for this project + +--- + + + + + +## Feature request + +#### What problem does this feature solve? + + + +#### What does the proposed API look like? + + + +#### How should this be implemented in your opinion? + + + +#### Are you willing to work on this yourself? diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 79a5281..bb31bd4 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,5 +1,54 @@ -Please makes sure these boxes are checked before submitting your PR, thank you! + + + + + + +**Summary** + +**What kind of change does this PR introduce?** (check at least one) + +- [ ] Bugfix +- [ ] Feature +- [ ] Code style update +- [ ] Refactor +- [ ] Docs +- [ ] Build-related changes +- [ ] Other, please describe: + +If changing the UI of default theme, please provide the **before/after** screenshot: + +**Does this PR introduce a breaking change?** (check one) + +- [ ] Yes +- [ ] No + +If yes, please describe the impact and migration path for existing applications: + +**The PR fulfills these requirements:** + +- [ ] When resolving a specific issue, it's referenced in the PR's title (e.g. `fix #xxx[,#xxx]`, where "xxx" is the issue number) + +You have tested in the following browsers: (Providing a detailed version will be better.) + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari +- [ ] Edge +- [ ] IE + +If adding a **new feature**, the PR's description includes: + +- [ ] A convincing reason for adding this feature +- [ ] Related documents have been updated +- [ ] Related tests have been updated + +To avoid wasting your time, it's best to open a **feature request issue** first and wait for approval before working on it. + + +**Other information:** + +--- -* [ ] Make sure you are merging your commits to `master` branch. -* [ ] Add some descriptions and refer relative issues for you PR. * [ ] DO NOT include files inside `lib` directory. + diff --git a/.gitignore b/.gitignore index aac765d..ea4b5b8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,9 @@ *.log .DS_Store -/themes/ +.idea node_modules -/lib/ +themes/ +lib/ + +# exceptions +!.gitkeep \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 84face2..267d402 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,624 +1,753 @@ + +## [4.9.4](https://github.com/docsifyjs/docsify/compare/v4.9.2...v4.9.4) (2019-05-05) + + + + +## [4.9.2](https://github.com/docsifyjs/docsify/compare/v4.9.1...v4.9.2) (2019-04-21) + + +### Bug Fixes + +* re-render gitalk when router changed ([11ea1f8](https://github.com/docsifyjs/docsify/commit/11ea1f8)) + + +### Features + +* allows relative path, fixed [#590](https://github.com/docsifyjs/docsify/issues/590) ([31654f1](https://github.com/docsifyjs/docsify/commit/31654f1)) + + + + +## [4.9.1](https://github.com/docsifyjs/docsify/compare/v4.9.0...v4.9.1) (2019-02-21) + + +### Bug Fixes + +* github assets url ([#774](https://github.com/docsifyjs/docsify/issues/774)) ([140bf10](https://github.com/docsifyjs/docsify/commit/140bf10)) + + + + +# [4.9.0](https://github.com/docsifyjs/docsify/compare/v4.8.6...v4.9.0) (2019-02-19) + + +### Bug Fixes + +* task list rendering (Fix [#749](https://github.com/docsifyjs/docsify/issues/749)) ([#757](https://github.com/docsifyjs/docsify/issues/757)) ([69ef489](https://github.com/docsifyjs/docsify/commit/69ef489)) +* upgrade npm-run-all ([049726e](https://github.com/docsifyjs/docsify/commit/049726e)) + + +### Features + +* **search-plugin:** add namespace option ([#706](https://github.com/docsifyjs/docsify/issues/706)) ([28beff8](https://github.com/docsifyjs/docsify/commit/28beff8)) +* Add new theme "dolphin" ([#735](https://github.com/docsifyjs/docsify/issues/735)) ([c3345ba](https://github.com/docsifyjs/docsify/commit/c3345ba)) +* Provide code fragments feature ([#748](https://github.com/docsifyjs/docsify/issues/748)) ([1447c8a](https://github.com/docsifyjs/docsify/commit/1447c8a)) + + + + +## [4.8.6](https://github.com/docsifyjs/docsify/compare/v4.8.5...v4.8.6) (2018-11-12) + + +### Bug Fixes + +* IE10 compatibility ([#691](https://github.com/docsifyjs/docsify/issues/691)) ([4db8cd6](https://github.com/docsifyjs/docsify/commit/4db8cd6)) + + + + +## [4.8.5](https://github.com/docsifyjs/docsify/compare/v4.8.4...v4.8.5) (2018-11-02) + + +### Bug Fixes + +* expose version info for Docsify, fixed [#641](https://github.com/docsifyjs/docsify/issues/641) ([aa719e3](https://github.com/docsifyjs/docsify/commit/aa719e3)) + + + + +## [4.8.4](https://github.com/docsifyjs/docsify/compare/v4.8.3...v4.8.4) (2018-11-01) + + +### Bug Fixes + +* **cover:** Compatible with legacy styles, fixed [#677](https://github.com/docsifyjs/docsify/issues/677) ([#678](https://github.com/docsifyjs/docsify/issues/678)) ([1a945d4](https://github.com/docsifyjs/docsify/commit/1a945d4)) + + + + + +## [4.8.3](https://github.com/docsifyjs/docsify/compare/v4.8.2...v4.8.3) (2018-11-01) + +Fix the last release files has the old version marked... + + + +## [4.8.2](https://github.com/docsifyjs/docsify/compare/v4.8.1...v4.8.2) (2018-11-01) + +### Bug Fixes + +- cover button style, fixed [#670](https://github.com/docsifyjs/docsify/issues/670), fixed [#665](https://github.com/docsifyjs/docsify/issues/665) ([#675](https://github.com/docsifyjs/docsify/issues/675)) ([fcd1087](https://github.com/docsifyjs/docsify/commit/fcd1087)) +- update match regex ([#669](https://github.com/docsifyjs/docsify/issues/669)) ([2edf47e](https://github.com/docsifyjs/docsify/commit/2edf47e)) +- use copy of cached value ([#668](https://github.com/docsifyjs/docsify/issues/668)) ([5fcf210](https://github.com/docsifyjs/docsify/commit/5fcf210)) +- **compiler:** import prism-markup-templating, fixed [#672](https://github.com/docsifyjs/docsify/issues/672) ([#676](https://github.com/docsifyjs/docsify/issues/676)) ([fdd8826](https://github.com/docsifyjs/docsify/commit/fdd8826)) + +### Features + +- add heading config id ([#671](https://github.com/docsifyjs/docsify/issues/671)) ([ab19b13](https://github.com/docsifyjs/docsify/commit/ab19b13)) + + + +## [4.8.1](https://github.com/docsifyjs/docsify/compare/v4.8.0...v4.8.1) (2018-10-31) + +### Bug Fixes + +- ssr package dep, fixed [#605](https://github.com/docsifyjs/docsify/issues/605) ([2bc880d](https://github.com/docsifyjs/docsify/commit/2bc880d)) +- **compiler:** extra quotes for codeblock ([4f588e0](https://github.com/docsifyjs/docsify/commit/4f588e0)) +- **compiler:** prevent render of html code in paragraph, fixed [#663](https://github.com/docsifyjs/docsify/issues/663) ([d35059d](https://github.com/docsifyjs/docsify/commit/d35059d)) + +### Features + +- upgrade PrismJS, fixed [#534](https://github.com/docsifyjs/docsify/issues/534) ([4805cb5](https://github.com/docsifyjs/docsify/commit/4805cb5)) + + + +# [4.8.0](https://github.com/docsifyjs/docsify/compare/v4.7.1...v4.8.0) (2018-10-31) + +### Bug Fixes + +- Cache TOC for later usage in the case of cached file html ([#649](https://github.com/docsifyjs/docsify/issues/649)) ([9e86017](https://github.com/docsifyjs/docsify/commit/9e86017)) +- improve external script plugin ([#632](https://github.com/docsifyjs/docsify/issues/632)) ([50c2434](https://github.com/docsifyjs/docsify/commit/50c2434)) +- missing variable declaration ([#660](https://github.com/docsifyjs/docsify/issues/660)) ([1ce37bd](https://github.com/docsifyjs/docsify/commit/1ce37bd)) +- Remove target for mailto links ([#652](https://github.com/docsifyjs/docsify/issues/652)) ([18f0f03](https://github.com/docsifyjs/docsify/commit/18f0f03)) +- Update getAllPath query selector ([#653](https://github.com/docsifyjs/docsify/issues/653)) ([f6f4e32](https://github.com/docsifyjs/docsify/commit/f6f4e32)) +- Update vue.styl ([#634](https://github.com/docsifyjs/docsify/issues/634)) ([bf060be](https://github.com/docsifyjs/docsify/commit/bf060be)) + +### Features + +- Add docsify version to $window.docsify object ([#641](https://github.com/docsifyjs/docsify/issues/641)) ([94bc415](https://github.com/docsifyjs/docsify/commit/94bc415)), closes [#521](https://github.com/docsifyjs/docsify/issues/521) +- **compiler:** support embedded mermaid ([#629](https://github.com/docsifyjs/docsify/issues/629)) ([42ea8af](https://github.com/docsifyjs/docsify/commit/42ea8af)) +- Add hideOtherSidebarContent option ([#661](https://github.com/docsifyjs/docsify/issues/661)) ([4a23c4a](https://github.com/docsifyjs/docsify/commit/4a23c4a)) +- Allow base64, external, and relative logo values ([#642](https://github.com/docsifyjs/docsify/issues/642)) ([0a0802a](https://github.com/docsifyjs/docsify/commit/0a0802a)), closes [#577](https://github.com/docsifyjs/docsify/issues/577) +- upgrade marked to 0.5.x, fixed [#645](https://github.com/docsifyjs/docsify/issues/645), close [#644](https://github.com/docsifyjs/docsify/issues/644) ([#662](https://github.com/docsifyjs/docsify/issues/662)) ([a39b214](https://github.com/docsifyjs/docsify/commit/a39b214)) + + + +## [4.7.1](https://github.com/docsifyjs/docsify/compare/v4.7.0...v4.7.1) (2018-08-30) + + + +# [4.7.0](https://github.com/QingWei-Li/docsify/compare/v4.6.9...v4.7.0) (2018-06-29) + +### Bug Fixes + +- alldow addition content in sidebar, fix [#518](https://github.com/QingWei-Li/docsify/issues/518), fix 539 ([#543](https://github.com/QingWei-Li/docsify/issues/543)) ([04b36b0](https://github.com/QingWei-Li/docsify/commit/04b36b0)) +- async install config, fixed [#425](https://github.com/QingWei-Li/docsify/issues/425) ([e4e011c](https://github.com/QingWei-Li/docsify/commit/e4e011c)) +- loading embed files synchronously, fixed [#525](https://github.com/QingWei-Li/docsify/issues/525), fixed [#527](https://github.com/QingWei-Li/docsify/issues/527) ([#544](https://github.com/QingWei-Li/docsify/issues/544)) ([feea7f9](https://github.com/QingWei-Li/docsify/commit/feea7f9)) +- path include chinese character cause hilight bug ([#556](https://github.com/QingWei-Li/docsify/issues/556)) ([a5f333a](https://github.com/QingWei-Li/docsify/commit/a5f333a)) + +### Features + +- add logo option, [#264](https://github.com/QingWei-Li/docsify/issues/264) ([#541](https://github.com/QingWei-Li/docsify/issues/541)) ([ee72dd0](https://github.com/QingWei-Li/docsify/commit/ee72dd0)) +- add unpkg field, close [#531](https://github.com/QingWei-Li/docsify/issues/531) ([#558](https://github.com/QingWei-Li/docsify/issues/558)) ([5c0de0a](https://github.com/QingWei-Li/docsify/commit/5c0de0a)) +- support image resizing, resolve [#508](https://github.com/QingWei-Li/docsify/issues/508) ([#545](https://github.com/QingWei-Li/docsify/issues/545)) ([3a7ad62](https://github.com/QingWei-Li/docsify/commit/3a7ad62)) + + + +## [4.6.10](https://github.com/QingWei-Li/docsify/compare/v4.6.9...v4.6.10) (2018-03-25) + +### Bug Fixes + +- async install config, fixed [#425](https://github.com/QingWei-Li/docsify/issues/425) ([e4e011c](https://github.com/QingWei-Li/docsify/commit/e4e011c)) + + + +## [4.6.9](https://github.com/QingWei-Li/docsify/compare/v4.6.8...v4.6.9) (2018-03-10) + +### Bug Fixes + +- upgrade medium-zoom, fixed [#417](https://github.com/QingWei-Li/docsify/issues/417) ([6a3d69a](https://github.com/QingWei-Li/docsify/commit/6a3d69a)) + + + +## [4.6.8](https://github.com/QingWei-Li/docsify/compare/v4.6.7...v4.6.8) (2018-03-06) + +### Bug Fixes + +- resolve path of image and embed files, fixed [#412](https://github.com/QingWei-Li/docsify/issues/412) ([bfd0d18](https://github.com/QingWei-Li/docsify/commit/bfd0d18)) + + + +## [4.6.7](https://github.com/QingWei-Li/docsify/compare/v4.6.6...v4.6.7) (2018-03-03) + +### Bug Fixes + +- layout css, fixed [#409](https://github.com/QingWei-Li/docsify/issues/409) ([aeb692e](https://github.com/QingWei-Li/docsify/commit/aeb692e)) + + + +## [4.6.6](https://github.com/QingWei-Li/docsify/compare/v4.6.5...v4.6.6) (2018-03-03) + + + +## [4.6.5](https://github.com/QingWei-Li/docsify/compare/v4.6.4...v4.6.5) (2018-03-03) + +### Bug Fixes + +- **navbar:** Now Navbar isn't append to DOM when loadNavbar is falsy ([#407](https://github.com/QingWei-Li/docsify/issues/407)) ([0933445](https://github.com/QingWei-Li/docsify/commit/0933445)) + +### Features + +- **config:** Add 404 page options. ([#406](https://github.com/QingWei-Li/docsify/issues/406)) ([9b3b445](https://github.com/QingWei-Li/docsify/commit/9b3b445)) + + + +## [4.6.4](https://github.com/QingWei-Li/docsify/compare/v4.6.3...v4.6.4) (2018-03-01) + +### Bug Fixes + +- **render:** Disable markdown parsing when the file is an HTML ([#403](https://github.com/QingWei-Li/docsify/issues/403)) ([278a75e](https://github.com/QingWei-Li/docsify/commit/278a75e)) + +### Features + +- **fetch:** Add fallback languages configuration. ([#402](https://github.com/QingWei-Li/docsify/issues/402)) ([ecc0e04](https://github.com/QingWei-Li/docsify/commit/ecc0e04)) + + + +## [4.6.3](https://github.com/QingWei-Li/docsify/compare/v4.6.2...v4.6.3) (2018-02-15) + +### Bug Fixes + +- **hook:** beforeEach don\'t work, fixed [#393](https://github.com/QingWei-Li/docsify/issues/393) ([6a09059](https://github.com/QingWei-Li/docsify/commit/6a09059)) + + + +## [4.6.2](https://github.com/QingWei-Li/docsify/compare/v4.6.1...v4.6.2) (2018-02-14) + +### Bug Fixes + +- **embed:** broken in IE, fixed [#389](https://github.com/QingWei-Li/docsify/issues/389), fixed [#391](https://github.com/QingWei-Li/docsify/issues/391) ([45a7464](https://github.com/QingWei-Li/docsify/commit/45a7464)) +- **embed:** init value ([890a7bf](https://github.com/QingWei-Li/docsify/commit/890a7bf)) + + + +## [4.6.1](https://github.com/QingWei-Li/docsify/compare/v4.6.0...v4.6.1) (2018-02-12) + +### Bug Fixes + +- **embed** compatible ssr ([dc0c3ce](https://github.com/QingWei-Li/docsify/commit/dc0c3ce)) +- **embed** async fetch embed files, fixed [#387](https://github.com/QingWei-Li/docsify/issues/387) + + # [4.6.0](https://github.com/QingWei-Li/docsify/compare/v4.5.9...v4.6.0) (2018-02-11) - ### Bug Fixes -* **search:** custom clear button, fixed [#271](https://github.com/QingWei-Li/docsify/issues/271) ([864aa18](https://github.com/QingWei-Li/docsify/commit/864aa18)) -* **search:** escape special characters for search, fixed [#369](https://github.com/QingWei-Li/docsify/issues/369) ([9755439](https://github.com/QingWei-Li/docsify/commit/9755439)) -* build config ([342438f](https://github.com/QingWei-Li/docsify/commit/342438f)) -* button style for coverpage, fixed [#362](https://github.com/QingWei-Li/docsify/issues/362) ([85428ef](https://github.com/QingWei-Li/docsify/commit/85428ef)) -* dropdown scroll style, fixed [#346](https://github.com/QingWei-Li/docsify/issues/346) ([c4d83f2](https://github.com/QingWei-Li/docsify/commit/c4d83f2)) -* highlight homepage link, fixed [#304](https://github.com/QingWei-Li/docsify/issues/304) ([f960c19](https://github.com/QingWei-Li/docsify/commit/f960c19)) -* homepage link ([e097f88](https://github.com/QingWei-Li/docsify/commit/e097f88)) -* onlyCover ([033be4f](https://github.com/QingWei-Li/docsify/commit/033be4f)) -* ssr compatible embedd ([ebc10c4](https://github.com/QingWei-Li/docsify/commit/ebc10c4)) -* ssr coverpage, fixed [#273](https://github.com/QingWei-Li/docsify/issues/273) ([9e824a4](https://github.com/QingWei-Li/docsify/commit/9e824a4)) - +- **search:** custom clear button, fixed [#271](https://github.com/QingWei-Li/docsify/issues/271) ([864aa18](https://github.com/QingWei-Li/docsify/commit/864aa18)) +- **search:** escape special characters for search, fixed [#369](https://github.com/QingWei-Li/docsify/issues/369) ([9755439](https://github.com/QingWei-Li/docsify/commit/9755439)) +- build config ([342438f](https://github.com/QingWei-Li/docsify/commit/342438f)) +- button style for coverpage, fixed [#362](https://github.com/QingWei-Li/docsify/issues/362) ([85428ef](https://github.com/QingWei-Li/docsify/commit/85428ef)) +- dropdown scroll style, fixed [#346](https://github.com/QingWei-Li/docsify/issues/346) ([c4d83f2](https://github.com/QingWei-Li/docsify/commit/c4d83f2)) +- highlight homepage link, fixed [#304](https://github.com/QingWei-Li/docsify/issues/304) ([f960c19](https://github.com/QingWei-Li/docsify/commit/f960c19)) +- homepage link ([e097f88](https://github.com/QingWei-Li/docsify/commit/e097f88)) +- onlyCover ([033be4f](https://github.com/QingWei-Li/docsify/commit/033be4f)) +- ssr compatible embedd ([ebc10c4](https://github.com/QingWei-Li/docsify/commit/ebc10c4)) +- ssr coverpage, fixed [#273](https://github.com/QingWei-Li/docsify/issues/273) ([9e824a4](https://github.com/QingWei-Li/docsify/commit/9e824a4)) ### Features -* click sidebar menu add collapse and expand, close [#294](https://github.com/QingWei-Li/docsify/issues/294) ([5e161a1](https://github.com/QingWei-Li/docsify/commit/5e161a1)) -* **compiler:** support embedded file as code block, close [#134](https://github.com/QingWei-Li/docsify/issues/134) ([761ccc2](https://github.com/QingWei-Li/docsify/commit/761ccc2)) -* **compiler:** support embedded markdown, html, video, etc files, close [#383](https://github.com/QingWei-Li/docsify/issues/383), close [#333](https://github.com/QingWei-Li/docsify/issues/333) ([524f52f](https://github.com/QingWei-Li/docsify/commit/524f52f)) -* **cover:** add onlyCover option, close [#382](https://github.com/QingWei-Li/docsify/issues/382) ([b265fdd](https://github.com/QingWei-Li/docsify/commit/b265fdd)) -* **fetch:** add requestHeaders option, fixed [#336](https://github.com/QingWei-Li/docsify/issues/336) ([54ab4c9](https://github.com/QingWei-Li/docsify/commit/54ab4c9)) -* **render:** add ext option for custom file extenstion, close [#340](https://github.com/QingWei-Li/docsify/issues/340) ([248aa72](https://github.com/QingWei-Li/docsify/commit/248aa72)) -* **render:** mutilple coverpage, close [#315](https://github.com/QingWei-Li/docsify/issues/315) ([f68ddf5](https://github.com/QingWei-Li/docsify/commit/f68ddf5)) - - +- click sidebar menu add collapse and expand, close [#294](https://github.com/QingWei-Li/docsify/issues/294) ([5e161a1](https://github.com/QingWei-Li/docsify/commit/5e161a1)) +- **compiler:** support embedded file as code block, close [#134](https://github.com/QingWei-Li/docsify/issues/134) ([761ccc2](https://github.com/QingWei-Li/docsify/commit/761ccc2)) +- **compiler:** support embedded markdown, html, video, etc files, close [#383](https://github.com/QingWei-Li/docsify/issues/383), close [#333](https://github.com/QingWei-Li/docsify/issues/333) ([524f52f](https://github.com/QingWei-Li/docsify/commit/524f52f)) +- **cover:** add onlyCover option, close [#382](https://github.com/QingWei-Li/docsify/issues/382) ([b265fdd](https://github.com/QingWei-Li/docsify/commit/b265fdd)) +- **fetch:** add requestHeaders option, fixed [#336](https://github.com/QingWei-Li/docsify/issues/336) ([54ab4c9](https://github.com/QingWei-Li/docsify/commit/54ab4c9)) +- **render:** add ext option for custom file extenstion, close [#340](https://github.com/QingWei-Li/docsify/issues/340) ([248aa72](https://github.com/QingWei-Li/docsify/commit/248aa72)) +- **render:** mutilple coverpage, close [#315](https://github.com/QingWei-Li/docsify/issues/315) ([f68ddf5](https://github.com/QingWei-Li/docsify/commit/f68ddf5)) + ## [4.5.9](https://github.com/QingWei-Li/docsify/compare/v4.5.8...v4.5.9) (2018-02-07) - ### Bug Fixes -* upgrade marked ([4157173](https://github.com/QingWei-Li/docsify/commit/4157173)) - - +- upgrade marked ([4157173](https://github.com/QingWei-Li/docsify/commit/4157173)) + ## [4.5.8](https://github.com/QingWei-Li/docsify/compare/v4.5.6...v4.5.8) (2018-02-07) - ### Bug Fixes -* cover style, fixed [#381](https://github.com/QingWei-Li/docsify/issues/381) ([368754e](https://github.com/QingWei-Li/docsify/commit/368754e)) -* updated deps ([#337](https://github.com/QingWei-Li/docsify/issues/337)) ([a12d393](https://github.com/QingWei-Li/docsify/commit/a12d393)) +- cover style, fixed [#381](https://github.com/QingWei-Li/docsify/issues/381) ([368754e](https://github.com/QingWei-Li/docsify/commit/368754e)) +- updated deps ([#337](https://github.com/QingWei-Li/docsify/issues/337)) ([a12d393](https://github.com/QingWei-Li/docsify/commit/a12d393)) + ## [4.5.7](https://github.com/QingWei-Li/docsify/compare/v4.5.6...v4.5.7) (2017-12-29) - ### Features -* add navigation plugin, closed [#180](https://github.com/QingWei-Li/docsify/issues/180) ([f78be4c](https://github.com/QingWei-Li/docsify/commit/f78be4c)) - - +- add navigation plugin, closed [#180](https://github.com/QingWei-Li/docsify/issues/180) ([f78be4c](https://github.com/QingWei-Li/docsify/commit/f78be4c)) + ## [4.5.6](https://github.com/QingWei-Li/docsify/compare/v4.5.3...v4.5.6) (2017-12-14) - ### Bug Fixes -* **style:** increase the tap targets of menu button, fixed [#325](https://github.com/QingWei-Li/docsify/issues/325) ([888f217](https://github.com/QingWei-Li/docsify/commit/888f217)) - - +- **style:** increase the tap targets of menu button, fixed [#325](https://github.com/QingWei-Li/docsify/issues/325) ([888f217](https://github.com/QingWei-Li/docsify/commit/888f217)) + ## [4.5.5](https://github.com/QingWei-Li/docsify/compare/v4.5.4...v4.5.5) (2017-11-30) - ### Bug Fixes -* disqus plugin issue ([#318](https://github.com/QingWei-Li/docsify/issues/318)) ([041b33e](https://github.com/QingWei-Li/docsify/commit/041b33e)), closes [#317](https://github.com/QingWei-Li/docsify/issues/317) - - +- disqus plugin issue ([#318](https://github.com/QingWei-Li/docsify/issues/318)) ([041b33e](https://github.com/QingWei-Li/docsify/commit/041b33e)), closes [#317](https://github.com/QingWei-Li/docsify/issues/317) + ## [4.5.4](https://github.com/QingWei-Li/docsify/compare/v4.5.2...v4.5.4) (2017-11-29) - ### Bug Fixes -* **compiler:** task lists style, fixed [#215](https://github.com/QingWei-Li/docsify/issues/215) ([e43ded4](https://github.com/QingWei-Li/docsify/commit/e43ded4)) - +- **compiler:** task lists style, fixed [#215](https://github.com/QingWei-Li/docsify/issues/215) ([e43ded4](https://github.com/QingWei-Li/docsify/commit/e43ded4)) ### Features -* add gitalk plugin ([#306](https://github.com/QingWei-Li/docsify/issues/306)) ([9208e64](https://github.com/QingWei-Li/docsify/commit/9208e64)) - - +- add gitalk plugin ([#306](https://github.com/QingWei-Li/docsify/issues/306)) ([9208e64](https://github.com/QingWei-Li/docsify/commit/9208e64)) + ## [4.5.3](https://github.com/QingWei-Li/docsify/compare/v4.5.2...v4.5.3) (2017-11-11) - ### Features -* add gitalk plugin ([#306](https://github.com/QingWei-Li/docsify/issues/306)) ([9208e64](https://github.com/QingWei-Li/docsify/commit/9208e64)) - - +- add gitalk plugin ([#306](https://github.com/QingWei-Li/docsify/issues/306)) ([9208e64](https://github.com/QingWei-Li/docsify/commit/9208e64)) + ## [4.5.2](https://github.com/QingWei-Li/docsify/compare/v4.5.1...v4.5.2) (2017-11-09) - ### Features -* github task lists, close [#215](https://github.com/QingWei-Li/docsify/issues/215) ([#305](https://github.com/QingWei-Li/docsify/issues/305)) ([d486eef](https://github.com/QingWei-Li/docsify/commit/d486eef)) - - +- github task lists, close [#215](https://github.com/QingWei-Li/docsify/issues/215) ([#305](https://github.com/QingWei-Li/docsify/issues/305)) ([d486eef](https://github.com/QingWei-Li/docsify/commit/d486eef)) + ## [4.5.1](https://github.com/QingWei-Li/docsify/compare/v4.5.0...v4.5.1) (2017-11-07) - ### Features -* fetch files with the query params, fixed [#303](https://github.com/QingWei-Li/docsify/issues/303) ([2a2ed96](https://github.com/QingWei-Li/docsify/commit/2a2ed96)) - - +- fetch files with the query params, fixed [#303](https://github.com/QingWei-Li/docsify/issues/303) ([2a2ed96](https://github.com/QingWei-Li/docsify/commit/2a2ed96)) + # [4.5.0](https://github.com/QingWei-Li/docsify/compare/v4.4.1...v4.5.0) (2017-11-04) - ### Features -* add disqus plugin, closed [#123](https://github.com/QingWei-Li/docsify/issues/123) ([fd7d4e0](https://github.com/QingWei-Li/docsify/commit/fd7d4e0)) - - +- add disqus plugin, closed [#123](https://github.com/QingWei-Li/docsify/issues/123) ([fd7d4e0](https://github.com/QingWei-Li/docsify/commit/fd7d4e0)) + ## [4.4.1](https://github.com/QingWei-Li/docsify/compare/v4.4.0...v4.4.1) (2017-10-31) - ### Bug Fixes -* {docsify-ignore-all} and {docsify-ignore} bug ([#299](https://github.com/QingWei-Li/docsify/issues/299)) ([cc98f56](https://github.com/QingWei-Li/docsify/commit/cc98f56)) -* zoom image plugin issue, fixed [#187](https://github.com/QingWei-Li/docsify/issues/187) ([#300](https://github.com/QingWei-Li/docsify/issues/300)) ([fa772cf](https://github.com/QingWei-Li/docsify/commit/fa772cf)) - - +- {docsify-ignore-all} and {docsify-ignore} bug ([#299](https://github.com/QingWei-Li/docsify/issues/299)) ([cc98f56](https://github.com/QingWei-Li/docsify/commit/cc98f56)) +- zoom image plugin issue, fixed [#187](https://github.com/QingWei-Li/docsify/issues/187) ([#300](https://github.com/QingWei-Li/docsify/issues/300)) ([fa772cf](https://github.com/QingWei-Li/docsify/commit/fa772cf)) + # [4.4.0](https://github.com/QingWei-Li/docsify/compare/v4.3.15...v4.4.0) (2017-10-30) - ### Bug Fixes -* sidebar style issue on firefox, fixed [#184](https://github.com/QingWei-Li/docsify/issues/184) ([#297](https://github.com/QingWei-Li/docsify/issues/297)) ([36bfc9d](https://github.com/QingWei-Li/docsify/commit/36bfc9d)) - +- sidebar style issue on firefox, fixed [#184](https://github.com/QingWei-Li/docsify/issues/184) ([#297](https://github.com/QingWei-Li/docsify/issues/297)) ([36bfc9d](https://github.com/QingWei-Li/docsify/commit/36bfc9d)) ### Features -* add helper for disabled link, fixed [#295](https://github.com/QingWei-Li/docsify/issues/295) ([#296](https://github.com/QingWei-Li/docsify/issues/296)) ([4ad96f3](https://github.com/QingWei-Li/docsify/commit/4ad96f3)) - - +- add helper for disabled link, fixed [#295](https://github.com/QingWei-Li/docsify/issues/295) ([#296](https://github.com/QingWei-Li/docsify/issues/296)) ([4ad96f3](https://github.com/QingWei-Li/docsify/commit/4ad96f3)) + ## [4.3.15](https://github.com/QingWei-Li/docsify/compare/v4.3.14...v4.3.15) (2017-10-20) - ### Bug Fixes -* scroll active sidebar ([a2b8eae](https://github.com/QingWei-Li/docsify/commit/a2b8eae)) - - +- scroll active sidebar ([a2b8eae](https://github.com/QingWei-Li/docsify/commit/a2b8eae)) + ## [4.3.14](https://github.com/QingWei-Li/docsify/compare/v4.3.13...v4.3.14) (2017-10-20) - ### Bug Fixes -* codesponsor style ([ab68268](https://github.com/QingWei-Li/docsify/commit/ab68268)) - - +- codesponsor style ([ab68268](https://github.com/QingWei-Li/docsify/commit/ab68268)) + ## [4.3.13](https://github.com/QingWei-Li/docsify/compare/v4.3.12...v4.3.13) (2017-10-17) - ### Bug Fixes -* duplicate results in search fixed [#257](https://github.com/QingWei-Li/docsify/issues/257) ([#284](https://github.com/QingWei-Li/docsify/issues/284)) ([3476f6f](https://github.com/QingWei-Li/docsify/commit/3476f6f)) - +- duplicate results in search fixed [#257](https://github.com/QingWei-Li/docsify/issues/257) ([#284](https://github.com/QingWei-Li/docsify/issues/284)) ([3476f6f](https://github.com/QingWei-Li/docsify/commit/3476f6f)) ### Features -* make whole search result clickable ([#285](https://github.com/QingWei-Li/docsify/issues/285)) ([1b91227](https://github.com/QingWei-Li/docsify/commit/1b91227)) - - +- make whole search result clickable ([#285](https://github.com/QingWei-Li/docsify/issues/285)) ([1b91227](https://github.com/QingWei-Li/docsify/commit/1b91227)) + ## [4.3.12](https://github.com/QingWei-Li/docsify/compare/v4.3.11...v4.3.12) (2017-10-15) - ### Bug Fixes -* incorrect active link ([#281](https://github.com/QingWei-Li/docsify/issues/281)) ([a3ab379](https://github.com/QingWei-Li/docsify/commit/a3ab379)) - - +- incorrect active link ([#281](https://github.com/QingWei-Li/docsify/issues/281)) ([a3ab379](https://github.com/QingWei-Li/docsify/commit/a3ab379)) + ## [4.3.11](https://github.com/QingWei-Li/docsify/compare/v4.3.10...v4.3.11) (2017-10-15) - ### Bug Fixes -* broken links to same page heading, fix [#278](https://github.com/QingWei-Li/docsify/issues/278), fix [#279](https://github.com/QingWei-Li/docsify/issues/279) ([91d6337](https://github.com/QingWei-Li/docsify/commit/91d6337)) - - +- broken links to same page heading, fix [#278](https://github.com/QingWei-Li/docsify/issues/278), fix [#279](https://github.com/QingWei-Li/docsify/issues/279) ([91d6337](https://github.com/QingWei-Li/docsify/commit/91d6337)) + ## [4.3.10](https://github.com/QingWei-Li/docsify/compare/v4.3.9...v4.3.10) (2017-10-12) - ### Bug Fixes -* link render issue after page refreshing ([#276](https://github.com/QingWei-Li/docsify/issues/276)) ([abd885e](https://github.com/QingWei-Li/docsify/commit/abd885e)) - - +- link render issue after page refreshing ([#276](https://github.com/QingWei-Li/docsify/issues/276)) ([abd885e](https://github.com/QingWei-Li/docsify/commit/abd885e)) + ## [4.3.9](https://github.com/QingWei-Li/docsify/compare/v4.3.8...v4.3.9) (2017-10-11) - ### Bug Fixes -* scroll issue in IE ([#275](https://github.com/QingWei-Li/docsify/issues/275)) ([3e94cb6](https://github.com/QingWei-Li/docsify/commit/3e94cb6)) - - +- scroll issue in IE ([#275](https://github.com/QingWei-Li/docsify/issues/275)) ([3e94cb6](https://github.com/QingWei-Li/docsify/commit/3e94cb6)) + ## [4.3.8](https://github.com/QingWei-Li/docsify/compare/v4.3.7...v4.3.8) (2017-10-07) - ### Bug Fixes -* **slugify:** GitHub compatible heading links, fixed [#272](https://github.com/QingWei-Li/docsify/issues/272) ([9b4e666](https://github.com/QingWei-Li/docsify/commit/9b4e666)) - - +- **slugify:** GitHub compatible heading links, fixed [#272](https://github.com/QingWei-Li/docsify/issues/272) ([9b4e666](https://github.com/QingWei-Li/docsify/commit/9b4e666)) + ## [4.3.7](https://github.com/QingWei-Li/docsify/compare/v4.3.6...v4.3.7) (2017-10-02) - ### Bug Fixes -* **slugify:** GitHub compatible heading links, fixed [#267](https://github.com/QingWei-Li/docsify/issues/267) ([c195d2d](https://github.com/QingWei-Li/docsify/commit/c195d2d)) - - +- **slugify:** GitHub compatible heading links, fixed [#267](https://github.com/QingWei-Li/docsify/issues/267) ([c195d2d](https://github.com/QingWei-Li/docsify/commit/c195d2d)) + ## [4.3.6](https://github.com/QingWei-Li/docsify/compare/v4.3.5...v4.3.6) (2017-09-21) - ### Bug Fixes -* style for codesponsor plugin ([08afec7](https://github.com/QingWei-Li/docsify/commit/08afec7)) - - +- style for codesponsor plugin ([08afec7](https://github.com/QingWei-Li/docsify/commit/08afec7)) + ## [4.3.5](https://github.com/QingWei-Li/docsify/compare/v4.3.4...v4.3.5) (2017-09-20) - ### Bug Fixes -* missed symbol ([#254](https://github.com/QingWei-Li/docsify/issues/254)) ([6c702d3](https://github.com/QingWei-Li/docsify/commit/6c702d3)) - +- missed symbol ([#254](https://github.com/QingWei-Li/docsify/issues/254)) ([6c702d3](https://github.com/QingWei-Li/docsify/commit/6c702d3)) ### Features -* **plugin:** add codesponsor plugin ([46ac4c3](https://github.com/QingWei-Li/docsify/commit/46ac4c3)) - - +- **plugin:** add codesponsor plugin ([46ac4c3](https://github.com/QingWei-Li/docsify/commit/46ac4c3)) + ## [4.3.4](https://github.com/QingWei-Li/docsify/compare/v4.3.3...v4.3.4) (2017-09-07) - ### Bug Fixes -* scroll position issue, fixed [#234](https://github.com/QingWei-Li/docsify/issues/234) ([388ed3d](https://github.com/QingWei-Li/docsify/commit/388ed3d)) - - +- scroll position issue, fixed [#234](https://github.com/QingWei-Li/docsify/issues/234) ([388ed3d](https://github.com/QingWei-Li/docsify/commit/388ed3d)) + ## [4.3.3](https://github.com/QingWei-Li/docsify/compare/v4.3.2...v4.3.3) (2017-09-06) - ### Bug Fixes -* **buble.css:** tweaks code block style, fixed [#249](https://github.com/QingWei-Li/docsify/issues/249) ([9d43051](https://github.com/QingWei-Li/docsify/commit/9d43051)) - +- **buble.css:** tweaks code block style, fixed [#249](https://github.com/QingWei-Li/docsify/issues/249) ([9d43051](https://github.com/QingWei-Li/docsify/commit/9d43051)) ### Features -* add doc for react and vue demo box plugin ([#247](https://github.com/QingWei-Li/docsify/issues/247)) ([f0aca19](https://github.com/QingWei-Li/docsify/commit/f0aca19)) - - +- add doc for react and vue demo box plugin ([#247](https://github.com/QingWei-Li/docsify/issues/247)) ([f0aca19](https://github.com/QingWei-Li/docsify/commit/f0aca19)) + ## [4.3.2](https://github.com/QingWei-Li/docsify/compare/v4.3.1...v4.3.2) (2017-09-01) - ### Bug Fixes -* sidebar highlight ([f82f419](https://github.com/QingWei-Li/docsify/commit/f82f419)) - +- sidebar highlight ([f82f419](https://github.com/QingWei-Li/docsify/commit/f82f419)) ### Features -* add Edit on github plugin (thanks [@njleonzhang](https://github.com/njleonzhang)) ([a0e1ea8](https://github.com/QingWei-Li/docsify/commit/a0e1ea8)) - - +- add Edit on github plugin (thanks [@njleonzhang](https://github.com/njleonzhang)) ([a0e1ea8](https://github.com/QingWei-Li/docsify/commit/a0e1ea8)) + ## [4.3.1](https://github.com/QingWei-Li/docsify/compare/v4.2.9...v4.3.1) (2017-08-30) - ### Features -* **markdown:** supports mermaid [#137](https://github.com/QingWei-Li/docsify/issues/137) ([f4800e0](https://github.com/QingWei-Li/docsify/commit/f4800e0)) - - +- **markdown:** supports mermaid [#137](https://github.com/QingWei-Li/docsify/issues/137) ([f4800e0](https://github.com/QingWei-Li/docsify/commit/f4800e0)) + # [4.3.0](https://github.com/QingWei-Li/docsify/compare/v4.2.9...v4.3.0) (2017-08-17) - ### Features -* **markdown:** supports mermaid [#137](https://github.com/QingWei-Li/docsify/issues/137) ([f4800e0](https://github.com/QingWei-Li/docsify/commit/f4800e0)) - - +- **markdown:** supports mermaid [#137](https://github.com/QingWei-Li/docsify/issues/137) ([f4800e0](https://github.com/QingWei-Li/docsify/commit/f4800e0)) + ## [4.2.9](https://github.com/QingWei-Li/docsify/compare/v4.2.8...v4.2.9) (2017-08-15) - ### Bug Fixes -* ensure document ready before init Docsify [#233](https://github.com/QingWei-Li/docsify/issues/233) +- ensure document ready before init Docsify [#233](https://github.com/QingWei-Li/docsify/issues/233) + ## [4.2.8](https://github.com/QingWei-Li/docsify/compare/v4.2.7...v4.2.8) (2017-08-10) - ### Features -* **compiler:** support for setting target attribute for link, fixed [#230](https://github.com/QingWei-Li/docsify/issues/230) ([7f270f9](https://github.com/QingWei-Li/docsify/commit/7f270f9)) - - +- **compiler:** support for setting target attribute for link, fixed [#230](https://github.com/QingWei-Li/docsify/issues/230) ([7f270f9](https://github.com/QingWei-Li/docsify/commit/7f270f9)) + ## [4.2.7](https://github.com/QingWei-Li/docsify/compare/v4.2.4...v4.2.7) (2017-08-05) - ### Bug Fixes -* **release:** release shell ([628e211](https://github.com/QingWei-Li/docsify/commit/628e211)) -* **style:** nowrap => pre-wrap, fixed [#228](https://github.com/QingWei-Li/docsify/issues/228) ([a88252c](https://github.com/QingWei-Li/docsify/commit/a88252c)) - - +- **release:** release shell ([628e211](https://github.com/QingWei-Li/docsify/commit/628e211)) +- **style:** nowrap => pre-wrap, fixed [#228](https://github.com/QingWei-Li/docsify/issues/228) ([a88252c](https://github.com/QingWei-Li/docsify/commit/a88252c)) + ## [4.2.6](https://github.com/QingWei-Li/docsify/compare/v4.2.4...v4.2.6) (2017-07-27) - ### Bug Fixes -* **css:** hide the nav when the content has not yet been loaded ([1fa1619](https://github.com/QingWei-Li/docsify/commit/1fa1619)) -* **release:** release shell ([628e211](https://github.com/QingWei-Li/docsify/commit/628e211)) - - +- **css:** hide the nav when the content has not yet been loaded ([1fa1619](https://github.com/QingWei-Li/docsify/commit/1fa1619)) +- **release:** release shell ([628e211](https://github.com/QingWei-Li/docsify/commit/628e211)) -## [4.2.4](https://github.com/QingWei-Li/docsify/compare/v4.2.2...v4.2.4) (2017-07-26) +## [4.2.4](https://github.com/QingWei-Li/docsify/compare/v4.2.2...v4.2.4) (2017-07-26) ### Bug Fixes -* **render:** Remove getRootNode to be compatible with the lower version of Chrome, fixed [#225](https://github.com/QingWei-Li/docsify/issues/225) ([b8dd346](https://github.com/QingWei-Li/docsify/commit/b8dd346)) +- **render:** Remove getRootNode to be compatible with the lower version of Chrome, fixed [#225](https://github.com/QingWei-Li/docsify/issues/225) ([b8dd346](https://github.com/QingWei-Li/docsify/commit/b8dd346)) -## [4.2.3](https://github.com/QingWei-Li/docsify/compare/v4.2.2...v4.2.3) (2017-07-26) +## [4.2.3](https://github.com/QingWei-Li/docsify/compare/v4.2.2...v4.2.3) (2017-07-26) ### Features -* **search:** Supports the max depth of the search headline, fixed [#223](https://github.com/QingWei-Li/docsify/issues/223), resolve [#129](https://github.com/QingWei-Li/docsify/issues/129) ([b7b589b](https://github.com/QingWei-Li/docsify/commit/b7b589b)) - - +- **search:** Supports the max depth of the search headline, fixed [#223](https://github.com/QingWei-Li/docsify/issues/223), resolve [#129](https://github.com/QingWei-Li/docsify/issues/129) ([b7b589b](https://github.com/QingWei-Li/docsify/commit/b7b589b)) -## [4.2.2](https://github.com/QingWei-Li/docsify/compare/v4.2.1...v4.2.2) (2017-07-24) +## [4.2.2](https://github.com/QingWei-Li/docsify/compare/v4.2.1...v4.2.2) (2017-07-24) ### Bug Fixes -* style rerender due to setting themeColor ([17ff3d1](https://github.com/QingWei-Li/docsify/commit/17ff3d1)) - - +- style rerender due to setting themeColor ([17ff3d1](https://github.com/QingWei-Li/docsify/commit/17ff3d1)) + ## [4.2.1](https://github.com/QingWei-Li/docsify/compare/v4.2.0...v4.2.1) (2017-07-19) - give the navbar some line-height (#216) - Remove unnecessary moduleName option from rollup config for plugins (#209) + # [4.2.0](https://github.com/QingWei-Li/docsify/compare/v4.1.14...v4.2.0) (2017-07-10) - ### Bug Fixes -* not found page ([9af8559](https://github.com/QingWei-Li/docsify/commit/9af8559)) - +- not found page ([9af8559](https://github.com/QingWei-Li/docsify/commit/9af8559)) ### Features -* alias option supports regexp, resolve [#183](https://github.com/QingWei-Li/docsify/issues/183) ([c4aa22c](https://github.com/QingWei-Li/docsify/commit/c4aa22c)) -* ignore to compiled link, fixed [#203](https://github.com/QingWei-Li/docsify/issues/203) ([#204](https://github.com/QingWei-Li/docsify/issues/204)) ([2e00f4c](https://github.com/QingWei-Li/docsify/commit/2e00f4c)) - - +- alias option supports regexp, resolve [#183](https://github.com/QingWei-Li/docsify/issues/183) ([c4aa22c](https://github.com/QingWei-Li/docsify/commit/c4aa22c)) +- ignore to compiled link, fixed [#203](https://github.com/QingWei-Li/docsify/issues/203) ([#204](https://github.com/QingWei-Li/docsify/issues/204)) ([2e00f4c](https://github.com/QingWei-Li/docsify/commit/2e00f4c)) + ## [4.1.14](https://github.com/QingWei-Li/docsify/compare/v4.1.13...v4.1.14) (2017-06-24) - ### Bug Fixes -* get file path, fixed jrappen/sublime-distractionless/commit/81bfadd391428823191cc03eca956a2312e04d13#commitcomment-22427070 ([e8117e5](https://github.com/QingWei-Li/docsify/commit/e8117e5)), closes [jrappen/sublime-distractionless/commit/81bfadd391428823191cc03eca956a2312e04d13#commitcomment-22427070](https://github.com/jrappen/sublime-distractionless/commit/81bfadd391428823191cc03eca956a2312e04d13/issues/commitcomment-22427070) - +- get file path, fixed jrappen/sublime-distractionless/commit/81bfadd391428823191cc03eca956a2312e04d13#commitcomment-22427070 ([e8117e5](https://github.com/QingWei-Li/docsify/commit/e8117e5)), closes [jrappen/sublime-distractionless/commit/81bfadd391428823191cc03eca956a2312e04d13#commitcomment-22427070](https://github.com/jrappen/sublime-distractionless/commit/81bfadd391428823191cc03eca956a2312e04d13/issues/commitcomment-22427070) ### Features -* add context attribute, fixed [#191](https://github.com/QingWei-Li/docsify/issues/191) ([ce0e9ac](https://github.com/QingWei-Li/docsify/commit/ce0e9ac)) - - +- add context attribute, fixed [#191](https://github.com/QingWei-Li/docsify/issues/191) ([ce0e9ac](https://github.com/QingWei-Li/docsify/commit/ce0e9ac)) + ## [4.1.13](https://github.com/QingWei-Li/docsify/compare/v4.1.12...v4.1.13) (2017-06-11) - - + ## [4.1.12](https://github.com/QingWei-Li/docsify/compare/v4.1.11...v4.1.12) (2017-06-03) - ### Bug Fixes -* **render:** subtitle in side bar shows undefined, fixed [#182](https://github.com/QingWei-Li/docsify/issues/182) ([d087d57](https://github.com/QingWei-Li/docsify/commit/d087d57)) - - +- **render:** subtitle in side bar shows undefined, fixed [#182](https://github.com/QingWei-Li/docsify/issues/182) ([d087d57](https://github.com/QingWei-Li/docsify/commit/d087d57)) + ## [4.1.11](https://github.com/QingWei-Li/docsify/compare/v4.1.10...v4.1.11) (2017-06-02) - ### Bug Fixes -* **compiler:** force reset toc when rendering sidebar fixed [#181](https://github.com/QingWei-Li/docsify/issues/181) ([ccf4c7c](https://github.com/QingWei-Li/docsify/commit/ccf4c7c)) -* **render:** autoHeader does not work ([1304d2e](https://github.com/QingWei-Li/docsify/commit/1304d2e)) - - +- **compiler:** force reset toc when rendering sidebar fixed [#181](https://github.com/QingWei-Li/docsify/issues/181) ([ccf4c7c](https://github.com/QingWei-Li/docsify/commit/ccf4c7c)) +- **render:** autoHeader does not work ([1304d2e](https://github.com/QingWei-Li/docsify/commit/1304d2e)) + ## [4.1.10](https://github.com/QingWei-Li/docsify/compare/v4.1.9...v4.1.10) (2017-06-02) - ### Bug Fixes -* **hash:** hash routing crashes when url has querystring ([6d48ce1](https://github.com/QingWei-Li/docsify/commit/6d48ce1)) - - +- **hash:** hash routing crashes when url has querystring ([6d48ce1](https://github.com/QingWei-Li/docsify/commit/6d48ce1)) + ## [4.1.9](https://github.com/QingWei-Li/docsify/compare/v4.1.8...v4.1.9) (2017-05-31) - ### Bug Fixes -* can't render toc on first load ([d9b487e](https://github.com/QingWei-Li/docsify/commit/d9b487e)) -* **lifecycle:** continue to handle data ([955d3d5](https://github.com/QingWei-Li/docsify/commit/955d3d5)) -* **render:** broken name link, fixed [#167](https://github.com/QingWei-Li/docsify/issues/167) ([91b66a5](https://github.com/QingWei-Li/docsify/commit/91b66a5)) - - +- can't render toc on first load ([d9b487e](https://github.com/QingWei-Li/docsify/commit/d9b487e)) +- **lifecycle:** continue to handle data ([955d3d5](https://github.com/QingWei-Li/docsify/commit/955d3d5)) +- **render:** broken name link, fixed [#167](https://github.com/QingWei-Li/docsify/issues/167) ([91b66a5](https://github.com/QingWei-Li/docsify/commit/91b66a5)) + ## [4.1.8](https://github.com/QingWei-Li/docsify/compare/v4.1.7...v4.1.8) (2017-05-31) - ### Bug Fixes -* auto replace version ([22b50f0](https://github.com/QingWei-Li/docsify/commit/22b50f0)) -* update edit button demo ([ec887c1](https://github.com/QingWei-Li/docsify/commit/ec887c1)) - +- auto replace version ([22b50f0](https://github.com/QingWei-Li/docsify/commit/22b50f0)) +- update edit button demo ([ec887c1](https://github.com/QingWei-Li/docsify/commit/ec887c1)) ### Features -* add edit button demo ([a64cee1](https://github.com/QingWei-Li/docsify/commit/a64cee1)) -* add edit button demo, close [#162](https://github.com/QingWei-Li/docsify/issues/162) ([036fdac](https://github.com/QingWei-Li/docsify/commit/036fdac)) - - +- add edit button demo ([a64cee1](https://github.com/QingWei-Li/docsify/commit/a64cee1)) +- add edit button demo, close [#162](https://github.com/QingWei-Li/docsify/issues/162) ([036fdac](https://github.com/QingWei-Li/docsify/commit/036fdac)) + ## [4.1.7](https://github.com/QingWei-Li/docsify/compare/v4.1.6...v4.1.7) (2017-05-30) - ### Bug Fixes -* **ssr:** clean files ([0014895](https://github.com/QingWei-Li/docsify/commit/0014895)) - - +- **ssr:** clean files ([0014895](https://github.com/QingWei-Li/docsify/commit/0014895)) + ## [4.1.6](https://github.com/QingWei-Li/docsify/compare/v4.1.5...v4.1.6) (2017-05-30) - ### Bug Fixes -* **ssr:** add debug ([6b9e092](https://github.com/QingWei-Li/docsify/commit/6b9e092)) - - +- **ssr:** add debug ([6b9e092](https://github.com/QingWei-Li/docsify/commit/6b9e092)) + ## [4.1.5](https://github.com/QingWei-Li/docsify/compare/v4.1.4...v4.1.5) (2017-05-30) - ### Bug Fixes -* **ssr:** missing package ([6db8c9e](https://github.com/QingWei-Li/docsify/commit/6db8c9e)) - - +- **ssr:** missing package ([6db8c9e](https://github.com/QingWei-Li/docsify/commit/6db8c9e)) + ## [4.1.4](https://github.com/QingWei-Li/docsify/compare/v4.1.3...v4.1.4) (2017-05-30) - ### Bug Fixes -* **ssr:** file path ([79a83bc](https://github.com/QingWei-Li/docsify/commit/79a83bc)) - - +- **ssr:** file path ([79a83bc](https://github.com/QingWei-Li/docsify/commit/79a83bc)) + ## [4.1.3](https://github.com/QingWei-Li/docsify/compare/v4.1.2...v4.1.3) (2017-05-30) - ### Bug Fixes -* update babel config ([9825db4](https://github.com/QingWei-Li/docsify/commit/9825db4)) - - +- update babel config ([9825db4](https://github.com/QingWei-Li/docsify/commit/9825db4)) + ## [4.1.2](https://github.com/QingWei-Li/docsify/compare/v4.1.1...v4.1.2) (2017-05-30) - ### Bug Fixes -* update babel config ([80dba19](https://github.com/QingWei-Li/docsify/commit/80dba19)) - - +- update babel config ([80dba19](https://github.com/QingWei-Li/docsify/commit/80dba19)) + ## [4.1.1](https://github.com/QingWei-Li/docsify/compare/v4.1.0...v4.1.1) (2017-05-30) - ### Bug Fixes -* build for ssr package ([4cb20a5](https://github.com/QingWei-Li/docsify/commit/4cb20a5)) -* remove history mode ([0e74e6c](https://github.com/QingWei-Li/docsify/commit/0e74e6c)) - - +- build for ssr package ([4cb20a5](https://github.com/QingWei-Li/docsify/commit/4cb20a5)) +- remove history mode ([0e74e6c](https://github.com/QingWei-Li/docsify/commit/0e74e6c)) + # [4.1.0](https://github.com/QingWei-Li/docsify/compare/v4.0.2...v4.1.0) (2017-05-30) - - + ## [4.0.2](https://github.com/QingWei-Li/docsify/compare/v4.0.1...v4.0.2) (2017-05-30) - ### Bug Fixes -* basePath for history mode ([fc1cd3f](https://github.com/QingWei-Li/docsify/commit/fc1cd3f)) - - +- basePath for history mode ([fc1cd3f](https://github.com/QingWei-Li/docsify/commit/fc1cd3f)) + ## [4.0.1](https://github.com/QingWei-Li/docsify/compare/v4.0.0...v4.0.1) (2017-05-29) - ### Bug Fixes -* **ssr:** remove context ([4626157](https://github.com/QingWei-Li/docsify/commit/4626157)) -* lint ([b764b6e](https://github.com/QingWei-Li/docsify/commit/b764b6e)) - - +- **ssr:** remove context ([4626157](https://github.com/QingWei-Li/docsify/commit/4626157)) +- lint ([b764b6e](https://github.com/QingWei-Li/docsify/commit/b764b6e)) -# [4.0.0](https://github.com/QingWei-Li/docsify/compare/v3.7.3...v4.0.0) (2017-05-29) +# [4.0.0](https://github.com/QingWei-Li/docsify/compare/v3.7.3...v4.0.0) (2017-05-29) ### Bug Fixes -* **render:** init event in ssr ([eba1c98](https://github.com/QingWei-Li/docsify/commit/eba1c98)) -* lint ([1f4514d](https://github.com/QingWei-Li/docsify/commit/1f4514d)) - +- **render:** init event in ssr ([eba1c98](https://github.com/QingWei-Li/docsify/commit/eba1c98)) +- lint ([1f4514d](https://github.com/QingWei-Li/docsify/commit/1f4514d)) ### Features -* finish ssr ([3444884](https://github.com/QingWei-Li/docsify/commit/3444884)) -* init ocsify-server-renderer ([6dea685](https://github.com/QingWei-Li/docsify/commit/6dea685)) -* support history mode ([f095eb8](https://github.com/QingWei-Li/docsify/commit/f095eb8)) - - +- finish ssr ([3444884](https://github.com/QingWei-Li/docsify/commit/3444884)) +- init ocsify-server-renderer ([6dea685](https://github.com/QingWei-Li/docsify/commit/6dea685)) +- support history mode ([f095eb8](https://github.com/QingWei-Li/docsify/commit/f095eb8)) diff --git a/README.md b/README.md index 8a0f158..b8da0d8 100644 --- a/README.md +++ b/README.md @@ -11,45 +11,51 @@

Backers on Open Collective Sponsors on Open Collective - Travis Status + Travis Status npm donate + gitter

-

Glod Sponsor via Open Collective

+

Gold Sponsor via Open Collective

- +

## Links -* [Documentation](https://docsify.js.org) -* [CLI](https://github.com/QingWei-Li/docsify-cli) -* CDN: [UNPKG](https://unpkg.com/docsify/) | [jsDelivr](https://cdn.jsdelivr.net/npm/docsify/) | [cdnjs](https://cdnjs.com/libraries/docsify) -* [Awesome docsify](https://github.com/QingWei-Li/awesome-docsify) +- [`develop` branch preview](https://docsifyjs.netlify.com/) +- [Documentation](https://docsify.js.org) +- [CLI](https://github.com/docsifyjs/docsify-cli) +- CDN: [UNPKG](https://unpkg.com/docsify/) | [jsDelivr](https://cdn.jsdelivr.net/npm/docsify/) | [cdnjs](https://cdnjs.com/libraries/docsify) +- [Awesome docsify](https://github.com/docsifyjs/awesome-docsify) +- [Community chat](https://gitter.im/docsifyjs/Lobby) ## Features -* No statically built html files -* Simple and lightweight (~19kB gzipped) -* Smart full-text search plugin -* Multiple themes -* Useful plugin API -* Compatible with IE10+ -* Support SSR ([example](https://github.com/QingWei-Li/docsify-ssr-demo)) +- No statically built html files +- Simple and lightweight (~21kB gzipped) +- Smart full-text search plugin +- Multiple themes +- Useful plugin API +- Compatible with IE11 +- Support SSR ([example](https://github.com/docsifyjs/docsify-ssr-demo)) +- Support embedded files ## Quick start -Look at [this tutorial](https://docsify.js.org/#/quickstart) or [online demo](https://jsfiddle.net/7ztb8qsr/1/). +Look at [this tutorial](https://docsify.js.org/#/quickstart) + +[![Edit 307qqv236](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/307qqv236) ## Showcase These projects are using docsify to generate their sites. Pull requests welcome :blush: -Move to [awesome-docsify](https://github.com/QingWei-Li/awesome-docsify) +Move to [awesome-docsify](https://github.com/docsifyjs/awesome-docsify#showcase) ## Similar projects @@ -60,17 +66,16 @@ Move to [awesome-docsify](https://github.com/QingWei-Li/awesome-docsify) ## Contributing -* Fork it! -* Create your feature branch: `git checkout -b my-new-feature` -* Commit your changes: `git commit -am 'Add some feature'` -* Push to the branch: `git push origin my-new-feature` -* Submit a pull request +- Fork it! +- Create your feature branch: `git checkout -b my-new-feature` +- Commit your changes: `git commit -am 'Add some feature'` +- Push to the branch: `git push origin my-new-feature` +- Submit a pull request ## Development ```bash npm run bootstrap && npm run dev -open http://localhost:3000 ``` ## Backers @@ -97,10 +102,10 @@ Support this project by becoming a sponsor. Your logo will show up here with a l ## Contributors This project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)]. - + ## License -MIT +[MIT](LICENSE) -[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2FQingWei-Li%2Fdocsify.svg?type=large)](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2FQingWei-Li%2Fdocsify?ref=badge_large) +[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fdocsifyjs%2Fdocsify.svg?type=large)](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fdocsifyjs%2Fdocsify?ref=badge_large) diff --git a/app.js b/app.js deleted file mode 100644 index 63f80f7..0000000 --- a/app.js +++ /dev/null @@ -1,53 +0,0 @@ -var serveStatic = require('serve-static') -var http = require('http') -var fs = require('fs') -var Renderer = require('./packages/docsify-server-renderer/build.js') - -var renderer = new Renderer({ - template: ` - - - - - docsify - - - - - - - - -`, - config: { - name: 'docsify', - repo: 'qingwei-li/docsify', - basePath: 'https://docsify.js.org/', - loadNavbar: true, - loadSidebar: true, - subMaxLevel: 3, - auto2top: true, - alias: { - '/de-de/changelog': '/changelog', - '/zh-cn/changelog': '/changelog', - '/changelog': - 'https://raw.githubusercontent.com/QingWei-Li/docsify/master/CHANGELOG' - } - }, - path: './' -}) - -http - .createServer(function (req, res) { - serveStatic('.')(req, res, function () { - // TEST SSR - // renderer.renderToString(req.url) - // .then(html => res.end(html)) - - res.writeHead(404, { 'Content-Type': 'text/html' }) - res.end(fs.readFileSync('dev.html')) - }) - }) - .listen(3000, '0.0.0.0') - -console.log(`\nListening at http://0.0.0.0:3000\n`) diff --git a/build/build-css.js b/build/build-css.js deleted file mode 100644 index b1b239e..0000000 --- a/build/build-css.js +++ /dev/null @@ -1,50 +0,0 @@ -var fs = require('fs') -var cssnano = require('cssnano').process -var resolve = require('path').resolve -var postcss = require('postcss') -var isProd = process.argv[process.argv.length - 1] !== '--dev' - -var processor = postcss([ - require('postcss-salad')({ - features: { - precss: { - properties: { - preserve: true - } - } - } - }) -]) - -var saveMin = function (file, content) { - fs.writeFileSync(resolve(__dirname, '../lib/themes/', file), content) -} -var save = function (file, content) { - fs.writeFileSync(resolve(__dirname, '../themes/', file), content) -} -var load = function (file) { - return fs.readFileSync(resolve(__dirname, '../src/themes/', file)).toString() -} -var loadLib = function (file) { - return fs.readFileSync(resolve(__dirname, '../themes/', file)).toString() -} - -var list = fs.readdirSync(resolve(__dirname, '../src/themes')) - -list.forEach(function (file) { - if (!/\.css$/.test(file)) return - processor - .process(load(file), { from: resolve(__dirname, '../src/themes/', file) }) - .then(function (result) { - save(file, result.css) - console.log('salad - ' + file) - isProd && - cssnano(loadLib(file)).then(function (result) { - saveMin(file, result.css) - console.log('cssnao - ' + file) - }) - }) - .catch(function (err) { - console.log(err) - }) -}) diff --git a/build/build.js b/build/build.js index 6185f59..7b61224 100644 --- a/build/build.js +++ b/build/build.js @@ -1,19 +1,19 @@ -var rollup = require('rollup') -var buble = require('rollup-plugin-buble') -var commonjs = require('rollup-plugin-commonjs') -var nodeResolve = require('rollup-plugin-node-resolve') -var string = require('rollup-plugin-string') -var uglify = require('rollup-plugin-uglify') -var replace = require('rollup-plugin-replace') -var isProd = process.argv[process.argv.length - 1] !== '--dev' -var version = process.env.VERSION || require('../package.json').version +const rollup = require('rollup') +const buble = require('rollup-plugin-buble') +const commonjs = require('rollup-plugin-commonjs') +const nodeResolve = require('rollup-plugin-node-resolve') +const uglify = require('rollup-plugin-uglify') +const replace = require('rollup-plugin-replace') +const isProd = process.env.NODE_ENV === 'production' +const version = process.env.VERSION || require('../package.json').version +const chokidar = require('chokidar') +const path = require('path') -var build = function (opts) { +const build = function (opts) { rollup .rollup({ - input: 'src/' + opts.entry, + input: opts.input, plugins: (opts.plugins || []).concat([ - string({ include: '**/*.css' }), buble(), commonjs(), nodeResolve(), @@ -24,7 +24,7 @@ var build = function (opts) { ]) }) .then(function (bundle) { - var dest = 'lib/' + (opts.output || opts.entry) + var dest = 'lib/' + (opts.output || opts.input) console.log(dest) bundle.write({ @@ -37,41 +37,83 @@ var build = function (opts) { console.error(err) }) } - -build({ - entry: 'core/index.js', - output: 'docsify.js' -}) - -var plugins = [ - { name: 'search', entry: 'search/index.js' }, - { name: 'ga', entry: 'ga.js' }, - { name: 'emoji', entry: 'emoji.js' }, - { name: 'external-script', entry: 'external-script.js' }, - { name: 'front-matter', entry: 'front-matter/index.js' }, - { name: 'zoom-image', entry: 'zoom-image.js' }, - { name: 'disqus', entry: 'disqus.js' }, - { name: 'gitalk', entry: 'gitalk.js' } -] - -plugins.forEach(item => { +const buildCore = function () { build({ - entry: 'plugins/' + item.entry, - output: 'plugins/' + item.name + '.js' + input: 'src/core/index.js', + output: 'docsify.js' }) -}) -if (isProd) { - build({ - entry: 'core/index.js', - output: 'docsify.min.js', - plugins: [uglify()] - }) - plugins.forEach(item => { + if (isProd) { build({ - entry: 'plugins/' + item.entry, - output: 'plugins/' + item.name + '.min.js', + input: 'src/core/index.js', + output: 'docsify.min.js', plugins: [uglify()] }) - }) + } +} +const buildAllPlugin = function () { + var plugins = [ + {name: 'search', input: 'search/index.js'}, + {name: 'ga', input: 'ga.js'}, + {name: 'matomo', input: 'matomo.js'}, + {name: 'emoji', input: 'emoji.js'}, + {name: 'external-script', input: 'external-script.js'}, + {name: 'front-matter', input: 'front-matter/index.js'}, + {name: 'zoom-image', input: 'zoom-image.js'}, + {name: 'disqus', input: 'disqus.js'}, + {name: 'gitalk', input: 'gitalk.js'} + ] + + plugins.forEach(item => { + build({ + input: 'src/plugins/' + item.input, + output: 'plugins/' + item.name + '.js' + }) + }) + + if (isProd) { + plugins.forEach(item => { + build({ + input: 'src/plugins/' + item.input, + output: 'plugins/' + item.name + '.min.js', + plugins: [uglify()] + }) + }) + } +} + +if (!isProd) { + chokidar + .watch(['src/core', 'src/plugins'], { + atomic: true, + awaitWriteFinish: { + stabilityThreshold: 1000, + pollInterval: 100 + } + }) + .on('change', p => { + console.log('[watch] ', p) + const dirs = p.split(path.sep) + if (dirs[1] === 'core') { + buildCore() + } else if (dirs[2]) { + const name = path.basename(dirs[2], '.js') + const input = `src/plugins/${name}${ + /\.js/.test(dirs[2]) ? '' : '/index' + }.js` + + build({ + input, + output: 'plugins/' + name + '.js' + }) + } + }) + .on('ready', () => { + console.log('[start]') + buildCore() + buildAllPlugin() + }) +} else { + buildCore() + buildAllPlugin() } diff --git a/build/build-cover.js b/build/cover.js similarity index 100% rename from build/build-cover.js rename to build/cover.js diff --git a/build/mincss.js b/build/mincss.js new file mode 100644 index 0000000..f6c5ec2 --- /dev/null +++ b/build/mincss.js @@ -0,0 +1,12 @@ +const cssnano = require('cssnano').process +const path = require('path') +const fs = require('fs') + +files = fs.readdirSync(path.resolve('lib/themes')) + +files.forEach(file => { + file = path.resolve('lib/themes', file) + cssnano(fs.readFileSync(file)).then(result => { + fs.writeFileSync(file, result.css) + }) +}) diff --git a/build/release.sh b/build/release.sh old mode 100644 new mode 100755 index da15a38..a328322 --- a/build/release.sh +++ b/build/release.sh @@ -29,7 +29,6 @@ if [[ $REPLY =~ ^[Yy]$ ]]; then # commit git add -A - git add -f lib/ -A git commit -m "[build] $VERSION $RELEASE_TAG" npm --no-git-tag-version version $VERSION --message "[release] $VERSION $RELEASE_TAG" diff --git a/build/build-ssr.js b/build/ssr.js similarity index 100% rename from build/build-ssr.js rename to build/ssr.js diff --git a/dev.html b/dev.html deleted file mode 100644 index f61b9f4..0000000 --- a/dev.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - docsify - - - - - - - - -
- - - - diff --git a/docs/README.md b/docs/README.md index 579cbc4..e625420 100644 --- a/docs/README.md +++ b/docs/README.md @@ -2,28 +2,31 @@ > A magical documentation site generator. -## What is it +## What it is -docsify generates your documentation website on the fly. Unlike GitBook, it does not generate static html files. Instead, it smartly loads and parses your Markdown files and displays them as website. All you need to do is create an `index.html` to start and [deploy it on GitHub Pages](deploy.md). +docsify generates your documentation website on the fly. Unlike GitBook, it does not generate static html files. Instead, it smartly loads and parses your Markdown files and displays them as a website. To start using it, all you need to do is create an `index.html` and [deploy it on GitHub Pages](deploy.md). -See the [Quick start](quickstart.md) for more details. +See the [Quick start](quickstart.md) guide for more details. ## Features -* No statically built html files -* Simple and lightweight (~19kB gzipped) -* Smart full-text search plugin -* Multiple themes -* Useful plugin API -* Emoji support -* Compatible with IE10+ - -- Support SSR ([example](https://github.com/QingWei-Li/docsify-ssr-demo)) +- No statically built html files +- Simple and lightweight (~21kB gzipped) +- Smart full-text search plugin +- Multiple themes +- Useful plugin API +- Emoji support +- Compatible with IE11 +- Support server-side rendering ([example](https://github.com/docsifyjs/docsify-ssr-demo)) ## Examples -Check out the [Showcase](https://github.com/QingWei-Li/docsify/#showcase) to docsify in use. +Check out the [Showcase](https://github.com/docsifyjs/awesome-docsify#showcase) to see docsify in use. ## Donate Please consider donating if you think docsify is helpful to you or that my work is valuable. I am happy if you can help me [buy a cup of coffee](https://github.com/QingWei-Li/donate). :heart: + +## Community + +Users and the development team are usually in the [Gitter chat room](https://gitter.im/docsifyjs/Lobby). diff --git a/docs/_coverpage.md b/docs/_coverpage.md index f829569..1decbd6 100644 --- a/docs/_coverpage.md +++ b/docs/_coverpage.md @@ -1,12 +1,12 @@ ![logo](_media/icon.svg) -# docsify 4.6.0 +# docsify 4.9.4 > A magical documentation site generator. -* Simple and lightweight (~19kB gzipped) -* No statically built html files -* Multiple themes +- Simple and lightweight (~21kB gzipped) +- No statically built html files +- Multiple themes -[GitHub](https://github.com/QingWei-Li/docsify/) -[Get Started](#docsify) +[GitHub](https://github.com/docsifyjs/docsify/) +[Getting Started](#docsify) diff --git a/docs/_media/example.js b/docs/_media/example.js new file mode 100644 index 0000000..7b6f668 --- /dev/null +++ b/docs/_media/example.js @@ -0,0 +1,16 @@ +import fetch from 'fetch' + +const URL = 'https://example.com' +const PORT = 8080 + +/// [demo] +const result = fetch(`${URL}:${PORT}`) + .then(function(response) { + return response.json(); + }) + .then(function(myJson) { + console.log(JSON.stringify(myJson)); + }); +/// [demo] + +result.then(console.log).catch(console.error) diff --git a/docs/_navbar.md b/docs/_navbar.md index eccd441..47a2356 100644 --- a/docs/_navbar.md +++ b/docs/_navbar.md @@ -1,4 +1,6 @@ - Translations + - [:uk: English](/) - [:cn: 中文](/zh-cn/) - [:de: Deutsch](/de-de/) - - [:uk: English](/) + - [:es: Spanish](/es/) + - [:ru: Russian](/ru/) diff --git a/docs/_sidebar.md b/docs/_sidebar.md index 565a649..051514b 100644 --- a/docs/_sidebar.md +++ b/docs/_sidebar.md @@ -1,28 +1,28 @@ -* Getting started +- Getting started - * [Quick start](quickstart.md) - * [Writing more pages](more-pages.md) - * [Custom navbar](custom-navbar.md) - * [Cover page](cover.md) + - [Quick start](quickstart.md) + - [Writing more pages](more-pages.md) + - [Custom navbar](custom-navbar.md) + - [Cover page](cover.md) -* Customization +- Customization - * [Configuration](configuration.md) - * [Themes](themes.md) - * [List of Plugins](plugins.md) - * [Write a Plugin](write-a-plugin.md) - * [Markdown configuration](markdown.md) - * [Language highlighting](language-highlight.md) + - [Configuration](configuration.md) + - [Themes](themes.md) + - [List of Plugins](plugins.md) + - [Write a Plugin](write-a-plugin.md) + - [Markdown configuration](markdown.md) + - [Language highlighting](language-highlight.md) -* Guide +- Guide - * [Deploy](deploy.md) - * [Helpers](helpers.md) - * [Vue compatibility](vue.md) - * [CDN](cdn.md) - * [Offline Mode(PWA)](pwa.md) - * [Server-client renderer(SSR)](ssr.md) - * [Embed Files (new)](embed-files.md) + - [Deploy](deploy.md) + - [Helpers](helpers.md) + - [Vue compatibility](vue.md) + - [CDN](cdn.md) + - [Offline Mode(PWA)](pwa.md) + - [Server-Side Rendering(SSR)](ssr.md) + - [Embed Files](embed-files.md) -* [Awesome docsify](awesome.md) -* [Changelog](changelog.md) +- [Awesome docsify](awesome.md) +- [Changelog](changelog.md) diff --git a/docs/cdn.md b/docs/cdn.md index 2166732..eba77a8 100644 --- a/docs/cdn.md +++ b/docs/cdn.md @@ -12,7 +12,7 @@ Recommended: [unpkg](//unpkg.com), which will reflect the latest version as soon ``` -Alternatively, use [compressed files](#compressed-files). +Alternatively, use [compressed files](#compressed-file). ## Specific version diff --git a/docs/configuration.md b/docs/configuration.md index 7c0f0e7..ba48475 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -5,7 +5,7 @@ You can configure the `window.$docsify`. ```html -``` - -Alternativ kannst du auch die [komprimierten Dateien](#komprimierte-dateien) verwenden. - -## Spezielle Version - -```html - - - - - -``` - -## Komprimierte Dateien - -```html - - - - - -``` - -```html - - - - - -``` - -## Andere CDN - -- http://www.bootcdn.cn/docsify -- https://cdn.jsdelivr.net/npm/docsify/ -- https://cdnjs.com/libraries/docsify diff --git a/docs/de-de/configuration.md b/docs/de-de/configuration.md deleted file mode 100644 index 076c015..0000000 --- a/docs/de-de/configuration.md +++ /dev/null @@ -1,403 +0,0 @@ -# Einstellungen - -You can configure the `window.$docsify`. - -```html - -``` - -## el - -* Typ: `String` -* Standard: `#app` - -Das DOM Element kann bei der Initialisierung gesetzt werden. Es kann ein CSS selector string oder ein richtiges HTMLElement sein. - -```js -window.$docsify = { - el: '#app' -}; -``` - -## repo - -* Typ: `String` -* Standard: `null` - -Verwende die repository URL oder eine Zeichenfolge aus `Benutzername/repo`, um das [GitHub Corner](http://tholman.com/github-corners/) widget in die obere rechte Ecke der Seite zu implementieren. - -```js -window.$docsify = { - repo: 'QingWei-Li/docsify', - // oder - repo: 'https://github.com/QingWei-Li/docsify/' -}; -``` - -## maxLevel - -* Typ: `Number` -* Standard: `6` - -Maximale Anzahl der Inhaltsübersichtebenen. - -```js -window.$docsify = { - maxLevel: 4 -}; -``` - -## loadNavbar - -* Typ: `Boolean|String` -* Standard: `false` - -Lädt die Navigationsleiste von der Markdown Datei `_navbar.md` falls **true**, oder vom gewählten Pfad. - -```js -window.$docsify = { - // lade von _navbar.md - loadNavbar: true, - - // lade von nav.md - loadNavbar: 'nav.md' -}; -``` - -## loadSidebar - -* Typ: `Boolean|String` -* Standard: `false` - -Lädt das seitliche Inhaltsverzeichnis von der Markdown Datei `_sidebar.md` falls **true**, oder vom gewählten Pfad. - -```js -window.$docsify = { - // lade von _sidebar.md - loadSidebar: true, - - // lade von summary.md - loadSidebar: 'summary.md' -}; -``` - -## subMaxLevel - -* Typ: `Number` -* Standard: `0` - -Wähle die maximale Anzahl der Unterpunkte pro Datei in der Inhaltsübersicht. - -```js -window.$docsify = { - subMaxLevel: 2 -}; -``` - -## auto2top - -* Typ: `Boolean` -* Standard: `false` - -Scrolle zum Anfang der Seite, wenn die Route gewechselt wird. - -```js -window.$docsify = { - auto2top: true -}; -``` - -## homepage - -* Typ: `String` -* Standard: `README.md` - -`README.md` in deinem Ordner für die Dokumentation wird als Startseite für deine Webseite gesetzt, aber manchmal musst du das vielleicht ändern. - -```js -window.$docsify = { - // Wähle /home.md - homepage: 'home.md', - - // Oder verwende das README in deinem repo - homepage: - 'https://raw.githubusercontent.com/QingWei-Li/docsify/master/README.md' -}; -``` - -## basePath - -* Typ: `String` - -Der Basispfad der Webseite. Du kannst einen anderen Ordner wählen, oder eine andere Domain. - -```js -window.$docsify = { - basePath: '/path/', - - // Lade die Dateien von einer anderen Domain - basePath: 'https://docsify.js.org/', - - // Oder lade Dateien von einem anderen repo - basePath: - 'https://raw.githubusercontent.com/ryanmcdermott/clean-code-javascript/master/' -}; -``` - -## coverpage - -* Typ: `Boolean|String` -* Standard: `false` - -Aktiviere das [Titelseitenfeature](de-de/cover.md). Falls `true`, wird sie von `_coverpage.md` geladen. - -```js -window.$docsify = { - coverpage: true, - - // Anderer Dateiname - coverpage: 'cover.md', - - // mutiple covers - coverpage: ['/', '/zh-cn/'], - - // mutiple covers and custom file name - coverpage: { - '/': 'cover.md', - '/zh-cn/': 'cover.md' - } -}; -``` - -## name - -* Typ: `String` - -Webseitenname, wie er in der Inhaltsübersicht in der Seitenleiste angezeigt wird. - -```js -window.$docsify = { - name: 'docsify' -}; -``` - -## nameLink - -* Typ: `String` -* Standard: `window.location.pathname` - -Der Name der Links. - -```js -window.$docsify = { - nameLink: '/', - - // Für jede Route - nameLink: { - '/zh-cn/': '/zh-cn/', - '/': '/' - } -}; -``` - -## markdown - -* Typ: `Function` - -Siehe [Markdown Konfiguration](de-de/markdown.md). - -```js -window.$docsify = { - // Objekt - markdown: { - smartypants: true, - renderer: { - link: function() { - // ... - } - } - }, - - // Funktion - markdown: function(marked, renderer) { - // ... - return marked; - } -}; -``` - -## themeColor - -* Typ: `String` - -Passe die Farbe der Themen an. Verwende [CSS3 Variablen](https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_variables) und polyfill in älteren Browsern. - -```js -window.$docsify = { - themeColor: '#3F51B5' -}; -``` - -## alias - -* Typ: `Object` - -Verwende alternative Routen. Du kannst sie ungehindert anpassen. Supports RegExp. - -```js -window.$docsify = { - alias: { - '/foo/(+*)': '/bar/$1', // supports regexp - '/zh-cn/changelog': '/changelog', - '/changelog': - 'https://raw.githubusercontent.com/QingWei-Li/docsify/master/CHANGELOG', - '/.*/_sidebar.md': '/_sidebar.md' // See #301 - } -}; -``` - -## autoHeader - -* Typ: `Boolean` - -Sollten `loadSidebar` und `autoHeader` beide aktiviert sein, setze einen Header vor die Seite in jedem Link in `_sidebar.md`, bevor sie in HTML umgewandelt wird. Vergleiche [#78](https://github.com/QingWei-Li/docsify/issues/78). - -```js -window.$docsify = { - loadSidebar: true, - autoHeader: true -}; -``` - -## executeScript - -* Typ: `Boolean` - -Führe das Skript auf der Seite aus. Analysiere nur das erste script tag ([demo](de-de/themes.md)). Sollte Vue verwendet sein, wird es in der Standardeinstellung ausgeführt. - -```js -window.$docsify = { - executeScript: true -}; -``` - -```markdown -## Dies ist ein Test - - -``` - -?> Nehme zur Kenntnis, dass, solltest du ein externes Skript ausführen, z.B. ein eingebettete jsfiddle demo, du sicher gehen solltest, das [external-script](de-de/plugins.md?id=external-script) plugin zu verwenden. - -## noEmoji - -* type: `Boolean` - -Verhindere die Umwandlung in Emojis: - -```js -window.$docsify = { - noEmoji: true -}; -``` - -## mergeNavbar - -* type: `Boolean` - -Navbar will be merged with the sidebar on smaller screens. - -```js -window.$docsify = { - mergeNavbar: true -}; -``` - -## formatUpdated - -* type: `String|Function` - -We can display the file update date through **{docsify-updated}** variable. And format it by `formatUpdated`. -See https://github.com/lukeed/tinydate#patterns - -```js -window.$docsify = { - formatUpdated: '{MM}/{DD} {HH}:{mm}', - - formatUpdated: function(time) { - // ... - - return time; - } -}; -``` - -## externalLinkTarget - -* type: `String` -* default: `_blank` - -Currently it defaults to \_blank, would be nice if configurable: - -```js -window.$docsify = { - externalLinkTarget: '_self' // default: '_blank' -}; -``` - -## routerMode - -* type: `String` -* default: `history` - -```js -window.$docsify = { - routerMode: 'history' // default: 'hash' -}; -``` - -## noCompileLinks - -* type: `Array` - -Sometimes we do not want docsify to handle our links. See [#203](https://github.com/QingWei-Li/docsify/issues/203) - -```js -window.$docsify = { - noCompileLinks: ['/foo', '/bar/.*'] -}; -``` - -## requestHeaders - -* type: `Object` - -Set the request resource headers. - -```js -window.$docsify = { - requestHeaders: { - 'x-token': 'xxx' - } -}; -``` - -## ext - -* type: `String` - -Request file extension. - -```js -window.$docsify = { - ext: '.md' -}; -``` diff --git a/docs/de-de/cover.md b/docs/de-de/cover.md deleted file mode 100644 index 6ef56c2..0000000 --- a/docs/de-de/cover.md +++ /dev/null @@ -1,99 +0,0 @@ -# Titelseite - -Aktiviere die Unterstützung für Titelseiten, indem du `coverpage` auf **true** einstellst, vergleiche [coverpage Einstellungen](configuration.md#coverpage). - -## Einfache Verwendung - -Setze `coverpage` auf **true**, und erstelle `_coverpage.md`: - -```html - - - - -``` - -```markdown - - -![logo](_media/icon.svg) - -# docsify 3.5 - -> Ein magischer Generator für Dokumentationsseiten. - -* Einfach und wenig Speicherbedarf (~19kB gzipped) -* Keine statischen HTML Dateien -* Mehrere Themes - -[GitHub](https://github.com/QingWei-Li/docsify/) -[Schnellstart](#docsify) -``` - -!> Die Dokumentationsseiten können nur eine Titelseite haben! - -## Eigener Hintergrund - -Die Hintergrundfarbe wird in der Standardeinstellung zufällig generiert. Du kannst sie anpassen, oder auch ein Hintergrundbild verwenden: - -```markdown - - -# docsify 3.5 - -[GitHub](https://github.com/QingWei-Li/docsify/) -[Schnellstart](#quick-start) - - - -![](_media/bg.png) - - - -![color](#f0f0f0) -``` - -## Coverpage as homepage - -Normal, the coverpage and the homepage appear at the same time. Of course, you can also separate the coverpage by [onlyCover option](de-de/configuration.md#onlycover). - -## Multiple covers - -If your docs site is in more than one language, it may be useful to set multiple covers. - -For example, your docs structure is like this - -```text -. -└── docs - ├── README.md - ├── guide.md - ├── _coverpage.md - └── zh-cn - ├── README.md - └── guide.md - └── _coverpage.md -``` - -Now, you can set - -```js -window.$docsify = { - coverpage: ['/', '/zh-cn/'] -}; -``` - -Or a special file name - -```js -window.$docsify = { - coverpage: { - '/': 'cover.md', - '/zh-cn/': 'cover.md' - } -}; -``` diff --git a/docs/de-de/custom-navbar.md b/docs/de-de/custom-navbar.md deleted file mode 100644 index 819d05a..0000000 --- a/docs/de-de/custom-navbar.md +++ /dev/null @@ -1,96 +0,0 @@ -# Navigationsleiste anpassen - -## HTML - -Solltest du eine Navigationsleiste benötigen, so kannst du eine HTML-basierte erstellen. - -!> Die Links der Dokumentation fangen alle mit `#/` an. - -```html - - - - -
- -``` - -## Markdown - -Oder du kannst deine Navigationsleiste mit einer Datei basierend auf Markdown erstellen, indem du `loadNavbar` auf **true** setzt und eine Datei namens `_navbar.md` erstellst, vergleiche [loadNavbar Einstellungen](configuration.md#loadnavbar). - -```html - - - - -``` - -```markdown - - -* [En](/) -* [Deutsch](/de-de/) -``` - -!> Solltest du Github Pages verwenden, musst du zusätzlich eine Datei namens `.nojekyll` in `./docs` erstellen, um zu verhindern, dass Github Dateien ignoriert, die mit einem Unterstrich anfangen. - -`_navbar.md` wird in jedem Verzeichnislevel geladen. Sollte das aktuelle Verzeichnis keine Datei namens `_navbar.md` haben, so sucht **docsify** in den übergeordneten Ordnern. Wenn du z.B. im Moment im Verzeichnis `/guide/quick-start` bist, so wird `_navbar.md` von der Datei `/guide/_navbar.md` geladen. - -## Aufbauen von Strukturen - -Du kannst untergeordnete Listen erstellen, indem du untergeordnete Punkte einem übergeordneten Punkt gegenüber einrückst. - -```markdown - - -* Getting started - - * [Quick start](de-de/quickstart.md) - * [Writing more pages](de-de/more-pages.md) - * [Custom navbar](de-de/custom-navbar.md) - * [Cover page](de-de/cover.md) - -* Configuration - * [Configuration](de-de/configuration.md) - * [Themes](de-de/themes.md) - * [Using plugins](de-de/plugins.md) - * [Markdown configuration](de-de/markdown.md) - * [Language highlight](de-de/language-highlight.md) -``` - -wird also wie folgt aussehen - -![Nesting navbar](_images/nested-navbar.png 'Nesting navbar') - -## Angepasste Navigationsleisten in Verbindung mit dem emoji Erweiterung - -Solltest du die [emoji Erweiterung](plugins.md#emoji) verwenden: - -```html - - - - - -``` - -so kannst du z.B. auch die Flaggenemojis in der Markdown Datei für deine angepasste Navigationsleiste verwenden: - -```markdown - - -* [:us:, :uk:](/) -* [:de:](/de-de/) -``` diff --git a/docs/de-de/deploy.md b/docs/de-de/deploy.md deleted file mode 100644 index b138435..0000000 --- a/docs/de-de/deploy.md +++ /dev/null @@ -1,57 +0,0 @@ -# Inbetriebnahme - -Ähnlich wie bei [GitBook](https://www.gitbook.com), kannst du deine Dateien über GitHub Pages oder VPS erstellen. - -## GitHub Pages - -Du kannst folgende drei Orte verwenden, um die Dokumentation für dein Github repository zu verwalten: - -* `docs/` Ordner -* master branch -* gh-pages branch - -Es wird empfohlen, deine Dateien im `./docs` Unterordner im `master` branch deines repository zu speichern. Wechsle dann zu den Einstellungen deines repository und wähle `master branch /docs folder` als deine Github Pages Quelle. - -![github pages](_images/deploy-github-pages.png) - -!> Du kannst die Dateien auch im Hauptverzeichnis speichern und dann `master branch` in den Einstellungen auswählen. - - -## GitLab Pages - -If you are deploying your master branch, include `.gitlab-ci.yml` with the following script: - -?> The `.public` workaround is so `cp` doesn't also copy `public/` to itself in an infinite loop. - -``` YAML -pages: - stage: deploy - script: - - mkdir .public - - cp -r * .public - - mv .public public - artifacts: - paths: - - public - only: - - master -``` - -!> You can replace script with `- cp -r docs/. public`, if `./docs` is your Docsify subfolder. - - -## VPS - -Verwende folgende nginx config. - -```nginx -server { - listen 80; - server_name your.domain.com; - - location / { - alias /path/to/dir/of/docs; - index index.html; - } -} -``` diff --git a/docs/de-de/embed-files.md b/docs/de-de/embed-files.md deleted file mode 100644 index a935dd3..0000000 --- a/docs/de-de/embed-files.md +++ /dev/null @@ -1,66 +0,0 @@ -# Embed files - -With docsify 4.6 it is now possible to embed any type of file. -You can embed these files as video, audio, iframes, or code blocks, and even Markdown files can even be embedded directly into the document. - -For example, here embedded a Markdown file. You only need to do this: - -```markdown -[filename](_media/example.md ':include') -``` - -Then the content of `example.md` will be displayed directly here - -[filename](_media/example.md ':include') - -You can check the original content for [example.md](_media/example.md ':ignore'). - -Normally, this will compiled into a link, but in docsify, if you add `:include` it will be embedded. - -## Embedded file type - -Currently, file extension are automatically recognized and embedded in different ways. - -This is a supported embedding type: - -* **iframe** `.html`, `.htm` -* **markdown** `.markdown`, `.md` -* **audio** `.mp3` -* **video** `.mp4`, `.ogg` -* **code** other file extension - -Of course, you can force the specified. For example, you want to Markdown file as code block embedded. - -```markdown -[filename](_media/example.md ':include :type=code') -``` - -You will get it - -[filename](_media/example.md ':include :type=code') - -## Tag attribute - -If you embed the file as `iframe`, `audio` and `video`, then you may need to set the attributes of these tags. - -```markdown -[cinwell website](https://cinwell.com ':include :type=iframe width=100% height=400px') -``` - -[cinwell website](https://cinwell.com ':include :type=iframe width=100% height=400px') - -Did you see it? You only need to write directly. You can check [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe) for these attributes. - -## The code block highlight - -Embedding any type of source code file, you can specify the highlighted language or automatically identify. - -```markdown -[](_media/example.html ':include :type=code text') -``` - -⬇️ - -[](_media/example.html ':include :type=code text') - -?> How to set highlight? You can see [here](language-highlight.md). diff --git a/docs/de-de/helpers.md b/docs/de-de/helpers.md deleted file mode 100644 index 570c74c..0000000 --- a/docs/de-de/helpers.md +++ /dev/null @@ -1,76 +0,0 @@ -# Dokumentationshelfer - -docsify erweitert die Markdownsyntax, um deine Dokumente besser lesbar zu machen. - -## Wichtiger Inhalt - -Wichtiger Inhalt wie: - -```markdown -!> **Zeit** ist Geld, mein Freund! -``` - -wird wie folgt gerendert: - -!> **Zeit** ist Geld, mein Freund! - -## Generelle Tipps - -Generelle Tipps wie: - -```markdown -?> _TODO_ unit test -``` - -wird wie folgt gerendert: - -?> _TODO_ unit test - -## Ignore to compile link - -Some time we will put some other relative path to the link, you have to need to tell docsify you don't need to compile this link. For example - -```md -[link](/demo/) -``` - -It will be compiled to `link` and will be loaded `/demo/README.md`. Maybe you want to jump to `/demo/index.html`. - -Now you can do that - -```md -[link](/demo/ ':ignore') -``` - -You will get `link`html. Do not worry, you can still set title for link. - -```md -[link](/demo/ ':ignore title') - -link -``` - -## Set target attribute for link - -```md -[link](/demo ':target=_blank') -[link](/demo2 ':target=_self') -``` - -## Github Task Lists - -```md -* [ ] foo -* bar -* [x] baz -* [] bam <~ not working - * [ ] bim - * [ ] lim -``` - -* [ ] foo -* bar -* [x] baz -* [] bam <~ not working - * [ ] bim - * [ ] lim diff --git a/docs/de-de/language-highlight.md b/docs/de-de/language-highlight.md deleted file mode 100644 index da69a45..0000000 --- a/docs/de-de/language-highlight.md +++ /dev/null @@ -1,11 +0,0 @@ -# Hervorheben von Sprachen - -**docsify** verwendet [Prism](https://github.com/PrismJS/prism) um Quellcodeabschnitte in deinen Seiten hervorzuheben. Als Standardeinstellung werden nur CSS, JavaScipt und HTML unterstützt. Du kannst **Prism** auch mit weiteren Sprachen verwenden: - -```html - - - -``` - -?> Vergleiche die [component files](https://github.com/PrismJS/prism/tree/gh-pages/components) Liste für weitere Optionen. diff --git a/docs/de-de/markdown.md b/docs/de-de/markdown.md deleted file mode 100644 index bcab8e3..0000000 --- a/docs/de-de/markdown.md +++ /dev/null @@ -1,57 +0,0 @@ -# Markdown Einstellungen - -**docsify** verwendet [marked](https://github.com/chjj/marked), um Markdown umzuwandeln. Du kannst einstellen, wie es deine Markdown Seiten in HTML umwandelt, indem du `renderer` konfigurierst: - -```js -window.$docsify = { - markdown: { - smartypants: true, - renderer: { - link: function() { - // ... - } - } - } -} -``` - -?> Für mögliche Einstellungen, siehe [marked Dokumentation](https://github.com/chjj/marked#options-1) - -Du kannst die Regeln auch beliebig anpassen. - -```js -window.$docsify = { - markdown: function(marked, renderer) { - // ... - - return marked - } -} -``` - - -## Supports mermaid - -```js -// Import mermaid -// -// - -mermaid.initialize({ startOnLoad: false }); - -window.$docsify = { - markdown: { - renderer: { - code: function(code, lang) { - if (lang === "mermaid") { - return ( - '
' + mermaid.render(lang, code) + "
" - ); - } - return this.origin.code.apply(this, arguments); - } - } - } -} -``` - diff --git a/docs/de-de/more-pages.md b/docs/de-de/more-pages.md deleted file mode 100644 index 1cfc001..0000000 --- a/docs/de-de/more-pages.md +++ /dev/null @@ -1,107 +0,0 @@ -# Noch mehr Seiten - -Wenn du mehr Seiten für deine Dokumentation brauchst, so kannst du weitere Markdown Dateien in deinem **docsify** Ordner erstellen. Eine Datei namens `guide.md` ist dann über `/#/guide` erreichbar. - -Nehmen wir als Beispiel folgende Verzeichnisstruktur: - -```text -. -├── docs -| └── README.md -| └── guide.md -| └── de-de -| └──README.md -| └──guide.md -``` - -Die passenden Routen sind dann - -```text -docs/README.md => http://domain.com -docs/guide.md => http://domain.com/guide -docs/de-de/README.md => http://domain.com/de-de/ -docs/de-de/guide.md => http://domain.com/de-de/guide -``` - -## Seitenleiste mit Inhaltsverzeichnis anpassen - -Als Standardeinstellung wird das Inhaltsverzeichnis in der Seitenleiste automatisch basierend auf vorhandenen Markdown Dateien generiert. Wenn du das seitliche Inhaltsverzeichnis anpassen willst, kannst du eine Datei namens `_sidebar.md` erstellen (vergleiche [das seitliche Inhaltsverzeichnis für diese Dokumentation](https://github.com/QingWei-Li/docsify/blob/master/docs/de-de/_sidebar.md) als Beispiel): - -Als Erstes musst du `loadSidebar` auf **true** setzen, vergleiche [Einstellungen für das seitliche Inhaltsverzeichnis](configuration.md#loadsidebar). - -```html - - - - -``` - -Als Zweites erstellst du eine Datei namens `_sidebar.md`: - -```markdown - - -* [Home](/) -* [Guide](de-de/guide.md) -``` - -!> Solltest du Github Pages verwenden, musst du zusätzlich eine Datei namens `.nojekyll` in `./docs` erstellen, um zu verhindern, dass Github Dateien ignoriert, die mit einem Unterstrich anfangen. - -`_sidebar.md` wird in jedem Verzeichnislevel geladen. Sollte das aktuelle Verzeichnis keine Datei namens `_sidebar.md` haben, so sucht **docsify** in den übergeordneten Ordnern. Wenn du z.B. im Moment im Verzeichnis `/guide/quick-start` bist, so wird `_sidebar.md` von der Datei `/guide/_sidebar.md` geladen. - -You can specify `alias` to avoid unnecessary fallback. - -```html - -``` - -## Inhaltsverzeichnis - -Eine angepasste Seitenleist kann auch automatisch ein Inhaltsverzeichnis generieren, indem ein `subMaxLevel` gesetzt wird, vergleiche [subMaxLevel Einstellungen](configuration.md#submaxlevel). - -```html - - - - -``` - -## Ignoring Subheaders - -When `subMaxLevel` is set, each header is automatically added to the table of contents by default. If you want to ignore a specific header, add `{docsify-ignore}` to it. - -```markdown -# Getting Started - -## Header {docsify-ignore} - -This header won't appear in the sidebar table of contents. -``` - -To ignore all headers on a specific page, you can use `{docsify-ignore-all}` on the first header of the page. - -```markdown -# Getting Started {docsify-ignore-all} - -## Header - -This header won't appear in the sidebar table of contents. -``` - -Both `{docsify-ignore}` and `{docsify-ignore-all}` will not be rendered on the page when used. diff --git a/docs/de-de/plugins.md b/docs/de-de/plugins.md deleted file mode 100644 index f3e23b1..0000000 --- a/docs/de-de/plugins.md +++ /dev/null @@ -1,183 +0,0 @@ -# Liste der Erweiterungen - -## Volltextsuche - -Als Standardeinstellung werden Hyperlinks auf der aktuellen Seite erkannt und der Inhalt in `localStorage` gespeichert. Du kannst den Pfad zu den Dateien auch anpassen: - - -```html - - - -``` - -## Google Analytics - -Installiere diese Erweiterung und passe die track id an: - -```html - - - -``` - -Konfiguration über `data-ga`: - -```html - - -``` - -## front matter - -```html - -``` - -## emoji - -Als Standardeinstellung werden emojis umgewandelt. Als Beispiel wird `:100:` umgewandelt in :100:. Aber das ist nicht genau, das es keine passende Nicht-emoji Zeichenfolge gibt. Solltest du emojis richtig umwandeln wollen, musst du diese Erweiterung verwenden. - -```html - -``` - -## Externes Skript - -Wenn das Skript auf der Seite ein externes ist (eine Javascript Datei über das `src` Attribut importiert), brauchst du diese Erweiterung, damit das funktioniert. - -```html - -``` - -## Bilder zoomen - -Medium's Bilderzoom. Basierend auf [medium-zoom](https://github.com/francoischalifour/medium-zoom). - -```html - -``` - -Exclude the special image - -```markdown -![](image.png ':no-zoom') -``` - -## Demo code with instant preview and jsfiddle integration - -With this plugin, sample code can be rendered on the page instantly, so that the readers can see the preview immediately. -When readers expand the demo box, the source code and description are shown there. if they click the button `Try in Jsfiddle`, -`jsfiddle.net` will be open with the code of this sample, which allow readers to revise the code and try on their own. - -[Vue](https://njleonzhang.github.io/docsify-demo-box-vue/) and [React](https://njleonzhang.github.io/docsify-demo-box-react/) are both supported. - - -## Edit on github - -Add `Edit on github` button on every pages. Provided by [@njleonzhang](https://github.com/njleonzhang), check [document](https://github.com/njleonzhang/docsify-edit-on-github) - -## Copy to Clipboard - -Add a simple `Click to copy` button to all preformatted code blocks to effortlessly allow users to copy example code from your docs. Provided by [@jperasmus](https://github.com/jperasmus) - -```html - - -``` - -```javascript -window.$docsify = { - plugins: [ - window.DocsifyCopyCodePlugin.init() - ] -} -``` - -See [here](https://github.com/jperasmus/docsify-copy-code/blob/master/README.md) for more details. - - - -## Disqus - -Disqus comments. https://disqus.com/ - -```html - - -``` - - -## Gitalk - -[Gitalk](https://github.com/gitalk/gitalk) is a modern comment component based on Github Issue and Preact. - -```html - - - - - -``` - -## Navigation - -Pagination for docsify. By [@imyelo](https://github.com/imyelo) - -```html - - -``` diff --git a/docs/de-de/pwa.md b/docs/de-de/pwa.md deleted file mode 100644 index 587547e..0000000 --- a/docs/de-de/pwa.md +++ /dev/null @@ -1,115 +0,0 @@ -# Offline Modus - -[Progressive Web Apps](https://developers.google.com/web/progressive-web-apps/) (PWA) sind Erfahrungen die Vorzüge des Internets mit den Vorzügen von Apps verbinden. Wir können unsere Webseite verbessern, indem wir sie mit Hilfe von service workers auch **offline** und in schlechten Netzen interagierbar machen. - -Sie sind sehr einfach zu verwenden. - -## serviceWorker erstellen - -Erstelle eine Datei namens `sw.js` in deinem **docsify** Verzeichnis und kopiere folgenden Code: - -*sw.js* - -```js -/* =========================================================== - * docsify sw.js - * =========================================================== - * Copyright 2016 @huxpro - * Licensed under Apache 2.0 - * Register service worker. - * ========================================================== */ - -const RUNTIME = 'docsify' -const HOSTNAME_WHITELIST = [ - self.location.hostname, - 'fonts.gstatic.com', - 'fonts.googleapis.com', - 'unpkg.com' -] - -// The Util Function to hack URLs of intercepted requests -const getFixedUrl = (req) => { - var now = Date.now() - var url = new URL(req.url) - - // 1. fixed http URL - // Just keep syncing with location.protocol - // fetch(httpURL) belongs to active mixed content. - // And fetch(httpRequest) is not supported yet. - url.protocol = self.location.protocol - - // 2. add query for caching-busting. - // Github Pages served with Cache-Control: max-age=600 - // max-age on mutable content is error-prone, with SW life of bugs can even extend. - // Until cache mode of Fetch API landed, we have to workaround cache-busting with query string. - // Cache-Control-Bug: https://bugs.chromium.org/p/chromium/issues/detail?id=453190 - if (url.hostname === self.location.hostname) { - url.search += (url.search ? '&' : '?') + 'cache-bust=' + now - } - return url.href -} - -/** - * @Lifecycle Activate - * New one activated when old isnt being used. - * - * waitUntil(): activating ====> activated - */ -self.addEventListener('activate', event => { - event.waitUntil(self.clients.claim()) -}) - -/** - * @Functional Fetch - * All network requests are being intercepted here. - * - * void respondWith(Promise r) - */ -self.addEventListener('fetch', event => { - // Skip some of cross-origin requests, like those for Google Analytics. - if (HOSTNAME_WHITELIST.indexOf(new URL(event.request.url).hostname) > -1) { - // Stale-while-revalidate - // similar to HTTP's stale-while-revalidate: https://www.mnot.net/blog/2007/12/12/stale - // Upgrade from Jake's to Surma's: https://gist.github.com/surma/eb441223daaedf880801ad80006389f1 - const cached = caches.match(event.request) - const fixedUrl = getFixedUrl(event.request) - const fetched = fetch(fixedUrl, { cache: 'no-store' }) - const fetchedCopy = fetched.then(resp => resp.clone()) - - // Call respondWith() with whatever we get first. - // If the fetch fails (e.g disconnected), wait for the cache. - // If there’s nothing in cache, wait for the fetch. - // If neither yields a response, return offline pages. - event.respondWith( - Promise.race([fetched.catch(_ => cached), cached]) - .then(resp => resp || fetched) - .catch(_ => { /* eat any errors */ }) - ) - - // Update the cache with the version we fetched (only for ok status) - event.waitUntil( - Promise.all([fetchedCopy, caches.open(RUNTIME)]) - .then(([response, cache]) => response.ok && cache.put(event.request, response)) - .catch(_ => { /* eat any errors */ }) - ) - } -}) -``` - -## Registrieren - -Jetzt registrieren wir die Funktion in der Datei `index.html`. Nur manche aktuellen Browser unterstützen die Funktion, wir müssen also prüfen: - -*index.html* - -```html - -``` - -## Geniessen - -Du kannst die Website jetzt veröffentlichen und Benutzer können sie dann vollständig offline verwenden, sobald sie einmal geladen wurde :ghost: Du kannst das jetzt ausprobieren, indem du deine Internetverbindung ausschaltest und diese Seite neu lädst. diff --git a/docs/de-de/quickstart.md b/docs/de-de/quickstart.md deleted file mode 100644 index c68f67c..0000000 --- a/docs/de-de/quickstart.md +++ /dev/null @@ -1,94 +0,0 @@ -# Schnellstart - -Es wird empfohlen, `docsify-cli` global zu installieren, welches bei der Inbetriebnahme und der lokalen Vorschau hilft. - -```bash -npm i docsify-cli -g -``` - -## Inbetriebnahme - -Wenn du die Dokumentation in dem Unterordner `./docs` erstellen willst, kannst du den Befehl `init` verwenden. - -```bash -docsify init ./docs -``` - -## Inhalt schreiben - -Nachdem der Befehl `init` vollständig ausgeführt wurde, kannst du folgende Dateien im Unterordner `./docs` finden: - -* `index.html` als zentrale Datei -* `README.md` als die Startseite für die Dokumentation -* `.nojekyll` verhindert, dass Github Pages Dateien ignoriert, die mit einem Unterstrich beginnen. - -Du kannst die Dokumentation über die Datei `./docs/README.md` nach Belieben ändern, und natürlich [weitere Seiten](de-de/more-pages.md) hinzufügen. - -## Vorschau der eigenen Seiten - -Du kannst einen lokalen Server mit dem Befehl `docsify serve` laufen lassen, und auf eine Vorschau deiner Webseite über `http://localhost:3000` zugreifen. - -```bash -docsify serve docs -``` - -?> Für weitere Informationen hinsichtlich der Verwendung von `docsify-cli`, siehe [docsify-cli Dokumentation](https://github.com/QingWei-Li/docsify-cli). - -## Manuelle Inbetriebnahme - -Wenn du `npm` nicht verwenden möchtest, oder Probleme bei der Installation des Tools hast, kannst du auch manuell die Datei namens `index.html` erstellen: - -```html - - - - - - - - - - - -
- - - - -``` - -Solltest du Python installiert haben, kannst du einen statischen Server laufen lassen, um eine Vorschau deiner Webseite anzuschauen: - -```bash -cd docs && python -m SimpleHTTPServer 3000 -``` - -## Ladedialog - -Wenn du möchtest, kann **docsify** einen Ladedialog anzeigen, während es deine Dokumentation umwandelt: - -```html - - -
Please wait...
-``` - -Du solltest das `data-app` Attribut anpassen, wenn du `el` geändert hast: - -```html - - -
Please wait...
- - -``` - -Vergleiche [el Einstellungen](configuration.md#el). diff --git a/docs/de-de/ssr.md b/docs/de-de/ssr.md deleted file mode 100644 index c6e5f3a..0000000 --- a/docs/de-de/ssr.md +++ /dev/null @@ -1,123 +0,0 @@ -# Server client renderer - -See https://docsify.now.sh - -Repo in https://github.com/QingWei-Li/docsify-ssr-demo - -## Why SSR? -- Better SEO -- Feeling cool - -## Quick start - -Install `now` and `docsify-cli` in your project. - -```bash -npm i now docsify-cli -D -``` - -Edit `package.json`. If the documentation in `./docs` subdirectory. - -```json -{ - "name": "my-project", - "scripts": { - "start": "docsify start . -c ssr.config.js", - "deploy": "now -p" - }, - "files": [ - "docs" - ], - "docsify": { - "config": { - "basePath": 'https://docsify.js.org/', - "loadSidebar": true, - "loadNavbar": true, - "coverpage": true, - "name": "docsify" - } - } -} -``` - -!> The `basePath` just like webpack `publicPath`. We can use local or remote files. - -We can preview in the local to see if it works. - -```bash -npm start - -# open http://localhost:4000 -``` - -Publish it! - -```bash -now -p -``` - -Now, You have a support for SSR the docs site. - -## Custom template - -You can provide a templte for entire page's HTML. such as - -```html - - - - - docsify - - - - - - - - - - - - - -``` - -The template should contain these comments for rendered app content. - - `` - - `` - -## Configuration - -You can configure it in a special config file, or `package.json`. - -```js -module.exports = { - template: './ssr.html', - config: { - // docsify config - } -} -``` - -## Deploy for your VPS - -You can run `docsify start` directly on your Node server, or write your own server app with `docsify-server-renderer`. - -```js -var Renderer = require('docsify-server-renderer') -var readFileSync = require('fs').readFileSync - -// init -var renderer = new Renderer({ - template: readFileSync('./docs/index.template.html', 'utf-8')., - config: { - name: 'docsify', - repo: 'qingwei-li/docsify' - } -}) - -renderer.renderToString(url) - .then(html => {}) - .catch(err => {}) -``` diff --git a/docs/de-de/themes.md b/docs/de-de/themes.md deleted file mode 100644 index bcfcd22..0000000 --- a/docs/de-de/themes.md +++ /dev/null @@ -1,56 +0,0 @@ -# Themes - -Es gibt im Moment vier Themes zur Auswahl, ähnlich wie die Webseiten von [Vue](//vuejs.org) oder [buble](//buble.surge.sh), sowie eine weitere, dunkle von [@liril-net](https://github.com/liril-net). - -```html - - - - -``` - -!> Komprimierte Dateien sind über `/lib/themes/` verfügbar. - -```html - - - - - - -``` - -Solltest du weitere Themes erstellen, kannst du sie gerne der Allgemeinheit mit einem [pull request](https://github.com/QingWei-Li/docsify/pulls) zur Verfügung stellen. - -#### Klicke hier für eine Vorschau - - - - - - diff --git a/docs/de-de/vue.md b/docs/de-de/vue.md deleted file mode 100644 index 2cfe49d..0000000 --- a/docs/de-de/vue.md +++ /dev/null @@ -1,100 +0,0 @@ -# Kompatibel mit Vue - -Du kannst Vue Komponenten direkt in den Markdown Dateien verwenden, und sie werden umgewandelt. Du kannst dies zum Beispiel verwenden, um Vue Komponenten gleichzeitig zu demonstrieren und zu dokumentieren. - -## Einfache Verwendung - -Lade Vue in `./index.html`. - -```html - - - - - - -``` - -Dann kannst du sofort Vue Code in deinen Markdown Dateien verwenden. `new Vue({ el: '#main' })` wird als Standard ausgeführt, um Instanzen zu erschaffen. - -*README.md* - -```markdown -# Vue guide - -`v-for` usage. - -```html -
    -
  • {{ i }}
  • -
-`` - -
    -
  • {{ i }}
  • -
-``` - -Du kannst manuell eine Vue Instanz initialisieren. - -*README.md* - -```markdown -# Vue demo - -
hello {{ msg }}
- - -``` - -!> In Markdown Dateien wird nur das Skript innerhalb des ersten script tag Blocks ausgeführt. - -## Kombiniere Vuep um Demos zu erschaffen - -[Vuep](https://github.com/QingWei-Li/vuep) ist eine Komponente zur Darstellung von Vue Komponenten mit einem Liveeditor und einer Vorschau.Unterstützt die Vue Komponenten spec und JSX. - -*index.html* - -```html - - - - - - - - - - - - -``` - -*README.md* - -```markdown -# Vuep - - - - - -``` - -?> Zum Beispiel vergleich auch die [vuep Dokumentation](https://qingwei-li.github.io/vuep/). diff --git a/docs/de-de/write-a-plugin.md b/docs/de-de/write-a-plugin.md deleted file mode 100644 index b852ff0..0000000 --- a/docs/de-de/write-a-plugin.md +++ /dev/null @@ -1,94 +0,0 @@ -# Schreiben einer Erweiterung - -Eine Erweiterung ist schlicht eine Funktion, welche `hook` als Argument nimmt. hook unterstützt dabei das Verwalten von asynchrononen Tasks. - -## Volle Konfiguration - -```js -window.$docsify = { - plugins: [ - function (hook, vm) { - hook.init(function() { - // Called when the script starts running, only trigger once, no arguments, - }) - - hook.beforeEach(function(content) { - // Invoked each time before parsing the Markdown file. - // ... - return content - }) - - hook.afterEach(function(html, next) { - // Invoked each time after the Markdown file is parsed. - // beforeEach and afterEach support asynchronous。 - // ... - // call `next(html)` when task is done. - next(html) - }) - - hook.doneEach(function() { - // Invoked each time after the data is fully loaded, no arguments, - // ... - }) - - hook.mounted(function() { - // Called after initial completion. Only trigger once, no arguments. - }) - - hook.ready(function() { - // Called after initial completion, no arguments. - }) - } - ] -} -``` - -!> Du kannst auf interne Methoden über `window.Docsify` zugreifen. Greife auf die aktuelle Instanz über das zweite Argument zu. - -## Beispiel - -### footer - -Füge jeder Seite eine footer Komponente hinzu: - -```js -window.$docsify = { - plugins: [ - function (hook) { - var footer = [ - '
', - '' - ].join('') - - hook.afterEach(function (html) { - return html + footer - }) - } - ] -} -``` - - -### Edit Button - -```js -window.$docsify = { - plugins: [ - function(hook, vm) { - hook.beforeEach(function (html) { - var url = 'https://github.com/QingWei-Li/docsify/blob/master/docs' + vm.route.file - var editHtml = '[📝 EDIT DOCUMENT](' + url + ')\n' - - return editHtml - + html - + '\n----\n' - + 'Last modified {docsify-updated} ' - + editHtml - }) - } - ] -} -``` \ No newline at end of file diff --git a/docs/deploy.md b/docs/deploy.md index 7a4e03e..a879f2e 100644 --- a/docs/deploy.md +++ b/docs/deploy.md @@ -6,16 +6,16 @@ Similar to [GitBook](https://www.gitbook.com), you can deploy files to GitHub Pa There're three places to populate your docs for your Github repository: -* `docs/` folder -* master branch -* gh-pages branch +- `docs/` folder +- master branch +- gh-pages branch It is recommended that you save your files to the `./docs` subfolder of the `master` branch of your repository. Then select `master branch /docs folder` as your Github Pages source in your repositories' settings page. ![github pages](_images/deploy-github-pages.png) !> You can also save files in the root directory and select `master branch`. -You'll need to place a `.nojekyll` file in the deploy location (such as `/docs` or the gh-pages branch +You'll need to place a `.nojekyll` file in the deploy location (such as `/docs` or the gh-pages branch) ## GitLab Pages @@ -23,7 +23,7 @@ If you are deploying your master branch, include `.gitlab-ci.yml` with the follo ?> The `.public` workaround is so `cp` doesn't also copy `public/` to itself in an infinite loop. -``` YAML +```YAML pages: stage: deploy script: @@ -41,20 +41,17 @@ pages: ## Firebase Hosting -!> You'll need to install the Firebase CLI using `npm i -g firebase-tools` after signing into the [Firebase Console](https://console.firebase.google.com) using a Google Account. +!> You'll need to install the Firebase CLI using `npm i -g firebase-tools` after signing into the [Firebase Console](https://console.firebase.google.com) using a Google Account. Using Terminal determine and navigate to the directory for your Firebase Project - this could be `~/Projects/Docs` etc. From there, run `firebase init`, choosing `Hosting` from the menu (use **space** to select, **arrow keys** to change options and **enter** to confirm). Follow the setup instructions. You should have your `firebase.json` file looking similar to this (I changed the deployment directory from `public` to `site`): + ```json { "hosting": { "public": "site", - "ignore": [ - "firebase.json", - "**/.*", - "**/node_modules/**" - ] + "ignore": ["firebase.json", "**/.*", "**/node_modules/**"] } } ``` @@ -71,8 +68,64 @@ server { server_name your.domain.com; location / { - alias /path/to/dir/of/docs; + alias /path/to/dir/of/docs/; index index.html; } } ``` + +## Netlify + +1. Login to your [Netlify](https://www.netlify.com/) account. +2. In the [dashboard](https://app.netlify.com/) page, click **New site from Git**. +3. Choose a repository where you store your docs, leave the **Build Command** area blank, fill in the Publish directory area with the directory of your `index.html`, for example it should be docs if you populated it at `docs/index.html`. + +### HTML5 router + +When using the HTML5 router, you need to set up redirect rules that redirect all requests to your `index.html`, it's pretty simple when you're using Netlify, populate a `\redirects` file in the docs directory and you're all set: + +```sh +/* /index.html 200 +``` + +## AWS Amplify + +1. Set the routerMode in the Docsify project `index.html` to *history* mode. + +```html + +``` + +2. Login to your [AWS Console](https://aws.amazon.com). +3. Go to the [AWS Amplify Dashboard](https://aws.amazon.com/amplify). +4. Choose the **Deploy** route to setup your project. +5. When prompted, keep the build settings empty if you're serving your docs within the root directory. If you're serving your docs from a different directory, customise your amplify.yml + +```yml +version: 0.1 +frontend: + phases: + build: + commands: + - echo "Nothing to build" + artifacts: + baseDirectory: /docs + files: + - '**/*' + cache: + paths: [] + +``` + +6. Add the following Redirect rules in their displayed order. + +| Source address | Target address | Type | +|----------------|----------------|---------------| +| /<*>.md | /<*>.md | 200 (Rewrite) | +| /<*> | /index.html | 200 (Rewrite) | + diff --git a/docs/embed-files.md b/docs/embed-files.md index a935dd3..dab2efe 100644 --- a/docs/embed-files.md +++ b/docs/embed-files.md @@ -39,6 +39,21 @@ You will get it [filename](_media/example.md ':include :type=code') +## Embedded code fragments +Sometimes you don't want to embed a whole file. Maybe because you need just a few lines but you want to compile and test the file in CI. + +```markdown +[filename](_media/example.js ':include :type=code :fragment=demo') +``` + +In your code file you need to surround the fragment between `/// [demo]` lines (before and after the fragment). +Alternatively you can use `### [demo]`. + +Example: + +[filename](_media/example.js ':include :type=code :fragment=demo') + + ## Tag attribute If you embed the file as `iframe`, `audio` and `video`, then you may need to set the attributes of these tags. diff --git a/docs/helpers.md b/docs/helpers.md index 59a299c..b047d36 100644 --- a/docs/helpers.md +++ b/docs/helpers.md @@ -66,17 +66,80 @@ You will get `link`html. Do not worry, you can still set ti ## Github Task Lists ```md -* [ ] foo -* bar -* [x] baz -* [] bam <~ not working - * [ ] bim - * [ ] lim +- [ ] foo +- bar +- [x] baz +- [] bam <~ not working + - [ ] bim + - [ ] lim ``` -* [ ] foo -* bar -* [x] baz -* [] bam <~ not working - * [ ] bim - * [ ] lim +- [ ] foo +- bar +- [x] baz +- [] bam <~ not working + - [ ] bim + - [ ] lim + +## Image resizing + +```md +![logo](https://docsify.js.org/_media/icon.svg ':size=50x100') +![logo](https://docsify.js.org/_media/icon.svg ':size=100') + + + +![logo](https://docsify.js.org/_media/icon.svg ':size=10%') +``` + +![logo](https://docsify.js.org/_media/icon.svg ':size=50x100') +![logo](https://docsify.js.org/_media/icon.svg ':size=100') +![logo](https://docsify.js.org/_media/icon.svg ':size=10%') + +## Customise ID for headings + +```md +### 你好,世界! :id=hello-world +``` + +## Markdown in html tag + +You need to insert a space between the html and markdown content. +This is useful for rendering markdown content in the details element. + +```markdown +
+Self-assessment (Click to expand) + +- Abc +- Abc + +
+``` + +
+Self-assessment (Click to expand) + +- Abc +- Abc + +
+ +Or markdown content can be wrapped in html tag. + +```markdown +
+ +- listitem +- listitem +- listitem + +
+``` + +
+ +- Abc +- Abc + +
diff --git a/docs/index.html b/docs/index.html index ae5af41..6d0e008 100644 --- a/docs/index.html +++ b/docs/index.html @@ -14,6 +14,7 @@ + - - diff --git a/docs/zh-cn/vue.md b/docs/zh-cn/vue.md deleted file mode 100644 index e0ecc59..0000000 --- a/docs/zh-cn/vue.md +++ /dev/null @@ -1,112 +0,0 @@ -# 兼容 Vue - -你可以直接在 Markdown 文件里写 Vue 代码,它将被执行。我们可以用它写一些 Vue 的 Demo 或者示例代码。 - - -## 基础用法 - -在 `index.html` 里引入 Vue。 - -```html - - -``` - -接着就可以愉快地在 Markdown 里写 Vue 了。默认会执行 `new Vue({ el: '#main' })` 创建示例。 - -*README.md* - -```markdown -# Vue 介绍 - -`v-for` 的用法 - -```html -
    -
  • {{ i }}
  • -
-`` - -
    -
  • {{ i }}
  • -
-``` - -当然你也可以手动初始化 Vue,这样你可以自定义一些配置。 - -*README.md* - -```markdown -# Vue 的基本用法 - -
hello {{ msg }}
- - -``` - -!> 一个 Markdown 文件里只有第一个 `script` 标签内的内容会被执行。 - -## 搭配 Vuep 写 Playground - -[Vuep](https://github.com/QingWei-Li/vuep) 是一个提供在线编辑和预览效果的 Vue 组件,搭配 docsify 可以直接在文档里写 Vue 的示例代码,支持 Vue component spec 和 JSX。 - -*index.html* - -```html - - - - - - - - - - - - -``` - -*README.md* -```markdown -# Vuep 使用 - - - - - -``` - - - - - - -?> 具体效果参考 [Vuep 文档](https://qingwei-li.github.io/vuep/)。 diff --git a/docs/zh-cn/write-a-plugin.md b/docs/zh-cn/write-a-plugin.md deleted file mode 100644 index 25aa1d1..0000000 --- a/docs/zh-cn/write-a-plugin.md +++ /dev/null @@ -1,94 +0,0 @@ -# 自定义插件 - -docsify 提供了一套插件机制,其中提供的钩子(hook)支持处理异步逻辑,可以很方便的扩展功能。 - -## 完整功能 - -```js -window.$docsify = { - plugins: [ - function (hook, vm) { - hook.init(function() { - // 初始化时调用,只调用一次,没有参数。 - }) - - hook.beforeEach(function(content) { - // 每次开始解析 Markdown 内容时调用 - // ... - return content - }) - - hook.afterEach(function(html, next) { - // 解析成 html 后调用。beforeEach 和 afterEach 支持处理异步逻辑 - // ... - // 异步处理完成后调用 next(html) 返回结果 - next(html) - }) - - hook.doneEach(function() { - // 每次路由切换时数据全部加载完成后调用,没有参数。 - // ... - }) - - hook.mounted(function() { - // 初始化完成后调用 ,只调用一次,没有参数。 - }) - - hook.ready(function() { - // 初始化并第一次加完成数据后调用,没有参数。 - }) - } - ] -} -``` - -!> 如果需要用 docsify 的内部方法,可以通过 `window.Docsify` 获取,通过 `vm` 获取当前实例。 - -## 例子 - - -### footer - -给每个页面的末尾加上 `footer` - -```js -window.$docsify = { - plugins: [ - function (hook) { - var footer = [ - '
', - '' - ].join('') - - hook.afterEach(function (html) { - return html + footer - }) - } - ] -} -``` - - -### Edit Button - -```js -window.$docsify = { - plugins: [ - function(hook, vm) { - hook.beforeEach(function (html) { - var url = 'https://github.com/QingWei-Li/docsify/blob/master/docs' + vm.route.file - var editHtml = '[📝 EDIT DOCUMENT](' + url + ')\n' - - return editHtml - + html - + '\n----\n' - + 'Last modified {docsify-updated} ' - + editHtml - }) - } - ] -} -``` \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..59e6911 --- /dev/null +++ b/index.html @@ -0,0 +1,84 @@ + + + + + + docsify + + + + + + + + + +
+ + + + + + + + + diff --git a/lib/docsify.js b/lib/docsify.js deleted file mode 100644 index 7b434f7..0000000 --- a/lib/docsify.js +++ /dev/null @@ -1,4264 +0,0 @@ -(function () { -/** - * Create a cached version of a pure function. - */ -function cached (fn) { - var cache = Object.create(null); - return function cachedFn (str) { - var hit = cache[str]; - return hit || (cache[str] = fn(str)) - } -} - -/** - * Hyphenate a camelCase string. - */ -var hyphenate = cached(function (str) { - return str.replace(/([A-Z])/g, function (m) { return '-' + m.toLowerCase(); }) -}); - -/** - * Simple Object.assign polyfill - */ -var merge = - Object.assign || - function (to) { - var arguments$1 = arguments; - - var hasOwn = Object.prototype.hasOwnProperty; - - for (var i = 1; i < arguments.length; i++) { - var from = Object(arguments$1[i]); - - for (var key in from) { - if (hasOwn.call(from, key)) { - to[key] = from[key]; - } - } - } - - return to - }; - -/** - * Check if value is primitive - */ -function isPrimitive (value) { - return typeof value === 'string' || typeof value === 'number' -} - -/** - * Perform no operation. - */ -function noop () {} - -/** - * Check if value is function - */ -function isFn (obj) { - return typeof obj === 'function' -} - -var config = merge( - { - el: '#app', - repo: '', - maxLevel: 6, - subMaxLevel: 0, - loadSidebar: null, - loadNavbar: null, - homepage: 'README.md', - coverpage: '', - basePath: '', - auto2top: false, - name: '', - themeColor: '', - nameLink: window.location.pathname, - autoHeader: false, - executeScript: null, - noEmoji: false, - ga: '', - ext: '.md', - mergeNavbar: false, - formatUpdated: '', - externalLinkTarget: '_blank', - routerMode: 'hash', - noCompileLinks: [] - }, - window.$docsify -); - -var script = - document.currentScript || - [].slice - .call(document.getElementsByTagName('script')) - .filter(function (n) { return /docsify\./.test(n.src); })[0]; - -if (script) { - for (var prop in config) { - var val = script.getAttribute('data-' + hyphenate(prop)); - - if (isPrimitive(val)) { - config[prop] = val === '' ? true : val; - } - } - - if (config.loadSidebar === true) { config.loadSidebar = '_sidebar' + config.ext; } - if (config.loadNavbar === true) { config.loadNavbar = '_navbar' + config.ext; } - if (config.coverpage === true) { config.coverpage = '_coverpage' + config.ext; } - if (config.repo === true) { config.repo = ''; } - if (config.name === true) { config.name = ''; } -} - -window.$docsify = config; - -function initLifecycle (vm) { - var hooks = [ - 'init', - 'mounted', - 'beforeEach', - 'afterEach', - 'doneEach', - 'ready' - ]; - - vm._hooks = {}; - vm._lifecycle = {}; - hooks.forEach(function (hook) { - var arr = (vm._hooks[hook] = []); - vm._lifecycle[hook] = function (fn) { return arr.push(fn); }; - }); -} - -function callHook (vm, hook, data, next) { - if ( next === void 0 ) next = noop; - - var queue = vm._hooks[hook]; - - var step = function (index) { - var hook = queue[index]; - if (index >= queue.length) { - next(data); - } else { - if (typeof hook === 'function') { - if (hook.length === 2) { - hook(data, function (result) { - data = result; - step(index + 1); - }); - } else { - var result = hook(data); - data = result !== undefined ? result : data; - step(index + 1); - } - } else { - step(index + 1); - } - } - }; - - step(0); -} - -var inBrowser = !false; - -var isMobile = inBrowser && document.body.clientWidth <= 600; - -/** - * @see https://github.com/MoOx/pjax/blob/master/lib/is-supported.js - */ -var supportsPushState = - inBrowser && - (function () { - // Borrowed wholesale from https://github.com/defunkt/jquery-pjax - return ( - window.history && - window.history.pushState && - window.history.replaceState && - // pushState isn’t reliable on iOS until 5. - !navigator.userAgent.match( - /((iPod|iPhone|iPad).+\bOS\s+[1-4]\D|WebApps\/.+CFNetwork)/ - ) - ) - })(); - -var cacheNode = {}; - -/** - * Get Node - * @param {String|Element} el - * @param {Boolean} noCache - * @return {Element} - */ -function getNode (el, noCache) { - if ( noCache === void 0 ) noCache = false; - - if (typeof el === 'string') { - if (typeof window.Vue !== 'undefined') { - return find(el) - } - el = noCache ? find(el) : cacheNode[el] || (cacheNode[el] = find(el)); - } - - return el -} - -var $ = inBrowser && document; - -var body = inBrowser && $.body; - -var head = inBrowser && $.head; - -/** - * Find element - * @example - * find('nav') => document.querySelector('nav') - * find(nav, 'a') => nav.querySelector('a') - */ -function find (el, node) { - return node ? el.querySelector(node) : $.querySelector(el) -} - -/** - * Find all elements - * @example - * findAll('a') => [].slice.call(document.querySelectorAll('a')) - * findAll(nav, 'a') => [].slice.call(nav.querySelectorAll('a')) - */ -function findAll (el, node) { - return [].slice.call( - node ? el.querySelectorAll(node) : $.querySelectorAll(el) - ) -} - -function create (node, tpl) { - node = $.createElement(node); - if (tpl) { node.innerHTML = tpl; } - return node -} - -function appendTo (target, el) { - return target.appendChild(el) -} - -function before (target, el) { - return target.insertBefore(el, target.children[0]) -} - -function on (el, type, handler) { - isFn(type) - ? window.addEventListener(el, type) - : el.addEventListener(type, handler); -} - -function off (el, type, handler) { - isFn(type) - ? window.removeEventListener(el, type) - : el.removeEventListener(type, handler); -} - -/** - * Toggle class - * - * @example - * toggleClass(el, 'active') => el.classList.toggle('active') - * toggleClass(el, 'add', 'active') => el.classList.add('active') - */ -function toggleClass (el, type, val) { - el && el.classList[val ? type : 'toggle'](val || type); -} - -function style (content) { - appendTo(head, create('style', content)); -} - - -var dom = Object.freeze({ - getNode: getNode, - $: $, - body: body, - head: head, - find: find, - findAll: findAll, - create: create, - appendTo: appendTo, - before: before, - on: on, - off: off, - toggleClass: toggleClass, - style: style -}); - -/** - * Render github corner - * @param {Object} data - * @return {String} - */ -function corner (data) { - if (!data) { return '' } - if (!/\/\//.test(data)) { data = 'https://github.com/' + data; } - data = data.replace(/^git\+/, ''); - - return ( - "" + - '' + - '' - ) -} - -/** - * Render main content - */ -function main (config) { - var aside = - '' + - ''; - - return ( - (isMobile ? (aside + "
") : ("
" + aside)) + - '
' + - '
' + - '
' + - '
' - ) -} - -/** - * Cover Page - */ -function cover () { - var SL = ', 100%, 85%'; - var bgc = - 'linear-gradient(to left bottom, ' + - "hsl(" + (Math.floor(Math.random() * 255) + SL) + ") 0%," + - "hsl(" + (Math.floor(Math.random() * 255) + SL) + ") 100%)"; - - return ( - "
" + - '
' + - '
' + - '
' - ) -} - -/** - * Render tree - * @param {Array} tree - * @param {String} tpl - * @return {String} - */ -function tree (toc, tpl) { - if ( tpl === void 0 ) tpl = ''; - - if (!toc || !toc.length) { return '' } - - toc.forEach(function (node) { - tpl += "
  • " + (node.title) + "
  • "; - if (node.children) { - tpl += "
    • " + (tree(node.children)) + "
    "; - } - }); - - return tpl -} - -function helper (className, content) { - return ("

    " + (content.slice(5).trim()) + "

    ") -} - -function theme (color) { - return ("") -} - -var barEl; -var timeId; - -/** - * Init progress component - */ -function init () { - var div = create('div'); - - div.classList.add('progress'); - appendTo(body, div); - barEl = div; -} -/** - * Render progress bar - */ -function progressbar (ref) { - var loaded = ref.loaded; - var total = ref.total; - var step = ref.step; - - var num; - - !barEl && init(); - - if (step) { - num = parseInt(barEl.style.width || 0, 10) + step; - num = num > 80 ? 80 : num; - } else { - num = Math.floor(loaded / total * 100); - } - - barEl.style.opacity = 1; - barEl.style.width = num >= 95 ? '100%' : num + '%'; - - if (num >= 95) { - clearTimeout(timeId); - timeId = setTimeout(function (_) { - barEl.style.opacity = 0; - barEl.style.width = '0%'; - }, 200); - } -} - -var cache = {}; - -/** - * Simple ajax get - * @param {string} url - * @param {boolean} [hasBar=false] has progress bar - * @return { then(resolve, reject), abort } - */ -function get (url, hasBar, headers) { - if ( hasBar === void 0 ) hasBar = false; - if ( headers === void 0 ) headers = {}; - - var xhr = new XMLHttpRequest(); - var on = function () { - xhr.addEventListener.apply(xhr, arguments); - }; - var cached$$1 = cache[url]; - - if (cached$$1) { - return { then: function (cb) { return cb(cached$$1.content, cached$$1.opt); }, abort: noop } - } - - xhr.open('GET', url); - for (var i in headers) { - xhr.setRequestHeader(i, headers[i]); - } - xhr.send(); - - return { - then: function (success, error) { - if ( error === void 0 ) error = noop; - - if (hasBar) { - var id = setInterval( - function (_) { return progressbar({ - step: Math.floor(Math.random() * 5 + 1) - }); }, - 500 - ); - - on('progress', progressbar); - on('loadend', function (evt) { - progressbar(evt); - clearInterval(id); - }); - } - - on('error', error); - on('load', function (ref) { - var target = ref.target; - - if (target.status >= 400) { - error(target); - } else { - var result = (cache[url] = { - content: target.response, - opt: { - updatedAt: xhr.getResponseHeader('last-modified') - } - }); - - success(result.content, result.opt); - } - }); - }, - abort: function (_) { return xhr.readyState !== 4 && xhr.abort(); } - } -} - -function replaceVar (block, color) { - block.innerHTML = block.innerHTML.replace( - /var\(\s*--theme-color.*?\)/g, - color - ); -} - -function cssVars (color) { - // Variable support - if (window.CSS && window.CSS.supports && window.CSS.supports('(--v:red)')) { return } - - var styleBlocks = findAll('style:not(.inserted),link');[].forEach.call(styleBlocks, function (block) { - if (block.nodeName === 'STYLE') { - replaceVar(block, color); - } else if (block.nodeName === 'LINK') { - var href = block.getAttribute('href'); - - if (!/\.css$/.test(href)) { return } - - get(href).then(function (res) { - var style$$1 = create('style', res); - - head.appendChild(style$$1); - replaceVar(style$$1, color); - }); - } - }); -} - -var RGX = /([^{]*?)\w(?=\})/g; - -var dict = { - YYYY: 'getFullYear', - YY: 'getYear', - MM: function (d) { - return d.getMonth() + 1; - }, - DD: 'getDate', - HH: 'getHours', - mm: 'getMinutes', - ss: 'getSeconds' -}; - -function tinydate (str) { - var parts=[], offset=0; - str.replace(RGX, function (key, _, idx) { - // save preceding string - parts.push(str.substring(offset, idx - 1)); - offset = idx += key.length + 1; - // save function - parts.push(function(d){ - return ('00' + (typeof dict[key]==='string' ? d[dict[key]]() : dict[key](d))).slice(-key.length); - }); - }); - - if (offset !== str.length) { - parts.push(str.substring(offset)); - } - - return function (arg) { - var out='', i=0, d=arg||new Date(); - for (; i[^\n]+(\n(?!def)[^\n]+)*\n*)+/, - list: /^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/, - html: /^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/, - def: /^ *\[([^\]]+)\]: *]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/, - table: noop, - paragraph: /^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/, - text: /^[^\n]+/ -}; - -block.bullet = /(?:[*+-]|\d+\.)/; -block.item = /^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/; -block.item = replace(block.item, 'gm') - (/bull/g, block.bullet) - (); - -block.list = replace(block.list) - (/bull/g, block.bullet) - ('hr', '\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))') - ('def', '\\n+(?=' + block.def.source + ')') - (); - -block.blockquote = replace(block.blockquote) - ('def', block.def) - (); - -block._tag = '(?!(?:' - + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code' - + '|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo' - + '|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b'; - -block.html = replace(block.html) - ('comment', //) - ('closed', /<(tag)[\s\S]+?<\/\1>/) - ('closing', /])*?>/) - (/tag/g, block._tag) - (); - -block.paragraph = replace(block.paragraph) - ('hr', block.hr) - ('heading', block.heading) - ('lheading', block.lheading) - ('blockquote', block.blockquote) - ('tag', '<' + block._tag) - ('def', block.def) - (); - -/** - * Normal Block Grammar - */ - -block.normal = merge({}, block); - -/** - * GFM Block Grammar - */ - -block.gfm = merge({}, block.normal, { - fences: /^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\s*\1 *(?:\n+|$)/, - paragraph: /^/, - heading: /^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/ -}); - -block.gfm.paragraph = replace(block.paragraph) - ('(?!', '(?!' - + block.gfm.fences.source.replace('\\1', '\\2') + '|' - + block.list.source.replace('\\1', '\\3') + '|') - (); - -/** - * GFM + Tables Block Grammar - */ - -block.tables = merge({}, block.gfm, { - nptable: /^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/, - table: /^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/ -}); - -/** - * Block Lexer - */ - -function Lexer(options) { - this.tokens = []; - this.tokens.links = {}; - this.options = options || marked.defaults; - this.rules = block.normal; - - if (this.options.gfm) { - if (this.options.tables) { - this.rules = block.tables; - } else { - this.rules = block.gfm; - } - } -} - -/** - * Expose Block Rules - */ - -Lexer.rules = block; - -/** - * Static Lex Method - */ - -Lexer.lex = function(src, options) { - var lexer = new Lexer(options); - return lexer.lex(src); -}; - -/** - * Preprocessing - */ - -Lexer.prototype.lex = function(src) { - src = src - .replace(/\r\n|\r/g, '\n') - .replace(/\t/g, ' ') - .replace(/\u00a0/g, ' ') - .replace(/\u2424/g, '\n'); - - return this.token(src, true); -}; - -/** - * Lexing - */ - -Lexer.prototype.token = function(src, top, bq) { - var this$1 = this; - - var src = src.replace(/^ +$/gm, '') - , next - , loose - , cap - , bull - , b - , item - , space - , i - , l; - - while (src) { - // newline - if (cap = this$1.rules.newline.exec(src)) { - src = src.substring(cap[0].length); - if (cap[0].length > 1) { - this$1.tokens.push({ - type: 'space' - }); - } - } - - // code - if (cap = this$1.rules.code.exec(src)) { - src = src.substring(cap[0].length); - cap = cap[0].replace(/^ {4}/gm, ''); - this$1.tokens.push({ - type: 'code', - text: !this$1.options.pedantic - ? cap.replace(/\n+$/, '') - : cap - }); - continue; - } - - // fences (gfm) - if (cap = this$1.rules.fences.exec(src)) { - src = src.substring(cap[0].length); - this$1.tokens.push({ - type: 'code', - lang: cap[2], - text: cap[3] || '' - }); - continue; - } - - // heading - if (cap = this$1.rules.heading.exec(src)) { - src = src.substring(cap[0].length); - this$1.tokens.push({ - type: 'heading', - depth: cap[1].length, - text: cap[2] - }); - continue; - } - - // table no leading pipe (gfm) - if (top && (cap = this$1.rules.nptable.exec(src))) { - src = src.substring(cap[0].length); - - item = { - type: 'table', - header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */), - align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */), - cells: cap[3].replace(/\n$/, '').split('\n') - }; - - for (i = 0; i < item.align.length; i++) { - if (/^ *-+: *$/.test(item.align[i])) { - item.align[i] = 'right'; - } else if (/^ *:-+: *$/.test(item.align[i])) { - item.align[i] = 'center'; - } else if (/^ *:-+ *$/.test(item.align[i])) { - item.align[i] = 'left'; - } else { - item.align[i] = null; - } - } - - for (i = 0; i < item.cells.length; i++) { - item.cells[i] = item.cells[i].split(/ *\| */); - } - - this$1.tokens.push(item); - - continue; - } - - // lheading - if (cap = this$1.rules.lheading.exec(src)) { - src = src.substring(cap[0].length); - this$1.tokens.push({ - type: 'heading', - depth: cap[2] === '=' ? 1 : 2, - text: cap[1] - }); - continue; - } - - // hr - if (cap = this$1.rules.hr.exec(src)) { - src = src.substring(cap[0].length); - this$1.tokens.push({ - type: 'hr' - }); - continue; - } - - // blockquote - if (cap = this$1.rules.blockquote.exec(src)) { - src = src.substring(cap[0].length); - - this$1.tokens.push({ - type: 'blockquote_start' - }); - - cap = cap[0].replace(/^ *> ?/gm, ''); - - // Pass `top` to keep the current - // "toplevel" state. This is exactly - // how markdown.pl works. - this$1.token(cap, top, true); - - this$1.tokens.push({ - type: 'blockquote_end' - }); - - continue; - } - - // list - if (cap = this$1.rules.list.exec(src)) { - src = src.substring(cap[0].length); - bull = cap[2]; - - this$1.tokens.push({ - type: 'list_start', - ordered: bull.length > 1 - }); - - // Get each top-level item. - cap = cap[0].match(this$1.rules.item); - - next = false; - l = cap.length; - i = 0; - - for (; i < l; i++) { - item = cap[i]; - - // Remove the list item's bullet - // so it is seen as the next token. - space = item.length; - item = item.replace(/^ *([*+-]|\d+\.) +/, ''); - - // Outdent whatever the - // list item contains. Hacky. - if (~item.indexOf('\n ')) { - space -= item.length; - item = !this$1.options.pedantic - ? item.replace(new RegExp('^ {1,' + space + '}', 'gm'), '') - : item.replace(/^ {1,4}/gm, ''); - } - - // Determine whether the next list item belongs here. - // Backpedal if it does not belong in this list. - if (this$1.options.smartLists && i !== l - 1) { - b = block.bullet.exec(cap[i + 1])[0]; - if (bull !== b && !(bull.length > 1 && b.length > 1)) { - src = cap.slice(i + 1).join('\n') + src; - i = l - 1; - } - } - - // Determine whether item is loose or not. - // Use: /(^|\n)(?! )[^\n]+\n\n(?!\s*$)/ - // for discount behavior. - loose = next || /\n\n(?!\s*$)/.test(item); - if (i !== l - 1) { - next = item.charAt(item.length - 1) === '\n'; - if (!loose) { loose = next; } - } - - this$1.tokens.push({ - type: loose - ? 'loose_item_start' - : 'list_item_start' - }); - - // Recurse. - this$1.token(item, false, bq); - - this$1.tokens.push({ - type: 'list_item_end' - }); - } - - this$1.tokens.push({ - type: 'list_end' - }); - - continue; - } - - // html - if (cap = this$1.rules.html.exec(src)) { - src = src.substring(cap[0].length); - this$1.tokens.push({ - type: this$1.options.sanitize - ? 'paragraph' - : 'html', - pre: !this$1.options.sanitizer - && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'), - text: cap[0] - }); - continue; - } - - // def - if ((!bq && top) && (cap = this$1.rules.def.exec(src))) { - src = src.substring(cap[0].length); - this$1.tokens.links[cap[1].toLowerCase()] = { - href: cap[2], - title: cap[3] - }; - continue; - } - - // table (gfm) - if (top && (cap = this$1.rules.table.exec(src))) { - src = src.substring(cap[0].length); - - item = { - type: 'table', - header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */), - align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */), - cells: cap[3].replace(/(?: *\| *)?\n$/, '').split('\n') - }; - - for (i = 0; i < item.align.length; i++) { - if (/^ *-+: *$/.test(item.align[i])) { - item.align[i] = 'right'; - } else if (/^ *:-+: *$/.test(item.align[i])) { - item.align[i] = 'center'; - } else if (/^ *:-+ *$/.test(item.align[i])) { - item.align[i] = 'left'; - } else { - item.align[i] = null; - } - } - - for (i = 0; i < item.cells.length; i++) { - item.cells[i] = item.cells[i] - .replace(/^ *\| *| *\| *$/g, '') - .split(/ *\| */); - } - - this$1.tokens.push(item); - - continue; - } - - // top-level paragraph - if (top && (cap = this$1.rules.paragraph.exec(src))) { - src = src.substring(cap[0].length); - this$1.tokens.push({ - type: 'paragraph', - text: cap[1].charAt(cap[1].length - 1) === '\n' - ? cap[1].slice(0, -1) - : cap[1] - }); - continue; - } - - // text - if (cap = this$1.rules.text.exec(src)) { - // Top-level should never reach here. - src = src.substring(cap[0].length); - this$1.tokens.push({ - type: 'text', - text: cap[0] - }); - continue; - } - - if (src) { - throw new - Error('Infinite loop on byte: ' + src.charCodeAt(0)); - } - } - - return this.tokens; -}; - -/** - * Inline-Level Grammar - */ - -var inline = { - escape: /^\\([\\`*{}\[\]()#+\-.!_>])/, - autolink: /^<([^ <>]+(@|:\/)[^ <>]+)>/, - url: noop, - tag: /^|^<\/?\w+(?:"[^"]*"|'[^']*'|[^<'">])*?>/, - link: /^!?\[(inside)\]\(href\)/, - reflink: /^!?\[(inside)\]\s*\[([^\]]*)\]/, - nolink: /^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/, - strong: /^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/, - em: /^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/, - code: /^(`+)([\s\S]*?[^`])\1(?!`)/, - br: /^ {2,}\n(?!\s*$)/, - del: noop, - text: /^[\s\S]+?(?=[\\?(?:\s+['"]([\s\S]*?)['"])?\s*/; - -inline.link = replace(inline.link) - ('inside', inline._inside) - ('href', inline._href) - (); - -inline.reflink = replace(inline.reflink) - ('inside', inline._inside) - (); - -/** - * Normal Inline Grammar - */ - -inline.normal = merge({}, inline); - -/** - * Pedantic Inline Grammar - */ - -inline.pedantic = merge({}, inline.normal, { - strong: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/, - em: /^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/ -}); - -/** - * GFM Inline Grammar - */ - -inline.gfm = merge({}, inline.normal, { - escape: replace(inline.escape)('])', '~|])')(), - url: /^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/, - del: /^~~(?=\S)([\s\S]*?\S)~~/, - text: replace(inline.text) - (']|', '~]|') - ('|', '|https?://|') - () -}); - -/** - * GFM + Line Breaks Inline Grammar - */ - -inline.breaks = merge({}, inline.gfm, { - br: replace(inline.br)('{2,}', '*')(), - text: replace(inline.gfm.text)('{2,}', '*')() -}); - -/** - * Inline Lexer & Compiler - */ - -function InlineLexer(links, options) { - this.options = options || marked.defaults; - this.links = links; - this.rules = inline.normal; - this.renderer = this.options.renderer || new Renderer; - this.renderer.options = this.options; - - if (!this.links) { - throw new - Error('Tokens array requires a `links` property.'); - } - - if (this.options.gfm) { - if (this.options.breaks) { - this.rules = inline.breaks; - } else { - this.rules = inline.gfm; - } - } else if (this.options.pedantic) { - this.rules = inline.pedantic; - } -} - -/** - * Expose Inline Rules - */ - -InlineLexer.rules = inline; - -/** - * Static Lexing/Compiling Method - */ - -InlineLexer.output = function(src, links, options) { - var inline = new InlineLexer(links, options); - return inline.output(src); -}; - -/** - * Lexing/Compiling - */ - -InlineLexer.prototype.output = function(src) { - var this$1 = this; - - var out = '' - , link - , text - , href - , cap; - - while (src) { - // escape - if (cap = this$1.rules.escape.exec(src)) { - src = src.substring(cap[0].length); - out += cap[1]; - continue; - } - - // autolink - if (cap = this$1.rules.autolink.exec(src)) { - src = src.substring(cap[0].length); - if (cap[2] === '@') { - text = escape( - cap[1].charAt(6) === ':' - ? this$1.mangle(cap[1].substring(7)) - : this$1.mangle(cap[1]) - ); - href = this$1.mangle('mailto:') + text; - } else { - text = escape(cap[1]); - href = text; - } - out += this$1.renderer.link(href, null, text); - continue; - } - - // url (gfm) - if (!this$1.inLink && (cap = this$1.rules.url.exec(src))) { - src = src.substring(cap[0].length); - text = escape(cap[1]); - href = text; - out += this$1.renderer.link(href, null, text); - continue; - } - - // tag - if (cap = this$1.rules.tag.exec(src)) { - if (!this$1.inLink && /^/i.test(cap[0])) { - this$1.inLink = false; - } - src = src.substring(cap[0].length); - out += this$1.options.sanitize - ? this$1.options.sanitizer - ? this$1.options.sanitizer(cap[0]) - : escape(cap[0]) - : cap[0]; - continue; - } - - // link - if (cap = this$1.rules.link.exec(src)) { - src = src.substring(cap[0].length); - this$1.inLink = true; - out += this$1.outputLink(cap, { - href: cap[2], - title: cap[3] - }); - this$1.inLink = false; - continue; - } - - // reflink, nolink - if ((cap = this$1.rules.reflink.exec(src)) - || (cap = this$1.rules.nolink.exec(src))) { - src = src.substring(cap[0].length); - link = (cap[2] || cap[1]).replace(/\s+/g, ' '); - link = this$1.links[link.toLowerCase()]; - if (!link || !link.href) { - out += cap[0].charAt(0); - src = cap[0].substring(1) + src; - continue; - } - this$1.inLink = true; - out += this$1.outputLink(cap, link); - this$1.inLink = false; - continue; - } - - // strong - if (cap = this$1.rules.strong.exec(src)) { - src = src.substring(cap[0].length); - out += this$1.renderer.strong(this$1.output(cap[2] || cap[1])); - continue; - } - - // em - if (cap = this$1.rules.em.exec(src)) { - src = src.substring(cap[0].length); - out += this$1.renderer.em(this$1.output(cap[2] || cap[1])); - continue; - } - - // code - if (cap = this$1.rules.code.exec(src)) { - src = src.substring(cap[0].length); - out += this$1.renderer.codespan(escape(cap[2].trim(), true)); - continue; - } - - // br - if (cap = this$1.rules.br.exec(src)) { - src = src.substring(cap[0].length); - out += this$1.renderer.br(); - continue; - } - - // del (gfm) - if (cap = this$1.rules.del.exec(src)) { - src = src.substring(cap[0].length); - out += this$1.renderer.del(this$1.output(cap[1])); - continue; - } - - // text - if (cap = this$1.rules.text.exec(src)) { - src = src.substring(cap[0].length); - out += this$1.renderer.text(escape(this$1.smartypants(cap[0]))); - continue; - } - - if (src) { - throw new - Error('Infinite loop on byte: ' + src.charCodeAt(0)); - } - } - - return out; -}; - -/** - * Compile Link - */ - -InlineLexer.prototype.outputLink = function(cap, link) { - var href = escape(link.href) - , title = link.title ? escape(link.title) : null; - - return cap[0].charAt(0) !== '!' - ? this.renderer.link(href, title, this.output(cap[1])) - : this.renderer.image(href, title, escape(cap[1])); -}; - -/** - * Smartypants Transformations - */ - -InlineLexer.prototype.smartypants = function(text) { - if (!this.options.smartypants) { return text; } - return text - // em-dashes - .replace(/---/g, '\u2014') - // en-dashes - .replace(/--/g, '\u2013') - // opening singles - .replace(/(^|[-\u2014/(\[{"\s])'/g, '$1\u2018') - // closing singles & apostrophes - .replace(/'/g, '\u2019') - // opening doubles - .replace(/(^|[-\u2014/(\[{\u2018\s])"/g, '$1\u201c') - // closing doubles - .replace(/"/g, '\u201d') - // ellipses - .replace(/\.{3}/g, '\u2026'); -}; - -/** - * Mangle Links - */ - -InlineLexer.prototype.mangle = function(text) { - if (!this.options.mangle) { return text; } - var out = '' - , l = text.length - , i = 0 - , ch; - - for (; i < l; i++) { - ch = text.charCodeAt(i); - if (Math.random() > 0.5) { - ch = 'x' + ch.toString(16); - } - out += '&#' + ch + ';'; - } - - return out; -}; - -/** - * Renderer - */ - -function Renderer(options) { - this.options = options || {}; -} - -Renderer.prototype.code = function(code, lang, escaped) { - if (this.options.highlight) { - var out = this.options.highlight(code, lang); - if (out != null && out !== code) { - escaped = true; - code = out; - } - } - - if (!lang) { - return '
    '
    -      + (escaped ? code : escape(code, true))
    -      + '\n
    '; - } - - return '
    '
    -    + (escaped ? code : escape(code, true))
    -    + '\n
    \n'; -}; - -Renderer.prototype.blockquote = function(quote) { - return '
    \n' + quote + '
    \n'; -}; - -Renderer.prototype.html = function(html) { - return html; -}; - -Renderer.prototype.heading = function(text, level, raw) { - return '' - + text - + '\n'; -}; - -Renderer.prototype.hr = function() { - return this.options.xhtml ? '
    \n' : '
    \n'; -}; - -Renderer.prototype.list = function(body, ordered) { - var type = ordered ? 'ol' : 'ul'; - return '<' + type + '>\n' + body + '\n'; -}; - -Renderer.prototype.listitem = function(text) { - return '
  • ' + text + '
  • \n'; -}; - -Renderer.prototype.paragraph = function(text) { - return '

    ' + text + '

    \n'; -}; - -Renderer.prototype.table = function(header, body) { - return '\n' - + '\n' - + header - + '\n' - + '\n' - + body - + '\n' - + '
    \n'; -}; - -Renderer.prototype.tablerow = function(content) { - return '\n' + content + '\n'; -}; - -Renderer.prototype.tablecell = function(content, flags) { - var type = flags.header ? 'th' : 'td'; - var tag = flags.align - ? '<' + type + ' style="text-align:' + flags.align + '">' - : '<' + type + '>'; - return tag + content + '\n'; -}; - -// span level renderer -Renderer.prototype.strong = function(text) { - return '' + text + ''; -}; - -Renderer.prototype.em = function(text) { - return '' + text + ''; -}; - -Renderer.prototype.codespan = function(text) { - return '' + text + ''; -}; - -Renderer.prototype.br = function() { - return this.options.xhtml ? '
    ' : '
    '; -}; - -Renderer.prototype.del = function(text) { - return '' + text + ''; -}; - -Renderer.prototype.link = function(href, title, text) { - if (this.options.sanitize) { - try { - var prot = decodeURIComponent(unescape(href)) - .replace(/[^\w:]/g, '') - .toLowerCase(); - } catch (e) { - return text; - } - if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) { - return text; - } - } - if (this.options.baseUrl && !originIndependentUrl.test(href)) { - href = resolveUrl(this.options.baseUrl, href); - } - var out = '
    '; - return out; -}; - -Renderer.prototype.image = function(href, title, text) { - if (this.options.baseUrl && !originIndependentUrl.test(href)) { - href = resolveUrl(this.options.baseUrl, href); - } - var out = '' + text + '' : '>'; - return out; -}; - -Renderer.prototype.text = function(text) { - return text; -}; - -/** - * Parsing & Compiling - */ - -function Parser(options) { - this.tokens = []; - this.token = null; - this.options = options || marked.defaults; - this.options.renderer = this.options.renderer || new Renderer; - this.renderer = this.options.renderer; - this.renderer.options = this.options; -} - -/** - * Static Parse Method - */ - -Parser.parse = function(src, options, renderer) { - var parser = new Parser(options, renderer); - return parser.parse(src); -}; - -/** - * Parse Loop - */ - -Parser.prototype.parse = function(src) { - var this$1 = this; - - this.inline = new InlineLexer(src.links, this.options, this.renderer); - this.tokens = src.reverse(); - - var out = ''; - while (this.next()) { - out += this$1.tok(); - } - - return out; -}; - -/** - * Next Token - */ - -Parser.prototype.next = function() { - return this.token = this.tokens.pop(); -}; - -/** - * Preview Next Token - */ - -Parser.prototype.peek = function() { - return this.tokens[this.tokens.length - 1] || 0; -}; - -/** - * Parse Text Tokens - */ - -Parser.prototype.parseText = function() { - var this$1 = this; - - var body = this.token.text; - - while (this.peek().type === 'text') { - body += '\n' + this$1.next().text; - } - - return this.inline.output(body); -}; - -/** - * Parse Current Token - */ - -Parser.prototype.tok = function() { - var this$1 = this; - - switch (this.token.type) { - case 'space': { - return ''; - } - case 'hr': { - return this.renderer.hr(); - } - case 'heading': { - return this.renderer.heading( - this.inline.output(this.token.text), - this.token.depth, - this.token.text); - } - case 'code': { - return this.renderer.code(this.token.text, - this.token.lang, - this.token.escaped); - } - case 'table': { - var header = '' - , body = '' - , i - , row - , cell - , flags - , j; - - // header - cell = ''; - for (i = 0; i < this.token.header.length; i++) { - flags = { header: true, align: this$1.token.align[i] }; - cell += this$1.renderer.tablecell( - this$1.inline.output(this$1.token.header[i]), - { header: true, align: this$1.token.align[i] } - ); - } - header += this.renderer.tablerow(cell); - - for (i = 0; i < this.token.cells.length; i++) { - row = this$1.token.cells[i]; - - cell = ''; - for (j = 0; j < row.length; j++) { - cell += this$1.renderer.tablecell( - this$1.inline.output(row[j]), - { header: false, align: this$1.token.align[j] } - ); - } - - body += this$1.renderer.tablerow(cell); - } - return this.renderer.table(header, body); - } - case 'blockquote_start': { - var body = ''; - - while (this.next().type !== 'blockquote_end') { - body += this$1.tok(); - } - - return this.renderer.blockquote(body); - } - case 'list_start': { - var body = '' - , ordered = this.token.ordered; - - while (this.next().type !== 'list_end') { - body += this$1.tok(); - } - - return this.renderer.list(body, ordered); - } - case 'list_item_start': { - var body = ''; - - while (this.next().type !== 'list_item_end') { - body += this$1.token.type === 'text' - ? this$1.parseText() - : this$1.tok(); - } - - return this.renderer.listitem(body); - } - case 'loose_item_start': { - var body = ''; - - while (this.next().type !== 'list_item_end') { - body += this$1.tok(); - } - - return this.renderer.listitem(body); - } - case 'html': { - var html = !this.token.pre && !this.options.pedantic - ? this.inline.output(this.token.text) - : this.token.text; - return this.renderer.html(html); - } - case 'paragraph': { - return this.renderer.paragraph(this.inline.output(this.token.text)); - } - case 'text': { - return this.renderer.paragraph(this.parseText()); - } - } -}; - -/** - * Helpers - */ - -function escape(html, encode) { - return html - .replace(!encode ? /&(?!#?\w+;)/g : /&/g, '&') - .replace(//g, '>') - .replace(/"/g, '"') - .replace(/'/g, '''); -} - -function unescape(html) { - // explicitly match decimal, hex, and named HTML entities - return html.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig, function(_, n) { - n = n.toLowerCase(); - if (n === 'colon') { return ':'; } - if (n.charAt(0) === '#') { - return n.charAt(1) === 'x' - ? String.fromCharCode(parseInt(n.substring(2), 16)) - : String.fromCharCode(+n.substring(1)); - } - return ''; - }); -} - -function replace(regex, opt) { - regex = regex.source; - opt = opt || ''; - return function self(name, val) { - if (!name) { return new RegExp(regex, opt); } - val = val.source || val; - val = val.replace(/(^|[^\[])\^/g, '$1'); - regex = regex.replace(name, val); - return self; - }; -} - -function resolveUrl(base, href) { - if (!baseUrls[' ' + base]) { - // we can ignore everything in base after the last slash of its path component, - // but we might need to add _that_ - // https://tools.ietf.org/html/rfc3986#section-3 - if (/^[^:]+:\/*[^/]*$/.test(base)) { - baseUrls[' ' + base] = base + '/'; - } else { - baseUrls[' ' + base] = base.replace(/[^/]*$/, ''); - } - } - base = baseUrls[' ' + base]; - - if (href.slice(0, 2) === '//') { - return base.replace(/:[\s\S]*/, ':') + href; - } else if (href.charAt(0) === '/') { - return base.replace(/(:\/*[^/]*)[\s\S]*/, '$1') + href; - } else { - return base + href; - } -} -var baseUrls = {}; -var originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i; - -function noop() {} -noop.exec = noop; - -function merge(obj) { - var arguments$1 = arguments; - - var i = 1 - , target - , key; - - for (; i < arguments.length; i++) { - target = arguments$1[i]; - for (key in target) { - if (Object.prototype.hasOwnProperty.call(target, key)) { - obj[key] = target[key]; - } - } - } - - return obj; -} - - -/** - * Marked - */ - -function marked(src, opt, callback) { - if (callback || typeof opt === 'function') { - if (!callback) { - callback = opt; - opt = null; - } - - opt = merge({}, marked.defaults, opt || {}); - - var highlight = opt.highlight - , tokens - , pending - , i = 0; - - try { - tokens = Lexer.lex(src, opt); - } catch (e) { - return callback(e); - } - - pending = tokens.length; - - var done = function(err) { - if (err) { - opt.highlight = highlight; - return callback(err); - } - - var out; - - try { - out = Parser.parse(tokens, opt); - } catch (e) { - err = e; - } - - opt.highlight = highlight; - - return err - ? callback(err) - : callback(null, out); - }; - - if (!highlight || highlight.length < 3) { - return done(); - } - - delete opt.highlight; - - if (!pending) { return done(); } - - for (; i < tokens.length; i++) { - (function(token) { - if (token.type !== 'code') { - return --pending || done(); - } - return highlight(token.text, token.lang, function(err, code) { - if (err) { return done(err); } - if (code == null || code === token.text) { - return --pending || done(); - } - token.text = code; - token.escaped = true; - --pending || done(); - }); - })(tokens[i]); - } - - return; - } - try { - if (opt) { opt = merge({}, marked.defaults, opt); } - return Parser.parse(Lexer.lex(src, opt), opt); - } catch (e) { - e.message += '\nPlease report this to https://github.com/chjj/marked.'; - if ((opt || marked.defaults).silent) { - return '

    An error occurred:

    '
    -        + escape(e.message + '', true)
    -        + '
    '; - } - throw e; - } -} - -/** - * Options - */ - -marked.options = -marked.setOptions = function(opt) { - merge(marked.defaults, opt); - return marked; -}; - -marked.defaults = { - gfm: true, - tables: true, - breaks: false, - pedantic: false, - sanitize: false, - sanitizer: null, - mangle: true, - smartLists: false, - silent: false, - highlight: null, - langPrefix: 'lang-', - smartypants: false, - headerPrefix: '', - renderer: new Renderer, - xhtml: false, - baseUrl: null -}; - -/** - * Expose - */ - -marked.Parser = Parser; -marked.parser = Parser.parse; - -marked.Renderer = Renderer; - -marked.Lexer = Lexer; -marked.lexer = Lexer.lex; - -marked.InlineLexer = InlineLexer; -marked.inlineLexer = InlineLexer.output; - -marked.parse = marked; - -{ - module.exports = marked; -} - -}).call(function() { - return this || (typeof window !== 'undefined' ? window : commonjsGlobal); -}()); -}); - -var prism = createCommonjsModule(function (module) { -/* ********************************************** - Begin prism-core.js -********************************************** */ - -var _self = (typeof window !== 'undefined') - ? window // if in browser - : ( - (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) - ? self // if in worker - : {} // if in node js - ); - -/** - * Prism: Lightweight, robust, elegant syntax highlighting - * MIT license http://www.opensource.org/licenses/mit-license.php/ - * @author Lea Verou http://lea.verou.me - */ - -var Prism = (function(){ - -// Private helper vars -var lang = /\blang(?:uage)?-(\w+)\b/i; -var uniqueId = 0; - -var _ = _self.Prism = { - manual: _self.Prism && _self.Prism.manual, - disableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler, - util: { - encode: function (tokens) { - if (tokens instanceof Token) { - return new Token(tokens.type, _.util.encode(tokens.content), tokens.alias); - } else if (_.util.type(tokens) === 'Array') { - return tokens.map(_.util.encode); - } else { - return tokens.replace(/&/g, '&').replace(/ text.length) { - // Something went terribly wrong, ABORT, ABORT! - return; - } - - if (str instanceof Token) { - continue; - } - - pattern.lastIndex = 0; - - var match = pattern.exec(str), - delNum = 1; - - // Greedy patterns can override/remove up to two previously matched tokens - if (!match && greedy && i != strarr.length - 1) { - pattern.lastIndex = pos; - match = pattern.exec(text); - if (!match) { - break; - } - - var from = match.index + (lookbehind ? match[1].length : 0), - to = match.index + match[0].length, - k = i, - p = pos; - - for (var len = strarr.length; k < len && (p < to || (!strarr[k].type && !strarr[k - 1].greedy)); ++k) { - p += strarr[k].length; - // Move the index i to the element in strarr that is closest to from - if (from >= p) { - ++i; - pos = p; - } - } - - /* - * If strarr[i] is a Token, then the match starts inside another Token, which is invalid - * If strarr[k - 1] is greedy we are in conflict with another greedy pattern - */ - if (strarr[i] instanceof Token || strarr[k - 1].greedy) { - continue; - } - - // Number of tokens to delete and replace with the new match - delNum = k - i; - str = text.slice(pos, p); - match.index -= pos; - } - - if (!match) { - if (oneshot) { - break; - } - - continue; - } - - if(lookbehind) { - lookbehindLength = match[1].length; - } - - var from = match.index + lookbehindLength, - match = match[0].slice(lookbehindLength), - to = from + match.length, - before = str.slice(0, from), - after = str.slice(to); - - var args = [i, delNum]; - - if (before) { - ++i; - pos += before.length; - args.push(before); - } - - var wrapped = new Token(token, inside? _.tokenize(match, inside) : match, alias, match, greedy); - - args.push(wrapped); - - if (after) { - args.push(after); - } - - Array.prototype.splice.apply(strarr, args); - - if (delNum != 1) - { _.matchGrammar(text, strarr, grammar, i, pos, true, token); } - - if (oneshot) - { break; } - } - } - } - }, - - tokenize: function(text, grammar, language) { - var strarr = [text]; - - var rest = grammar.rest; - - if (rest) { - for (var token in rest) { - grammar[token] = rest[token]; - } - - delete grammar.rest; - } - - _.matchGrammar(text, strarr, grammar, 0, 0, false); - - return strarr; - }, - - hooks: { - all: {}, - - add: function (name, callback) { - var hooks = _.hooks.all; - - hooks[name] = hooks[name] || []; - - hooks[name].push(callback); - }, - - run: function (name, env) { - var callbacks = _.hooks.all[name]; - - if (!callbacks || !callbacks.length) { - return; - } - - for (var i=0, callback; callback = callbacks[i++];) { - callback(env); - } - } - } -}; - -var Token = _.Token = function(type, content, alias, matchedStr, greedy) { - this.type = type; - this.content = content; - this.alias = alias; - // Copy of the full string this token was created from - this.length = (matchedStr || "").length|0; - this.greedy = !!greedy; -}; - -Token.stringify = function(o, language, parent) { - if (typeof o == 'string') { - return o; - } - - if (_.util.type(o) === 'Array') { - return o.map(function(element) { - return Token.stringify(element, language, o); - }).join(''); - } - - var env = { - type: o.type, - content: Token.stringify(o.content, language, parent), - tag: 'span', - classes: ['token', o.type], - attributes: {}, - language: language, - parent: parent - }; - - if (o.alias) { - var aliases = _.util.type(o.alias) === 'Array' ? o.alias : [o.alias]; - Array.prototype.push.apply(env.classes, aliases); - } - - _.hooks.run('wrap', env); - - var attributes = Object.keys(env.attributes).map(function(name) { - return name + '="' + (env.attributes[name] || '').replace(/"/g, '"') + '"'; - }).join(' '); - - return '<' + env.tag + ' class="' + env.classes.join(' ') + '"' + (attributes ? ' ' + attributes : '') + '>' + env.content + ''; - -}; - -if (!_self.document) { - if (!_self.addEventListener) { - // in Node.js - return _self.Prism; - } - - if (!_.disableWorkerMessageHandler) { - // In worker - _self.addEventListener('message', function (evt) { - var message = JSON.parse(evt.data), - lang = message.language, - code = message.code, - immediateClose = message.immediateClose; - - _self.postMessage(_.highlight(code, _.languages[lang], lang)); - if (immediateClose) { - _self.close(); - } - }, false); - } - - return _self.Prism; -} - -//Get current script and highlight -var script = document.currentScript || [].slice.call(document.getElementsByTagName("script")).pop(); - -if (script) { - _.filename = script.src; - - if (!_.manual && !script.hasAttribute('data-manual')) { - if(document.readyState !== "loading") { - if (window.requestAnimationFrame) { - window.requestAnimationFrame(_.highlightAll); - } else { - window.setTimeout(_.highlightAll, 16); - } - } - else { - document.addEventListener('DOMContentLoaded', _.highlightAll); - } - } -} - -return _self.Prism; - -})(); - -if ('object' !== 'undefined' && module.exports) { - module.exports = Prism; -} - -// hack for components to work correctly in node.js -if (typeof commonjsGlobal !== 'undefined') { - commonjsGlobal.Prism = Prism; -} - - -/* ********************************************** - Begin prism-markup.js -********************************************** */ - -Prism.languages.markup = { - 'comment': //, - 'prolog': /<\?[\s\S]+?\?>/, - 'doctype': //i, - 'cdata': //i, - 'tag': { - pattern: /<\/?(?!\d)[^\s>\/=$<]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i, - inside: { - 'tag': { - pattern: /^<\/?[^\s>\/]+/i, - inside: { - 'punctuation': /^<\/?/, - 'namespace': /^[^\s>\/:]+:/ - } - }, - 'attr-value': { - pattern: /=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/i, - inside: { - 'punctuation': [ - /^=/, - { - pattern: /(^|[^\\])["']/, - lookbehind: true - } - ] - } - }, - 'punctuation': /\/?>/, - 'attr-name': { - pattern: /[^\s>\/]+/, - inside: { - 'namespace': /^[^\s>\/:]+:/ - } - } - - } - }, - 'entity': /&#?[\da-z]{1,8};/i -}; - -Prism.languages.markup['tag'].inside['attr-value'].inside['entity'] = - Prism.languages.markup['entity']; - -// Plugin to make entity title show the real entity, idea by Roman Komarov -Prism.hooks.add('wrap', function(env) { - - if (env.type === 'entity') { - env.attributes['title'] = env.content.replace(/&/, '&'); - } -}); - -Prism.languages.xml = Prism.languages.markup; -Prism.languages.html = Prism.languages.markup; -Prism.languages.mathml = Prism.languages.markup; -Prism.languages.svg = Prism.languages.markup; - - -/* ********************************************** - Begin prism-css.js -********************************************** */ - -Prism.languages.css = { - 'comment': /\/\*[\s\S]*?\*\//, - 'atrule': { - pattern: /@[\w-]+?.*?(?:;|(?=\s*\{))/i, - inside: { - 'rule': /@[\w-]+/ - // See rest below - } - }, - 'url': /url\((?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|.*?)\)/i, - 'selector': /[^{}\s][^{};]*?(?=\s*\{)/, - 'string': { - pattern: /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, - greedy: true - }, - 'property': /[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i, - 'important': /\B!important\b/i, - 'function': /[-a-z0-9]+(?=\()/i, - 'punctuation': /[(){};:]/ -}; - -Prism.languages.css['atrule'].inside.rest = Prism.util.clone(Prism.languages.css); - -if (Prism.languages.markup) { - Prism.languages.insertBefore('markup', 'tag', { - 'style': { - pattern: /()[\s\S]*?(?=<\/style>)/i, - lookbehind: true, - inside: Prism.languages.css, - alias: 'language-css', - greedy: true - } - }); - - Prism.languages.insertBefore('inside', 'attr-value', { - 'style-attr': { - pattern: /\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i, - inside: { - 'attr-name': { - pattern: /^\s*style/i, - inside: Prism.languages.markup.tag.inside - }, - 'punctuation': /^\s*=\s*['"]|['"]\s*$/, - 'attr-value': { - pattern: /.+/i, - inside: Prism.languages.css - } - }, - alias: 'language-css' - } - }, Prism.languages.markup.tag); -} - -/* ********************************************** - Begin prism-clike.js -********************************************** */ - -Prism.languages.clike = { - 'comment': [ - { - pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/, - lookbehind: true - }, - { - pattern: /(^|[^\\:])\/\/.*/, - lookbehind: true - } - ], - 'string': { - pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, - greedy: true - }, - 'class-name': { - pattern: /((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i, - lookbehind: true, - inside: { - punctuation: /[.\\]/ - } - }, - 'keyword': /\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/, - 'boolean': /\b(?:true|false)\b/, - 'function': /[a-z0-9_]+(?=\()/i, - 'number': /\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)\b/i, - 'operator': /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/, - 'punctuation': /[{}[\];(),.:]/ -}; - - -/* ********************************************** - Begin prism-javascript.js -********************************************** */ - -Prism.languages.javascript = Prism.languages.extend('clike', { - 'keyword': /\b(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/, - 'number': /\b-?(?:0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+|\d*\.?\d+(?:[Ee][+-]?\d+)?|NaN|Infinity)\b/, - // Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444) - 'function': /[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*\()/i, - 'operator': /-[-=]?|\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/ -}); - -Prism.languages.insertBefore('javascript', 'keyword', { - 'regex': { - pattern: /(^|[^/])\/(?!\/)(\[[^\]\r\n]+]|\\.|[^/\\\[\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})]))/, - lookbehind: true, - greedy: true - }, - // This must be declared before keyword because we use "function" inside the look-forward - 'function-variable': { - pattern: /[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=\s*(?:function\b|(?:\([^()]*\)|[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/i, - alias: 'function' - } -}); - -Prism.languages.insertBefore('javascript', 'string', { - 'template-string': { - pattern: /`(?:\\[\s\S]|[^\\`])*`/, - greedy: true, - inside: { - 'interpolation': { - pattern: /\$\{[^}]+\}/, - inside: { - 'interpolation-punctuation': { - pattern: /^\$\{|\}$/, - alias: 'punctuation' - }, - rest: Prism.languages.javascript - } - }, - 'string': /[\s\S]+/ - } - } -}); - -if (Prism.languages.markup) { - Prism.languages.insertBefore('markup', 'tag', { - 'script': { - pattern: /()[\s\S]*?(?=<\/script>)/i, - lookbehind: true, - inside: Prism.languages.javascript, - alias: 'language-javascript', - greedy: true - } - }); -} - -Prism.languages.js = Prism.languages.javascript; - - -/* ********************************************** - Begin prism-file-highlight.js -********************************************** */ - -(function () { - if (typeof self === 'undefined' || !self.Prism || !self.document || !document.querySelector) { - return; - } - - self.Prism.fileHighlight = function() { - - var Extensions = { - 'js': 'javascript', - 'py': 'python', - 'rb': 'ruby', - 'ps1': 'powershell', - 'psm1': 'powershell', - 'sh': 'bash', - 'bat': 'batch', - 'h': 'c', - 'tex': 'latex' - }; - - Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) { - var src = pre.getAttribute('data-src'); - - var language, parent = pre; - var lang = /\blang(?:uage)?-(?!\*)(\w+)\b/i; - while (parent && !lang.test(parent.className)) { - parent = parent.parentNode; - } - - if (parent) { - language = (pre.className.match(lang) || [, ''])[1]; - } - - if (!language) { - var extension = (src.match(/\.(\w+)$/) || [, ''])[1]; - language = Extensions[extension] || extension; - } - - var code = document.createElement('code'); - code.className = 'language-' + language; - - pre.textContent = ''; - - code.textContent = 'Loading…'; - - pre.appendChild(code); - - var xhr = new XMLHttpRequest(); - - xhr.open('GET', src, true); - - xhr.onreadystatechange = function () { - if (xhr.readyState == 4) { - - if (xhr.status < 400 && xhr.responseText) { - code.textContent = xhr.responseText; - - Prism.highlightElement(code); - } - else if (xhr.status >= 400) { - code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText; - } - else { - code.textContent = '✖ Error: File does not exist or is empty'; - } - } - }; - - xhr.send(null); - }); - - }; - - document.addEventListener('DOMContentLoaded', self.Prism.fileHighlight); - -})(); -}); - -/** - * gen toc tree - * @link https://github.com/killercup/grock/blob/5280ae63e16c5739e9233d9009bc235ed7d79a50/styles/solarized/assets/js/behavior.coffee#L54-L81 - * @param {Array} toc - * @param {Number} maxLevel - * @return {Array} - */ -function genTree (toc, maxLevel) { - var headlines = []; - var last = {}; - - toc.forEach(function (headline) { - var level = headline.level || 1; - var len = level - 1; - - if (level > maxLevel) { return } - if (last[len]) { - last[len].children = (last[len].children || []).concat(headline); - } else { - headlines.push(headline); - } - last[level] = headline; - }); - - return headlines -} - -var cache$1 = {}; -var re = /[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,.\/:;<=>?@\[\]^`{|}~]/g; - -function lower (string) { - return string.toLowerCase() -} - -function slugify (str) { - if (typeof str !== 'string') { return '' } - - var slug = str - .trim() - .replace(/[A-Z]+/g, lower) - .replace(/<[^>\d]+>/g, '') - .replace(re, '') - .replace(/\s/g, '-') - .replace(/-+/g, '-') - .replace(/^(\d)/, '_$1'); - var count = cache$1[slug]; - - count = cache$1.hasOwnProperty(slug) ? count + 1 : 0; - cache$1[slug] = count; - - if (count) { - slug = slug + '-' + count; - } - - return slug -} - -slugify.clear = function () { - cache$1 = {}; -}; - -function replace (m, $1) { - return '' + $1 + '' -} - -function emojify (text) { - return text - .replace(/<(pre|template|code)[^>]*?>[\s\S]+?<\/(pre|template|code)>/g, function (m) { return m.replace(/:/g, '__colon__'); }) - .replace(/:(\w+?):/ig, (inBrowser && window.emojify) || replace) - .replace(/__colon__/g, ':') -} - -var decode = decodeURIComponent; -var encode = encodeURIComponent; - -function parseQuery (query) { - var res = {}; - - query = query.trim().replace(/^(\?|#|&)/, ''); - - if (!query) { - return res - } - - // Simple parse - query.split('&').forEach(function (param) { - var parts = param.replace(/\+/g, ' ').split('='); - - res[parts[0]] = parts[1] && decode(parts[1]); - }); - - return res -} - -function stringifyQuery (obj, ignores) { - if ( ignores === void 0 ) ignores = []; - - var qs = []; - - for (var key in obj) { - if (ignores.indexOf(key) > -1) { continue } - qs.push( - obj[key] - ? ((encode(key)) + "=" + (encode(obj[key]))).toLowerCase() - : encode(key) - ); - } - - return qs.length ? ("?" + (qs.join('&'))) : '' -} - -function getPath () { - var args = [], len = arguments.length; - while ( len-- ) args[ len ] = arguments[ len ]; - - return cleanPath(args.join('/')) -} - -var isAbsolutePath = cached(function (path) { - return /(:|(\/{2}))/g.test(path) -}); - -var getParentPath = cached(function (path) { - return /\/$/g.test(path) - ? path - : (path = path.match(/(\S*\/)[^\/]+$/)) ? path[1] : '' -}); - -var cleanPath = cached(function (path) { - return path.replace(/^\/+/, '/').replace(/([^:])\/{2,}/g, '$1/') -}); - -var replaceSlug = cached(function (path) { - return path.replace('#', '?id=') -}); - -var cachedLinks = {}; -var uid = 0; - -function getAndRemoveConfig (str) { - if ( str === void 0 ) str = ''; - - var config = {}; - - if (str) { - str = str - .replace(/:([\w-]+)=?([\w-]+)?/g, function (m, key, value) { - config[key] = (value && value.replace(/"/g, '')) || true; - return '' - }) - .trim(); - } - - return { str: str, config: config } -} -var compileMedia = { - markdown: function markdown (url) { - var this$1 = this; - - var id = "docsify-get-" + (uid++); - - { - get(url, false).then(function (text) { - document.getElementById(id).innerHTML = this$1.compile(text); - }); - - return ("
    ") - } - }, - iframe: function iframe (url, title) { - return ("") - }, - video: function video (url, title) { - return ("") - }, - audio: function audio (url, title) { - return ("") - }, - code: function code (url, title) { - var this$1 = this; - - var id = "docsify-get-" + (uid++); - var ext = url.match(/\.(\w+)$/); - - ext = title || (ext && ext[1]); - if (ext === 'md') { ext = 'markdown'; } - - { - get(url, false).then(function (text) { - document.getElementById(id).innerHTML = this$1.compile( - '```' + ext + '\n' + text.replace(/`/g, '@qm@') + '\n```\n' - ).replace(/@qm@/g, '`'); - }); - - return ("
    ") - } - } -}; - -var Compiler = function Compiler (config, router) { - this.config = config; - this.router = router; - this.cacheTree = {}; - this.toc = []; - this.linkTarget = config.externalLinkTarget || '_blank'; - this.contentBase = router.getBasePath(); - - var renderer = this._initRenderer(); - var compile; - var mdConf = config.markdown || {}; - - if (isFn(mdConf)) { - compile = mdConf(marked, renderer); - } else { - marked.setOptions( - merge(mdConf, { - renderer: merge(renderer, mdConf.renderer) - }) - ); - compile = marked; - } - - this.compile = cached(function (text) { - var html = ''; - - if (!text) { return text } - - html = compile(text); - html = config.noEmoji ? html : emojify(html); - slugify.clear(); - - return html - }); -}; - -Compiler.prototype.matchNotCompileLink = function matchNotCompileLink (link) { - var links = this.config.noCompileLinks || []; - - for (var i = 0; i < links.length; i++) { - var n = links[i]; - var re = cachedLinks[n] || (cachedLinks[n] = new RegExp(("^" + n + "$"))); - - if (re.test(link)) { - return link - } - } -}; - -Compiler.prototype._initRenderer = function _initRenderer () { - var renderer = new marked.Renderer(); - var ref = this; - var linkTarget = ref.linkTarget; - var router = ref.router; - var contentBase = ref.contentBase; - var _self = this; - var origin = {}; - - /** - * render anchor tag - * @link https://github.com/chjj/marked#overriding-renderer-methods - */ - origin.heading = renderer.heading = function (text, level) { - var nextToc = { level: level, title: text }; - - if (/{docsify-ignore}/g.test(text)) { - text = text.replace('{docsify-ignore}', ''); - nextToc.title = text; - nextToc.ignoreSubHeading = true; - } - - if (/{docsify-ignore-all}/g.test(text)) { - text = text.replace('{docsify-ignore-all}', ''); - nextToc.title = text; - nextToc.ignoreAllSubs = true; - } - - var slug = slugify(text); - var url = router.toURL(router.getCurrentPath(), { id: slug }); - nextToc.slug = url; - _self.toc.push(nextToc); - - return ("
    " + text + "") - }; - // highlight code - origin.code = renderer.code = function (code, lang) { - if ( lang === void 0 ) lang = ''; - - var hl = prism.highlight( - code, - prism.languages[lang] || prism.languages.markup - ); - - return ("
    " + hl + "
    ") - }; - origin.link = renderer.link = function (href, title, text) { - if ( title === void 0 ) title = ''; - - var attrs = ''; - - var ref = getAndRemoveConfig(title); - var str = ref.str; - var config = ref.config; - title = str; - - if (config.include) { - if (!isAbsolutePath(href)) { - href = getPath(contentBase, href); - } - - var media; - if (config.type && (media = compileMedia[config.type])) { - return media.call(_self, href, title) - } - - var type = 'code'; - if (/\.(md|markdown)/.test(href)) { - type = 'markdown'; - } else if (/\.html?/.test(href)) { - type = 'iframe'; - } else if (/\.(mp4|ogg)/.test(href)) { - type = 'video'; - } else if (/\.mp3/.test(href)) { - type = 'audio'; - } - - return compileMedia[type].call(_self, href, title) - } - - if ( - !/:|(\/{2})/.test(href) && - !_self.matchNotCompileLink(href) && - !config.ignore - ) { - if (href === _self.config.homepage) { href = 'README'; } - href = router.toURL(href, null, router.getCurrentPath()); - } else { - attrs += " target=\"" + linkTarget + "\""; - } - - if (config.target) { - attrs += ' target=' + config.target; - } - - if (config.disabled) { - attrs += ' disabled'; - href = 'javascript:void(0)'; - } - - if (title) { - attrs += " title=\"" + title + "\""; - } - - return ("" + text + "") - }; - origin.paragraph = renderer.paragraph = function (text) { - if (/^!>/.test(text)) { - return helper('tip', text) - } else if (/^\?>/.test(text)) { - return helper('warn', text) - } - return ("

    " + text + "

    ") - }; - origin.image = renderer.image = function (href, title, text) { - var url = href; - var attrs = ''; - - var ref = getAndRemoveConfig(title); - var str = ref.str; - var config = ref.config; - title = str; - - if (config['no-zoom']) { - attrs += ' data-no-zoom'; - } - - if (title) { - attrs += " title=\"" + title + "\""; - } - - if (!isAbsolutePath(href)) { - url = getPath(contentBase, href); - } - - return ("\""") - }; - - var CHECKED_RE = /^\[([ x])\] +/; - origin.listitem = renderer.listitem = function (text) { - var checked = CHECKED_RE.exec(text); - if (checked) { - text = text.replace( - CHECKED_RE, - ("") - ); - } - return ("" + text + "\n") - }; - - renderer.origin = origin; - - return renderer -}; - -/** - * Compile sidebar - */ -Compiler.prototype.sidebar = function sidebar (text, level) { - var currentPath = this.router.getCurrentPath(); - var html = ''; - - if (text) { - html = this.compile(text); - html = html && html.match(/]*>([\s\S]+)<\/ul>/g)[0]; - } else { - var tree$$1 = this.cacheTree[currentPath] || genTree(this.toc, level); - html = tree(tree$$1, '
      '); - this.cacheTree[currentPath] = tree$$1; - } - - return html -}; - -/** - * Compile sub sidebar - */ -Compiler.prototype.subSidebar = function subSidebar (level) { - if (!level) { - this.toc = []; - return - } - var currentPath = this.router.getCurrentPath(); - var ref = this; - var cacheTree = ref.cacheTree; - var toc = ref.toc; - - toc[0] && toc[0].ignoreAllSubs && toc.splice(0); - toc[0] && toc[0].level === 1 && toc.shift(); - - for (var i = 0; i < toc.length; i++) { - toc[i].ignoreSubHeading && toc.splice(i, 1) && i--; - } - - var tree$$1 = cacheTree[currentPath] || genTree(toc, level); - - cacheTree[currentPath] = tree$$1; - this.toc = []; - return tree(tree$$1, '
        ') -}; - -Compiler.prototype.article = function article (text) { - return this.compile(text) -}; - -/** - * Compile cover page - */ -Compiler.prototype.cover = function cover$$1 (text) { - var cacheToc = this.toc.slice(); - var html = this.compile(text); - - this.toc = cacheToc.slice(); - - return html -}; - -var title = $.title; -/** - * Toggle button - */ -function btn (el, router) { - var toggle = function (_) { return body.classList.toggle('close'); }; - - el = getNode(el); - on(el, 'click', function (e) { - e.stopPropagation(); - toggle(); - }); - - isMobile && - on( - body, - 'click', - function (_) { return body.classList.contains('close') && toggle(); } - ); -} - -function collapse (el, router) { - el = getNode(el); - - on(el, 'click', function (ref) { - var target = ref.target; - - if ( - target.nodeName === 'A' && - target.nextSibling && - target.nextSibling.classList.contains('app-sub-sidebar') - ) { - toggleClass(target.parentNode, 'collapse'); - } - }); -} - -function sticky () { - var cover = getNode('section.cover'); - if (!cover) { return } - var coverHeight = cover.getBoundingClientRect().height; - - if (window.pageYOffset >= coverHeight || cover.classList.contains('hidden')) { - toggleClass(body, 'add', 'sticky'); - } else { - toggleClass(body, 'remove', 'sticky'); - } -} - -/** - * Get and active link - * @param {object} router - * @param {string|element} el - * @param {Boolean} isParent acitve parent - * @param {Boolean} autoTitle auto set title - * @return {element} - */ -function getAndActive (router, el, isParent, autoTitle) { - el = getNode(el); - - var links = findAll(el, 'a'); - var hash = decodeURI(router.toURL(router.getCurrentPath())); - var target; - - links.sort(function (a, b) { return b.href.length - a.href.length; }).forEach(function (a) { - var href = a.getAttribute('href'); - var node = isParent ? a.parentNode : a; - - if (hash.indexOf(href) === 0 && !target) { - target = a; - toggleClass(node, 'add', 'active'); - } else { - toggleClass(node, 'remove', 'active'); - } - }); - - if (autoTitle) { - $.title = target ? ((target.innerText) + " - " + title) : title; - } - - return target -} - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) { descriptor.writable = true; } Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) { defineProperties(Constructor.prototype, protoProps); } if (staticProps) { defineProperties(Constructor, staticProps); } return Constructor; }; }(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var Tweezer = function () { - function Tweezer() { - var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - - _classCallCheck(this, Tweezer); - - this.duration = opts.duration || 1000; - this.ease = opts.easing || this._defaultEase; - this.start = opts.start; - this.end = opts.end; - - this.frame = null; - this.next = null; - this.isRunning = false; - this.events = {}; - this.direction = this.start < this.end ? 'up' : 'down'; - } - - _createClass(Tweezer, [{ - key: 'begin', - value: function begin() { - if (!this.isRunning && this.next !== this.end) { - this.frame = window.requestAnimationFrame(this._tick.bind(this)); - } - return this; - } - }, { - key: 'stop', - value: function stop() { - window.cancelAnimationFrame(this.frame); - this.isRunning = false; - this.frame = null; - this.timeStart = null; - this.next = null; - return this; - } - }, { - key: 'on', - value: function on(name, handler) { - this.events[name] = this.events[name] || []; - this.events[name].push(handler); - return this; - } - }, { - key: 'emit', - value: function emit(name, val) { - var _this = this; - - var e = this.events[name]; - e && e.forEach(function (handler) { - return handler.call(_this, val); - }); - } - }, { - key: '_tick', - value: function _tick(currentTime) { - this.isRunning = true; - - var lastTick = this.next || this.start; - - if (!this.timeStart) { this.timeStart = currentTime; } - this.timeElapsed = currentTime - this.timeStart; - this.next = Math.round(this.ease(this.timeElapsed, this.start, this.end - this.start, this.duration)); - - if (this._shouldTick(lastTick)) { - this.emit('tick', this.next); - this.frame = window.requestAnimationFrame(this._tick.bind(this)); - } else { - this.emit('tick', this.end); - this.emit('done', null); - } - } - }, { - key: '_shouldTick', - value: function _shouldTick(lastTick) { - return { - up: this.next < this.end && lastTick <= this.next, - down: this.next > this.end && lastTick >= this.next - }[this.direction]; - } - }, { - key: '_defaultEase', - value: function _defaultEase(t, b, c, d) { - if ((t /= d / 2) < 1) { return c / 2 * t * t + b; } - return -c / 2 * (--t * (t - 2) - 1) + b; - } - }]); - - return Tweezer; -}(); - -var nav = {}; -var hoverOver = false; -var scroller = null; -var enableScrollEvent = true; -var coverHeight = 0; - -function scrollTo (el) { - if (scroller) { scroller.stop(); } - enableScrollEvent = false; - scroller = new Tweezer({ - start: window.pageYOffset, - end: el.getBoundingClientRect().top + window.pageYOffset, - duration: 500 - }) - .on('tick', function (v) { return window.scrollTo(0, v); }) - .on('done', function () { - enableScrollEvent = true; - scroller = null; - }) - .begin(); -} - -function highlight (path) { - if (!enableScrollEvent) { return } - var sidebar = getNode('.sidebar'); - var anchors = findAll('.anchor'); - var wrap = find(sidebar, '.sidebar-nav'); - var active = find(sidebar, 'li.active'); - var doc = document.documentElement; - var top = ((doc && doc.scrollTop) || document.body.scrollTop) - coverHeight; - var last; - - for (var i = 0, len = anchors.length; i < len; i += 1) { - var node = anchors[i]; - - if (node.offsetTop > top) { - if (!last) { last = node; } - break - } else { - last = node; - } - } - if (!last) { return } - var li = nav[getNavKey(path, last.getAttribute('data-id'))]; - - if (!li || li === active) { return } - - active && active.classList.remove('active'); - li.classList.add('active'); - active = li; - - // scroll into view - // https://github.com/vuejs/vuejs.org/blob/master/themes/vue/source/js/common.js#L282-L297 - if (!hoverOver && body.classList.contains('sticky')) { - var height = sidebar.clientHeight; - var curOffset = 0; - var cur = active.offsetTop + active.clientHeight + 40; - var isInView = - active.offsetTop >= wrap.scrollTop && cur <= wrap.scrollTop + height; - var notThan = cur - curOffset < height; - var top$1 = isInView ? wrap.scrollTop : notThan ? curOffset : cur - height; - - sidebar.scrollTop = top$1; - } -} - -function getNavKey (path, id) { - return (path + "?id=" + id) -} - -function scrollActiveSidebar (router) { - var cover = find('.cover.show'); - coverHeight = cover ? cover.offsetHeight : 0; - - var sidebar = getNode('.sidebar'); - var lis = findAll(sidebar, 'li'); - - for (var i = 0, len = lis.length; i < len; i += 1) { - var li = lis[i]; - var a = li.querySelector('a'); - if (!a) { continue } - var href = a.getAttribute('href'); - - if (href !== '/') { - var ref = router.parse(href); - var id = ref.query.id; - var path$1 = ref.path; - if (id) { href = getNavKey(path$1, id); } - } - - if (href) { nav[decodeURIComponent(href)] = li; } - } - - if (isMobile) { return } - var path = router.getCurrentPath(); - off('scroll', function () { return highlight(path); }); - on('scroll', function () { return highlight(path); }); - on(sidebar, 'mouseover', function () { - hoverOver = true; - }); - on(sidebar, 'mouseleave', function () { - hoverOver = false; - }); -} - -function scrollIntoView (path, id) { - if (!id) { return } - - var section = find('#' + id); - section && scrollTo(section); - - var li = nav[getNavKey(path, id)]; - var sidebar = getNode('.sidebar'); - var active = find(sidebar, 'li.active'); - active && active.classList.remove('active'); - li && li.classList.add('active'); -} - -var scrollEl = $.scrollingElement || $.documentElement; - -function scroll2Top (offset) { - if ( offset === void 0 ) offset = 0; - - scrollEl.scrollTop = offset === true ? 0 : Number(offset); -} - -function executeScript () { - var script = findAll('.markdown-section>script') - .filter(function (s) { return !/template/.test(s.type); })[0]; - if (!script) { return false } - var code = script.innerText.trim(); - if (!code) { return false } - - setTimeout(function (_) { - window.__EXECUTE_RESULT__ = new Function(code)(); - }, 0); -} - -function formatUpdated (html, updated, fn) { - updated = - typeof fn === 'function' - ? fn(updated) - : typeof fn === 'string' ? tinydate(fn)(new Date(updated)) : updated; - - return html.replace(/{docsify-updated}/g, updated) -} - -function renderMain (html) { - if (!html) { - // TODO: Custom 404 page - html = 'not found'; - } - - this._renderTo('.markdown-section', html); - // Render sidebar with the TOC - !this.config.loadSidebar && this._renderSidebar(); - - // execute script - if ( - this.config.executeScript !== false && - typeof window.Vue !== 'undefined' && - !executeScript() - ) { - setTimeout(function (_) { - var vueVM = window.__EXECUTE_RESULT__; - vueVM && vueVM.$destroy && vueVM.$destroy(); - window.__EXECUTE_RESULT__ = new window.Vue().$mount('#main'); - }, 0); - } else { - this.config.executeScript && executeScript(); - } -} - -function renderNameLink (vm) { - var el = getNode('.app-name-link'); - var nameLink = vm.config.nameLink; - var path = vm.route.path; - - if (!el) { return } - - if (isPrimitive(vm.config.nameLink)) { - el.setAttribute('href', nameLink); - } else if (typeof nameLink === 'object') { - var match = Object.keys(nameLink).filter(function (key) { return path.indexOf(key) > -1; })[0]; - - el.setAttribute('href', nameLink[match]); - } -} - -function renderMixin (proto) { - proto._renderTo = function (el, content, replace) { - var node = getNode(el); - if (node) { node[replace ? 'outerHTML' : 'innerHTML'] = content; } - }; - - proto._renderSidebar = function (text) { - var ref = this.config; - var maxLevel = ref.maxLevel; - var subMaxLevel = ref.subMaxLevel; - var loadSidebar = ref.loadSidebar; - - this._renderTo('.sidebar-nav', this.compiler.sidebar(text, maxLevel)); - var activeEl = getAndActive(this.router, '.sidebar-nav', true, true); - if (loadSidebar && activeEl) { - activeEl.parentNode.innerHTML += - this.compiler.subSidebar(subMaxLevel) || ''; - } else { - // reset toc - this.compiler.subSidebar(); - } - // bind event - this._bindEventOnRendered(activeEl); - }; - - proto._bindEventOnRendered = function (activeEl) { - var ref = this.config; - var autoHeader = ref.autoHeader; - var auto2top = ref.auto2top; - - scrollActiveSidebar(this.router); - - if (autoHeader && activeEl) { - var main$$1 = getNode('#main'); - var firstNode = main$$1.children[0]; - if (firstNode && firstNode.tagName !== 'H1') { - var h1 = create('h1'); - h1.innerText = activeEl.innerText; - before(main$$1, h1); - } - } - - auto2top && scroll2Top(auto2top); - }; - - proto._renderNav = function (text) { - text && this._renderTo('nav', this.compiler.compile(text)); - getAndActive(this.router, 'nav'); - }; - - proto._renderMain = function (text, opt) { - var this$1 = this; - if ( opt === void 0 ) opt = {}; - - if (!text) { - return renderMain.call(this, text) - } - - callHook(this, 'beforeEach', text, function (result) { - var html = this$1.isHTML ? result : this$1.compiler.compile(result); - if (opt.updatedAt) { - html = formatUpdated(html, opt.updatedAt, this$1.config.formatUpdated); - } - - callHook(this$1, 'afterEach', html, function (text) { return renderMain.call(this$1, text); }); - }); - }; - - proto._renderCover = function (text, coverOnly) { - var el = getNode('.cover'); - - toggleClass(getNode('main'), coverOnly ? 'add' : 'remove', 'hidden'); - if (!text) { - toggleClass(el, 'remove', 'show'); - return - } - toggleClass(el, 'add', 'show'); - - var html = this.coverIsHTML ? text : this.compiler.cover(text); - var m = html - .trim() - .match('

        ([^<]*?)

        $'); - - if (m) { - if (m[2] === 'color') { - el.style.background = m[1] + (m[3] || ''); - } else { - var path = m[1]; - - toggleClass(el, 'add', 'has-mask'); - if (!isAbsolutePath(m[1])) { - path = getPath(this.router.getBasePath(), m[1]); - } - el.style.backgroundImage = "url(" + path + ")"; - el.style.backgroundSize = 'cover'; - el.style.backgroundPosition = 'center center'; - } - html = html.replace(m[0], ''); - } - - this._renderTo('.cover-main', html); - sticky(); - }; - - proto._updateRender = function () { - // render name link - renderNameLink(this); - }; -} - -function initRender (vm) { - var config = vm.config; - - // Init markdown compiler - vm.compiler = new Compiler(config, vm.router); - if (inBrowser) { - window['__current_docsify_compiler__'] = vm.compiler; - } - - var id = config.el || '#app'; - var navEl = find('nav') || create('nav'); - - var el = find(id); - var html = ''; - var navAppendToTarget = body; - - if (el) { - if (config.repo) { - html += corner(config.repo); - } - if (config.coverpage) { - html += cover(); - } - - html += main(config); - // Render main app - vm._renderTo(el, html, true); - } else { - vm.rendered = true; - } - - if (config.mergeNavbar && isMobile) { - navAppendToTarget = find('.sidebar'); - } else { - navEl.classList.add('app-nav'); - - if (!config.repo) { - navEl.classList.add('no-badge'); - } - } - - // Add nav - before(navAppendToTarget, navEl); - - if (config.themeColor) { - $.head.appendChild( - create('div', theme(config.themeColor)).firstElementChild - ); - // Polyfll - cssVars(config.themeColor); - } - vm._updateRender(); - toggleClass(body, 'ready'); -} - -var cached$1 = {}; - -function getAlias (path, alias, last) { - var match = Object.keys(alias).filter(function (key) { - var re = cached$1[key] || (cached$1[key] = new RegExp(("^" + key + "$"))); - return re.test(path) && path !== last - })[0]; - - return match - ? getAlias(path.replace(cached$1[match], alias[match]), alias, path) - : path -} - -function getFileName (path, ext) { - return new RegExp(("\\.(" + (ext.replace(/^\./, '')) + "|html)$"), 'g').test(path) - ? path - : /\/$/g.test(path) ? (path + "README" + ext) : ("" + path + ext) -} - -var History = function History (config) { - this.config = config; -}; - -History.prototype.getBasePath = function getBasePath () { - return this.config.basePath -}; - -History.prototype.getFile = function getFile (path, isRelative) { - if ( path === void 0 ) path = this.getCurrentPath(); - - var ref = this; - var config = ref.config; - var base = this.getBasePath(); - var ext = typeof config.ext !== 'string' ? '.md' : config.ext; - - path = config.alias ? getAlias(path, config.alias) : path; - path = getFileName(path, ext); - path = path === ("/README" + ext) ? config.homepage || path : path; - path = isAbsolutePath(path) ? path : getPath(base, path); - - if (isRelative) { - path = path.replace(new RegExp(("^" + base)), ''); - } - - return path -}; - -History.prototype.onchange = function onchange (cb) { - if ( cb === void 0 ) cb = noop; - - cb(); -}; - -History.prototype.getCurrentPath = function getCurrentPath () {}; - -History.prototype.normalize = function normalize () {}; - -History.prototype.parse = function parse () {}; - -History.prototype.toURL = function toURL (path, params, currentRoute) { - var local = currentRoute && path[0] === '#'; - var route = this.parse(replaceSlug(path)); - - route.query = merge({}, route.query, params); - path = route.path + stringifyQuery(route.query); - path = path.replace(/\.md(\?)|\.md$/, '$1'); - - if (local) { - var idIndex = currentRoute.indexOf('?'); - path = - (idIndex > 0 ? currentRoute.substr(0, idIndex) : currentRoute) + path; - } - - return cleanPath('/' + path) -}; - -function replaceHash (path) { - var i = location.href.indexOf('#'); - location.replace(location.href.slice(0, i >= 0 ? i : 0) + '#' + path); -} - -var HashHistory = (function (History$$1) { - function HashHistory (config) { - History$$1.call(this, config); - this.mode = 'hash'; - } - - if ( History$$1 ) HashHistory.__proto__ = History$$1; - HashHistory.prototype = Object.create( History$$1 && History$$1.prototype ); - HashHistory.prototype.constructor = HashHistory; - - HashHistory.prototype.getBasePath = function getBasePath () { - var path = window.location.pathname || ''; - var base = this.config.basePath; - - return /^(\/|https?:)/g.test(base) ? base : cleanPath(path + '/' + base) - }; - - HashHistory.prototype.getCurrentPath = function getCurrentPath () { - // We can't use location.hash here because it's not - // consistent across browsers - Firefox will pre-decode it! - var href = location.href; - var index = href.indexOf('#'); - return index === -1 ? '' : href.slice(index + 1) - }; - - HashHistory.prototype.onchange = function onchange (cb) { - if ( cb === void 0 ) cb = noop; - - on('hashchange', cb); - }; - - HashHistory.prototype.normalize = function normalize () { - var path = this.getCurrentPath(); - - path = replaceSlug(path); - - if (path.charAt(0) === '/') { return replaceHash(path) } - replaceHash('/' + path); - }; - - /** - * Parse the url - * @param {string} [path=location.herf] - * @return {object} { path, query } - */ - HashHistory.prototype.parse = function parse (path) { - if ( path === void 0 ) path = location.href; - - var query = ''; - - var hashIndex = path.indexOf('#'); - if (hashIndex >= 0) { - path = path.slice(hashIndex + 1); - } - - var queryIndex = path.indexOf('?'); - if (queryIndex >= 0) { - query = path.slice(queryIndex + 1); - path = path.slice(0, queryIndex); - } - - return { - path: path, - file: this.getFile(path, true), - query: parseQuery(query) - } - }; - - HashHistory.prototype.toURL = function toURL (path, params, currentRoute) { - return '#' + History$$1.prototype.toURL.call(this, path, params, currentRoute) - }; - - return HashHistory; -}(History)); - -var HTML5History = (function (History$$1) { - function HTML5History (config) { - History$$1.call(this, config); - this.mode = 'history'; - } - - if ( History$$1 ) HTML5History.__proto__ = History$$1; - HTML5History.prototype = Object.create( History$$1 && History$$1.prototype ); - HTML5History.prototype.constructor = HTML5History; - - HTML5History.prototype.getCurrentPath = function getCurrentPath () { - var base = this.getBasePath(); - var path = window.location.pathname; - - if (base && path.indexOf(base) === 0) { - path = path.slice(base.length); - } - - return (path || '/') + window.location.search + window.location.hash - }; - - HTML5History.prototype.onchange = function onchange (cb) { - if ( cb === void 0 ) cb = noop; - - on('click', function (e) { - var el = e.target.tagName === 'A' ? e.target : e.target.parentNode; - - if (el.tagName === 'A' && !/_blank/.test(el.target)) { - e.preventDefault(); - var url = el.href; - window.history.pushState({ key: url }, '', url); - cb(); - } - }); - - on('popstate', cb); - }; - - /** - * Parse the url - * @param {string} [path=location.href] - * @return {object} { path, query } - */ - HTML5History.prototype.parse = function parse (path) { - if ( path === void 0 ) path = location.href; - - var query = ''; - - var queryIndex = path.indexOf('?'); - if (queryIndex >= 0) { - query = path.slice(queryIndex + 1); - path = path.slice(0, queryIndex); - } - - var base = getPath(location.origin); - var baseIndex = path.indexOf(base); - - if (baseIndex > -1) { - path = path.slice(baseIndex + base.length); - } - - return { - path: path, - file: this.getFile(path), - query: parseQuery(query) - } - }; - - return HTML5History; -}(History)); - -function routerMixin (proto) { - proto.route = {}; -} - -var lastRoute = {}; - -function updateRender (vm) { - vm.router.normalize(); - vm.route = vm.router.parse(); - body.setAttribute('data-page', vm.route.file); -} - -function initRouter (vm) { - var config = vm.config; - var mode = config.routerMode || 'hash'; - var router; - - if (mode === 'history' && supportsPushState) { - router = new HTML5History(config); - } else { - router = new HashHistory(config); - } - - vm.router = router; - updateRender(vm); - lastRoute = vm.route; - - router.onchange(function (_) { - updateRender(vm); - vm._updateRender(); - - if (lastRoute.path === vm.route.path) { - vm.$resetEvents(); - return - } - - vm.$fetch(); - lastRoute = vm.route; - }); -} - -function eventMixin (proto) { - proto.$resetEvents = function () { - scrollIntoView(this.route.path, this.route.query.id); - getAndActive(this.router, 'nav'); - }; -} - -function initEvent (vm) { - // Bind toggle button - btn('button.sidebar-toggle', vm.router); - collapse('.sidebar', vm.router); - // Bind sticky effect - if (vm.config.coverpage) { - !isMobile && on('scroll', sticky); - } else { - body.classList.add('sticky'); - } -} - -function loadNested (path, qs, file, next, vm, first) { - path = first ? path : path.replace(/\/$/, ''); - path = getParentPath(path); - - if (!path) { return } - - get( - vm.router.getFile(path + file) + qs, - false, - vm.config.requestHeaders - ).then(next, function (_) { return loadNested(path, qs, file, next, vm); }); -} - -function fetchMixin (proto) { - var last; - proto._fetch = function (cb) { - var this$1 = this; - if ( cb === void 0 ) cb = noop; - - var ref = this.route; - var path = ref.path; - var query = ref.query; - var qs = stringifyQuery(query, ['id']); - var ref$1 = this.config; - var loadNavbar = ref$1.loadNavbar; - var loadSidebar = ref$1.loadSidebar; - var requestHeaders = ref$1.requestHeaders; - - // Abort last request - last && last.abort && last.abort(); - - last = get(this.router.getFile(path) + qs, true, requestHeaders); - - // Current page is html - this.isHTML = /\.html$/g.test(path); - - var loadSideAndNav = function () { - if (!loadSidebar) { return cb() } - - var fn = function (result) { - this$1._renderSidebar(result); - cb(); - }; - - // Load sidebar - loadNested(path, qs, loadSidebar, fn, this$1, true); - }; - - // Load main content - last.then( - function (text, opt) { - this$1._renderMain(text, opt); - loadSideAndNav(); - }, - function (_) { - this$1._renderMain(null); - loadSideAndNav(); - } - ); - - // Load nav - loadNavbar && - loadNested( - path, - qs, - loadNavbar, - function (text) { return this$1._renderNav(text); }, - this, - true - ); - }; - - proto._fetchCover = function () { - var this$1 = this; - - var ref = this.config; - var coverpage = ref.coverpage; - var requestHeaders = ref.requestHeaders; - var query = this.route.query; - var root = getParentPath(this.route.path); - - if (coverpage) { - var path = null; - var routePath = this.route.path; - if (typeof coverpage === 'string') { - if (routePath === '/') { - path = coverpage; - } - } else if (Array.isArray(coverpage)) { - path = coverpage.indexOf(routePath) > -1 && '_coverpage'; - } else { - var cover = coverpage[routePath]; - path = cover === true ? '_coverpage' : cover; - } - - var coverOnly = !!path && this.config.onlyCover; - if (path) { - path = this.router.getFile(root + path); - this.coverIsHTML = /\.html$/g.test(path); - get(path + stringifyQuery(query, ['id']), false, requestHeaders).then( - function (text) { return this$1._renderCover(text, coverOnly); } - ); - } else { - this._renderCover(null, coverOnly); - } - return coverOnly - } - }; - - proto.$fetch = function (cb) { - var this$1 = this; - if ( cb === void 0 ) cb = noop; - - var done = function () { - callHook(this$1, 'doneEach'); - cb(); - }; - - var onlyCover = this._fetchCover(); - - if (onlyCover) { - done(); - } else { - this._fetch(function (result) { - this$1.$resetEvents(); - done(); - }); - } - }; -} - -function initFetch (vm) { - var ref = vm.config; - var loadSidebar = ref.loadSidebar; - - // server-client renderer - if (vm.rendered) { - var activeEl = getAndActive(vm.router, '.sidebar-nav', true, true); - if (loadSidebar && activeEl) { - activeEl.parentNode.innerHTML += window.__SUB_SIDEBAR__; - } - vm._bindEventOnRendered(activeEl); - vm.$resetEvents(); - callHook(vm, 'doneEach'); - callHook(vm, 'ready'); - } else { - vm.$fetch(function (_) { return callHook(vm, 'ready'); }); - } -} - -function initMixin (proto) { - proto._init = function () { - var vm = this; - vm.config = config || {}; - - initLifecycle(vm); // Init hooks - initPlugin(vm); // Install plugins - callHook(vm, 'init'); - initRouter(vm); // Add router - initRender(vm); // Render base DOM - initEvent(vm); // Bind events - initFetch(vm); // Fetch data - callHook(vm, 'mounted'); - }; -} - -function initPlugin (vm) { - [].concat(vm.config.plugins).forEach(function (fn) { return isFn(fn) && fn(vm._lifecycle, vm); }); -} - - - -var util = Object.freeze({ - cached: cached, - hyphenate: hyphenate, - merge: merge, - isPrimitive: isPrimitive, - noop: noop, - isFn: isFn, - inBrowser: inBrowser, - isMobile: isMobile, - supportsPushState: supportsPushState, - parseQuery: parseQuery, - stringifyQuery: stringifyQuery, - getPath: getPath, - isAbsolutePath: isAbsolutePath, - getParentPath: getParentPath, - cleanPath: cleanPath, - replaceSlug: replaceSlug -}); - -function initGlobalAPI () { - window.Docsify = { util: util, dom: dom, get: get, slugify: slugify }; - window.DocsifyCompiler = Compiler; - window.marked = marked; - window.Prism = prism; -} - -/** - * Fork https://github.com/bendrucker/document-ready/blob/master/index.js - */ -function ready (callback) { - var state = document.readyState; - - if (state === 'complete' || state === 'interactive') { - return setTimeout(callback, 0) - } - - document.addEventListener('DOMContentLoaded', callback); -} - -function Docsify () { - this._init(); -} - -var proto = Docsify.prototype; - -initMixin(proto); -routerMixin(proto); -renderMixin(proto); -fetchMixin(proto); -eventMixin(proto); - -/** - * Global API - */ -initGlobalAPI(); - -/** - * Version - */ -Docsify.version = '4.6.0'; - -/** - * Run Docsify - */ -ready(function (_) { return new Docsify(); }); - -}()); diff --git a/lib/docsify.min.js b/lib/docsify.min.js deleted file mode 100644 index df9ebed..0000000 --- a/lib/docsify.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(){function e(e){var t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}var t=e(function(e){return e.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()})}),n=Object.assign||function(e){for(var t=arguments,n=Object.prototype.hasOwnProperty,r=1;r=a.length)r(n);else if("function"==typeof t)if(2===t.length)t(n,function(t){n=t,o(e+1)});else{var i=t(n);n=void 0!==i?i:n,o(e+1)}else o(e+1)};o(0)}var h=!0,p=h&&document.body.clientWidth<=600,d=h&&window.history&&window.history.pushState&&window.history.replaceState&&!navigator.userAgent.match(/((iPod|iPhone|iPad).+\bOS\s+[1-4]\D|WebApps\/.+CFNetwork)/),g={};function f(e,t){if(void 0===t&&(t=!1),"string"==typeof e){if(void 0!==window.Vue)return y(e);e=t?y(e):g[e]||(g[e]=y(e))}return e}var m=h&&document,v=h&&m.body,b=h&&m.head;function y(e,t){return t?e.querySelector(t):m.querySelector(e)}function k(e,t){return[].slice.call(t?e.querySelectorAll(t):m.querySelectorAll(e))}function w(e,t){return e=m.createElement(e),t&&(e.innerHTML=t),e}function x(e,t){return e.appendChild(t)}function _(e,t){return e.insertBefore(t,e.children[0])}function S(e,t,n){a(t)?window.addEventListener(e,t):e.addEventListener(t,n)}function L(e,t,n){a(t)?window.removeEventListener(e,t):e.removeEventListener(t,n)}function C(e,t,n){e&&e.classList[n?t:"toggle"](n||t)}var E=Object.freeze({getNode:f,$:m,body:v,head:b,find:y,findAll:k,create:w,appendTo:x,before:_,on:S,off:L,toggleClass:C,style:function(e){x(b,w("style",e))}});function $(e,t){return void 0===t&&(t=""),e&&e.length?(e.forEach(function(e){t+='
      • '+e.title+"
      • ",e.children&&(t+='
        • '+$(e.children)+"
        ")}),t):""}function A(e,t){return'

        '+t.slice(5).trim()+"

        "}var T,P;function O(e){var t,n=e.loaded,r=e.total,i=e.step;!T&&function(){var e=w("div");e.classList.add("progress"),x(v,e),T=e}(),t=i?(t=parseInt(T.style.width||0,10)+i)>80?80:t:Math.floor(n/r*100),T.style.opacity=1,T.style.width=t>=95?"100%":t+"%",t>=95&&(clearTimeout(P),P=setTimeout(function(e){T.style.opacity=0,T.style.width="0%"},200))}var F={};function M(e,t,n){void 0===t&&(t=!1),void 0===n&&(n={});var r=new XMLHttpRequest,a=function(){r.addEventListener.apply(r,arguments)},o=F[e];if(o)return{then:function(e){return e(o.content,o.opt)},abort:i};r.open("GET",e);for(var s in n)r.setRequestHeader(s,n[s]);return r.send(),{then:function(n,o){if(void 0===o&&(o=i),t){var s=setInterval(function(e){return O({step:Math.floor(5*Math.random()+1)})},500);a("progress",O),a("loadend",function(e){O(e),clearInterval(s)})}a("error",o),a("load",function(t){var i=t.target;if(i.status>=400)o(i);else{var a=F[e]={content:i.response,opt:{updatedAt:r.getResponseHeader("last-modified")}};n(a.content,a.opt)}})},abort:function(e){return 4!==r.readyState&&r.abort()}}}function j(e,t){e.innerHTML=e.innerHTML.replace(/var\(\s*--theme-color.*?\)/g,t)}var q=/([^{]*?)\w(?=\})/g,N={YYYY:"getFullYear",YY:"getYear",MM:function(e){return e.getMonth()+1},DD:"getDate",HH:"getHours",mm:"getMinutes",ss:"getSeconds"};var R="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function H(e,t){return e(t={exports:{}},t.exports),t.exports}var z=H(function(e,t){(function(){var t={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:p,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:p,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,blockquote:/^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/,def:/^ *\[([^\]]+)\]: *]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:p,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/};t.bullet=/(?:[*+-]|\d+\.)/,t.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/,t.item=l(t.item,"gm")(/bull/g,t.bullet)(),t.list=l(t.list)(/bull/g,t.bullet)("hr","\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))")("def","\\n+(?="+t.def.source+")")(),t.blockquote=l(t.blockquote)("def",t.def)(),t._tag="(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b",t.html=l(t.html)("comment",//)("closed",/<(tag)[\s\S]+?<\/\1>/)("closing",/])*?>/)(/tag/g,t._tag)(),t.paragraph=l(t.paragraph)("hr",t.hr)("heading",t.heading)("lheading",t.lheading)("blockquote",t.blockquote)("tag","<"+t._tag)("def",t.def)(),t.normal=d({},t),t.gfm=d({},t.normal,{fences:/^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\s*\1 *(?:\n+|$)/,paragraph:/^/,heading:/^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/}),t.gfm.paragraph=l(t.paragraph)("(?!","(?!"+t.gfm.fences.source.replace("\\1","\\2")+"|"+t.list.source.replace("\\1","\\3")+"|")(),t.tables=d({},t.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/});function n(e){this.tokens=[],this.tokens.links={},this.options=e||g.defaults,this.rules=t.normal,this.options.gfm&&(this.options.tables?this.rules=t.tables:this.rules=t.gfm)}n.rules=t,n.lex=function(e,t){return new n(t).lex(e)},n.prototype.lex=function(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n"),this.token(e,!0)},n.prototype.token=function(e,n,r){var i,a,o,s,l,c,u,h,p;for(e=e.replace(/^ +$/gm,"");e;)if((o=this.rules.newline.exec(e))&&(e=e.substring(o[0].length),o[0].length>1&&this.tokens.push({type:"space"})),o=this.rules.code.exec(e))e=e.substring(o[0].length),o=o[0].replace(/^ {4}/gm,""),this.tokens.push({type:"code",text:this.options.pedantic?o:o.replace(/\n+$/,"")});else if(o=this.rules.fences.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"code",lang:o[2],text:o[3]||""});else if(o=this.rules.heading.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"heading",depth:o[1].length,text:o[2]});else if(n&&(o=this.rules.nptable.exec(e))){for(e=e.substring(o[0].length),c={type:"table",header:o[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:o[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:o[3].replace(/\n$/,"").split("\n")},h=0;h ?/gm,""),this.token(o,n,!0),this.tokens.push({type:"blockquote_end"});else if(o=this.rules.list.exec(e)){for(e=e.substring(o[0].length),s=o[2],this.tokens.push({type:"list_start",ordered:s.length>1}),i=!1,p=(o=o[0].match(this.rules.item)).length,h=0;h1&&l.length>1||(e=o.slice(h+1).join("\n")+e,h=p-1)),a=i||/\n\n(?!\s*$)/.test(c),h!==p-1&&(i="\n"===c.charAt(c.length-1),a||(a=i)),this.tokens.push({type:a?"loose_item_start":"list_item_start"}),this.token(c,!1,r),this.tokens.push({type:"list_item_end"});this.tokens.push({type:"list_end"})}else if(o=this.rules.html.exec(e))e=e.substring(o[0].length),this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:!this.options.sanitizer&&("pre"===o[1]||"script"===o[1]||"style"===o[1]),text:o[0]});else if(!r&&n&&(o=this.rules.def.exec(e)))e=e.substring(o[0].length),this.tokens.links[o[1].toLowerCase()]={href:o[2],title:o[3]};else if(n&&(o=this.rules.table.exec(e))){for(e=e.substring(o[0].length),c={type:"table",header:o[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:o[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:o[3].replace(/(?: *\| *)?\n$/,"").split("\n")},h=0;h])/,autolink:/^<([^ <>]+(@|:\/)[^ <>]+)>/,url:p,tag:/^|^<\/?\w+(?:"[^"]*"|'[^']*'|[^<'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,code:/^(`+)([\s\S]*?[^`])\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:p,text:/^[\s\S]+?(?=[\\?(?:\s+['"]([\s\S]*?)['"])?\s*/,r.link=l(r.link)("inside",r._inside)("href",r._href)(),r.reflink=l(r.reflink)("inside",r._inside)(),r.normal=d({},r),r.pedantic=d({},r.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/}),r.gfm=d({},r.normal,{escape:l(r.escape)("])","~|])")(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:l(r.text)("]|","~]|")("|","|https?://|")()}),r.breaks=d({},r.gfm,{br:l(r.br)("{2,}","*")(),text:l(r.gfm.text)("{2,}","*")()});function i(e,t){if(this.options=t||g.defaults,this.links=e,this.rules=r.normal,this.renderer=this.options.renderer||new a,this.renderer.options=this.options,!this.links)throw new Error("Tokens array requires a `links` property.");this.options.gfm?this.options.breaks?this.rules=r.breaks:this.rules=r.gfm:this.options.pedantic&&(this.rules=r.pedantic)}i.rules=r,i.output=function(e,t,n){return new i(t,n).output(e)},i.prototype.output=function(e){for(var t,n,r,i,a="";e;)if(i=this.rules.escape.exec(e))e=e.substring(i[0].length),a+=i[1];else if(i=this.rules.autolink.exec(e))e=e.substring(i[0].length),"@"===i[2]?(n=s(":"===i[1].charAt(6)?this.mangle(i[1].substring(7)):this.mangle(i[1])),r=this.mangle("mailto:")+n):r=n=s(i[1]),a+=this.renderer.link(r,null,n);else if(this.inLink||!(i=this.rules.url.exec(e))){if(i=this.rules.tag.exec(e))!this.inLink&&/^/i.test(i[0])&&(this.inLink=!1),e=e.substring(i[0].length),a+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(i[0]):s(i[0]):i[0];else if(i=this.rules.link.exec(e))e=e.substring(i[0].length),this.inLink=!0,a+=this.outputLink(i,{href:i[2],title:i[3]}),this.inLink=!1;else if((i=this.rules.reflink.exec(e))||(i=this.rules.nolink.exec(e))){if(e=e.substring(i[0].length),t=(i[2]||i[1]).replace(/\s+/g," "),!(t=this.links[t.toLowerCase()])||!t.href){a+=i[0].charAt(0),e=i[0].substring(1)+e;continue}this.inLink=!0,a+=this.outputLink(i,t),this.inLink=!1}else if(i=this.rules.strong.exec(e))e=e.substring(i[0].length),a+=this.renderer.strong(this.output(i[2]||i[1]));else if(i=this.rules.em.exec(e))e=e.substring(i[0].length),a+=this.renderer.em(this.output(i[2]||i[1]));else if(i=this.rules.code.exec(e))e=e.substring(i[0].length),a+=this.renderer.codespan(s(i[2].trim(),!0));else if(i=this.rules.br.exec(e))e=e.substring(i[0].length),a+=this.renderer.br();else if(i=this.rules.del.exec(e))e=e.substring(i[0].length),a+=this.renderer.del(this.output(i[1]));else if(i=this.rules.text.exec(e))e=e.substring(i[0].length),a+=this.renderer.text(s(this.smartypants(i[0])));else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0))}else e=e.substring(i[0].length),r=n=s(i[1]),a+=this.renderer.link(r,null,n);return a},i.prototype.outputLink=function(e,t){var n=s(t.href),r=t.title?s(t.title):null;return"!"!==e[0].charAt(0)?this.renderer.link(n,r,this.output(e[1])):this.renderer.image(n,r,s(e[1]))},i.prototype.smartypants=function(e){return this.options.smartypants?e.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…"):e},i.prototype.mangle=function(e){if(!this.options.mangle)return e;for(var t,n="",r=e.length,i=0;i.5&&(t="x"+t.toString(16)),n+="&#"+t+";";return n};function a(e){this.options=e||{}}a.prototype.code=function(e,t,n){if(this.options.highlight){var r=this.options.highlight(e,t);null!=r&&r!==e&&(n=!0,e=r)}return t?'
        '+(n?e:s(e,!0))+"\n
        \n":"
        "+(n?e:s(e,!0))+"\n
        "},a.prototype.blockquote=function(e){return"
        \n"+e+"
        \n"},a.prototype.html=function(e){return e},a.prototype.heading=function(e,t,n){return"'+e+"\n"},a.prototype.hr=function(){return this.options.xhtml?"
        \n":"
        \n"},a.prototype.list=function(e,t){var n=t?"ol":"ul";return"<"+n+">\n"+e+"\n"},a.prototype.listitem=function(e){return"
      • "+e+"
      • \n"},a.prototype.paragraph=function(e){return"

        "+e+"

        \n"},a.prototype.table=function(e,t){return"\n\n"+e+"\n\n"+t+"\n
        \n"},a.prototype.tablerow=function(e){return"\n"+e+"\n"},a.prototype.tablecell=function(e,t){var n=t.header?"th":"td";return(t.align?"<"+n+' style="text-align:'+t.align+'">':"<"+n+">")+e+"\n"},a.prototype.strong=function(e){return""+e+""},a.prototype.em=function(e){return""+e+""},a.prototype.codespan=function(e){return""+e+""},a.prototype.br=function(){return this.options.xhtml?"
        ":"
        "},a.prototype.del=function(e){return""+e+""},a.prototype.link=function(e,t,n){if(this.options.sanitize){try{var r=decodeURIComponent((i=e,i.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi,function(e,t){return"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""}))).replace(/[^\w:]/g,"").toLowerCase()}catch(e){return n}if(0===r.indexOf("javascript:")||0===r.indexOf("vbscript:")||0===r.indexOf("data:"))return n}var i;this.options.baseUrl&&!h.test(e)&&(e=c(this.options.baseUrl,e));var a='
        "},a.prototype.image=function(e,t,n){this.options.baseUrl&&!h.test(e)&&(e=c(this.options.baseUrl,e));var r=''+n+'":">"},a.prototype.text=function(e){return e};function o(e){this.tokens=[],this.token=null,this.options=e||g.defaults,this.options.renderer=this.options.renderer||new a,this.renderer=this.options.renderer,this.renderer.options=this.options}o.parse=function(e,t,n){return new o(t,n).parse(e)},o.prototype.parse=function(e){this.inline=new i(e.links,this.options,this.renderer),this.tokens=e.reverse();for(var t="";this.next();)t+=this.tok();return t},o.prototype.next=function(){return this.token=this.tokens.pop()},o.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},o.prototype.parseText=function(){for(var e=this.token.text;"text"===this.peek().type;)e+="\n"+this.next().text;return this.inline.output(e)},o.prototype.tok=function(){switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,this.token.text);case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":var e,t,n,r,i="",a="";for(n="",e=0;e/g,">").replace(/"/g,""").replace(/'/g,"'")}function l(e,t){return e=e.source,t=t||"",function n(r,i){return r?(i=(i=i.source||i).replace(/(^|[^\[])\^/g,"$1"),e=e.replace(r,i),n):new RegExp(e,t)}}function c(e,t){return u[" "+e]||(/^[^:]+:\/*[^/]*$/.test(e)?u[" "+e]=e+"/":u[" "+e]=e.replace(/[^/]*$/,"")),e=u[" "+e],"//"===t.slice(0,2)?e.replace(/:[\s\S]*/,":")+t:"/"===t.charAt(0)?e.replace(/(:\/*[^/]*)[\s\S]*/,"$1")+t:e+t}var u={},h=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function p(){}p.exec=p;function d(e){for(var t,n,r=arguments,i=1;iAn error occurred:

        "+s(e.message+"",!0)+"
        ";throw e}}g.options=g.setOptions=function(e){return d(g.defaults,e),g},g.defaults={gfm:!0,tables:!0,breaks:!1,pedantic:!1,sanitize:!1,sanitizer:null,mangle:!0,smartLists:!1,silent:!1,highlight:null,langPrefix:"lang-",smartypants:!1,headerPrefix:"",renderer:new a,xhtml:!1,baseUrl:null},g.Parser=o,g.parser=o.parse,g.Renderer=a,g.Lexer=n,g.lexer=n.lex,g.InlineLexer=i,g.inlineLexer=i.output,g.parse=g,e.exports=g}).call(function(){return this||("undefined"!=typeof window?window:R)}())}),B=H(function(e){var t="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},n=function(){var e=/\blang(?:uage)?-(\w+)\b/i,n=0,r=t.Prism={manual:t.Prism&&t.Prism.manual,disableWorkerMessageHandler:t.Prism&&t.Prism.disableWorkerMessageHandler,util:{encode:function(e){return e instanceof i?new i(e.type,r.util.encode(e.content),e.alias):"Array"===r.util.type(e)?e.map(r.util.encode):e.replace(/&/g,"&").replace(/e.length)return;if(!(w instanceof l)){p.lastIndex=0;var x=1;if(!($=p.exec(w))&&f&&y!=t.length-1){if(p.lastIndex=k,!($=p.exec(e)))break;for(var _=$.index+(g?$[1].length:0),S=$.index+$[0].length,L=y,C=k,E=t.length;L=(C+=t[L].length)&&(++y,k=C);if(t[y]instanceof l||t[L-1].greedy)continue;x=L-y,w=e.slice(k,C),$.index-=k}if($){g&&(m=$[1].length);S=(_=$.index+m)+($=$[0].slice(m)).length;var $,A=w.slice(0,_),T=w.slice(S),P=[y,x];A&&(++y,k+=A.length,P.push(A));var O=new l(c,d?r.tokenize($,d):$,v,$,f);if(P.push(O),T&&P.push(T),Array.prototype.splice.apply(t,P),1!=x&&r.matchGrammar(e,t,n,y,k,!0,c),o)break}else if(o)break}}}}},tokenize:function(e,t,n){var i=[e],a=t.rest;if(a){for(var o in a)t[o]=a[o];delete t.rest}return r.matchGrammar(e,i,t,0,0,!1),i},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var i,a=0;i=n[a++];)i(t)}}},i=r.Token=function(e,t,n,r,i){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length,this.greedy=!!i};if(i.stringify=function(e,t,n){if("string"==typeof e)return e;if("Array"===r.util.type(e))return e.map(function(n){return i.stringify(n,t,e)}).join("");var a={type:e.type,content:i.stringify(e.content,t,n),tag:"span",classes:["token",e.type],attributes:{},language:t,parent:n};if(e.alias){var o="Array"===r.util.type(e.alias)?e.alias:[e.alias];Array.prototype.push.apply(a.classes,o)}r.hooks.run("wrap",a);var s=Object.keys(a.attributes).map(function(e){return e+'="'+(a.attributes[e]||"").replace(/"/g,""")+'"'}).join(" ");return"<"+a.tag+' class="'+a.classes.join(" ")+'"'+(s?" "+s:"")+">"+a.content+""},!t.document)return t.addEventListener?(r.disableWorkerMessageHandler||t.addEventListener("message",function(e){var n=JSON.parse(e.data),i=n.language,a=n.code,o=n.immediateClose;t.postMessage(r.highlight(a,r.languages[i],i)),o&&t.close()},!1),t.Prism):t.Prism;var a=document.currentScript||[].slice.call(document.getElementsByTagName("script")).pop();return a&&(r.filename=a.src,r.manual||a.hasAttribute("data-manual")||("loading"!==document.readyState?window.requestAnimationFrame?window.requestAnimationFrame(r.highlightAll):window.setTimeout(r.highlightAll,16):document.addEventListener("DOMContentLoaded",r.highlightAll))),t.Prism}();e.exports&&(e.exports=n),void 0!==R&&(R.Prism=n),n.languages.markup={comment://,prolog:/<\?[\s\S]+?\?>/,doctype://i,cdata://i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/i,inside:{punctuation:[/^=/,{pattern:/(^|[^\\])["']/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i},n.languages.markup.tag.inside["attr-value"].inside.entity=n.languages.markup.entity,n.hooks.add("wrap",function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))}),n.languages.xml=n.languages.markup,n.languages.html=n.languages.markup,n.languages.mathml=n.languages.markup,n.languages.svg=n.languages.markup,n.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-]+?.*?(?:;|(?=\s*\{))/i,inside:{rule:/@[\w-]+/}},url:/url\((?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|.*?)\)/i,selector:/[^{}\s][^{};]*?(?=\s*\{)/,string:{pattern:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},property:/[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i,important:/\B!important\b/i,function:/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:]/},n.languages.css.atrule.inside.rest=n.util.clone(n.languages.css),n.languages.markup&&(n.languages.insertBefore("markup","tag",{style:{pattern:/()[\s\S]*?(?=<\/style>)/i,lookbehind:!0,inside:n.languages.css,alias:"language-css",greedy:!0}}),n.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:n.languages.markup.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:n.languages.css}},alias:"language-css"}},n.languages.markup.tag)),n.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/[a-z0-9_]+(?=\()/i,number:/\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)\b/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/},n.languages.javascript=n.languages.extend("clike",{keyword:/\b(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/,number:/\b-?(?:0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+|\d*\.?\d+(?:[Ee][+-]?\d+)?|NaN|Infinity)\b/,function:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*\()/i,operator:/-[-=]?|\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/}),n.languages.insertBefore("javascript","keyword",{regex:{pattern:/(^|[^/])\/(?!\/)(\[[^\]\r\n]+]|\\.|[^/\\\[\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})]))/,lookbehind:!0,greedy:!0},"function-variable":{pattern:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=\s*(?:function\b|(?:\([^()]*\)|[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/i,alias:"function"}}),n.languages.insertBefore("javascript","string",{"template-string":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,greedy:!0,inside:{interpolation:{pattern:/\$\{[^}]+\}/,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:n.languages.javascript}},string:/[\s\S]+/}}}),n.languages.markup&&n.languages.insertBefore("markup","tag",{script:{pattern:/()[\s\S]*?(?=<\/script>)/i,lookbehind:!0,inside:n.languages.javascript,alias:"language-javascript",greedy:!0}}),n.languages.js=n.languages.javascript,"undefined"!=typeof self&&self.Prism&&self.document&&document.querySelector&&(self.Prism.fileHighlight=function(){var e={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"};Array.prototype.slice.call(document.querySelectorAll("pre[data-src]")).forEach(function(t){for(var r,i=t.getAttribute("data-src"),a=t,o=/\blang(?:uage)?-(?!\*)(\w+)\b/i;a&&!o.test(a.className);)a=a.parentNode;if(a&&(r=(t.className.match(o)||[,""])[1]),!r){var s=(i.match(/\.(\w+)$/)||[,""])[1];r=e[s]||s}var l=document.createElement("code");l.className="language-"+r,t.textContent="",l.textContent="Loading…",t.appendChild(l);var c=new XMLHttpRequest;c.open("GET",i,!0),c.onreadystatechange=function(){4==c.readyState&&(c.status<400&&c.responseText?(l.textContent=c.responseText,n.highlightElement(l)):c.status>=400?l.textContent="✖ Error "+c.status+" while fetching file: "+c.statusText:l.textContent="✖ Error: File does not exist or is empty")},c.send(null)})},document.addEventListener("DOMContentLoaded",self.Prism.fileHighlight))});function I(e,t){var n=[],r={};return e.forEach(function(e){var i=e.level||1,a=i-1;i>t||(r[a]?r[a].children=(r[a].children||[]).concat(e):n.push(e),r[i]=e)}),n}var U={},D=/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,.\/:;<=>?@\[\]^`{|}~]/g;function Y(e){return e.toLowerCase()}function W(e){if("string"!=typeof e)return"";var t=e.trim().replace(/[A-Z]+/g,Y).replace(/<[^>\d]+>/g,"").replace(D,"").replace(/\s/g,"-").replace(/-+/g,"-").replace(/^(\d)/,"_$1"),n=U[t];return n=U.hasOwnProperty(t)?n+1:0,U[t]=n,n&&(t=t+"-"+n),t}W.clear=function(){U={}};function G(e,t){return''+t+''}var X=decodeURIComponent,V=encodeURIComponent;function Z(e){var t={};return(e=e.trim().replace(/^(\?|#|&)/,""))?(e.split("&").forEach(function(e){var n=e.replace(/\+/g," ").split("=");t[n[0]]=n[1]&&X(n[1])}),t):t}function J(e,t){void 0===t&&(t=[]);var n=[];for(var r in e)t.indexOf(r)>-1||n.push(e[r]?(V(r)+"="+V(e[r])).toLowerCase():V(r));return n.length?"?"+n.join("&"):""}function Q(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return te(e.join("/"))}var K=e(function(e){return/(:|(\/{2}))/g.test(e)}),ee=e(function(e){return/\/$/g.test(e)?e:(e=e.match(/(\S*\/)[^\/]+$/))?e[1]:""}),te=e(function(e){return e.replace(/^\/+/,"/").replace(/([^:])\/{2,}/g,"$1/")}),ne=e(function(e){return e.replace("#","?id=")}),re={},ie=0;function ae(e){void 0===e&&(e="");var t={};return e&&(e=e.replace(/:([\w-]+)=?([\w-]+)?/g,function(e,n,r){return t[n]=r&&r.replace(/"/g,"")||!0,""}).trim()),{str:e,config:t}}var oe={markdown:function(e){var t=this,n="docsify-get-"+ie++;return M(e,!1).then(function(e){document.getElementById(n).innerHTML=t.compile(e)}),'
        "},video:function(e,t){return'"},audio:function(e,t){return'"},code:function(e,t){var n=this,r="docsify-get-"+ie++,i=e.match(/\.(\w+)$/);return"md"===(i=t||i&&i[1])&&(i="markdown"),M(e,!1).then(function(e){document.getElementById(r).innerHTML=n.compile("```"+i+"\n"+e.replace(/`/g,"@qm@")+"\n```\n").replace(/@qm@/g,"`")}),'
        '+e+""},a.code=e.code=function(e,t){void 0===t&&(t="");return'
        '+B.highlight(e,B.languages[t]||B.languages.markup)+"
        "},a.link=e.link=function(e,a,o){void 0===a&&(a="");var s="",l=ae(a),c=l.str,u=l.config;if(a=c,u.include){K(e)||(e=Q(r,e));var h;if(u.type&&(h=oe[u.type]))return h.call(i,e,a);var p="code";return/\.(md|markdown)/.test(e)?p="markdown":/\.html?/.test(e)?p="iframe":/\.(mp4|ogg)/.test(e)?p="video":/\.mp3/.test(e)&&(p="audio"),oe[p].call(i,e,a)}return/:|(\/{2})/.test(e)||i.matchNotCompileLink(e)||u.ignore?s+=' target="'+t+'"':(e===i.config.homepage&&(e="README"),e=n.toURL(e,null,n.getCurrentPath())),u.target&&(s+=" target="+u.target),u.disabled&&(s+=" disabled",e="javascript:void(0)"),a&&(s+=' title="'+a+'"'),'"+o+""},a.paragraph=e.paragraph=function(e){return/^!>/.test(e)?A("tip",e):/^\?>/.test(e)?A("warn",e):"

        "+e+"

        "},a.image=e.image=function(e,t,n){var i=e,a="",o=ae(t);return t=o.str,o.config["no-zoom"]&&(a+=" data-no-zoom"),t&&(a+=' title="'+t+'"'),K(e)||(i=Q(r,e)),''+n+'"};var o=/^\[([ x])\] +/;return a.listitem=e.listitem=function(e){var t=o.exec(e);return t&&(e=e.replace(o,'")),""+e+"\n"},e.origin=a,e},se.prototype.sidebar=function(e,t){var n=this.router.getCurrentPath(),r="";if(e)r=(r=this.compile(e))&&r.match(/]*>([\s\S]+)<\/ul>/g)[0];else{var i=this.cacheTree[n]||I(this.toc,t);r=$(i,"
          "),this.cacheTree[n]=i}return r},se.prototype.subSidebar=function(e){if(e){var t=this.router.getCurrentPath(),n=this.cacheTree,r=this.toc;r[0]&&r[0].ignoreAllSubs&&r.splice(0),r[0]&&1===r[0].level&&r.shift();for(var i=0;i')}this.toc=[]},se.prototype.article=function(e){return this.compile(e)},se.prototype.cover=function(e){var t=this.toc.slice(),n=this.compile(e);return this.toc=t.slice(),n};var le=m.title;function ce(){var e=f("section.cover");if(e){var t=e.getBoundingClientRect().height;window.pageYOffset>=t||e.classList.contains("hidden")?C(v,"add","sticky"):C(v,"remove","sticky")}}function ue(e,t,n,r){var i,a=k(t=f(t),"a"),o=decodeURI(e.toURL(e.getCurrentPath()));return a.sort(function(e,t){return t.href.length-e.href.length}).forEach(function(e){var t=e.getAttribute("href"),r=n?e.parentNode:e;0!==o.indexOf(t)||i?C(r,"remove","active"):(i=e,C(r,"add","active"))}),r&&(m.title=i?i.innerText+" - "+le:le),i}var he=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.duration=t.duration||1e3,this.ease=t.easing||this._defaultEase,this.start=t.start,this.end=t.end,this.frame=null,this.next=null,this.isRunning=!1,this.events={},this.direction=this.startthis.end&&e>=this.next}[this.direction]}},{key:"_defaultEase",value:function(e,t,n,r){return(e/=r/2)<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t}}]),e}(),de={},ge=!1,fe=null,me=!0,ve=0;function be(e){if(me){for(var t,n=f(".sidebar"),r=k(".anchor"),i=y(n,".sidebar-nav"),a=y(n,"li.active"),o=document.documentElement,s=(o&&o.scrollTop||document.body.scrollTop)-ve,l=0,c=r.length;ls){t||(t=u);break}t=u}if(t){var h=de[ye(e,t.getAttribute("data-id"))];if(h&&h!==a&&(a&&a.classList.remove("active"),h.classList.add("active"),a=h,!ge&&v.classList.contains("sticky"))){var p=n.clientHeight,d=a.offsetTop+a.clientHeight+40,g=d-0=i.scrollTop&&d<=i.scrollTop+p?i.scrollTop:g?0:d-p;n.scrollTop=m}}}}function ye(e,t){return e+"?id="+t}function ke(e,t){if(t){var n=y("#"+t);n&&(r=n,fe&&fe.stop(),me=!1,fe=new pe({start:window.pageYOffset,end:r.getBoundingClientRect().top+window.pageYOffset,duration:500}).on("tick",function(e){return window.scrollTo(0,e)}).on("done",function(){me=!0,fe=null}).begin());var r,i=de[ye(e,t)],a=y(f(".sidebar"),"li.active");a&&a.classList.remove("active"),i&&i.classList.add("active")}}var we=m.scrollingElement||m.documentElement;function xe(){var e=k(".markdown-section>script").filter(function(e){return!/template/.test(e.type)})[0];if(!e)return!1;var t=e.innerText.trim();if(!t)return!1;setTimeout(function(e){window.__EXECUTE_RESULT__=new Function(t)()},0)}function _e(e,t,n){return t="function"==typeof n?n(t):"string"==typeof n?function(e){var t=[],n=0;return e.replace(q,function(r,i,a){t.push(e.substring(n,a-1)),n=a+=r.length+1,t.push(function(e){return("00"+("string"==typeof N[r]?e[N[r]]():N[r](e))).slice(-r.length)})}),n!==e.length&&t.push(e.substring(n)),function(e){for(var n="",r=0,i=e||new Date;r'):"")),t.coverpage&&(a+='
          \x3c!--cover--\x3e
          '),a+=function(e){var t='';return(p?t+"
          ":"
          "+t)+'
          \x3c!--main--\x3e
          '}(t),e._renderTo(i,a,!0)):e.rendered=!0;var s;t.mergeNavbar&&p?o=y(".sidebar"):(r.classList.add("app-nav"),t.repo||r.classList.add("no-badge")),_(o,r),t.themeColor&&(m.head.appendChild(w("div",(l=t.themeColor,"")).firstElementChild),function(e){if(!(window.CSS&&window.CSS.supports&&window.CSS.supports("(--v:red)"))){var t=k("style:not(.inserted),link");[].forEach.call(t,function(t){if("STYLE"===t.nodeName)j(t,e);else if("LINK"===t.nodeName){var n=t.getAttribute("href");if(!/\.css$/.test(n))return;M(n).then(function(t){var n=w("style",t);b.appendChild(n),j(n,e)})}})}}(t.themeColor));var l;e._updateRender(),C(v,"ready")}var Ce={};var Ee=function(e){this.config=e};Ee.prototype.getBasePath=function(){return this.config.basePath},Ee.prototype.getFile=function(e,t){void 0===e&&(e=this.getCurrentPath());var n=this.config,r=this.getBasePath(),i="string"!=typeof n.ext?".md":n.ext;e=n.alias?function e(t,n,r){var i=Object.keys(n).filter(function(e){return(Ce[e]||(Ce[e]=new RegExp("^"+e+"$"))).test(t)&&t!==r})[0];return i?e(t.replace(Ce[i],n[i]),n,t):t}(e,n.alias):e,a=e,o=i;var a,o;return e=(e=new RegExp("\\.("+o.replace(/^\./,"")+"|html)$","g").test(a)?a:/\/$/g.test(a)?a+"README"+o:""+a+o)==="/README"+i?n.homepage||e:e,e=K(e)?e:Q(r,e),t&&(e=e.replace(new RegExp("^"+r),"")),e},Ee.prototype.onchange=function(e){void 0===e&&(e=i),e()},Ee.prototype.getCurrentPath=function(){},Ee.prototype.normalize=function(){},Ee.prototype.parse=function(){},Ee.prototype.toURL=function(e,t,r){var i=r&&"#"===e[0],a=this.parse(ne(e));if(a.query=n({},a.query,t),e=(e=a.path+J(a.query)).replace(/\.md(\?)|\.md$/,"$1"),i){var o=r.indexOf("?");e=(o>0?r.substr(0,o):r)+e}return te("/"+e)};function $e(e){var t=location.href.indexOf("#");location.replace(location.href.slice(0,t>=0?t:0)+"#"+e)}var Ae=function(e){function t(t){e.call(this,t),this.mode="hash"}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.getBasePath=function(){var e=window.location.pathname||"",t=this.config.basePath;return/^(\/|https?:)/g.test(t)?t:te(e+"/"+t)},t.prototype.getCurrentPath=function(){var e=location.href,t=e.indexOf("#");return-1===t?"":e.slice(t+1)},t.prototype.onchange=function(e){void 0===e&&(e=i),S("hashchange",e)},t.prototype.normalize=function(){var e=this.getCurrentPath();if("/"===(e=ne(e)).charAt(0))return $e(e);$e("/"+e)},t.prototype.parse=function(e){void 0===e&&(e=location.href);var t="",n=e.indexOf("#");n>=0&&(e=e.slice(n+1));var r=e.indexOf("?");return r>=0&&(t=e.slice(r+1),e=e.slice(0,r)),{path:e,file:this.getFile(e,!0),query:Z(t)}},t.prototype.toURL=function(t,n,r){return"#"+e.prototype.toURL.call(this,t,n,r)},t}(Ee),Te=function(e){function t(t){e.call(this,t),this.mode="history"}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.getCurrentPath=function(){var e=this.getBasePath(),t=window.location.pathname;return e&&0===t.indexOf(e)&&(t=t.slice(e.length)),(t||"/")+window.location.search+window.location.hash},t.prototype.onchange=function(e){void 0===e&&(e=i),S("click",function(t){var n="A"===t.target.tagName?t.target:t.target.parentNode;if("A"===n.tagName&&!/_blank/.test(n.target)){t.preventDefault();var r=n.href;window.history.pushState({key:r},"",r),e()}}),S("popstate",e)},t.prototype.parse=function(e){void 0===e&&(e=location.href);var t="",n=e.indexOf("?");n>=0&&(t=e.slice(n+1),e=e.slice(0,n));var r=Q(location.origin),i=e.indexOf(r);return i>-1&&(e=e.slice(i+r.length)),{path:e,file:this.getFile(e),query:Z(t)}},t}(Ee);var Pe={};function Oe(e){e.router.normalize(),e.route=e.router.parse(),v.setAttribute("data-page",e.route.file)}function Fe(e){!function(e,t){var n=function(e){return v.classList.toggle("close")};S(e=f(e),"click",function(e){e.stopPropagation(),n()}),p&&S(v,"click",function(e){return v.classList.contains("close")&&n()})}("button.sidebar-toggle",e.router),t=".sidebar",e.router,S(t=f(t),"click",function(e){var t=e.target;"A"===t.nodeName&&t.nextSibling&&t.nextSibling.classList.contains("app-sub-sidebar")&&C(t.parentNode,"collapse")});var t;e.config.coverpage?!p&&S("scroll",ce):v.classList.add("sticky")}function Me(e,t,n,r,i,a){e=a?e:e.replace(/\/$/,""),(e=ee(e))&&M(i.router.getFile(e+n)+t,!1,i.config.requestHeaders).then(r,function(a){return Me(e,t,n,r,i)})}var je=Object.freeze({cached:e,hyphenate:t,merge:n,isPrimitive:r,noop:i,isFn:a,inBrowser:h,isMobile:p,supportsPushState:d,parseQuery:Z,stringifyQuery:J,getPath:Q,isAbsolutePath:K,getParentPath:ee,cleanPath:te,replaceSlug:ne});function qe(){this._init()}var Ne=qe.prototype;Ne._init=function(){this.config=o||{},(e=this)._hooks={},e._lifecycle={},["init","mounted","beforeEach","afterEach","doneEach","ready"].forEach(function(t){var n=e._hooks[t]=[];e._lifecycle[t]=function(e){return n.push(e)}});var e;[].concat((t=this).config.plugins).forEach(function(e){return a(e)&&e(t._lifecycle,t)});var t;u(this,"init"),function(e){var t,n=e.config;t="history"===(n.routerMode||"hash")&&d?new Te(n):new Ae(n),e.router=t,Oe(e),Pe=e.route,t.onchange(function(t){Oe(e),e._updateRender(),Pe.path!==e.route.path?(e.$fetch(),Pe=e.route):e.$resetEvents()})}(this),Le(this),Fe(this),function(e){var t=e.config.loadSidebar;if(e.rendered){var n=ue(e.router,".sidebar-nav",!0,!0);t&&n&&(n.parentNode.innerHTML+=window.__SUB_SIDEBAR__),e._bindEventOnRendered(n),e.$resetEvents(),u(e,"doneEach"),u(e,"ready")}else e.$fetch(function(t){return u(e,"ready")})}(this),u(this,"mounted")};Ne.route={};(Re=Ne)._renderTo=function(e,t,n){var r=f(e);r&&(r[n?"outerHTML":"innerHTML"]=t)},Re._renderSidebar=function(e){var t=this.config,n=t.maxLevel,r=t.subMaxLevel,i=t.loadSidebar;this._renderTo(".sidebar-nav",this.compiler.sidebar(e,n));var a=ue(this.router,".sidebar-nav",!0,!0);i&&a?a.parentNode.innerHTML+=this.compiler.subSidebar(r)||"":this.compiler.subSidebar(),this._bindEventOnRendered(a)},Re._bindEventOnRendered=function(e){var t=this.config,n=t.autoHeader,r=t.auto2top;if(function(e){var t=y(".cover.show");ve=t?t.offsetHeight:0;for(var n=f(".sidebar"),r=k(n,"li"),i=0,a=r.length;i([^<]*?)

          $');if(i){if("color"===i[2])n.style.background=i[1]+(i[3]||"");else{var a=i[1];C(n,"add","has-mask"),K(i[1])||(a=Q(this.router.getBasePath(),i[1])),n.style.backgroundImage="url("+a+")",n.style.backgroundSize="cover",n.style.backgroundPosition="center center"}r=r.replace(i[0],"")}this._renderTo(".cover-main",r),ce()}else C(n,"remove","show")},Re._updateRender=function(){!function(e){var t=f(".app-name-link"),n=e.config.nameLink,i=e.route.path;if(t)if(r(e.config.nameLink))t.setAttribute("href",n);else if("object"==typeof n){var a=Object.keys(n).filter(function(e){return i.indexOf(e)>-1})[0];t.setAttribute("href",n[a])}}(this)};var Re;!function(e){var t;e._fetch=function(e){var n=this;void 0===e&&(e=i);var r=this.route,a=r.path,o=J(r.query,["id"]),s=this.config,l=s.loadNavbar,c=s.loadSidebar,u=s.requestHeaders;t&&t.abort&&t.abort(),t=M(this.router.getFile(a)+o,!0,u),this.isHTML=/\.html$/g.test(a);var h=function(){if(!c)return e();Me(a,o,c,function(t){n._renderSidebar(t),e()},n,!0)};t.then(function(e,t){n._renderMain(e,t),h()},function(e){n._renderMain(null),h()}),l&&Me(a,o,l,function(e){return n._renderNav(e)},this,!0)},e._fetchCover=function(){var e=this,t=this.config,n=t.coverpage,r=t.requestHeaders,i=this.route.query,a=ee(this.route.path);if(n){var o=null,s=this.route.path;if("string"==typeof n)"/"===s&&(o=n);else if(Array.isArray(n))o=n.indexOf(s)>-1&&"_coverpage";else{var l=n[s];o=!0===l?"_coverpage":l}var c=!!o&&this.config.onlyCover;return o?(o=this.router.getFile(a+o),this.coverIsHTML=/\.html$/g.test(o),M(o+J(i,["id"]),!1,r).then(function(t){return e._renderCover(t,c)})):this._renderCover(null,c),c}},e.$fetch=function(e){var t=this;void 0===e&&(e=i);var n=function(){u(t,"doneEach"),e()};this._fetchCover()?n():this._fetch(function(e){t.$resetEvents(),n()})}}(Ne),Ne.$resetEvents=function(){ke(this.route.path,this.route.query.id),ue(this.router,"nav")};window.Docsify={util:je,dom:E,get:M,slugify:W},window.DocsifyCompiler=se,window.marked=z,window.Prism=B,qe.version="4.6.0",function(e){var t=document.readyState;if("complete"===t||"interactive"===t)return setTimeout(e,0);document.addEventListener("DOMContentLoaded",e)}(function(e){return new qe})}(); diff --git a/lib/plugins/disqus.js b/lib/plugins/disqus.js deleted file mode 100644 index 943d506..0000000 --- a/lib/plugins/disqus.js +++ /dev/null @@ -1,54 +0,0 @@ -(function () { -var fixedPath = location.href.replace('/-/', '/#/'); -if (fixedPath !== location.href) { - location.href = fixedPath; -} - -function install (hook, vm) { - var dom = Docsify.dom; - var disqus = vm.config.disqus; - if (!disqus) { - throw Error('$docsify.disqus is required') - } - - hook.init(function (_) { - var script = dom.create('script'); - - script.async = true; - script.src = "https://" + disqus + ".disqus.com/embed.js"; - script.setAttribute('data-timestamp', +new Date()); - dom.appendTo(dom.body, script); - }); - - hook.mounted(function (_) { - var div = dom.create('div'); - div.id = 'disqus_thread'; - var main = dom.getNode('#main'); - div.style = "width: " + (main.clientWidth) + "px; margin: 0 auto 20px;"; - dom.appendTo(dom.find('.content'), div); - - // eslint-disable-next-line - window.disqus_config = function() { - this.page.url = location.origin + '/-' + vm.route.path; - this.page.identifier = vm.route.path; - this.page.title = document.title; - }; - }); - - hook.doneEach(function (_) { - if (typeof window.DISQUS !== 'undefined') { - window.DISQUS.reset({ - reload: true, - config: function () { - this.page.url = location.origin + '/-' + vm.route.path; - this.page.identifier = vm.route.path; - this.page.title = document.title; - } - }); - } - }); -} - -$docsify.plugins = [].concat(install, $docsify.plugins); - -}()); diff --git a/lib/plugins/disqus.min.js b/lib/plugins/disqus.min.js deleted file mode 100644 index 4388908..0000000 --- a/lib/plugins/disqus.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(){var i=location.href.replace("/-/","/#/");i!==location.href&&(location.href=i);$docsify.plugins=[].concat(function(i,t){var e=Docsify.dom,o=t.config.disqus;if(!o)throw Error("$docsify.disqus is required");i.init(function(i){var t=e.create("script");t.async=!0,t.src="https://"+o+".disqus.com/embed.js",t.setAttribute("data-timestamp",+new Date),e.appendTo(e.body,t)}),i.mounted(function(i){var o=e.create("div");o.id="disqus_thread";var n=e.getNode("#main");o.style="width: "+n.clientWidth+"px; margin: 0 auto 20px;",e.appendTo(e.find(".content"),o),window.disqus_config=function(){this.page.url=location.origin+"/-"+t.route.path,this.page.identifier=t.route.path,this.page.title=document.title}}),i.doneEach(function(i){void 0!==window.DISQUS&&window.DISQUS.reset({reload:!0,config:function(){this.page.url=location.origin+"/-"+t.route.path,this.page.identifier=t.route.path,this.page.title=document.title}})})},$docsify.plugins)}(); diff --git a/lib/plugins/emoji.js b/lib/plugins/emoji.js deleted file mode 100644 index 8aac727..0000000 --- a/lib/plugins/emoji.js +++ /dev/null @@ -1,903 +0,0 @@ -(function () { -var AllGithubEmoji = [ - '+1', - '100', - '1234', - '8ball', - 'a', - 'ab', - 'abc', - 'abcd', - 'accept', - 'aerial_tramway', - 'airplane', - 'alarm_clock', - 'alien', - 'ambulance', - 'anchor', - 'angel', - 'anger', - 'angry', - 'anguished', - 'ant', - 'apple', - 'aquarius', - 'aries', - 'arrow_backward', - 'arrow_double_down', - 'arrow_double_up', - 'arrow_down', - 'arrow_down_small', - 'arrow_forward', - 'arrow_heading_down', - 'arrow_heading_up', - 'arrow_left', - 'arrow_lower_left', - 'arrow_lower_right', - 'arrow_right', - 'arrow_right_hook', - 'arrow_up', - 'arrow_up_down', - 'arrow_up_small', - 'arrow_upper_left', - 'arrow_upper_right', - 'arrows_clockwise', - 'arrows_counterclockwise', - 'art', - 'articulated_lorry', - 'astonished', - 'athletic_shoe', - 'atm', - 'b', - 'baby', - 'baby_bottle', - 'baby_chick', - 'baby_symbol', - 'back', - 'baggage_claim', - 'balloon', - 'ballot_box_with_check', - 'bamboo', - 'banana', - 'bangbang', - 'bank', - 'bar_chart', - 'barber', - 'baseball', - 'basketball', - 'bath', - 'bathtub', - 'battery', - 'bear', - 'bee', - 'beer', - 'beers', - 'beetle', - 'beginner', - 'bell', - 'bento', - 'bicyclist', - 'bike', - 'bikini', - 'bird', - 'birthday', - 'black_circle', - 'black_joker', - 'black_large_square', - 'black_medium_small_square', - 'black_medium_square', - 'black_nib', - 'black_small_square', - 'black_square_button', - 'blossom', - 'blowfish', - 'blue_book', - 'blue_car', - 'blue_heart', - 'blush', - 'boar', - 'boat', - 'bomb', - 'book', - 'bookmark', - 'bookmark_tabs', - 'books', - 'boom', - 'boot', - 'bouquet', - 'bow', - 'bowling', - 'bowtie', - 'boy', - 'bread', - 'bride_with_veil', - 'bridge_at_night', - 'briefcase', - 'broken_heart', - 'bug', - 'bulb', - 'bullettrain_front', - 'bullettrain_side', - 'bus', - 'busstop', - 'bust_in_silhouette', - 'busts_in_silhouette', - 'cactus', - 'cake', - 'calendar', - 'calling', - 'camel', - 'camera', - 'cancer', - 'candy', - 'capital_abcd', - 'capricorn', - 'car', - 'card_index', - 'carousel_horse', - 'cat', - 'cat2', - 'cd', - 'chart', - 'chart_with_downwards_trend', - 'chart_with_upwards_trend', - 'checkered_flag', - 'cherries', - 'cherry_blossom', - 'chestnut', - 'chicken', - 'children_crossing', - 'chocolate_bar', - 'christmas_tree', - 'church', - 'cinema', - 'circus_tent', - 'city_sunrise', - 'city_sunset', - 'cl', - 'clap', - 'clapper', - 'clipboard', - 'clock1', - 'clock10', - 'clock1030', - 'clock11', - 'clock1130', - 'clock12', - 'clock1230', - 'clock130', - 'clock2', - 'clock230', - 'clock3', - 'clock330', - 'clock4', - 'clock430', - 'clock5', - 'clock530', - 'clock6', - 'clock630', - 'clock7', - 'clock730', - 'clock8', - 'clock830', - 'clock9', - 'clock930', - 'closed_book', - 'closed_lock_with_key', - 'closed_umbrella', - 'cloud', - 'clubs', - 'cn', - 'cocktail', - 'coffee', - 'cold_sweat', - 'collision', - 'computer', - 'confetti_ball', - 'confounded', - 'confused', - 'congratulations', - 'construction', - 'construction_worker', - 'convenience_store', - 'cookie', - 'cool', - 'cop', - 'copyright', - 'corn', - 'couple', - 'couple_with_heart', - 'couplekiss', - 'cow', - 'cow2', - 'credit_card', - 'crescent_moon', - 'crocodile', - 'crossed_flags', - 'crown', - 'cry', - 'crying_cat_face', - 'crystal_ball', - 'cupid', - 'curly_loop', - 'currency_exchange', - 'curry', - 'custard', - 'customs', - 'cyclone', - 'dancer', - 'dancers', - 'dango', - 'dart', - 'dash', - 'date', - 'de', - 'deciduous_tree', - 'department_store', - 'diamond_shape_with_a_dot_inside', - 'diamonds', - 'disappointed', - 'disappointed_relieved', - 'dizzy', - 'dizzy_face', - 'do_not_litter', - 'dog', - 'dog2', - 'dollar', - 'dolls', - 'dolphin', - 'door', - 'doughnut', - 'dragon', - 'dragon_face', - 'dress', - 'dromedary_camel', - 'droplet', - 'dvd', - 'e-mail', - 'ear', - 'ear_of_rice', - 'earth_africa', - 'earth_americas', - 'earth_asia', - 'egg', - 'eggplant', - 'eight', - 'eight_pointed_black_star', - 'eight_spoked_asterisk', - 'electric_plug', - 'elephant', - 'email', - 'end', - 'envelope', - 'envelope_with_arrow', - 'es', - 'euro', - 'european_castle', - 'european_post_office', - 'evergreen_tree', - 'exclamation', - 'expressionless', - 'eyeglasses', - 'eyes', - 'facepunch', - 'factory', - 'fallen_leaf', - 'family', - 'fast_forward', - 'fax', - 'fearful', - 'feelsgood', - 'feet', - 'ferris_wheel', - 'file_folder', - 'finnadie', - 'fire', - 'fire_engine', - 'fireworks', - 'first_quarter_moon', - 'first_quarter_moon_with_face', - 'fish', - 'fish_cake', - 'fishing_pole_and_fish', - 'fist', - 'five', - 'flags', - 'flashlight', - 'flipper', - 'floppy_disk', - 'flower_playing_cards', - 'flushed', - 'foggy', - 'football', - 'footprints', - 'fork_and_knife', - 'fountain', - 'four', - 'four_leaf_clover', - 'fr', - 'free', - 'fried_shrimp', - 'fries', - 'frog', - 'frowning', - 'fu', - 'fuelpump', - 'full_moon', - 'full_moon_with_face', - 'game_die', - 'gb', - 'gem', - 'gemini', - 'ghost', - 'gift', - 'gift_heart', - 'girl', - 'globe_with_meridians', - 'goat', - 'goberserk', - 'godmode', - 'golf', - 'grapes', - 'green_apple', - 'green_book', - 'green_heart', - 'grey_exclamation', - 'grey_question', - 'grimacing', - 'grin', - 'grinning', - 'guardsman', - 'guitar', - 'gun', - 'haircut', - 'hamburger', - 'hammer', - 'hamster', - 'hand', - 'handbag', - 'hankey', - 'hash', - 'hatched_chick', - 'hatching_chick', - 'headphones', - 'hear_no_evil', - 'heart', - 'heart_decoration', - 'heart_eyes', - 'heart_eyes_cat', - 'heartbeat', - 'heartpulse', - 'hearts', - 'heavy_check_mark', - 'heavy_division_sign', - 'heavy_dollar_sign', - 'heavy_exclamation_mark', - 'heavy_minus_sign', - 'heavy_multiplication_x', - 'heavy_plus_sign', - 'helicopter', - 'herb', - 'hibiscus', - 'high_brightness', - 'high_heel', - 'hocho', - 'honey_pot', - 'honeybee', - 'horse', - 'horse_racing', - 'hospital', - 'hotel', - 'hotsprings', - 'hourglass', - 'hourglass_flowing_sand', - 'house', - 'house_with_garden', - 'hurtrealbad', - 'hushed', - 'ice_cream', - 'icecream', - 'id', - 'ideograph_advantage', - 'imp', - 'inbox_tray', - 'incoming_envelope', - 'information_desk_person', - 'information_source', - 'innocent', - 'interrobang', - 'iphone', - 'it', - 'izakaya_lantern', - 'jack_o_lantern', - 'japan', - 'japanese_castle', - 'japanese_goblin', - 'japanese_ogre', - 'jeans', - 'joy', - 'joy_cat', - 'jp', - 'key', - 'keycap_ten', - 'kimono', - 'kiss', - 'kissing', - 'kissing_cat', - 'kissing_closed_eyes', - 'kissing_heart', - 'kissing_smiling_eyes', - 'koala', - 'koko', - 'kr', - 'lantern', - 'large_blue_circle', - 'large_blue_diamond', - 'large_orange_diamond', - 'last_quarter_moon', - 'last_quarter_moon_with_face', - 'laughing', - 'leaves', - 'ledger', - 'left_luggage', - 'left_right_arrow', - 'leftwards_arrow_with_hook', - 'lemon', - 'leo', - 'leopard', - 'libra', - 'light_rail', - 'link', - 'lips', - 'lipstick', - 'lock', - 'lock_with_ink_pen', - 'lollipop', - 'loop', - 'loud_sound', - 'loudspeaker', - 'love_hotel', - 'love_letter', - 'low_brightness', - 'm', - 'mag', - 'mag_right', - 'mahjong', - 'mailbox', - 'mailbox_closed', - 'mailbox_with_mail', - 'mailbox_with_no_mail', - 'man', - 'man_with_gua_pi_mao', - 'man_with_turban', - 'mans_shoe', - 'maple_leaf', - 'mask', - 'massage', - 'meat_on_bone', - 'mega', - 'melon', - 'memo', - 'mens', - 'metal', - 'metro', - 'microphone', - 'microscope', - 'milky_way', - 'minibus', - 'minidisc', - 'mobile_phone_off', - 'money_with_wings', - 'moneybag', - 'monkey', - 'monkey_face', - 'monorail', - 'moon', - 'mortar_board', - 'mount_fuji', - 'mountain_bicyclist', - 'mountain_cableway', - 'mountain_railway', - 'mouse', - 'mouse2', - 'movie_camera', - 'moyai', - 'muscle', - 'mushroom', - 'musical_keyboard', - 'musical_note', - 'musical_score', - 'mute', - 'nail_care', - 'name_badge', - 'neckbeard', - 'necktie', - 'negative_squared_cross_mark', - 'neutral_face', - 'new', - 'new_moon', - 'new_moon_with_face', - 'newspaper', - 'ng', - 'night_with_stars', - 'nine', - 'no_bell', - 'no_bicycles', - 'no_entry', - 'no_entry_sign', - 'no_good', - 'no_mobile_phones', - 'no_mouth', - 'no_pedestrians', - 'no_smoking', - 'non-potable_water', - 'nose', - 'notebook', - 'notebook_with_decorative_cover', - 'notes', - 'nut_and_bolt', - 'o', - 'o2', - 'ocean', - 'octocat', - 'octopus', - 'oden', - 'office', - 'ok', - 'ok_hand', - 'ok_woman', - 'older_man', - 'older_woman', - 'on', - 'oncoming_automobile', - 'oncoming_bus', - 'oncoming_police_car', - 'oncoming_taxi', - 'one', - 'open_book', - 'open_file_folder', - 'open_hands', - 'open_mouth', - 'ophiuchus', - 'orange_book', - 'outbox_tray', - 'ox', - 'package', - 'page_facing_up', - 'page_with_curl', - 'pager', - 'palm_tree', - 'panda_face', - 'paperclip', - 'parking', - 'part_alternation_mark', - 'partly_sunny', - 'passport_control', - 'paw_prints', - 'peach', - 'pear', - 'pencil', - 'pencil2', - 'penguin', - 'pensive', - 'performing_arts', - 'persevere', - 'person_frowning', - 'person_with_blond_hair', - 'person_with_pouting_face', - 'phone', - 'pig', - 'pig2', - 'pig_nose', - 'pill', - 'pineapple', - 'pisces', - 'pizza', - 'point_down', - 'point_left', - 'point_right', - 'point_up', - 'point_up_2', - 'police_car', - 'poodle', - 'poop', - 'post_office', - 'postal_horn', - 'postbox', - 'potable_water', - 'pouch', - 'poultry_leg', - 'pound', - 'pouting_cat', - 'pray', - 'princess', - 'punch', - 'purple_heart', - 'purse', - 'pushpin', - 'put_litter_in_its_place', - 'question', - 'rabbit', - 'rabbit2', - 'racehorse', - 'radio', - 'radio_button', - 'rage', - 'rage1', - 'rage2', - 'rage3', - 'rage4', - 'railway_car', - 'rainbow', - 'raised_hand', - 'raised_hands', - 'raising_hand', - 'ram', - 'ramen', - 'rat', - 'recycle', - 'red_car', - 'red_circle', - 'registered', - 'relaxed', - 'relieved', - 'repeat', - 'repeat_one', - 'restroom', - 'revolving_hearts', - 'rewind', - 'ribbon', - 'rice', - 'rice_ball', - 'rice_cracker', - 'rice_scene', - 'ring', - 'rocket', - 'roller_coaster', - 'rooster', - 'rose', - 'rotating_light', - 'round_pushpin', - 'rowboat', - 'ru', - 'rugby_football', - 'runner', - 'running', - 'running_shirt_with_sash', - 'sa', - 'sagittarius', - 'sailboat', - 'sake', - 'sandal', - 'santa', - 'satellite', - 'satisfied', - 'saxophone', - 'school', - 'school_satchel', - 'scissors', - 'scorpius', - 'scream', - 'scream_cat', - 'scroll', - 'seat', - 'secret', - 'see_no_evil', - 'seedling', - 'seven', - 'shaved_ice', - 'sheep', - 'shell', - 'ship', - 'shipit', - 'shirt', - 'shit', - 'shoe', - 'shower', - 'signal_strength', - 'six', - 'six_pointed_star', - 'ski', - 'skull', - 'sleeping', - 'sleepy', - 'slot_machine', - 'small_blue_diamond', - 'small_orange_diamond', - 'small_red_triangle', - 'small_red_triangle_down', - 'smile', - 'smile_cat', - 'smiley', - 'smiley_cat', - 'smiling_imp', - 'smirk', - 'smirk_cat', - 'smoking', - 'snail', - 'snake', - 'snowboarder', - 'snowflake', - 'snowman', - 'sob', - 'soccer', - 'soon', - 'sos', - 'sound', - 'space_invader', - 'spades', - 'spaghetti', - 'sparkle', - 'sparkler', - 'sparkles', - 'sparkling_heart', - 'speak_no_evil', - 'speaker', - 'speech_balloon', - 'speedboat', - 'squirrel', - 'star', - 'star2', - 'stars', - 'station', - 'statue_of_liberty', - 'steam_locomotive', - 'stew', - 'straight_ruler', - 'strawberry', - 'stuck_out_tongue', - 'stuck_out_tongue_closed_eyes', - 'stuck_out_tongue_winking_eye', - 'sun_with_face', - 'sunflower', - 'sunglasses', - 'sunny', - 'sunrise', - 'sunrise_over_mountains', - 'surfer', - 'sushi', - 'suspect', - 'suspension_railway', - 'sweat', - 'sweat_drops', - 'sweat_smile', - 'sweet_potato', - 'swimmer', - 'symbols', - 'syringe', - 'tada', - 'tanabata_tree', - 'tangerine', - 'taurus', - 'taxi', - 'tea', - 'telephone', - 'telephone_receiver', - 'telescope', - 'tennis', - 'tent', - 'thought_balloon', - 'three', - 'thumbsdown', - 'thumbsup', - 'ticket', - 'tiger', - 'tiger2', - 'tired_face', - 'tm', - 'toilet', - 'tokyo_tower', - 'tomato', - 'tongue', - 'top', - 'tophat', - 'tractor', - 'traffic_light', - 'train', - 'train2', - 'tram', - 'triangular_flag_on_post', - 'triangular_ruler', - 'trident', - 'triumph', - 'trolleybus', - 'trollface', - 'trophy', - 'tropical_drink', - 'tropical_fish', - 'truck', - 'trumpet', - 'tshirt', - 'tulip', - 'turtle', - 'tv', - 'twisted_rightwards_arrows', - 'two', - 'two_hearts', - 'two_men_holding_hands', - 'two_women_holding_hands', - 'u5272', - 'u5408', - 'u55b6', - 'u6307', - 'u6708', - 'u6709', - 'u6e80', - 'u7121', - 'u7533', - 'u7981', - 'u7a7a', - 'uk', - 'umbrella', - 'unamused', - 'underage', - 'unlock', - 'up', - 'us', - 'v', - 'vertical_traffic_light', - 'vhs', - 'vibration_mode', - 'video_camera', - 'video_game', - 'violin', - 'virgo', - 'volcano', - 'vs', - 'walking', - 'waning_crescent_moon', - 'waning_gibbous_moon', - 'warning', - 'watch', - 'water_buffalo', - 'watermelon', - 'wave', - 'wavy_dash', - 'waxing_crescent_moon', - 'waxing_gibbous_moon', - 'wc', - 'weary', - 'wedding', - 'whale', - 'whale2', - 'wheelchair', - 'white_check_mark', - 'white_circle', - 'white_flower', - 'white_large_square', - 'white_medium_small_square', - 'white_medium_square', - 'white_small_square', - 'white_square_button', - 'wind_chime', - 'wine_glass', - 'wink', - 'wolf', - 'woman', - 'womans_clothes', - 'womans_hat', - 'womens', - 'worried', - 'wrench', - 'x', - 'yellow_heart', - 'yen', - 'yum', - 'zap', - 'zero', - 'zzz' -]; - -// emoji from All-Github-Emoji-Icons -// https://github.com/scotch-io/All-Github-Emoji-Icons -window.emojify = function (match, $1) { - return AllGithubEmoji.indexOf($1) === -1 - ? match - : '' +
-      $1 +
-      '' -}; - -}()); diff --git a/lib/plugins/emoji.min.js b/lib/plugins/emoji.min.js deleted file mode 100644 index 41cc6a6..0000000 --- a/lib/plugins/emoji.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(){var e=["+1","100","1234","8ball","a","ab","abc","abcd","accept","aerial_tramway","airplane","alarm_clock","alien","ambulance","anchor","angel","anger","angry","anguished","ant","apple","aquarius","aries","arrow_backward","arrow_double_down","arrow_double_up","arrow_down","arrow_down_small","arrow_forward","arrow_heading_down","arrow_heading_up","arrow_left","arrow_lower_left","arrow_lower_right","arrow_right","arrow_right_hook","arrow_up","arrow_up_down","arrow_up_small","arrow_upper_left","arrow_upper_right","arrows_clockwise","arrows_counterclockwise","art","articulated_lorry","astonished","athletic_shoe","atm","b","baby","baby_bottle","baby_chick","baby_symbol","back","baggage_claim","balloon","ballot_box_with_check","bamboo","banana","bangbang","bank","bar_chart","barber","baseball","basketball","bath","bathtub","battery","bear","bee","beer","beers","beetle","beginner","bell","bento","bicyclist","bike","bikini","bird","birthday","black_circle","black_joker","black_large_square","black_medium_small_square","black_medium_square","black_nib","black_small_square","black_square_button","blossom","blowfish","blue_book","blue_car","blue_heart","blush","boar","boat","bomb","book","bookmark","bookmark_tabs","books","boom","boot","bouquet","bow","bowling","bowtie","boy","bread","bride_with_veil","bridge_at_night","briefcase","broken_heart","bug","bulb","bullettrain_front","bullettrain_side","bus","busstop","bust_in_silhouette","busts_in_silhouette","cactus","cake","calendar","calling","camel","camera","cancer","candy","capital_abcd","capricorn","car","card_index","carousel_horse","cat","cat2","cd","chart","chart_with_downwards_trend","chart_with_upwards_trend","checkered_flag","cherries","cherry_blossom","chestnut","chicken","children_crossing","chocolate_bar","christmas_tree","church","cinema","circus_tent","city_sunrise","city_sunset","cl","clap","clapper","clipboard","clock1","clock10","clock1030","clock11","clock1130","clock12","clock1230","clock130","clock2","clock230","clock3","clock330","clock4","clock430","clock5","clock530","clock6","clock630","clock7","clock730","clock8","clock830","clock9","clock930","closed_book","closed_lock_with_key","closed_umbrella","cloud","clubs","cn","cocktail","coffee","cold_sweat","collision","computer","confetti_ball","confounded","confused","congratulations","construction","construction_worker","convenience_store","cookie","cool","cop","copyright","corn","couple","couple_with_heart","couplekiss","cow","cow2","credit_card","crescent_moon","crocodile","crossed_flags","crown","cry","crying_cat_face","crystal_ball","cupid","curly_loop","currency_exchange","curry","custard","customs","cyclone","dancer","dancers","dango","dart","dash","date","de","deciduous_tree","department_store","diamond_shape_with_a_dot_inside","diamonds","disappointed","disappointed_relieved","dizzy","dizzy_face","do_not_litter","dog","dog2","dollar","dolls","dolphin","door","doughnut","dragon","dragon_face","dress","dromedary_camel","droplet","dvd","e-mail","ear","ear_of_rice","earth_africa","earth_americas","earth_asia","egg","eggplant","eight","eight_pointed_black_star","eight_spoked_asterisk","electric_plug","elephant","email","end","envelope","envelope_with_arrow","es","euro","european_castle","european_post_office","evergreen_tree","exclamation","expressionless","eyeglasses","eyes","facepunch","factory","fallen_leaf","family","fast_forward","fax","fearful","feelsgood","feet","ferris_wheel","file_folder","finnadie","fire","fire_engine","fireworks","first_quarter_moon","first_quarter_moon_with_face","fish","fish_cake","fishing_pole_and_fish","fist","five","flags","flashlight","flipper","floppy_disk","flower_playing_cards","flushed","foggy","football","footprints","fork_and_knife","fountain","four","four_leaf_clover","fr","free","fried_shrimp","fries","frog","frowning","fu","fuelpump","full_moon","full_moon_with_face","game_die","gb","gem","gemini","ghost","gift","gift_heart","girl","globe_with_meridians","goat","goberserk","godmode","golf","grapes","green_apple","green_book","green_heart","grey_exclamation","grey_question","grimacing","grin","grinning","guardsman","guitar","gun","haircut","hamburger","hammer","hamster","hand","handbag","hankey","hash","hatched_chick","hatching_chick","headphones","hear_no_evil","heart","heart_decoration","heart_eyes","heart_eyes_cat","heartbeat","heartpulse","hearts","heavy_check_mark","heavy_division_sign","heavy_dollar_sign","heavy_exclamation_mark","heavy_minus_sign","heavy_multiplication_x","heavy_plus_sign","helicopter","herb","hibiscus","high_brightness","high_heel","hocho","honey_pot","honeybee","horse","horse_racing","hospital","hotel","hotsprings","hourglass","hourglass_flowing_sand","house","house_with_garden","hurtrealbad","hushed","ice_cream","icecream","id","ideograph_advantage","imp","inbox_tray","incoming_envelope","information_desk_person","information_source","innocent","interrobang","iphone","it","izakaya_lantern","jack_o_lantern","japan","japanese_castle","japanese_goblin","japanese_ogre","jeans","joy","joy_cat","jp","key","keycap_ten","kimono","kiss","kissing","kissing_cat","kissing_closed_eyes","kissing_heart","kissing_smiling_eyes","koala","koko","kr","lantern","large_blue_circle","large_blue_diamond","large_orange_diamond","last_quarter_moon","last_quarter_moon_with_face","laughing","leaves","ledger","left_luggage","left_right_arrow","leftwards_arrow_with_hook","lemon","leo","leopard","libra","light_rail","link","lips","lipstick","lock","lock_with_ink_pen","lollipop","loop","loud_sound","loudspeaker","love_hotel","love_letter","low_brightness","m","mag","mag_right","mahjong","mailbox","mailbox_closed","mailbox_with_mail","mailbox_with_no_mail","man","man_with_gua_pi_mao","man_with_turban","mans_shoe","maple_leaf","mask","massage","meat_on_bone","mega","melon","memo","mens","metal","metro","microphone","microscope","milky_way","minibus","minidisc","mobile_phone_off","money_with_wings","moneybag","monkey","monkey_face","monorail","moon","mortar_board","mount_fuji","mountain_bicyclist","mountain_cableway","mountain_railway","mouse","mouse2","movie_camera","moyai","muscle","mushroom","musical_keyboard","musical_note","musical_score","mute","nail_care","name_badge","neckbeard","necktie","negative_squared_cross_mark","neutral_face","new","new_moon","new_moon_with_face","newspaper","ng","night_with_stars","nine","no_bell","no_bicycles","no_entry","no_entry_sign","no_good","no_mobile_phones","no_mouth","no_pedestrians","no_smoking","non-potable_water","nose","notebook","notebook_with_decorative_cover","notes","nut_and_bolt","o","o2","ocean","octocat","octopus","oden","office","ok","ok_hand","ok_woman","older_man","older_woman","on","oncoming_automobile","oncoming_bus","oncoming_police_car","oncoming_taxi","one","open_book","open_file_folder","open_hands","open_mouth","ophiuchus","orange_book","outbox_tray","ox","package","page_facing_up","page_with_curl","pager","palm_tree","panda_face","paperclip","parking","part_alternation_mark","partly_sunny","passport_control","paw_prints","peach","pear","pencil","pencil2","penguin","pensive","performing_arts","persevere","person_frowning","person_with_blond_hair","person_with_pouting_face","phone","pig","pig2","pig_nose","pill","pineapple","pisces","pizza","point_down","point_left","point_right","point_up","point_up_2","police_car","poodle","poop","post_office","postal_horn","postbox","potable_water","pouch","poultry_leg","pound","pouting_cat","pray","princess","punch","purple_heart","purse","pushpin","put_litter_in_its_place","question","rabbit","rabbit2","racehorse","radio","radio_button","rage","rage1","rage2","rage3","rage4","railway_car","rainbow","raised_hand","raised_hands","raising_hand","ram","ramen","rat","recycle","red_car","red_circle","registered","relaxed","relieved","repeat","repeat_one","restroom","revolving_hearts","rewind","ribbon","rice","rice_ball","rice_cracker","rice_scene","ring","rocket","roller_coaster","rooster","rose","rotating_light","round_pushpin","rowboat","ru","rugby_football","runner","running","running_shirt_with_sash","sa","sagittarius","sailboat","sake","sandal","santa","satellite","satisfied","saxophone","school","school_satchel","scissors","scorpius","scream","scream_cat","scroll","seat","secret","see_no_evil","seedling","seven","shaved_ice","sheep","shell","ship","shipit","shirt","shit","shoe","shower","signal_strength","six","six_pointed_star","ski","skull","sleeping","sleepy","slot_machine","small_blue_diamond","small_orange_diamond","small_red_triangle","small_red_triangle_down","smile","smile_cat","smiley","smiley_cat","smiling_imp","smirk","smirk_cat","smoking","snail","snake","snowboarder","snowflake","snowman","sob","soccer","soon","sos","sound","space_invader","spades","spaghetti","sparkle","sparkler","sparkles","sparkling_heart","speak_no_evil","speaker","speech_balloon","speedboat","squirrel","star","star2","stars","station","statue_of_liberty","steam_locomotive","stew","straight_ruler","strawberry","stuck_out_tongue","stuck_out_tongue_closed_eyes","stuck_out_tongue_winking_eye","sun_with_face","sunflower","sunglasses","sunny","sunrise","sunrise_over_mountains","surfer","sushi","suspect","suspension_railway","sweat","sweat_drops","sweat_smile","sweet_potato","swimmer","symbols","syringe","tada","tanabata_tree","tangerine","taurus","taxi","tea","telephone","telephone_receiver","telescope","tennis","tent","thought_balloon","three","thumbsdown","thumbsup","ticket","tiger","tiger2","tired_face","tm","toilet","tokyo_tower","tomato","tongue","top","tophat","tractor","traffic_light","train","train2","tram","triangular_flag_on_post","triangular_ruler","trident","triumph","trolleybus","trollface","trophy","tropical_drink","tropical_fish","truck","trumpet","tshirt","tulip","turtle","tv","twisted_rightwards_arrows","two","two_hearts","two_men_holding_hands","two_women_holding_hands","u5272","u5408","u55b6","u6307","u6708","u6709","u6e80","u7121","u7533","u7981","u7a7a","uk","umbrella","unamused","underage","unlock","up","us","v","vertical_traffic_light","vhs","vibration_mode","video_camera","video_game","violin","virgo","volcano","vs","walking","waning_crescent_moon","waning_gibbous_moon","warning","watch","water_buffalo","watermelon","wave","wavy_dash","waxing_crescent_moon","waxing_gibbous_moon","wc","weary","wedding","whale","whale2","wheelchair","white_check_mark","white_circle","white_flower","white_large_square","white_medium_small_square","white_medium_square","white_small_square","white_square_button","wind_chime","wine_glass","wink","wolf","woman","womans_clothes","womans_hat","womens","worried","wrench","x","yellow_heart","yen","yum","zap","zero","zzz"];window.emojify=function(a,o){return-1===e.indexOf(o)?a:''+o+''}}(); diff --git a/lib/plugins/external-script.js b/lib/plugins/external-script.js deleted file mode 100644 index 771eee4..0000000 --- a/lib/plugins/external-script.js +++ /dev/null @@ -1,28 +0,0 @@ -(function () { -function handleExternalScript () { - var container = Docsify.dom.getNode('#main'); - var scripts = Docsify.dom.findAll(container, 'script'); - - for (var i = scripts.length; i--;) { - var script = scripts[i]; - - if (script && script.src) { - var newScript = document.createElement('script'); - - Array.prototype.slice.call(script.attributes).forEach(function (attribute) { - newScript[attribute.name] = attribute.value; - }); - - script.parentNode.insertBefore(newScript, script); - script.parentNode.removeChild(script); - } - } -} - -var install = function (hook) { - hook.doneEach(handleExternalScript); -}; - -window.$docsify.plugins = [].concat(install, window.$docsify.plugins); - -}()); diff --git a/lib/plugins/external-script.min.js b/lib/plugins/external-script.min.js deleted file mode 100644 index 13423c4..0000000 --- a/lib/plugins/external-script.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(){function o(){for(var o=Docsify.dom.getNode("#main"),e=Docsify.dom.findAll(o,"script"),n=e.length;n--;){var i=e[n];if(i&&i.src){var t=document.createElement("script");Array.prototype.slice.call(i.attributes).forEach(function(o){t[o.name]=o.value}),i.parentNode.insertBefore(t,i),i.parentNode.removeChild(i)}}}window.$docsify.plugins=[].concat(function(e){e.doneEach(o)},window.$docsify.plugins)}(); diff --git a/lib/plugins/front-matter.js b/lib/plugins/front-matter.js deleted file mode 100644 index fbdae0a..0000000 --- a/lib/plugins/front-matter.js +++ /dev/null @@ -1,496 +0,0 @@ -(function () { -/** - * Fork https://github.com/egoist/docute/blob/master/src/utils/yaml.js - */ -/* eslint-disable */ -/* -YAML parser for Javascript -Author: Diogo Costa -This program is released under the MIT License as follows: -Copyright (c) 2011 Diogo Costa (costa.h4evr@gmail.com) -Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. -*/ - -/** - * @name YAML - * @namespace -*/ - -var errors = []; -var reference_blocks = []; -var processing_time = 0; -var regex$1 = { - regLevel: new RegExp('^([\\s\\-]+)'), - invalidLine: new RegExp('^\\-\\-\\-|^\\.\\.\\.|^\\s*#.*|^\\s*$'), - dashesString: new RegExp('^\\s*\\"([^\\"]*)\\"\\s*$'), - quotesString: new RegExp("^\\s*\\'([^\\']*)\\'\\s*$"), - float: new RegExp('^[+-]?[0-9]+\\.[0-9]+(e[+-]?[0-9]+(\\.[0-9]+)?)?$'), - integer: new RegExp('^[+-]?[0-9]+$'), - array: new RegExp('\\[\\s*(.*)\\s*\\]'), - map: new RegExp('\\{\\s*(.*)\\s*\\}'), - key_value: new RegExp('([a-z0-9_-][ a-z0-9_-]*):( .+)', 'i'), - single_key_value: new RegExp('^([a-z0-9_-][ a-z0-9_-]*):( .+?)$', 'i'), - key: new RegExp('([a-z0-9_-][ a-z0-9_-]+):( .+)?', 'i'), - item: new RegExp('^-\\s+'), - trim: new RegExp('^\\s+|\\s+$'), - comment: new RegExp('([^\\\'\\"#]+([\\\'\\"][^\\\'\\"]*[\\\'\\"])*)*(#.*)?') - }; - -/** - * @class A block of lines of a given level. - * @param {int} lvl The block's level. - * @private - */ -function Block(lvl) { - return { - /* The block's parent */ - parent: null, - /* Number of children */ - length: 0, - /* Block's level */ - level: lvl, - /* Lines of code to process */ - lines: [], - /* Blocks with greater level */ - children: [], - /* Add a block to the children collection */ - addChild: function(obj) { - this.children.push(obj); - obj.parent = this; - ++this.length; - } - } -} - -function parser$1(str) { - var regLevel = regex$1['regLevel']; - var invalidLine = regex$1['invalidLine']; - var lines = str.split('\n'); - var m; - var level = 0, - curLevel = 0; - - var blocks = []; - - var result = new Block(-1); - var currentBlock = new Block(0); - result.addChild(currentBlock); - var levels = []; - var line = ''; - - blocks.push(currentBlock); - levels.push(level); - - for (var i = 0, len = lines.length; i < len; ++i) { - line = lines[i]; - - if (line.match(invalidLine)) { - continue - } - - if ((m = regLevel.exec(line))) { - level = m[1].length; - } else { level = 0; } - - if (level > curLevel) { - var oldBlock = currentBlock; - currentBlock = new Block(level); - oldBlock.addChild(currentBlock); - blocks.push(currentBlock); - levels.push(level); - } else if (level < curLevel) { - var added = false; - - var k = levels.length - 1; - for (; k >= 0; --k) { - if (levels[k] == level) { - currentBlock = new Block(level); - blocks.push(currentBlock); - levels.push(level); - if (blocks[k].parent != null) { blocks[k].parent.addChild(currentBlock); } - added = true; - break - } - } - - if (!added) { - errors.push('Error: Invalid indentation at line ' + i + ': ' + line); - return - } - } - - currentBlock.lines.push(line.replace(regex$1['trim'], '')); - curLevel = level; - } - - return result -} - -function processValue(val) { - val = val.replace(regex$1['trim'], ''); - var m = null; - - if (val == 'true') { - return true - } else if (val == 'false') { - return false - } else if (val == '.NaN') { - return Number.NaN - } else if (val == 'null') { - return null - } else if (val == '.inf') { - return Number.POSITIVE_INFINITY - } else if (val == '-.inf') { - return Number.NEGATIVE_INFINITY - } else if ((m = val.match(regex$1['dashesString']))) { - return m[1] - } else if ((m = val.match(regex$1['quotesString']))) { - return m[1] - } else if ((m = val.match(regex$1['float']))) { - return parseFloat(m[0]) - } else if ((m = val.match(regex$1['integer']))) { - return parseInt(m[0]) - } else if (!isNaN((m = Date.parse(val)))) { - return new Date(m) - } else if ((m = val.match(regex$1['single_key_value']))) { - var res = {}; - res[m[1]] = processValue(m[2]); - return res - } else if ((m = val.match(regex$1['array']))) { - var count = 0, - c = ' '; - var res = []; - var content = ''; - var str = false; - for (var j = 0, lenJ = m[1].length; j < lenJ; ++j) { - c = m[1][j]; - if (c == "'" || c == '"') { - if (str === false) { - str = c; - content += c; - continue - } else if ((c == "'" && str == "'") || (c == '"' && str == '"')) { - str = false; - content += c; - continue - } - } else if (str === false && (c == '[' || c == '{')) { - ++count; - } else if (str === false && (c == ']' || c == '}')) { - --count; - } else if (str === false && count == 0 && c == ',') { - res.push(processValue(content)); - content = ''; - continue - } - - content += c; - } - - if (content.length > 0) { res.push(processValue(content)); } - return res - } else if ((m = val.match(regex$1['map']))) { - var count = 0, - c = ' '; - var res = []; - var content = ''; - var str = false; - for (var j = 0, lenJ = m[1].length; j < lenJ; ++j) { - c = m[1][j]; - if (c == "'" || c == '"') { - if (str === false) { - str = c; - content += c; - continue - } else if ((c == "'" && str == "'") || (c == '"' && str == '"')) { - str = false; - content += c; - continue - } - } else if (str === false && (c == '[' || c == '{')) { - ++count; - } else if (str === false && (c == ']' || c == '}')) { - --count; - } else if (str === false && count == 0 && c == ',') { - res.push(content); - content = ''; - continue - } - - content += c; - } - - if (content.length > 0) { res.push(content); } - - var newRes = {}; - for (var j = 0, lenJ = res.length; j < lenJ; ++j) { - if ((m = res[j].match(regex$1['key_value']))) { - newRes[m[1]] = processValue(m[2]); - } - } - - return newRes - } else { return val } -} - -function processFoldedBlock(block) { - var lines = block.lines; - var children = block.children; - var str = lines.join(' '); - var chunks = [str]; - for (var i = 0, len = children.length; i < len; ++i) { - chunks.push(processFoldedBlock(children[i])); - } - return chunks.join('\n') -} - -function processLiteralBlock(block) { - var lines = block.lines; - var children = block.children; - var str = lines.join('\n'); - for (var i = 0, len = children.length; i < len; ++i) { - str += processLiteralBlock(children[i]); - } - return str -} - -function processBlock(blocks) { - var m = null; - var res = {}; - var lines = null; - var children = null; - var currentObj = null; - - var level = -1; - - var processedBlocks = []; - - var isMap = true; - - for (var j = 0, lenJ = blocks.length; j < lenJ; ++j) { - if (level != -1 && level != blocks[j].level) { continue } - - processedBlocks.push(j); - - level = blocks[j].level; - lines = blocks[j].lines; - children = blocks[j].children; - currentObj = null; - - for (var i = 0, len = lines.length; i < len; ++i) { - var line = lines[i]; - - if ((m = line.match(regex$1['key']))) { - var key = m[1]; - - if (key[0] == '-') { - key = key.replace(regex$1['item'], ''); - if (isMap) { - isMap = false; - if (typeof res.length === 'undefined') { - res = []; - } - } - if (currentObj != null) { res.push(currentObj); } - currentObj = {}; - isMap = true; - } - - if (typeof m[2] != 'undefined') { - var value = m[2].replace(regex$1['trim'], ''); - if (value[0] == '&') { - var nb = processBlock(children); - if (currentObj != null) { currentObj[key] = nb; } - else { res[key] = nb; } - reference_blocks[value.substr(1)] = nb; - } else if (value[0] == '|') { - if (currentObj != null) - { currentObj[key] = processLiteralBlock(children.shift()); } - else { res[key] = processLiteralBlock(children.shift()); } - } else if (value[0] == '*') { - var v = value.substr(1); - var no = {}; - - if (typeof reference_blocks[v] == 'undefined') { - errors.push("Reference '" + v + "' not found!"); - } else { - for (var k in reference_blocks[v]) { - no[k] = reference_blocks[v][k]; - } - - if (currentObj != null) { currentObj[key] = no; } - else { res[key] = no; } - } - } else if (value[0] == '>') { - if (currentObj != null) - { currentObj[key] = processFoldedBlock(children.shift()); } - else { res[key] = processFoldedBlock(children.shift()); } - } else { - if (currentObj != null) { currentObj[key] = processValue(value); } - else { res[key] = processValue(value); } - } - } else { - if (currentObj != null) { currentObj[key] = processBlock(children); } - else { res[key] = processBlock(children); } - } - } else if (line.match(/^-\s*$/)) { - if (isMap) { - isMap = false; - if (typeof res.length === 'undefined') { - res = []; - } - } - if (currentObj != null) { res.push(currentObj); } - currentObj = {}; - isMap = true; - continue - } else if ((m = line.match(/^-\s*(.*)/))) { - if (currentObj != null) { currentObj.push(processValue(m[1])); } - else { - if (isMap) { - isMap = false; - if (typeof res.length === 'undefined') { - res = []; - } - } - res.push(processValue(m[1])); - } - continue - } - } - - if (currentObj != null) { - if (isMap) { - isMap = false; - if (typeof res.length === 'undefined') { - res = []; - } - } - res.push(currentObj); - } - } - - for (var j = processedBlocks.length - 1; j >= 0; --j) { - blocks.splice.call(blocks, processedBlocks[j], 1); - } - - return res -} - -function semanticAnalysis(blocks) { - var res = processBlock(blocks.children); - return res -} - -function preProcess(src) { - var m; - var lines = src.split('\n'); - - var r = regex$1['comment']; - - for (var i in lines) { - if ((m = lines[i].match(r))) { - /* var cmt = ""; - if(typeof m[3] != "undefined") - lines[i] = m[1]; - else if(typeof m[3] != "undefined") - lines[i] = m[3]; - else - lines[i] = ""; - */ - if (typeof m[3] !== 'undefined') { - lines[i] = m[0].substr(0, m[0].length - m[3].length); - } - } - } - - return lines.join('\n') -} - -function load(str) { - errors = []; - reference_blocks = []; - processing_time = new Date().getTime(); - var pre = preProcess(str); - var doc = parser$1(pre); - var res = semanticAnalysis(doc); - processing_time = new Date().getTime() - processing_time; - - return res -} - -/** - * Fork https://github.com/egoist/docute/blob/master/src/utils/front-matter.js - */ -/* eslint-disable */ -var optionalByteOrderMark = '\\ufeff?'; -var pattern = - '^(' + - optionalByteOrderMark + - '(= yaml =|---)' + - '$([\\s\\S]*?)' + - '(?:\\2|\\.\\.\\.)' + - '$' + - '' + - '(?:\\n)?)'; -// NOTE: If this pattern uses the 'g' flag the `regex` variable definition will -// need to be moved down into the functions that use it. -var regex = new RegExp(pattern, 'm'); - -function extractor(string) { - string = string || ''; - - var lines = string.split(/(\r?\n)/); - if (lines[0] && /= yaml =|---/.test(lines[0])) { - return parse(string) - } else { - return { attributes: {}, body: string } - } -} - -function parse(string) { - var match = regex.exec(string); - - if (!match) { - return { - attributes: {}, - body: string - } - } - - var yaml = match[match.length - 1].replace(/^\s+|\s+$/g, ''); - var attributes = load(yaml) || {}; - var body = string.replace(match[0], ''); - - return { attributes: attributes, body: body, frontmatter: yaml } -} - -var install = function (hook, vm) { - hook.beforeEach(function (content) { - var ref = extractor(content); - var attributes = ref.attributes; - var body = ref.body; - - Docsify.util.merge(vm.config, attributes.config); - - return body - }); -}; - -$docsify.plugins = [].concat(install, $docsify.plugins); - -}()); diff --git a/lib/plugins/front-matter.min.js b/lib/plugins/front-matter.min.js deleted file mode 100644 index ad16c8d..0000000 --- a/lib/plugins/front-matter.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(){var e=[],n=[],t=0,r={regLevel:new RegExp("^([\\s\\-]+)"),invalidLine:new RegExp("^\\-\\-\\-|^\\.\\.\\.|^\\s*#.*|^\\s*$"),dashesString:new RegExp('^\\s*\\"([^\\"]*)\\"\\s*$'),quotesString:new RegExp("^\\s*\\'([^\\']*)\\'\\s*$"),float:new RegExp("^[+-]?[0-9]+\\.[0-9]+(e[+-]?[0-9]+(\\.[0-9]+)?)?$"),integer:new RegExp("^[+-]?[0-9]+$"),array:new RegExp("\\[\\s*(.*)\\s*\\]"),map:new RegExp("\\{\\s*(.*)\\s*\\}"),key_value:new RegExp("([a-z0-9_-][ a-z0-9_-]*):( .+)","i"),single_key_value:new RegExp("^([a-z0-9_-][ a-z0-9_-]*):( .+?)$","i"),key:new RegExp("([a-z0-9_-][ a-z0-9_-]+):( .+)?","i"),item:new RegExp("^-\\s+"),trim:new RegExp("^\\s+|\\s+$"),comment:new RegExp("([^\\'\\\"#]+([\\'\\\"][^\\'\\\"]*[\\'\\\"])*)*(#.*)?")};function i(e){return{parent:null,length:0,level:e,lines:[],children:[],addChild:function(e){this.children.push(e),e.parent=this,++this.length}}}function l(e){var n=null;if("true"==(e=e.replace(r.trim,"")))return!0;if("false"==e)return!1;if(".NaN"==e)return Number.NaN;if("null"==e)return null;if(".inf"==e)return Number.POSITIVE_INFINITY;if("-.inf"==e)return Number.NEGATIVE_INFINITY;if(n=e.match(r.dashesString))return n[1];if(n=e.match(r.quotesString))return n[1];if(n=e.match(r.float))return parseFloat(n[0]);if(n=e.match(r.integer))return parseInt(n[0]);if(isNaN(n=Date.parse(e))){if(n=e.match(r.single_key_value)){return(u={})[n[1]]=l(n[2]),u}if(n=e.match(r.array)){for(var t=0,i=" ",u=[],a="",s=!1,f=0,h=n[1].length;f0&&u.push(l(a)),u}if(n=e.match(r.map)){for(t=0,i=" ",u=[],a="",s=!1,f=0,h=n[1].length;f0&&u.push(a);var o={};for(f=0,h=u.length;f"==b[0]?null!=c?c[y]=u(o.shift()):f[y]=u(o.shift()):null!=c?c[y]=l(b):f[y]=l(b)}else null!=c?c[y]=t(o):f[y]=t(o)}else{if(x.match(/^-\s*$/)){v&&(v=!1,void 0===f.length&&(f=[])),null!=c&&f.push(c),c={},v=!0;continue}if(s=x.match(/^-\s*(.*)/)){null!=c?c.push(l(s[1])):(v&&(v=!1,void 0===f.length&&(f=[])),f.push(l(s[1])));continue}}}null!=c&&(v&&(v=!1,void 0===f.length&&(f=[])),f.push(c))}for(d=g.length-1;d>=0;--d)i.splice.call(i,g[d],1);return f}(t.children)}function f(l){e=[],n=[],t=(new Date).getTime();var u=s(function(n){var t,l=r.regLevel,u=r.invalidLine,a=n.split("\n"),s=0,f=0,h=[],o=new i(-1),c=new i(0);o.addChild(c);var p=[],g="";h.push(c),p.push(s);for(var v=0,d=a.length;vf){var m=c;c=new i(s),m.addChild(c),h.push(c),p.push(s)}else if(s=0;--E)if(p[E]==s){c=new i(s),h.push(c),p.push(s),null!=h[E].parent&&h[E].parent.addChild(c),w=!0;break}if(!w)return void e.push("Error: Invalid indentation at line "+v+": "+g)}c.lines.push(g.replace(r.trim,"")),f=s}return o}(function(e){var n,t=e.split("\n"),i=r.comment;for(var l in t)(n=t[l].match(i))&&void 0!==n[3]&&(t[l]=n[0].substr(0,n[0].length-n[3].length));return t.join("\n")}(l)));return t=(new Date).getTime()-t,u}var h=new RegExp("^(\\ufeff?(= yaml =|---)$([\\s\\S]*?)(?:\\2|\\.\\.\\.)$(?:\\n)?)","m");function o(e){var n=(e=e||"").split(/(\r?\n)/);return n[0]&&/= yaml =|---/.test(n[0])?function(e){var n=h.exec(e);if(!n)return{attributes:{},body:e};var t=n[n.length-1].replace(/^\s+|\s+$/g,""),r=f(t)||{},i=e.replace(n[0],"");return{attributes:r,body:i,frontmatter:t}}(e):{attributes:{},body:e}}$docsify.plugins=[].concat(function(e,n){e.beforeEach(function(e){var t=o(e),r=t.attributes,i=t.body;return Docsify.util.merge(n.config,r.config),i})},$docsify.plugins)}(); diff --git a/lib/plugins/ga.js b/lib/plugins/ga.js deleted file mode 100644 index f5c0c03..0000000 --- a/lib/plugins/ga.js +++ /dev/null @@ -1,41 +0,0 @@ -(function () { -// From https://github.com/egoist/vue-ga/blob/master/src/index.js -function appendScript () { - var script = document.createElement('script'); - script.async = true; - script.src = 'https://www.google-analytics.com/analytics.js'; - document.body.appendChild(script); -} - -function init (id) { - appendScript(); - window.ga = - window.ga || - function () { - (window.ga.q = window.ga.q || []).push(arguments); - }; - window.ga.l = Number(new Date()); - window.ga('create', id, 'auto'); -} - -function collect () { - if (!window.ga) { - init($docsify.ga); - } - - window.ga('set', 'page', location.hash); - window.ga('send', 'pageview'); -} - -var install = function (hook) { - if (!$docsify.ga) { - console.error('[Docsify] ga is required.'); - return - } - - hook.beforeEach(collect); -}; - -$docsify.plugins = [].concat(install, $docsify.plugins); - -}()); diff --git a/lib/plugins/ga.min.js b/lib/plugins/ga.min.js deleted file mode 100644 index 500ea93..0000000 --- a/lib/plugins/ga.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(){function n(n){!function(){var n=document.createElement("script");n.async=!0,n.src="https://www.google-analytics.com/analytics.js",document.body.appendChild(n)}(),window.ga=window.ga||function(){(window.ga.q=window.ga.q||[]).push(arguments)},window.ga.l=Number(new Date),window.ga("create",n,"auto")}function o(){window.ga||n($docsify.ga),window.ga("set","page",location.hash),window.ga("send","pageview")}$docsify.plugins=[].concat(function(n){$docsify.ga?n.beforeEach(o):console.error("[Docsify] ga is required.")},$docsify.plugins)}(); diff --git a/lib/plugins/gitalk.js b/lib/plugins/gitalk.js deleted file mode 100644 index 777a7f5..0000000 --- a/lib/plugins/gitalk.js +++ /dev/null @@ -1,20 +0,0 @@ -(function () { -function install (hook, vm) { - var dom = Docsify.dom; - - hook.mounted(function (_) { - var div = dom.create('div'); - div.id = 'gitalk-container'; - var main = dom.getNode('#main'); - div.style = "width: " + (main.clientWidth) + "px; margin: 0 auto 20px;"; - dom.appendTo(dom.find('.content'), div); - var script = dom.create('script'); - var content = "gitalk.render('gitalk-container')"; - script.textContent = content; - dom.appendTo(dom.body, script); - }); -} - -$docsify.plugins = [].concat(install, $docsify.plugins); - -}()); diff --git a/lib/plugins/gitalk.min.js b/lib/plugins/gitalk.min.js deleted file mode 100644 index e292639..0000000 --- a/lib/plugins/gitalk.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(){$docsify.plugins=[].concat(function(n,t){var i=Docsify.dom;n.mounted(function(n){var t=i.create("div");t.id="gitalk-container";var e=i.getNode("#main");t.style="width: "+e.clientWidth+"px; margin: 0 auto 20px;",i.appendTo(i.find(".content"),t);var o=i.create("script");o.textContent="gitalk.render('gitalk-container')",i.appendTo(i.body,o)})},$docsify.plugins)}(); diff --git a/lib/plugins/search.js b/lib/plugins/search.js deleted file mode 100644 index ebaf0a2..0000000 --- a/lib/plugins/search.js +++ /dev/null @@ -1,321 +0,0 @@ -(function () { -var INDEXS = {}; -var helper; - -function escapeHtml (string) { - var entityMap = { - '&': '&', - '<': '<', - '>': '>', - '"': '"', - "'": ''', - '/': '/' - }; - - return String(string).replace(/[&<>"'\/]/g, function (s) { return entityMap[s]; }) -} - -function getAllPaths (router) { - var paths = []; - - helper.dom.findAll('a:not([data-nosearch])').map(function (node) { - var href = node.href; - var originHref = node.getAttribute('href'); - var path = router.parse(href).path; - - if ( - path && - paths.indexOf(path) === -1 && - !Docsify.util.isAbsolutePath(originHref) - ) { - paths.push(path); - } - }); - - return paths -} - -function saveData (maxAge) { - localStorage.setItem('docsify.search.expires', Date.now() + maxAge); - localStorage.setItem('docsify.search.index', JSON.stringify(INDEXS)); -} - -function genIndex (path, content, router, depth) { - if ( content === void 0 ) content = ''; - - var tokens = window.marked.lexer(content); - var slugify = window.Docsify.slugify; - var index = {}; - var slug; - - tokens.forEach(function (token) { - if (token.type === 'heading' && token.depth <= depth) { - slug = router.toURL(path, { id: slugify(token.text) }); - index[slug] = { slug: slug, title: token.text, body: '' }; - } else { - if (!slug) { return } - if (!index[slug]) { - index[slug] = { slug: slug, title: '', body: '' }; - } else { - if (index[slug].body) { - index[slug].body += '\n' + (token.text || ''); - } else { - index[slug].body = token.text; - } - } - } - }); - slugify.clear(); - return index -} - -/** - * @param {String} query - * @returns {Array} - */ -function search (query) { - var matchingResults = []; - var data = []; - Object.keys(INDEXS).forEach(function (key) { - data = data.concat(Object.keys(INDEXS[key]).map(function (page) { return INDEXS[key][page]; })); - }); - - query = query.trim(); - var keywords = query.split(/[\s\-\,\\/]+/); - if (keywords.length !== 1) { - keywords = [].concat(query, keywords); - } - - var loop = function ( i ) { - var post = data[i]; - var isMatch = false; - var resultStr = ''; - var postTitle = post.title && post.title.trim(); - var postContent = post.body && post.body.trim(); - var postUrl = post.slug || ''; - - if (postTitle && postContent) { - keywords.forEach(function (keyword, i) { - // From https://github.com/sindresorhus/escape-string-regexp - var regEx = new RegExp( - keyword.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&'), - 'gi' - ); - var indexTitle = -1; - var indexContent = -1; - - indexTitle = postTitle && postTitle.search(regEx); - indexContent = postContent && postContent.search(regEx); - - if (indexTitle < 0 && indexContent < 0) { - isMatch = false; - } else { - isMatch = true; - if (indexContent < 0) { indexContent = 0; } - - var start = 0; - var end = 0; - - start = indexContent < 11 ? 0 : indexContent - 10; - end = start === 0 ? 70 : indexContent + keyword.length + 60; - - if (end > postContent.length) { end = postContent.length; } - - var matchContent = - '...' + - escapeHtml(postContent) - .substring(start, end) - .replace(regEx, ("" + keyword + "")) + - '...'; - - resultStr += matchContent; - } - }); - - if (isMatch) { - var matchingPost = { - title: escapeHtml(postTitle), - content: resultStr, - url: postUrl - }; - - matchingResults.push(matchingPost); - } - } - }; - - for (var i = 0; i < data.length; i++) loop( i ); - - return matchingResults -} - -function init$1 (config, vm) { - helper = Docsify; - - var isAuto = config.paths === 'auto'; - var isExpired = localStorage.getItem('docsify.search.expires') < Date.now(); - - INDEXS = JSON.parse(localStorage.getItem('docsify.search.index')); - - if (isExpired) { - INDEXS = {}; - } else if (!isAuto) { - return - } - - var paths = isAuto ? getAllPaths(vm.router) : config.paths; - var len = paths.length; - var count = 0; - - paths.forEach(function (path) { - if (INDEXS[path]) { return count++ } - - helper - .get(vm.router.getFile(path), false, vm.config.requestHeaders) - .then(function (result) { - INDEXS[path] = genIndex(path, result, vm.router, config.depth); - len === ++count && saveData(config.maxAge); - }); - }); -} - -var NO_DATA_TEXT = ''; - -function style () { - var code = "\n.sidebar {\n padding-top: 0;\n}\n\n.search {\n margin-bottom: 20px;\n padding: 6px;\n border-bottom: 1px solid #eee;\n}\n\n.search .input-wrap {\n display: flex;\n align-items: center;\n}\n\n.search .results-panel {\n display: none;\n}\n\n.search .results-panel.show {\n display: block;\n}\n\n.search input {\n outline: none;\n border: none;\n width: 100%;\n padding: 0 7px;\n line-height: 36px;\n font-size: 14px;\n}\n\n.search input::-webkit-search-decoration,\n.search input::-webkit-search-cancel-button,\n.search input {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n.search .clear-button {\n width: 36px;\n text-align: right;\n display: none;\n}\n\n.search .clear-button.show {\n display: block;\n}\n\n.search .clear-button svg {\n transform: scale(.5);\n}\n\n.search h2 {\n font-size: 17px;\n margin: 10px 0;\n}\n\n.search a {\n text-decoration: none;\n color: inherit;\n}\n\n.search .matching-post {\n border-bottom: 1px solid #eee;\n}\n\n.search .matching-post:last-child {\n border-bottom: 0;\n}\n\n.search p {\n font-size: 14px;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n\n.search p.empty {\n text-align: center;\n}"; - - Docsify.dom.style(code); -} - -function tpl (opts, defaultValue) { - if ( defaultValue === void 0 ) defaultValue = ''; - - var html = - "
          \n \n
          \n \n \n \n \n \n
          \n
          \n
          \n
        "; - var el = Docsify.dom.create('div', html); - var aside = Docsify.dom.find('aside'); - - Docsify.dom.toggleClass(el, 'search'); - Docsify.dom.before(aside, el); -} - -function doSearch (value) { - var $search = Docsify.dom.find('div.search'); - var $panel = Docsify.dom.find($search, '.results-panel'); - var $clearBtn = Docsify.dom.find($search, '.clear-button'); - - if (!value) { - $panel.classList.remove('show'); - $clearBtn.classList.remove('show'); - $panel.innerHTML = ''; - return - } - var matchs = search(value); - - var html = ''; - matchs.forEach(function (post) { - html += ""; - }); - - $panel.classList.add('show'); - $clearBtn.classList.add('show'); - $panel.innerHTML = html || ("

        " + NO_DATA_TEXT + "

        "); -} - -function bindEvents () { - var $search = Docsify.dom.find('div.search'); - var $input = Docsify.dom.find($search, 'input'); - var $inputWrap = Docsify.dom.find($search, '.input-wrap'); - - var timeId; - // Prevent to Fold sidebar - Docsify.dom.on( - $search, - 'click', - function (e) { return e.target.tagName !== 'A' && e.stopPropagation(); } - ); - Docsify.dom.on($input, 'input', function (e) { - clearTimeout(timeId); - timeId = setTimeout(function (_) { return doSearch(e.target.value.trim()); }, 100); - }); - Docsify.dom.on($inputWrap, 'click', function (e) { - // click input outside - if (e.target.tagName !== 'INPUT') { - $input.value = ''; - doSearch(); - } - }); -} - -function updatePlaceholder (text, path) { - var $input = Docsify.dom.getNode('.search input[type="search"]'); - - if (!$input) { return } - if (typeof text === 'string') { - $input.placeholder = text; - } else { - var match = Object.keys(text).filter(function (key) { return path.indexOf(key) > -1; })[0]; - $input.placeholder = text[match]; - } -} - -function updateNoData (text, path) { - if (typeof text === 'string') { - NO_DATA_TEXT = text; - } else { - var match = Object.keys(text).filter(function (key) { return path.indexOf(key) > -1; })[0]; - NO_DATA_TEXT = text[match]; - } -} - -function init (opts, vm) { - var keywords = vm.router.parse().query.s; - - style(); - tpl(opts, keywords); - bindEvents(); - keywords && setTimeout(function (_) { return doSearch(keywords); }, 500); -} - -function update (opts, vm) { - updatePlaceholder(opts.placeholder, vm.route.path); - updateNoData(opts.noData, vm.route.path); -} - -var CONFIG = { - placeholder: 'Type to search', - noData: 'No Results!', - paths: 'auto', - depth: 2, - maxAge: 86400000 // 1 day -}; - -var install = function (hook, vm) { - var util = Docsify.util; - var opts = vm.config.search || CONFIG; - - if (Array.isArray(opts)) { - CONFIG.paths = opts; - } else if (typeof opts === 'object') { - CONFIG.paths = Array.isArray(opts.paths) ? opts.paths : 'auto'; - CONFIG.maxAge = util.isPrimitive(opts.maxAge) ? opts.maxAge : CONFIG.maxAge; - CONFIG.placeholder = opts.placeholder || CONFIG.placeholder; - CONFIG.noData = opts.noData || CONFIG.noData; - CONFIG.depth = opts.depth || CONFIG.depth; - } - - var isAuto = CONFIG.paths === 'auto'; - - hook.mounted(function (_) { - init(CONFIG, vm); - !isAuto && init$1(CONFIG, vm); - }); - hook.doneEach(function (_) { - update(CONFIG, vm); - isAuto && init$1(CONFIG, vm); - }); -}; - -$docsify.plugins = [].concat(install, $docsify.plugins); - -}()); diff --git a/lib/plugins/search.min.js b/lib/plugins/search.min.js deleted file mode 100644 index f173276..0000000 --- a/lib/plugins/search.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(){var n,e={};function t(n){var e={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};return String(n).replace(/[&<>"'\/]/g,function(n){return e[n]})}function o(t,o){n=Docsify;var a="auto"===t.paths,i=localStorage.getItem("docsify.search.expires")l.length&&(p=l.length);var h="..."+t(l).substring(d,p).replace(o,''+n+"")+"...";s+=h}}),r)){var p={title:t(c),content:s,url:d};o.push(p)}},s=0;s\n

        '+n.title+"

        \n

        "+n.content+"

        \n\n
        "}),i.classList.add("show"),r.classList.add("show"),i.innerHTML=s||'

        '+a+"

        "}function r(n,e){var t=e.router.parse().query.s;Docsify.dom.style("\n.sidebar {\n padding-top: 0;\n}\n\n.search {\n margin-bottom: 20px;\n padding: 6px;\n border-bottom: 1px solid #eee;\n}\n\n.search .input-wrap {\n display: flex;\n align-items: center;\n}\n\n.search .results-panel {\n display: none;\n}\n\n.search .results-panel.show {\n display: block;\n}\n\n.search input {\n outline: none;\n border: none;\n width: 100%;\n padding: 0 7px;\n line-height: 36px;\n font-size: 14px;\n}\n\n.search input::-webkit-search-decoration,\n.search input::-webkit-search-cancel-button,\n.search input {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n.search .clear-button {\n width: 36px;\n text-align: right;\n display: none;\n}\n\n.search .clear-button.show {\n display: block;\n}\n\n.search .clear-button svg {\n transform: scale(.5);\n}\n\n.search h2 {\n font-size: 17px;\n margin: 10px 0;\n}\n\n.search a {\n text-decoration: none;\n color: inherit;\n}\n\n.search .matching-post {\n border-bottom: 1px solid #eee;\n}\n\n.search .matching-post:last-child {\n border-bottom: 0;\n}\n\n.search p {\n font-size: 14px;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n\n.search p.empty {\n text-align: center;\n}"),function(n,e){void 0===e&&(e="");var t='
        \n \n
        \n \n \n \n \n \n
        \n
        \n
        \n ',o=Docsify.dom.create("div",t),a=Docsify.dom.find("aside");Docsify.dom.toggleClass(o,"search"),Docsify.dom.before(a,o)}(0,t),function(){var n,e=Docsify.dom.find("div.search"),t=Docsify.dom.find(e,"input"),o=Docsify.dom.find(e,".input-wrap");Docsify.dom.on(e,"click",function(n){return"A"!==n.target.tagName&&n.stopPropagation()}),Docsify.dom.on(t,"input",function(e){clearTimeout(n),n=setTimeout(function(n){return i(e.target.value.trim())},100)}),Docsify.dom.on(o,"click",function(n){"INPUT"!==n.target.tagName&&(t.value="",i())})}(),t&&setTimeout(function(n){return i(t)},500)}function s(n,e){!function(n,e){var t=Docsify.dom.getNode('.search input[type="search"]');if(t)if("string"==typeof n)t.placeholder=n;else{var o=Object.keys(n).filter(function(n){return e.indexOf(n)>-1})[0];t.placeholder=n[o]}}(n.placeholder,e.route.path),function(n,e){if("string"==typeof n)a=n;else{var t=Object.keys(n).filter(function(n){return e.indexOf(n)>-1})[0];a=n[t]}}(n.noData,e.route.path)}var c={placeholder:"Type to search",noData:"No Results!",paths:"auto",depth:2,maxAge:864e5};$docsify.plugins=[].concat(function(n,e){var t=Docsify.util,a=e.config.search||c;Array.isArray(a)?c.paths=a:"object"==typeof a&&(c.paths=Array.isArray(a.paths)?a.paths:"auto",c.maxAge=t.isPrimitive(a.maxAge)?a.maxAge:c.maxAge,c.placeholder=a.placeholder||c.placeholder,c.noData=a.noData||c.noData,c.depth=a.depth||c.depth);var i="auto"===c.paths;n.mounted(function(n){r(0,e),!i&&o(c,e)}),n.doneEach(function(n){s(c,e),i&&o(c,e)})},$docsify.plugins)}(); diff --git a/lib/plugins/zoom-image.js b/lib/plugins/zoom-image.js deleted file mode 100644 index f434f99..0000000 --- a/lib/plugins/zoom-image.js +++ /dev/null @@ -1,24 +0,0 @@ -(function () { -/* - * medium-zoom v0.3.0 - * Medium zoom on your images in vanilla JavaScript - * Copyright 2017 Francois Chalifour - * https://github.com/francoischalifour/medium-zoom - * MIT License - */function __$styleInject(a,b){if('undefined'==typeof document){ return b; }a=a||'';var c=document.head||document.getElementsByTagName('head')[0],d=document.createElement('style');return d.type='text/css', c.appendChild(d), d.styleSheet?d.styleSheet.cssText=a:d.appendChild(document.createTextNode(a)), b}var _extends=Object.assign||function(a){for(var b,c=1;cv.scrollOffset&&n(150);}},t=function(a){CANCEL_KEYS.includes(a.keyCode||a.which)&&n();},u=function(){var a=Math.min;if(y.original){var b,c,d={width:window.innerWidth,height:window.innerHeight,left:0,top:0,right:0,bottom:0};if(v.container){ if(v.container instanceof Object){ _extends(d,v.container), b=d.width-d.left-d.right-2*v.margin, c=d.height-d.top-d.bottom-2*v.margin; }else{var e=isNode(v.container)?v.container:document.querySelector(v.container),f=e.getBoundingClientRect(),g=f.width,h=f.height,i=f.left,j=f.top;_extends(d,{width:g,height:h,left:i,top:j});} }b=b||d.width-2*v.margin, c=c||d.height-2*v.margin;var k=y.zoomedHd||y.original,l=k.naturalWidth,m=void 0===l?b:l,n=k.naturalHeight,o=void 0===n?c:n,p=k.getBoundingClientRect(),q=p.top,r=p.left,s=p.width,t=p.height,u=a(m,b)/s,w=a(o,c)/t,x=a(u,w)||1,z=(-r+(b-s)/2+v.margin+d.left)/x,A=(-q+(c-t)/2+v.margin+d.top)/x,B='scale('+x+') translate3d('+z+'px, '+A+'px, 0)';y.zoomed.style.transform=B, y.zoomedHd&&(y.zoomedHd.style.transform=B);}},v={margin:d,background:f,scrollOffset:h,metaClick:void 0===i||i,container:j,template:k};a instanceof Object&&_extends(v,a);var w=function(a){try{return Array.isArray(a)?a.filter(isSupported):isListOrCollection(a)?[].concat(toConsumableArray(a)).filter(isSupported):isNode(a)?[a].filter(isSupported):'string'==typeof a?[].concat(toConsumableArray(document.querySelectorAll(a))).filter(isSupported):[].concat(toConsumableArray(document.querySelectorAll(SUPPORTED_FORMATS.map(function(a){return a.toLowerCase()}).join(',')))).filter(isScaled)}catch(a){throw new TypeError('The provided selector is invalid.\nExpects a CSS selector, a Node element, a NodeList, an HTMLCollection or an array.\nSee: https://github.com/francoischalifour/medium-zoom')}}(a),x=function(a){var b=document.createElement('div');return b.classList.add('medium-zoom-overlay'), b.style.backgroundColor=a, b}(v.background),y={original:null,zoomed:null,zoomedHd:null,template:null},z=0,A=!1;return w.forEach(function(a){a.classList.add('medium-zoom-image'), a.addEventListener('click',p);}), x.addEventListener('click',n), document.addEventListener('scroll',s), document.addEventListener('keyup',t), window.addEventListener('resize',n), {show:o,hide:n,toggle:o,update:function(){var a=0O.scrollOffset&&z(150)}},H=function(e){n.includes(e.keyCode||e.which)&&z()},k=function(){var t=Math.min;if(x.original){var o,n,i={width:window.innerWidth,height:window.innerHeight,left:0,top:0,right:0,bottom:0};if(O.container)if(O.container instanceof Object)e(i,O.container),o=i.width-i.left-i.right-2*O.margin,n=i.height-i.top-i.bottom-2*O.margin;else{var r=(d(O.container)?O.container:document.querySelector(O.container)).getBoundingClientRect(),a=r.width,l=r.height,c=r.left,m=r.top;e(i,{width:a,height:l,left:c,top:m})}o=o||i.width-2*O.margin,n=n||i.height-2*O.margin;var s=x.zoomedHd||x.original,u=s.naturalWidth,f=void 0===u?o:u,p=s.naturalHeight,g=void 0===p?n:p,v=s.getBoundingClientRect(),h=v.top,y=v.left,z=v.width,E=v.height,w=t(t(f,o)/z,t(g,n)/E)||1,b="scale("+w+") translate3d("+((o-z)/2-y+O.margin+i.left)/w+"px, "+((n-E)/2-h+O.margin+i.top)/w+"px, 0)";x.zoomed.style.transform=b,x.zoomedHd&&(x.zoomedHd.style.transform=b)}},O={margin:m,background:u,scrollOffset:p,metaClick:void 0===g||g,container:v,template:h};a instanceof Object&&e(O,a);var T=function(e){try{return Array.isArray(e)?e.filter(i):(n=e,NodeList.prototype.isPrototypeOf(n)||HTMLCollection.prototype.isPrototypeOf(n)?[].concat(t(e)).filter(i):d(e)?[e].filter(i):"string"==typeof e?[].concat(t(document.querySelectorAll(e))).filter(i):[].concat(t(document.querySelectorAll(o.map(function(e){return e.toLowerCase()}).join(",")))).filter(r))}catch(e){throw new TypeError("The provided selector is invalid.\nExpects a CSS selector, a Node element, a NodeList, an HTMLCollection or an array.\nSee: https://github.com/francoischalifour/medium-zoom")}var n}(a),A=function(e){var t=document.createElement("div");return t.classList.add("medium-zoom-overlay"),t.style.backgroundColor=e,t}(O.background),x={original:null,zoomed:null,zoomedHd:null,template:null},N=0,S=!1;return T.forEach(function(e){e.classList.add("medium-zoom-image"),e.addEventListener("click",w)}),A.addEventListener("click",z),document.addEventListener("scroll",C),document.addEventListener("keyup",H),window.addEventListener("resize",z),{show:E,hide:z,toggle:E,update:function(){var t=0nav,body:not(.ready) [data-cloak]{display:none}div#app{font-size:30px;font-weight:lighter;margin:40vh auto;text-align:center}div#app:empty:before{content:"Loading..."}.emoji{height:19.2px;height:1.2rem;vertical-align:middle}.progress{background-color:#0074d9;background-color:var(--theme-color,#0074d9);height:2px;left:0;position:fixed;right:0;top:0;transition:width .2s,opacity .4s;width:0;z-index:5}.search .search-keyword,.search a:hover{color:#0074d9;color:var(--theme-color,#0074d9)}.search .search-keyword{font-style:normal;font-weight:700}body,html{height:100%}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:#34495e;font-family:Source Sans Pro,Helvetica Neue,Arial,sans-serif;font-size:15px;letter-spacing:0;margin:0;overflow-x:hidden}img{max-width:100%}a[disabled]{cursor:not-allowed;opacity:.6}kbd{border:1px solid #ccc;border-radius:3px;display:inline-block;font-size:12px!important;line-height:12px;margin-bottom:3px;padding:3px 5px;vertical-align:middle}.task-list-item{list-style-type:none}li input[type=checkbox]{margin:0 .2em .25em -1.6em;vertical-align:middle}.app-nav{margin:25px 60px 0 0;position:absolute;right:0;text-align:right;z-index:2}.app-nav p{margin:0}.app-nav>a{margin:0 16px;margin:0 1rem;padding:5px 0}.app-nav li,.app-nav ul{display:inline-block;list-style:none;margin:0}.app-nav a{color:inherit;font-size:16px;text-decoration:none;transition:color .3s}.app-nav a.active,.app-nav a:hover{color:#0074d9;color:var(--theme-color,#0074d9)}.app-nav a.active{border-bottom:2px solid #0074d9;border-bottom:2px solid var(--theme-color,#0074d9)}.app-nav li{display:inline-block;margin:0 16px;margin:0 1rem;padding:5px 0;position:relative}.app-nav li ul{background-color:#fff;border:1px solid #ddd;border-bottom-color:#ccc;border-radius:4px;box-sizing:border-box;display:none;max-height:calc(100vh - 61px);overflow-y:auto;padding:10px 0;position:absolute;right:-15px;text-align:left;top:100%;white-space:nowrap}.app-nav li ul li{display:block;font-size:14px;line-height:16px;line-height:1rem;margin:0;margin:8px 14px;white-space:nowrap}.app-nav li ul a{display:block;font-size:inherit;margin:0;padding:0}.app-nav li ul a.active{border-bottom:0}.app-nav li:hover ul{display:block}.app-nav.no-badge{margin-right:25px}.github-corner{border-bottom:0;position:fixed;right:0;text-decoration:none;top:0;z-index:1}.github-corner svg{color:#fff;fill:#0074d9;fill:var(--theme-color,#0074d9);height:80px;width:80px}.github-corner:hover .octo-arm{-webkit-animation:a .56s ease-in-out;animation:a .56s ease-in-out}main{display:block;position:relative;width:100vw;height:100%;z-index:0}main.hidden{display:none}.anchor{display:inline-block;text-decoration:none;transition:all .3s}.anchor span{color:#34495e}.anchor:hover{text-decoration:underline}.sidebar{border-right:1px solid rgba(0,0,0,.07);overflow-y:auto;padding:40px 0 0;top:0;bottom:0;left:0;position:absolute;transition:-webkit-transform .25s ease-out;transition:transform .25s ease-out;transition:transform .25s ease-out,-webkit-transform .25s ease-out;width:256px;width:16rem;z-index:3}.sidebar>h1{margin:0 auto 16px;margin:0 auto 1rem;font-size:24px;font-size:1.5rem;font-weight:300;text-align:center}.sidebar>h1 a{color:inherit;text-decoration:none}.sidebar>h1 .app-nav{display:block;position:static}.sidebar .sidebar-nav{line-height:2em;padding-bottom:40px}.sidebar li.collapse .app-sub-sidebar{display:none}.sidebar ul{margin:0;padding:0}.sidebar li>p{font-weight:700;margin:0}.sidebar ul,.sidebar ul li{list-style:none}.sidebar ul li a{border-bottom:none;display:block}.sidebar ul li ul{padding-left:20px}.sidebar::-webkit-scrollbar{width:4px}.sidebar::-webkit-scrollbar-thumb{background:transparent;border-radius:4px}.sidebar:hover::-webkit-scrollbar-thumb{background:hsla(0,0%,53%,.4)}.sidebar:hover::-webkit-scrollbar-track{background:hsla(0,0%,53%,.1)}.sidebar-toggle{background-color:transparent;background-color:hsla(0,0%,100%,.8);border:0;outline:none;padding:10px;bottom:0;left:0;position:absolute;text-align:center;transition:opacity .3s;width:30px;width:calc(16rem - 16px);z-index:4}.sidebar-toggle .sidebar-toggle-button:hover{opacity:.4}.sidebar-toggle span{background-color:#0074d9;background-color:var(--theme-color,#0074d9);display:block;margin-bottom:4px;width:16px;height:2px}body.sticky .sidebar,body.sticky .sidebar-toggle{position:fixed}.content{padding-top:60px;top:0;right:0;bottom:0;left:256px;left:16rem;position:absolute;transition:left .25s ease}.markdown-section{margin:0 auto;max-width:800px;padding:30px 15px 40px;position:relative}.markdown-section>*{box-sizing:border-box;font-size:inherit}.markdown-section>:first-child{margin-top:0!important}.markdown-section hr{border:none;border-bottom:1px solid #eee;margin:2em 0}.markdown-section iframe{border:1px solid #eee}.markdown-section table{border-collapse:collapse;border-spacing:0;display:block;margin-bottom:16px;margin-bottom:1rem;overflow:auto;width:100%}.markdown-section th{font-weight:700}.markdown-section td,.markdown-section th{border:1px solid #ddd;padding:6px 13px}.markdown-section tr{border-top:1px solid #ccc}.markdown-section p.tip,.markdown-section tr:nth-child(2n){background-color:#f8f8f8}.markdown-section p.tip{border-bottom-right-radius:2px;border-left:4px solid #f66;border-top-right-radius:2px;margin:2em 0;padding:12px 24px 12px 30px;position:relative}.markdown-section p.tip code{background-color:#efefef}.markdown-section p.tip em{color:#34495e}.markdown-section p.tip:before{background-color:#f66;border-radius:100%;color:#fff;content:"!";font-family:Dosis,Source Sans Pro,Helvetica Neue,Arial,sans-serif;font-size:14px;font-weight:700;left:-12px;line-height:20px;position:absolute;width:20px;height:20px;text-align:center;top:14px}.markdown-section p.warn{background:rgba(0,116,217,.1);border-radius:2px;padding:16px;padding:1rem}body.close .sidebar{-webkit-transform:translateX(-16rem);transform:translateX(-16rem)}body.close .sidebar-toggle{width:auto}body.close .content{left:0}@media print{.app-nav,.github-corner,.sidebar,.sidebar-toggle{display:none}}@media screen and (max-width:768px){.github-corner,.sidebar,.sidebar-toggle{position:fixed}.app-nav{margin-top:16px}.app-nav li ul{top:30px}main{height:auto;overflow-x:hidden}.sidebar{left:-16rem;transition:-webkit-transform .25s ease-out;transition:transform .25s ease-out;transition:transform .25s ease-out,-webkit-transform .25s ease-out}.content{left:0;max-width:100vw;position:static;padding-top:20px;transition:-webkit-transform .25s ease;transition:transform .25s ease;transition:transform .25s ease,-webkit-transform .25s ease}.app-nav,.github-corner{transition:-webkit-transform .25s ease-out;transition:transform .25s ease-out;transition:transform .25s ease-out,-webkit-transform .25s ease-out}.sidebar-toggle{background-color:transparent;width:auto;padding:30px 30px 10px 10px}body.close .sidebar{-webkit-transform:translateX(16rem);transform:translateX(16rem)}body.close .sidebar-toggle{background-color:hsla(0,0%,100%,.8);transition:background-color 1s;width:calc(16rem - 16px);padding:10px}body.close .content{-webkit-transform:translateX(16rem);transform:translateX(16rem)}body.close .app-nav,body.close .github-corner{display:none}.github-corner .octo-arm{-webkit-animation:a .56s ease-in-out;animation:a .56s ease-in-out}.github-corner:hover .octo-arm{-webkit-animation:none;animation:none}}@-webkit-keyframes a{0%,to{-webkit-transform:rotate(0);transform:rotate(0)}20%,60%{-webkit-transform:rotate(-25deg);transform:rotate(-25deg)}40%,80%{-webkit-transform:rotate(10deg);transform:rotate(10deg)}}@keyframes a{0%,to{-webkit-transform:rotate(0);transform:rotate(0)}20%,60%{-webkit-transform:rotate(-25deg);transform:rotate(-25deg)}40%,80%{-webkit-transform:rotate(10deg);transform:rotate(10deg)}}section.cover{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-position:50%;background-repeat:no-repeat;background-size:cover;height:100vh;display:none}section.cover .cover-main{-webkit-box-flex:1;-ms-flex:1;flex:1;margin:-20px 16px 0;text-align:center;z-index:1}section.cover a{color:inherit}section.cover a,section.cover a:hover{text-decoration:none}section.cover p{line-height:24px;line-height:1.5rem;margin:1em 0}section.cover h1{color:inherit;font-size:40px;font-size:2.5rem;font-weight:300;margin:10px 0 40px;margin:.625rem 0 2.5rem;position:relative;text-align:center}section.cover h1 a{display:block}section.cover h1 small{bottom:-7px;bottom:-.4375rem;font-size:16px;font-size:1rem;position:absolute}section.cover blockquote{font-size:24px;font-size:1.5rem;text-align:center}section.cover ul{line-height:1.8;list-style-type:none;margin:1em auto;max-width:500px;padding:0}section.cover .cover-main>p:last-child a{border-color:#0074d9;border:1px solid var(--theme-color,#0074d9);border-radius:2rem;box-sizing:border-box;color:#0074d9;color:var(--theme-color,#0074d9);display:inline-block;font-size:16.8px;font-size:1.05rem;letter-spacing:1.6px;letter-spacing:.1rem;margin:8px 16px;margin:.5rem 1rem;padding:.75em 32px;padding:.75em 2rem;text-decoration:none;transition:all .15s ease}section.cover .cover-main>p:last-child a:last-child{background-color:#0074d9;background-color:var(--theme-color,#0074d9);color:#fff}section.cover .cover-main>p:last-child a:last-child:hover{color:inherit;opacity:.8}section.cover .cover-main>p:last-child a:hover{color:inherit}section.cover blockquote>p>a{border-bottom:2px solid #0074d9;border-bottom:2px solid var(--theme-color,#0074d9);transition:color .3s}section.cover blockquote>p>a:hover{color:#0074d9;color:var(--theme-color,#0074d9)}section.cover.show{display:-webkit-box;display:-ms-flexbox;display:flex}section.cover.has-mask .mask{background-color:#fff;opacity:.8;position:absolute;top:0;width:100%;height:100%}.sidebar{color:#364149;background-color:#fff}.sidebar a{color:#666;text-decoration:none}.sidebar li{list-style:none;margin:0;padding:.2em 0 .2em 16px;padding:.2em 0 .2em 1rem}.sidebar ul li ul{padding:0}.sidebar li.active{background-color:#eee}.sidebar li.active a{color:#333}.markdown-section h1,.markdown-section h2,.markdown-section h3,.markdown-section h4,.markdown-section strong{color:#333;font-weight:400}.markdown-section a{color:#0074d9;color:var(--theme-color,#0074d9);font-weight:400}.markdown-section ol,.markdown-section p,.markdown-section ul{line-height:25.6px;line-height:1.6rem;margin:0 0 1em;word-spacing:.8px;word-spacing:.05rem}.markdown-section h1{font-size:32px;font-size:2rem;font-weight:500;margin:0 0 16px;margin:0 0 1rem}.markdown-section h2{font-size:28.8px;font-size:1.8rem;font-weight:400;margin:0 0 16px;margin:0 0 1rem;padding:16px 0 0;padding:1rem 0 0}.markdown-section h3{font-size:24px;font-size:1.5rem;margin:52px 0 19.2px;margin:52px 0 1.2rem}.markdown-section h4{font-size:20px;font-size:1.25rem}.markdown-section h5,.markdown-section h6{font-size:16px;font-size:1rem}.markdown-section h6{color:#777}.markdown-section figure,.markdown-section ol,.markdown-section p,.markdown-section ul{margin:1.2em 0}.markdown-section ol,.markdown-section ul{padding-left:24px;padding-left:1.5rem}.markdown-section li{line-height:1.5;margin:0}.markdown-section blockquote{border-left:4px solid #0074d9;border-left:4px solid var(--theme-color,#0074d9);color:#858585;margin:2em 0;padding-left:20px}.markdown-section blockquote p{font-weight:600;margin-left:0}.markdown-section iframe{margin:1em 0}.markdown-section em{color:#7f8c8d}.markdown-section code{border-radius:3px;padding:.2em 6.4px;padding:.2em .4rem;white-space:nowrap}.markdown-section code,.markdown-section pre{background-color:#f9f9f9;font-family:Inconsolata}.markdown-section pre{border-left:2px solid #eee;font-size:16px;margin:0 0 1em;padding:8px;padding:0 10px 12px 0;overflow:auto;word-wrap:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#93a1a1}.token.punctuation{color:#586e75}.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#268bd2}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string,.token.url{color:#2aa198}.token.entity{color:#657b83;background:#eee8d5}.token.atrule,.token.attr-value,.token.keyword{color:#a11}.token.function{color:#b58900}.token.important,.token.regex,.token.variable{color:#cb4b16}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.markdown-section pre>code{background-color:#f8f8f8;border-radius:2px;display:block;font-family:Inconsolata;line-height:17.6px;line-height:1.1rem;max-width:inherit;overflow:inherit;padding:20px .8em;position:relative;white-space:inherit}.markdown-section code:after,.markdown-section code:before{letter-spacing:.8px;letter-spacing:.05rem}code .token{-webkit-font-smoothing:initial;-moz-osx-font-smoothing:initial;min-height:24px;min-height:1.5rem} \ No newline at end of file diff --git a/lib/themes/dark.css b/lib/themes/dark.css deleted file mode 100644 index ac98f08..0000000 --- a/lib/themes/dark.css +++ /dev/null @@ -1 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Roboto+Mono|Source+Sans+Pro:300,400,600");*{-webkit-font-smoothing:antialiased;-webkit-overflow-scrolling:touch;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-text-size-adjust:none;-webkit-touch-callout:none;box-sizing:border-box}body:not(.ready){overflow:hidden}body:not(.ready) .app-nav,body:not(.ready)>nav,body:not(.ready) [data-cloak]{display:none}div#app{font-size:30px;font-weight:lighter;margin:40vh auto;text-align:center}div#app:empty:before{content:"Loading..."}.emoji{height:19.2px;height:1.2rem;vertical-align:middle}.progress{background-color:#ea6f5a;background-color:var(--theme-color,#ea6f5a);height:2px;left:0;position:fixed;right:0;top:0;transition:width .2s,opacity .4s;width:0;z-index:5}.search .search-keyword,.search a:hover{color:#ea6f5a;color:var(--theme-color,#ea6f5a)}.search .search-keyword{font-style:normal;font-weight:700}body,html{height:100%}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:#c8c8c8;font-family:Source Sans Pro,Helvetica Neue,Arial,sans-serif;font-size:15px;letter-spacing:0;margin:0;overflow-x:hidden}img{max-width:100%}a[disabled]{cursor:not-allowed;opacity:.6}kbd{border:1px solid #ccc;border-radius:3px;display:inline-block;font-size:12px!important;line-height:12px;margin-bottom:3px;padding:3px 5px;vertical-align:middle}.task-list-item{list-style-type:none}li input[type=checkbox]{margin:0 .2em .25em -1.6em;vertical-align:middle}.app-nav{margin:25px 60px 0 0;position:absolute;right:0;text-align:right;z-index:2}.app-nav p{margin:0}.app-nav>a{margin:0 16px;margin:0 1rem;padding:5px 0}.app-nav li,.app-nav ul{display:inline-block;list-style:none;margin:0}.app-nav a{color:inherit;font-size:16px;text-decoration:none;transition:color .3s}.app-nav a.active,.app-nav a:hover{color:#ea6f5a;color:var(--theme-color,#ea6f5a)}.app-nav a.active{border-bottom:2px solid #ea6f5a;border-bottom:2px solid var(--theme-color,#ea6f5a)}.app-nav li{display:inline-block;margin:0 16px;margin:0 1rem;padding:5px 0;position:relative}.app-nav li ul{background-color:#fff;border:1px solid #ddd;border-bottom-color:#ccc;border-radius:4px;box-sizing:border-box;display:none;max-height:calc(100vh - 61px);overflow-y:auto;padding:10px 0;position:absolute;right:-15px;text-align:left;top:100%;white-space:nowrap}.app-nav li ul li{display:block;font-size:14px;line-height:16px;line-height:1rem;margin:0;margin:8px 14px;white-space:nowrap}.app-nav li ul a{display:block;font-size:inherit;margin:0;padding:0}.app-nav li ul a.active{border-bottom:0}.app-nav li:hover ul{display:block}.app-nav.no-badge{margin-right:25px}.github-corner{border-bottom:0;position:fixed;right:0;text-decoration:none;top:0;z-index:1}.github-corner svg{color:#3f3f3f;fill:#ea6f5a;fill:var(--theme-color,#ea6f5a);height:80px;width:80px}.github-corner:hover .octo-arm{-webkit-animation:a .56s ease-in-out;animation:a .56s ease-in-out}main{display:block;position:relative;width:100vw;height:100%;z-index:0}main.hidden{display:none}.anchor{display:inline-block;text-decoration:none;transition:all .3s}.anchor span{color:#c8c8c8}.anchor:hover{text-decoration:underline}.sidebar{border-right:1px solid rgba(0,0,0,.07);overflow-y:auto;padding:40px 0 0;top:0;bottom:0;left:0;position:absolute;transition:-webkit-transform .25s ease-out;transition:transform .25s ease-out;transition:transform .25s ease-out,-webkit-transform .25s ease-out;width:300px;z-index:3}.sidebar>h1{margin:0 auto 16px;margin:0 auto 1rem;font-size:24px;font-size:1.5rem;font-weight:300;text-align:center}.sidebar>h1 a{color:inherit;text-decoration:none}.sidebar>h1 .app-nav{display:block;position:static}.sidebar .sidebar-nav{line-height:2em;padding-bottom:40px}.sidebar li.collapse .app-sub-sidebar{display:none}.sidebar ul{margin:0;padding:0}.sidebar li>p{font-weight:700;margin:0}.sidebar ul,.sidebar ul li{list-style:none}.sidebar ul li a{border-bottom:none;display:block}.sidebar ul li ul{padding-left:20px}.sidebar::-webkit-scrollbar{width:4px}.sidebar::-webkit-scrollbar-thumb{background:transparent;border-radius:4px}.sidebar:hover::-webkit-scrollbar-thumb{background:hsla(0,0%,53%,.4)}.sidebar:hover::-webkit-scrollbar-track{background:hsla(0,0%,53%,.1)}.sidebar-toggle{background-color:transparent;background-color:rgba(63,63,63,.8);border:0;outline:none;padding:10px;bottom:0;left:0;position:absolute;text-align:center;transition:opacity .3s;width:30px;width:284px;z-index:4}.sidebar-toggle .sidebar-toggle-button:hover{opacity:.4}.sidebar-toggle span{background-color:#ea6f5a;background-color:var(--theme-color,#ea6f5a);display:block;margin-bottom:4px;width:16px;height:2px}body.sticky .sidebar,body.sticky .sidebar-toggle{position:fixed}.content{padding-top:60px;top:0;right:0;bottom:0;left:300px;position:absolute;transition:left .25s ease}.markdown-section{margin:0 auto;max-width:800px;padding:30px 15px 40px;position:relative}.markdown-section>*{box-sizing:border-box;font-size:inherit}.markdown-section>:first-child{margin-top:0!important}.markdown-section hr{border:none;border-bottom:1px solid #eee;margin:2em 0}.markdown-section iframe{border:1px solid #eee}.markdown-section table{border-collapse:collapse;border-spacing:0;display:block;margin-bottom:16px;margin-bottom:1rem;overflow:auto;width:100%}.markdown-section th{font-weight:700}.markdown-section td,.markdown-section th{border:1px solid #ddd;padding:6px 13px}.markdown-section tr{border-top:1px solid #ccc}.markdown-section p.tip,.markdown-section tr:nth-child(2n){background-color:#f8f8f8}.markdown-section p.tip{border-bottom-right-radius:2px;border-left:4px solid #f66;border-top-right-radius:2px;margin:2em 0;padding:12px 24px 12px 30px;position:relative}.markdown-section p.tip code{background-color:#efefef}.markdown-section p.tip em{color:#c8c8c8}.markdown-section p.tip:before{background-color:#f66;border-radius:100%;color:#3f3f3f;content:"!";font-family:Dosis,Source Sans Pro,Helvetica Neue,Arial,sans-serif;font-size:14px;font-weight:700;left:-12px;line-height:20px;position:absolute;width:20px;height:20px;text-align:center;top:14px}.markdown-section p.warn{background:hsla(9,77%,64%,.1);border-radius:2px;padding:16px;padding:1rem}body.close .sidebar{-webkit-transform:translateX(-300px);transform:translateX(-300px)}body.close .sidebar-toggle{width:auto}body.close .content{left:0}@media print{.app-nav,.github-corner,.sidebar,.sidebar-toggle{display:none}}@media screen and (max-width:768px){.github-corner,.sidebar,.sidebar-toggle{position:fixed}.app-nav{margin-top:16px}.app-nav li ul{top:30px}main{height:auto;overflow-x:hidden}.sidebar{left:-300px;transition:-webkit-transform .25s ease-out;transition:transform .25s ease-out;transition:transform .25s ease-out,-webkit-transform .25s ease-out}.content{left:0;max-width:100vw;position:static;padding-top:20px;transition:-webkit-transform .25s ease;transition:transform .25s ease;transition:transform .25s ease,-webkit-transform .25s ease}.app-nav,.github-corner{transition:-webkit-transform .25s ease-out;transition:transform .25s ease-out;transition:transform .25s ease-out,-webkit-transform .25s ease-out}.sidebar-toggle{background-color:transparent;width:auto;padding:30px 30px 10px 10px}body.close .sidebar{-webkit-transform:translateX(300px);transform:translateX(300px)}body.close .sidebar-toggle{background-color:rgba(63,63,63,.8);transition:background-color 1s;width:284px;padding:10px}body.close .content{-webkit-transform:translateX(300px);transform:translateX(300px)}body.close .app-nav,body.close .github-corner{display:none}.github-corner .octo-arm{-webkit-animation:a .56s ease-in-out;animation:a .56s ease-in-out}.github-corner:hover .octo-arm{-webkit-animation:none;animation:none}}@-webkit-keyframes a{0%,to{-webkit-transform:rotate(0);transform:rotate(0)}20%,60%{-webkit-transform:rotate(-25deg);transform:rotate(-25deg)}40%,80%{-webkit-transform:rotate(10deg);transform:rotate(10deg)}}@keyframes a{0%,to{-webkit-transform:rotate(0);transform:rotate(0)}20%,60%{-webkit-transform:rotate(-25deg);transform:rotate(-25deg)}40%,80%{-webkit-transform:rotate(10deg);transform:rotate(10deg)}}section.cover{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-position:50%;background-repeat:no-repeat;background-size:cover;height:100vh;display:none}section.cover .cover-main{-webkit-box-flex:1;-ms-flex:1;flex:1;margin:-20px 16px 0;text-align:center;z-index:1}section.cover a{color:inherit}section.cover a,section.cover a:hover{text-decoration:none}section.cover p{line-height:24px;line-height:1.5rem;margin:1em 0}section.cover h1{color:inherit;font-size:40px;font-size:2.5rem;font-weight:300;margin:10px 0 40px;margin:.625rem 0 2.5rem;position:relative;text-align:center}section.cover h1 a{display:block}section.cover h1 small{bottom:-7px;bottom:-.4375rem;font-size:16px;font-size:1rem;position:absolute}section.cover blockquote{font-size:24px;font-size:1.5rem;text-align:center}section.cover ul{line-height:1.8;list-style-type:none;margin:1em auto;max-width:500px;padding:0}section.cover .cover-main>p:last-child a{border-color:#ea6f5a;border:1px solid var(--theme-color,#ea6f5a);border-radius:2rem;box-sizing:border-box;color:#ea6f5a;color:var(--theme-color,#ea6f5a);display:inline-block;font-size:16.8px;font-size:1.05rem;letter-spacing:1.6px;letter-spacing:.1rem;margin:8px 16px;margin:.5rem 1rem;padding:.75em 32px;padding:.75em 2rem;text-decoration:none;transition:all .15s ease}section.cover .cover-main>p:last-child a:last-child{background-color:#ea6f5a;background-color:var(--theme-color,#ea6f5a);color:#fff}section.cover .cover-main>p:last-child a:last-child:hover{color:inherit;opacity:.8}section.cover .cover-main>p:last-child a:hover{color:inherit}section.cover blockquote>p>a{border-bottom:2px solid #ea6f5a;border-bottom:2px solid var(--theme-color,#ea6f5a);transition:color .3s}section.cover blockquote>p>a:hover{color:#ea6f5a;color:var(--theme-color,#ea6f5a)}section.cover.show{display:-webkit-box;display:-ms-flexbox;display:flex}section.cover.has-mask .mask{background-color:#3f3f3f;opacity:.8;position:absolute;top:0;width:100%;height:100%}.sidebar,body{background-color:#3f3f3f}.sidebar{color:#c8c8c8}.sidebar li{margin:6px 15px}.sidebar ul li a{color:#c8c8c8;font-size:14px;overflow:hidden;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.sidebar ul li a:hover{text-decoration:underline}.sidebar ul li ul{padding:0}.sidebar ul li.active>a{color:#ea6f5a;color:var(--theme-color,#ea6f5a);font-weight:600}.markdown-section h1,.markdown-section h2,.markdown-section h3,.markdown-section h4,.markdown-section strong{color:#657b83;font-weight:600}.markdown-section a{color:#ea6f5a;color:var(--theme-color,#ea6f5a);font-weight:600}.markdown-section h1{font-size:32px;font-size:2rem;margin:0 0 16px;margin:0 0 1rem}.markdown-section h2{font-size:28px;font-size:1.75rem;margin:45px 0 12.8px;margin:45px 0 .8rem}.markdown-section h3{font-size:24px;font-size:1.5rem;margin:40px 0 9.6px;margin:40px 0 .6rem}.markdown-section h4{font-size:20px;font-size:1.25rem}.markdown-section h5,.markdown-section h6{font-size:16px;font-size:1rem}.markdown-section h6{color:#777}.markdown-section figure,.markdown-section ol,.markdown-section p,.markdown-section ul{margin:1.2em 0}.markdown-section ol,.markdown-section p,.markdown-section ul{line-height:25.6px;line-height:1.6rem;word-spacing:.8px;word-spacing:.05rem}.markdown-section ol,.markdown-section ul{padding-left:24px;padding-left:1.5rem}.markdown-section blockquote{border-left:4px solid #ea6f5a;border-left:4px solid var(--theme-color,#ea6f5a);color:#858585;margin:2em 0;padding-left:20px}.markdown-section blockquote p{font-weight:600;margin-left:0}.markdown-section iframe{margin:1em 0}.markdown-section em{color:#7f8c8d}.markdown-section code{border-radius:2px;color:#657b83;font-size:12.8px;font-size:.8rem;margin:0 2px;padding:3px 5px;white-space:pre-wrap}.markdown-section code,.markdown-section pre{background-color:#282828;font-family:Roboto Mono,Monaco,courier,monospace}.markdown-section pre{-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;line-height:24px;line-height:1.5rem;margin:1.2em 0;overflow:auto;padding:0 22.4px;padding:0 1.4rem;position:relative;word-wrap:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#8e908c}.token.namespace{opacity:.7}.token.boolean,.token.number{color:#c76b29}.token.punctuation{color:#525252}.token.property{color:#c08b30}.token.tag{color:#2973b7}.token.string{color:#ea6f5a;color:var(--theme-color,#ea6f5a)}.token.selector{color:#6679cc}.token.attr-name{color:#2973b7}.language-css .token.string,.style .token.string,.token.entity,.token.url{color:#22a2c9}.token.attr-value,.token.control,.token.directive,.token.unit{color:#ea6f5a;color:var(--theme-color,#ea6f5a)}.token.keyword{color:#e96900}.token.atrule,.token.regex,.token.statement{color:#22a2c9}.token.placeholder,.token.variable{color:#3d8fd1}.token.deleted{text-decoration:line-through}.token.inserted{border-bottom:1px dotted #202746;text-decoration:none}.token.italic{font-style:italic}.token.bold,.token.important{font-weight:700}.token.important{color:#c94922}.token.entity{cursor:help}.markdown-section pre>code{-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;background-color:#282828;border-radius:2px;color:#657b83;display:block;font-family:Roboto Mono,Monaco,courier,monospace;font-size:12.8px;font-size:.8rem;line-height:inherit;margin:0 2px;max-width:inherit;overflow:inherit;padding:2.2em 5px;white-space:inherit}.markdown-section code:after,.markdown-section code:before{letter-spacing:.8px;letter-spacing:.05rem}code .token{-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;min-height:24px;min-height:1.5rem}pre:after{color:#ccc;content:attr(data-lang);font-size:9.6px;font-size:.6rem;font-weight:600;height:15px;line-height:15px;padding:5px 10px 0;position:absolute;right:0;text-align:right;top:0}.markdown-section p.tip{background-color:#282828;color:#657b83}input[type=search]{background:#4f4f4f;border-color:#4f4f4f;color:#c8c8c8} \ No newline at end of file diff --git a/lib/themes/pure.css b/lib/themes/pure.css deleted file mode 100644 index 642c6c4..0000000 --- a/lib/themes/pure.css +++ /dev/null @@ -1 +0,0 @@ -*{-webkit-font-smoothing:antialiased;-webkit-overflow-scrolling:touch;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-text-size-adjust:none;-webkit-touch-callout:none;box-sizing:border-box}body:not(.ready){overflow:hidden}body:not(.ready) .app-nav,body:not(.ready)>nav,body:not(.ready) [data-cloak]{display:none}div#app{font-size:30px;font-weight:lighter;margin:40vh auto;text-align:center}div#app:empty:before{content:"Loading..."}.emoji{height:19.2px;height:1.2rem;vertical-align:middle}.progress{background-color:#000;background-color:var(--theme-color,#000);height:2px;left:0;position:fixed;right:0;top:0;transition:width .2s,opacity .4s;width:0;z-index:5}.search .search-keyword,.search a:hover{color:#000;color:var(--theme-color,#000)}.search .search-keyword{font-style:normal;font-weight:700}body,html{height:100%}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:#000;font-family:Source Sans Pro,Helvetica Neue,Arial,sans-serif;font-size:15px;letter-spacing:0;margin:0;overflow-x:hidden}img{max-width:100%}a[disabled]{cursor:not-allowed;opacity:.6}kbd{border:1px solid #ccc;border-radius:3px;display:inline-block;font-size:12px!important;line-height:12px;margin-bottom:3px;padding:3px 5px;vertical-align:middle}.task-list-item{list-style-type:none}li input[type=checkbox]{margin:0 .2em .25em -1.6em;vertical-align:middle}.app-nav{margin:25px 60px 0 0;position:absolute;right:0;text-align:right;z-index:2}.app-nav p{margin:0}.app-nav>a{margin:0 16px;margin:0 1rem;padding:5px 0}.app-nav li,.app-nav ul{display:inline-block;list-style:none;margin:0}.app-nav a{color:inherit;font-size:16px;text-decoration:none;transition:color .3s}.app-nav a.active,.app-nav a:hover{color:#000;color:var(--theme-color,#000)}.app-nav a.active{border-bottom:2px solid #000;border-bottom:2px solid var(--theme-color,#000)}.app-nav li{display:inline-block;margin:0 16px;margin:0 1rem;padding:5px 0;position:relative}.app-nav li ul{background-color:#fff;border:1px solid #ddd;border-bottom-color:#ccc;border-radius:4px;box-sizing:border-box;display:none;max-height:calc(100vh - 61px);overflow-y:auto;padding:10px 0;position:absolute;right:-15px;text-align:left;top:100%;white-space:nowrap}.app-nav li ul li{display:block;font-size:14px;line-height:16px;line-height:1rem;margin:0;margin:8px 14px;white-space:nowrap}.app-nav li ul a{display:block;font-size:inherit;margin:0;padding:0}.app-nav li ul a.active{border-bottom:0}.app-nav li:hover ul{display:block}.app-nav.no-badge{margin-right:25px}.github-corner{border-bottom:0;position:fixed;right:0;text-decoration:none;top:0;z-index:1}.github-corner svg{color:#fff;fill:#000;fill:var(--theme-color,#000);height:80px;width:80px}.github-corner:hover .octo-arm{-webkit-animation:a .56s ease-in-out;animation:a .56s ease-in-out}main{display:block;position:relative;width:100vw;height:100%;z-index:0}main.hidden{display:none}.anchor{display:inline-block;text-decoration:none;transition:all .3s}.anchor span{color:#000}.anchor:hover{text-decoration:underline}.sidebar{border-right:1px solid rgba(0,0,0,.07);overflow-y:auto;padding:40px 0 0;top:0;bottom:0;left:0;position:absolute;transition:-webkit-transform .25s ease-out;transition:transform .25s ease-out;transition:transform .25s ease-out,-webkit-transform .25s ease-out;width:300px;z-index:3}.sidebar>h1{margin:0 auto 16px;margin:0 auto 1rem;font-size:24px;font-size:1.5rem;font-weight:300;text-align:center}.sidebar>h1 a{color:inherit;text-decoration:none}.sidebar>h1 .app-nav{display:block;position:static}.sidebar .sidebar-nav{line-height:2em;padding-bottom:40px}.sidebar li.collapse .app-sub-sidebar{display:none}.sidebar ul{margin:0;padding:0}.sidebar li>p{font-weight:700;margin:0}.sidebar ul,.sidebar ul li{list-style:none}.sidebar ul li a{border-bottom:none;display:block}.sidebar ul li ul{padding-left:20px}.sidebar::-webkit-scrollbar{width:4px}.sidebar::-webkit-scrollbar-thumb{background:transparent;border-radius:4px}.sidebar:hover::-webkit-scrollbar-thumb{background:hsla(0,0%,53%,.4)}.sidebar:hover::-webkit-scrollbar-track{background:hsla(0,0%,53%,.1)}.sidebar-toggle{background-color:transparent;background-color:hsla(0,0%,100%,.8);border:0;outline:none;padding:10px;bottom:0;left:0;position:absolute;text-align:center;transition:opacity .3s;width:30px;width:284px;z-index:4}.sidebar-toggle .sidebar-toggle-button:hover{opacity:.4}.sidebar-toggle span{background-color:#000;background-color:var(--theme-color,#000);display:block;margin-bottom:4px;width:16px;height:2px}body.sticky .sidebar,body.sticky .sidebar-toggle{position:fixed}.content{padding-top:60px;top:0;right:0;bottom:0;left:300px;position:absolute;transition:left .25s ease}.markdown-section{margin:0 auto;max-width:800px;padding:30px 15px 40px;position:relative}.markdown-section>*{box-sizing:border-box;font-size:inherit}.markdown-section>:first-child{margin-top:0!important}.markdown-section hr{border:none;border-bottom:1px solid #eee;margin:2em 0}.markdown-section iframe{border:1px solid #eee}.markdown-section table{border-collapse:collapse;border-spacing:0;display:block;margin-bottom:16px;margin-bottom:1rem;overflow:auto;width:100%}.markdown-section th{font-weight:700}.markdown-section td,.markdown-section th{border:1px solid #ddd;padding:6px 13px}.markdown-section tr{border-top:1px solid #ccc}.markdown-section p.tip,.markdown-section tr:nth-child(2n){background-color:#f8f8f8}.markdown-section p.tip{border-bottom-right-radius:2px;border-left:4px solid #f66;border-top-right-radius:2px;margin:2em 0;padding:12px 24px 12px 30px;position:relative}.markdown-section p.tip code{background-color:#efefef}.markdown-section p.tip em{color:#000}.markdown-section p.tip:before{background-color:#f66;border-radius:100%;color:#fff;content:"!";font-family:Dosis,Source Sans Pro,Helvetica Neue,Arial,sans-serif;font-size:14px;font-weight:700;left:-12px;line-height:20px;position:absolute;width:20px;height:20px;text-align:center;top:14px}.markdown-section p.warn{background:rgba(0,0,0,.1);border-radius:2px;padding:16px;padding:1rem}body.close .sidebar{-webkit-transform:translateX(-300px);transform:translateX(-300px)}body.close .sidebar-toggle{width:auto}body.close .content{left:0}@media print{.app-nav,.github-corner,.sidebar,.sidebar-toggle{display:none}}@media screen and (max-width:768px){.github-corner,.sidebar,.sidebar-toggle{position:fixed}.app-nav{margin-top:16px}.app-nav li ul{top:30px}main{height:auto;overflow-x:hidden}.sidebar{left:-300px;transition:-webkit-transform .25s ease-out;transition:transform .25s ease-out;transition:transform .25s ease-out,-webkit-transform .25s ease-out}.content{left:0;max-width:100vw;position:static;padding-top:20px;transition:-webkit-transform .25s ease;transition:transform .25s ease;transition:transform .25s ease,-webkit-transform .25s ease}.app-nav,.github-corner{transition:-webkit-transform .25s ease-out;transition:transform .25s ease-out;transition:transform .25s ease-out,-webkit-transform .25s ease-out}.sidebar-toggle{background-color:transparent;width:auto;padding:30px 30px 10px 10px}body.close .sidebar{-webkit-transform:translateX(300px);transform:translateX(300px)}body.close .sidebar-toggle{background-color:hsla(0,0%,100%,.8);transition:background-color 1s;width:284px;padding:10px}body.close .content{-webkit-transform:translateX(300px);transform:translateX(300px)}body.close .app-nav,body.close .github-corner{display:none}.github-corner .octo-arm{-webkit-animation:a .56s ease-in-out;animation:a .56s ease-in-out}.github-corner:hover .octo-arm{-webkit-animation:none;animation:none}}@-webkit-keyframes a{0%,to{-webkit-transform:rotate(0);transform:rotate(0)}20%,60%{-webkit-transform:rotate(-25deg);transform:rotate(-25deg)}40%,80%{-webkit-transform:rotate(10deg);transform:rotate(10deg)}}@keyframes a{0%,to{-webkit-transform:rotate(0);transform:rotate(0)}20%,60%{-webkit-transform:rotate(-25deg);transform:rotate(-25deg)}40%,80%{-webkit-transform:rotate(10deg);transform:rotate(10deg)}}section.cover{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-position:50%;background-repeat:no-repeat;background-size:cover;height:100vh;display:none}section.cover .cover-main{-webkit-box-flex:1;-ms-flex:1;flex:1;margin:-20px 16px 0;text-align:center;z-index:1}section.cover a{color:inherit}section.cover a,section.cover a:hover{text-decoration:none}section.cover p{line-height:24px;line-height:1.5rem;margin:1em 0}section.cover h1{color:inherit;font-size:40px;font-size:2.5rem;font-weight:300;margin:10px 0 40px;margin:.625rem 0 2.5rem;position:relative;text-align:center}section.cover h1 a{display:block}section.cover h1 small{bottom:-7px;bottom:-.4375rem;font-size:16px;font-size:1rem;position:absolute}section.cover blockquote{font-size:24px;font-size:1.5rem;text-align:center}section.cover ul{line-height:1.8;list-style-type:none;margin:1em auto;max-width:500px;padding:0}section.cover .cover-main>p:last-child a{border-color:#000;border:1px solid var(--theme-color,#000);border-radius:2rem;box-sizing:border-box;color:#000;color:var(--theme-color,#000);display:inline-block;font-size:16.8px;font-size:1.05rem;letter-spacing:1.6px;letter-spacing:.1rem;margin:8px 16px;margin:.5rem 1rem;padding:.75em 32px;padding:.75em 2rem;text-decoration:none;transition:all .15s ease}section.cover .cover-main>p:last-child a:last-child{background-color:#000;background-color:var(--theme-color,#000);color:#fff}section.cover .cover-main>p:last-child a:last-child:hover{color:inherit;opacity:.8}section.cover .cover-main>p:last-child a:hover{color:inherit}section.cover blockquote>p>a{border-bottom:2px solid #000;border-bottom:2px solid var(--theme-color,#000);transition:color .3s}section.cover blockquote>p>a:hover{color:#000;color:var(--theme-color,#000)}section.cover.show{display:-webkit-box;display:-ms-flexbox;display:flex}section.cover.has-mask .mask{background-color:#fff;opacity:.8;position:absolute;top:0;width:100%;height:100%} \ No newline at end of file diff --git a/lib/themes/vue.css b/lib/themes/vue.css deleted file mode 100644 index 326c63b..0000000 --- a/lib/themes/vue.css +++ /dev/null @@ -1 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Roboto+Mono|Source+Sans+Pro:300,400,600");*{-webkit-font-smoothing:antialiased;-webkit-overflow-scrolling:touch;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-text-size-adjust:none;-webkit-touch-callout:none;box-sizing:border-box}body:not(.ready){overflow:hidden}body:not(.ready) .app-nav,body:not(.ready)>nav,body:not(.ready) [data-cloak]{display:none}div#app{font-size:30px;font-weight:lighter;margin:40vh auto;text-align:center}div#app:empty:before{content:"Loading..."}.emoji{height:19.2px;height:1.2rem;vertical-align:middle}.progress{background-color:#42b983;background-color:var(--theme-color,#42b983);height:2px;left:0;position:fixed;right:0;top:0;transition:width .2s,opacity .4s;width:0;z-index:5}.search .search-keyword,.search a:hover{color:#42b983;color:var(--theme-color,#42b983)}.search .search-keyword{font-style:normal;font-weight:700}body,html{height:100%}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:#34495e;font-family:Source Sans Pro,Helvetica Neue,Arial,sans-serif;font-size:15px;letter-spacing:0;margin:0;overflow-x:hidden}img{max-width:100%}a[disabled]{cursor:not-allowed;opacity:.6}kbd{border:1px solid #ccc;border-radius:3px;display:inline-block;font-size:12px!important;line-height:12px;margin-bottom:3px;padding:3px 5px;vertical-align:middle}.task-list-item{list-style-type:none}li input[type=checkbox]{margin:0 .2em .25em -1.6em;vertical-align:middle}.app-nav{margin:25px 60px 0 0;position:absolute;right:0;text-align:right;z-index:2}.app-nav p{margin:0}.app-nav>a{margin:0 16px;margin:0 1rem;padding:5px 0}.app-nav li,.app-nav ul{display:inline-block;list-style:none;margin:0}.app-nav a{color:inherit;font-size:16px;text-decoration:none;transition:color .3s}.app-nav a.active,.app-nav a:hover{color:#42b983;color:var(--theme-color,#42b983)}.app-nav a.active{border-bottom:2px solid #42b983;border-bottom:2px solid var(--theme-color,#42b983)}.app-nav li{display:inline-block;margin:0 16px;margin:0 1rem;padding:5px 0;position:relative}.app-nav li ul{background-color:#fff;border:1px solid #ddd;border-bottom-color:#ccc;border-radius:4px;box-sizing:border-box;display:none;max-height:calc(100vh - 61px);overflow-y:auto;padding:10px 0;position:absolute;right:-15px;text-align:left;top:100%;white-space:nowrap}.app-nav li ul li{display:block;font-size:14px;line-height:16px;line-height:1rem;margin:0;margin:8px 14px;white-space:nowrap}.app-nav li ul a{display:block;font-size:inherit;margin:0;padding:0}.app-nav li ul a.active{border-bottom:0}.app-nav li:hover ul{display:block}.app-nav.no-badge{margin-right:25px}.github-corner{border-bottom:0;position:fixed;right:0;text-decoration:none;top:0;z-index:1}.github-corner svg{color:#fff;fill:#42b983;fill:var(--theme-color,#42b983);height:80px;width:80px}.github-corner:hover .octo-arm{-webkit-animation:a .56s ease-in-out;animation:a .56s ease-in-out}main{display:block;position:relative;width:100vw;height:100%;z-index:0}main.hidden{display:none}.anchor{display:inline-block;text-decoration:none;transition:all .3s}.anchor span{color:#34495e}.anchor:hover{text-decoration:underline}.sidebar{border-right:1px solid rgba(0,0,0,.07);overflow-y:auto;padding:40px 0 0;top:0;bottom:0;left:0;position:absolute;transition:-webkit-transform .25s ease-out;transition:transform .25s ease-out;transition:transform .25s ease-out,-webkit-transform .25s ease-out;width:300px;z-index:3}.sidebar>h1{margin:0 auto 16px;margin:0 auto 1rem;font-size:24px;font-size:1.5rem;font-weight:300;text-align:center}.sidebar>h1 a{color:inherit;text-decoration:none}.sidebar>h1 .app-nav{display:block;position:static}.sidebar .sidebar-nav{line-height:2em;padding-bottom:40px}.sidebar li.collapse .app-sub-sidebar{display:none}.sidebar ul{margin:0;padding:0}.sidebar li>p{font-weight:700;margin:0}.sidebar ul,.sidebar ul li{list-style:none}.sidebar ul li a{border-bottom:none;display:block}.sidebar ul li ul{padding-left:20px}.sidebar::-webkit-scrollbar{width:4px}.sidebar::-webkit-scrollbar-thumb{background:transparent;border-radius:4px}.sidebar:hover::-webkit-scrollbar-thumb{background:hsla(0,0%,53%,.4)}.sidebar:hover::-webkit-scrollbar-track{background:hsla(0,0%,53%,.1)}.sidebar-toggle{background-color:transparent;background-color:hsla(0,0%,100%,.8);border:0;outline:none;padding:10px;bottom:0;left:0;position:absolute;text-align:center;transition:opacity .3s;width:30px;width:284px;z-index:4}.sidebar-toggle .sidebar-toggle-button:hover{opacity:.4}.sidebar-toggle span{background-color:#42b983;background-color:var(--theme-color,#42b983);display:block;margin-bottom:4px;width:16px;height:2px}body.sticky .sidebar,body.sticky .sidebar-toggle{position:fixed}.content{padding-top:60px;top:0;right:0;bottom:0;left:300px;position:absolute;transition:left .25s ease}.markdown-section{margin:0 auto;max-width:800px;padding:30px 15px 40px;position:relative}.markdown-section>*{box-sizing:border-box;font-size:inherit}.markdown-section>:first-child{margin-top:0!important}.markdown-section hr{border:none;border-bottom:1px solid #eee;margin:2em 0}.markdown-section iframe{border:1px solid #eee}.markdown-section table{border-collapse:collapse;border-spacing:0;display:block;margin-bottom:16px;margin-bottom:1rem;overflow:auto;width:100%}.markdown-section th{font-weight:700}.markdown-section td,.markdown-section th{border:1px solid #ddd;padding:6px 13px}.markdown-section tr{border-top:1px solid #ccc}.markdown-section p.tip,.markdown-section tr:nth-child(2n){background-color:#f8f8f8}.markdown-section p.tip{border-bottom-right-radius:2px;border-left:4px solid #f66;border-top-right-radius:2px;margin:2em 0;padding:12px 24px 12px 30px;position:relative}.markdown-section p.tip code{background-color:#efefef}.markdown-section p.tip em{color:#34495e}.markdown-section p.tip:before{background-color:#f66;border-radius:100%;color:#fff;content:"!";font-family:Dosis,Source Sans Pro,Helvetica Neue,Arial,sans-serif;font-size:14px;font-weight:700;left:-12px;line-height:20px;position:absolute;width:20px;height:20px;text-align:center;top:14px}.markdown-section p.warn{background:rgba(66,185,131,.1);border-radius:2px;padding:16px;padding:1rem}body.close .sidebar{-webkit-transform:translateX(-300px);transform:translateX(-300px)}body.close .sidebar-toggle{width:auto}body.close .content{left:0}@media print{.app-nav,.github-corner,.sidebar,.sidebar-toggle{display:none}}@media screen and (max-width:768px){.github-corner,.sidebar,.sidebar-toggle{position:fixed}.app-nav{margin-top:16px}.app-nav li ul{top:30px}main{height:auto;overflow-x:hidden}.sidebar{left:-300px;transition:-webkit-transform .25s ease-out;transition:transform .25s ease-out;transition:transform .25s ease-out,-webkit-transform .25s ease-out}.content{left:0;max-width:100vw;position:static;padding-top:20px;transition:-webkit-transform .25s ease;transition:transform .25s ease;transition:transform .25s ease,-webkit-transform .25s ease}.app-nav,.github-corner{transition:-webkit-transform .25s ease-out;transition:transform .25s ease-out;transition:transform .25s ease-out,-webkit-transform .25s ease-out}.sidebar-toggle{background-color:transparent;width:auto;padding:30px 30px 10px 10px}body.close .sidebar{-webkit-transform:translateX(300px);transform:translateX(300px)}body.close .sidebar-toggle{background-color:hsla(0,0%,100%,.8);transition:background-color 1s;width:284px;padding:10px}body.close .content{-webkit-transform:translateX(300px);transform:translateX(300px)}body.close .app-nav,body.close .github-corner{display:none}.github-corner .octo-arm{-webkit-animation:a .56s ease-in-out;animation:a .56s ease-in-out}.github-corner:hover .octo-arm{-webkit-animation:none;animation:none}}@-webkit-keyframes a{0%,to{-webkit-transform:rotate(0);transform:rotate(0)}20%,60%{-webkit-transform:rotate(-25deg);transform:rotate(-25deg)}40%,80%{-webkit-transform:rotate(10deg);transform:rotate(10deg)}}@keyframes a{0%,to{-webkit-transform:rotate(0);transform:rotate(0)}20%,60%{-webkit-transform:rotate(-25deg);transform:rotate(-25deg)}40%,80%{-webkit-transform:rotate(10deg);transform:rotate(10deg)}}section.cover{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-position:50%;background-repeat:no-repeat;background-size:cover;height:100vh;display:none}section.cover .cover-main{-webkit-box-flex:1;-ms-flex:1;flex:1;margin:-20px 16px 0;text-align:center;z-index:1}section.cover a{color:inherit}section.cover a,section.cover a:hover{text-decoration:none}section.cover p{line-height:24px;line-height:1.5rem;margin:1em 0}section.cover h1{color:inherit;font-size:40px;font-size:2.5rem;font-weight:300;margin:10px 0 40px;margin:.625rem 0 2.5rem;position:relative;text-align:center}section.cover h1 a{display:block}section.cover h1 small{bottom:-7px;bottom:-.4375rem;font-size:16px;font-size:1rem;position:absolute}section.cover blockquote{font-size:24px;font-size:1.5rem;text-align:center}section.cover ul{line-height:1.8;list-style-type:none;margin:1em auto;max-width:500px;padding:0}section.cover .cover-main>p:last-child a{border-color:#42b983;border:1px solid var(--theme-color,#42b983);border-radius:2rem;box-sizing:border-box;color:#42b983;color:var(--theme-color,#42b983);display:inline-block;font-size:16.8px;font-size:1.05rem;letter-spacing:1.6px;letter-spacing:.1rem;margin:8px 16px;margin:.5rem 1rem;padding:.75em 32px;padding:.75em 2rem;text-decoration:none;transition:all .15s ease}section.cover .cover-main>p:last-child a:last-child{background-color:#42b983;background-color:var(--theme-color,#42b983);color:#fff}section.cover .cover-main>p:last-child a:last-child:hover{color:inherit;opacity:.8}section.cover .cover-main>p:last-child a:hover{color:inherit}section.cover blockquote>p>a{border-bottom:2px solid #42b983;border-bottom:2px solid var(--theme-color,#42b983);transition:color .3s}section.cover blockquote>p>a:hover{color:#42b983;color:var(--theme-color,#42b983)}section.cover.show{display:-webkit-box;display:-ms-flexbox;display:flex}section.cover.has-mask .mask{background-color:#fff;opacity:.8;position:absolute;top:0;width:100%;height:100%}.sidebar,body{background-color:#fff}.sidebar{color:#364149}.sidebar li{margin:6px 0 6px 15px}.sidebar ul li a{color:#505d6b;font-size:14px;font-weight:400;overflow:hidden;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.sidebar ul li a:hover{text-decoration:underline}.sidebar ul li ul{padding:0}.sidebar ul li.active>a{border-right:2px solid;color:#42b983;color:var(--theme-color,#42b983);font-weight:600}.app-sub-sidebar li:before{content:"-";padding-right:4px;float:left}.markdown-section h1,.markdown-section h2,.markdown-section h3,.markdown-section h4,.markdown-section strong{color:#2c3e50;font-weight:600}.markdown-section a{color:#42b983;color:var(--theme-color,#42b983);font-weight:600}.markdown-section h1{font-size:32px;font-size:2rem;margin:0 0 16px;margin:0 0 1rem}.markdown-section h2{font-size:28px;font-size:1.75rem;margin:45px 0 12.8px;margin:45px 0 .8rem}.markdown-section h3{font-size:24px;font-size:1.5rem;margin:40px 0 9.6px;margin:40px 0 .6rem}.markdown-section h4{font-size:20px;font-size:1.25rem}.markdown-section h5,.markdown-section h6{font-size:16px;font-size:1rem}.markdown-section h6{color:#777}.markdown-section figure,.markdown-section p{margin:1.2em 0}.markdown-section ol,.markdown-section p,.markdown-section ul{line-height:25.6px;line-height:1.6rem;word-spacing:.8px;word-spacing:.05rem}.markdown-section ol,.markdown-section ul{padding-left:24px;padding-left:1.5rem}.markdown-section blockquote{border-left:4px solid #42b983;border-left:4px solid var(--theme-color,#42b983);color:#858585;margin:2em 0;padding-left:20px}.markdown-section blockquote p{font-weight:600;margin-left:0}.markdown-section iframe{margin:1em 0}.markdown-section em{color:#7f8c8d}.markdown-section code{border-radius:2px;color:#e96900;font-size:12.8px;font-size:.8rem;margin:0 2px;padding:3px 5px;white-space:pre-wrap}.markdown-section code,.markdown-section pre{background-color:#f8f8f8;font-family:Roboto Mono,Monaco,courier,monospace}.markdown-section pre{-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;line-height:24px;line-height:1.5rem;margin:1.2em 0;overflow:auto;padding:0 22.4px;padding:0 1.4rem;position:relative;word-wrap:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#8e908c}.token.namespace{opacity:.7}.token.boolean,.token.number{color:#c76b29}.token.punctuation{color:#525252}.token.property{color:#c08b30}.token.tag{color:#2973b7}.token.string{color:#42b983;color:var(--theme-color,#42b983)}.token.selector{color:#6679cc}.token.attr-name{color:#2973b7}.language-css .token.string,.style .token.string,.token.entity,.token.url{color:#22a2c9}.token.attr-value,.token.control,.token.directive,.token.unit{color:#42b983;color:var(--theme-color,#42b983)}.token.keyword{color:#e96900}.token.atrule,.token.regex,.token.statement{color:#22a2c9}.token.placeholder,.token.variable{color:#3d8fd1}.token.deleted{text-decoration:line-through}.token.inserted{border-bottom:1px dotted #202746;text-decoration:none}.token.italic{font-style:italic}.token.bold,.token.important{font-weight:700}.token.important{color:#c94922}.token.entity{cursor:help}.markdown-section pre>code{-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;background-color:#f8f8f8;border-radius:2px;color:#525252;display:block;font-family:Roboto Mono,Monaco,courier,monospace;font-size:12.8px;font-size:.8rem;line-height:inherit;margin:0 2px;max-width:inherit;overflow:inherit;padding:2.2em 5px;white-space:inherit}.markdown-section code:after,.markdown-section code:before{letter-spacing:.8px;letter-spacing:.05rem}code .token{-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;min-height:24px;min-height:1.5rem}pre:after{color:#ccc;content:attr(data-lang);font-size:9.6px;font-size:.6rem;font-weight:600;height:15px;line-height:15px;padding:5px 10px 0;position:absolute;right:0;text-align:right;top:0} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index cd0dd71..bb18bcb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,38 +1,66 @@ { "name": "docsify", - "version": "4.6.0", + "version": "4.9.4", "lockfileVersion": 1, "requires": true, "dependencies": { "JSONStream": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.2.tgz", - "integrity": "sha1-wQI3G27Dp887hHygDCC7D85Mbeo=", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.4.tgz", + "integrity": "sha512-Y7vfi3I5oMOYIr+WxV8NZxDSwcbNgzdKYsTNInmycOq9bUYwGg9ryu57Wg5NLmCjqdFPNUmpMBo3kSJN9tCbXg==", "dev": true, "requires": { - "jsonparse": "1.3.1", - "through": "2.3.8" + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" } }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "abab": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz", + "integrity": "sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w==", "dev": true }, + "accepts": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "dev": true, + "requires": { + "mime-types": "~2.1.18", + "negotiator": "0.6.1" + } + }, "acorn": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.3.0.tgz", - "integrity": "sha512-Yej+zOJ1Dm/IMZzzj78OntP/r3zHEaKcyNoU2lAaxPtrseM6rF0xwqoz5Q5ysAiED9hTjI2hgtvLXitlCN1/Ug==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", "dev": true }, + "acorn-globals": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.0.tgz", + "integrity": "sha512-hMtHj3s5RnuhvHPowpBYvJVj3rAar82JiDQHvGs1zO0l10ocX/xEdBShNHTJaboucJUsScghp74pH3s7EnHHQw==", + "dev": true, + "requires": { + "acorn": "^6.0.1", + "acorn-walk": "^6.0.1" + }, + "dependencies": { + "acorn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.5.tgz", + "integrity": "sha512-i33Zgp3XWtmZBMNvCr4azvOFeWVw1Rk6p3hfi3LUDvIFraOMywb1kAtrbi+med14m4Xfpqm3zRZMT+c0FNE7kg==", + "dev": true + } + } + }, "acorn-jsx": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "dev": true, "requires": { - "acorn": "3.3.0" + "acorn": "^3.0.4" }, "dependencies": { "acorn": { @@ -43,13 +71,19 @@ } } }, + "acorn-walk": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.1.1.tgz", + "integrity": "sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw==", + "dev": true + }, "acorn5-object-spread": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/acorn5-object-spread/-/acorn5-object-spread-4.0.0.tgz", "integrity": "sha1-1XWAge7ZcSGrC+R+Mcqu8qo5lpc=", "dev": true, "requires": { - "acorn": "5.3.0" + "acorn": "^5.1.2" } }, "add-stream": { @@ -64,10 +98,10 @@ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.0.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "ajv-keywords": { @@ -76,17 +110,6 @@ "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", "dev": true }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "dev": true, - "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" - } - }, "alphanum-sort": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", @@ -99,82 +122,46 @@ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", "dev": true }, - "ansi-align": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", - "dev": true, - "requires": { - "string-width": "2.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - } - } - }, "ansi-escapes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz", - "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==", - "dev": true + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=" }, "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", - "dev": true + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, "anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" } }, + "apache-crypt": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/apache-crypt/-/apache-crypt-1.2.1.tgz", + "integrity": "sha1-1vxyqm0n2ZyVqU/RiNcx7v/6Zjw=", + "dev": true, + "requires": { + "unix-crypt-td-js": "^1.0.0" + } + }, + "apache-md5": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/apache-md5/-/apache-md5-1.1.2.tgz", + "integrity": "sha1-7klza2ObTxCLbp5ibG2pkwa0FpI=", + "dev": true + }, "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", @@ -182,32 +169,29 @@ "dev": true }, "are-we-there-yet": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", "dev": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.2.9" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "argparse": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", - "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "1.1.0" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true }, "arr-flatten": { "version": "1.1.0", @@ -215,6 +199,24 @@ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", + "dev": true + }, + "array-filter": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", + "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=", + "dev": true + }, "array-find-index": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", @@ -227,13 +229,25 @@ "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=", "dev": true }, + "array-map": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", + "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=", + "dev": true + }, + "array-reduce": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", + "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=", + "dev": true + }, "array-union": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { - "array-uniq": "1.0.3" + "array-uniq": "^1.0.1" } }, "array-uniq": { @@ -243,9 +257,9 @@ "dev": true }, "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, "arrify": { @@ -254,120 +268,155 @@ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true }, - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "dev": true, + "requires": { + "lodash": "^4.17.10" + } + }, "async-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", "dev": true }, + "async-limiter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", + "dev": true + }, "async-to-gen": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/async-to-gen/-/async-to-gen-1.3.3.tgz", - "integrity": "sha1-1SyftIAfDfRKvE0t4YcLSLYOILs=", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/async-to-gen/-/async-to-gen-1.4.0.tgz", + "integrity": "sha1-+BV/kBPgxIfh6UAVCk0aG3iy3Ws=", "dev": true, "requires": { - "babylon": "6.17.1", - "magic-string": "0.19.1" + "babylon": "^6.14.0", + "magic-string": "^0.22.0", + "pirates": "^3.0.2" } }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, "autoprefixer": { - "version": "6.7.7", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", - "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-7.1.0.tgz", + "integrity": "sha1-rkkTrcIh+mylrTpvgDn2pcBrOHc=", "dev": true, "requires": { - "browserslist": "1.7.7", - "caniuse-db": "1.0.30000676", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } + "browserslist": "^2.1.2", + "caniuse-lite": "^1.0.30000669", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^6.0.1", + "postcss-value-parser": "^3.2.3" } }, + "autoprefixer-stylus": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/autoprefixer-stylus/-/autoprefixer-stylus-0.14.0.tgz", + "integrity": "sha1-HOk7xMHYyPKbOlZM+7oyQgQu/OA=", + "dev": true, + "requires": { + "autoprefixer": "7.1.0", + "multi-stage-sourcemap": "0.2.1", + "postcss": "6.0.1" + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "dev": true + }, "babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" } }, "babel-polyfill": { - "version": "6.7.4", - "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.7.4.tgz", - "integrity": "sha1-dX6oUuMpUrm/4NuW9GT87mQnlqg=", - "dev": true, + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.23.0.tgz", + "integrity": "sha1-g2TKYt+Or7gwSZ9pkXdGbDsDSZ0=", "requires": { - "babel-regenerator-runtime": "6.5.0", - "babel-runtime": "5.8.38", - "core-js": "2.5.3" + "babel-runtime": "^6.22.0", + "core-js": "^2.4.0", + "regenerator-runtime": "^0.10.0" } }, - "babel-regenerator-runtime": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/babel-regenerator-runtime/-/babel-regenerator-runtime-6.5.0.tgz", - "integrity": "sha1-DkHNHJ+ARCRm8BXHSf/4upj44RA=", - "dev": true - }, "babel-runtime": { - "version": "5.8.38", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz", - "integrity": "sha1-HAsC62MxL18If/IEUIJ7QlydTBk=", - "dev": true, + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "1.2.7" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" }, "dependencies": { - "core-js": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=", - "dev": true + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" } } }, "babylon": { - "version": "6.17.1", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.17.1.tgz", - "integrity": "sha1-F/FP3fNhtpWYH+Z5OF5PHAHr2G8=", + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", "dev": true }, "balanced-match": { @@ -376,138 +425,164 @@ "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", "dev": true }, - "binary-extensions": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", - "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", - "dev": true - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "boxen": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "requires": { - "ansi-align": "2.0.0", - "camelcase": "4.1.0", - "chalk": "2.3.0", - "cli-boxes": "1.0.0", - "string-width": "2.1.1", - "term-size": "1.2.0", - "widest-line": "2.0.0" + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "color-convert": "1.9.0" + "is-descriptor": "^1.0.0" } }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "chalk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", - "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "kind-of": "^6.0.0" } }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "kind-of": "^6.0.0" } }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } } } }, - "brace-expansion": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", - "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", + "basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", "dev": true, "requires": { - "balanced-match": "0.4.2", + "safe-buffer": "5.1.2" + } + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bcryptjs": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", + "integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=", + "dev": true + }, + "binary-extensions": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz", + "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", "concat-map": "0.0.1" + }, + "dependencies": { + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + } } }, "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" - } - }, - "browser-resolve": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", - "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=", - "dev": true, - "requires": { - "resolve": "1.1.7" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } } } }, + "browser-process-hrtime": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz", + "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==", + "dev": true + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, "browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "version": "2.11.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.3.tgz", + "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==", "dev": true, "requires": { - "caniuse-db": "1.0.30000676", - "electron-to-chromium": "1.3.13" + "caniuse-lite": "^1.0.30000792", + "electron-to-chromium": "^1.3.30" } }, "buble": { @@ -516,57 +591,57 @@ "integrity": "sha512-U3NJxUiSz0H1EB54PEHAuBTxdXgQH4DaQkvkINFXf9kEKCDWSn67EgQfFKbkTzsok4xRrIPsoxWDl2czCHR65g==", "dev": true, "requires": { - "acorn": "5.3.0", - "acorn-jsx": "3.0.1", - "acorn5-object-spread": "4.0.0", - "chalk": "2.3.0", - "magic-string": "0.22.4", - "minimist": "1.2.0", - "os-homedir": "1.0.2", - "vlq": "0.2.2" + "acorn": "^5.1.2", + "acorn-jsx": "^3.0.1", + "acorn5-object-spread": "^4.0.0", + "chalk": "^2.1.0", + "magic-string": "^0.22.4", + "minimist": "^1.2.0", + "os-homedir": "^1.0.1", + "vlq": "^0.2.2" }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.0" + "color-convert": "^1.9.0" } }, "chalk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", - "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "magic-string": { - "version": "0.22.4", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.4.tgz", - "integrity": "sha512-kxBL06p6iO2qPBHsqGK2b3cRwiRGpnmSuVWNhwHcMX7qJOUr1HvricYP1LZOCdkQBUp0jiWg2d6WJwR3vYgByw==", - "dev": true, - "requires": { - "vlq": "0.2.2" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, - "buffer-shims": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", - "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=", + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "dev": true }, "builtin-modules": { @@ -581,13 +656,30 @@ "integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=", "dev": true }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, "caller-path": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "dev": true, "requires": { - "callsites": "0.2.0" + "callsites": "^0.2.0" } }, "callsites": { @@ -597,19 +689,20 @@ "dev": true }, "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", "dev": true }, "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", + "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", "dev": true, "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" + "camelcase": "^4.1.0", + "map-obj": "^2.0.0", + "quick-lru": "^1.0.0" } }, "caniuse-api": { @@ -618,109 +711,110 @@ "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", "dev": true, "requires": { - "browserslist": "1.7.7", - "caniuse-db": "1.0.30000676", - "lodash.memoize": "4.1.2", - "lodash.uniq": "4.5.0" + "browserslist": "^1.3.6", + "caniuse-db": "^1.0.30000529", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + }, + "dependencies": { + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true, + "requires": { + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" + } + } } }, "caniuse-db": { - "version": "1.0.30000676", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000676.tgz", - "integrity": "sha1-gupXgjdjfI/zSiisqt43O2JMTqg=", + "version": "1.0.30000890", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000890.tgz", + "integrity": "sha512-aO5uw1Taw8GkNMMXIWOz/WJz3y6tR1ETUAdH/pvO5EoJ3I1Po9vNJd9aMjY1GKucS/OXWMiQbXRbk3O1sgCbRA==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30000890", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000890.tgz", + "integrity": "sha512-4NI3s4Y6ROm+SgZN5sLUG4k7nVWQnedis3c/RWkynV5G6cHSY7+a8fwFyn2yoBDE3E6VswhTNNwR3PvzGqlTkg==", "dev": true }, "capture-stack-trace": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", - "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", + "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==", "dev": true }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "chai": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", + "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", "dev": true, - "optional": true, "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" } }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "chardet": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=" + }, + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", "dev": true }, "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", + "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", "dev": true, "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.1.3", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0" - }, - "dependencies": { - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true, - "requires": { - "is-glob": "2.0.1" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - } + "anymatch": "^2.0.0", + "async-each": "^1.0.0", + "braces": "^2.3.0", + "fsevents": "^1.2.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "lodash.debounce": "^4.0.8", + "normalize-path": "^2.1.1", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0", + "upath": "^1.0.5" } }, "ci-info": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.2.tgz", - "integrity": "sha512-uTGIPNx/nSpBdsF6xnseRXLLtfr9VLqkz8ZqHXr3Y7b6SftyRxBGjwMtJj1OhNbmlc1wZzLNAlAcvyIiE8a6ZA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", "dev": true }, "circular-json": { @@ -730,71 +824,98 @@ "dev": true }, "clap": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/clap/-/clap-1.1.3.tgz", - "integrity": "sha1-s7026T3Uy/s5WjwmiWNSRFJlwFs=", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", + "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", "dev": true, "requires": { - "chalk": "1.1.3" + "chalk": "^1.1.3" } }, - "cli-boxes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", - "dev": true + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } }, "cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, "requires": { - "restore-cursor": "2.0.0" + "restore-cursor": "^2.0.0" } }, "cli-width": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz", - "integrity": "sha1-sjTKIJsp72b8UY2bmNWEewDt8Ao=", - "dev": true + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" }, "clipboard": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-1.7.1.tgz", - "integrity": "sha1-Ng1taUbpmnof7zleQrqStem1oWs=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.1.tgz", + "integrity": "sha512-7yhQBmtN+uYZmfRjjVjKa0dZdWuabzpSKGtyQZN+9C8xlC788SSJjOHWh7tzurfwTqTD5UDYAhIv5fRJg3sHjQ==", "optional": true, "requires": { - "good-listener": "1.2.2", - "select": "1.1.2", - "tiny-emitter": "2.0.2" + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" } }, "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "dev": true, - "optional": true, "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" }, "dependencies": { - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, - "optional": true + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } } } }, "clone": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", - "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", "dev": true }, "cmd-shim": { @@ -803,8 +924,8 @@ "integrity": "sha1-b8vamUg6j9FdfTChlspp1oii79s=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "mkdirp": "0.5.1" + "graceful-fs": "^4.1.2", + "mkdirp": "~0.5.0" } }, "co": { @@ -814,12 +935,12 @@ "dev": true }, "coa": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.2.tgz", - "integrity": "sha1-K6n+w7SqQ9eknX5sNWHpIGG2vOw=", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", + "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", "dev": true, "requires": { - "q": "1.5.0" + "q": "^1.1.2" } }, "code-point-at": { @@ -828,30 +949,40 @@ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, "color": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", "dev": true, "requires": { - "clone": "1.0.2", - "color-convert": "1.9.0", - "color-string": "0.3.0" + "clone": "^1.0.2", + "color-convert": "^1.3.0", + "color-string": "^0.3.0" } }, "color-convert": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz", - "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "requires": { - "color-name": "1.1.2" + "color-name": "1.1.3" } }, "color-name": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.2.tgz", - "integrity": "sha1-XIq3K2S9IhXWF66VWeuxSEdc+Y0=", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, "color-string": { @@ -860,7 +991,7 @@ "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", "dev": true, "requires": { - "color-name": "1.1.2" + "color-name": "^1.0.0" } }, "colormin": { @@ -869,9 +1000,9 @@ "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", "dev": true, "requires": { - "color": "0.11.4", + "color": "^0.11.0", "css-color-names": "0.0.4", - "has": "1.0.1" + "has": "^1.0.1" } }, "colors": { @@ -886,8 +1017,17 @@ "integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=", "dev": true, "requires": { - "strip-ansi": "3.0.1", - "wcwidth": "1.0.1" + "strip-ansi": "^3.0.0", + "wcwidth": "^1.0.0" + } + }, + "combined-stream": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", + "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" } }, "command-join": { @@ -897,9 +1037,9 @@ "dev": true }, "commander": { - "version": "2.12.2", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.12.2.tgz", - "integrity": "sha512-BFnaq5ZOGcDN7FlrtBT4xxkgIToalIIxwjxLWVJ8bGTpe1LroqMiqQXdA7ygc7CRvaYS+9zfPGFnJqFSayx+AA==", + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", "dev": true }, "compare-func": { @@ -908,10 +1048,16 @@ "integrity": "sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg=", "dev": true, "requires": { - "array-ify": "1.0.0", - "dot-prop": "3.0.0" + "array-ify": "^1.0.0", + "dot-prop": "^3.0.0" } }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -919,39 +1065,27 @@ "dev": true }, "concat-stream": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", - "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.2.9", - "typedarray": "0.0.6" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, - "configstore": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.1.tgz", - "integrity": "sha512-5oNkD/L++l0O6xGXxb1EWS7SivtjfGQlRyxJsYgE0Z495/L81e2h4/d3r969hoPXuFItzNOKMtsXgYG4c7dYvw==", + "connect": { + "version": "3.6.6", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz", + "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=", "dev": true, "requires": { - "dot-prop": "4.2.0", - "graceful-fs": "4.1.11", - "make-dir": "1.1.0", - "unique-string": "1.0.0", - "write-file-atomic": "2.3.0", - "xdg-basedir": "3.0.0" - }, - "dependencies": { - "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", - "dev": true, - "requires": { - "is-obj": "1.0.1" - } - } + "debug": "2.6.9", + "finalhandler": "1.1.0", + "parseurl": "~1.3.2", + "utils-merge": "1.0.1" } }, "console-control-strings": { @@ -961,110 +1095,111 @@ "dev": true }, "conventional-changelog": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-1.1.7.tgz", - "integrity": "sha1-kVGmKx2O2y2CcR2r9bfPcQQfgrE=", + "version": "1.1.24", + "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-1.1.24.tgz", + "integrity": "sha512-2WcSUst4Y3Z4hHvoMTWXMJr/DmgVdLiMOVY1Kak2LfFz+GIz2KDp5naqbFesYbfXPmaZ5p491dO0FWZIJoJw1Q==", "dev": true, "requires": { - "conventional-changelog-angular": "1.6.0", - "conventional-changelog-atom": "0.1.2", - "conventional-changelog-codemirror": "0.2.1", - "conventional-changelog-core": "1.9.5", - "conventional-changelog-ember": "0.2.10", - "conventional-changelog-eslint": "0.2.1", - "conventional-changelog-express": "0.2.1", - "conventional-changelog-jquery": "0.1.0", - "conventional-changelog-jscs": "0.1.0", - "conventional-changelog-jshint": "0.2.1" + "conventional-changelog-angular": "^1.6.6", + "conventional-changelog-atom": "^0.2.8", + "conventional-changelog-codemirror": "^0.3.8", + "conventional-changelog-core": "^2.0.11", + "conventional-changelog-ember": "^0.3.12", + "conventional-changelog-eslint": "^1.0.9", + "conventional-changelog-express": "^0.3.6", + "conventional-changelog-jquery": "^0.1.0", + "conventional-changelog-jscs": "^0.1.0", + "conventional-changelog-jshint": "^0.3.8", + "conventional-changelog-preset-loader": "^1.1.8" } }, "conventional-changelog-angular": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-1.6.0.tgz", - "integrity": "sha1-CiagcfLJ/PzyuGugz79uYwG3W/o=", + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-1.6.6.tgz", + "integrity": "sha512-suQnFSqCxRwyBxY68pYTsFkG0taIdinHLNEAX5ivtw8bCRnIgnpvcHmlR/yjUyZIrNPYAoXlY1WiEKWgSE4BNg==", "dev": true, "requires": { - "compare-func": "1.3.2", - "q": "1.5.0" + "compare-func": "^1.3.1", + "q": "^1.5.1" } }, "conventional-changelog-atom": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-0.1.2.tgz", - "integrity": "sha1-Ella1SZ6aTfDTPkAKBscZRmKTGM=", + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-0.2.8.tgz", + "integrity": "sha512-8pPZqhMbrnltNBizjoDCb/Sz85KyUXNDQxuAEYAU5V/eHn0okMBVjqc8aHWYpHrytyZWvMGbayOlDv7i8kEf6g==", "dev": true, "requires": { - "q": "1.5.0" + "q": "^1.5.1" } }, "conventional-changelog-cli": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/conventional-changelog-cli/-/conventional-changelog-cli-1.3.5.tgz", - "integrity": "sha1-RsUUliFrdAZYiIPe+m+sWJ6bsx4=", + "version": "1.3.22", + "resolved": "https://registry.npmjs.org/conventional-changelog-cli/-/conventional-changelog-cli-1.3.22.tgz", + "integrity": "sha512-pnjdIJbxjkZ5VdAX/H1wndr1G10CY8MuZgnXuJhIHglOXfIrXygb7KZC836GW9uo1u8PjEIvIw/bKX0lOmOzZg==", "dev": true, "requires": { - "add-stream": "1.0.0", - "conventional-changelog": "1.1.7", - "lodash": "4.17.4", - "meow": "3.7.0", - "tempfile": "1.1.1" + "add-stream": "^1.0.0", + "conventional-changelog": "^1.1.24", + "lodash": "^4.2.1", + "meow": "^4.0.0", + "tempfile": "^1.1.1" } }, "conventional-changelog-codemirror": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.2.1.tgz", - "integrity": "sha1-KZpPcUe681DmyBWPxUlUopHFzAk=", + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.3.8.tgz", + "integrity": "sha512-3HFZKtBXTaUCHvz7ai6nk2+psRIkldDoNzCsom0egDtVmPsvvHZkzjynhdQyULfacRSsBTaiQ0ol6nBOL4dDiQ==", "dev": true, "requires": { - "q": "1.5.0" + "q": "^1.5.1" } }, "conventional-changelog-core": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-1.9.5.tgz", - "integrity": "sha1-XbdWba18DLddr0f7spdve/mSjB0=", + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-2.0.11.tgz", + "integrity": "sha512-HvTE6RlqeEZ/NFPtQeFLsIDOLrGP3bXYr7lFLMhCVsbduF1MXIe8OODkwMFyo1i9ku9NWBwVnVn0jDmIFXjDRg==", "dev": true, "requires": { - "conventional-changelog-writer": "2.0.3", - "conventional-commits-parser": "2.1.0", - "dateformat": "1.0.12", - "get-pkg-repo": "1.4.0", - "git-raw-commits": "1.3.0", - "git-remote-origin-url": "2.0.0", - "git-semver-tags": "1.2.3", - "lodash": "4.17.4", - "normalize-package-data": "2.4.0", - "q": "1.5.0", - "read-pkg": "1.1.0", - "read-pkg-up": "1.0.1", - "through2": "2.0.3" + "conventional-changelog-writer": "^3.0.9", + "conventional-commits-parser": "^2.1.7", + "dateformat": "^3.0.0", + "get-pkg-repo": "^1.0.0", + "git-raw-commits": "^1.3.6", + "git-remote-origin-url": "^2.0.0", + "git-semver-tags": "^1.3.6", + "lodash": "^4.2.1", + "normalize-package-data": "^2.3.5", + "q": "^1.5.1", + "read-pkg": "^1.1.0", + "read-pkg-up": "^1.0.1", + "through2": "^2.0.0" } }, "conventional-changelog-ember": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-0.2.10.tgz", - "integrity": "sha512-LBBBZO6Q7ib4HhSdyCNVR25OtaXl710UJg1aSHCLmR8AjuXKs3BO8tnbY1MH+D1C+z5IFoEDkpjOddefNTyhCQ==", + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-0.3.12.tgz", + "integrity": "sha512-mmJzA7uzbrOqeF89dMMi6z17O07ORTXlTMArnLG9ZTX4oLaKNolUlxFUFlFm9JUoVWajVpaHQWjxH1EOQ+ARoQ==", "dev": true, "requires": { - "q": "1.5.0" + "q": "^1.5.1" } }, "conventional-changelog-eslint": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-0.2.1.tgz", - "integrity": "sha1-LCoRvrIW+AZJunKDQYApO2h8BmI=", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-1.0.9.tgz", + "integrity": "sha512-h87nfVh2fdk9fJIvz26wCBsbDC/KxqCc5wSlNMZbXcARtbgNbNDIF7Y7ctokFdnxkzVdaHsbINkh548T9eBA7Q==", "dev": true, "requires": { - "q": "1.5.0" + "q": "^1.5.1" } }, "conventional-changelog-express": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-0.2.1.tgz", - "integrity": "sha1-g42eHmyQmXA7FQucGaoteBdCvWw=", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-0.3.6.tgz", + "integrity": "sha512-3iWVtBJZ9RnRnZveNDzOD8QRn6g6vUif0qVTWWyi5nUIAbuN1FfPVyKdAlJJfp5Im+dE8Kiy/d2SpaX/0X678Q==", "dev": true, "requires": { - "q": "1.5.0" + "q": "^1.5.1" } }, "conventional-changelog-jquery": { @@ -1073,7 +1208,7 @@ "integrity": "sha1-Agg5cWLjhGmG5xJztsecW1+A9RA=", "dev": true, "requires": { - "q": "1.5.0" + "q": "^1.4.1" } }, "conventional-changelog-jscs": { @@ -1082,142 +1217,216 @@ "integrity": "sha1-BHnrRDzH1yxYvwvPDvHURKkvDlw=", "dev": true, "requires": { - "q": "1.5.0" + "q": "^1.4.1" } }, "conventional-changelog-jshint": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-0.2.1.tgz", - "integrity": "sha1-hhObs6yZiZ8rF36WF+CbN9mbzzo=", + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-0.3.8.tgz", + "integrity": "sha512-hn9QU4ZI/5V50wKPJNPGT4gEWgiBFpV6adieILW4MaUFynuDYOvQ71EMSj3EznJyKi/KzuXpc9dGmX8njZMjig==", "dev": true, "requires": { - "compare-func": "1.3.2", - "q": "1.5.0" + "compare-func": "^1.3.1", + "q": "^1.5.1" } }, + "conventional-changelog-preset-loader": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-1.1.8.tgz", + "integrity": "sha512-MkksM4G4YdrMlT2MbTsV2F6LXu/hZR0Tc/yenRrDIKRwBl/SP7ER4ZDlglqJsCzLJi4UonBc52Bkm5hzrOVCcw==", + "dev": true + }, "conventional-changelog-writer": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-2.0.3.tgz", - "integrity": "sha512-2E1h7UXL0fhRO5h0CxDZ5EBc5sfBZEQePvuZ+gPvApiRrICUyNDy/NQIP+2TBd4wKZQf2Zm7TxbzXHG5HkPIbA==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-3.0.9.tgz", + "integrity": "sha512-n9KbsxlJxRQsUnK6wIBRnARacvNnN4C/nxnxCkH+B/R1JS2Fa+DiP1dU4I59mEDEjgnFaN2+9wr1P1s7GYB5/Q==", "dev": true, "requires": { - "compare-func": "1.3.2", - "conventional-commits-filter": "1.1.1", - "dateformat": "1.0.12", - "handlebars": "4.0.11", - "json-stringify-safe": "5.0.1", - "lodash": "4.17.4", - "meow": "3.7.0", - "semver": "5.4.1", - "split": "1.0.1", - "through2": "2.0.3" + "compare-func": "^1.3.1", + "conventional-commits-filter": "^1.1.6", + "dateformat": "^3.0.0", + "handlebars": "^4.0.2", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.2.1", + "meow": "^4.0.0", + "semver": "^5.5.0", + "split": "^1.0.0", + "through2": "^2.0.0" } }, "conventional-commits-filter": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-1.1.1.tgz", - "integrity": "sha512-bQyatySNKHhcaeKVr9vFxYWA1W1Tdz6ybVMYDmv4/FhOXY1+fchiW07TzRbIQZhVa4cvBwrEaEUQBbCncFSdJQ==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-1.1.6.tgz", + "integrity": "sha512-KcDgtCRKJCQhyk6VLT7zR+ZOyCnerfemE/CsR3iQpzRRFbLEs0Y6rwk3mpDvtOh04X223z+1xyJ582Stfct/0Q==", "dev": true, "requires": { - "is-subset": "0.1.1", - "modify-values": "1.0.0" + "is-subset": "^0.1.1", + "modify-values": "^1.0.0" } }, "conventional-commits-parser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-2.1.0.tgz", - "integrity": "sha512-8MD05yN0Zb6aRsZnFX1ET+8rHWfWJk+my7ANCJZBU2mhz7TSB1fk2vZhkrwVy/PCllcTYAP/1T1NiWQ7Z01mKw==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-2.1.7.tgz", + "integrity": "sha512-BoMaddIEJ6B4QVMSDu9IkVImlGOSGA1I2BQyOZHeLQ6qVOJLcLKn97+fL6dGbzWEiqDzfH4OkcveULmeq2MHFQ==", "dev": true, "requires": { - "JSONStream": "1.3.2", - "is-text-path": "1.0.1", - "lodash": "4.17.4", - "meow": "3.7.0", - "split2": "2.2.0", - "through2": "2.0.3", - "trim-off-newlines": "1.0.1" + "JSONStream": "^1.0.4", + "is-text-path": "^1.0.0", + "lodash": "^4.2.1", + "meow": "^4.0.0", + "split2": "^2.0.0", + "through2": "^2.0.0", + "trim-off-newlines": "^1.0.0" } }, "conventional-recommended-bump": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-1.1.0.tgz", - "integrity": "sha512-WK0HnYnXd9e8J1YezUlfle+Pz7HB1RYvIH6gPLAXoroQTzDSfNfGM1tHHmdrJw0/4BMr+zw0U9V1WzFEfQwE3w==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-1.2.1.tgz", + "integrity": "sha512-oJjG6DkRgtnr/t/VrPdzmf4XZv8c4xKVJrVT4zrSHd92KEL+EYxSbYoKq8lQ7U5yLMw7130wrcQTLRjM/T+d4w==", "dev": true, "requires": { - "concat-stream": "1.6.0", - "conventional-commits-filter": "1.1.1", - "conventional-commits-parser": "2.1.0", - "git-raw-commits": "1.3.0", - "git-semver-tags": "1.2.3", - "meow": "3.7.0", - "object-assign": "4.1.1" + "concat-stream": "^1.4.10", + "conventional-commits-filter": "^1.1.1", + "conventional-commits-parser": "^2.1.1", + "git-raw-commits": "^1.3.0", + "git-semver-tags": "^1.3.0", + "meow": "^3.3.0", + "object-assign": "^4.0.1" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + } + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + } } }, - "core-js": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", - "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", "dev": true }, + "core-js": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==" + }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, "create-error-class": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", "dev": true, "requires": { - "capture-stack-trace": "1.0.0" + "capture-stack-trace": "^1.0.0" + } + }, + "cross-env": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.0.tgz", + "integrity": "sha512-jtdNFfFW1hB7sMhr/H6rW1Z45LFqyI431m3qU6bFXcQ3Eh7LtBuG3h74o7ohHZ3crrRkkqHlo4jYHFPcjroANg==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.5", + "is-windows": "^1.0.0" } }, "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "lru-cache": "4.1.1", - "shebang-command": "1.2.0", - "which": "1.3.0" - } - }, - "crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", - "dev": true - }, - "css-color-function": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/css-color-function/-/css-color-function-1.3.3.tgz", - "integrity": "sha1-jtJMLAIFBzM5+voAS8jBQfzLKC4=", - "dev": true, - "requires": { - "balanced-match": "0.1.0", - "color": "0.11.4", - "debug": "3.1.0", - "rgb": "0.1.0" - }, - "dependencies": { - "balanced-match": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.1.0.tgz", - "integrity": "sha1-tQS9BYabOSWd0MXvw12EMXbczEo=", - "dev": true - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "css-color-names": { @@ -1226,28 +1435,10 @@ "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", "dev": true }, - "css-font-weight-names": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/css-font-weight-names/-/css-font-weight-names-0.2.1.tgz", - "integrity": "sha1-VxDUha0pX2s/HO7EH4guMkpGtRY=", - "dev": true - }, - "css-select": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", - "dev": true, - "requires": { - "boolbase": "1.0.0", - "css-what": "2.1.0", - "domutils": "1.5.1", - "nth-check": "1.0.1" - } - }, - "css-what": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz", - "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=", + "css-parse": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.7.0.tgz", + "integrity": "sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs=", "dev": true }, "cssnano": { @@ -1256,45 +1447,63 @@ "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", "dev": true, "requires": { - "autoprefixer": "6.7.7", - "decamelize": "1.2.0", - "defined": "1.0.0", - "has": "1.0.1", - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-calc": "5.3.1", - "postcss-colormin": "2.2.2", - "postcss-convert-values": "2.6.1", - "postcss-discard-comments": "2.0.4", - "postcss-discard-duplicates": "2.1.0", - "postcss-discard-empty": "2.1.0", - "postcss-discard-overridden": "0.1.1", - "postcss-discard-unused": "2.2.3", - "postcss-filter-plugins": "2.0.2", - "postcss-merge-idents": "2.1.7", - "postcss-merge-longhand": "2.0.2", - "postcss-merge-rules": "2.1.2", - "postcss-minify-font-values": "1.0.5", - "postcss-minify-gradients": "1.0.5", - "postcss-minify-params": "1.2.2", - "postcss-minify-selectors": "2.1.1", - "postcss-normalize-charset": "1.1.1", - "postcss-normalize-url": "3.0.8", - "postcss-ordered-values": "2.2.3", - "postcss-reduce-idents": "2.4.0", - "postcss-reduce-initial": "1.0.1", - "postcss-reduce-transforms": "1.0.4", - "postcss-svgo": "2.1.6", - "postcss-unique-selectors": "2.0.2", - "postcss-value-parser": "3.3.0", - "postcss-zindex": "2.2.0" + "autoprefixer": "^6.3.1", + "decamelize": "^1.1.2", + "defined": "^1.0.0", + "has": "^1.0.1", + "object-assign": "^4.0.1", + "postcss": "^5.0.14", + "postcss-calc": "^5.2.0", + "postcss-colormin": "^2.1.8", + "postcss-convert-values": "^2.3.4", + "postcss-discard-comments": "^2.0.4", + "postcss-discard-duplicates": "^2.0.1", + "postcss-discard-empty": "^2.0.1", + "postcss-discard-overridden": "^0.1.1", + "postcss-discard-unused": "^2.2.1", + "postcss-filter-plugins": "^2.0.0", + "postcss-merge-idents": "^2.1.5", + "postcss-merge-longhand": "^2.0.1", + "postcss-merge-rules": "^2.0.3", + "postcss-minify-font-values": "^1.0.2", + "postcss-minify-gradients": "^1.0.1", + "postcss-minify-params": "^1.0.4", + "postcss-minify-selectors": "^2.0.4", + "postcss-normalize-charset": "^1.1.0", + "postcss-normalize-url": "^3.0.7", + "postcss-ordered-values": "^2.1.0", + "postcss-reduce-idents": "^2.2.2", + "postcss-reduce-initial": "^1.0.0", + "postcss-reduce-transforms": "^1.0.3", + "postcss-svgo": "^2.1.1", + "postcss-unique-selectors": "^2.0.2", + "postcss-value-parser": "^3.2.3", + "postcss-zindex": "^2.0.1" }, "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true + "autoprefixer": { + "version": "6.7.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", + "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", + "dev": true, + "requires": { + "browserslist": "^1.7.6", + "caniuse-db": "^1.0.30000634", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^5.2.16", + "postcss-value-parser": "^3.2.3" + } + }, + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true, + "requires": { + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" + } }, "postcss": { "version": "5.2.18", @@ -1302,10 +1511,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -1314,7 +1523,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -1325,8 +1534,23 @@ "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", "dev": true, "requires": { - "clap": "1.1.3", - "source-map": "0.5.6" + "clap": "^1.0.9", + "source-map": "^0.5.3" + } + }, + "cssom": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.4.tgz", + "integrity": "sha512-+7prCSORpXNeR4/fUP3rL+TzqtiFfhMvTd7uEqMdgPvLPt4+uzFUeufx5RHjGTACCargg/DiEt/moMQmvnfkog==", + "dev": true + }, + "cssstyle": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.1.1.tgz", + "integrity": "sha512-364AI1l/M5TYcFH83JnOH/pSqgaNnKmYgKrm0didZMGKWjQB60dymwWy1rKUgL3J1ffdq9xVi2yGLHdSjjSNog==", + "dev": true, + "requires": { + "cssom": "0.3.x" } }, "currently-unhandled": { @@ -1335,7 +1559,7 @@ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, "requires": { - "array-find-index": "1.0.2" + "array-find-index": "^1.0.1" } }, "dargs": { @@ -1344,23 +1568,39 @@ "integrity": "sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "data-urls": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", + "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", + "dev": true, + "requires": { + "abab": "^2.0.0", + "whatwg-mimetype": "^2.2.0", + "whatwg-url": "^7.0.0" } }, "dateformat": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", - "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", - "dev": true, - "requires": { - "get-stdin": "4.0.1", - "meow": "3.7.0" - } + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "dev": true }, "debug": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" @@ -1372,16 +1612,49 @@ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, + "decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "dev": true, + "requires": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + } + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, "dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", "dev": true }, + "deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, + "requires": { + "type-detect": "^4.0.0" + } + }, "deep-extend": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", - "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true }, "deep-is": { @@ -1396,7 +1669,57 @@ "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "dev": true, "requires": { - "clone": "1.0.2" + "clone": "^1.0.2" + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } } }, "defined": { @@ -1411,15 +1734,29 @@ "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "dev": true, "requires": { - "globby": "5.0.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.0", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "rimraf": "2.6.1" + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } } }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, "delegate": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", @@ -1433,9 +1770,9 @@ "dev": true }, "depd": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", - "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", "dev": true }, "destroy": { @@ -1450,144 +1787,28 @@ "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=", "dev": true }, - "directory-encoder": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/directory-encoder/-/directory-encoder-0.7.2.tgz", - "integrity": "sha1-WbTiqk8lQi9sY7UntGL14tDdLFg=", - "dev": true, - "requires": { - "fs-extra": "0.23.1", - "handlebars": "1.3.0", - "img-stats": "0.5.2" - }, - "dependencies": { - "async": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", - "dev": true, - "optional": true - }, - "fs-extra": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.23.1.tgz", - "integrity": "sha1-ZhHbpq3yq43Jxp+rN83fiBgVfj0=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "2.4.0", - "path-is-absolute": "1.0.1", - "rimraf": "2.6.1" - } - }, - "handlebars": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-1.3.0.tgz", - "integrity": "sha1-npsTCpPjiUkTItl1zz7BgYw3zjQ=", - "dev": true, - "requires": { - "optimist": "0.3.7", - "uglify-js": "2.3.6" - } - }, - "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11" - } - }, - "optimist": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz", - "integrity": "sha1-yQlBrVnkJzMokjB00s8ufLxuwNk=", - "dev": true, - "requires": { - "wordwrap": "0.0.3" - } - }, - "source-map": { - "version": "0.1.43", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", - "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", - "dev": true, - "optional": true, - "requires": { - "amdefine": "1.0.1" - } - }, - "uglify-js": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.3.6.tgz", - "integrity": "sha1-+gmEdwtCi3qbKoBY9GNV0U/vIRo=", - "dev": true, - "optional": true, - "requires": { - "async": "0.2.10", - "optimist": "0.3.7", - "source-map": "0.1.43" - } - }, - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", - "dev": true - } - } - }, - "doctrine": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.2.tgz", - "integrity": "sha512-y0tm5Pq6ywp3qSTZ1vPgVdAnbDEoeoc5wlOHXoY1c4Wug/a7JvqHIl7BTvwodaHmejWkK/9dSb3sCYfyo/om8A==", - "dev": true, - "requires": { - "esutils": "2.0.2" - } - }, - "dom-serializer": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", - "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", - "dev": true, - "requires": { - "domelementtype": "1.1.3", - "entities": "1.1.1" - }, - "dependencies": { - "domelementtype": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", - "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", - "dev": true - } - } - }, - "domelementtype": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", - "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", "dev": true }, - "domhandler": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz", - "integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=", + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { - "domelementtype": "1.3.0" + "esutils": "^2.0.2" } }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "domexception": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", + "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", "dev": true, "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" + "webidl-conversions": "^4.0.2" } }, "dot-prop": { @@ -1596,7 +1817,7 @@ "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=", "dev": true, "requires": { - "is-obj": "1.0.1" + "is-obj": "^1.0.0" } }, "duplexer": { @@ -1611,6 +1832,16 @@ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", "dev": true }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -1618,30 +1849,56 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.13", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.13.tgz", - "integrity": "sha1-GzperObgh7teJXoQCwy/6Bsokfw=", + "version": "1.3.75", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.75.tgz", + "integrity": "sha512-nLo03Qpw++8R6BxDZL/B1c8SQvUe/htdgc5LWYHe5YotV2jVvRUMP5AlOmxOsyeOzgMiXrNln2mC05Ixz6vuUQ==", "dev": true }, "encodeurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", - "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", "dev": true }, - "entities": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", - "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", - "dev": true + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "requires": { + "iconv-lite": "~0.4.13" + } }, "error-ex": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", + "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" + } + }, + "es-to-primitive": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", + "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" } }, "escape-html": { @@ -1653,52 +1910,80 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, - "eslint": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.14.0.tgz", - "integrity": "sha512-Ul6CSGRjKscEyg0X/EeNs7o2XdnbTEOD1OM8cTjmx85RPcBJQrEhZLevhuJZNAE/vS2iVl5Uhgiqf3h5uLMCJQ==", + "escodegen": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.0.tgz", + "integrity": "sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw==", "dev": true, "requires": { - "ajv": "5.5.2", - "babel-code-frame": "6.26.0", - "chalk": "2.3.0", - "concat-stream": "1.6.0", - "cross-spawn": "5.1.0", - "debug": "3.1.0", - "doctrine": "2.0.2", - "eslint-scope": "3.7.1", - "eslint-visitor-keys": "1.0.0", - "espree": "3.5.2", - "esquery": "1.0.0", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.2", - "globals": "11.1.0", - "ignore": "3.3.7", - "imurmurhash": "0.1.4", - "inquirer": "3.3.0", - "is-resolvable": "1.0.1", - "js-yaml": "3.10.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.4", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.0", - "require-uncached": "1.0.3", - "semver": "5.4.1", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + } + } + }, + "eslint": { + "version": "4.19.1", + "resolved": "http://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", + "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", + "dev": true, + "requires": { + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.4", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^1.0.1", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", "table": "4.0.2", - "text-table": "0.2.0" + "text-table": "~0.2.0" }, "dependencies": { "ansi-regex": { @@ -1708,85 +1993,116 @@ "dev": true }, "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.0" + "color-convert": "^1.9.0" } }, "chalk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", - "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, "esprima": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, "js-yaml": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", - "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", + "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "dev": true, "requires": { - "argparse": "1.0.9", - "esprima": "4.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" } } } }, - "eslint-config-vue": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/eslint-config-vue/-/eslint-config-vue-2.0.2.tgz", - "integrity": "sha1-o6sQBImeSTJ6lMY+JNR6OWsvSEg=", + "eslint-config-xo": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/eslint-config-xo/-/eslint-config-xo-0.20.1.tgz", + "integrity": "sha512-bhDRezvlbYNZn8SHv0WE8aPsdPtH3sq1IU2SznyOtmRwi6e/XQkzs+Kaw1hA9Pz4xmkG796egIsFY2RD6fwUeQ==", "dev": true }, - "eslint-plugin-vue": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-4.0.1.tgz", - "integrity": "sha1-r9qSz9fnNjsfvbGnct1jNZqc6Wo=", + "eslint-config-xo-space": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/eslint-config-xo-space/-/eslint-config-xo-space-0.18.0.tgz", + "integrity": "sha512-WtOEyZ4kvs2RDfK2bCQ24qlbJ8Izc/AfkjqD7DqKqXXih2I4brHxIoQwtgDdnbYWgFG4LuS/f6cn7zBE/JVLSw==", "dev": true, "requires": { - "require-all": "2.2.0", - "vue-eslint-parser": "2.0.1" + "eslint-config-xo": "^0.20.0" } }, "eslint-scope": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", - "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", "dev": true, "requires": { - "esrecurse": "4.2.0", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint-visitor-keys": { @@ -1795,14 +2111,20 @@ "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", "dev": true }, + "esm": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.1.4.tgz", + "integrity": "sha512-GScwIz0110RTNzBmAQEdqaAYkD9zVhj2Jo+jeizjIcdyTw+C6S0Zv/dlPYgfF41hRTu2f1vQYliubzIkusx2gA==", + "dev": true + }, "espree": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.2.tgz", - "integrity": "sha512-sadKeYwaR/aJ3stC2CdvgXu1T16TdYN+qwCpcWbMnGJ8s0zNWemzrvb2GbD4OhmJ/fwpJjudThAlLobGbWZbCQ==", + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", + "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "dev": true, "requires": { - "acorn": "5.3.0", - "acorn-jsx": "3.0.1" + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" } }, "esprima": { @@ -1812,22 +2134,21 @@ "dev": true }, "esquery": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", - "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", + "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.0.0" } }, "esrecurse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", - "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { - "estraverse": "4.2.0", - "object-assign": "4.1.1" + "estraverse": "^4.1.0" } }, "estraverse": { @@ -1856,26 +2177,41 @@ }, "event-stream": { "version": "3.3.4", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", + "resolved": "http://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", "dev": true, "requires": { - "duplexer": "0.1.1", - "from": "0.1.7", - "map-stream": "0.1.0", + "duplexer": "~0.1.1", + "from": "~0", + "map-stream": "~0.1.0", "pause-stream": "0.0.11", - "split": "0.3.3", - "stream-combiner": "0.0.4", - "through": "2.3.8" + "split": "0.3", + "stream-combiner": "~0.0.4", + "through": "~2.3.1" }, "dependencies": { + "map-stream": { + "version": "0.1.0", + "resolved": "http://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", + "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=", + "dev": true + }, "split": { "version": "0.3.3", - "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", + "resolved": "http://registry.npmjs.org/split/-/split-0.3.3.tgz", "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", "dev": true, "requires": { - "through": "2.3.8" + "through": "2" + } + }, + "stream-combiner": { + "version": "0.0.4", + "resolved": "http://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", + "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", + "dev": true, + "requires": { + "duplexer": "~0.1.1" } } } @@ -1886,22 +2222,61 @@ "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=", "dev": true, "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + } } }, "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "is-posix-bracket": "0.1.1" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, "expand-range": { @@ -1910,41 +2285,163 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "requires": { - "fill-range": "2.2.3" - } - }, - "external-editor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.1.0.tgz", - "integrity": "sha512-E44iT5QVOUJBKij4IIV3uvxuNlbKS38Tw1HiupxEIHPv9qtC2PrDYohbXV5U+1jnfIXttny8gUhj+oZvflFlzA==", - "dev": true, - "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.19", - "tmp": "0.0.33" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" + "fill-range": "^2.1.0" }, "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true + "fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "dev": true, + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } } } }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "2.2.0", + "resolved": "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, "fast-deep-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", - "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", "dev": true }, "fast-json-stable-stringify": { @@ -1959,13 +2456,21 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, + "faye-websocket": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", + "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, "figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { @@ -1974,8 +2479,8 @@ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "dev": true, "requires": { - "flat-cache": "1.3.0", - "object-assign": "4.1.1" + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" } }, "filename-regex": { @@ -1985,26 +2490,50 @@ "dev": true }, "fill-range": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "1.1.7", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "finalhandler": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.3.1", + "unpipe": "~1.0.0" } }, "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "locate-path": "^2.0.0" } }, "flat-cache": { @@ -2013,10 +2542,10 @@ "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", "dev": true, "requires": { - "circular-json": "0.3.3", - "del": "2.2.2", - "graceful-fs": "4.1.11", - "write": "0.2.1" + "circular-json": "^0.3.1", + "del": "^2.0.2", + "graceful-fs": "^4.1.2", + "write": "^0.2.1" } }, "flatten": { @@ -2037,7 +2566,33 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "dev": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" } }, "fresh": { @@ -2058,45 +2613,9 @@ "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "4.0.0", - "universalify": "0.1.1" - } - }, - "fs-promise": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/fs-promise/-/fs-promise-0.5.0.tgz", - "integrity": "sha1-Q0fWv2JGVacGGkMZITw5MnatPvM=", - "dev": true, - "requires": { - "any-promise": "1.3.0", - "fs-extra": "0.26.7", - "mz": "2.7.0", - "thenify-all": "1.6.0" - }, - "dependencies": { - "fs-extra": { - "version": "0.26.7", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.26.7.tgz", - "integrity": "sha1-muH92UiXeY7at20JGM9C0MMYT6k=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "2.4.0", - "klaw": "1.3.1", - "path-is-absolute": "1.0.1", - "rimraf": "2.6.1" - } - }, - "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11" - } - } + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, "fs.realpath": { @@ -2106,39 +2625,29 @@ "dev": true }, "fsevents": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", - "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", "dev": true, "optional": true, "requires": { - "nan": "2.8.0", - "node-pre-gyp": "0.6.39" + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" }, "dependencies": { "abbrev": { - "version": "1.1.0", + "version": "1.1.1", "bundled": true, "dev": true, "optional": true }, - "ajv": { - "version": "4.11.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" - } - }, "ansi-regex": { "version": "2.1.1", "bundled": true, "dev": true }, "aproba": { - "version": "1.1.1", + "version": "1.2.0", "bundled": true, "dev": true, "optional": true @@ -2149,92 +2658,26 @@ "dev": true, "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.2.9" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, - "asn1": { - "version": "0.2.3", - "bundled": true, - "dev": true, - "optional": true - }, - "assert-plus": { - "version": "0.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "asynckit": { - "version": "0.4.0", - "bundled": true, - "dev": true, - "optional": true - }, - "aws-sign2": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "aws4": { - "version": "1.6.0", - "bundled": true, - "dev": true, - "optional": true - }, "balanced-match": { - "version": "0.4.2", - "bundled": true, - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } - }, - "block-stream": { - "version": "0.0.9", - "bundled": true, - "dev": true, - "requires": { - "inherits": "2.0.3" - } - }, - "boom": { - "version": "2.10.1", - "bundled": true, - "dev": true, - "requires": { - "hoek": "2.16.3" - } - }, - "brace-expansion": { - "version": "1.1.7", - "bundled": true, - "dev": true, - "requires": { - "balanced-match": "0.4.2", - "concat-map": "0.0.1" - } - }, - "buffer-shims": { "version": "1.0.0", "bundled": true, "dev": true }, - "caseless": { - "version": "0.12.0", + "brace-expansion": { + "version": "1.1.11", "bundled": true, "dev": true, - "optional": true + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } }, - "co": { - "version": "4.6.0", + "chownr": { + "version": "1.0.1", "bundled": true, "dev": true, "optional": true @@ -2244,14 +2687,6 @@ "bundled": true, "dev": true }, - "combined-stream": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "requires": { - "delayed-stream": "1.0.0" - } - }, "concat-map": { "version": "0.0.1", "bundled": true, @@ -2265,35 +2700,11 @@ "core-util-is": { "version": "1.0.2", "bundled": true, - "dev": true - }, - "cryptiles": { - "version": "2.0.5", - "bundled": true, "dev": true, - "requires": { - "boom": "2.10.1" - } - }, - "dashdash": { - "version": "1.14.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } + "optional": true }, "debug": { - "version": "2.6.8", + "version": "2.6.9", "bundled": true, "dev": true, "optional": true, @@ -2302,16 +2713,11 @@ } }, "deep-extend": { - "version": "0.4.2", + "version": "0.5.1", "bundled": true, "dev": true, "optional": true }, - "delayed-stream": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, "delegates": { "version": "1.0.0", "bundled": true, @@ -2319,74 +2725,25 @@ "optional": true }, "detect-libc": { - "version": "1.0.2", + "version": "1.0.3", "bundled": true, "dev": true, "optional": true }, - "ecc-jsbn": { - "version": "0.1.1", + "fs-minipass": { + "version": "1.2.5", "bundled": true, "dev": true, "optional": true, "requires": { - "jsbn": "0.1.1" - } - }, - "extend": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "extsprintf": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "bundled": true, - "dev": true, - "optional": true - }, - "form-data": { - "version": "2.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.15" + "minipass": "^2.2.1" } }, "fs.realpath": { "version": "1.0.0", "bundled": true, - "dev": true - }, - "fstream": { - "version": "1.0.11", - "bundled": true, "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.1" - } - }, - "fstream-ignore": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fstream": "1.0.11", - "inherits": "2.0.3", - "minimatch": "3.0.4" - } + "optional": true }, "gauge": { "version": "2.7.4", @@ -2394,65 +2751,28 @@ "dev": true, "optional": true, "requires": { - "aproba": "1.1.1", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" - } - }, - "getpass": { - "version": "0.1.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" } }, "glob": { "version": "7.1.2", "bundled": true, "dev": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "graceful-fs": { - "version": "4.1.11", - "bundled": true, - "dev": true - }, - "har-schema": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "optional": true - }, - "har-validator": { - "version": "4.2.1", - "bundled": true, - "dev": true, "optional": true, "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "has-unicode": { @@ -2461,40 +2781,32 @@ "dev": true, "optional": true }, - "hawk": { - "version": "3.1.3", - "bundled": true, - "dev": true, - "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" - } - }, - "hoek": { - "version": "2.16.3", - "bundled": true, - "dev": true - }, - "http-signature": { - "version": "1.1.1", + "iconv-lite": { + "version": "0.4.21", "bundled": true, "dev": true, "optional": true, "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.0", - "sshpk": "1.13.0" + "safer-buffer": "^2.1.0" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" } }, "inflight": { "version": "1.0.6", "bundled": true, "dev": true, + "optional": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -2503,7 +2815,7 @@ "dev": true }, "ini": { - "version": "1.3.4", + "version": "1.3.5", "bundled": true, "dev": true, "optional": true @@ -2513,106 +2825,21 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, - "is-typedarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, "isarray": { "version": "1.0.0", "bundled": true, - "dev": true - }, - "isstream": { - "version": "0.1.2", - "bundled": true, "dev": true, "optional": true }, - "jodid25519": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "jsbn": { - "version": "0.1.1", - "bundled": true, - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "bundled": true, - "dev": true, - "optional": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "jsonify": "0.0.0" - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "jsonify": { - "version": "0.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "jsprim": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.0.2", - "json-schema": "0.2.3", - "verror": "1.3.6" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "mime-db": { - "version": "1.27.0", - "bundled": true, - "dev": true - }, - "mime-types": { - "version": "2.1.15", - "bundled": true, - "dev": true, - "requires": { - "mime-db": "1.27.0" - } - }, "minimatch": { "version": "3.0.4", "bundled": true, "dev": true, "requires": { - "brace-expansion": "1.1.7" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -2620,6 +2847,24 @@ "bundled": true, "dev": true }, + "minipass": { + "version": "2.2.4", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, "mkdirp": { "version": "0.5.1", "bundled": true, @@ -2634,23 +2879,33 @@ "dev": true, "optional": true }, - "node-pre-gyp": { - "version": "0.6.39", + "needle": { + "version": "2.2.0", "bundled": true, "dev": true, "optional": true, "requires": { - "detect-libc": "1.0.2", - "hawk": "3.1.3", - "mkdirp": "0.5.1", - "nopt": "4.0.1", - "npmlog": "4.1.0", - "rc": "1.2.1", - "request": "2.81.0", - "rimraf": "2.6.1", - "semver": "5.3.0", - "tar": "2.2.1", - "tar-pack": "3.4.0" + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.10.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" } }, "nopt": { @@ -2659,20 +2914,36 @@ "dev": true, "optional": true, "requires": { - "abbrev": "1.1.0", - "osenv": "0.1.4" + "abbrev": "1", + "osenv": "^0.1.4" } }, - "npmlog": { - "version": "4.1.0", + "npm-bundled": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.1.10", "bundled": true, "dev": true, "optional": true, "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, "number-is-nan": { @@ -2680,12 +2951,6 @@ "bundled": true, "dev": true }, - "oauth-sign": { - "version": "0.8.2", - "bundled": true, - "dev": true, - "optional": true - }, "object-assign": { "version": "4.1.1", "bundled": true, @@ -2697,7 +2962,7 @@ "bundled": true, "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -2713,53 +2978,37 @@ "optional": true }, "osenv": { - "version": "0.1.4", + "version": "0.1.5", "bundled": true, "dev": true, "optional": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "path-is-absolute": { "version": "1.0.1", "bundled": true, - "dev": true - }, - "performance-now": { - "version": "0.2.0", - "bundled": true, "dev": true, "optional": true }, "process-nextick-args": { - "version": "1.0.7", - "bundled": true, - "dev": true - }, - "punycode": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "optional": true - }, - "qs": { - "version": "6.4.0", + "version": "2.0.0", "bundled": true, "dev": true, "optional": true }, "rc": { - "version": "1.2.1", + "version": "1.2.7", "bundled": true, "dev": true, "optional": true, "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { @@ -2771,64 +3020,48 @@ } }, "readable-stream": { - "version": "2.2.9", - "bundled": true, - "dev": true, - "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "1.0.1", - "util-deprecate": "1.0.2" - } - }, - "request": { - "version": "2.81.0", + "version": "2.3.6", "bundled": true, "dev": true, "optional": true, "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.15", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.0.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.2", - "tunnel-agent": "0.6.0", - "uuid": "3.0.1" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "rimraf": { - "version": "2.6.1", + "version": "2.6.2", "bundled": true, "dev": true, + "optional": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-buffer": { - "version": "5.0.1", + "version": "5.1.1", "bundled": true, "dev": true }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, "semver": { - "version": "5.3.0", + "version": "5.5.0", "bundled": true, "dev": true, "optional": true @@ -2845,69 +3078,31 @@ "dev": true, "optional": true }, - "sntp": { - "version": "1.0.9", - "bundled": true, - "dev": true, - "requires": { - "hoek": "2.16.3" - } - }, - "sshpk": { - "version": "1.13.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jodid25519": "1.0.2", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, "string-width": { "version": "1.0.2", "bundled": true, "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string_decoder": { - "version": "1.0.1", + "version": "1.1.1", "bundled": true, "dev": true, + "optional": true, "requires": { - "safe-buffer": "5.0.1" + "safe-buffer": "~5.1.0" } }, - "stringstream": { - "version": "0.0.5", - "bundled": true, - "dev": true, - "optional": true - }, "strip-ansi": { "version": "3.0.1", "bundled": true, "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -2917,100 +3112,51 @@ "optional": true }, "tar": { - "version": "2.2.1", - "bundled": true, - "dev": true, - "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" - } - }, - "tar-pack": { - "version": "3.4.0", + "version": "4.4.1", "bundled": true, "dev": true, "optional": true, "requires": { - "debug": "2.6.8", - "fstream": "1.0.11", - "fstream-ignore": "1.0.5", - "once": "1.4.0", - "readable-stream": "2.2.9", - "rimraf": "2.6.1", - "tar": "2.2.1", - "uid-number": "0.0.6" + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" } }, - "tough-cookie": { - "version": "2.3.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "punycode": "1.4.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "bundled": true, - "dev": true - }, - "uid-number": { - "version": "0.0.6", - "bundled": true, - "dev": true, - "optional": true - }, "util-deprecate": { "version": "1.0.2", "bundled": true, - "dev": true - }, - "uuid": { - "version": "3.0.1", - "bundled": true, "dev": true, "optional": true }, - "verror": { - "version": "1.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "extsprintf": "1.0.2" - } - }, "wide-align": { "version": "1.1.2", "bundled": true, "dev": true, "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" } }, "wrappy": { "version": "1.0.2", "bundled": true, "dev": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true, + "dev": true } } }, "function-bind": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", - "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, "functional-red-black-tree": { @@ -3025,20 +3171,48 @@ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": true, "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } } }, "get-caller-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", "dev": true }, "get-pkg-repo": { @@ -3047,11 +3221,87 @@ "integrity": "sha1-xztInAbYDMVTbCyFP54FIyBWly0=", "dev": true, "requires": { - "hosted-git-info": "2.5.0", - "meow": "3.7.0", - "normalize-package-data": "2.4.0", - "parse-github-repo-url": "1.4.1", - "through2": "2.0.3" + "hosted-git-info": "^2.1.4", + "meow": "^3.3.0", + "normalize-package-data": "^2.3.0", + "parse-github-repo-url": "^1.3.0", + "through2": "^2.0.0" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + } + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + } } }, "get-port": { @@ -3072,17 +3322,32 @@ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "dev": true }, - "git-raw-commits": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-1.3.0.tgz", - "integrity": "sha1-C8hZbpDV/+c29/VUa9LRL3OrqsY=", + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { - "dargs": "4.1.0", - "lodash.template": "4.4.0", - "meow": "3.7.0", - "split2": "2.2.0", - "through2": "2.0.3" + "assert-plus": "^1.0.0" + } + }, + "git-raw-commits": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-1.3.6.tgz", + "integrity": "sha512-svsK26tQ8vEKnMshTDatSIQSMDdz8CxIIqKsvPqbtV23Etmw6VNaFAitu8zwZ0VrOne7FztwPyRLxK7/DIUTQg==", + "dev": true, + "requires": { + "dargs": "^4.0.1", + "lodash.template": "^4.0.2", + "meow": "^4.0.0", + "split2": "^2.0.0", + "through2": "^2.0.0" } }, "git-remote-origin-url": { @@ -3091,18 +3356,26 @@ "integrity": "sha1-UoJlna4hBxRaERJhEq0yFuxfpl8=", "dev": true, "requires": { - "gitconfiglocal": "1.0.0", - "pify": "2.3.0" + "gitconfiglocal": "^1.0.0", + "pify": "^2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } } }, "git-semver-tags": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-1.2.3.tgz", - "integrity": "sha1-GItFOIK/nXojr9Mbq6U32rc4jV0=", + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-1.3.6.tgz", + "integrity": "sha512-2jHlJnln4D/ECk9FxGEBh3k44wgYdWjWDtMmJPaecjoRmxKo3Y1Lh8GMYuOPu04CHw86NTAODchYjC5pnpMQig==", "dev": true, "requires": { - "meow": "3.7.0", - "semver": "5.4.1" + "meow": "^4.0.0", + "semver": "^5.5.0" } }, "gitconfiglocal": { @@ -3111,21 +3384,21 @@ "integrity": "sha1-QdBF84UaXqiPA/JMocYXgRRGS5s=", "dev": true, "requires": { - "ini": "1.3.5" + "ini": "^1.3.2" } }, "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-base": { @@ -3134,8 +3407,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "dev": true, "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" }, "dependencies": { "glob-parent": { @@ -3144,7 +3417,7 @@ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "is-extglob": { @@ -3159,7 +3432,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } } } @@ -3170,23 +3443,25 @@ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" - } - }, - "global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", - "dev": true, - "requires": { - "ini": "1.3.5" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } } }, "globals": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.1.0.tgz", - "integrity": "sha512-uEuWt9mqTlPDwSqi+sHjD4nWU/1N+q0fiWI9T1mZpD2UENqX20CFD5T/ziLZvztPaBKl7ZylUi1q6Qfm7E2CiQ==", + "version": "11.8.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.8.0.tgz", + "integrity": "sha512-io6LkyPVuzCHBSQV9fmOwxZkUk6nIaGmxheLDgmuFv89j0fm2aqDbIXKAGfzCMHqz3HLF2Zf8WSG6VqMh2qFmA==", "dev": true }, "globby": { @@ -3195,12 +3470,20 @@ "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "dev": true, "requires": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } } }, "good-listener": { @@ -3209,7 +3492,7 @@ "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", "optional": true, "requires": { - "delegate": "3.2.0" + "delegate": "^3.1.2" } }, "got": { @@ -3218,17 +3501,17 @@ "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "dev": true, "requires": { - "create-error-class": "3.0.2", - "duplexer3": "0.1.4", - "get-stream": "3.0.0", - "is-redirect": "1.0.0", - "is-retry-allowed": "1.1.0", - "is-stream": "1.1.0", - "lowercase-keys": "1.0.0", - "safe-buffer": "5.0.1", - "timed-out": "4.0.1", - "unzip-response": "2.0.1", - "url-parse-lax": "1.0.0" + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" } }, "graceful-fs": { @@ -3237,51 +3520,101 @@ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", "dev": true }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true + }, "handlebars": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", - "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.12.tgz", + "integrity": "sha512-RhmTekP+FZL+XNhwS1Wf+bTTZpdLougwt5pcgA1tuz6Jcx0fpH/7z0qd71RKnZHBCxIRBHfBOnio4gViPemNzA==", "dev": true, "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.27" + "async": "^2.5.0", + "optimist": "^0.6.1", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4" }, "dependencies": { "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "dev": true, + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.7.0.tgz", + "integrity": "sha512-RZXPviBTtfmtka9n9sy1N5M5b82CbxWIR6HIis4s3WQTXDJamc/0gpCWNGz6EWdWp4DOfjzJfhz/AS9zVPjjWg==", "dev": true, "requires": { - "amdefine": "1.0.1" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true } } }, "has": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { - "function-bind": "1.1.0" + "function-bind": "^1.1.1" } }, "has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", "dev": true }, "has-unicode": { @@ -3290,81 +3623,134 @@ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "dev": true }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true + }, "hosted-git-info": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", - "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", "dev": true }, "html-comment-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz", - "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", + "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", "dev": true }, - "htmlparser2": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", - "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", + "html-encoding-sniffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", + "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", "dev": true, "requires": { - "domelementtype": "1.3.0", - "domhandler": "2.4.1", - "domutils": "1.5.1", - "entities": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.2.9" + "whatwg-encoding": "^1.0.1" + } + }, + "http-auth": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/http-auth/-/http-auth-3.1.3.tgz", + "integrity": "sha1-lFz63WZSHq+PfISRPTd9exXyTjE=", + "dev": true, + "requires": { + "apache-crypt": "^1.1.2", + "apache-md5": "^1.0.6", + "bcryptjs": "^2.3.0", + "uuid": "^3.0.0" + }, + "dependencies": { + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true + } } }, "http-errors": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", - "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "version": "1.6.3", + "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "dev": true, "requires": { - "depd": "1.1.1", + "depd": "~1.1.2", "inherits": "2.0.3", - "setprototypeof": "1.0.3", - "statuses": "1.3.1" + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "dependencies": { + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + } } }, - "humps": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/humps/-/humps-1.1.0.tgz", - "integrity": "sha1-maBcyAsTrnVKPR4akhgvJx7x2Y8=", + "http-parser-js": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.0.tgz", + "integrity": "sha512-cZdEF7r4gfRIq7ezX9J0T+kQmJNOub71dWbgAXVHDct80TKP4MCETtZQ31xyv38UwgzkWPYF/Xc0ge55dW9Z9w==", "dev": true }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, "iconv-lite": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", - "dev": true - }, - "ignore": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz", - "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==", - "dev": true - }, - "ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", - "dev": true - }, - "img-stats": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/img-stats/-/img-stats-0.5.2.tgz", - "integrity": "sha1-wgNJbELy2esuWrgjL6dWurMsnis=", - "dev": true, + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { - "xmldom": "0.1.27" + "safer-buffer": ">= 2.1.2 < 3" } }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", "dev": true }, "imurmurhash": { @@ -3374,13 +3760,10 @@ "dev": true }, "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "requires": { - "repeating": "2.0.1" - } + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "dev": true }, "indexes-of": { "version": "1.0.1", @@ -3394,8 +3777,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -3411,84 +3794,23 @@ "dev": true }, "inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", - "dev": true, + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.0.6.tgz", + "integrity": "sha1-4EqqnQW3o8ubD0B9BDdfBEcZA0c=", "requires": { - "ansi-escapes": "3.0.0", - "chalk": "2.3.0", - "cli-cursor": "2.1.0", - "cli-width": "2.1.0", - "external-editor": "2.1.0", - "figures": "2.0.0", - "lodash": "4.17.4", + "ansi-escapes": "^1.1.0", + "chalk": "^1.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.1", + "figures": "^2.0.0", + "lodash": "^4.3.0", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rx-lite": "4.0.8", - "rx-lite-aggregates": "4.0.8", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.0" - } - }, - "chalk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", - "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - } + "run-async": "^2.2.0", + "rx": "^4.1.0", + "string-width": "^2.0.0", + "strip-ansi": "^3.0.0", + "through": "^2.3.6" } }, "invert-kv": { @@ -3503,6 +3825,26 @@ "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", "dev": true }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -3515,13 +3857,13 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "binary-extensions": "1.11.0" + "binary-extensions": "^1.0.0" } }, "is-buffer": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", - "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, "is-builtin-module": { @@ -3530,16 +3872,67 @@ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, + "is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "dev": true + }, "is-ci": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.1.0.tgz", - "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", "dev": true, "requires": { - "ci-info": "1.1.2" + "ci-info": "^1.5.0" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } } }, "is-dotfile": { @@ -3554,7 +3947,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "dev": true, "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-extendable": { @@ -3575,35 +3968,21 @@ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "2.1.1" - } - }, - "is-installed-globally": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", - "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", - "dev": true, - "requires": { - "global-dirs": "0.1.1", - "is-path-inside": "1.0.0" + "is-extglob": "^2.1.1" } }, "is-module": { @@ -3612,19 +3991,24 @@ "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", "dev": true }, - "is-npm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", - "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", - "dev": true - }, "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-obj": { @@ -3640,21 +4024,21 @@ "dev": true }, "is-path-in-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", - "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "dev": true, "requires": { - "is-path-inside": "1.0.0" + "is-path-inside": "^1.0.0" } }, "is-path-inside": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", - "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "dev": true, "requires": { - "path-is-inside": "1.0.2" + "path-is-inside": "^1.0.1" } }, "is-plain-obj": { @@ -3663,6 +4047,15 @@ "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", "dev": true }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, "is-posix-bracket": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", @@ -3678,8 +4071,7 @@ "is-promise": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" }, "is-redirect": { "version": "1.0.0", @@ -3687,10 +4079,19 @@ "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", "dev": true }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "requires": { + "has": "^1.0.1" + } + }, "is-resolvable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.1.tgz", - "integrity": "sha512-y5CXYbzvB3jTnWAZH1Nl7ykUWb6T3BcTs56HUruwBf8MhF56n1HWqhDWnVFo8GHrUPDgvUUNVhrc2U8W7iqz5g==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", "dev": true }, "is-retry-allowed": { @@ -3702,8 +4103,7 @@ "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "is-subset": { "version": "0.1.1", @@ -3717,7 +4117,16 @@ "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", "dev": true, "requires": { - "html-comment-regex": "1.1.1" + "html-comment-regex": "^1.1.0" + } + }, + "is-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "dev": true, + "requires": { + "has-symbols": "^1.0.0" } }, "is-text-path": { @@ -3726,15 +4135,33 @@ "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", "dev": true, "requires": { - "text-extensions": "1.7.0" + "text-extensions": "^1.0.0" } }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, "is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "dev": true }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -3748,18 +4175,21 @@ "dev": true }, "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true }, "js-base64": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.0.tgz", - "integrity": "sha512-Wehd+7Pf9tFvGb+ydPm9TjYjV8X1YHOVyG8QyELZxEMqOhemVwGRmoG8iQ/soqI3n8v4xn59zaLxiCJiaaRzKA==", + "version": "2.4.9", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz", + "integrity": "sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==", "dev": true }, "js-tokens": { @@ -3774,10 +4204,76 @@ "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", "dev": true, "requires": { - "argparse": "1.0.9", - "esprima": "2.7.3" + "argparse": "^1.0.7", + "esprima": "^2.6.0" } }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsdom": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-13.2.0.tgz", + "integrity": "sha512-cG1NtMWO9hWpqRNRR3dSvEQa8bFI6iLlqU2x4kwX51FQjp0qus8T9aBaAO6iGp3DeBrhdwuKxckknohkmfvsFw==", + "dev": true, + "requires": { + "abab": "^2.0.0", + "acorn": "^6.0.4", + "acorn-globals": "^4.3.0", + "array-equal": "^1.0.0", + "cssom": "^0.3.4", + "cssstyle": "^1.1.1", + "data-urls": "^1.1.0", + "domexception": "^1.0.1", + "escodegen": "^1.11.0", + "html-encoding-sniffer": "^1.0.2", + "nwsapi": "^2.0.9", + "parse5": "5.1.0", + "pn": "^1.1.0", + "request": "^2.88.0", + "request-promise-native": "^1.0.5", + "saxes": "^3.1.5", + "symbol-tree": "^3.2.2", + "tough-cookie": "^2.5.0", + "w3c-hr-time": "^1.0.1", + "w3c-xmlserializer": "^1.0.1", + "webidl-conversions": "^4.0.2", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^7.0.0", + "ws": "^6.1.2", + "xml-name-validator": "^3.0.0" + }, + "dependencies": { + "acorn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.5.tgz", + "integrity": "sha512-i33Zgp3XWtmZBMNvCr4azvOFeWVw1Rk6p3hfi3LUDvIFraOMywb1kAtrbi+med14m4Xfpqm3zRZMT+c0FNE7kg==", + "dev": true + }, + "parse5": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", + "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==", + "dev": true + } + } + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, "json-schema-traverse": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", @@ -3802,48 +4298,38 @@ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.6" } }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true + }, "jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", "dev": true }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.5" - } - }, - "klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11" - } - }, - "latest-version": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", - "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", - "dev": true, - "requires": { - "package-json": "4.0.1" - } - }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true, - "optional": true + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true }, "lcid": { "version": "1.0.0", @@ -3851,59 +4337,60 @@ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "lerna": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/lerna/-/lerna-2.5.1.tgz", - "integrity": "sha512-Qz2fajqCPtZf4SFQQpQ2R/Ml/RvGvTNuIHix/vAMMSAdbtnPe2QTw34vLD24Clfsfy8FEojy+tqsjejWKqkDFw==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/lerna/-/lerna-2.11.0.tgz", + "integrity": "sha512-kgM6zwe2P2tR30MYvgiLLW+9buFCm6E7o8HnRlhTgm70WVBvXVhydqv+q/MF2HrVZkCawfVtCfetyQmtd4oHhQ==", "dev": true, "requires": { - "async": "1.5.2", - "chalk": "2.3.0", - "cmd-shim": "2.0.2", - "columnify": "1.5.4", - "command-join": "2.0.0", - "conventional-changelog-cli": "1.3.5", - "conventional-recommended-bump": "1.1.0", - "dedent": "0.7.0", - "execa": "0.8.0", - "find-up": "2.1.0", - "fs-extra": "4.0.3", - "get-port": "3.2.0", - "glob": "7.1.2", - "glob-parent": "3.1.0", - "globby": "6.1.0", - "graceful-fs": "4.1.11", - "hosted-git-info": "2.5.0", - "inquirer": "3.3.0", - "is-ci": "1.1.0", - "load-json-file": "3.0.0", - "lodash": "4.17.4", - "minimatch": "3.0.4", - "npmlog": "4.1.2", - "p-finally": "1.0.0", - "package-json": "4.0.1", - "path-exists": "3.0.0", - "read-cmd-shim": "1.0.1", - "read-pkg": "2.0.0", - "rimraf": "2.6.1", - "safe-buffer": "5.1.1", - "semver": "5.4.1", - "signal-exit": "3.0.2", - "strong-log-transformer": "1.0.6", - "temp-write": "3.4.0", - "write-file-atomic": "2.3.0", - "write-json-file": "2.3.0", - "write-pkg": "3.1.0", - "yargs": "8.0.2" + "async": "^1.5.0", + "chalk": "^2.1.0", + "cmd-shim": "^2.0.2", + "columnify": "^1.5.4", + "command-join": "^2.0.0", + "conventional-changelog-cli": "^1.3.13", + "conventional-recommended-bump": "^1.2.1", + "dedent": "^0.7.0", + "execa": "^0.8.0", + "find-up": "^2.1.0", + "fs-extra": "^4.0.1", + "get-port": "^3.2.0", + "glob": "^7.1.2", + "glob-parent": "^3.1.0", + "globby": "^6.1.0", + "graceful-fs": "^4.1.11", + "hosted-git-info": "^2.5.0", + "inquirer": "^3.2.2", + "is-ci": "^1.0.10", + "load-json-file": "^4.0.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "npmlog": "^4.1.2", + "p-finally": "^1.0.0", + "package-json": "^4.0.1", + "path-exists": "^3.0.0", + "read-cmd-shim": "^1.0.1", + "read-pkg": "^3.0.0", + "rimraf": "^2.6.1", + "safe-buffer": "^5.1.1", + "semver": "^5.4.1", + "signal-exit": "^3.0.2", + "slash": "^1.0.0", + "strong-log-transformer": "^1.0.6", + "temp-write": "^3.3.0", + "write-file-atomic": "^2.3.0", + "write-json-file": "^2.2.0", + "write-pkg": "^3.1.0", + "yargs": "^8.0.2" }, "dependencies": { "ansi-escapes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz", - "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", + "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", "dev": true }, "ansi-regex": { @@ -3913,50 +4400,29 @@ "dev": true }, "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.0" + "color-convert": "^1.9.0" } }, + "async": { + "version": "1.5.2", + "resolved": "http://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, "chalk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", - "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" - } - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "2.0.0" - } - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "1.0.5" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "2.0.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "globby": { @@ -3965,165 +4431,56 @@ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "dev": true, "requires": { - "array-union": "1.0.2", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, "inquirer": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "dev": true, "requires": { - "ansi-escapes": "3.0.0", - "chalk": "2.3.0", - "cli-cursor": "2.1.0", - "cli-width": "2.1.0", - "external-editor": "2.1.0", - "figures": "2.0.0", - "lodash": "4.17.4", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rx-lite": "4.0.8", - "rx-lite-aggregates": "4.0.8", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" } }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, - "load-json-file": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-3.0.0.tgz", - "integrity": "sha1-frNzXZg6ftImKt5P92mvU2nFxEA=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "3.0.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" - } - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "1.1.0" - } - }, - "parse-json": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-3.0.0.tgz", - "integrity": "sha1-+m9HsY4jgm6tMvJj50TQ4ehH+xM=", - "dev": true, - "requires": { - "error-ex": "1.3.1" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "2.3.0" - } - }, "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.4.0", - "path-type": "2.0.0" - }, - "dependencies": { - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "1.3.1" - } - } - } - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" - } - }, - "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "dev": true, - "requires": { - "is-promise": "2.1.0" - } - }, - "rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", - "dev": true - }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" } }, "strip-ansi": { @@ -4132,7 +4489,16 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" } } } @@ -4143,32 +4509,64 @@ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "live-server": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/live-server/-/live-server-1.2.1.tgz", + "integrity": "sha512-Yn2XCVjErTkqnM3FfTmM7/kWy3zP7+cEtC7x6u+wUzlQ+1UW3zEYbbyJrc0jNDwiMDZI0m4a0i3dxlGHVyXczw==", + "dev": true, + "requires": { + "chokidar": "^2.0.4", + "colors": "^1.3.2", + "connect": "^3.6.6", + "cors": "^2.8.5", + "event-stream": "3.3.4", + "faye-websocket": "0.11.x", + "http-auth": "3.1.x", + "morgan": "^1.9.1", + "object-assign": "^4.1.1", + "opn": "^5.4.0", + "proxy-middleware": "^0.15.0", + "send": "^0.16.2", + "serve-index": "^1.9.1" + }, + "dependencies": { + "colors": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.2.tgz", + "integrity": "sha512-rhP0JSBGYvpcNQj4s5AdShMeE5ahMop96cTeDl/v9qQQm2fYClE2QXZRi8wLzc+GmXSxdIqqbOIAhyObEXDbfQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "opn": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.4.0.tgz", + "integrity": "sha512-YF9MNdVy/0qvJvDtunAOzFw9iasOQHpVthTCvGzxt61Il64AYSGdK+rYwld7NAfk9qJ7dt+hymBNSc9LNYS+Sw==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + } } }, "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" - }, - "dependencies": { - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "0.2.1" - } - } + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" } }, "locate-path": { @@ -4177,23 +4575,14 @@ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", - "dev": true + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" }, "lodash._reinterpolate": { "version": "3.0.0", @@ -4201,20 +4590,32 @@ "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", "dev": true }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true + }, "lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", "dev": true }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, "lodash.template": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=", "dev": true, "requires": { - "lodash._reinterpolate": "3.0.0", - "lodash.templatesettings": "4.1.0" + "lodash._reinterpolate": "~3.0.0", + "lodash.templatesettings": "^4.0.0" } }, "lodash.templatesettings": { @@ -4223,7 +4624,7 @@ "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=", "dev": true, "requires": { - "lodash._reinterpolate": "3.0.0" + "lodash._reinterpolate": "~3.0.0" } }, "lodash.uniq": { @@ -4232,86 +4633,75 @@ "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", "dev": true }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true - }, "loud-rejection": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "dev": true, "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" } }, "lowercase-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", - "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", "dev": true }, "lru-cache": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", - "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, - "macaddress": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz", - "integrity": "sha1-WQTcU3w57G2+/q6QIycTX6hRHxI=", - "dev": true - }, "magic-string": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.19.1.tgz", - "integrity": "sha1-FNdoATyvLsj96hakmvgvw3fnUgE=", + "version": "0.22.5", + "resolved": "http://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", + "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", "dev": true, "requires": { - "vlq": "0.2.2" + "vlq": "^0.2.2" } }, "make-dir": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.1.0.tgz", - "integrity": "sha512-0Pkui4wLJ7rxvmfUvs87skoEaxmu0hCUApF8nonzpl7q//FWp9zu8W61Scz4sd/kUiqDxvUhtoam2efDyiBzcA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "dev": true, "requires": { - "pify": "3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } + "pify": "^3.0.0" } }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true }, - "map-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", - "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=", + "map-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", + "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", "dev": true }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, "marked": { - "version": "0.3.12", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.12.tgz", - "integrity": "sha512-k4NaW+vS7ytQn6MgJn3fYpQt20/mOgYM5Ft9BYMfQJDz2QT6yEeS9XJ8k2Nw8JTeWK/znPPW2n3UJGzyYEiMoA==" + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.5.1.tgz", + "integrity": "sha512-iUkBZegCZou4AdwbKTwSW/lNDcz5OuRSl3qdcl31Ia0B2QPG0Jn+tKblh/9/eP9/6+4h27vpoh8wel/vQOV0vw==" }, "math-expression-evaluator": { "version": "1.2.17", @@ -4319,10 +4709,16 @@ "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=", "dev": true }, + "math-random": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", + "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", + "dev": true + }, "medium-zoom": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/medium-zoom/-/medium-zoom-0.3.0.tgz", - "integrity": "sha512-26CJAykAcm1IYx2XjUB04dmZ7iRLtyTDKZSrm5kEqHJWVMo7pafUZEPcRGvYCNWW4f1utlEOzbtbaOvwNg7g1g==" + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/medium-zoom/-/medium-zoom-0.4.0.tgz", + "integrity": "sha512-0z7yMfd6I1BTCAa8QaR4cp5AqDkQD571GzhHIbbfefKEssGLSvs+4Xai/itOAncm4FBlF5gUoMQ22yW9/f8Sig==" }, "mem": { "version": "1.1.0", @@ -4330,99 +4726,146 @@ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "dev": true, "requires": { - "mimic-fn": "1.1.0" + "mimic-fn": "^1.0.0" } }, + "memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", + "dev": true + }, "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", + "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", "dev": true, "requires": { - "camelcase-keys": "2.1.0", - "decamelize": "1.2.0", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.4.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" + "camelcase-keys": "^4.0.0", + "decamelize-keys": "^1.0.0", + "loud-rejection": "^1.0.0", + "minimist": "^1.1.3", + "minimist-options": "^3.0.1", + "normalize-package-data": "^2.3.4", + "read-pkg-up": "^3.0.0", + "redent": "^2.0.0", + "trim-newlines": "^2.0.0" }, "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" - }, - "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" } } } }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", "dev": true }, - "mimic-fn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", - "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=", + "mime-db": { + "version": "1.37.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", + "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==", "dev": true }, + "mime-types": { + "version": "2.1.21", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", + "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", + "dev": true, + "requires": { + "mime-db": "~1.37.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.7" + "brace-expansion": "^1.1.7" } }, "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "minimist-options": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", + "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0" + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } }, "mkdirp": { "version": "0.5.1", @@ -4431,80 +4874,195 @@ "dev": true, "requires": { "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + } + } + }, + "mocha": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", + "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", + "dev": true, + "requires": { + "browser-stdout": "1.3.1", + "commander": "2.15.1", + "debug": "3.1.0", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "glob": "7.1.2", + "growl": "1.10.5", + "he": "1.1.1", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "supports-color": "5.4.0" + }, + "dependencies": { + "commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "modify-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.0.tgz", - "integrity": "sha1-4rbN65zhn5kxelNyLz2/XfXqqrI=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", + "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", "dev": true }, "moment": { - "version": "2.20.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.20.1.tgz", - "integrity": "sha512-Yh9y73JRljxW5QxN08Fner68eFLxM5ynNOAw2LbIB1YAGeQzZT8QFSUvkAz609Zf+IHhhaUxqZK8dG3W/+HEvg==", + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz", + "integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=", "dev": true }, + "morgan": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz", + "integrity": "sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==", + "dev": true, + "requires": { + "basic-auth": "~2.0.0", + "debug": "2.6.9", + "depd": "~1.1.2", + "on-finished": "~2.3.0", + "on-headers": "~1.0.1" + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, + "multi-stage-sourcemap": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/multi-stage-sourcemap/-/multi-stage-sourcemap-0.2.1.tgz", + "integrity": "sha1-sJ/IWG6qF/gdV1xK0C4Pej9rEQU=", + "dev": true, + "requires": { + "source-map": "^0.1.34" + }, + "dependencies": { + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, "mute-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "requires": { - "any-promise": "1.3.0", - "object-assign": "4.1.1", - "thenify-all": "1.6.0" - } + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" }, "nan": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz", - "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=", + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz", + "integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA==", "dev": true, "optional": true }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, - "nodemon": { - "version": "1.14.7", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-1.14.7.tgz", - "integrity": "sha512-uEguLNr+QIk4TVd8swNvw7kHqOE/sjvNsIwhnc8CM7QdI+ezFvvkMRtCpCJ+DEVyIopLSTu2eayZ/ELKtswcbg==", - "dev": true, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node-fetch": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.6.3.tgz", + "integrity": "sha1-3CNO3WSJmC1Y6PDbT2lQKavNjAQ=", "requires": { - "chokidar": "1.7.0", - "debug": "2.6.8", - "ignore-by-default": "1.0.1", - "minimatch": "3.0.4", - "pstree.remy": "1.1.0", - "touch": "3.1.0", - "undefsafe": "0.0.3", - "update-notifier": "2.3.0" + "encoding": "^0.1.11", + "is-stream": "^1.0.1" } }, - "nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "dev": true, - "requires": { - "abbrev": "1.1.1" - } + "node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", + "dev": true }, "normalize-package-data": { "version": "2.4.0", @@ -4512,10 +5070,10 @@ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "2.5.0", - "is-builtin-module": "1.0.0", - "semver": "5.4.1", - "validate-npm-package-license": "3.0.1" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "normalize-path": { @@ -4524,7 +5082,7 @@ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "normalize-range": { @@ -4539,10 +5097,75 @@ "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", "dev": true, "requires": { - "object-assign": "4.1.1", - "prepend-http": "1.0.4", - "query-string": "4.3.4", - "sort-keys": "1.1.2" + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, + "npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "npm-run-path": { @@ -4551,7 +5174,7 @@ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "npmlog": { @@ -4560,19 +5183,10 @@ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "dev": true, "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - } - }, - "nth-check": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", - "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", - "dev": true, - "requires": { - "boolbase": "1.0.0" + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, "num2fraction": { @@ -4587,20 +5201,86 @@ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, + "nwsapi": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.0.9.tgz", + "integrity": "sha512-nlWFSCTYQcHk/6A9FFnfhKc14c3aFhfdNBXgo8Qgi9QTBu/qg3Ww+Uiz9wMzXd1T8GFxPc2QIHB6Qtf2XFryFQ==", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-keys": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", + "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", "dev": true }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, "object.omit": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "dev": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" } }, "on-finished": { @@ -4612,22 +5292,49 @@ "ee-first": "1.1.1" } }, + "on-headers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", + "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=", + "dev": true + }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, "requires": { - "mimic-fn": "1.1.0" + "mimic-fn": "^1.0.0" + } + }, + "opencollective": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/opencollective/-/opencollective-1.0.3.tgz", + "integrity": "sha1-ruY3K8KBRFg2kMPKja7PwSDdDvE=", + "requires": { + "babel-polyfill": "6.23.0", + "chalk": "1.1.3", + "inquirer": "3.0.6", + "minimist": "1.2.0", + "node-fetch": "1.6.3", + "opn": "4.0.2" + } + }, + "opn": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz", + "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=", + "requires": { + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" } }, "optimist": { @@ -4636,14 +5343,14 @@ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" }, "dependencies": { - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "minimist": { + "version": "0.0.10", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", "dev": true } } @@ -4654,12 +5361,20 @@ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "dev": true, "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" + }, + "dependencies": { + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + } } }, "os-homedir": { @@ -4674,24 +5389,35 @@ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "dev": true, "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" }, "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, "execa": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" } } } @@ -4699,8 +5425,7 @@ "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "p-finally": { "version": "1.0.0", @@ -4709,12 +5434,12 @@ "dev": true }, "p-limit": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", - "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { @@ -4723,7 +5448,7 @@ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "1.2.0" + "p-limit": "^1.1.0" } }, "p-try": { @@ -4738,10 +5463,10 @@ "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", "dev": true, "requires": { - "got": "6.7.1", - "registry-auth-token": "3.3.1", - "registry-url": "3.1.0", - "semver": "5.4.1" + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" } }, "parse-github-repo-url": { @@ -4756,10 +5481,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "dev": true, "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" }, "dependencies": { "is-extglob": { @@ -4774,18 +5499,19 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } } } }, "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, "parseurl": { @@ -4794,6 +5520,12 @@ "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", "dev": true }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, "path-dirname": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", @@ -4801,13 +5533,10 @@ "dev": true }, "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "2.0.1" - } + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true }, "path-is-absolute": { "version": "1.0.1", @@ -4828,90 +5557,73 @@ "dev": true }, "path-parse": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", "dev": true }, "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "pify": "^3.0.0" } }, + "pathval": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", + "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "dev": true + }, "pause-stream": { "version": "0.0.11", "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", "dev": true, "requires": { - "through": "2.3.8" + "through": "~2.3" } }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "pidtree": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.0.tgz", + "integrity": "sha512-9CT4NFlDcosssyg8KVFltgokyKZIFjoBxw8CTGy+5F38Y1eQWrt8tRayiUOXE+zVKQnYu5BR8JjCtvK3BcnBhg==", + "dev": true + }, "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true }, "pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" }, "pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, - "pixrem": { + "pirates": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pixrem/-/pixrem-3.0.2.tgz", - "integrity": "sha1-MNG6+0w73Ojpu0vVahOYVhkyDDQ=", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-3.0.2.tgz", + "integrity": "sha512-c5CgUJq6H2k6MJz72Ak1F5sN9n9wlSlJyEnwvpm9/y3WB4E3pHBDT2c6PEiS1vyJvq2bUxUAIu0EGf8Cx4Ic7Q==", "dev": true, "requires": { - "browserslist": "1.7.7", - "postcss": "5.2.18", - "reduce-css-calc": "1.3.0" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } + "node-modules-regexp": "^1.0.0" } }, "pluralize": { @@ -4920,107 +5632,36 @@ "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", "dev": true }, + "pn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", + "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", + "dev": true + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.1.tgz", + "integrity": "sha1-AA29H47vIXqjaLmiEsX8QLKo8/I=", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" }, "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, "supports-color": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-advanced-variables": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/postcss-advanced-variables/-/postcss-advanced-variables-1.2.2.tgz", - "integrity": "sha1-kKYhMmLmagUKNotKnF1HeNctvXQ=", - "dev": true, - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-atroot": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/postcss-atroot/-/postcss-atroot-0.1.3.tgz", - "integrity": "sha1-Z1LAIwx0UUBUk0WysOMOvtoBpAU=", - "dev": true, - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5031,27 +5672,21 @@ "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", "dev": true, "requires": { - "postcss": "5.2.18", - "postcss-message-helpers": "2.0.0", - "reduce-css-calc": "1.3.0" + "postcss": "^5.0.2", + "postcss-message-helpers": "^2.0.0", + "reduce-css-calc": "^1.2.6" }, "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -5060,48 +5695,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-color-function": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postcss-color-function/-/postcss-color-function-2.0.1.tgz", - "integrity": "sha1-mtIm9VDop8f4uKd4YFRbbdf1UkE=", - "dev": true, - "requires": { - "css-color-function": "1.3.3", - "postcss": "5.2.18", - "postcss-message-helpers": "2.0.0", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5112,27 +5706,21 @@ "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", "dev": true, "requires": { - "colormin": "1.1.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "colormin": "^1.0.5", + "postcss": "^5.0.13", + "postcss-value-parser": "^3.2.3" }, "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -5141,7 +5729,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5152,26 +5740,20 @@ "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", "dev": true, "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "postcss": "^5.0.11", + "postcss-value-parser": "^3.1.2" }, "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -5180,168 +5762,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-css-reset": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/postcss-css-reset/-/postcss-css-reset-1.0.2.tgz", - "integrity": "sha1-dp8tYtPx924mAPtPeQZjmb6+K9g=", - "dev": true, - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-custom-media": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-5.0.1.tgz", - "integrity": "sha1-E40loYS/LrVN4S1VpsAcMKnYvYE=", - "dev": true, - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-custom-properties": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-5.0.2.tgz", - "integrity": "sha1-lxnXjy2pz59TgQrrwj1GVhMKzrE=", - "dev": true, - "requires": { - "balanced-match": "0.4.2", - "postcss": "5.2.18" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-custom-selectors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-3.0.0.tgz", - "integrity": "sha1-j4Ekn17Qeo0JF89qOf5bBWt/lqw=", - "dev": true, - "requires": { - "balanced-match": "0.2.1", - "postcss": "5.2.18", - "postcss-selector-matches": "2.0.5" - }, - "dependencies": { - "balanced-match": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.1.tgz", - "integrity": "sha1-e8ZYtL7WHu5CStdPdfXD4sTfPMc=", - "dev": true - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5352,25 +5773,19 @@ "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.14" }, "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -5379,7 +5794,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5390,25 +5805,19 @@ "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.4" }, "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -5417,7 +5826,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5428,25 +5837,19 @@ "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.14" }, "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -5455,7 +5858,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5466,25 +5869,19 @@ "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.16" }, "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -5493,7 +5890,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5504,26 +5901,20 @@ "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", "dev": true, "requires": { - "postcss": "5.2.18", - "uniqs": "2.0.0" + "postcss": "^5.0.14", + "uniqs": "^2.0.0" }, "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -5532,75 +5923,30 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-extend": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/postcss-extend/-/postcss-extend-1.0.5.tgz", - "integrity": "sha1-XqmL94e6PKz030YJdD+AqDOx0Oc=", - "dev": true, - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } }, "postcss-filter-plugins": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz", - "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz", + "integrity": "sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ==", "dev": true, "requires": { - "postcss": "5.2.18", - "uniqid": "4.1.1" + "postcss": "^5.0.4" }, "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -5609,167 +5955,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-font-weights": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postcss-font-weights/-/postcss-font-weights-2.0.1.tgz", - "integrity": "sha1-qF3XtRqnaRuVybwCafQSdWyRkx0=", - "dev": true, - "requires": { - "css-font-weight-names": "0.2.1", - "postcss": "5.2.18" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-initial": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-1.5.3.tgz", - "integrity": "sha1-IMPpHJaCLdsb7UlQjbltVrrDd9A=", - "dev": true, - "requires": { - "lodash.template": "4.4.0", - "postcss": "5.2.18" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-inline-svg": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/postcss-inline-svg/-/postcss-inline-svg-1.4.0.tgz", - "integrity": "sha1-UUZR+E6pq6hSbV0c89iapDaWwnQ=", - "dev": true, - "requires": { - "css-select": "1.2.0", - "dom-serializer": "0.1.0", - "htmlparser2": "3.9.2", - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0", - "read-cache": "1.0.0" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-media-minmax": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-2.1.2.tgz", - "integrity": "sha1-RExc+JJqteT9iiUJ6Sl+dRZJzfg=", - "dev": true, - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5780,27 +5966,21 @@ "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", "dev": true, "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "has": "^1.0.1", + "postcss": "^5.0.10", + "postcss-value-parser": "^3.1.1" }, "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -5809,7 +5989,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5820,25 +6000,19 @@ "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.4" }, "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -5847,7 +6021,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5858,18 +6032,22 @@ "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", "dev": true, "requires": { - "browserslist": "1.7.7", - "caniuse-api": "1.6.1", - "postcss": "5.2.18", - "postcss-selector-parser": "2.2.3", - "vendors": "1.0.1" + "browserslist": "^1.5.2", + "caniuse-api": "^1.5.2", + "postcss": "^5.0.4", + "postcss-selector-parser": "^2.2.2", + "vendors": "^1.0.0" }, "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true, + "requires": { + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" + } }, "postcss": { "version": "5.2.18", @@ -5877,10 +6055,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -5889,7 +6067,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5906,27 +6084,21 @@ "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", "dev": true, "requires": { - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "object-assign": "^4.0.1", + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.2" }, "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -5935,7 +6107,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5946,26 +6118,20 @@ "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", "dev": true, "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "postcss": "^5.0.12", + "postcss-value-parser": "^3.3.0" }, "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -5974,7 +6140,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5985,28 +6151,22 @@ "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", "dev": true, "requires": { - "alphanum-sort": "1.0.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0", - "uniqs": "2.0.0" + "alphanum-sort": "^1.0.1", + "postcss": "^5.0.2", + "postcss-value-parser": "^3.0.2", + "uniqs": "^2.0.0" }, "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -6015,7 +6175,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -6026,28 +6186,22 @@ "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", "dev": true, "requires": { - "alphanum-sort": "1.0.2", - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-selector-parser": "2.2.3" + "alphanum-sort": "^1.0.2", + "has": "^1.0.1", + "postcss": "^5.0.14", + "postcss-selector-parser": "^2.0.0" }, "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -6056,203 +6210,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-mixins": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/postcss-mixins/-/postcss-mixins-2.1.1.tgz", - "integrity": "sha1-sUGggD76ji10SGf42RWWiQz5JBs=", - "dev": true, - "requires": { - "globby": "3.0.1", - "postcss": "5.2.18", - "postcss-simple-vars": "1.2.0" - }, - "dependencies": { - "glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", - "dev": true, - "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "globby": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-3.0.1.tgz", - "integrity": "sha1-IJSvhCHhkVIVDViT62QWsxLZoi8=", - "dev": true, - "requires": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "5.0.15", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "1.0.0" - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "pinkie": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-1.0.0.tgz", - "integrity": "sha1-Wkfyi6EBXQIBvae/DzWOR77Ix+Q=", - "dev": true - }, - "pinkie-promise": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-1.0.0.tgz", - "integrity": "sha1-0dpn9UglY7t89X8oauKCLs+/NnA=", - "dev": true, - "requires": { - "pinkie": "1.0.0" - } - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-neat": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/postcss-neat/-/postcss-neat-2.5.3.tgz", - "integrity": "sha512-eZscnCcSbVrEJcmlRgLo4+y1tzFjM4kfoKy50HzQTgqQfVXqdVVKYBRSrZdA2CXrjUgDobchFGpi5Q/vKwqkBg==", - "dev": true, - "requires": { - "babel-polyfill": "6.7.4", - "postcss": "5.0.19" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.0.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.0.19.tgz", - "integrity": "sha1-tjQqAdx1uMq36Wiv2pau/Gf4iK8=", - "dev": true, - "requires": { - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-nested": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-1.0.1.tgz", - "integrity": "sha1-kfKPTm4j1WckGsFUVYoM+rTMDY8=", - "dev": true, - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-nesting": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-2.3.1.tgz", - "integrity": "sha1-lKa2pO9wf77CCof+5clXdZtOAc8=", - "dev": true, - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -6263,25 +6221,19 @@ "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.5" }, "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -6290,7 +6242,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -6301,28 +6253,22 @@ "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", "dev": true, "requires": { - "is-absolute-url": "2.1.0", - "normalize-url": "1.9.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "is-absolute-url": "^2.0.0", + "normalize-url": "^1.4.0", + "postcss": "^5.0.14", + "postcss-value-parser": "^3.2.3" }, "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -6331,7 +6277,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -6342,26 +6288,20 @@ "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", "dev": true, "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.1" }, "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -6370,161 +6310,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-partial-import": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-partial-import/-/postcss-partial-import-2.1.0.tgz", - "integrity": "sha1-Ce2vE9ePOe5PKmLg/vYZOwA4U/M=", - "dev": true, - "requires": { - "fs-extra": "0.30.0", - "fs-promise": "0.5.0", - "object-assign": "4.1.1", - "postcss": "5.2.18", - "resolve": "1.5.0" - }, - "dependencies": { - "fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "2.4.0", - "klaw": "1.3.1", - "path-is-absolute": "1.0.1", - "rimraf": "2.6.1" - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11" - } - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-property-lookup": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/postcss-property-lookup/-/postcss-property-lookup-1.2.1.tgz", - "integrity": "sha1-MEUKE2G3qudYu+3VIB++BXu4Jws=", - "dev": true, - "requires": { - "object-assign": "4.1.1", - "postcss": "5.2.18", - "tcomb": "2.7.0" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-pseudo-class-any-link": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-1.0.0.tgz", - "integrity": "sha1-kDI5GWQB0zX+c6x1YYb6YuaTryY=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "postcss-selector-parser": "1.3.3" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "postcss-selector-parser": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-1.3.3.tgz", - "integrity": "sha1-0u4Z33pk+O8hwacchvfUg1yIwoE=", - "dev": true, - "requires": { - "flatten": "1.0.2", - "indexes-of": "1.0.1", - "uniq": "1.0.1" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -6535,26 +6321,20 @@ "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", "dev": true, "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.2" }, "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -6563,7 +6343,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -6574,25 +6354,19 @@ "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.4" }, "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -6601,7 +6375,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -6612,27 +6386,21 @@ "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", "dev": true, "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "has": "^1.0.1", + "postcss": "^5.0.8", + "postcss-value-parser": "^3.0.1" }, "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -6641,234 +6409,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-salad": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/postcss-salad/-/postcss-salad-1.0.8.tgz", - "integrity": "sha1-/6h7X6OUgh2WCPaNpaFNE+pMUFk=", - "dev": true, - "requires": { - "autoprefixer": "6.7.7", - "caniuse-api": "1.6.1", - "chalk": "1.1.3", - "pixrem": "3.0.2", - "postcss": "5.2.18", - "postcss-calc": "5.3.1", - "postcss-color-function": "2.0.1", - "postcss-css-reset": "1.0.2", - "postcss-initial": "1.5.3", - "postcss-inline-svg": "1.4.0", - "postcss-neat": "2.5.3", - "postcss-partial-import": "2.1.0", - "postcss-pseudo-class-any-link": "1.0.0", - "postcss-sass-color-functions": "1.1.0", - "postcss-scss": "0.1.9", - "postcss-shape": "0.0.1", - "postcss-short": "1.4.0", - "postcss-url": "5.1.2", - "postcss-utils": "1.0.2", - "precss": "1.4.0", - "saladcss-bem": "0.0.1" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-sass-color-functions": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-sass-color-functions/-/postcss-sass-color-functions-1.1.0.tgz", - "integrity": "sha1-btJn/Z/+gAgzLTrWzLfwqeno8ek=", - "dev": true, - "requires": { - "balanced-match": "0.1.0", - "color": "0.11.4", - "postcss": "5.2.18", - "postcss-message-helpers": "2.0.0" - }, - "dependencies": { - "balanced-match": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.1.0.tgz", - "integrity": "sha1-tQS9BYabOSWd0MXvw12EMXbczEo=", - "dev": true - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-scss": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-0.1.9.tgz", - "integrity": "sha1-dgbK/2S7SzS3YFq3SVdM942Iawg=", - "dev": true, - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-selector-matches": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-2.0.5.tgz", - "integrity": "sha1-+g9Dvle2jneqTNEYBwI0kqExAn8=", - "dev": true, - "requires": { - "balanced-match": "0.4.2", - "postcss": "5.2.18" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-selector-not": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-2.0.0.tgz", - "integrity": "sha1-xzrSGj91I0vuf+4mnhVP1qhpeY0=", - "dev": true, - "requires": { - "balanced-match": "0.2.1", - "postcss": "5.2.18" - }, - "dependencies": { - "balanced-match": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.1.tgz", - "integrity": "sha1-e8ZYtL7WHu5CStdPdfXD4sTfPMc=", - "dev": true - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -6879,438 +6420,9 @@ "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", "dev": true, "requires": { - "flatten": "1.0.2", - "indexes-of": "1.0.1", - "uniq": "1.0.1" - } - }, - "postcss-shape": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/postcss-shape/-/postcss-shape-0.0.1.tgz", - "integrity": "sha1-o3R7HB4AahsYwHH/DpgGMuigvoU=", - "dev": true, - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-short": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/postcss-short/-/postcss-short-1.4.0.tgz", - "integrity": "sha1-INFu2H0daiygTsXrlJ7RANw8Gio=", - "dev": true, - "requires": { - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-font-weights": "2.0.1", - "postcss-short-border": "1.0.0", - "postcss-short-color": "1.0.0", - "postcss-short-data": "1.1.0", - "postcss-short-font-size": "1.0.1", - "postcss-short-position": "1.0.0", - "postcss-short-size": "1.1.0", - "postcss-short-spacing": "1.0.0", - "postcss-short-text": "1.1.0" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-short-border": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postcss-short-border/-/postcss-short-border-1.0.0.tgz", - "integrity": "sha1-dRmGjphjzNaa1a9LmG4dmfH1vuQ=", - "dev": true, - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-short-color": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postcss-short-color/-/postcss-short-color-1.0.0.tgz", - "integrity": "sha1-x7ecm0tmEg3eX2SAka59S6huOnY=", - "dev": true, - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-short-data": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-short-data/-/postcss-short-data-1.1.0.tgz", - "integrity": "sha1-TnrIChc7bsTd4KzYIFzSgstPgzA=", - "dev": true, - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-short-font-size": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/postcss-short-font-size/-/postcss-short-font-size-1.0.1.tgz", - "integrity": "sha1-etxx7M/R0qgXEROhCLlSFCVsPdY=", - "dev": true, - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-short-position": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postcss-short-position/-/postcss-short-position-1.0.0.tgz", - "integrity": "sha1-Mr9U3zWX7Vb+ThurIW1HWcsvdd4=", - "dev": true, - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-short-size": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-short-size/-/postcss-short-size-1.1.0.tgz", - "integrity": "sha1-SnycW9myH19oRXUhsM+t254XJ7E=", - "dev": true, - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-short-spacing": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postcss-short-spacing/-/postcss-short-spacing-1.0.0.tgz", - "integrity": "sha1-yxkDfmEhPQyHK0hv21xgGk6pVx0=", - "dev": true, - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-short-text": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-short-text/-/postcss-short-text-1.1.0.tgz", - "integrity": "sha1-k8TuZFoJJi30XBp/U0IRhPDssUs=", - "dev": true, - "requires": { - "object-assign": "4.1.1", - "postcss": "5.2.18" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-simple-vars": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-simple-vars/-/postcss-simple-vars-1.2.0.tgz", - "integrity": "sha1-LmaJkhFEt0EU52U1MnWjwyFD8VA=", - "dev": true, - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" } }, "postcss-svgo": { @@ -7319,28 +6431,22 @@ "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", "dev": true, "requires": { - "is-svg": "2.1.0", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0", - "svgo": "0.7.2" + "is-svg": "^2.0.0", + "postcss": "^5.0.14", + "postcss-value-parser": "^3.2.3", + "svgo": "^0.7.0" }, "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -7349,7 +6455,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -7360,27 +6466,21 @@ "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", "dev": true, "requires": { - "alphanum-sort": "1.0.2", - "postcss": "5.2.18", - "uniqs": "2.0.0" + "alphanum-sort": "^1.0.1", + "postcss": "^5.0.4", + "uniqs": "^2.0.0" }, "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -7389,90 +6489,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-url": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-url/-/postcss-url-5.1.2.tgz", - "integrity": "sha1-mLMWW+jVkkccsMqt3iwNH4MvEz4=", - "dev": true, - "requires": { - "directory-encoder": "0.7.2", - "js-base64": "2.4.0", - "mime": "1.6.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "path-is-absolute": "1.0.1", - "postcss": "5.2.18" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/postcss-utils/-/postcss-utils-1.0.2.tgz", - "integrity": "sha1-NsqDt4J5taeqAdh/foH3H0siyio=", - "dev": true, - "requires": { - "humps": "1.1.0", - "postcss": "5.2.18" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -7489,27 +6506,21 @@ "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", "dev": true, "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "uniqs": "2.0.0" + "has": "^1.0.1", + "postcss": "^5.0.4", + "uniqs": "^2.0.0" }, "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -7518,109 +6529,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "precss": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/precss/-/precss-1.4.0.tgz", - "integrity": "sha1-jXw65w8QoAo5VSh/haZuD4sxzaM=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "postcss-advanced-variables": "1.2.2", - "postcss-atroot": "0.1.3", - "postcss-color-function": "2.0.1", - "postcss-custom-media": "5.0.1", - "postcss-custom-properties": "5.0.2", - "postcss-custom-selectors": "3.0.0", - "postcss-extend": "1.0.5", - "postcss-media-minmax": "2.1.2", - "postcss-mixins": "2.1.1", - "postcss-nested": "1.0.1", - "postcss-nesting": "2.3.1", - "postcss-partial-import": "1.3.0", - "postcss-property-lookup": "1.2.1", - "postcss-selector-matches": "2.0.5", - "postcss-selector-not": "2.0.0" - }, - "dependencies": { - "any-promise": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-0.1.0.tgz", - "integrity": "sha1-gwtoCqflbzNFHUsEnzvYBESY7ic=", - "dev": true - }, - "fs-extra": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.24.0.tgz", - "integrity": "sha1-1OQ0KpZnXLeEZjOmCZJJMytTmVI=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "2.4.0", - "path-is-absolute": "1.0.1", - "rimraf": "2.6.1" - } - }, - "fs-promise": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/fs-promise/-/fs-promise-0.3.1.tgz", - "integrity": "sha1-vzQFA2jyTW3J38ZoirXOrY+GhCo=", - "dev": true, - "requires": { - "any-promise": "0.1.0" - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11" - } - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "postcss-partial-import": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/postcss-partial-import/-/postcss-partial-import-1.3.0.tgz", - "integrity": "sha1-L0t3OnbHsKabOJ3PR1xNNi0NJXY=", - "dev": true, - "requires": { - "fs-extra": "0.24.0", - "fs-promise": "0.3.1", - "object-assign": "4.1.1", - "postcss": "5.2.18", - "string-hash": "1.1.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -7644,17 +6553,17 @@ "dev": true }, "prismjs": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.9.0.tgz", - "integrity": "sha1-+j4tntw8OIfB8fMJXUHx+bQgDw8=", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.15.0.tgz", + "integrity": "sha512-Lf2JrFYx8FanHrjoV5oL8YHCclLQgbJcVZR+gikGGMqz6ub5QVWDTM6YIwm3BuPxM/LOV+rKns3LssXNLIf+DA==", "requires": { - "clipboard": "1.7.1" + "clipboard": "^2.0.0" } }, "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", "dev": true }, "progress": { @@ -7663,14 +6572,11 @@ "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", "dev": true }, - "ps-tree": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.1.0.tgz", - "integrity": "sha1-tCGyQUDWID8e08dplrRCewjowBQ=", - "dev": true, - "requires": { - "event-stream": "3.3.4" - } + "proxy-middleware": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/proxy-middleware/-/proxy-middleware-0.15.0.tgz", + "integrity": "sha1-o/3xvvtzD5UZZYcqwvYHTGFHelY=", + "dev": true }, "pseudomap": { "version": "1.0.2", @@ -7678,19 +6584,28 @@ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, - "pstree.remy": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.0.tgz", - "integrity": "sha512-q5I5vLRMVtdWa8n/3UEzZX7Lfghzrg9eG2IKk2ENLSofKRCXVqMvMUHxCKgXNaqH/8ebhBxrqftHWnyTFweJ5Q==", - "dev": true, - "requires": { - "ps-tree": "1.1.0" - } + "psl": { + "version": "1.1.31", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", + "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==", + "dev": true + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true }, "q": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz", - "integrity": "sha1-3QG6ydBtMObyGa7LglPunr3DCPE=", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", "dev": true }, "query-string": { @@ -7699,48 +6614,32 @@ "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", "dev": true, "requires": { - "object-assign": "4.1.1", - "strict-uri-encode": "1.1.0" + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" } }, + "quick-lru": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", + "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", + "dev": true + }, "randomatic": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz", + "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==", "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" }, "dependencies": { "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.5" - } - } - } - }, - "kind-of": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "1.1.5" - } + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true } } }, @@ -7751,32 +6650,15 @@ "dev": true }, "rc": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.2.tgz", - "integrity": "sha1-2M6ctX6NZNnHut2YdsfDTL48cHc=", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", - "dev": true, - "requires": { - "pify": "2.3.0" + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" } }, "read-cmd-shim": { @@ -7785,7 +6667,7 @@ "integrity": "sha1-LV0Vd4ajfAVdIgd8MsU/gynpHHs=", "dev": true, "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.2" } }, "read-pkg": { @@ -7794,9 +6676,59 @@ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "dependencies": { + "load-json-file": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + } } }, "read-pkg-up": { @@ -7805,45 +6737,65 @@ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + } } }, "readable-stream": { - "version": "2.2.9", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", - "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", + "version": "2.3.6", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "1.0.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "readdirp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.2.9", - "set-immediate-shim": "1.0.1" + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" } }, "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", + "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", "dev": true, "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" + "indent-string": "^3.0.0", + "strip-indent": "^2.0.0" } }, "reduce-css-calc": { @@ -7852,9 +6804,9 @@ "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", "dev": true, "requires": { - "balanced-match": "0.4.2", - "math-expression-evaluator": "1.2.17", - "reduce-function-call": "1.0.2" + "balanced-match": "^0.4.2", + "math-expression-evaluator": "^1.2.14", + "reduce-function-call": "^1.0.1" } }, "reduce-function-call": { @@ -7863,26 +6815,47 @@ "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", "dev": true, "requires": { - "balanced-match": "0.4.2" + "balanced-match": "^0.4.2" } }, + "regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=" + }, "regex-cache": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, - "registry-auth-token": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.1.tgz", - "integrity": "sha1-+w0yie4Nmtosu1KvXf5mywcNMAY=", + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "requires": { - "rc": "1.2.2", - "safe-buffer": "5.0.1" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexpp": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", + "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", + "dev": true + }, + "registry-auth-token": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", + "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", + "dev": true, + "requires": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" } }, "registry-url": { @@ -7891,7 +6864,7 @@ "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", "dev": true, "requires": { - "rc": "1.2.2" + "rc": "^1.0.1" } }, "remove-trailing-separator": { @@ -7901,9 +6874,9 @@ "dev": true }, "repeat-element": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", "dev": true }, "repeat-string": { @@ -7918,14 +6891,80 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, - "require-all": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/require-all/-/require-all-2.2.0.tgz", - "integrity": "sha1-tEIMIzrAKC0P9Jsnf7iAqLXeCJQ=", - "dev": true + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "dev": true, + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + } + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true + } + } + }, + "request-promise-core": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz", + "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=", + "dev": true, + "requires": { + "lodash": "^4.13.1" + } + }, + "request-promise-native": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.5.tgz", + "integrity": "sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU=", + "dev": true, + "requires": { + "request-promise-core": "1.1.1", + "stealthy-require": "^1.1.0", + "tough-cookie": ">=2.3.3" + } }, "require-directory": { "version": "2.1.1", @@ -7945,17 +6984,17 @@ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "dev": true, "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" } }, "resolve": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", - "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", + "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "dev": true, "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.5" } }, "resolve-from": { @@ -7964,45 +7003,40 @@ "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", "dev": true }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, "restore-cursor": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, - "rgb": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/rgb/-/rgb-0.1.0.tgz", - "integrity": "sha1-vieykej+/+rBvZlylyG/pA/AN7U=", + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "dev": true, - "optional": true, - "requires": { - "align-text": "0.1.4" - } - }, "rimraf": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "rollup": { - "version": "0.53.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.53.3.tgz", - "integrity": "sha512-MADFV0jpoh1QDB6U0U6YamGihGetxHEYgwTcGsc7map6JFIydPEfGNshK+ozxv1RKeUOQKn1vRb85IAcdjL22Q==", + "version": "0.53.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.53.4.tgz", + "integrity": "sha512-ErW5cFw5KY/qiyUlPDJ7iBhw51Iro/oyvxETupO85bMg5T7MLlFj3lEDzwjLTOxJAyzWQanUYj/LZHm6aLLm5w==", "dev": true }, "rollup-plugin-async": { @@ -8011,8 +7045,8 @@ "integrity": "sha1-+V/dKfi28jMrWomp1k7oCHsSskk=", "dev": true, "requires": { - "async-to-gen": "1.3.3", - "rollup-pluginutils": "1.5.2" + "async-to-gen": "^1.2.0", + "rollup-pluginutils": "^1.5.1" } }, "rollup-plugin-buble": { @@ -8021,148 +7055,381 @@ "integrity": "sha512-rd3JG2MxvQXfg5coCw0IyZV8QrsceVI4zfJgGVgkUnntwp+gnjv7TsKWGKGoLNMGAMRKQlhcsSyvUuvOL+vNHw==", "dev": true, "requires": { - "buble": "0.18.0", - "rollup-pluginutils": "2.0.1" + "buble": "^0.18.0", + "rollup-pluginutils": "^2.0.1" }, "dependencies": { - "estree-walker": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.3.1.tgz", - "integrity": "sha1-5rGlHPcpJSTnI3wxLl/mZgwc4ao=", - "dev": true - }, - "rollup-pluginutils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.0.1.tgz", - "integrity": "sha1-fslbNXP2VDpGpkYb2afFRFJdD8A=", + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { - "estree-walker": "0.3.1", - "micromatch": "2.3.11" + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "estree-walker": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.5.2.tgz", + "integrity": "sha512-XpCnW/AE10ws/kDAs37cngSkvgIR8aN3G0MS85m7dUpuK2EREo9VJ00uvw6Dg/hXEpfsE1I1TvJOJr+Z+TL+ig==", + "dev": true + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "rollup-pluginutils": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.3.3.tgz", + "integrity": "sha512-2XZwja7b6P5q4RZ5FhyX1+f46xi1Z3qBKigLRZ6VTZjwbN0K1IFGMlwm06Uu0Emcre2Z63l77nq/pzn+KxIEoA==", + "dev": true, + "requires": { + "estree-walker": "^0.5.2", + "micromatch": "^2.3.11" } } } }, "rollup-plugin-commonjs": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/rollup-plugin-commonjs/-/rollup-plugin-commonjs-8.2.6.tgz", - "integrity": "sha512-qK0+uhktmnAgZkHkqFuajNmPw93fjrO7+CysDaxWE5jrUR9XSlSvuao5ZJP+XizxA8weakhgYYBtbVz9SGBpjA==", + "version": "8.4.1", + "resolved": "http://registry.npmjs.org/rollup-plugin-commonjs/-/rollup-plugin-commonjs-8.4.1.tgz", + "integrity": "sha512-mg+WuD+jlwoo8bJtW3Mvx7Tz6TsIdMsdhuvCnDMoyjh0oxsVgsjB/N0X984RJCWwc5IIiqNVJhXeeITcc73++A==", "dev": true, "requires": { - "acorn": "5.3.0", - "estree-walker": "0.5.1", - "magic-string": "0.22.4", - "resolve": "1.5.0", - "rollup-pluginutils": "2.0.1" + "acorn": "^5.2.1", + "estree-walker": "^0.5.0", + "magic-string": "^0.22.4", + "resolve": "^1.4.0", + "rollup-pluginutils": "^2.0.1" }, "dependencies": { - "acorn": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.3.0.tgz", - "integrity": "sha512-Yej+zOJ1Dm/IMZzzj78OntP/r3zHEaKcyNoU2lAaxPtrseM6rF0xwqoz5Q5ysAiED9hTjI2hgtvLXitlCN1/Ug==", - "dev": true - }, - "estree-walker": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.5.1.tgz", - "integrity": "sha512-7HgCgz1axW7w5aOvgOQkoR1RMBkllygJrssU3BvymKQ95lxXYv6Pon17fBRDm9qhkvXZGijOULoSF9ShOk/ZLg==", - "dev": true - }, - "magic-string": { - "version": "0.22.4", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.4.tgz", - "integrity": "sha512-kxBL06p6iO2qPBHsqGK2b3cRwiRGpnmSuVWNhwHcMX7qJOUr1HvricYP1LZOCdkQBUp0jiWg2d6WJwR3vYgByw==", + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { - "vlq": "0.2.2" + "arr-flatten": "^1.0.1" } }, - "resolve": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", - "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true, "requires": { - "path-parse": "1.0.5" + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "estree-walker": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.5.2.tgz", + "integrity": "sha512-XpCnW/AE10ws/kDAs37cngSkvgIR8aN3G0MS85m7dUpuK2EREo9VJ00uvw6Dg/hXEpfsE1I1TvJOJr+Z+TL+ig==", + "dev": true + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" } }, "rollup-pluginutils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.0.1.tgz", - "integrity": "sha1-fslbNXP2VDpGpkYb2afFRFJdD8A=", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.3.3.tgz", + "integrity": "sha512-2XZwja7b6P5q4RZ5FhyX1+f46xi1Z3qBKigLRZ6VTZjwbN0K1IFGMlwm06Uu0Emcre2Z63l77nq/pzn+KxIEoA==", "dev": true, "requires": { - "estree-walker": "0.3.1", - "micromatch": "2.3.11" - }, - "dependencies": { - "estree-walker": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.3.1.tgz", - "integrity": "sha1-5rGlHPcpJSTnI3wxLl/mZgwc4ao=", - "dev": true - } + "estree-walker": "^0.5.2", + "micromatch": "^2.3.11" } } } }, "rollup-plugin-node-resolve": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.0.0.tgz", - "integrity": "sha1-i4l8TDAw1QASd7BRSyXSygloPuA=", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.4.0.tgz", + "integrity": "sha512-PJcd85dxfSBWih84ozRtBkB731OjXk0KnzN0oGp7WOWcarAFkVa71cV5hTJg2qpVsV2U8EUwrzHP3tvy9vS3qg==", "dev": true, "requires": { - "browser-resolve": "1.11.2", - "builtin-modules": "1.1.1", - "is-module": "1.0.0", - "resolve": "1.5.0" - } - }, - "rollup-plugin-replace": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-replace/-/rollup-plugin-replace-2.0.0.tgz", - "integrity": "sha512-pK9mTd/FNrhtBxcTBXoh0YOwRIShV0gGhv9qvUtNcXHxIMRZMXqfiZKVBmCRGp8/2DJRy62z2JUE7/5tP6WxOQ==", - "dev": true, - "requires": { - "magic-string": "0.22.4", - "minimatch": "3.0.4", - "rollup-pluginutils": "2.0.1" + "builtin-modules": "^2.0.0", + "is-module": "^1.0.0", + "resolve": "^1.1.6" }, "dependencies": { - "estree-walker": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.3.1.tgz", - "integrity": "sha1-5rGlHPcpJSTnI3wxLl/mZgwc4ao=", + "builtin-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-2.0.0.tgz", + "integrity": "sha512-3U5kUA5VPsRUA3nofm/BXX7GVHKfxz0hOBAPxXrIvHzlDRkQVqEn6yi8QJegxl4LzOHLdvb7XF5dVawa/VVYBg==", "dev": true - }, - "magic-string": { - "version": "0.22.4", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.4.tgz", - "integrity": "sha512-kxBL06p6iO2qPBHsqGK2b3cRwiRGpnmSuVWNhwHcMX7qJOUr1HvricYP1LZOCdkQBUp0jiWg2d6WJwR3vYgByw==", - "dev": true, - "requires": { - "vlq": "0.2.2" - } - }, - "rollup-pluginutils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.0.1.tgz", - "integrity": "sha1-fslbNXP2VDpGpkYb2afFRFJdD8A=", - "dev": true, - "requires": { - "estree-walker": "0.3.1", - "micromatch": "2.3.11" - } } } }, - "rollup-plugin-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-string/-/rollup-plugin-string-2.0.2.tgz", - "integrity": "sha1-9TI6Is/XOLRQy+piq2WTcF6sdEs=", + "rollup-plugin-replace": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-replace/-/rollup-plugin-replace-2.1.0.tgz", + "integrity": "sha512-SxrAIgpH/B5/W4SeULgreOemxcpEgKs2gcD42zXw50bhqGWmcnlXneVInQpAqzA/cIly4bJrOpeelmB9p4YXSQ==", "dev": true, "requires": { - "rollup-pluginutils": "1.5.2" + "magic-string": "^0.25.1", + "minimatch": "^3.0.2", + "rollup-pluginutils": "^2.0.1" + }, + "dependencies": { + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "estree-walker": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.5.2.tgz", + "integrity": "sha512-XpCnW/AE10ws/kDAs37cngSkvgIR8aN3G0MS85m7dUpuK2EREo9VJ00uvw6Dg/hXEpfsE1I1TvJOJr+Z+TL+ig==", + "dev": true + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "magic-string": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.1.tgz", + "integrity": "sha512-sCuTz6pYom8Rlt4ISPFn6wuFodbKMIHUMv4Qko9P17dpxb7s52KJTmRuZZqHdGmLCK9AOcDare039nRIcfdkEg==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.1" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "rollup-pluginutils": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.3.3.tgz", + "integrity": "sha512-2XZwja7b6P5q4RZ5FhyX1+f46xi1Z3qBKigLRZ6VTZjwbN0K1IFGMlwm06Uu0Emcre2Z63l77nq/pzn+KxIEoA==", + "dev": true, + "requires": { + "estree-walker": "^0.5.2", + "micromatch": "^2.3.11" + } + } } }, "rollup-plugin-uglify": { @@ -8171,25 +7438,7 @@ "integrity": "sha1-Z7N60e/a+9g69MNrQMGJ7khmyWk=", "dev": true, "requires": { - "uglify-js": "3.3.4" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "uglify-js": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.4.tgz", - "integrity": "sha512-hfIwuAQI5dlXP30UtdmWoYF9k+ypVqBXIdmd6ZKBiaNHHvA8ty7ZloMe3+7S5AEKVkxHbjByl4DfRHQ7QpZquw==", - "dev": true, - "requires": { - "commander": "2.12.2", - "source-map": "0.6.1" - } - } + "uglify-js": "^3.0.9" } }, "rollup-pluginutils": { @@ -8198,23 +7447,27 @@ "integrity": "sha1-HhVud4+UtyVb+hs9AXi+j1xVJAg=", "dev": true, "requires": { - "estree-walker": "0.2.1", - "minimatch": "3.0.4" + "estree-walker": "^0.2.1", + "minimatch": "^3.0.2" } }, "run-async": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "dev": true, "requires": { - "is-promise": "2.1.0" + "is-promise": "^2.1.0" } }, + "rx": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", + "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=" + }, "rx-lite": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz", - "integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", "dev": true }, "rx-lite-aggregates": { @@ -8223,59 +7476,44 @@ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "dev": true, "requires": { - "rx-lite": "3.1.2" + "rx-lite": "*" } }, "safe-buffer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", - "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, - "saladcss-bem": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/saladcss-bem/-/saladcss-bem-0.0.1.tgz", - "integrity": "sha1-cgcAFP8/akmmhyz8s5Rsd1j0D8I=", + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.6", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } + "ret": "~0.1.10" } }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, "sax": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.2.tgz", - "integrity": "sha1-/YYxojvHgmvvXYcb24c3jJVkeCg=", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true }, + "saxes": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.6.tgz", + "integrity": "sha512-LAYs+lChg1v5uKNzPtsgTxSS5hLo8aIhSMCJt1WMpefAxm3D1RTpMwSpb6ebdL31cubiLTnhokVktBW+cv9Y9w==", + "dev": true, + "requires": { + "xmlchars": "^1.3.1" + } + }, "select": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", @@ -8283,68 +7521,53 @@ "optional": true }, "semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", "dev": true }, - "semver-diff": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", - "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", - "dev": true, - "requires": { - "semver": "5.4.1" - } - }, "send": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz", - "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==", + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", "dev": true, "requires": { "debug": "2.6.9", - "depd": "1.1.1", - "destroy": "1.0.4", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.6.2", + "http-errors": "~1.6.2", "mime": "1.4.1", "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.3.1" + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "mime": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", "dev": true } } }, - "serve-static": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz", - "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==", + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", "dev": true, "requires": { - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "parseurl": "1.3.2", - "send": "0.16.1" + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" } }, "set-blocking": { @@ -8353,16 +7576,33 @@ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "dev": true + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } }, "setprototypeof": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", "dev": true }, "shebang-command": { @@ -8371,7 +7611,7 @@ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -8380,10 +7620,27 @@ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, + "shell-quote": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", + "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", + "dev": true, + "requires": { + "array-filter": "~0.0.0", + "array-map": "~0.0.0", + "array-reduce": "~0.0.0", + "jsonify": "~0.0.0" + } + }, "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", "dev": true }, "slice-ansi": { @@ -8392,14 +7649,113 @@ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0" + "is-fullwidth-code-point": "^2.0.0" + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } } } }, @@ -8409,34 +7765,70 @@ "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", "dev": true, "requires": { - "is-plain-obj": "1.1.0" + "is-plain-obj": "^1.0.0" } }, "source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "dev": true, + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "sourcemap-codec": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.3.tgz", + "integrity": "sha512-vFrY/x/NdsD7Yc8mpTJXuao9S8lq08Z/kOITHz6b7YbfI9xL8Spe5EvSQUHOI7SbpY8bRPr0U3kKSsPuqEGSfA==", "dev": true }, "spdx-correct": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz", + "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==", "dev": true, "requires": { - "spdx-license-ids": "1.2.2" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "spdx-expression-parse": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", "dev": true }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, "spdx-license-ids": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz", + "integrity": "sha512-TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w==", "dev": true }, "split": { @@ -8445,7 +7837,16 @@ "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "dev": true, "requires": { - "through": "2.3.8" + "through": "2" + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" } }, "split2": { @@ -8454,7 +7855,7 @@ "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", "dev": true, "requires": { - "through2": "2.0.3" + "through2": "^2.0.2" } }, "sprintf-js": { @@ -8463,20 +7864,55 @@ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, "statuses": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", "dev": true }, - "stream-combiner": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", - "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", - "dev": true, - "requires": { - "duplexer": "0.1.1" - } + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "dev": true }, "strict-uri-encode": { "version": "1.1.0", @@ -8484,39 +7920,56 @@ "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", "dev": true }, - "string-hash": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", - "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=", - "dev": true - }, "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string.prototype.padend": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz", + "integrity": "sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA=", "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "define-properties": "^1.1.2", + "es-abstract": "^1.4.3", + "function-bind": "^1.0.2" } }, "string_decoder": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", - "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "safe-buffer": "5.0.1" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { @@ -8532,13 +7985,10 @@ "dev": true }, "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, - "requires": { - "get-stdin": "4.0.1" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true }, "strip-json-comments": { "version": "2.0.1", @@ -8552,11 +8002,11 @@ "integrity": "sha1-9/uTdYpppXEUAYEnfuoMLrEwH6M=", "dev": true, "requires": { - "byline": "5.0.0", - "duplexer": "0.1.1", - "minimist": "0.1.0", - "moment": "2.20.1", - "through": "2.3.8" + "byline": "^5.0.0", + "duplexer": "^0.1.1", + "minimist": "^0.1.0", + "moment": "^2.6.0", + "through": "^2.3.4" }, "dependencies": { "minimist": { @@ -8567,103 +8017,128 @@ } } }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "stylus": { + "version": "0.54.5", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.5.tgz", + "integrity": "sha1-QrlWCTHKcJDOhRWnmLqeaqPW3Hk=", "dev": true, "requires": { - "has-flag": "2.0.0" + "css-parse": "1.7.x", + "debug": "*", + "glob": "7.0.x", + "mkdirp": "0.5.x", + "sax": "0.5.x", + "source-map": "0.1.x" + }, + "dependencies": { + "glob": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", + "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "sax": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz", + "integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=", + "dev": true + }, + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } } }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, "svgo": { "version": "0.7.2", "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", "dev": true, "requires": { - "coa": "1.0.2", - "colors": "1.1.2", - "csso": "2.3.2", - "js-yaml": "3.7.0", - "mkdirp": "0.5.1", - "sax": "1.2.2", - "whet.extend": "0.9.9" + "coa": "~1.0.1", + "colors": "~1.1.2", + "csso": "~2.3.1", + "js-yaml": "~3.7.0", + "mkdirp": "~0.5.1", + "sax": "~1.2.1", + "whet.extend": "~0.9.9" } }, + "symbol-tree": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", + "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=", + "dev": true + }, "table": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "dev": true, "requires": { - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", - "chalk": "2.3.0", - "lodash": "4.17.4", + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "string-width": "^2.1.1" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.0" + "color-convert": "^1.9.0" } }, "chalk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", - "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" + "has-flag": "^3.0.0" } } } }, - "tcomb": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tcomb/-/tcomb-2.7.0.tgz", - "integrity": "sha1-ENYpWAQWaaXVNWe5pO6M3iKxwrA=", - "dev": true - }, "temp-dir": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", @@ -8676,24 +8151,18 @@ "integrity": "sha1-jP9jD7fp2gXwR8dM5M5NaFRX1JI=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "is-stream": "1.1.0", - "make-dir": "1.1.0", - "pify": "3.0.0", - "temp-dir": "1.0.0", - "uuid": "3.1.0" + "graceful-fs": "^4.1.2", + "is-stream": "^1.1.0", + "make-dir": "^1.0.0", + "pify": "^3.0.0", + "temp-dir": "^1.0.0", + "uuid": "^3.0.1" }, "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, "uuid": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", "dev": true } } @@ -8704,40 +8173,14 @@ "integrity": "sha1-W8xOrsxKsscH2LwR2ZzMmiyyh/I=", "dev": true, "requires": { - "os-tmpdir": "1.0.2", - "uuid": "2.0.3" - } - }, - "term-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", - "dev": true, - "requires": { - "execa": "0.7.0" - }, - "dependencies": { - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dev": true, - "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" - } - } + "os-tmpdir": "^1.0.0", + "uuid": "^2.0.1" } }, "text-extensions": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.7.0.tgz", - "integrity": "sha512-AKXZeDq230UaSzaO5s3qQUZOaC7iKbzq0jOFL614R7d9R593HLqAOL0cYoqLdkNrjBSOdmoQI06yigq1TSBXAg==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.8.0.tgz", + "integrity": "sha512-mVzjRxuWnDKs/qH1rbOJEVHLlSX9kty9lpi7lMvLgU9S74mQ8/Ozg9UPcKxShh0qG2NZ+NyPOPpcZU4C1Eld9A==", "dev": true }, "text-table": { @@ -8746,29 +8189,10 @@ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, - "thenify": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz", - "integrity": "sha1-5p44obq+lpsBCCB5eLn2K4hgSDk=", - "dev": true, - "requires": { - "any-promise": "1.3.0" - } - }, - "thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", - "dev": true, - "requires": { - "thenify": "3.3.0" - } - }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "through2": { "version": "2.0.3", @@ -8776,8 +8200,8 @@ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "dev": true, "requires": { - "readable-stream": "2.2.9", - "xtend": "4.0.1" + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" } }, "timed-out": { @@ -8801,24 +8225,75 @@ "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" } }, - "touch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", - "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { - "nopt": "1.0.10" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "^2.1.0" } }, "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", + "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", "dev": true }, "trim-off-newlines": { @@ -8827,6 +8302,21 @@ "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=", "dev": true }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, "tweezer.js": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/tweezer.js/-/tweezer.js-1.4.0.tgz", @@ -8838,9 +8328,15 @@ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", @@ -8848,51 +8344,57 @@ "dev": true }, "uglify-js": { - "version": "2.8.27", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.27.tgz", - "integrity": "sha1-R3h/kSsPJC5bmENDvo416V9pTJw=", + "version": "3.4.9", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz", + "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==", "dev": true, - "optional": true, "requires": { - "source-map": "0.5.6", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "commander": "~2.17.1", + "source-map": "~0.6.1" }, "dependencies": { - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true, - "optional": true - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, - "optional": true, - "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "dev": true, - "optional": true - }, - "undefsafe": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-0.0.3.tgz", - "integrity": "sha1-7Mo6A+VrmvFzhbqsgSrIO5lKli8=", - "dev": true + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" + } + } + } }, "uniq": { "version": "1.0.1", @@ -8900,96 +8402,124 @@ "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", "dev": true }, - "uniqid": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz", - "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=", - "dev": true, - "requires": { - "macaddress": "0.2.8" - } - }, "uniqs": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", "dev": true }, - "unique-string": { + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "unix-crypt-td-js": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "resolved": "https://registry.npmjs.org/unix-crypt-td-js/-/unix-crypt-td-js-1.0.0.tgz", + "integrity": "sha1-HAgkFQSBvHoB1J6Y8exmjYJBLzs=", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { - "crypto-random-string": "1.0.0" + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } } }, - "universalify": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", - "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", - "dev": true - }, "unzip-response": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", "dev": true }, - "update-notifier": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.3.0.tgz", - "integrity": "sha1-TognpruRUUCrCTVZ1wFOPruDdFE=", + "upath": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", + "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==", + "dev": true + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "dev": true, "requires": { - "boxen": "1.3.0", - "chalk": "2.3.0", - "configstore": "3.1.1", - "import-lazy": "2.1.0", - "is-installed-globally": "0.1.0", - "is-npm": "1.0.0", - "latest-version": "3.1.0", - "semver-diff": "2.1.0", - "xdg-basedir": "3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.0" - } - }, - "chalk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", - "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" - } - } + "punycode": "^2.1.0" } }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, "url-parse-lax": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "dev": true, "requires": { - "prepend-http": "1.0.4" + "prepend-http": "^1.0.1" } }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, "uuid": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", @@ -8997,50 +8527,62 @@ "dev": true }, "validate-npm-package-license": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "requires": { - "spdx-correct": "1.0.2", - "spdx-expression-parse": "1.0.4" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, "vendors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz", - "integrity": "sha1-N61zyO5Bf7PVgOeFMSMH0nSEfyI=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.2.tgz", + "integrity": "sha512-w/hry/368nO21AN9QljsaIhb9ZiZtZARoVH5f3CsFbawdLdayCgKRPup7CggujvySMxx0I91NOyxdVENohprLQ==", "dev": true }, - "vlq": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.2.tgz", - "integrity": "sha1-4xbVJXtAuGu0PLjV/qXX9U1rDKE=", - "dev": true - }, - "vue-eslint-parser": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-2.0.1.tgz", - "integrity": "sha512-X0krSmOiAml2+Ie8BwG7G/eGoQhAOVwa3tsqJ1jhzD2yAFKRPfL7tcFa8/04BRwbjzEJtsWIS64sNb4/+uFLbA==", + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "dev": true, "requires": { - "debug": "3.1.0", - "eslint-scope": "3.7.1", - "eslint-visitor-keys": "1.0.0", - "espree": "3.5.2", - "esquery": "1.0.0", - "lodash": "4.17.4" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vlq": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", + "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==", + "dev": true + }, + "w3c-hr-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", + "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", + "dev": true, + "requires": { + "browser-process-hrtime": "^0.1.2" + } + }, + "w3c-xmlserializer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.0.1.tgz", + "integrity": "sha512-XZGI1OH/OLQr/NaJhhPmzhngwcAnZDLytsvXnRmlYeRkmbb0I7sqFFA22erq4WQR0sUu17ZSQOAV9mFwCqKRNg==", + "dev": true, + "requires": { + "domexception": "^1.0.1", + "webidl-conversions": "^4.0.2", + "xml-name-validator": "^3.0.0" } }, "wcwidth": { @@ -9049,7 +8591,55 @@ "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", "dev": true, "requires": { - "defaults": "1.0.3" + "defaults": "^1.0.3" + } + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "websocket-driver": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", + "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", + "dev": true, + "requires": { + "http-parser-js": ">=0.4.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", + "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", + "dev": true + }, + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "requires": { + "iconv-lite": "0.4.24" + } + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "whatwg-url": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz", + "integrity": "sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" } }, "whet.extend": { @@ -9059,12 +8649,12 @@ "dev": true }, "which": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -9074,67 +8664,18 @@ "dev": true }, "wide-align": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2 || 2" } }, - "widest-line": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.0.tgz", - "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", - "dev": true, - "requires": { - "string-width": "2.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - } - } - }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "dev": true, - "optional": true - }, "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", "dev": true }, "wrap-ansi": { @@ -9143,8 +8684,30 @@ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } } }, "wrappy": { @@ -9159,7 +8722,7 @@ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "dev": true, "requires": { - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" } }, "write-file-atomic": { @@ -9168,9 +8731,9 @@ "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "signal-exit": "3.0.2" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" } }, "write-json-file": { @@ -9179,39 +8742,33 @@ "integrity": "sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8=", "dev": true, "requires": { - "detect-indent": "5.0.0", - "graceful-fs": "4.1.11", - "make-dir": "1.1.0", - "pify": "3.0.0", - "sort-keys": "2.0.0", - "write-file-atomic": "2.3.0" + "detect-indent": "^5.0.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "pify": "^3.0.0", + "sort-keys": "^2.0.0", + "write-file-atomic": "^2.0.0" }, "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, "sort-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", "dev": true, "requires": { - "is-plain-obj": "1.1.0" + "is-plain-obj": "^1.0.0" } } } }, "write-pkg": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-3.1.0.tgz", - "integrity": "sha1-AwqZlMyZk9JbTnWp8aGSNgcpHOk=", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-3.2.0.tgz", + "integrity": "sha512-tX2ifZ0YqEFOF1wjRW2Pk93NLsj02+n1UP5RvO6rCs0K6R2g1padvf006cY74PQJKMGS2r42NK7FD0dG6Y6paw==", "dev": true, "requires": { - "sort-keys": "2.0.0", - "write-json-file": "2.3.0" + "sort-keys": "^2.0.0", + "write-json-file": "^2.2.0" }, "dependencies": { "sort-keys": { @@ -9220,21 +8777,30 @@ "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", "dev": true, "requires": { - "is-plain-obj": "1.1.0" + "is-plain-obj": "^1.0.0" } } } }, - "xdg-basedir": { + "ws": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.3.tgz", + "integrity": "sha512-tbSxiT+qJI223AP4iLfQbkbxkwdFcneYinM2+x46Gx2wgvbaOMO36czfdfVUBRTHvzAMRhDd98sA5d/BuWbQdg==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + }, + "xml-name-validator": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", - "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", "dev": true }, - "xmldom": { - "version": "0.1.27", - "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz", - "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=", + "xmlchars": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-1.3.1.tgz", + "integrity": "sha512-tGkGJkN8XqCod7OT+EvGYK5Z4SfDQGD30zAa58OcnAa0RRWgzUEK72tkXhsX1FZd+rgnhRxFtmO+ihkp8LHSkw==", "dev": true }, "xtend": { @@ -9261,76 +8827,40 @@ "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", "dev": true, "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "7.0.0" + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^7.0.0" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - } - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "2.0.0" - } - }, "load-json-file": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" } }, "path-type": { @@ -9339,18 +8869,24 @@ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "dev": true, "requires": { - "pify": "2.3.0" + "pify": "^2.0.0" } }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, "read-pkg": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "dev": true, "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.4.0", - "path-type": "2.0.0" + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" } }, "read-pkg-up": { @@ -9359,35 +8895,8 @@ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "dev": true, "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - } + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" } } } @@ -9398,15 +8907,7 @@ "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", "dev": true, "requires": { - "camelcase": "4.1.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - } + "camelcase": "^4.1.0" } } } diff --git a/package.json b/package.json index 70d6e18..1661f40 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "docsify", - "version": "4.6.0", + "version": "4.9.4", "description": "A magical documentation generator.", "author": { "name": "qingwei-li", @@ -11,9 +11,10 @@ "license": "MIT", "repository": { "type": "git", - "url": "git+https://github.com/QingWei-Li/docsify.git" + "url": "git+https://github.com/docsifyjs/docsify.git" }, "main": "lib/docsify.js", + "unpkg": "lib/docsify.min.js", "files": [ "lib", "src", @@ -21,42 +22,57 @@ ], "scripts": { "bootstrap": "npm i && lerna bootstrap && npm run build:ssr", - "build": "rm -rf lib themes && node build/build && mkdir lib/themes && mkdir themes && node build/build-css && npm run build:ssr && node build/build-cover", - "dev:build": "rm -rf lib themes && mkdir themes && node build/build --dev && node build/build-css --dev", - "dev": "node app & nodemon -w src -e js,css --exec 'npm run dev:build'", - "build:ssr": "node build/build-ssr", - "test": "eslint {src,packages} --fix", - "pub:next": "RELEASE_TAG=next sh build/release.sh", + "serve": "node server", + "serve:ssr": "cross-env SSR=1 node server", + "dev": "run-p serve watch:*", + "dev:ssr": "run-p serve:ssr watch:*", + "lint": "eslint {src,packages} --fix", + "test": "mocha test/*/**", + "css": "stylus src/themes/*.styl -u autoprefixer-stylus", + "watch:css": "run-p 'css -- -o themes -w'", + "watch:js": "node build/build.js", + "build:css:min": "mkdir lib/themes && run-p 'css -- -o lib/themes' && node build/mincss.js", + "build:css": "mkdir -p themes && run-p 'css -- -o themes'", + "build:js": "cross-env NODE_ENV=production node build/build.js", + "build:ssr": "node build/ssr.js", + "build:cover": "node build/cover.js", + "build": "rimraf lib themes/* && run-s build:js build:css build:css:min build:ssr build:cover", + "pub:next": "cross-env RELEASE_TAG=next sh build/release.sh", "pub": "sh build/release.sh", "postinstall": "opencollective postinstall" }, "dependencies": { - "marked": "^0.3.12", + "marked": "^0.5.1", + "medium-zoom": "^0.4.0", "opencollective": "^1.0.3", - "medium-zoom": "^0.3.0", - "prismjs": "^1.9.0", + "prismjs": "^1.15.0", "tinydate": "^1.0.0", "tweezer.js": "^1.4.0" }, "devDependencies": { + "autoprefixer-stylus": "^0.14.0", + "chai": "^4.2.0", + "chokidar": "^2.0.2", "conventional-changelog-cli": "^1.3.5", + "cross-env": "^5.1.3", "cssnano": "^3.10.0", "eslint": "^4.14.0", - "eslint-config-vue": "^2.0.2", - "eslint-plugin-vue": "^4.0.1", + "eslint-config-xo-space": "^0.18.0", + "esm": "^3.1.4", + "jsdom": "^13.2.0", "lerna": "^2.5.1", - "nodemon": "^1.14.7", - "postcss": "^5.2.16", - "postcss-salad": "^1.0.8", + "live-server": "^1.2.1", + "mocha": "^5.2.0", + "npm-run-all": "^4.1.5", + "rimraf": "^2.6.2", "rollup": "^0.53.3", "rollup-plugin-async": "^1.2.0", "rollup-plugin-buble": "^0.18.0", "rollup-plugin-commonjs": "^8.2.6", "rollup-plugin-node-resolve": "^3.0.0", "rollup-plugin-replace": "^2.0.0", - "rollup-plugin-string": "^2.0.2", "rollup-plugin-uglify": "^2.0.1", - "serve-static": "^1.13.1" + "stylus": "^0.54.5" }, "keywords": [ "doc", diff --git a/packages/docsify-server-renderer/README.md b/packages/docsify-server-renderer/README.md index a971436..08b99b9 100644 --- a/packages/docsify-server-renderer/README.md +++ b/packages/docsify-server-renderer/README.md @@ -17,7 +17,7 @@ var renderer = new Renderer({ template: readFileSync('./docs/index.template.html', 'utf-8')., config: { name: 'docsify', - repo: 'qingwei-li/docsify' + repo: 'docsifyjs/docsify' } }) diff --git a/packages/docsify-server-renderer/index.js b/packages/docsify-server-renderer/index.js index b0507ef..21fb5c7 100644 --- a/packages/docsify-server-renderer/index.js +++ b/packages/docsify-server-renderer/index.js @@ -1,18 +1,19 @@ import * as tpl from '../../src/core/render/tpl' import fetch from 'node-fetch' -import { AbstractHistory } from '../../src/core/router/history/abstract' -import { Compiler } from '../../src/core/render/compiler' -import { isAbsolutePath } from '../../src/core/router/util' -import { readFileSync } from 'fs' -import { resolve, basename } from 'path' +import {AbstractHistory} from '../../src/core/router/history/abstract' +import {Compiler} from '../../src/core/render/compiler' +import {isAbsolutePath} from '../../src/core/router/util' +import {readFileSync} from 'fs' +import {resolve, basename} from 'path' import resolvePathname from 'resolve-pathname' import debug from 'debug' +import {prerenderEmbed} from '../../src/core/render/embed' -function cwd (...args) { +function cwd(...args) { return resolve(process.cwd(), ...args) } -function mainTpl (config) { +function mainTpl(config) { let html = `` @@ -30,7 +31,7 @@ function mainTpl (config) { } export default class Renderer { - constructor ({ template, config, cache }) { + constructor({template, config, cache}) { this.html = template this.config = config = Object.assign({}, config, { routerMode: 'history' @@ -50,18 +51,18 @@ export default class Renderer { this.template = this.html } - _getPath (url) { + _getPath(url) { const file = this.router.getFile(url) return isAbsolutePath(file) ? file : cwd(`./${file}`) } - async renderToString (url) { + async renderToString(url) { this.url = url = this.router.parse(url).path - const { loadSidebar, loadNavbar, coverpage } = this.config + const {loadSidebar, loadNavbar, coverpage} = this.config const mainFile = this._getPath(url) - this._renderHtml('main', await this._render(mainFile)) + this._renderHtml('main', await this._render(mainFile, 'main')) if (loadSidebar) { const name = loadSidebar === true ? '_sidebar.md' : loadSidebar @@ -99,15 +100,16 @@ export default class Renderer { return html } - _renderHtml (match, content) { + _renderHtml(match, content) { this.html = this.html.replace(new RegExp(``, 'g'), content) return this.html } - async _render (path, type) { + async _render(path, type) { let html = await this._loadFile(path) - const { subMaxLevel, maxLevel } = this.config + const {subMaxLevel, maxLevel} = this.config + let tokens switch (type) { case 'sidebar': @@ -120,6 +122,19 @@ export default class Renderer { case 'cover': html = this.compiler.cover(html) break + case 'main': + tokens = await new Promise(r => { + prerenderEmbed( + { + fetch: url => this._loadFile(this._getPath(url)), + compiler: this.compiler, + raw: html + }, + r + ) + }) + html = this.compiler.compile(tokens) + break case 'navbar': case 'article': default: @@ -130,13 +145,15 @@ export default class Renderer { return html } - async _loadFile (filePath) { + async _loadFile(filePath) { debug('docsify')(`load > ${filePath}`) let content try { if (isAbsolutePath(filePath)) { const res = await fetch(filePath) - if (!res.ok) throw Error() + if (!res.ok) { + throw Error() + } content = await res.text() this.lock = 0 } else { @@ -152,8 +169,11 @@ export default class Renderer { } const fileName = basename(filePath) + const result = await this._loadFile( + resolvePathname(`../${fileName}`, filePath) + ) - return await this._loadFile(resolvePathname(`../${fileName}`, filePath)) + return result } } } diff --git a/packages/docsify-server-renderer/package-lock.json b/packages/docsify-server-renderer/package-lock.json index 0358f4e..e8ff0a6 100644 --- a/packages/docsify-server-renderer/package-lock.json +++ b/packages/docsify-server-renderer/package-lock.json @@ -37,5 +37,5 @@ "integrity": "sha1-6DWIAbhrg7F1YNTjw4LXrvIQCUQ=" } }, - "version": "4.6.0" + "version": "4.9.4" } diff --git a/packages/docsify-server-renderer/package.json b/packages/docsify-server-renderer/package.json index 6cf1ec9..5ff206e 100644 --- a/packages/docsify-server-renderer/package.json +++ b/packages/docsify-server-renderer/package.json @@ -1,6 +1,6 @@ { "name": "docsify-server-renderer", - "version": "4.6.0", + "version": "4.9.4", "description": "docsify server renderer", "author": { "name": "qingwei-li", @@ -9,13 +9,14 @@ }, "homepage": "https://docsify.js.org", "license": "MIT", - "repository": "QingWei-Li/docsify", + "repository": "docsifyjs/docsify", "main": "build.js", "scripts": { "test": "echo 'hello'" }, "dependencies": { "debug": "^2.6.8", + "docsify": "^4.8.0", "node-fetch": "^1.7.0", "resolve-pathname": "^2.1.0" } diff --git a/server.js b/server.js new file mode 100644 index 0000000..785e457 --- /dev/null +++ b/server.js @@ -0,0 +1,55 @@ +const liveServer = require('live-server') +const isSSR = !!process.env.SSR +const middleware = [] + +if (isSSR) { + const Renderer = require('./packages/docsify-server-renderer/build.js') + const renderer = new Renderer({ + template: ` + + + + + docsify + + + + + + + + + `, + config: { + name: 'docsify', + repo: 'docsifyjs/docsify', + basePath: 'https://docsify.js.org/', + loadNavbar: true, + loadSidebar: true, + subMaxLevel: 3, + auto2top: true, + alias: { + '/de-de/changelog': '/changelog', + '/zh-cn/changelog': '/changelog', + '/changelog': + 'https://raw.githubusercontent.com/docsifyjs/docsify/master/CHANGELOG' + } + }, + path: './' + }) + + middleware.push(function(req, res, next) { + if (/\.(css|js)$/.test(req.url)) { + return next() + } + renderer.renderToString(req.url).then(html => res.end(html)) + }) +} + +const params = { + port: 3000, + watch: ['lib', 'docs', 'themes'], + middleware +} + +liveServer.start(params) diff --git a/src/core/config.js b/src/core/config.js index 7b72adf..a1386b2 100644 --- a/src/core/config.js +++ b/src/core/config.js @@ -1,56 +1,71 @@ -import { merge, hyphenate, isPrimitive } from './util/core' +import {merge, hyphenate, isPrimitive, hasOwn} from './util/core' -const config = merge( - { - el: '#app', - repo: '', - maxLevel: 6, - subMaxLevel: 0, - loadSidebar: null, - loadNavbar: null, - homepage: 'README.md', - coverpage: '', - basePath: '', - auto2top: false, - name: '', - themeColor: '', - nameLink: window.location.pathname, - autoHeader: false, - executeScript: null, - noEmoji: false, - ga: '', - ext: '.md', - mergeNavbar: false, - formatUpdated: '', - externalLinkTarget: '_blank', - routerMode: 'hash', - noCompileLinks: [] - }, - window.$docsify -) +export default function () { + const config = merge( + { + el: '#app', + repo: '', + maxLevel: 6, + subMaxLevel: 0, + loadSidebar: null, + loadNavbar: null, + homepage: 'README.md', + coverpage: '', + basePath: '', + auto2top: false, + name: '', + themeColor: '', + nameLink: window.location.pathname, + autoHeader: false, + executeScript: null, + noEmoji: false, + ga: '', + ext: '.md', + mergeNavbar: false, + formatUpdated: '', + externalLinkTarget: '_blank', + routerMode: 'hash', + noCompileLinks: [], + relativePath: false + }, + window.$docsify + ) -const script = - document.currentScript || - [].slice - .call(document.getElementsByTagName('script')) - .filter(n => /docsify\./.test(n.src))[0] + const script = + document.currentScript || + [].slice + .call(document.getElementsByTagName('script')) + .filter(n => /docsify\./.test(n.src))[0] -if (script) { - for (const prop in config) { - const val = script.getAttribute('data-' + hyphenate(prop)) + if (script) { + for (const prop in config) { + if (hasOwn.call(config, prop)) { + const val = script.getAttribute('data-' + hyphenate(prop)) - if (isPrimitive(val)) { - config[prop] = val === '' ? true : val + if (isPrimitive(val)) { + config[prop] = val === '' ? true : val + } + } + } + + if (config.loadSidebar === true) { + config.loadSidebar = '_sidebar' + config.ext + } + if (config.loadNavbar === true) { + config.loadNavbar = '_navbar' + config.ext + } + if (config.coverpage === true) { + config.coverpage = '_coverpage' + config.ext + } + if (config.repo === true) { + config.repo = '' + } + if (config.name === true) { + config.name = '' } } - if (config.loadSidebar === true) config.loadSidebar = '_sidebar' + config.ext - if (config.loadNavbar === true) config.loadNavbar = '_navbar' + config.ext - if (config.coverpage === true) config.coverpage = '_coverpage' + config.ext - if (config.repo === true) config.repo = '' - if (config.name === true) config.name = '' + window.$docsify = config + + return config } - -window.$docsify = config - -export default config diff --git a/src/core/event/index.js b/src/core/event/index.js index dec4fcb..8b8c275 100644 --- a/src/core/event/index.js +++ b/src/core/event/index.js @@ -1,16 +1,19 @@ -import { isMobile } from '../util/env' -import { body, on } from '../util/dom' +import {isMobile} from '../util/env' +import {body, on} from '../util/dom' import * as sidebar from './sidebar' -import { scrollIntoView } from './scroll' +import {scrollIntoView} from './scroll' -export function eventMixin (proto) { +export function eventMixin(proto) { proto.$resetEvents = function () { scrollIntoView(this.route.path, this.route.query.id) - sidebar.getAndActive(this.router, 'nav') + + if (this.config.loadNavbar) { + sidebar.getAndActive(this.router, 'nav') + } } } -export function initEvent (vm) { +export function initEvent(vm) { // Bind toggle button sidebar.btn('button.sidebar-toggle', vm.router) sidebar.collapse('.sidebar', vm.router) diff --git a/src/core/event/scroll.js b/src/core/event/scroll.js index be64d96..3e9e332 100644 --- a/src/core/event/scroll.js +++ b/src/core/event/scroll.js @@ -1,4 +1,4 @@ -import { isMobile } from '../util/env' +import {isMobile} from '../util/env' import * as dom from '../util/dom' import Tweezer from 'tweezer.js' @@ -8,8 +8,10 @@ let scroller = null let enableScrollEvent = true let coverHeight = 0 -function scrollTo (el) { - if (scroller) scroller.stop() +function scrollTo(el) { + if (scroller) { + scroller.stop() + } enableScrollEvent = false scroller = new Tweezer({ start: window.pageYOffset, @@ -24,8 +26,10 @@ function scrollTo (el) { .begin() } -function highlight (path) { - if (!enableScrollEvent) return +function highlight(path) { + if (!enableScrollEvent) { + return + } const sidebar = dom.getNode('.sidebar') const anchors = dom.findAll('.anchor') const wrap = dom.find(sidebar, '.sidebar-nav') @@ -38,22 +42,28 @@ function highlight (path) { const node = anchors[i] if (node.offsetTop > top) { - if (!last) last = node + if (!last) { + last = node + } break } else { last = node } } - if (!last) return - const li = nav[getNavKey(path, last.getAttribute('data-id'))] + if (!last) { + return + } + const li = nav[getNavKey(decodeURIComponent(path), last.getAttribute('data-id'))] - if (!li || li === active) return + if (!li || li === active) { + return + } active && active.classList.remove('active') li.classList.add('active') active = li - // scroll into view + // Scroll into view // https://github.com/vuejs/vuejs.org/blob/master/themes/vue/source/js/common.js#L282-L297 if (!hoverOver && dom.body.classList.contains('sticky')) { const height = sidebar.clientHeight @@ -68,32 +78,43 @@ function highlight (path) { } } -function getNavKey (path, id) { +function getNavKey(path, id) { return `${path}?id=${id}` } -export function scrollActiveSidebar (router) { +export function scrollActiveSidebar(router) { const cover = dom.find('.cover.show') coverHeight = cover ? cover.offsetHeight : 0 const sidebar = dom.getNode('.sidebar') - const lis = dom.findAll(sidebar, 'li') + let lis = [] + if (sidebar != null) { + lis = dom.findAll(sidebar, 'li') + } for (let i = 0, len = lis.length; i < len; i += 1) { const li = lis[i] const a = li.querySelector('a') - if (!a) continue + if (!a) { + continue + } let href = a.getAttribute('href') if (href !== '/') { - const { query: { id }, path } = router.parse(href) - if (id) href = getNavKey(path, id) + const {query: {id}, path} = router.parse(href) + if (id) { + href = getNavKey(path, id) + } } - if (href) nav[decodeURIComponent(href)] = li + if (href) { + nav[decodeURIComponent(href)] = li + } } - if (isMobile) return + if (isMobile) { + return + } const path = router.getCurrentPath() dom.off('scroll', () => highlight(path)) dom.on('scroll', () => highlight(path)) @@ -105,8 +126,10 @@ export function scrollActiveSidebar (router) { }) } -export function scrollIntoView (path, id) { - if (!id) return +export function scrollIntoView(path, id) { + if (!id) { + return + } const section = dom.find('#' + id) section && scrollTo(section) @@ -120,6 +143,6 @@ export function scrollIntoView (path, id) { const scrollEl = dom.$.scrollingElement || dom.$.documentElement -export function scroll2Top (offset = 0) { +export function scroll2Top(offset = 0) { scrollEl.scrollTop = offset === true ? 0 : Number(offset) } diff --git a/src/core/event/sidebar.js b/src/core/event/sidebar.js index 71dc94c..81c3003 100644 --- a/src/core/event/sidebar.js +++ b/src/core/event/sidebar.js @@ -1,14 +1,17 @@ -import { isMobile } from '../util/env' +import {isMobile} from '../util/env' import * as dom from '../util/dom' const title = dom.$.title /** * Toggle button */ -export function btn (el, router) { +export function btn(el) { const toggle = _ => dom.body.classList.toggle('close') el = dom.getNode(el) + if (el == null) { + return + } dom.on(el, 'click', e => { e.stopPropagation() toggle() @@ -22,10 +25,12 @@ export function btn (el, router) { ) } -export function collapse (el, router) { +export function collapse(el) { el = dom.getNode(el) - - dom.on(el, 'click', ({ target }) => { + if (el == null) { + return + } + dom.on(el, 'click', ({target}) => { if ( target.nodeName === 'A' && target.nextSibling && @@ -36,9 +41,11 @@ export function collapse (el, router) { }) } -export function sticky () { +export function sticky() { const cover = dom.getNode('section.cover') - if (!cover) return + if (!cover) { + return + } const coverHeight = cover.getBoundingClientRect().height if (window.pageYOffset >= coverHeight || cover.classList.contains('hidden')) { @@ -56,10 +63,12 @@ export function sticky () { * @param {Boolean} autoTitle auto set title * @return {element} */ -export function getAndActive (router, el, isParent, autoTitle) { +export function getAndActive(router, el, isParent, autoTitle) { el = dom.getNode(el) - - const links = dom.findAll(el, 'a') + let links = [] + if (el != null) { + links = dom.findAll(el, 'a') + } const hash = decodeURI(router.toURL(router.getCurrentPath())) let target @@ -76,7 +85,7 @@ export function getAndActive (router, el, isParent, autoTitle) { }) if (autoTitle) { - dom.$.title = target ? `${target.innerText} - ${title}` : title + dom.$.title = target ? (target.title || `${target.innerText} - ${title}`) : title } return target diff --git a/src/core/fetch/ajax.js b/src/core/fetch/ajax.js index d513239..5911b79 100644 --- a/src/core/fetch/ajax.js +++ b/src/core/fetch/ajax.js @@ -1,5 +1,5 @@ import progressbar from '../render/progressbar' -import { noop } from '../util/core' +import {noop, hasOwn} from '../util/core' const cache = {} @@ -9,7 +9,7 @@ const cache = {} * @param {boolean} [hasBar=false] has progress bar * @return { then(resolve, reject), abort } */ -export function get (url, hasBar = false, headers = {}) { +export function get(url, hasBar = false, headers = {}) { const xhr = new XMLHttpRequest() const on = function () { xhr.addEventListener.apply(xhr, arguments) @@ -17,12 +17,14 @@ export function get (url, hasBar = false, headers = {}) { const cached = cache[url] if (cached) { - return { then: cb => cb(cached.content, cached.opt), abort: noop } + return {then: cb => cb(cached.content, cached.opt), abort: noop} } xhr.open('GET', url) for (const i in headers) { - xhr.setRequestHeader(i, headers[i]) + if (hasOwn.call(headers, i)) { + xhr.setRequestHeader(i, headers[i]) + } } xhr.send() @@ -45,7 +47,7 @@ export function get (url, hasBar = false, headers = {}) { } on('error', error) - on('load', ({ target }) => { + on('load', ({target}) => { if (target.status >= 400) { error(target) } else { diff --git a/src/core/fetch/index.js b/src/core/fetch/index.js index 7ee18cf..17208df 100644 --- a/src/core/fetch/index.js +++ b/src/core/fetch/index.js @@ -1,14 +1,16 @@ -import { get } from './ajax' -import { callHook } from '../init/lifecycle' -import { getParentPath, stringifyQuery } from '../router/util' -import { noop } from '../util/core' -import { getAndActive } from '../event/sidebar' +import {get} from './ajax' +import {callHook} from '../init/lifecycle' +import {getParentPath, stringifyQuery} from '../router/util' +import {noop} from '../util/core' +import {getAndActive} from '../event/sidebar' -function loadNested (path, qs, file, next, vm, first) { +function loadNested(path, qs, file, next, vm, first) { path = first ? path : path.replace(/\/$/, '') path = getParentPath(path) - if (!path) return + if (!path) { + return + } get( vm.router.getFile(path + file) + qs, @@ -17,23 +19,50 @@ function loadNested (path, qs, file, next, vm, first) { ).then(next, _ => loadNested(path, qs, file, next, vm)) } -export function fetchMixin (proto) { +export function fetchMixin(proto) { let last - proto._fetch = function (cb = noop) { - const { path, query } = this.route - const qs = stringifyQuery(query, ['id']) - const { loadNavbar, loadSidebar, requestHeaders } = this.config - // Abort last request - last && last.abort && last.abort() + const abort = () => last && last.abort && last.abort() + const request = (url, hasbar, requestHeaders) => { + abort() + last = get(url, true, requestHeaders) + return last + } - last = get(this.router.getFile(path) + qs, true, requestHeaders) + const get404Path = (path, config) => { + const {notFoundPage, ext} = config + const defaultPath = '_404' + (ext || '.md') + let key + let path404 - // Current page is html - this.isHTML = /\.html$/g.test(path) + switch (typeof notFoundPage) { + case 'boolean': + path404 = defaultPath + break + case 'string': + path404 = notFoundPage + break - const loadSideAndNav = () => { - if (!loadSidebar) return cb() + case 'object': + key = Object.keys(notFoundPage) + .sort((a, b) => b.length - a.length) + .find(key => path.match(new RegExp('^' + key))) + + path404 = (key && notFoundPage[key]) || defaultPath + break + + default: + break + } + + return path404 + } + + proto._loadSideAndNav = function (path, qs, loadSidebar, cb) { + return () => { + if (!loadSidebar) { + return cb() + } const fn = result => { this._renderSidebar(result) @@ -43,16 +72,30 @@ export function fetchMixin (proto) { // Load sidebar loadNested(path, qs, loadSidebar, fn, this, true) } + } + + proto._fetch = function (cb = noop) { + const {path, query} = this.route + const qs = stringifyQuery(query, ['id']) + const {loadNavbar, requestHeaders, loadSidebar} = this.config + // Abort last request + + const file = this.router.getFile(path) + const req = request(file + qs, true, requestHeaders) + + // Current page is html + this.isHTML = /\.html$/g.test(file) // Load main content - last.then( - (text, opt) => { - this._renderMain(text, opt) - loadSideAndNav() - }, + req.then( + (text, opt) => + this._renderMain( + text, + opt, + this._loadSideAndNav(path, qs, loadSidebar, cb) + ), _ => { - this._renderMain(null) - loadSideAndNav() + this._fetchFallbackPage(file, qs, cb) || this._fetch404(file, qs, cb) } ) @@ -69,7 +112,7 @@ export function fetchMixin (proto) { } proto._fetchCover = function () { - const { coverpage, requestHeaders } = this.config + const {coverpage, requestHeaders} = this.config const query = this.route.query const root = getParentPath(this.route.path) @@ -87,7 +130,7 @@ export function fetchMixin (proto) { path = cover === true ? '_coverpage' : cover } - const coverOnly = !!path && this.config.onlyCover + const coverOnly = Boolean(path) && this.config.onlyCover if (path) { path = this.router.getFile(root + path) this.coverIsHTML = /\.html$/g.test(path) @@ -112,18 +155,71 @@ export function fetchMixin (proto) { if (onlyCover) { done() } else { - this._fetch(result => { + this._fetch(() => { this.$resetEvents() done() }) } } + + proto._fetchFallbackPage = function (path, qs, cb = noop) { + const {requestHeaders, fallbackLanguages, loadSidebar} = this.config + + if (!fallbackLanguages) { + return false + } + + const local = path.split('/')[1] + + if (fallbackLanguages.indexOf(local) === -1) { + return false + } + const newPath = path.replace(new RegExp(`^/${local}`), '') + const req = request(newPath + qs, true, requestHeaders) + + req.then( + (text, opt) => + this._renderMain( + text, + opt, + this._loadSideAndNav(path, qs, loadSidebar, cb) + ), + () => this._fetch404(path, qs, cb) + ) + + return true + } + /** + * Load the 404 page + * @param path + * @param qs + * @param cb + * @returns {*} + * @private + */ + proto._fetch404 = function (path, qs, cb = noop) { + const {loadSidebar, requestHeaders, notFoundPage} = this.config + + const fnLoadSideAndNav = this._loadSideAndNav(path, qs, loadSidebar, cb) + if (notFoundPage) { + const path404 = get404Path(path, this.config) + + request(this.router.getFile(path404), true, requestHeaders).then( + (text, opt) => this._renderMain(text, opt, fnLoadSideAndNav), + () => this._renderMain(null, {}, fnLoadSideAndNav) + ) + return true + } + + this._renderMain(null, {}, fnLoadSideAndNav) + return false + } } -export function initFetch (vm) { - const { loadSidebar } = vm.config +export function initFetch(vm) { + const {loadSidebar} = vm.config - // server-client renderer + // Server-Side Rendering if (vm.rendered) { const activeEl = getAndActive(vm.router, '.sidebar-nav', true, true) if (loadSidebar && activeEl) { diff --git a/src/core/global-api.js b/src/core/global-api.js index 1e5fa12..7bdf74c 100644 --- a/src/core/global-api.js +++ b/src/core/global-api.js @@ -1,13 +1,19 @@ import * as util from './util' import * as dom from './util/dom' -import { Compiler } from './render/compiler' -import { slugify } from './render/slugify' -import { get } from './fetch/ajax' +import {Compiler} from './render/compiler' +import {slugify} from './render/slugify' +import {get} from './fetch/ajax' import marked from 'marked' import prism from 'prismjs' export default function () { - window.Docsify = { util, dom, get, slugify } + window.Docsify = { + util, + dom, + get, + slugify, + version: '__VERSION__' + } window.DocsifyCompiler = Compiler window.marked = marked window.Prism = prism diff --git a/src/core/index.js b/src/core/index.js index 2e74419..ebb7fe3 100644 --- a/src/core/index.js +++ b/src/core/index.js @@ -1,14 +1,14 @@ -import { initMixin } from './init' -import { routerMixin } from './router' -import { renderMixin } from './render' -import { fetchMixin } from './fetch' -import { eventMixin } from './event' +import {initMixin} from './init' +import {routerMixin} from './router' +import {renderMixin} from './render' +import {fetchMixin} from './fetch' +import {eventMixin} from './event' import initGlobalAPI from './global-api' /** * Fork https://github.com/bendrucker/document-ready/blob/master/index.js */ -function ready (callback) { +function ready(callback) { const state = document.readyState if (state === 'complete' || state === 'interactive') { @@ -18,7 +18,7 @@ function ready (callback) { document.addEventListener('DOMContentLoaded', callback) } -function Docsify () { +function Docsify() { this._init() } @@ -35,11 +35,6 @@ eventMixin(proto) */ initGlobalAPI() -/** - * Version - */ -Docsify.version = '__VERSION__' - /** * Run Docsify */ diff --git a/src/core/init/index.js b/src/core/init/index.js index fdc57d5..fe88c31 100644 --- a/src/core/init/index.js +++ b/src/core/init/index.js @@ -1,15 +1,15 @@ import config from '../config' -import { initLifecycle, callHook } from './lifecycle' -import { initRender } from '../render' -import { initRouter } from '../router' -import { initEvent } from '../event' -import { initFetch } from '../fetch' -import { isFn } from '../util/core' +import {initLifecycle, callHook} from './lifecycle' +import {initRender} from '../render' +import {initRouter} from '../router' +import {initEvent} from '../event' +import {initFetch} from '../fetch' +import {isFn} from '../util/core' -export function initMixin (proto) { +export function initMixin(proto) { proto._init = function () { const vm = this - vm.config = config || {} + vm.config = config() initLifecycle(vm) // Init hooks initPlugin(vm) // Install plugins @@ -22,6 +22,6 @@ export function initMixin (proto) { } } -function initPlugin (vm) { +function initPlugin(vm) { [].concat(vm.config.plugins).forEach(fn => isFn(fn) && fn(vm._lifecycle, vm)) } diff --git a/src/core/init/lifecycle.js b/src/core/init/lifecycle.js index 93605f6..fd9b7ae 100644 --- a/src/core/init/lifecycle.js +++ b/src/core/init/lifecycle.js @@ -1,6 +1,6 @@ -import { noop } from '../util/core' +import {noop} from '../util/core' -export function initLifecycle (vm) { +export function initLifecycle(vm) { const hooks = [ 'init', 'mounted', @@ -18,28 +18,26 @@ export function initLifecycle (vm) { }) } -export function callHook (vm, hook, data, next = noop) { +export function callHook(vm, hook, data, next = noop) { const queue = vm._hooks[hook] const step = function (index) { const hook = queue[index] if (index >= queue.length) { next(data) - } else { - if (typeof hook === 'function') { - if (hook.length === 2) { - hook(data, result => { - data = result - step(index + 1) - }) - } else { - const result = hook(data) - data = result !== undefined ? result : data + } else if (typeof hook === 'function') { + if (hook.length === 2) { + hook(data, result => { + data = result step(index + 1) - } + }) } else { + const result = hook(data) + data = result === undefined ? data : result step(index + 1) } + } else { + step(index + 1) } } diff --git a/src/core/render/compiler.js b/src/core/render/compiler.js index f632dd1..354b6a9 100644 --- a/src/core/render/compiler.js +++ b/src/core/render/compiler.js @@ -1,96 +1,82 @@ import marked from 'marked' import Prism from 'prismjs' -import { helper as helperTpl, tree as treeTpl } from './tpl' -import { genTree } from './gen-tree' -import { slugify } from './slugify' -import { emojify } from './emojify' -import { isAbsolutePath, getPath } from '../router/util' -import { isFn, merge, cached } from '../util/core' -import { get } from '../fetch/ajax' +import {helper as helperTpl, tree as treeTpl} from './tpl' +import {genTree} from './gen-tree' +import {slugify} from './slugify' +import {emojify} from './emojify' +import {isAbsolutePath, getPath, getParentPath} from '../router/util' +import {isFn, merge, cached, isPrimitive} from '../util/core' + +// See https://github.com/PrismJS/prism/pull/1367 +import 'prismjs/components/prism-markup-templating' const cachedLinks = {} -let uid = 0 -function getAndRemoveConfig (str = '') { +export function getAndRemoveConfig(str = '') { const config = {} if (str) { str = str - .replace(/:([\w-]+)=?([\w-]+)?/g, (m, key, value) => { + .replace(/^'/, '') + .replace(/'$/, '') + .replace(/(?:^|\s):([\w-]+)=?([\w-]+)?/g, (m, key, value) => { config[key] = (value && value.replace(/"/g, '')) || true return '' }) .trim() } - return { str, config } + return {str, config} } + const compileMedia = { - markdown (url) { - const id = `docsify-get-${uid++}` - - if (!process.env.SSR) { - get(url, false).then(text => { - document.getElementById(id).innerHTML = this.compile(text) - }) - - return `
        ` - } else { - return `
        - ` + markdown(url) { + return { + url } }, - iframe (url, title) { - return `` + mermaid(url) { + return { + url + } }, - video (url, title) { - return `` + iframe(url, title) { + return { + html: `` + } }, - audio (url, title) { - return `` + video(url, title) { + return { + html: `` + } }, - code (url, title) { - const id = `docsify-get-${uid++}` - let ext = url.match(/\.(\w+)$/) + audio(url, title) { + return { + html: `` + } + }, + code(url, title) { + let lang = url.match(/\.(\w+)$/) - ext = title || (ext && ext[1]) - if (ext === 'md') ext = 'markdown' + lang = title || (lang && lang[1]) + if (lang === 'md') { + lang = 'markdown' + } - if (!process.env.SSR) { - get(url, false).then(text => { - document.getElementById(id).innerHTML = this.compile( - '```' + ext + '\n' + text.replace(/`/g, '@qm@') + '\n```\n' - ).replace(/@qm@/g, '`') - }) - - return `
        ` - } else { - return `
        - ` + return { + url, + lang } } } export class Compiler { - constructor (config, router) { + constructor(config, router) { this.config = config this.router = router this.cacheTree = {} this.toc = [] + this.cacheTOC = {} this.linkTarget = config.externalLinkTarget || '_blank' this.contentBase = router.getBasePath() @@ -109,20 +95,82 @@ export class Compiler { compile = marked } - this.compile = cached(text => { - let html = '' + this._marked = compile + this.compile = text => { + let isCached = true + const result = cached(_ => { + isCached = false + let html = '' - if (!text) return text + if (!text) { + return text + } - html = compile(text) - html = config.noEmoji ? html : emojify(html) - slugify.clear() + if (isPrimitive(text)) { + html = compile(text) + } else { + html = compile.parser(text) + } - return html - }) + html = config.noEmoji ? html : emojify(html) + slugify.clear() + + return html + })(text) + + const curFileName = this.router.parse().file + + if (isCached) { + this.toc = this.cacheTOC[curFileName] + } else { + this.cacheTOC[curFileName] = [...this.toc] + } + + return result + } } - matchNotCompileLink (link) { + compileEmbed(href, title) { + const {str, config} = getAndRemoveConfig(title) + let embed + title = str + + if (config.include) { + if (!isAbsolutePath(href)) { + href = getPath( + process.env.SSR ? '' : this.contentBase, + getParentPath(this.router.getCurrentPath()), + href + ) + } + + let media + if (config.type && (media = compileMedia[config.type])) { + embed = media.call(this, href, title) + embed.type = config.type + } else { + let type = 'code' + if (/\.(md|markdown)/.test(href)) { + type = 'markdown' + } else if (/\.mmd/.test(href)) { + type = 'mermaid' + } else if (/\.html?/.test(href)) { + type = 'iframe' + } else if (/\.(mp4|ogg)/.test(href)) { + type = 'video' + } else if (/\.mp3/.test(href)) { + type = 'audio' + } + embed = compileMedia[type].call(this, href, title) + embed.type = type + } + embed.fragment = config.fragment + + return embed + } + } + + _matchNotCompileLink(link) { const links = this.config.noCompileLinks || [] for (var i = 0; i < links.length; i++) { @@ -135,40 +183,42 @@ export class Compiler { } } - _initRenderer () { + _initRenderer() { const renderer = new marked.Renderer() - const { linkTarget, router, contentBase } = this + const {linkTarget, router, contentBase} = this const _self = this const origin = {} /** - * render anchor tag - * @link https://github.com/chjj/marked#overriding-renderer-methods + * Render anchor tag + * @link https://github.com/markedjs/marked#overriding-renderer-methods */ origin.heading = renderer.heading = function (text, level) { - const nextToc = { level, title: text } + let {str, config} = getAndRemoveConfig(text) + const nextToc = {level, title: str} - if (/{docsify-ignore}/g.test(text)) { - text = text.replace('{docsify-ignore}', '') - nextToc.title = text + if (/{docsify-ignore}/g.test(str)) { + str = str.replace('{docsify-ignore}', '') + nextToc.title = str nextToc.ignoreSubHeading = true } - if (/{docsify-ignore-all}/g.test(text)) { - text = text.replace('{docsify-ignore-all}', '') - nextToc.title = text + if (/{docsify-ignore-all}/g.test(str)) { + str = str.replace('{docsify-ignore-all}', '') + nextToc.title = str nextToc.ignoreAllSubs = true } - const slug = slugify(text) - const url = router.toURL(router.getCurrentPath(), { id: slug }) + const slug = slugify(config.id || str) + const url = router.toURL(router.getCurrentPath(), {id: slug}) nextToc.slug = url _self.toc.push(nextToc) - return `${text}` + return `${str}` } - // highlight code + // Highlight code origin.code = renderer.code = function (code, lang = '') { + code = code.replace(/@DOCSIFY_QM@/g, '`') const hl = Prism.highlight( code, Prism.languages[lang] || Prism.languages.markup @@ -179,42 +229,20 @@ export class Compiler { origin.link = renderer.link = function (href, title = '', text) { let attrs = '' - const { str, config } = getAndRemoveConfig(title) + const {str, config} = getAndRemoveConfig(title) title = str - if (config.include) { - if (!isAbsolutePath(href)) { - href = getPath(contentBase, href) - } - - let media - if (config.type && (media = compileMedia[config.type])) { - return media.call(_self, href, title) - } - - let type = 'code' - if (/\.(md|markdown)/.test(href)) { - type = 'markdown' - } else if (/\.html?/.test(href)) { - type = 'iframe' - } else if (/\.(mp4|ogg)/.test(href)) { - type = 'video' - } else if (/\.mp3/.test(href)) { - type = 'audio' - } - - return compileMedia[type].call(_self, href, title) - } - if ( - !/:|(\/{2})/.test(href) && - !_self.matchNotCompileLink(href) && + !isAbsolutePath(href) && + !_self._matchNotCompileLink(href) && !config.ignore ) { - if (href === _self.config.homepage) href = 'README' + if (href === _self.config.homepage) { + href = 'README' + } href = router.toURL(href, null, router.getCurrentPath()) } else { - attrs += ` target="${linkTarget}"` + attrs += href.indexOf('mailto:') === 0 ? '' : ` target="${linkTarget}"` } if (config.target) { @@ -233,18 +261,21 @@ export class Compiler { return `${text}` } origin.paragraph = renderer.paragraph = function (text) { + let result if (/^!>/.test(text)) { - return helperTpl('tip', text) + result = helperTpl('tip', text) } else if (/^\?>/.test(text)) { - return helperTpl('warn', text) + result = helperTpl('warn', text) + } else { + result = `

        ${text}

        ` } - return `

        ${text}

        ` + return result } origin.image = renderer.image = function (href, title, text) { let url = href let attrs = '' - const { str, config } = getAndRemoveConfig(title) + const {str, config} = getAndRemoveConfig(title) title = str if (config['no-zoom']) { @@ -255,23 +286,38 @@ export class Compiler { attrs += ` title="${title}"` } + const size = config.size + if (size) { + const sizes = size.split('x') + if (sizes[1]) { + attrs += 'width=' + sizes[0] + ' height=' + sizes[1] + } else { + attrs += 'width=' + sizes[0] + } + } + if (!isAbsolutePath(href)) { - url = getPath(contentBase, href) + url = getPath(contentBase, getParentPath(router.getCurrentPath()), href) } return `${text}` } + origin.list = renderer.list = function (body, ordered, start) { + const isTaskList = /
      • /.test(body.split('class="task-list"')[0]) + const isStartReq = start && start > 1 + const tag = ordered ? 'ol' : 'ul' + const tagAttrs = [ + (isTaskList ? 'class="task-list"' : ''), + (isStartReq ? `start="${start}"` : '') + ].join(' ').trim() - const CHECKED_RE = /^\[([ x])\] +/ + return `<${tag} ${tagAttrs}>${body}` + } origin.listitem = renderer.listitem = function (text) { - const checked = CHECKED_RE.exec(text) - if (checked) { - text = text.replace( - CHECKED_RE, - `` - ) - } - return `${text}
      • \n` + const isTaskItem = /^(]*>)/.test(text) + const html = isTaskItem ? `
      • ` : `
      • ${text}
      • ` + + return html } renderer.origin = origin @@ -282,16 +328,27 @@ export class Compiler { /** * Compile sidebar */ - sidebar (text, level) { + sidebar(text, level) { + const {toc} = this const currentPath = this.router.getCurrentPath() let html = '' if (text) { html = this.compile(text) - html = html && html.match(/]*>([\s\S]+)<\/ul>/g)[0] } else { - const tree = this.cacheTree[currentPath] || genTree(this.toc, level) - html = treeTpl(tree, '
          ') + for (let i = 0; i < toc.length; i++) { + if (toc[i].ignoreSubHeading) { + const deletedHeaderLevel = toc[i].level + toc.splice(i, 1) + // Remove headers who are under current header + for (let j = i; deletedHeaderLevel < toc[j].level && j < toc.length; j++) { + toc.splice(j, 1) && j-- && i++ + } + i-- + } + } + const tree = this.cacheTree[currentPath] || genTree(toc, level) + html = treeTpl(tree, '
            {inner}
          ') this.cacheTree[currentPath] = tree } @@ -301,13 +358,13 @@ export class Compiler { /** * Compile sub sidebar */ - subSidebar (level) { + subSidebar(level) { if (!level) { this.toc = [] return } const currentPath = this.router.getCurrentPath() - const { cacheTree, toc } = this + const {cacheTree, toc} = this toc[0] && toc[0].ignoreAllSubs && toc.splice(0) toc[0] && toc[0].level === 1 && toc.shift() @@ -315,22 +372,21 @@ export class Compiler { for (let i = 0; i < toc.length; i++) { toc[i].ignoreSubHeading && toc.splice(i, 1) && i-- } - const tree = cacheTree[currentPath] || genTree(toc, level) cacheTree[currentPath] = tree this.toc = [] - return treeTpl(tree, '
            ') + return treeTpl(tree) } - article (text) { + article(text) { return this.compile(text) } /** * Compile cover page */ - cover (text) { + cover(text) { const cacheToc = this.toc.slice() const html = this.compile(text) diff --git a/src/core/render/embed.js b/src/core/render/embed.js new file mode 100644 index 0000000..8218374 --- /dev/null +++ b/src/core/render/embed.js @@ -0,0 +1,115 @@ +import {get} from '../fetch/ajax' +import {merge} from '../util/core' + +const cached = {} + +function walkFetchEmbed({embedTokens, compile, fetch}, cb) { + let token + let step = 0 + let count = 1 + + if (!embedTokens.length) { + return cb({}) + } + + while ((token = embedTokens[step++])) { + const next = (function (token) { + return text => { + let embedToken + if (text) { + if (token.embed.type === 'markdown') { + embedToken = compile.lexer(text) + } else if (token.embed.type === 'code') { + if (token.embed.fragment) { + const fragment = token.embed.fragment + const pattern = new RegExp(`(?:###|\\/\\/\\/)\\s*\\[${fragment}\\]([\\s\\S]*)(?:###|\\/\\/\\/)\\s*\\[${fragment}\\]`) + text = ((text.match(pattern) || [])[1] || '').trim() + } + embedToken = compile.lexer( + '```' + + token.embed.lang + + '\n' + + text.replace(/`/g, '@DOCSIFY_QM@') + + '\n```\n' + ) + } else if (token.embed.type === 'mermaid') { + embedToken = [ + {type: 'html', text: `
            \n${text}\n
            `} + ] + embedToken.links = {} + } else { + embedToken = [{type: 'html', text}] + embedToken.links = {} + } + } + cb({token, embedToken}) + if (++count >= step) { + cb({}) + } + } + })(token) + + if (token.embed.url) { + if (process.env.SSR) { + fetch(token.embed.url).then(next) + } else { + get(token.embed.url).then(next) + } + } else { + next(token.embed.html) + } + } +} + +export function prerenderEmbed({compiler, raw = '', fetch}, done) { + let hit = cached[raw] + if (hit) { + const copy = hit.slice() + copy.links = hit.links + return done(copy) + } + + const compile = compiler._marked + let tokens = compile.lexer(raw) + const embedTokens = [] + const linkRE = compile.InlineLexer.rules.link + const links = tokens.links + + tokens.forEach((token, index) => { + if (token.type === 'paragraph') { + token.text = token.text.replace( + new RegExp(linkRE.source, 'g'), + (src, filename, href, title) => { + const embed = compiler.compileEmbed(href, title) + + if (embed) { + embedTokens.push({ + index, + embed + }) + } + + return src + } + ) + } + }) + + let moveIndex = 0 + walkFetchEmbed({compile, embedTokens, fetch}, ({embedToken, token}) => { + if (token) { + const index = token.index + moveIndex + + merge(links, embedToken.links) + + tokens = tokens + .slice(0, index) + .concat(embedToken, tokens.slice(index + 1)) + moveIndex += embedToken.length - 1 + } else { + cached[raw] = tokens.concat() + tokens.links = cached[raw].links = links + done(tokens) + } + }) +} diff --git a/src/core/render/emojify.js b/src/core/render/emojify.js index 0167d12..95b946a 100644 --- a/src/core/render/emojify.js +++ b/src/core/render/emojify.js @@ -1,10 +1,10 @@ -import { inBrowser } from '../util/env' +import {inBrowser} from '../util/env' -function replace (m, $1) { - return '' + $1 + '' +function replace(m, $1) { + return '' + $1 + '' } -export function emojify (text) { +export function emojify(text) { return text .replace(/<(pre|template|code)[^>]*?>[\s\S]+?<\/(pre|template|code)>/g, m => m.replace(/:/g, '__colon__')) .replace(/:(\w+?):/ig, (inBrowser && window.emojify) || replace) diff --git a/src/core/render/gen-tree.js b/src/core/render/gen-tree.js index d3f6fa2..81ba4bd 100644 --- a/src/core/render/gen-tree.js +++ b/src/core/render/gen-tree.js @@ -1,11 +1,11 @@ /** - * gen toc tree + * Gen toc tree * @link https://github.com/killercup/grock/blob/5280ae63e16c5739e9233d9009bc235ed7d79a50/styles/solarized/assets/js/behavior.coffee#L54-L81 * @param {Array} toc * @param {Number} maxLevel * @return {Array} */ -export function genTree (toc, maxLevel) { +export function genTree(toc, maxLevel) { const headlines = [] const last = {} @@ -13,7 +13,9 @@ export function genTree (toc, maxLevel) { const level = headline.level || 1 const len = level - 1 - if (level > maxLevel) return + if (level > maxLevel) { + return + } if (last[len]) { last[len].children = (last[len].children || []).concat(headline) } else { diff --git a/src/core/render/index.js b/src/core/render/index.js index 382387d..fae1bc5 100644 --- a/src/core/render/index.js +++ b/src/core/render/index.js @@ -2,47 +2,53 @@ import * as dom from '../util/dom' import * as tpl from './tpl' import cssVars from '../util/polyfill/css-vars' import tinydate from 'tinydate' -import { callHook } from '../init/lifecycle' -import { Compiler } from './compiler' -import { getAndActive, sticky } from '../event/sidebar' -import { getPath, isAbsolutePath } from '../router/util' -import { isMobile, inBrowser } from '../util/env' -import { isPrimitive } from '../util/core' -import { scrollActiveSidebar, scroll2Top } from '../event/scroll' +import {callHook} from '../init/lifecycle' +import {Compiler} from './compiler' +import {getAndActive, sticky} from '../event/sidebar' +import {getPath, isAbsolutePath} from '../router/util' +import {isMobile, inBrowser} from '../util/env' +import {isPrimitive} from '../util/core' +import {scrollActiveSidebar, scroll2Top} from '../event/scroll' +import {prerenderEmbed} from './embed' -function executeScript () { +function executeScript() { const script = dom .findAll('.markdown-section>script') .filter(s => !/template/.test(s.type))[0] - if (!script) return false + if (!script) { + return false + } const code = script.innerText.trim() - if (!code) return false + if (!code) { + return false + } setTimeout(_ => { window.__EXECUTE_RESULT__ = new Function(code)() }, 0) } -function formatUpdated (html, updated, fn) { +function formatUpdated(html, updated, fn) { updated = - typeof fn === 'function' - ? fn(updated) - : typeof fn === 'string' ? tinydate(fn)(new Date(updated)) : updated + typeof fn === 'function' ? + fn(updated) : + typeof fn === 'string' ? + tinydate(fn)(new Date(updated)) : + updated return html.replace(/{docsify-updated}/g, updated) } -function renderMain (html) { +function renderMain(html) { if (!html) { - // TODO: Custom 404 page - html = 'not found' + html = '

            404 - Not found

            ' } this._renderTo('.markdown-section', html) // Render sidebar with the TOC !this.config.loadSidebar && this._renderSidebar() - // execute script + // Execute script if ( this.config.executeScript !== false && typeof window.Vue !== 'undefined' && @@ -58,12 +64,14 @@ function renderMain (html) { } } -function renderNameLink (vm) { +function renderNameLink(vm) { const el = dom.getNode('.app-name-link') const nameLink = vm.config.nameLink const path = vm.route.path - if (!el) return + if (!el) { + return + } if (isPrimitive(vm.config.nameLink)) { el.setAttribute('href', nameLink) @@ -74,14 +82,16 @@ function renderNameLink (vm) { } } -export function renderMixin (proto) { +export function renderMixin(proto) { proto._renderTo = function (el, content, replace) { const node = dom.getNode(el) - if (node) node[replace ? 'outerHTML' : 'innerHTML'] = content + if (node) { + node[replace ? 'outerHTML' : 'innerHTML'] = content + } } proto._renderSidebar = function (text) { - const { maxLevel, subMaxLevel, loadSidebar } = this.config + const {maxLevel, subMaxLevel, loadSidebar} = this.config this._renderTo('.sidebar-nav', this.compiler.sidebar(text, maxLevel)) const activeEl = getAndActive(this.router, '.sidebar-nav', true, true) @@ -89,15 +99,15 @@ export function renderMixin (proto) { activeEl.parentNode.innerHTML += this.compiler.subSidebar(subMaxLevel) || '' } else { - // reset toc + // Reset toc this.compiler.subSidebar() } - // bind event + // Bind event this._bindEventOnRendered(activeEl) } proto._bindEventOnRendered = function (activeEl) { - const { autoHeader, auto2top } = this.config + const {autoHeader, auto2top} = this.config scrollActiveSidebar(this.router) @@ -116,21 +126,42 @@ export function renderMixin (proto) { proto._renderNav = function (text) { text && this._renderTo('nav', this.compiler.compile(text)) - getAndActive(this.router, 'nav') + if (this.config.loadNavbar) { + getAndActive(this.router, 'nav') + } } - proto._renderMain = function (text, opt = {}) { + proto._renderMain = function (text, opt = {}, next) { if (!text) { return renderMain.call(this, text) } callHook(this, 'beforeEach', text, result => { - let html = this.isHTML ? result : this.compiler.compile(result) - if (opt.updatedAt) { - html = formatUpdated(html, opt.updatedAt, this.config.formatUpdated) - } + let html + const callback = () => { + if (opt.updatedAt) { + html = formatUpdated(html, opt.updatedAt, this.config.formatUpdated) + } - callHook(this, 'afterEach', html, text => renderMain.call(this, text)) + callHook(this, 'afterEach', html, text => renderMain.call(this, text)) + } + if (this.isHTML) { + html = this.result = text + callback() + next() + } else { + prerenderEmbed( + { + compiler: this.compiler, + raw: result + }, + tokens => { + html = this.compiler.compile(tokens) + callback() + next() + } + ) + } }) } @@ -145,6 +176,7 @@ export function renderMixin (proto) { dom.toggleClass(el, 'add', 'show') let html = this.coverIsHTML ? text : this.compiler.cover(text) + const m = html .trim() .match('

            ([^<]*?)

            $') @@ -171,18 +203,18 @@ export function renderMixin (proto) { } proto._updateRender = function () { - // render name link + // Render name link renderNameLink(this) } } -export function initRender (vm) { +export function initRender(vm) { const config = vm.config // Init markdown compiler vm.compiler = new Compiler(config, vm.router) if (inBrowser) { - window['__current_docsify_compiler__'] = vm.compiler + window.__current_docsify_compiler__ = vm.compiler } const id = config.el || '#app' @@ -200,6 +232,16 @@ export function initRender (vm) { html += tpl.cover() } + if (config.logo) { + const isBase64 = /^data:image/.test(config.logo) + const isExternal = /(?:http[s]?:)?\/\//.test(config.logo) + const isRelative = /^\./.test(config.logo) + + if (!isBase64 && !isExternal && !isRelative) { + config.logo = getPath(vm.router.getBasePath(), config.logo) + } + } + html += tpl.main(config) // Render main app vm._renderTo(el, html, true) @@ -218,7 +260,9 @@ export function initRender (vm) { } // Add nav - dom.before(navAppendToTarget, navEl) + if (config.loadNavbar) { + dom.before(navAppendToTarget, navEl) + } if (config.themeColor) { dom.$.head.appendChild( diff --git a/src/core/render/progressbar.js b/src/core/render/progressbar.js index 420fd6d..df15464 100644 --- a/src/core/render/progressbar.js +++ b/src/core/render/progressbar.js @@ -6,7 +6,7 @@ let timeId /** * Init progress component */ -function init () { +function init() { const div = dom.create('div') div.classList.add('progress') @@ -16,7 +16,7 @@ function init () { /** * Render progress bar */ -export default function ({ loaded, total, step }) { +export default function ({loaded, total, step}) { let num !barEl && init() diff --git a/src/core/render/slugify.js b/src/core/render/slugify.js index 046a06c..719e494 100644 --- a/src/core/render/slugify.js +++ b/src/core/render/slugify.js @@ -1,12 +1,16 @@ -let cache = {} -const re = /[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,.\/:;<=>?@\[\]^`{|}~]/g +import {hasOwn} from '../util/core' -function lower (string) { +let cache = {} +const re = /[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g + +function lower(string) { return string.toLowerCase() } -export function slugify (str) { - if (typeof str !== 'string') return '' +export function slugify(str) { + if (typeof str !== 'string') { + return '' + } let slug = str .trim() @@ -18,7 +22,7 @@ export function slugify (str) { .replace(/^(\d)/, '_$1') let count = cache[slug] - count = cache.hasOwnProperty(slug) ? count + 1 : 0 + count = hasOwn.call(cache, slug) ? count + 1 : 0 cache[slug] = count if (count) { diff --git a/src/core/render/tpl.js b/src/core/render/tpl.js index fb3ba94..71f5652 100644 --- a/src/core/render/tpl.js +++ b/src/core/render/tpl.js @@ -1,12 +1,16 @@ -import { isMobile } from '../util/env' +import {isMobile} from '../util/env' /** * Render github corner * @param {Object} data * @return {String} */ -export function corner (data) { - if (!data) return '' - if (!/\/\//.test(data)) data = 'https://github.com/' + data +export function corner(data) { + if (!data) { + return '' + } + if (!/\/\//.test(data)) { + data = 'https://github.com/' + data + } data = data.replace(/^git\+/, '') return ( @@ -23,7 +27,7 @@ export function corner (data) { /** * Render main content */ -export function main (config) { +export function main(config) { const aside = '' + '' @@ -49,7 +57,7 @@ export function main (config) { /** * Cover Page */ -export function cover () { +export function cover() { const SL = ', 100%, 85%' const bgc = 'linear-gradient(to left bottom, ' + @@ -70,25 +78,24 @@ export function cover () { * @param {String} tpl * @return {String} */ -export function tree (toc, tpl = '') { - if (!toc || !toc.length) return '' - +export function tree(toc, tpl = '
              {inner}
            ') { + if (!toc || !toc.length) { + return '' + } + let innerHTML = '' toc.forEach(node => { - tpl += `
          • ${ - node.title - }
          • ` + innerHTML += `
          • ${node.title}
          • ` if (node.children) { - tpl += `
            • ${tree(node.children)}
            ` + innerHTML += tree(node.children, tpl) } }) - - return tpl + return tpl.replace('{inner}', innerHTML) } -export function helper (className, content) { +export function helper(className, content) { return `

            ${content.slice(5).trim()}

            ` } -export function theme (color) { +export function theme(color) { return `` } diff --git a/src/core/router/history/abstract.js b/src/core/router/history/abstract.js index 0846f2b..2c0bd95 100644 --- a/src/core/router/history/abstract.js +++ b/src/core/router/history/abstract.js @@ -1,13 +1,13 @@ -import { History } from './base' -import { parseQuery } from '../util' +import {History} from './base' +import {parseQuery} from '../util' export class AbstractHistory extends History { - constructor (config) { + constructor(config) { super(config) this.mode = 'abstract' } - parse (path) { + parse(path) { let query = '' const queryIndex = path.indexOf('?') diff --git a/src/core/router/history/base.js b/src/core/router/history/base.js index e3e1122..7ea763d 100644 --- a/src/core/router/history/base.js +++ b/src/core/router/history/base.js @@ -3,42 +3,43 @@ import { isAbsolutePath, stringifyQuery, cleanPath, - replaceSlug + replaceSlug, + resolvePath } from '../util' -import { noop, merge } from '../../util/core' +import {noop, merge} from '../../util/core' const cached = {} -function getAlias (path, alias, last) { +function getAlias(path, alias, last) { const match = Object.keys(alias).filter(key => { const re = cached[key] || (cached[key] = new RegExp(`^${key}$`)) return re.test(path) && path !== last })[0] - return match - ? getAlias(path.replace(cached[match], alias[match]), alias, path) - : path + return match ? + getAlias(path.replace(cached[match], alias[match]), alias, path) : + path } -function getFileName (path, ext) { - return new RegExp(`\\.(${ext.replace(/^\./, '')}|html)$`, 'g').test(path) - ? path - : /\/$/g.test(path) ? `${path}README${ext}` : `${path}${ext}` +function getFileName(path, ext) { + return new RegExp(`\\.(${ext.replace(/^\./, '')}|html)$`, 'g').test(path) ? + path : + /\/$/g.test(path) ? `${path}README${ext}` : `${path}${ext}` } export class History { - constructor (config) { + constructor(config) { this.config = config } - getBasePath () { + getBasePath() { return this.config.basePath } - getFile (path = this.getCurrentPath(), isRelative) { - const { config } = this + getFile(path = this.getCurrentPath(), isRelative) { + const {config} = this const base = this.getBasePath() - const ext = typeof config.ext !== 'string' ? '.md' : config.ext + const ext = typeof config.ext === 'string' ? config.ext : '.md' path = config.alias ? getAlias(path, config.alias) : path path = getFileName(path, ext) @@ -52,17 +53,17 @@ export class History { return path } - onchange (cb = noop) { + onchange(cb = noop) { cb() } - getCurrentPath () {} + getCurrentPath() {} - normalize () {} + normalize() {} - parse () {} + parse() {} - toURL (path, params, currentRoute) { + toURL(path, params, currentRoute) { const local = currentRoute && path[0] === '#' const route = this.parse(replaceSlug(path)) @@ -73,9 +74,13 @@ export class History { if (local) { const idIndex = currentRoute.indexOf('?') path = - (idIndex > 0 ? currentRoute.substr(0, idIndex) : currentRoute) + path + (idIndex > 0 ? currentRoute.substring(0, idIndex) : currentRoute) + path } + if (this.config.relativePath && path.indexOf('/') !== 0) { + const currentDir = currentRoute.substring(0, currentRoute.lastIndexOf('/') + 1) + return cleanPath(resolvePath(currentDir + path)) + } return cleanPath('/' + path) } } diff --git a/src/core/router/history/hash.js b/src/core/router/history/hash.js index 04280c9..2674d5d 100644 --- a/src/core/router/history/hash.js +++ b/src/core/router/history/hash.js @@ -1,27 +1,27 @@ -import { History } from './base' -import { noop } from '../../util/core' -import { on } from '../../util/dom' -import { parseQuery, cleanPath, replaceSlug } from '../util' +import {History} from './base' +import {noop} from '../../util/core' +import {on} from '../../util/dom' +import {parseQuery, cleanPath, replaceSlug} from '../util' -function replaceHash (path) { +function replaceHash(path) { const i = location.href.indexOf('#') location.replace(location.href.slice(0, i >= 0 ? i : 0) + '#' + path) } export class HashHistory extends History { - constructor (config) { + constructor(config) { super(config) this.mode = 'hash' } - getBasePath () { + getBasePath() { const path = window.location.pathname || '' const base = this.config.basePath return /^(\/|https?:)/g.test(base) ? base : cleanPath(path + '/' + base) } - getCurrentPath () { + getCurrentPath() { // We can't use location.hash here because it's not // consistent across browsers - Firefox will pre-decode it! const href = location.href @@ -29,16 +29,18 @@ export class HashHistory extends History { return index === -1 ? '' : href.slice(index + 1) } - onchange (cb = noop) { + onchange(cb = noop) { on('hashchange', cb) } - normalize () { + normalize() { let path = this.getCurrentPath() path = replaceSlug(path) - if (path.charAt(0) === '/') return replaceHash(path) + if (path.charAt(0) === '/') { + return replaceHash(path) + } replaceHash('/' + path) } @@ -47,7 +49,7 @@ export class HashHistory extends History { * @param {string} [path=location.herf] * @return {object} { path, query } */ - parse (path = location.href) { + parse(path = location.href) { let query = '' const hashIndex = path.indexOf('#') @@ -68,7 +70,7 @@ export class HashHistory extends History { } } - toURL (path, params, currentRoute) { + toURL(path, params, currentRoute) { return '#' + super.toURL(path, params, currentRoute) } } diff --git a/src/core/router/history/html5.js b/src/core/router/history/html5.js index 6acefaf..04c5391 100644 --- a/src/core/router/history/html5.js +++ b/src/core/router/history/html5.js @@ -1,15 +1,15 @@ -import { History } from './base' -import { noop } from '../../util/core' -import { on } from '../../util/dom' -import { parseQuery, getPath } from '../util' +import {History} from './base' +import {noop} from '../../util/core' +import {on} from '../../util/dom' +import {parseQuery, getPath} from '../util' export class HTML5History extends History { - constructor (config) { + constructor(config) { super(config) this.mode = 'history' } - getCurrentPath () { + getCurrentPath() { const base = this.getBasePath() let path = window.location.pathname @@ -20,14 +20,14 @@ export class HTML5History extends History { return (path || '/') + window.location.search + window.location.hash } - onchange (cb = noop) { + onchange(cb = noop) { on('click', e => { const el = e.target.tagName === 'A' ? e.target : e.target.parentNode if (el.tagName === 'A' && !/_blank/.test(el.target)) { e.preventDefault() const url = el.href - window.history.pushState({ key: url }, '', url) + window.history.pushState({key: url}, '', url) cb() } }) @@ -40,7 +40,7 @@ export class HTML5History extends History { * @param {string} [path=location.href] * @return {object} { path, query } */ - parse (path = location.href) { + parse(path = location.href) { let query = '' const queryIndex = path.indexOf('?') diff --git a/src/core/router/index.js b/src/core/router/index.js index 8de4d45..943fe6c 100644 --- a/src/core/router/index.js +++ b/src/core/router/index.js @@ -1,21 +1,21 @@ -import { HashHistory } from './history/hash' -import { HTML5History } from './history/html5' -import { supportsPushState } from '../util/env' +import {HashHistory} from './history/hash' +import {HTML5History} from './history/html5' +import {supportsPushState} from '../util/env' import * as dom from '../util/dom' -export function routerMixin (proto) { +export function routerMixin(proto) { proto.route = {} } let lastRoute = {} -function updateRender (vm) { +function updateRender(vm) { vm.router.normalize() vm.route = vm.router.parse() dom.body.setAttribute('data-page', vm.route.file) } -export function initRouter (vm) { +export function initRouter(vm) { const config = vm.config const mode = config.routerMode || 'hash' let router diff --git a/src/core/router/util.js b/src/core/router/util.js index 84219b6..2ed88c5 100644 --- a/src/core/router/util.js +++ b/src/core/router/util.js @@ -1,9 +1,9 @@ -import { cached } from '../util/core' +import {cached} from '../util/core' const decode = decodeURIComponent const encode = encodeURIComponent -export function parseQuery (query) { +export function parseQuery(query) { const res = {} query = query.trim().replace(/^(\?|#|&)/, '') @@ -22,39 +22,55 @@ export function parseQuery (query) { return res } -export function stringifyQuery (obj, ignores = []) { +export function stringifyQuery(obj, ignores = []) { const qs = [] for (const key in obj) { - if (ignores.indexOf(key) > -1) continue + if (ignores.indexOf(key) > -1) { + continue + } qs.push( - obj[key] - ? `${encode(key)}=${encode(obj[key])}`.toLowerCase() - : encode(key) + obj[key] ? + `${encode(key)}=${encode(obj[key])}`.toLowerCase() : + encode(key) ) } return qs.length ? `?${qs.join('&')}` : '' } -export function getPath (...args) { - return cleanPath(args.join('/')) -} - export const isAbsolutePath = cached(path => { return /(:|(\/{2}))/g.test(path) }) export const getParentPath = cached(path => { - return /\/$/g.test(path) - ? path - : (path = path.match(/(\S*\/)[^\/]+$/)) ? path[1] : '' + return /\/$/g.test(path) ? + path : + (path = path.match(/(\S*\/)[^/]+$/)) ? path[1] : '' }) export const cleanPath = cached(path => { return path.replace(/^\/+/, '/').replace(/([^:])\/{2,}/g, '$1/') }) +export const resolvePath = cached(path => { + const segments = path.replace(/^\//, '').split('/') + let resolved = [] + for (let i = 0, len = segments.length; i < len; i++) { + const segment = segments[i] + if (segment === '..') { + resolved.pop() + } else if (segment !== '.') { + resolved.push(segment) + } + } + return '/' + resolved.join('/') +}) + +export function getPath(...args) { + return cleanPath(args.join('/')) +} + export const replaceSlug = cached(path => { return path.replace('#', '?id=') }) diff --git a/src/core/util/core.js b/src/core/util/core.js index e3a520b..a94472d 100644 --- a/src/core/util/core.js +++ b/src/core/util/core.js @@ -1,11 +1,12 @@ /** * Create a cached version of a pure function. */ -export function cached (fn) { +export function cached(fn) { const cache = Object.create(null) - return function cachedFn (str) { - const hit = cache[str] - return hit || (cache[str] = fn(str)) + return function (str) { + const key = isPrimitive(str) ? str : JSON.stringify(str) + const hit = cache[key] + return hit || (cache[key] = fn(str)) } } @@ -16,14 +17,14 @@ export const hyphenate = cached(str => { return str.replace(/([A-Z])/g, m => '-' + m.toLowerCase()) }) +export const hasOwn = Object.prototype.hasOwnProperty + /** * Simple Object.assign polyfill */ export const merge = Object.assign || function (to) { - const hasOwn = Object.prototype.hasOwnProperty - for (let i = 1; i < arguments.length; i++) { const from = Object(arguments[i]) @@ -40,18 +41,18 @@ export const merge = /** * Check if value is primitive */ -export function isPrimitive (value) { +export function isPrimitive(value) { return typeof value === 'string' || typeof value === 'number' } /** * Perform no operation. */ -export function noop () {} +export function noop() {} /** * Check if value is function */ -export function isFn (obj) { +export function isFn(obj) { return typeof obj === 'function' } diff --git a/src/core/util/dom.js b/src/core/util/dom.js index 4ef5dd0..388927d 100644 --- a/src/core/util/dom.js +++ b/src/core/util/dom.js @@ -1,5 +1,5 @@ -import { isFn } from '../util/core' -import { inBrowser } from './env' +import {isFn} from '../util/core' +import {inBrowser} from './env' const cacheNode = {} @@ -9,7 +9,7 @@ const cacheNode = {} * @param {Boolean} noCache * @return {Element} */ -export function getNode (el, noCache = false) { +export function getNode(el, noCache = false) { if (typeof el === 'string') { if (typeof window.Vue !== 'undefined') { return find(el) @@ -32,7 +32,7 @@ export const head = inBrowser && $.head * find('nav') => document.querySelector('nav') * find(nav, 'a') => nav.querySelector('a') */ -export function find (el, node) { +export function find(el, node) { return node ? el.querySelector(node) : $.querySelector(el) } @@ -42,36 +42,38 @@ export function find (el, node) { * findAll('a') => [].slice.call(document.querySelectorAll('a')) * findAll(nav, 'a') => [].slice.call(nav.querySelectorAll('a')) */ -export function findAll (el, node) { +export function findAll(el, node) { return [].slice.call( node ? el.querySelectorAll(node) : $.querySelectorAll(el) ) } -export function create (node, tpl) { +export function create(node, tpl) { node = $.createElement(node) - if (tpl) node.innerHTML = tpl + if (tpl) { + node.innerHTML = tpl + } return node } -export function appendTo (target, el) { +export function appendTo(target, el) { return target.appendChild(el) } -export function before (target, el) { +export function before(target, el) { return target.insertBefore(el, target.children[0]) } -export function on (el, type, handler) { - isFn(type) - ? window.addEventListener(el, type) - : el.addEventListener(type, handler) +export function on(el, type, handler) { + isFn(type) ? + window.addEventListener(el, type) : + el.addEventListener(type, handler) } -export function off (el, type, handler) { - isFn(type) - ? window.removeEventListener(el, type) - : el.removeEventListener(type, handler) +export function off(el, type, handler) { + isFn(type) ? + window.removeEventListener(el, type) : + el.removeEventListener(type, handler) } /** @@ -81,10 +83,10 @@ export function off (el, type, handler) { * toggleClass(el, 'active') => el.classList.toggle('active') * toggleClass(el, 'add', 'active') => el.classList.add('active') */ -export function toggleClass (el, type, val) { +export function toggleClass(el, type, val) { el && el.classList[val ? type : 'toggle'](val || type) } -export function style (content) { +export function style(content) { appendTo(head, create('style', content)) } diff --git a/src/core/util/env.js b/src/core/util/env.js index 2a619f0..cd51635 100644 --- a/src/core/util/env.js +++ b/src/core/util/env.js @@ -13,7 +13,7 @@ export const supportsPushState = window.history && window.history.pushState && window.history.replaceState && - // pushState isn’t reliable on iOS until 5. + // PushState isn’t reliable on iOS until 5. !navigator.userAgent.match( /((iPod|iPhone|iPad).+\bOS\s+[1-4]\D|WebApps\/.+CFNetwork)/ ) diff --git a/src/core/util/polyfill/css-vars.js b/src/core/util/polyfill/css-vars.js index 96fcb6e..fb3a80a 100644 --- a/src/core/util/polyfill/css-vars.js +++ b/src/core/util/polyfill/css-vars.js @@ -1,7 +1,7 @@ import * as dom from '../dom' -import { get } from '../../fetch/ajax' +import {get} from '../../fetch/ajax' -function replaceVar (block, color) { +function replaceVar(block, color) { block.innerHTML = block.innerHTML.replace( /var\(\s*--theme-color.*?\)/g, color @@ -10,16 +10,20 @@ function replaceVar (block, color) { export default function (color) { // Variable support - if (window.CSS && window.CSS.supports && window.CSS.supports('(--v:red)')) { return } + if (window.CSS && window.CSS.supports && window.CSS.supports('(--v:red)')) { + return + } - const styleBlocks = dom.findAll('style:not(.inserted),link') - ;[].forEach.call(styleBlocks, block => { + const styleBlocks = dom.findAll('style:not(.inserted),link'); + [].forEach.call(styleBlocks, block => { if (block.nodeName === 'STYLE') { replaceVar(block, color) } else if (block.nodeName === 'LINK') { const href = block.getAttribute('href') - if (!/\.css$/.test(href)) return + if (!/\.css$/.test(href)) { + return + } get(href).then(res => { const style = dom.create('style', res) diff --git a/src/plugins/disqus.js b/src/plugins/disqus.js index 9439535..dba7aef 100644 --- a/src/plugins/disqus.js +++ b/src/plugins/disqus.js @@ -3,7 +3,7 @@ if (fixedPath !== location.href) { location.href = fixedPath } -function install (hook, vm) { +function install(hook, vm) { const dom = Docsify.dom const disqus = vm.config.disqus if (!disqus) { @@ -15,7 +15,7 @@ function install (hook, vm) { script.async = true script.src = `https://${disqus}.disqus.com/embed.js` - script.setAttribute('data-timestamp', +new Date()) + script.setAttribute('data-timestamp', Number(new Date())) dom.appendTo(dom.body, script) }) diff --git a/src/plugins/emoji.js b/src/plugins/emoji.js index be4da54..31f1059 100644 --- a/src/plugins/emoji.js +++ b/src/plugins/emoji.js @@ -887,12 +887,12 @@ const AllGithubEmoji = [ 'zzz' ] -// emoji from All-Github-Emoji-Icons +// Emoji from All-Github-Emoji-Icons // https://github.com/scotch-io/All-Github-Emoji-Icons window.emojify = function (match, $1) { - return AllGithubEmoji.indexOf($1) === -1 - ? match - : '' +
       $1 +
diff --git a/src/plugins/external-script.js b/src/plugins/external-script.js
index 43a8a89..2954030 100644
--- a/src/plugins/external-script.js
+++ b/src/plugins/external-script.js
@@ -1,4 +1,4 @@
-function handleExternalScript () {
+function handleExternalScript() {
   const container = Docsify.dom.getNode('#main')
   const scripts = Docsify.dom.findAll(container, 'script')
 
diff --git a/src/plugins/front-matter/index.js b/src/plugins/front-matter/index.js
index b2b0efa..cb90ed9 100644
--- a/src/plugins/front-matter/index.js
+++ b/src/plugins/front-matter/index.js
@@ -2,9 +2,9 @@ import parser from './parser'
 
 const install = function (hook, vm) {
   hook.beforeEach(content => {
-    const { attributes, body } = parser(content)
+    const {attributes, body} = parser(content)
 
-    Docsify.util.merge(vm.config, attributes.config)
+    vm.frontmatter = attributes
 
     return body
   })
diff --git a/src/plugins/ga.js b/src/plugins/ga.js
index 2d87b4a..2d6419b 100644
--- a/src/plugins/ga.js
+++ b/src/plugins/ga.js
@@ -1,23 +1,23 @@
 // From https://github.com/egoist/vue-ga/blob/master/src/index.js
-function appendScript () {
+function appendScript() {
   const script = document.createElement('script')
   script.async = true
   script.src = 'https://www.google-analytics.com/analytics.js'
   document.body.appendChild(script)
 }
 
-function init (id) {
+function init(id) {
   appendScript()
   window.ga =
     window.ga ||
     function () {
-      ;(window.ga.q = window.ga.q || []).push(arguments)
+      (window.ga.q = window.ga.q || []).push(arguments)
     }
   window.ga.l = Number(new Date())
   window.ga('create', id, 'auto')
 }
 
-function collect () {
+function collect() {
   if (!window.ga) {
     init($docsify.ga)
   }
diff --git a/src/plugins/gitalk.js b/src/plugins/gitalk.js
index f91e21d..8ba9ace 100644
--- a/src/plugins/gitalk.js
+++ b/src/plugins/gitalk.js
@@ -1,4 +1,4 @@
-function install (hook, vm) {
+function install(hook) {
   const dom = Docsify.dom
 
   hook.mounted(_ => {
@@ -7,10 +7,16 @@ function install (hook, vm) {
     const main = dom.getNode('#main')
     div.style = `width: ${main.clientWidth}px; margin: 0 auto 20px;`
     dom.appendTo(dom.find('.content'), div)
-    const script = dom.create('script')
-    const content = `gitalk.render('gitalk-container')`
-    script.textContent = content
-    dom.appendTo(dom.body, script)
+  })
+
+  hook.doneEach(_ => {
+    const el = document.getElementById('gitalk-container')
+    while (el.hasChildNodes()) {
+      el.removeChild(el.firstChild)
+    }
+
+    // eslint-disable-next-line
+    gitalk.render('gitalk-container')
   })
 }
 
diff --git a/src/plugins/matomo.js b/src/plugins/matomo.js
new file mode 100644
index 0000000..7b61cba
--- /dev/null
+++ b/src/plugins/matomo.js
@@ -0,0 +1,37 @@
+function appendScript(options) {
+  const script = document.createElement('script')
+  script.async = true
+  script.src = options.host + '/matomo.js'
+  document.body.appendChild(script)
+}
+
+function init(options) {
+  window._paq = window._paq || []
+  window._paq.push(['trackPageView'])
+  window._paq.push(['enableLinkTracking'])
+  setTimeout(function() {
+    appendScript(options)
+    window._paq.push(['setTrackerUrl', options.host + '/matomo.php'])
+    window._paq.push(['setSiteId', options.id + ''])
+  }, 0)
+}
+
+function collect() {
+  if (!window._paq) {
+    init($docsify.matomo)
+  }
+  window._paq.push(['setCustomUrl',  window.location.hash.substr(1)])
+  window._paq.push(['setDocumentTitle', document.title])
+  window._paq.push(['trackPageView'])
+}
+
+const install = function (hook) {
+  if (!$docsify.matomo) {
+    console.error('[Docsify] matomo is required.')
+    return
+  }
+
+  hook.beforeEach(collect)
+}
+
+$docsify.plugins = [].concat(install, $docsify.plugins)
diff --git a/src/plugins/search/component.js b/src/plugins/search/component.js
index b365103..42b0d19 100644
--- a/src/plugins/search/component.js
+++ b/src/plugins/search/component.js
@@ -1,8 +1,9 @@
-import { search } from './search'
+import {search} from './search'
 
 let NO_DATA_TEXT = ''
+let options
 
-function style () {
+function style() {
   const code = `
 .sidebar {
   padding-top: 0;
@@ -86,12 +87,16 @@ function style () {
 
 .search p.empty {
   text-align: center;
+}
+
+.app-name.hide, .sidebar-nav.hide {
+  display: none;
 }`
 
   Docsify.dom.style(code)
 }
 
-function tpl (opts, defaultValue = '') {
+function tpl(defaultValue = '') {
   const html =
     `<div class= @@ -112,15 +117,22 @@ function tpl (opts, defaultValue = '') { Docsify.dom.before(aside, el) } -function doSearch (value) { +function doSearch(value) { const $search = Docsify.dom.find('div.search') const $panel = Docsify.dom.find($search, '.results-panel') const $clearBtn = Docsify.dom.find($search, '.clear-button') + const $sidebarNav = Docsify.dom.find('.sidebar-nav') + const $appName = Docsify.dom.find('.app-name') if (!value) { $panel.classList.remove('show') $clearBtn.classList.remove('show') $panel.innerHTML = '' + + if (options.hideOtherSidebarContent) { + $sidebarNav.classList.remove('hide') + $appName.classList.remove('hide') + } return } const matchs = search(value) @@ -138,9 +150,13 @@ function doSearch (value) { $panel.classList.add('show') $clearBtn.classList.add('show') $panel.innerHTML = html || `

            ${NO_DATA_TEXT}

            ` + if (options.hideOtherSidebarContent) { + $sidebarNav.classList.add('hide') + $appName.classList.add('hide') + } } -function bindEvents () { +function bindEvents() { const $search = Docsify.dom.find('div.search') const $input = Docsify.dom.find($search, 'input') const $inputWrap = Docsify.dom.find($search, '.input-wrap') @@ -157,7 +173,7 @@ function bindEvents () { timeId = setTimeout(_ => doSearch(e.target.value.trim()), 100) }) Docsify.dom.on($inputWrap, 'click', e => { - // click input outside + // Click input outside if (e.target.tagName !== 'INPUT') { $input.value = '' doSearch() @@ -165,10 +181,12 @@ function bindEvents () { }) } -function updatePlaceholder (text, path) { +function updatePlaceholder(text, path) { const $input = Docsify.dom.getNode('.search input[type="search"]') - if (!$input) return + if (!$input) { + return + } if (typeof text === 'string') { $input.placeholder = text } else { @@ -177,7 +195,7 @@ function updatePlaceholder (text, path) { } } -function updateNoData (text, path) { +function updateNoData(text, path) { if (typeof text === 'string') { NO_DATA_TEXT = text } else { @@ -186,16 +204,22 @@ function updateNoData (text, path) { } } -export function init (opts, vm) { +function updateOptions(opts) { + options = opts +} + +export function init(opts, vm) { const keywords = vm.router.parse().query.s + updateOptions(opts) style() - tpl(opts, keywords) + tpl(keywords) bindEvents() keywords && setTimeout(_ => doSearch(keywords), 500) } -export function update (opts, vm) { +export function update(opts, vm) { + updateOptions(opts) updatePlaceholder(opts.placeholder, vm.route.path) updateNoData(opts.noData, vm.route.path) } diff --git a/src/plugins/search/index.js b/src/plugins/search/index.js index 66e5fba..bbd3af6 100644 --- a/src/plugins/search/index.js +++ b/src/plugins/search/index.js @@ -1,16 +1,18 @@ -import { init as initComponet, update as updateComponent } from './component' -import { init as initSearch } from './search' +import {init as initComponet, update as updateComponent} from './component' +import {init as initSearch} from './search' const CONFIG = { placeholder: 'Type to search', noData: 'No Results!', paths: 'auto', depth: 2, - maxAge: 86400000 // 1 day + maxAge: 86400000, // 1 day + hideOtherSidebarContent: false, + namespace: undefined } const install = function (hook, vm) { - const { util } = Docsify + const {util} = Docsify const opts = vm.config.search || CONFIG if (Array.isArray(opts)) { @@ -21,6 +23,8 @@ const install = function (hook, vm) { CONFIG.placeholder = opts.placeholder || CONFIG.placeholder CONFIG.noData = opts.noData || CONFIG.noData CONFIG.depth = opts.depth || CONFIG.depth + CONFIG.hideOtherSidebarContent = opts.hideOtherSidebarContent || CONFIG.hideOtherSidebarContent + CONFIG.namespace = opts.namespace || CONFIG.namespace } const isAuto = CONFIG.paths === 'auto' diff --git a/src/plugins/search/search.js b/src/plugins/search/search.js index 6a440c2..2c9febf 100644 --- a/src/plugins/search/search.js +++ b/src/plugins/search/search.js @@ -1,23 +1,34 @@ let INDEXS = {} -let helper -function escapeHtml (string) { +const LOCAL_STORAGE = { + EXPIRE_KEY: 'docsify.search.expires', + INDEX_KEY: 'docsify.search.index' +} + +function resolveExpireKey(namespace) { + return namespace ? `${LOCAL_STORAGE.EXPIRE_KEY}/${namespace}` : LOCAL_STORAGE.EXPIRE_KEY +} +function resolveIndexKey(namespace) { + return namespace ? `${LOCAL_STORAGE.INDEX_KEY}/${namespace}` : LOCAL_STORAGE.INDEX_KEY +} + +function escapeHtml(string) { const entityMap = { '&': '&', '<': '<', '>': '>', '"': '"', - "'": ''', + '\'': ''', '/': '/' } - return String(string).replace(/[&<>"'\/]/g, s => entityMap[s]) + return String(string).replace(/[&<>"'/]/g, s => entityMap[s]) } -function getAllPaths (router) { +function getAllPaths(router) { const paths = [] - helper.dom.findAll('a:not([data-nosearch])').map(node => { + Docsify.dom.findAll('.sidebar-nav a:not(.section-link):not([data-nosearch])').forEach(node => { const href = node.href const originHref = node.getAttribute('href') const path = router.parse(href).path @@ -34,12 +45,12 @@ function getAllPaths (router) { return paths } -function saveData (maxAge) { - localStorage.setItem('docsify.search.expires', Date.now() + maxAge) - localStorage.setItem('docsify.search.index', JSON.stringify(INDEXS)) +function saveData(maxAge, expireKey, indexKey) { + localStorage.setItem(expireKey, Date.now() + maxAge) + localStorage.setItem(indexKey, JSON.stringify(INDEXS)) } -export function genIndex (path, content = '', router, depth) { +export function genIndex(path, content = '', router, depth) { const tokens = window.marked.lexer(content) const slugify = window.Docsify.slugify const index = {} @@ -47,18 +58,18 @@ export function genIndex (path, content = '', router, depth) { tokens.forEach(token => { if (token.type === 'heading' && token.depth <= depth) { - slug = router.toURL(path, { id: slugify(token.text) }) - index[slug] = { slug, title: token.text, body: '' } + slug = router.toURL(path, {id: slugify(token.text)}) + index[slug] = {slug, title: token.text, body: ''} } else { - if (!slug) return + if (!slug) { + return + } if (!index[slug]) { - index[slug] = { slug, title: '', body: '' } + index[slug] = {slug, title: '', body: ''} + } else if (index[slug].body) { + index[slug].body += '\n' + (token.text || '') } else { - if (index[slug].body) { - index[slug].body += '\n' + (token.text || '') - } else { - index[slug].body = token.text - } + index[slug].body = token.text } } }) @@ -70,7 +81,7 @@ export function genIndex (path, content = '', router, depth) { * @param {String} query * @returns {Array} */ -export function search (query) { +export function search(query) { const matchingResults = [] let data = [] Object.keys(INDEXS).forEach(key => { @@ -78,37 +89,37 @@ export function search (query) { }) query = query.trim() - let keywords = query.split(/[\s\-\,\\/]+/) + let keywords = query.split(/[\s\-,\\/]+/) if (keywords.length !== 1) { keywords = [].concat(query, keywords) } for (let i = 0; i < data.length; i++) { const post = data[i] - let isMatch = false + let matchesScore = 0 let resultStr = '' const postTitle = post.title && post.title.trim() const postContent = post.body && post.body.trim() const postUrl = post.slug || '' - if (postTitle && postContent) { - keywords.forEach((keyword, i) => { + if (postTitle) { + keywords.forEach( keyword => { // From https://github.com/sindresorhus/escape-string-regexp const regEx = new RegExp( keyword.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&'), 'gi' - ) + ); let indexTitle = -1 let indexContent = -1 - indexTitle = postTitle && postTitle.search(regEx) - indexContent = postContent && postContent.search(regEx) + indexTitle = postTitle ? postTitle.search(regEx) : -1 + indexContent = postContent ? postContent.search(regEx) : -1 - if (indexTitle < 0 && indexContent < 0) { - isMatch = false - } else { - isMatch = true - if (indexContent < 0) indexContent = 0 + if (indexTitle >= 0 || indexContent >= 0) { + matchesScore += indexTitle >= 0 ? 3 : indexContent >= 0 ? 2 : 0; + if (indexContent < 0) { + indexContent = 0 + } let start = 0 let end = 0 @@ -116,7 +127,9 @@ export function search (query) { start = indexContent < 11 ? 0 : indexContent - 10 end = start === 0 ? 70 : indexContent + keyword.length + 60 - if (end > postContent.length) end = postContent.length + if (end > postContent.length) { + end = postContent.length + } const matchContent = '...' + @@ -129,11 +142,12 @@ export function search (query) { } }) - if (isMatch) { + if (matchesScore > 0) { const matchingPost = { title: escapeHtml(postTitle), - content: resultStr, - url: postUrl + content: postContent ? resultStr : '', + url: postUrl, + score: matchesScore } matchingResults.push(matchingPost) @@ -141,16 +155,18 @@ export function search (query) { } } - return matchingResults + return matchingResults.sort((r1, r2) => r2.score - r1.score); } -export function init (config, vm) { - helper = Docsify - +export function init(config, vm) { const isAuto = config.paths === 'auto' - const isExpired = localStorage.getItem('docsify.search.expires') < Date.now() - INDEXS = JSON.parse(localStorage.getItem('docsify.search.index')) + const expireKey = resolveExpireKey(config.namespace) + const indexKey = resolveIndexKey(config.namespace) + + const isExpired = localStorage.getItem(expireKey) < Date.now() + + INDEXS = JSON.parse(localStorage.getItem(indexKey)) if (isExpired) { INDEXS = {} @@ -163,13 +179,15 @@ export function init (config, vm) { let count = 0 paths.forEach(path => { - if (INDEXS[path]) return count++ + if (INDEXS[path]) { + return count++ + } - helper + Docsify .get(vm.router.getFile(path), false, vm.config.requestHeaders) .then(result => { INDEXS[path] = genIndex(path, result, vm.router, config.depth) - len === ++count && saveData(config.maxAge) + len === ++count && saveData(config.maxAge, expireKey, indexKey) }) }) } diff --git a/src/plugins/zoom-image.js b/src/plugins/zoom-image.js index 6f3b94c..faf92e1 100644 --- a/src/plugins/zoom-image.js +++ b/src/plugins/zoom-image.js @@ -1,14 +1,20 @@ import mediumZoom from 'medium-zoom' -function install (hook) { +const matchesSelector = Element.prototype.matches || Element.prototype.webkitMatchesSelector || Element.prototype.msMatchesSelector + +function install(hook) { let zoom hook.doneEach(_ => { + let elms = Array.apply(null, document.querySelectorAll('.markdown-section img:not(.emoji):not([data-no-zoom])')) + + elms = elms.filter(elm => matchesSelector.call(elm, 'a img') === false) + if (zoom) { zoom.detach() } - zoom = mediumZoom('img:not(.emoji):not([data-no-zoom])') + zoom = mediumZoom(elms) }) } diff --git a/src/themes/basic/_coverpage.css b/src/themes/basic/_coverpage.css deleted file mode 100644 index 2cc585c..0000000 --- a/src/themes/basic/_coverpage.css +++ /dev/null @@ -1,112 +0,0 @@ -section.cover { - align-items: center; - background-position: center center; - background-repeat: no-repeat; - background-size: cover; - height: 100vh; - display: none; - - &.show { - display: flex; - } - - &.has-mask .mask { - background-color: $color-bg; - opacity: 0.8; - position: absolute; - top: 0; - size: 100%; - } - - .cover-main { - flex: 1; - margin: -20px 16px 0; - text-align: center; - z-index: 1; - } - - a { - color: inherit; - text-decoration: none; - - &:hover { - text-decoration: none; - } - } - - p { - line-height: 1.5rem; - margin: 1em 0; - } - - h1 { - color: inherit; - font-size: 2.5rem; - font-weight: 300; - margin: 0.625rem 0 2.5rem; - position: relative; - text-align: center; - - a { - display: block; - } - - small { - bottom: -0.4375rem; - font-size: 1rem; - position: absolute; - } - } - - blockquote { - font-size: 1.5rem; - text-align: center; - } - - ul { - line-height: 1.8; - list-style-type: none; - margin: 1em auto; - max-width: 500px; - padding: 0; - } - - .cover-main > p:last-child a { - border-color: var(--theme-color, $color-primary); - border-radius: 2rem; - border-style: solid; - border-width: 1px; - box-sizing: border-box; - color: var(--theme-color, $color-primary); - display: inline-block; - font-size: 1.05rem; - letter-spacing: 0.1rem; - margin: 0.5rem 1rem; - padding: 0.75em 2rem; - text-decoration: none; - transition: all 0.15s ease; - - &:last-child { - background-color: var(--theme-color, $color-primary); - color: #fff; - - &:hover { - color: inherit; - opacity: 0.8; - } - } - - &:hover { - color: inherit; - } - } - - blockquote > p > a { - border-bottom: 2px solid var(--theme-color, $color-primary); - transition: color 0.3s; - - &:hover { - color: var(--theme-color, $color-primary); - } - } -} diff --git a/src/themes/basic/_coverpage.styl b/src/themes/basic/_coverpage.styl new file mode 100644 index 0000000..0014932 --- /dev/null +++ b/src/themes/basic/_coverpage.styl @@ -0,0 +1,95 @@ +section.cover + align-items center + background-position center center + background-repeat no-repeat + background-size cover + height 100vh + display none + + &.show + display flex + + &.has-mask .mask + background-color $color-bg + opacity 0.8 + position absolute + top 0 + height 100% + width 100% + + .cover-main + flex 1 + margin -20px 16px 0 + text-align center + z-index 1 + + a + color inherit + text-decoration none + + &:hover + text-decoration none + + p + line-height 1.5rem + margin 1em 0 + + h1 + color inherit + font-size 2.5rem + font-weight 300 + margin 0.625rem 0 2.5rem + position relative + text-align center + + a + display block + + small + bottom -0.4375rem + font-size 1rem + position absolute + + blockquote + font-size 1.5rem + text-align center + + ul + line-height 1.8 + list-style-type none + margin 1em auto + max-width 500px + padding 0 + + .cover-main > p:last-child a + border-color var(--theme-color, $color-primary) + border-radius 2rem + border-style solid + border-width 1px + box-sizing border-box + color var(--theme-color, $color-primary) + display inline-block + font-size 1.05rem + letter-spacing 0.1rem + margin 0.5rem 1rem + padding 0.75em 2rem + text-decoration none + transition all 0.15s ease + + &:last-child + background-color var(--theme-color, $color-primary) + color #fff + + &:hover + color inherit + opacity 0.8 + + &:hover + color inherit + + blockquote > p > a + border-bottom 2px solid var(--theme-color, $color-primary) + transition color 0.3s + + &:hover + color var(--theme-color, $color-primary) diff --git a/src/themes/basic/_layout.css b/src/themes/basic/_layout.css deleted file mode 100644 index 4126a0f..0000000 --- a/src/themes/basic/_layout.css +++ /dev/null @@ -1,571 +0,0 @@ -* { - -webkit-font-smoothing: antialiased; - -webkit-overflow-scrolling: touch; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); - -webkit-text-size-adjust: none; - -webkit-touch-callout: none; - box-sizing: border-box; -} - -body:not(.ready) { - overflow: hidden; - - [data-cloak], - .app-nav, - > nav { - display: none; - } -} - -div#app { - font-size: 30px; - font-weight: lighter; - margin: 40vh auto; - text-align: center; - - &:empty::before { - content: 'Loading...'; - } -} - -.emoji { - height: 1.2rem; - vertical-align: middle; -} - -.progress { - background-color: var(--theme-color, $color-primary); - height: 2px; - left: 0px; - position: fixed; - right: 0px; - top: 0px; - transition: width 0.2s, opacity 0.4s; - width: 0%; - z-index: 999999; -} - -.search a:hover { - color: var(--theme-color, $color-primary); -} - -.search .search-keyword { - color: var(--theme-color, $color-primary); - font-style: normal; - font-weight: bold; -} - -html, -body { - height: 100%; -} - -body { - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - color: $color-text; - font-family: 'Source Sans Pro', 'Helvetica Neue', Arial, sans-serif; - font-size: 15px; - letter-spacing: 0; - margin: 0; - overflow-x: hidden; -} - -img { - max-width: 100%; -} - -a[disabled] { - cursor: not-allowed; - opacity: 0.6; -} - -kbd { - border: solid 1px #ccc; - border-radius: 3px; - display: inline-block; - font-size: 12px !important; - line-height: 12px; - margin-bottom: 3px; - padding: 3px 5px; - vertical-align: middle; -} - -.task-list-item { - list-style-type: none; -} - -li input[type='checkbox'] { - margin: 0 0.2em 0.25em -1.6em; - vertical-align: middle; -} - -/* navbar */ -.app-nav { - margin: 25px 60px 0 0; - position: absolute; - right: 0; - text-align: right; - z-index: 10; - - &.no-badge { - margin-right: 25px; - } - - p { - margin: 0; - } - - > a { - margin: 0 1rem; - padding: 5px 0; - } - - ul, - li { - display: inline-block; - list-style: none; - margin: 0; - } - - a { - color: inherit; - font-size: 16px; - text-decoration: none; - transition: color 0.3s; - - &:hover { - color: var(--theme-color, $color-primary); - } - - &.active { - border-bottom: 2px solid var(--theme-color, $color-primary); - color: var(--theme-color, $color-primary); - } - } - - /* navbar dropdown */ - li { - display: inline-block; - margin: 0 1rem; - padding: 5px 0; - position: relative; - - ul { - background-color: #fff; - border: 1px solid #ddd; - border-bottom-color: #ccc; - border-radius: 4px; - box-sizing: border-box; - display: none; - max-height: calc(100vh - 61px); - overflow-y: auto; - padding: 10px 0; - position: absolute; - right: -15px; - text-align: left; - top: 100%; - white-space: nowrap; - - li { - display: block; - font-size: 14px; - line-height: 1rem; - margin: 0; - margin: 8px 14px; - white-space: nowrap; - } - - a { - display: block; - font-size: inherit; - margin: 0; - padding: 0; - - &.active { - border-bottom: 0; - } - } - } - - &:hover ul { - display: block; - } - } -} - -/* github corner */ -.github-corner { - border-bottom: 0; - position: fixed; - right: 0; - text-decoration: none; - top: 0; - z-index: 1; - - &:hover .octo-arm { - animation: octocat-wave 560ms ease-in-out; - } - - svg { - color: $color-bg; - fill: var(--theme-color, $color-primary); - height: 80px; - width: 80px; - } -} - -/* main */ -main { - display: block; - position: relative; - size: 100vw 100%; - z-index: 0; -} - -main.hidden { - display: none; -} - -.anchor { - display: inline-block; - text-decoration: none; - transition: all 0.3s; - - span { - color: $color-text; - } - - &:hover { - text-decoration: underline; - } -} - -/* sidebar */ -.sidebar { - border-right: 1px solid rgba(0, 0, 0, 0.07); - overflow-y: auto; - padding: 40px 0 0; - position: absolute 0 * 0 0; - transition: transform 250ms ease-out; - width: $sidebar-width; - z-index: 20; - - > h1 { - margin: 0 auto 1rem; - font-size: 1.5rem; - font-weight: 300; - text-align: center; - - a { - color: inherit; - text-decoration: none; - } - - .app-nav { - display: block; - position: static; - } - } - - .sidebar-nav { - line-height: 2em; - padding-bottom: 40px; - } - - li.collapse { - .app-sub-sidebar { - display: none; - } - } - - ul { - margin: 0; - padding: 0; - } - - li > p { - font-weight: 700; - margin: 0; - } - - ul, - ul li { - list-style: none; - } - - ul li a { - border-bottom: none; - display: block; - } - - ul li ul { - padding-left: 20px; - } - - &::-webkit-scrollbar { - width: 4px; - } - - &::-webkit-scrollbar-thumb { - background: transparent; - border-radius: 4px; - } - - &:hover::-webkit-scrollbar-thumb { - background: rgba(136, 136, 136, 0.4); - } - - &:hover::-webkit-scrollbar-track { - background: rgba(136, 136, 136, 0.1); - } -} - -/* sidebar toggle */ -.sidebar-toggle { - background-color: transparent; - background-color: rgba($color-bg, 0.8); - border: 0; - outline: none; - outline: none; - padding: 10px; - position: absolute * * 0 0; - text-align: center; - transition: opacity 0.3s; - width: 30px; - width: calc($sidebar-width - 16px); - z-index: 30; - - .sidebar-toggle-button:hover { - opacity: 0.4; - } - - span { - background-color: var(--theme-color, $color-primary); - display: block; - margin-bottom: 4px; - size: 16px 2px; - } -} - -body.sticky { - .sidebar, - .sidebar-toggle { - position: fixed; - } -} - -/* main content */ -.content { - padding-top: 60px; - position: absolute 0 0 0 $sidebar-width; - transition: left 250ms ease; -} - -/* markdown content found on pages */ -.markdown-section { - margin: 0 auto; - max-width: 800px; - padding: 30px 15px 40px 15px; - position: relative; - - > * { - box-sizing: border-box; - font-size: inherit; - } - - > :first-child { - margin-top: 0 !important; - } -} - -.markdown-section hr { - border: none; - border-bottom: 1px solid #eee; - margin: 2em 0; -} - -.markdown-section iframe { - border: 1px solid #eee; -} - -.markdown-section table { - border-collapse: collapse; - border-spacing: 0; - display: block; - margin-bottom: 1rem; - overflow: auto; - width: 100%; -} - -.markdown-section th { - border: 1px solid #ddd; - font-weight: bold; - padding: 6px 13px; -} - -.markdown-section td { - border: 1px solid #ddd; - padding: 6px 13px; -} - -.markdown-section tr { - border-top: 1px solid #ccc; - &:nth-child(2n) { - background-color: #f8f8f8; - } -} - -.markdown-section p.tip { - background-color: #f8f8f8; - border-bottom-right-radius: 2px; - border-left: 4px solid #f66; - border-top-right-radius: 2px; - margin: 2em 0; - padding: 12px 24px 12px 30px; - position: relative; - - &:before { - background-color: #f66; - border-radius: 100%; - color: $color-bg; - content: '!'; - font-family: 'Dosis', 'Source Sans Pro', 'Helvetica Neue', Arial, sans-serif; - font-size: 14px; - font-weight: bold; - left: -12px; - line-height: 20px; - position: absolute; - size: 20px; - text-align: center; - top: 14px; - } - - code { - background-color: #efefef; - } - - em { - color: $color-text; - } -} - -.markdown-section p.warn { - background: rgba($color-primary, 0.1); - border-radius: 2px; - padding: 1rem; -} - -body.close { - .sidebar { - transform: translateX(-$sidebar-width); - } - - .sidebar-toggle { - width: auto; - } - - .content { - left: 0; - } -} - -@media print { - .github-corner, - .sidebar-toggle, - .sidebar, - .app-nav { - display: none; - } -} - -@media screen and (max-width: 768px) { - .github-corner, - .sidebar-toggle, - .sidebar { - position: fixed; - } - - .app-nav { - margin-top: 16px; - } - - .app-nav li ul { - top: 30px; - } - - main { - height: auto; - overflow-x: hidden; - } - - .sidebar { - left: -$sidebar-width; - transition: transform 250ms ease-out; - } - - .content { - left: 0; - max-width: 100vw; - position: static; - padding-top: 20px; - transition: transform 250ms ease; - } - - .app-nav, - .github-corner { - transition: transform 250ms ease-out; - } - - .sidebar-toggle { - background-color: transparent; - width: auto; - padding: 30px 30px 10px 10px; - } - - body.close { - .sidebar { - transform: translateX($sidebar-width); - } - - .sidebar-toggle { - background-color: rgba($color-bg, 0.8); - transition: 1s background-color; - width: calc($sidebar-width - 16px); - padding: 10px; - } - - .content { - transform: translateX($sidebar-width); - } - - .app-nav, - .github-corner { - display: none; - } - } - - .github-corner { - &:hover .octo-arm { - animation: none; - } - .octo-arm { - animation: octocat-wave 560ms ease-in-out; - } - } -} - -@keyframes octocat-wave { - 0%, - 100% { - transform: rotate(0); - } - 20%, - 60% { - transform: rotate(-25deg); - } - 40%, - 80% { - transform: rotate(10deg); - } -} diff --git a/src/themes/basic/_layout.styl b/src/themes/basic/_layout.styl new file mode 100644 index 0000000..387fd79 --- /dev/null +++ b/src/themes/basic/_layout.styl @@ -0,0 +1,470 @@ +* + -webkit-font-smoothing antialiased + -webkit-overflow-scrolling touch + -webkit-tap-highlight-color rgba(0, 0, 0, 0) + -webkit-text-size-adjust none + -webkit-touch-callout none + box-sizing border-box + +body:not(.ready) + overflow hidden + + [data-cloak], .app-nav, > nav + display none + +div#app + font-size 30px + font-weight lighter + margin 40vh auto + text-align center + + &:empty::before + content 'Loading...' + +.emoji + height 1.2rem + vertical-align middle + +.progress + background-color var(--theme-color, $color-primary) + height 2px + left 0px + position fixed + right 0px + top 0px + transition width 0.2s, opacity 0.4s + width 0% + z-index 999999 + +.search a:hover + color var(--theme-color, $color-primary) + +.search .search-keyword + color var(--theme-color, $color-primary) + font-style normal + font-weight bold + +html, body + height 100% + +body + -moz-osx-font-smoothing grayscale + -webkit-font-smoothing antialiased + color $color-text + font-family 'Source Sans Pro', 'Helvetica Neue', Arial, sans-serif + font-size 15px + letter-spacing 0 + margin 0 + overflow-x hidden + +img + max-width 100% + +a[disabled] + cursor not-allowed + opacity 0.6 + +kbd + border solid 1px #ccc + border-radius 3px + display inline-block + font-size 12px !important + line-height 12px + margin-bottom 3px + padding 3px 5px + vertical-align middle + +li input[type='checkbox'] + margin 0 0.2em 0.25em 0 + vertical-align middle + +/* navbar */ +.app-nav + margin 25px 60px 0 0 + position absolute + right 0 + text-align right + z-index 10 + + &.no-badge + margin-right 25px + + p + margin 0 + + > a + margin 0 1rem + padding 5px 0 + + ul, li + display inline-block + list-style none + margin 0 + + a + color inherit + font-size 16px + text-decoration none + transition color 0.3s + + &:hover + color var(--theme-color, $color-primary) + + &.active + border-bottom 2px solid var(--theme-color, $color-primary) + color var(--theme-color, $color-primary) + + /* navbar dropdown */ + li + display inline-block + margin 0 1rem + padding 5px 0 + position relative + + ul + background-color #fff + border 1px solid #ddd + border-bottom-color #ccc + border-radius 4px + box-sizing border-box + display none + max-height calc(100vh - 61px) + overflow-y auto + padding 10px 0 + position absolute + right -15px + text-align left + top 100% + white-space nowrap + + li + display block + font-size 14px + line-height 1rem + margin 0 + margin 8px 14px + white-space nowrap + + a + display block + font-size inherit + margin 0 + padding 0 + + &.active + border-bottom 0 + + &:hover ul + display block + +/* github corner */ +.github-corner + border-bottom 0 + position fixed + right 0 + text-decoration none + top 0 + z-index 1 + + &:hover .octo-arm + animation octocat-wave 560ms ease-in-out + + svg + color $color-bg + fill var(--theme-color, $color-primary) + height 80px + width 80px + +/* main */ +main + display block + position relative + width 100vw + height 100% + z-index 0 + +main.hidden + display none + +.anchor + display inline-block + text-decoration none + transition all 0.3s + + span + color $color-text + + &:hover + text-decoration underline + +/* sidebar */ +.sidebar + border-right 1px solid rgba(0, 0, 0, 0.07) + overflow-y auto + padding 40px 0 0 + position absolute + top 0 + bottom 0 + left 0 + transition transform 250ms ease-out + width $sidebar-width + z-index 20 + + > h1 + margin 0 auto 1rem + font-size 1.5rem + font-weight 300 + text-align center + + a + color inherit + text-decoration none + + .app-nav + display block + position static + + .sidebar-nav + line-height 2em + padding-bottom 40px + + li.collapse + .app-sub-sidebar + display none + + ul + margin 0 0 0 15px + padding 0 + + li > p + font-weight 700 + margin 0 + + ul, ul li + list-style none + + ul li a + border-bottom none + display block + + ul li ul + padding-left 20px + + &::-webkit-scrollbar + width 4px + + &::-webkit-scrollbar-thumb + background transparent + border-radius 4px + + &:hover::-webkit-scrollbar-thumb + background rgba(136, 136, 136, 0.4) + + &:hover::-webkit-scrollbar-track + background rgba(136, 136, 136, 0.1) + +/* sidebar toggle */ +.sidebar-toggle + background-color transparent + background-color rgba($color-bg, 0.8) + border 0 + outline none + padding 10px + position absolute + bottom 0 + left 0 + text-align center + transition opacity 0.3s + width $sidebar-width - 16px + z-index 30 + + .sidebar-toggle-button:hover + opacity 0.4 + + span + background-color var(--theme-color, $color-primary) + display block + margin-bottom 4px + width 16px + height 2px + +body.sticky + .sidebar, .sidebar-toggle + position fixed + +/* main content */ +.content + padding-top 60px + position absolute + top 0 + right 0 + bottom 0 + left $sidebar-width + transition left 250ms ease + +/* markdown content found on pages */ +.markdown-section + margin 0 auto + max-width 800px + padding 30px 15px 40px 15px + position relative + + > * + box-sizing border-box + font-size inherit + + > :first-child + margin-top 0 !important + +.markdown-section hr + border none + border-bottom 1px solid #eee + margin 2em 0 + +.markdown-section iframe + border 1px solid #eee + /* fix horizontal overflow on iOS Safari */ + width 1px + min-width 100% + +.markdown-section table + border-collapse collapse + border-spacing 0 + display block + margin-bottom 1rem + overflow auto + width 100% + +.markdown-section th + border 1px solid #ddd + font-weight bold + padding 6px 13px + +.markdown-section td + border 1px solid #ddd + padding 6px 13px + +.markdown-section tr + border-top 1px solid #ccc + + &:nth-child(2n) + background-color #f8f8f8 + +.markdown-section p.tip + background-color #f8f8f8 + border-bottom-right-radius 2px + border-left 4px solid #f66 + border-top-right-radius 2px + margin 2em 0 + padding 12px 24px 12px 30px + position relative + + &:before + background-color #f66 + border-radius 100% + color $color-bg + content '!' + font-family 'Dosis', 'Source Sans Pro', 'Helvetica Neue', Arial, sans-serif + font-size 14px + font-weight bold + left -12px + line-height 20px + position absolute + height 20px + width 20px + text-align center + top 14px + + code + background-color #efefef + + em + color $color-text + +.markdown-section p.warn + background rgba($color-primary, 0.1) + border-radius 2px + padding 1rem + +.markdown-section ul.task-list > li + list-style-type none + +body.close + .sidebar + transform translateX(- $sidebar-width) + + .sidebar-toggle + width auto + + .content + left 0 + +@media print + .github-corner, .sidebar-toggle, .sidebar, .app-nav + display none + +@media screen and (max-width: 768px) + .github-corner, .sidebar-toggle, .sidebar + position fixed + + .app-nav + margin-top 16px + + .app-nav li ul + top 30px + + main + height auto + overflow-x hidden + + .sidebar + left - $sidebar-width + transition transform 250ms ease-out + + .content + left 0 + max-width 100vw + position static + padding-top 20px + transition transform 250ms ease + + .app-nav, .github-corner + transition transform 250ms ease-out + + .sidebar-toggle + background-color transparent + width auto + padding 30px 30px 10px 10px + + body.close + .sidebar + transform translateX($sidebar-width) + + .sidebar-toggle + background-color rgba($color-bg, 0.8) + transition 1s background-color + width $sidebar-width - 16px + padding 10px + + .content + transform translateX($sidebar-width) + + .app-nav, .github-corner + display none + + .github-corner + &:hover .octo-arm + animation none + + .octo-arm + animation octocat-wave 560ms ease-in-out + +@keyframes octocat-wave + 0%, 100% + transform rotate(0) + + 20%, 60% + transform rotate(-25deg) + + 40%, 80% + transform rotate(10deg) diff --git a/src/themes/buble.css b/src/themes/buble.css deleted file mode 100644 index c27c094..0000000 --- a/src/themes/buble.css +++ /dev/null @@ -1,241 +0,0 @@ -@import url('https://fonts.googleapis.com/css?family=Inconsolata|Inconsolata-Bold'); - -$color-primary: #0074d9; -$color-bg: #fff; -$color-text: #34495e; -$sidebar-width: 16rem; - -@import 'basic/layout'; -@import 'basic/coverpage'; - -/* sidebar */ -.sidebar { - color: #364149; - background-color: $color-bg; - - a { - color: #666; - text-decoration: none; - } - - li { - list-style: none; - margin: 0; - padding: 0.2em 0 0.2em 1rem; - } - - ul li ul { - padding: 0; - } - - li.active { - a { - color: #333; - } - - background-color: #eee; - } -} - -.markdown-section h1, -.markdown-section h2, -.markdown-section h3, -.markdown-section h4, -.markdown-section strong { - color: #333; - font-weight: 400; -} - -.markdown-section a { - color: var(--theme-color, $color-primary); - font-weight: 400; -} - -.markdown-section p, -.markdown-section ul, -.markdown-section ol { - line-height: 1.6rem; - margin: 0 0 1em 0; - word-spacing: 0.05rem; -} - -.markdown-section h1 { - font-size: 2rem; - font-weight: 500; - margin: 0 0 1rem; -} - -.markdown-section h2 { - font-size: 1.8rem; - font-weight: 400; - margin: 0 0 1rem 0; - padding: 1rem 0 0 0; -} - -.markdown-section h3 { - font-size: 1.5rem; - margin: 52px 0 1.2rem; -} - -.markdown-section h4 { - font-size: 1.25rem; -} - -.markdown-section h5 { - font-size: 1rem; -} - -.markdown-section h6 { - color: #777; - font-size: 1rem; -} - -.markdown-section figure, -.markdown-section p, -.markdown-section ul, -.markdown-section ol { - margin: 1.2em 0; -} - -.markdown-section ul, -.markdown-section ol { - padding-left: 1.5rem; -} - -.markdown-section li { - line-height: 1.5; - margin: 0; -} - -.markdown-section blockquote { - border-left: 4px solid var(--theme-color, $color-primary); - color: #858585; - margin: 2em 0; - padding-left: 20px; -} - -.markdown-section blockquote p { - font-weight: 600; - margin-left: 0; -} - -.markdown-section iframe { - margin: 1em 0; -} - -.markdown-section em { - color: #7f8c8d; -} - -.markdown-section code { - background-color: #f9f9f9; - border-radius: 3px; - font-family: Inconsolata; - padding: 0.2em 0.4rem; - white-space: nowrap; -} - -.markdown-section pre { - background-color: #f9f9f9; - border-left: 2px solid #eee; - font-family: Inconsolata; - font-size: 16px; - margin: 0 0 1em 0; - padding: 8px; - padding: 0 10px 12px 0; - overflow: auto; - word-wrap: normal; -} - -/* code highlight */ -.token.cdata, -.token.comment, -.token.doctype, -.token.prolog { - color: #93a1a1; /* base1 */ -} - -.token.punctuation { - color: #586e75; /* base01 */ -} - -.namespace { - opacity: 0.7; -} - -.token.property, -.token.tag, -.token.boolean, -.token.number, -.token.constant, -.token.symbol, -.token.deleted { - color: #268bd2; /* blue */ -} - -.token.selector, -.token.attr-name, -.token.string, -.token.char, -.token.builtin, -.token.url, -.token.inserted { - color: #2aa198; /* cyan */ -} - -.token.entity { - color: #657b83; /* base00 */ - background: #eee8d5; /* base2 */ -} - -.token.atrule, -.token.attr-value, -.token.keyword { - color: #a11; /* green */ -} - -.token.function { - color: #b58900; /* yellow */ -} - -.token.regex, -.token.important, -.token.variable { - color: #cb4b16; /* orange */ -} - -.token.important, -.token.bold { - font-weight: bold; -} -.token.italic { - font-style: italic; -} - -.token.entity { - cursor: help; -} - -.markdown-section pre > code { - background-color: #f8f8f8; - border-radius: 2px; - display: block; - font-family: Inconsolata; - line-height: 1.1rem; - max-width: inherit; - overflow: inherit; - padding: 20px 0.8em 20px; - position: relative; - white-space: inherit; -} - -.markdown-section code::after, -.markdown-section code::before { - letter-spacing: 0.05rem; -} - -code .token { - -webkit-font-smoothing: initial; - -moz-osx-font-smoothing: initial; - min-height: 1.5rem; -} diff --git a/src/themes/buble.styl b/src/themes/buble.styl new file mode 100644 index 0000000..53fbc15 --- /dev/null +++ b/src/themes/buble.styl @@ -0,0 +1,173 @@ +@import url('https://fonts.googleapis.com/css?family=Inconsolata|Inconsolata-Bold') + +$color-primary = #0074d9 +$color-bg = #fff +$color-text = #34495e +$sidebar-width = 16rem + +@import 'basic/_layout' +@import 'basic/_coverpage' + +/* sidebar */ +.sidebar + color #364149 + background-color $color-bg + + a + color #666 + text-decoration none + + li + list-style none + margin 0 + padding 0.2em 0 0.2em 0 + + ul li ul + padding 0 + + li.active + a + color #333 + + background-color #eee + +.markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section strong + color #333 + font-weight 400 + +.markdown-section a + color var(--theme-color, $color-primary) + font-weight 400 + +.markdown-section p, .markdown-section ul, .markdown-section ol + line-height 1.6rem + margin 0 0 1em 0 + word-spacing 0.05rem + +.markdown-section h1 + font-size 2rem + font-weight 500 + margin 0 0 1rem + +.markdown-section h2 + font-size 1.8rem + font-weight 400 + margin 0 0 1rem 0 + padding 1rem 0 0 0 + +.markdown-section h3 + font-size 1.5rem + margin 52px 0 1.2rem + +.markdown-section h4 + font-size 1.25rem + +.markdown-section h5 + font-size 1rem + +.markdown-section h6 + color #777 + font-size 1rem + +.markdown-section figure, .markdown-section p, .markdown-section ul, .markdown-section ol + margin 1.2em 0 + +.markdown-section ul, .markdown-section ol + padding-left 1.5rem + +.markdown-section li + line-height 1.5 + margin 0 + +.markdown-section blockquote + border-left 4px solid var(--theme-color, $color-primary) + color #858585 + margin 2em 0 + padding-left 20px + +.markdown-section blockquote p + font-weight 600 + margin-left 0 + +.markdown-section iframe + margin 1em 0 + +.markdown-section em + color #7f8c8d + +.markdown-section code + background-color #f9f9f9 + border-radius 3px + font-family Inconsolata + padding 0.2em 0.4rem + white-space nowrap + +.markdown-section pre + background-color #f9f9f9 + border-left 2px solid #eee + font-family Inconsolata + font-size 16px + margin 0 0 1em 0 + padding 8px + padding 0 10px 12px 0 + overflow auto + word-wrap normal + position relative + +/* code highlight */ +.token.cdata, .token.comment, .token.doctype, .token.prolog + color #93a1a1 /* base1 */ + +.token.punctuation + color #586e75 /* base01 */ + +.namespace + opacity 0.7 + +.token.property, .token.tag, .token.boolean, .token.number, .token.constant, .token.symbol, .token.deleted + color #268bd2 /* blue */ + +.token.selector, .token.attr-name, .token.string, .token.char, .token.builtin, .token.url, .token.inserted + color #2aa198 /* cyan */ + +.token.entity + color #657b83 /* base00 */ + background #eee8d5 /* base2 */ + +.token.atrule, .token.attr-value, .token.keyword + color #a11 /* green */ + +.token.function + color #b58900 /* yellow */ + +.token.regex, .token.important, .token.variable + color #cb4b16 /* orange */ + +.token.important, .token.bold + font-weight bold + +.token.italic + font-style italic + +.token.entity + cursor help + +.markdown-section pre > code + background-color #f8f8f8 + border-radius 2px + display block + font-family Inconsolata + line-height 1.1rem + max-width inherit + overflow inherit + padding 20px 0.8em 20px + position relative + white-space inherit + +.markdown-section code::after, .markdown-section code::before + letter-spacing 0.05rem + +code .token + -webkit-font-smoothing initial + -moz-osx-font-smoothing initial + min-height 1.5rem diff --git a/src/themes/dark.css b/src/themes/dark.css deleted file mode 100644 index 0301271..0000000 --- a/src/themes/dark.css +++ /dev/null @@ -1,300 +0,0 @@ -@import url('https://fonts.googleapis.com/css?family=Roboto+Mono|Source+Sans+Pro:300,400,600'); - -$color-primary: #ea6f5a; -$color-bg: #3f3f3f; -$color-text: #c8c8c8; -$sidebar-width: 300px; - -@import 'basic/layout'; -@import 'basic/coverpage'; - -body { - background-color: $color-bg; -} - -/* sidebar */ -.sidebar { - background-color: $color-bg; - color: #c8c8c8; - - li { - margin: 6px 15px; - } - - ul li a { - color: #c8c8c8; - font-size: 14px; - overflow: hidden; - text-decoration: none; - text-overflow: ellipsis; - white-space: nowrap; - - &:hover { - text-decoration: underline; - } - } - - ul li ul { - padding: 0; - } - - ul li.active > a { - color: var(--theme-color, $color-primary); - font-weight: 600; - } -} - -/* markdown content found on pages */ -.markdown-section h1, -.markdown-section h2, -.markdown-section h3, -.markdown-section h4, -.markdown-section strong { - color: #657b83; - font-weight: 600; -} - -.markdown-section a { - color: var(--theme-color, $color-primary); - font-weight: 600; -} - -.markdown-section h1 { - font-size: 2rem; - margin: 0 0 1rem; -} - -.markdown-section h2 { - font-size: 1.75rem; - margin: 45px 0 0.8rem; -} - -.markdown-section h3 { - font-size: 1.5rem; - margin: 40px 0 0.6rem; -} - -.markdown-section h4 { - font-size: 1.25rem; -} - -.markdown-section h5 { - font-size: 1rem; -} - -.markdown-section h6 { - color: #777; - font-size: 1rem; -} - -.markdown-section figure, -.markdown-section p, -.markdown-section ul, -.markdown-section ol { - margin: 1.2em 0; -} - -.markdown-section p, -.markdown-section ul, -.markdown-section ol { - line-height: 1.6rem; - word-spacing: 0.05rem; -} - -.markdown-section ul, -.markdown-section ol { - padding-left: 1.5rem; -} - -.markdown-section blockquote { - border-left: 4px solid var(--theme-color, $color-primary); - color: #858585; - margin: 2em 0; - padding-left: 20px; -} - -.markdown-section blockquote p { - font-weight: 600; - margin-left: 0; -} - -.markdown-section iframe { - margin: 1em 0; -} - -.markdown-section em { - color: #7f8c8d; -} - -.markdown-section code { - background-color: #282828; - border-radius: 2px; - color: #657b83; - font-family: 'Roboto Mono', Monaco, courier, monospace; - font-size: 0.8rem; - margin: 0 2px; - padding: 3px 5px; - white-space: pre-wrap; -} - -.markdown-section pre { - -moz-osx-font-smoothing: initial; - -webkit-font-smoothing: initial; - background-color: #282828; - font-family: 'Roboto Mono', Monaco, courier, monospace; - line-height: 1.5rem; - margin: 1.2em 0; - overflow: auto; - padding: 0 1.4rem; - position: relative; - word-wrap: normal; -} - -/* code highlight */ -.token.comment, -.token.prolog, -.token.doctype, -.token.cdata { - color: #8e908c; -} - -.token.namespace { - opacity: 0.7; -} - -.token.boolean, -.token.number { - color: #c76b29; -} - -.token.punctuation { - color: #525252; -} - -.token.property { - color: #c08b30; -} - -.token.tag { - color: #2973b7; -} - -.token.string { - color: var(--theme-color, $color-primary); -} - -.token.selector { - color: #6679cc; -} - -.token.attr-name { - color: #2973b7; -} - -.token.entity, -.token.url, -.language-css .token.string, -.style .token.string { - color: #22a2c9; -} - -.token.attr-value, -.token.control, -.token.directive, -.token.unit { - color: var(--theme-color, $color-primary); -} - -.token.keyword { - color: #e96900; -} - -.token.statement, -.token.regex, -.token.atrule { - color: #22a2c9; -} - -.token.placeholder, -.token.variable { - color: #3d8fd1; -} - -.token.deleted { - text-decoration: line-through; -} - -.token.inserted { - border-bottom: 1px dotted #202746; - text-decoration: none; -} - -.token.italic { - font-style: italic; -} - -.token.important, -.token.bold { - font-weight: bold; -} - -.token.important { - color: #c94922; -} - -.token.entity { - cursor: help; -} - -.markdown-section pre > code { - -moz-osx-font-smoothing: initial; - -webkit-font-smoothing: initial; - background-color: #282828; - border-radius: 2px; - color: #657b83; - display: block; - font-family: 'Roboto Mono', Monaco, courier, monospace; - font-size: 0.8rem; - line-height: inherit; - margin: 0 2px; - max-width: inherit; - overflow: inherit; - padding: 2.2em 5px; - white-space: inherit; -} - -.markdown-section code::after, -.markdown-section code::before { - letter-spacing: 0.05rem; -} - -code .token { - -moz-osx-font-smoothing: initial; - -webkit-font-smoothing: initial; - min-height: 1.5rem; -} - -pre::after { - color: #ccc; - content: attr(data-lang); - font-size: 0.6rem; - font-weight: 600; - height: 15px; - line-height: 15px; - padding: 5px 10px 0; - position: absolute; - right: 0; - text-align: right; - top: 0; -} - -.markdown-section p.tip { - background-color: #282828; - color: #657b83; -} - -input[type='search'] { - background: #4f4f4f; - border-color: #4f4f4f; - color: #c8c8c8; -} diff --git a/src/themes/dark.styl b/src/themes/dark.styl new file mode 100644 index 0000000..02ca630 --- /dev/null +++ b/src/themes/dark.styl @@ -0,0 +1,225 @@ +@import url('https://fonts.googleapis.com/css?family=Roboto+Mono|Source+Sans+Pro:300,400,600') + +$color-primary = #ea6f5a +$color-bg = #3f3f3f +$color-text = #c8c8c8 +$sidebar-width = 300px + +@import 'basic/_layout' +@import 'basic/_coverpage' + +body + background-color $color-bg + +/* sidebar */ +.sidebar + background-color $color-bg + color #c8c8c8 + + li + margin 6px 15px 6px 0 + + ul li a + color #c8c8c8 + font-size 14px + overflow hidden + text-decoration none + text-overflow ellipsis + white-space nowrap + + &:hover + text-decoration underline + + ul li ul + padding 0 + + ul li.active > a + color var(--theme-color, $color-primary) + font-weight 600 + +/* markdown content found on pages */ +.markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section strong + color #657b83 + font-weight 600 + +.markdown-section a + color var(--theme-color, $color-primary) + font-weight 600 + +.markdown-section h1 + font-size 2rem + margin 0 0 1rem + +.markdown-section h2 + font-size 1.75rem + margin 45px 0 0.8rem + +.markdown-section h3 + font-size 1.5rem + margin 40px 0 0.6rem + +.markdown-section h4 + font-size 1.25rem + +.markdown-section h5 + font-size 1rem + +.markdown-section h6 + color #777 + font-size 1rem + +.markdown-section figure, .markdown-section p, .markdown-section ul, .markdown-section ol + margin 1.2em 0 + +.markdown-section p, .markdown-section ul, .markdown-section ol + line-height 1.6rem + word-spacing 0.05rem + +.markdown-section ul, .markdown-section ol + padding-left 1.5rem + +.markdown-section blockquote + border-left 4px solid var(--theme-color, $color-primary) + color #858585 + margin 2em 0 + padding-left 20px + +.markdown-section blockquote p + font-weight 600 + margin-left 0 + +.markdown-section iframe + margin 1em 0 + +.markdown-section em + color #7f8c8d + +.markdown-section code + background-color #282828 + border-radius 2px + color #657b83 + font-family 'Roboto Mono', Monaco, courier, monospace + font-size 0.8rem + margin 0 2px + padding 3px 5px + white-space pre-wrap + +.markdown-section pre + -moz-osx-font-smoothing initial + -webkit-font-smoothing initial + background-color #282828 + font-family 'Roboto Mono', Monaco, courier, monospace + line-height 1.5rem + margin 1.2em 0 + overflow auto + padding 0 1.4rem + position relative + word-wrap normal + +/* code highlight */ +.token.comment, .token.prolog, .token.doctype, .token.cdata + color #8e908c + +.token.namespace + opacity 0.7 + +.token.boolean, .token.number + color #c76b29 + +.token.punctuation + color #525252 + +.token.property + color #c08b30 + +.token.tag + color #2973b7 + +.token.string + color var(--theme-color, $color-primary) + +.token.selector + color #6679cc + +.token.attr-name + color #2973b7 + +.token.entity, .token.url, .language-css .token.string, .style .token.string + color #22a2c9 + +.token.attr-value, .token.control, .token.directive, .token.unit + color var(--theme-color, $color-primary) + +.token.keyword + color #e96900 + +.token.statement, .token.regex, .token.atrule + color #22a2c9 + +.token.placeholder, .token.variable + color #3d8fd1 + +.token.deleted + text-decoration line-through + +.token.inserted + border-bottom 1px dotted #202746 + text-decoration none + +.token.italic + font-style italic + +.token.important, .token.bold + font-weight bold + +.token.important + color #c94922 + +.token.entity + cursor help + +.markdown-section pre > code + -moz-osx-font-smoothing initial + -webkit-font-smoothing initial + background-color #282828 + border-radius 2px + color #657b83 + display block + font-family 'Roboto Mono', Monaco, courier, monospace + font-size 0.8rem + line-height inherit + margin 0 2px + max-width inherit + overflow inherit + padding 2.2em 5px + white-space inherit + +.markdown-section code::after, .markdown-section code::before + letter-spacing 0.05rem + +code .token + -moz-osx-font-smoothing initial + -webkit-font-smoothing initial + min-height 1.5rem + +pre::after + color #ccc + content attr(data-lang) + font-size 0.6rem + font-weight 600 + height 15px + line-height 15px + padding 5px 10px 0 + position absolute + right 0 + text-align right + top 0 + +.markdown-section p.tip + background-color #282828 + color #657b83 + +input[type='search'] + background #4f4f4f + border-color #4f4f4f + color #c8c8c8 diff --git a/src/themes/dolphin.styl b/src/themes/dolphin.styl new file mode 100644 index 0000000..f5ea286 --- /dev/null +++ b/src/themes/dolphin.styl @@ -0,0 +1,228 @@ +@import url('https://fonts.googleapis.com/css?family=Thasadith:400,400i,700') + +$color-primary = #00ffff +$color-bg = #f0ffff +$color-text = #34495e +$sidebar-width = 300px + +@import 'basic/_layout' +@import 'basic/_coverpage' + +body + background-color $color-bg + +/* sidebar */ +.sidebar + background-color $color-bg + color #364149 + + li + margin 6px 0 6px 0 + + ul li a + color #505d6b + font-size 14px + font-weight normal + overflow hidden + text-decoration none + text-overflow ellipsis + white-space nowrap + + &:hover + text-decoration underline + + ul li ul + padding 0 + + ul li.active > a + border-right 2px solid + color var(--theme-color, $color-primary) + font-weight 600 + +.app-sub-sidebar + li + &::before + content '-' + padding-right 4px + float left + +/* markdown content found on pages */ +.markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section strong + color #2c3e50 + font-weight 600 + +.markdown-section a + color var(--theme-color, $color-primary) + font-weight 600 + + &:hover + text-decoration underline + +.markdown-section h1 + font-size 2rem + margin 0 0 1rem + +.markdown-section h2 + font-size 1.75rem + margin 45px 0 0.8rem + +.markdown-section h3 + font-size 1.5rem + margin 40px 0 0.6rem + +.markdown-section h4 + font-size 1.25rem + +.markdown-section h5 + font-size 1rem + +.markdown-section h6 + color #777 + font-size 1rem + +.markdown-section figure, .markdown-section p + margin 1.2em 0 + +.markdown-section p, .markdown-section ul, .markdown-section ol + line-height 1.6rem + word-spacing 0.05rem + +.markdown-section ul, .markdown-section ol + padding-left 1.5rem + +.markdown-section blockquote + border-left 4px solid var(--theme-color, $color-primary) + color #858585 + margin 2em 0 + padding-left 20px + +.markdown-section blockquote p + font-weight 600 + margin-left 0 + +.markdown-section iframe + margin 1em 0 + +.markdown-section em + color #7f8c8d + +.markdown-section code + background-color #f8f8f8 + border-radius 2px + color #e96900 + font-family 'Roboto Mono', Monaco, courier, monospace + font-size 0.8rem + margin 0 2px + padding 3px 5px + white-space pre-wrap + +.markdown-section pre + -moz-osx-font-smoothing initial + -webkit-font-smoothing initial + background-color #f8f8f8 + font-family 'Roboto Mono', Monaco, courier, monospace + line-height 1.5rem + margin 1.2em 0 + overflow auto + padding 0 1.4rem + position relative + word-wrap normal + +/* code highlight */ +.token.comment, .token.prolog, .token.doctype, .token.cdata + color #8e908c + +.token.namespace + opacity 0.7 + +.token.boolean, .token.number + color #c76b29 + +.token.punctuation + color #525252 + +.token.property + color #c08b30 + +.token.tag + color #2973b7 + +.token.string + color var(--theme-color, $color-primary) + +.token.selector + color #6679cc + +.token.attr-name + color #2973b7 + +.token.entity, .token.url, .language-css .token.string, .style .token.string + color #22a2c9 + +.token.attr-value, .token.control, .token.directive, .token.unit + color var(--theme-color, $color-primary) + +.token.keyword, .token.function + color #e96900 + +.token.statement, .token.regex, .token.atrule + color #22a2c9 + +.token.placeholder, .token.variable + color #3d8fd1 + +.token.deleted + text-decoration line-through + +.token.inserted + border-bottom 1px dotted #202746 + text-decoration none + +.token.italic + font-style italic + +.token.important, .token.bold + font-weight bold + +.token.important + color #c94922 + +.token.entity + cursor help + +.markdown-section pre > code + -moz-osx-font-smoothing initial + -webkit-font-smoothing initial + background-color #f8f8f8 + border-radius 2px + color #525252 + display block + font-family 'Roboto Mono', Monaco, courier, monospace + font-size 0.8rem + line-height inherit + margin 0 2px + max-width inherit + overflow inherit + padding 2.2em 5px + white-space inherit + +.markdown-section code::after, .markdown-section code::before + letter-spacing 0.05rem + +code .token + -moz-osx-font-smoothing initial + -webkit-font-smoothing initial + min-height 1.5rem + +pre::after + color #ccc + content attr(data-lang) + font-size 0.6rem + font-weight 600 + height 15px + line-height 15px + padding 5px 10px 0 + position absolute + right 0 + text-align right + top 0 diff --git a/src/themes/pure.css b/src/themes/pure.css deleted file mode 100644 index 503b412..0000000 --- a/src/themes/pure.css +++ /dev/null @@ -1,6 +0,0 @@ -$color-primary: #000; -$color-bg: #fff; -$color-text: #000; -$sidebar-width: 300px; -@import 'basic/layout'; -@import 'basic/coverpage'; diff --git a/src/themes/pure.styl b/src/themes/pure.styl new file mode 100644 index 0000000..37d0b76 --- /dev/null +++ b/src/themes/pure.styl @@ -0,0 +1,7 @@ +$color-primary = #000 +$color-bg = #fff +$color-text = #000 +$sidebar-width = 300px + +@import 'basic/_layout' +@import 'basic/_coverpage' diff --git a/src/themes/vue.css b/src/themes/vue.css deleted file mode 100644 index e7ce2eb..0000000 --- a/src/themes/vue.css +++ /dev/null @@ -1,299 +0,0 @@ -@import url('https://fonts.googleapis.com/css?family=Roboto+Mono|Source+Sans+Pro:300,400,600'); - -$color-primary: #42b983; -$color-bg: #fff; -$color-text: #34495e; -$sidebar-width: 300px; - -@import 'basic/layout'; -@import 'basic/coverpage'; - -body { - background-color: $color-bg; -} - -/* sidebar */ -.sidebar { - background-color: $color-bg; - color: #364149; - - li { - margin: 6px 0 6px 15px; - } - - ul li a { - color: #505d6b; - font-size: 14px; - font-weight: normal; - overflow: hidden; - text-decoration: none; - text-overflow: ellipsis; - white-space: nowrap; - - &:hover { - text-decoration: underline; - } - } - - ul li ul { - padding: 0; - } - - ul li.active > a { - border-right: 2px solid; - color: var(--theme-color, $color-primary); - font-weight: 600; - } -} - -.app-sub-sidebar { - li { - &::before { - content: '-'; - padding-right: 4px; - float: left; - } - } -} - -/* markdown content found on pages */ -.markdown-section h1, -.markdown-section h2, -.markdown-section h3, -.markdown-section h4, -.markdown-section strong { - color: #2c3e50; - font-weight: 600; -} - -.markdown-section a { - color: var(--theme-color, $color-primary); - font-weight: 600; -} - -.markdown-section h1 { - font-size: 2rem; - margin: 0 0 1rem; -} - -.markdown-section h2 { - font-size: 1.75rem; - margin: 45px 0 0.8rem; -} - -.markdown-section h3 { - font-size: 1.5rem; - margin: 40px 0 0.6rem; -} - -.markdown-section h4 { - font-size: 1.25rem; -} - -.markdown-section h5 { - font-size: 1rem; -} - -.markdown-section h6 { - color: #777; - font-size: 1rem; -} - -.markdown-section figure, -.markdown-section p { - margin: 1.2em 0; -} - -.markdown-section p, -.markdown-section ul, -.markdown-section ol { - line-height: 1.6rem; - word-spacing: 0.05rem; -} - -.markdown-section ul, -.markdown-section ol { - padding-left: 1.5rem; -} - -.markdown-section blockquote { - border-left: 4px solid var(--theme-color, $color-primary); - color: #858585; - margin: 2em 0; - padding-left: 20px; -} - -.markdown-section blockquote p { - font-weight: 600; - margin-left: 0; -} - -.markdown-section iframe { - margin: 1em 0; -} - -.markdown-section em { - color: #7f8c8d; -} - -.markdown-section code { - background-color: #f8f8f8; - border-radius: 2px; - color: #e96900; - font-family: 'Roboto Mono', Monaco, courier, monospace; - font-size: 0.8rem; - margin: 0 2px; - padding: 3px 5px; - white-space: pre-wrap; -} - -.markdown-section pre { - -moz-osx-font-smoothing: initial; - -webkit-font-smoothing: initial; - background-color: #f8f8f8; - font-family: 'Roboto Mono', Monaco, courier, monospace; - line-height: 1.5rem; - margin: 1.2em 0; - overflow: auto; - padding: 0 1.4rem; - position: relative; - word-wrap: normal; -} - -/* code highlight */ -.token.comment, -.token.prolog, -.token.doctype, -.token.cdata { - color: #8e908c; -} - -.token.namespace { - opacity: 0.7; -} - -.token.boolean, -.token.number { - color: #c76b29; -} - -.token.punctuation { - color: #525252; -} - -.token.property { - color: #c08b30; -} - -.token.tag { - color: #2973b7; -} - -.token.string { - color: var(--theme-color, $color-primary); -} - -.token.selector { - color: #6679cc; -} - -.token.attr-name { - color: #2973b7; -} - -.token.entity, -.token.url, -.language-css .token.string, -.style .token.string { - color: #22a2c9; -} - -.token.attr-value, -.token.control, -.token.directive, -.token.unit { - color: var(--theme-color, $color-primary); -} - -.token.keyword { - color: #e96900; -} - -.token.statement, -.token.regex, -.token.atrule { - color: #22a2c9; -} - -.token.placeholder, -.token.variable { - color: #3d8fd1; -} - -.token.deleted { - text-decoration: line-through; -} - -.token.inserted { - border-bottom: 1px dotted #202746; - text-decoration: none; -} - -.token.italic { - font-style: italic; -} - -.token.important, -.token.bold { - font-weight: bold; -} - -.token.important { - color: #c94922; -} - -.token.entity { - cursor: help; -} - -.markdown-section pre > code { - -moz-osx-font-smoothing: initial; - -webkit-font-smoothing: initial; - background-color: #f8f8f8; - border-radius: 2px; - color: #525252; - display: block; - font-family: 'Roboto Mono', Monaco, courier, monospace; - font-size: 0.8rem; - line-height: inherit; - margin: 0 2px; - max-width: inherit; - overflow: inherit; - padding: 2.2em 5px; - white-space: inherit; -} - -.markdown-section code::after, -.markdown-section code::before { - letter-spacing: 0.05rem; -} - -code .token { - -moz-osx-font-smoothing: initial; - -webkit-font-smoothing: initial; - min-height: 1.5rem; -} - -pre::after { - color: #ccc; - content: attr(data-lang); - font-size: 0.6rem; - font-weight: 600; - height: 15px; - line-height: 15px; - padding: 5px 10px 0; - position: absolute; - right: 0; - text-align: right; - top: 0; -} diff --git a/src/themes/vue.styl b/src/themes/vue.styl new file mode 100644 index 0000000..98c416e --- /dev/null +++ b/src/themes/vue.styl @@ -0,0 +1,225 @@ +@import url('https://fonts.googleapis.com/css?family=Roboto+Mono|Source+Sans+Pro:300,400,600') + +$color-primary = #42b983 +$color-bg = #fff +$color-text = #34495e +$sidebar-width = 300px + +@import 'basic/_layout' +@import 'basic/_coverpage' + +body + background-color $color-bg + +/* sidebar */ +.sidebar + background-color $color-bg + color #364149 + + li + margin 6px 0 6px 0 + + ul li a + color #505d6b + font-size 14px + font-weight normal + overflow hidden + text-decoration none + text-overflow ellipsis + white-space nowrap + + &:hover + text-decoration underline + + ul li ul + padding 0 + + ul li.active > a + border-right 2px solid + color var(--theme-color, $color-primary) + font-weight 600 + +.app-sub-sidebar + li + &::before + content '-' + padding-right 4px + float left + +/* markdown content found on pages */ +.markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section strong + color #2c3e50 + font-weight 600 + +.markdown-section a + color var(--theme-color, $color-primary) + font-weight 600 + +.markdown-section h1 + font-size 2rem + margin 0 0 1rem + +.markdown-section h2 + font-size 1.75rem + margin 45px 0 0.8rem + +.markdown-section h3 + font-size 1.5rem + margin 40px 0 0.6rem + +.markdown-section h4 + font-size 1.25rem + +.markdown-section h5 + font-size 1rem + +.markdown-section h6 + color #777 + font-size 1rem + +.markdown-section figure, .markdown-section p + margin 1.2em 0 + +.markdown-section p, .markdown-section ul, .markdown-section ol + line-height 1.6rem + word-spacing 0.05rem + +.markdown-section ul, .markdown-section ol + padding-left 1.5rem + +.markdown-section blockquote + border-left 4px solid var(--theme-color, $color-primary) + color #858585 + margin 2em 0 + padding-left 20px + +.markdown-section blockquote p + font-weight 600 + margin-left 0 + +.markdown-section iframe + margin 1em 0 + +.markdown-section em + color #7f8c8d + +.markdown-section code + background-color #f8f8f8 + border-radius 2px + color #e96900 + font-family 'Roboto Mono', Monaco, courier, monospace + font-size 0.8rem + margin 0 2px + padding 3px 5px + white-space pre-wrap + +.markdown-section pre + -moz-osx-font-smoothing initial + -webkit-font-smoothing initial + background-color #f8f8f8 + font-family 'Roboto Mono', Monaco, courier, monospace + line-height 1.5rem + margin 1.2em 0 + overflow auto + padding 0 1.4rem + position relative + word-wrap normal + +/* code highlight */ +.token.comment, .token.prolog, .token.doctype, .token.cdata + color #8e908c + +.token.namespace + opacity 0.7 + +.token.boolean, .token.number + color #c76b29 + +.token.punctuation + color #525252 + +.token.property + color #c08b30 + +.token.tag + color #2973b7 + +.token.string + color var(--theme-color, $color-primary) + +.token.selector + color #6679cc + +.token.attr-name + color #2973b7 + +.token.entity, .token.url, .language-css .token.string, .style .token.string + color #22a2c9 + +.token.attr-value, .token.control, .token.directive, .token.unit + color var(--theme-color, $color-primary) + +.token.keyword, .token.function + color #e96900 + +.token.statement, .token.regex, .token.atrule + color #22a2c9 + +.token.placeholder, .token.variable + color #3d8fd1 + +.token.deleted + text-decoration line-through + +.token.inserted + border-bottom 1px dotted #202746 + text-decoration none + +.token.italic + font-style italic + +.token.important, .token.bold + font-weight bold + +.token.important + color #c94922 + +.token.entity + cursor help + +.markdown-section pre > code + -moz-osx-font-smoothing initial + -webkit-font-smoothing initial + background-color #f8f8f8 + border-radius 2px + color #525252 + display block + font-family 'Roboto Mono', Monaco, courier, monospace + font-size 0.8rem + line-height inherit + margin 0 2px + max-width inherit + overflow inherit + padding 2.2em 5px + white-space inherit + +.markdown-section code::after, .markdown-section code::before + letter-spacing 0.05rem + +code .token + -moz-osx-font-smoothing initial + -webkit-font-smoothing initial + min-height 1.5rem + +pre::after + color #ccc + content attr(data-lang) + font-size 0.6rem + font-weight 600 + height 15px + line-height 15px + padding 5px 10px 0 + position absolute + right 0 + text-align right + top 0 diff --git a/test/_helper.js b/test/_helper.js new file mode 100644 index 0000000..4b4abce --- /dev/null +++ b/test/_helper.js @@ -0,0 +1,87 @@ +// load ES6 modules in Node.js on the fly +require = require('esm')(module/*, options*/) + +const path = require('path') +const {expect} = require('chai') + +const {JSDOM} = require('jsdom') + +function ready(callback) { + const state = document.readyState + + if (state === 'complete' || state === 'interactive') { + return setTimeout(callback, 0) + } + + document.addEventListener('DOMContentLoaded', callback) +} +module.exports.init = function(fixture = 'default', config = {}, markup) { + if (markup == null) { + markup = ` + + + +
            + + + ` + } + const rootPath = path.join(__dirname, 'fixtures', fixture) + + const dom = new JSDOM(markup) + dom.reconfigure({ url: 'file:///' + rootPath }) + + global.window = dom.window + global.document = dom.window.document + global.navigator = dom.window.navigator + global.location = dom.window.location + global.XMLHttpRequest = dom.window.XMLHttpRequest + + // mimic src/core/index.js but for Node.js + function Docsify() { + this._init() + } + + const proto = Docsify.prototype + + const {initMixin} = require('../src/core/init') + const {routerMixin} = require('../src/core//router') + const {renderMixin} = require('../src/core//render') + const {fetchMixin} = require('../src/core/fetch') + const {eventMixin} = require('../src/core//event') + + initMixin(proto) + routerMixin(proto) + renderMixin(proto) + fetchMixin(proto) + eventMixin(proto) + + const NOT_INIT_PATTERN = '' + + return new Promise((resolve, reject) => { + ready(() => { + const docsify = new Docsify() + // NOTE: I was not able to get it working with a callback, but polling works usually at the first time + const id = setInterval(() => { + if (dom.window.document.body.innerHTML.indexOf(NOT_INIT_PATTERN) == -1) { + clearInterval(id) + return resolve({ + docsify: docsify, + dom: dom + }) + } + }, 10) + }) + + }) +} +module.exports.expectSameDom = function(actual, expected) { + const WHITESPACES_BETWEEN_TAGS = />(\s\s+) diff --git a/test/fixtures/simple/README.md b/test/fixtures/simple/README.md new file mode 100644 index 0000000..0f3fd46 --- /dev/null +++ b/test/fixtures/simple/README.md @@ -0,0 +1,18 @@ +# Heading + +[another page](other.md) + +## II 1 + +### III 1 + +#### IV 1 + +##### V 1 + + +## II 2 + +### III 2 + +#### IV 2 diff --git a/test/fixtures/simple/other-page.md b/test/fixtures/simple/other-page.md new file mode 100644 index 0000000..4bc6e98 --- /dev/null +++ b/test/fixtures/simple/other-page.md @@ -0,0 +1,16 @@ +# Other + +## two 1 + +### three 1 + +#### four 1 + +##### five 1 + + +## two 2 + +### three 2 + +#### four 2 diff --git a/test/integration/render.js b/test/integration/render.js new file mode 100644 index 0000000..7b2b253 --- /dev/null +++ b/test/integration/render.js @@ -0,0 +1,14 @@ +const path = require('path') + +const {expect} = require('chai') + +const {init, expectSameDom} = require('../_helper') + +describe('full docsify initialization', function() { + it('TODO: check generated markup', async function() { + const {docsify, dom} = await init('simple', {loadSidebar: true}) + console.log(dom.window.document.body.innerHTML) + // TODO: add some expectations + }) + +}) diff --git a/test/integration/router.js b/test/integration/router.js new file mode 100644 index 0000000..b87e802 --- /dev/null +++ b/test/integration/router.js @@ -0,0 +1,14 @@ +const path = require('path') + +const {expect} = require('chai') + +const {init, expectSameDom} = require('../_helper') + +describe('router', function() { + it('TODO: trigger to load another page', async function() { + const {docsify} = await init() + window.location = '/?foo=bar' + // TODO: add some expectations + }) + +}) diff --git a/test/unit/base.js b/test/unit/base.js new file mode 100644 index 0000000..036700b --- /dev/null +++ b/test/unit/base.js @@ -0,0 +1,62 @@ +/* eslint-env node, chai, mocha */ +require = require('esm')(module/*, options*/) +const {expect} = require('chai') +const {History} = require('../../src/core/router/history/base') + +class MockHistory extends History { + parse(path) { + return {path} + } +} + +describe('router/history/base', function () { + describe('relativePath true', function () { + var history + + beforeEach(function () { + history = new MockHistory({relativePath: true}) + }) + + it('toURL', function () { + // WHEN + const url = history.toURL('guide.md', {}, '/zh-ch/') + + // THEN + expect(url).equal('/zh-ch/guide') + }) + + it('toURL with double dot', function () { + // WHEN + const url = history.toURL('../README.md', {}, '/zh-ch/') + + // THEN + expect(url).equal('/README') + }) + + it('toURL child path', function () { + // WHEN + const url = history.toURL('config/example.md', {}, '/zh-ch/') + + // THEN + expect(url).equal('/zh-ch/config/example') + }) + + it('toURL absolute path', function () { + // WHEN + const url = history.toURL('/README', {}, '/zh-ch/') + + // THEN + expect(url).equal('/README') + }) + }) + + it('toURL without relative path', function () { + const history = new MockHistory({relativePath: false}) + + // WHEN + const url = history.toURL('README', {}, '/zh-ch/') + + // THEN + expect(url).equal('/README') + }) +}) diff --git a/test/unit/render.js b/test/unit/render.js new file mode 100644 index 0000000..25043cf --- /dev/null +++ b/test/unit/render.js @@ -0,0 +1,89 @@ +const path = require('path') + +const {expect} = require('chai') + +const {init, expectSameDom} = require('../_helper') + +describe('render', function() { + it('important content (tips)', async function() { + const {docsify, dom} = await init() + const output = docsify.compiler.compile('!> **Time** is money, my friend!') + expect(output).equal('

            Time is money, my friend!

            ') + }) + + describe('lists', function() { + it('as unordered task list', async function() { + const {docsify, dom} = await init() + const output = docsify.compiler.compile(` +- [x] Task 1 +- [ ] Task 2 +- [ ] Task 3`) + expect(output, `
              +
            • +
            • +
            • +
            `) + }) + + it('as ordered task list', async function() { + const {docsify, dom} = await init() + const output = docsify.compiler.compile(` +1. [ ] Task 1 +2. [x] Task 2`) + expectSameDom(output, `
              +
            1. +
            2. +
            `) + }) + + it('normal unordered', async function() { + const {docsify, dom} = await init() + const output = docsify.compiler.compile(` +- [linktext](link) +- just text`) + expectSameDom(output, ``) + }) + + it('unordered with custom start', async function() { + const {docsify, dom} = await init() + const output = docsify.compiler.compile(` +1. first +2. second + +text + +3. third`) + expectSameDom(output, `
              +
            1. first
            2. +
            3. second
            4. +
            +

            text

            +
              +
            1. third
            2. +
            `) + }) + + it('nested', async function() { + const {docsify, dom} = await init() + const output = docsify.compiler.compile(` +- 1 +- 2 + - 2 a + - 2 b +- 3`) + expectSameDom(output, `
              +
            • 1
            • +
            • 2
                +
              • 2 a
              • +
              • 2 b
              • +
              +
            • +
            • 3
            • +
            `) + }) + }) + +}) diff --git a/test/unit/util.js b/test/unit/util.js new file mode 100644 index 0000000..1e65daf --- /dev/null +++ b/test/unit/util.js @@ -0,0 +1,30 @@ +/* eslint-env node, chai, mocha */ +require = require('esm')(module/*, options*/) +const {expect} = require('chai') +const {resolvePath} = require('../../src/core/router/util') + +describe('router/util', function () { + it('resolvePath', async function () { + // WHEN + const result = resolvePath('hello.md') + + // THEN + expect(result).equal('/hello.md') + }) + + it('resolvePath with dot', async function () { + // WHEN + const result = resolvePath('./hello.md') + + // THEN + expect(result).equal('/hello.md') + }) + + it('resolvePath with two dots', async function () { + // WHEN + const result = resolvePath('test/../hello.md') + + // THEN + expect(result).equal('/hello.md') + }) +}) diff --git a/themes/.gitkeep b/themes/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/themes/.gitkeep @@ -0,0 +1 @@ +