├── .editorconfig ├── .gitignore ├── .npmignore ├── .travis.yml ├── LICENSE ├── README.md ├── cypress.json ├── cypress ├── fixtures │ ├── compromised.js │ ├── fallback.js │ ├── original.js │ ├── scenario-1.html │ ├── scenario-2.html │ ├── scenario-3.html │ ├── scenario-4.html │ ├── scenario-5.html │ └── scenario-6.html └── integration │ └── sri_spec.js ├── dist └── sri.min.js ├── docs ├── CNAME ├── android-chrome-192x192.png ├── android-chrome-256x256.png ├── apple-touch-icon.png ├── browserconfig.xml ├── favicon-16x16.png ├── favicon-32x32.png ├── favicon.ico ├── index.html ├── manifest.json ├── markdown.css ├── mstile-150x150.png ├── prism.js ├── safari-pinned-tab.svg └── sri-issue-chrome.jpg ├── package-lock.json ├── package.json └── src └── sri.js /.editorconfig: -------------------------------------------------------------------------------- 1 | ; EditorConfig file: http://EditorConfig.org 2 | ; Install the "EditorConfig" plugin into your editor to use 3 | 4 | root = true 5 | 6 | [*] 7 | charset = utf-8 8 | insert_final_newline = true 9 | indent_style = space 10 | indent_size = 2 11 | trim_trailing_whitespace = true 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | 8 | # Dependency directories 9 | node_modules/ 10 | jspm_packages/ 11 | 12 | # Optional npm cache directory 13 | .npm 14 | 15 | # Optional eslint cache 16 | .eslintcache 17 | 18 | # Yarn Integrity file 19 | .yarn-integrity 20 | 21 | # dotenv environment variables file 22 | .env 23 | cypress/videos 24 | cypress/plugins 25 | cypress/support 26 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | CNAME 2 | index.html 3 | markdown.css 4 | prism.js 5 | sri-issue-chrome.jpg 6 | cypress 7 | docs 8 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | cache: 3 | directories: 4 | - node_modules 5 | notifications: 6 | email: false 7 | node_js: 8 | - '10' 9 | before_script: 10 | - npm prune 11 | script: 12 | - npm run serve & 13 | - npm test 14 | after_success: 15 | - npm run semantic-release 16 | branches: 17 | except: 18 | - /^v\d+\.\d+\.\d+$/ 19 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Jakub Mikulas 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Subresource Integrity Fallback [sri.js.org](https://sri.js.org) 2 | 3 | ## What is Subresource Integrity 4 | 5 | [Subresource Integrity (SRI)][1] is a security feature that ensures that resources client browser downloads and runs (JavaScript/CSS) haven't been tampered with. 6 | 7 | [SRI Browser support][2] is on the rise and some CDNs include it in the best practices. All is sunsh[i][3]ne and lollipops until you see this error in user's console: 8 | 9 | ![Failed Subresource Integrity check in Chrome][4]Failed Subresource Integrity check in Chrome 10 | 11 | Guess what, nothing works. Nobody knows why. Rogue proxy? Optimalization proxy? Maybe your CDN is hacked or lying to you. Anyway, your resources are broken. 12 | 13 | ## Fallback 14 | 15 | If we don't want to leave user with an application in nonfunctioning state or at least provide the user some feedback on why application couldn't start, we need a fallback. So how can we handle tampered resource? 16 | 17 | ### Strategy 18 | 19 | Script is downloaded, but before its execution, SRI hash is checked against the downloaded resource. If hash check fails, [error event is fired][5] and resource is not executed. This error is not propagated to the `window.onerror` and _afaik_ can't be distinguished from other errors. So we need to catch all of them. 20 | 21 | To catch `script/link` errors, we can use [`onerror`][6] handler. But we need to hook it right as the resource is added to the DOM. For that we can use [MutationObserver][7]. 22 | 23 | ### Fallback flow 24 | 25 | 1. Monitor DOM for a new `script/link` elements with `integrity` attribute 26 | 2. Add `onerror` handler to those 27 | 3. If `onerror` is fired, try to load fallback resource specified on the element 28 | 4. When downloading fallback resource fails (or fallback is not available) script fires an event to notify user that something went wrong 29 | 30 | ## How to use 31 | 32 | Because we are trying to deal with unreliable CDN/network, **all of the following code must be placed in the document itself** and shouldn't be served from any remote location. 33 | 34 | ### 1) Add [SRI fallback code][8] to the header 35 | 36 | Code must be placed before any resource using `integrity` attribute - ideally in ``, since CSS `link` can also utilize integrity check. Its minified version _(~0,4kb gzipped)_ is also on [`npm`][9]: 37 | 38 | **`npm i subresource-integrity-fallback -S`** 39 | 40 | ### 2) Add resource fallback data attributes 41 | 42 | Then you need to supply `data-sri-fallback` attribute on any resource with `integrity` check. Example use: 43 | 44 | ```html 45 | 50 | ``` 51 | 52 | It might be a good idea to either serve fallback resources from same server that serves the actual page or setup a secondary CDN as a fallback. 53 | 54 | ### 3) Define a behavior on failure 55 | 56 | Last missing piece is the `window.resourceLoadError` function, that will be called when resource with `integrity` check fails to load - as explained above, this reason can come either from normal network problems or resource tampering. Function will get error itself as an argument and boolean indicating whether fallback resource also failed. Function will be called for each failing resource. 57 | 58 | ```js 59 | // In the 60 | window.resourceLoadError = function(err, isRetry) { 61 | if (isRetry) { 62 | return letUserKnowAboutPossibleTampering(err); 63 | } 64 | return letUserKnowSomethingFailedToLoad(err); 65 | } 66 | // SRI Fallback code below this... 67 | ``` 68 | 69 | ## Other considerations 70 | 71 | * Have a reason to use it. SRI is not a free lunch, be sure you need it and are ready to spend some resources on it. 72 | * You should [send `no-transform` header][10] from your CDN. 73 | * Using this together with [CSP][11] is a good idea. 74 | 75 | [1]: https://mdn.io/SubresourceIntegrity 76 | [2]: http://caniuse.com/#feat=subresource-integrity 77 | [3]: https://www.youtube.com/watch?v=XQmBXEZEYtg 78 | [4]: https://sri.js.org/sri-issue-chrome.jpg 79 | [5]: https://www.w3.org/TR/SRI/#handling-integrity-violations 80 | [6]: https://developer.mozilla.org/cs/docs/Web/API/GlobalEventHandlers/onerror 81 | [7]: https://developer.mozilla.org/docs/Web/API/MutationObserver 82 | [8]: https://github.com/JackuB/subresource-integrity-fallback/tree/master/dist 83 | [9]: https://www.npmjs.com/package/subresource-integrity-fallback 84 | [10]: https://www.w3.org/TR/SRI/#proxies 85 | [11]: https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP 86 | 87 | ## Contributing/developing 88 | 89 | - Install dependencies: `npm install` 90 | - Build the `/dist` and serve the static files: `npm run serve` 91 | - Test/play with Cypress: `npm run cypress:open` 92 | -------------------------------------------------------------------------------- /cypress.json: -------------------------------------------------------------------------------- 1 | { 2 | "baseUrl": "http://localhost:8080/cypress/fixtures" 3 | } 4 | -------------------------------------------------------------------------------- /cypress/fixtures/compromised.js: -------------------------------------------------------------------------------- 1 | document.body.innerText = 'Compromised script loaded'; -------------------------------------------------------------------------------- /cypress/fixtures/fallback.js: -------------------------------------------------------------------------------- 1 | document.body.innerText = 'Fallback script loaded'; -------------------------------------------------------------------------------- /cypress/fixtures/original.js: -------------------------------------------------------------------------------- 1 | document.body.innerText = 'First script loaded'; -------------------------------------------------------------------------------- /cypress/fixtures/scenario-1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SRI test page 8 | 9 | 10 | 11 | Hello world 12 | 13 | 14 | -------------------------------------------------------------------------------- /cypress/fixtures/scenario-2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SRI test page 8 | 16 | 17 | 18 | 19 | Hello world 20 | 21 | 25 | -------------------------------------------------------------------------------- /cypress/fixtures/scenario-3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SRI test page 8 | 16 | 17 | 18 | 19 | Hello world 20 | 21 | 25 | -------------------------------------------------------------------------------- /cypress/fixtures/scenario-4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SRI test page 8 | 16 | 17 | 18 | 19 | Hello world 20 | 21 | 25 | -------------------------------------------------------------------------------- /cypress/fixtures/scenario-5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SRI test page 8 | 16 | 17 | 18 | 19 | Hello world 20 | 21 | 24 | -------------------------------------------------------------------------------- /cypress/fixtures/scenario-6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SRI test page 8 | 16 | 17 | 18 | 19 | Hello world 20 | 21 | 24 | 27 | -------------------------------------------------------------------------------- /cypress/integration/sri_spec.js: -------------------------------------------------------------------------------- 1 | /* 2 | Scenarios 3 | - fail SRI on first script and load fallback without SRI 4 | */ 5 | 6 | describe('Plain JS', function() { 7 | it('successfully loads original script', function() { 8 | cy.visit('scenario-1.html'); 9 | cy.contains('body', 'First script loaded'); 10 | }); 11 | }); 12 | 13 | describe('JS with valid SRI', function() { 14 | it('successfully loads original script', function() { 15 | cy.visit('scenario-2.html'); 16 | cy.contains('body', 'First script loaded'); 17 | }); 18 | }); 19 | 20 | describe('JS with invalid SRI, but valid fallback', function() { 21 | it('fails to load original script', function() { 22 | cy.visit('scenario-3.html'); 23 | cy.get('body').should('not.contain', 'First script loaded'); 24 | }); 25 | 26 | it('loads the fallback script', function() { 27 | cy.contains('body', 'Fallback script loaded'); 28 | }); 29 | 30 | it('does not execute the resourceLoadError callback', function() { 31 | cy.get('body').should('not.contain', 'resourceLoadError'); 32 | }); 33 | }); 34 | 35 | describe('JS with invalid SRI and fallback (invalid hash)', function() { 36 | it('fails to load original script', function() { 37 | cy.visit('scenario-4.html'); 38 | cy.get('body').should('not.contain', 'First script loaded'); 39 | }); 40 | 41 | it('fails to load the fallback script', function() { 42 | cy.get('body').should('not.contain', 'Fallback script loaded'); 43 | }); 44 | 45 | it('executes the resourceLoadError callback', function() { 46 | cy.contains('body', 'resourceLoadError'); 47 | cy.contains('body', 'Loading original and fallback failed'); 48 | }); 49 | }); 50 | 51 | describe('JS with invalid SRI (compromised file)', function() { 52 | it('fails to load original script', function() { 53 | cy.visit('scenario-5.html'); 54 | cy.get('body').should('not.contain', 'First script loaded'); 55 | }); 56 | 57 | it('executes the resourceLoadError callback', function() { 58 | cy.contains('body', 'resourceLoadError'); 59 | cy.contains('body', 'Loading original failed'); 60 | }); 61 | }); 62 | 63 | describe('Multiple JS files with SRI, one is compromised', function() { 64 | it('fails to load original script', function() { 65 | cy.visit('scenario-5.html'); 66 | cy.get('body').should('not.contain', 'First script loaded'); 67 | }); 68 | 69 | it('executes the resourceLoadError callback', function() { 70 | cy.contains('body', 'resourceLoadError'); 71 | cy.contains('body', 'Loading original failed'); 72 | }); 73 | }); 74 | -------------------------------------------------------------------------------- /dist/sri.min.js: -------------------------------------------------------------------------------- 1 | try{!function(){const t=window.resourceLoadError||(()=>{}),e="data-sri-fallback",r=window.MutationObserver||window.WebKitMutationObserver;r&&new r(function(t){t.forEach(function(t){t.addedNodes.forEach(i)})}).observe(document,{childList:!0,subtree:!0});const i=function(r){const i=(r.tagName||"").toLowerCase();"link"!==i&&"script"!==i||!r.integrity||r.getAttribute("data-sri-fallback-retry")||(r.onerror=function(o){if(r.getAttribute(e)){const o=document.createElement(i),n=r.parentNode;o.setAttribute("data-sri-fallback-retry","1"),o.setAttribute("integrity",r.integrity),r.src&&o.setAttribute("src",r.getAttribute(e)),r.href&&o.setAttribute("href",r.getAttribute(e)),o.onerror=function(e){t(e,!0)},n.appendChild(o),r.remove()}else t(o,!1)})}}()}catch(t){console.error(t)} -------------------------------------------------------------------------------- /docs/CNAME: -------------------------------------------------------------------------------- 1 | sri.js.org 2 | -------------------------------------------------------------------------------- /docs/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackuB/subresource-integrity-fallback/966d31fe9368375fb543e1ed30ca08ad400eb6fd/docs/android-chrome-192x192.png -------------------------------------------------------------------------------- /docs/android-chrome-256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackuB/subresource-integrity-fallback/966d31fe9368375fb543e1ed30ca08ad400eb6fd/docs/android-chrome-256x256.png -------------------------------------------------------------------------------- /docs/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackuB/subresource-integrity-fallback/966d31fe9368375fb543e1ed30ca08ad400eb6fd/docs/apple-touch-icon.png -------------------------------------------------------------------------------- /docs/browserconfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | #ffffff 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /docs/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackuB/subresource-integrity-fallback/966d31fe9368375fb543e1ed30ca08ad400eb6fd/docs/favicon-16x16.png -------------------------------------------------------------------------------- /docs/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackuB/subresource-integrity-fallback/966d31fe9368375fb543e1ed30ca08ad400eb6fd/docs/favicon-32x32.png -------------------------------------------------------------------------------- /docs/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackuB/subresource-integrity-fallback/966d31fe9368375fb543e1ed30ca08ad400eb6fd/docs/favicon.ico -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Subresource Integrity Fallback 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |

Subresource Integrity Fallback

20 | 21 |

What is Subresource Integrity

22 |

Subresource Integrity (SRI) is a security feature that ensures that resources client browser downloads and runs (JavaScript/CSS) haven't been tampered with.

23 | 24 |

SRI Browser support is on the rise and some CDNs include it in the best practices. All is sunshine and lollipops until you see this error in user's console:

25 | 26 |
27 | Failed Subresource Integrity check in Chrome 28 |
Failed Subresource Integrity check in Chrome
29 |
30 | 31 |

Guess what, nothing works. Nobody knows why. Rogue proxy? Optimalization proxy? Maybe your CDN is hacked or lying to you. Anyway, your resources are broken.

32 | 33 |

Fallback

34 |

If we don't want to leave user with an application in nonfunctioning state or at least provide the user some feedback on why application couldn't start, we need a fallback. So how can we handle tampered resource?

35 | 36 |

Strategy

37 |

Script is downloaded, but before its execution, SRI hash is checked against the downloaded resource. If hash check fails, error event is fired and resource is not executed. This error is not propagated to the window.onerror and afaik can't be distinguished from other errors. So we need to catch all of them.

38 | 39 |

To catch script/link errors, we can use onerror handler. But we need to hook it right as the resource is added to the DOM. For that we can use MutationObserver.

40 | 41 |

Fallback flow

42 |
    43 |
  1. Monitor DOM for a new script/link elements with integrity attribute
  2. 44 |
  3. Add onerror handler to those
  4. 45 |
  5. If onerror is fired, try to load fallback resource specified on the element
  6. 46 |
  7. When downloading fallback resource fails (or fallback is not available) script fires an event to notify user that something went wrong
  8. 47 |
48 | 49 |

How to use

50 |

Because we are trying to deal with unreliable CDN/network, all of the following code must be placed in the document itself and shouldn't be served from any remote location.

51 | 52 |

1) Add SRI fallback code to the header

53 |

Code must be placed before any resource using integrity attribute - ideally in <head>, since CSS link can also utilize integrity check. Its minified version (~0,4kb gzipped) is also on npm:

54 | 55 |

npm i subresource-integrity-fallback -S

56 | 57 |

2) Add resource fallback data attributes

58 |

Then you need to supply data-sri-fallback attribute on any resource with integrity check. Example use:

59 | 60 |
<script
 61 | src="https://cdn.example.com/app.js"
 62 | data-sri-fallback="https://example.com/app.js"
 63 | integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC"
 64 | crossorigin="anonymous"></script>
65 | 66 |

It might be a good idea to either serve fallback resources from same server that serves the actual page or setup a secondary CDN as a fallback.

67 | 68 |

3) Define a behavior on failure

69 |

Last missing piece is the window.resourceLoadError function, that will be called when resource with integrity check fails to load - as explained above, this reason can come either from normal network problems or resource tampering. Function will get error itself as an argument and boolean indicating whether fallback resource also failed. Function will be called for each failing resource.

70 | 71 |
// In the <head>
 72 | window.resourceLoadError = function(err, isRetry) {
 73 |   if (isRetry) {
 74 |     return letUserKnowAboutPossibleTampering(err);
 75 |   }
 76 |   return letUserKnowSomethingFailedToLoad(err);
 77 | }
 78 | // SRI Fallback code below this...
79 | 80 |

Other considerations

81 | 86 | 87 |

Big thanks to

88 | 92 | 93 |

Made by JM

94 |
95 | 96 | 105 | 106 | 107 | -------------------------------------------------------------------------------- /docs/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "SRI", 3 | "icons": [ 4 | { 5 | "src": "\/android-chrome-192x192.png", 6 | "sizes": "192x192", 7 | "type": "image\/png" 8 | }, 9 | { 10 | "src": "\/android-chrome-256x256.png", 11 | "sizes": "256x256", 12 | "type": "image\/png" 13 | } 14 | ], 15 | "theme_color": "#ffffff", 16 | "display": "standalone" 17 | } 18 | -------------------------------------------------------------------------------- /docs/markdown.css: -------------------------------------------------------------------------------- 1 | /** 2 | * GHColors theme by Avi Aryan (http://aviaryan.in) 3 | * Inspired by Github syntax coloring 4 | */ 5 | 6 | code[class*="language-"], 7 | pre[class*="language-"] { 8 | color: #393A34; 9 | font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace; 10 | direction: ltr; 11 | text-align: left; 12 | white-space: pre; 13 | word-spacing: normal; 14 | word-break: normal; 15 | font-size: 0.95em; 16 | line-height: 1.2em; 17 | 18 | -moz-tab-size: 4; 19 | -o-tab-size: 4; 20 | tab-size: 4; 21 | 22 | -webkit-hyphens: none; 23 | -moz-hyphens: none; 24 | -ms-hyphens: none; 25 | hyphens: none; 26 | } 27 | 28 | pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection, 29 | code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection { 30 | background: #b3d4fc; 31 | } 32 | 33 | pre[class*="language-"]::selection, pre[class*="language-"] ::selection, 34 | code[class*="language-"]::selection, code[class*="language-"] ::selection { 35 | background: #b3d4fc; 36 | } 37 | 38 | /* Code blocks */ 39 | pre[class*="language-"] { 40 | padding: 0; 41 | margin: 0; 42 | overflow: auto; 43 | background-color: white; 44 | } 45 | 46 | :not(pre) > code[class*="language-"], 47 | pre[class*="language-"] { 48 | } 49 | 50 | /* Inline code */ 51 | :not(pre) > code[class*="language-"] { 52 | padding: .2em; 53 | padding-top: 1px; padding-bottom: 1px; 54 | background: #f8f8f8; 55 | border: 1px solid #dddddd; 56 | } 57 | 58 | .token.comment, 59 | .token.prolog, 60 | .token.doctype, 61 | .token.cdata { 62 | color: #999988; font-style: italic; 63 | } 64 | 65 | .token.namespace { 66 | opacity: .7; 67 | } 68 | 69 | .token.string, 70 | .token.attr-value { 71 | color: #e3116c; 72 | } 73 | .token.punctuation, 74 | .token.operator { 75 | color: #393A34; /* no highlight */ 76 | } 77 | 78 | .token.entity, 79 | .token.url, 80 | .token.symbol, 81 | .token.number, 82 | .token.boolean, 83 | .token.variable, 84 | .token.constant, 85 | .token.property, 86 | .token.regex, 87 | .token.inserted { 88 | color: #36acaa; 89 | } 90 | 91 | .token.atrule, 92 | .token.keyword, 93 | .token.attr-name, 94 | .language-autohotkey .token.selector { 95 | color: #00a4db; 96 | } 97 | 98 | .token.function, 99 | .token.deleted, 100 | .language-autohotkey .token.tag { 101 | color: #9a050f; 102 | } 103 | 104 | .token.tag, 105 | .token.selector, 106 | .language-autohotkey .token.keyword { 107 | color: #00009f; 108 | } 109 | 110 | .token.important, 111 | .token.function, 112 | .token.bold { 113 | font-weight: bold; 114 | } 115 | 116 | .token.italic { 117 | font-style: italic; 118 | } 119 | 120 | body{margin:0;padding:20px 40px;font-family:consolas,monaco,courier,"courier new",fixed-width;color:#333;font-size:14px;background:#fff;line-height:1.55}img{max-width:100%}figure{margin:0}figcaption{color:rgba(88,88,88,0.5);font-size:80%}main{word-wrap:break-word;max-width:450px;margin:15px auto}a{color:#7fc8ff;text-decoration:none;font-weight:600;}a:hover{text-decoration:underline;}a:hover:before,a:hover:after{color:rgba(88,88,88,0.5);text-decoration:none}h1,h2,h3,h4,h5,h6,pre,code,blockquote,em,strong{font-size:14px;line-height:20px;font-weight:normal;font-style:normal}h1,h2,h3,h4,h5,h6,pre,code,blockquote,ol,ul,li,p,section,header,footer{float:none;margin:0;padding:0}h1,p,ul,ol,pre,blockquote{margin-top:20px;margin-bottom:20px}h1{position:relative;display:inline-block;display:table-cell;padding:20px 0 40px;margin:0;overflow:hidden;font-weight:600}h1:after{content:"====================================================================================================";position:absolute;bottom:20px;left:0;color:#7fc8ff;font-weight:300}h1 + *{margin-top:0}h2,h3,h4,h5,h6{position:relative;margin-bottom:20px;margin-top:20px;font-weight:900;}h2:before,h3:before,h4:before,h5:before,h6:before{content:"## ";color:rgba(88,88,88,0.29);position:absolute;display:block;left:-25px}h3:before{content:"### ";left:-33px}li{position:relative;display:block;padding-left:34px;padding-left:4ch}li:after{position:absolute;top:0;left:0}ul > li:after{content:"*"}ol{counter-reset:ol}ol > li:after{content:counter(ol) ".";counter-increment:ol}pre{margin-left:34px;padding-left:4ch}blockquote{position:relative;padding-left:17px;padding-left:2ch;overflow:hidden}blockquote:after{content:">\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>";white-space:pre;position:absolute;top:0;left:0;font-size:14px;line-height:20px}strong{font-weight:900;}strong:before,strong:after{content:"**";display:inline;font-weight:900}em{font-style:italic;}em:before,em:after{content:"_";display:inline}code{font-weight:100}code:before,code:after{content:"`";display:inline}pre code:before,pre code:after{content:none} -------------------------------------------------------------------------------- /docs/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackuB/subresource-integrity-fallback/966d31fe9368375fb543e1ed30ca08ad400eb6fd/docs/mstile-150x150.png -------------------------------------------------------------------------------- /docs/prism.js: -------------------------------------------------------------------------------- 1 | /* http://prismjs.com/download.html?themes=prism&languages=markup+css+clike+javascript */ 2 | var _self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},Prism=function(){var e=/\blang(?:uage)?-(\w+)\b/i,t=0,n=_self.Prism={util:{encode:function(e){return e instanceof a?new a(e.type,n.util.encode(e.content),e.alias):"Array"===n.util.type(e)?e.map(n.util.encode):e.replace(/&/g,"&").replace(/e.length)break e;if(!(v instanceof a)){u.lastIndex=0;var b=u.exec(v),k=1;if(!b&&h&&m!=r.length-1){if(u.lastIndex=y,b=u.exec(e),!b)break;for(var w=b.index+(c?b[1].length:0),_=b.index+b[0].length,A=m,P=y,j=r.length;j>A&&_>P;++A)P+=r[A].length,w>=P&&(++m,y=P);if(r[m]instanceof a||r[A-1].greedy)continue;k=A-m,v=e.slice(y,P),b.index-=y}if(b){c&&(f=b[1].length);var w=b.index+f,b=b[0].slice(f),_=w+b.length,x=v.slice(0,w),O=v.slice(_),S=[m,k];x&&S.push(x);var N=new a(l,g?n.tokenize(b,g):b,d,b,h);S.push(N),O&&S.push(O),Array.prototype.splice.apply(r,S)}}}}}return r},hooks:{all:{},add:function(e,t){var a=n.hooks.all;a[e]=a[e]||[],a[e].push(t)},run:function(e,t){var a=n.hooks.all[e];if(a&&a.length)for(var r,i=0;r=a[i++];)r(t)}}},a=n.Token=function(e,t,n,a,r){this.type=e,this.content=t,this.alias=n,this.length=0|(a||"").length,this.greedy=!!r};if(a.stringify=function(e,t,r){if("string"==typeof e)return e;if("Array"===n.util.type(e))return e.map(function(n){return a.stringify(n,t,e)}).join("");var i={type:e.type,content:a.stringify(e.content,t,r),tag:"span",classes:["token",e.type],attributes:{},language:t,parent:r};if("comment"==i.type&&(i.attributes.spellcheck="true"),e.alias){var l="Array"===n.util.type(e.alias)?e.alias:[e.alias];Array.prototype.push.apply(i.classes,l)}n.hooks.run("wrap",i);var o=Object.keys(i.attributes).map(function(e){return e+'="'+(i.attributes[e]||"").replace(/"/g,""")+'"'}).join(" ");return"<"+i.tag+' class="'+i.classes.join(" ")+'"'+(o?" "+o:"")+">"+i.content+""},!_self.document)return _self.addEventListener?(_self.addEventListener("message",function(e){var t=JSON.parse(e.data),a=t.language,r=t.code,i=t.immediateClose;_self.postMessage(n.highlight(r,n.languages[a],a)),i&&_self.close()},!1),_self.Prism):_self.Prism;var r=document.currentScript||[].slice.call(document.getElementsByTagName("script")).pop();return r&&(n.filename=r.src,document.addEventListener&&!r.hasAttribute("data-manual")&&("loading"!==document.readyState?window.requestAnimationFrame?window.requestAnimationFrame(n.highlightAll):window.setTimeout(n.highlightAll,16):document.addEventListener("DOMContentLoaded",n.highlightAll))),_self.Prism}();"undefined"!=typeof module&&module.exports&&(module.exports=Prism),"undefined"!=typeof global&&(global.Prism=Prism); 3 | Prism.languages.markup={comment://,prolog:/<\?[\w\W]+?\?>/,doctype://i,cdata://i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\\1|\\?(?!\1)[\w\W])*\1|[^\s'">=]+))?)*\s*\/?>/i,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=(?:('|")[\w\W]*?(\1)|[^\s>]+)/i,inside:{punctuation:/[=>"']/}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i},Prism.hooks.add("wrap",function(a){"entity"===a.type&&(a.attributes.title=a.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; 4 | Prism.languages.css={comment:/\/\*[\w\W]*?\*\//,atrule:{pattern:/@[\w-]+?.*?(;|(?=\s*\{))/i,inside:{rule:/@[\w-]+/}},url:/url\((?:(["'])(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1|.*?)\)/i,selector:/[^\{\}\s][^\{\};]*?(?=\s*\{)/,string:{pattern:/("|')(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1/,greedy:!0},property:/(\b|\B)[\w-]+(?=\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),Prism.languages.markup&&(Prism.languages.insertBefore("markup","tag",{style:{pattern:/()[\w\W]*?(?=<\/style>)/i,lookbehind:!0,inside:Prism.languages.css,alias:"language-css"}}),Prism.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|').*?\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)); 5 | Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\w\W]*?\*\//,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+\())[a-z0-9_\.\\]+/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:/[{}[\];(),.:]/}; 6 | 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-?(0x[\dA-Fa-f]+|0b[01]+|0o[0-7]+|\d*\.?\d+([Ee][+-]?\d+)?|NaN|Infinity)\b/,"function":/[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*(?=\()/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*\*?|\/|~|\^|%|\.{3}/}),Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/(^|[^\/])\/(?!\/)(\[.+?]|\\.|[^\/\\\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})]))/,lookbehind:!0,greedy:!0}}),Prism.languages.insertBefore("javascript","string",{"template-string":{pattern:/`(?:\\\\|\\?[^\\])*?`/,greedy:!0,inside:{interpolation:{pattern:/\$\{[^}]+\}/,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}}}),Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{script:{pattern:/()[\w\W]*?(?=<\/script>)/i,lookbehind:!0,inside:Prism.languages.javascript,alias:"language-javascript"}}),Prism.languages.js=Prism.languages.javascript; 7 | -------------------------------------------------------------------------------- /docs/safari-pinned-tab.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | Created by potrace 1.11, written by Peter Selinger 2001-2013 9 | 10 | 12 | 19 | 24 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /docs/sri-issue-chrome.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackuB/subresource-integrity-fallback/966d31fe9368375fb543e1ed30ca08ad400eb6fd/docs/sri-issue-chrome.jpg -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "subresource-integrity-fallback", 3 | "version": "0.0.0-development", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@cypress/listr-verbose-renderer": { 8 | "version": "0.4.1", 9 | "resolved": "https://registry.npmjs.org/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz", 10 | "integrity": "sha1-p3SS9LEdzHxEajSz4ochr9M8ZCo=", 11 | "dev": true, 12 | "requires": { 13 | "chalk": "^1.1.3", 14 | "cli-cursor": "^1.0.2", 15 | "date-fns": "^1.27.2", 16 | "figures": "^1.7.0" 17 | }, 18 | "dependencies": { 19 | "ansi-styles": { 20 | "version": "2.2.1", 21 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 22 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", 23 | "dev": true 24 | }, 25 | "chalk": { 26 | "version": "1.1.3", 27 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 28 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 29 | "dev": true, 30 | "requires": { 31 | "ansi-styles": "^2.2.1", 32 | "escape-string-regexp": "^1.0.2", 33 | "has-ansi": "^2.0.0", 34 | "strip-ansi": "^3.0.0", 35 | "supports-color": "^2.0.0" 36 | } 37 | }, 38 | "supports-color": { 39 | "version": "2.0.0", 40 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 41 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", 42 | "dev": true 43 | } 44 | } 45 | }, 46 | "@cypress/xvfb": { 47 | "version": "1.2.3", 48 | "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.3.tgz", 49 | "integrity": "sha512-yYrK+/bgL3hwoRHMZG4r5fyLniCy1pXex5fimtewAY6vE/jsVs8Q37UsEO03tFlcmiLnQ3rBNMaZBYTi/+C1cw==", 50 | "dev": true, 51 | "requires": { 52 | "debug": "^3.1.0", 53 | "lodash.once": "^4.1.1" 54 | } 55 | }, 56 | "@semantic-release/commit-analyzer": { 57 | "version": "3.0.7", 58 | "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-3.0.7.tgz", 59 | "integrity": "sha512-bxCvvDsZeQp6Fvev8CdAV4pu9rEt8NOuLIFS0E8RLjKRnqQVL/fGAwpQWnRQ5hc08UZroguBNEENWpKBubWmKQ==", 60 | "dev": true, 61 | "requires": { 62 | "@semantic-release/error": "^2.0.0", 63 | "conventional-changelog-angular": "^1.4.0", 64 | "conventional-commits-parser": "^2.0.0", 65 | "import-from": "^2.1.0", 66 | "lodash": "^4.17.4", 67 | "pify": "^3.0.0" 68 | } 69 | }, 70 | "@semantic-release/condition-travis": { 71 | "version": "6.2.1", 72 | "resolved": "https://registry.npmjs.org/@semantic-release/condition-travis/-/condition-travis-6.2.1.tgz", 73 | "integrity": "sha512-0g8O/OObhqjAotztjPjMJ43I6oX05z/Ffdu6HMsScDgLX1+QQzq5w0HnUxjmiXUGNwqi5M6s7BF65ZKHbGOytQ==", 74 | "dev": true, 75 | "requires": { 76 | "@semantic-release/error": "^2.0.0", 77 | "github": "^12.0.0", 78 | "parse-github-repo-url": "^1.4.1", 79 | "semver": "^5.0.3", 80 | "travis-deploy-once": "^3.0.0" 81 | } 82 | }, 83 | "@semantic-release/error": { 84 | "version": "2.2.0", 85 | "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-2.2.0.tgz", 86 | "integrity": "sha512-9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg==", 87 | "dev": true 88 | }, 89 | "@semantic-release/last-release-npm": { 90 | "version": "2.0.2", 91 | "resolved": "https://registry.npmjs.org/@semantic-release/last-release-npm/-/last-release-npm-2.0.2.tgz", 92 | "integrity": "sha512-ge5AWWtcrEd6GeG4tsv8gx774G9aPNrrornjBBqNDqN7Eg/xI914ftcnmSgnsbmKcqmq4g+QElIJhNMvsfpOkQ==", 93 | "dev": true, 94 | "requires": { 95 | "@semantic-release/error": "^2.0.0", 96 | "npm-registry-client": "^8.4.0", 97 | "npmlog": "^4.0.0" 98 | } 99 | }, 100 | "@semantic-release/release-notes-generator": { 101 | "version": "4.0.5", 102 | "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-4.0.5.tgz", 103 | "integrity": "sha512-LznqPnifl8jtQkV5ZXnQbqMLx9QROoX5d/FLteLyKy3AznLSubm5rH0LndKvf9ZI8XU8jwgLYu+wbLAEIR2PPg==", 104 | "dev": true, 105 | "requires": { 106 | "@semantic-release/error": "^2.0.0", 107 | "conventional-changelog-angular": "^1.4.0", 108 | "conventional-changelog-core": "^1.9.0", 109 | "get-stream": "^3.0.0", 110 | "import-from": "^2.1.0", 111 | "lodash": "^4.17.4", 112 | "pify": "^3.0.0" 113 | } 114 | }, 115 | "@sindresorhus/is": { 116 | "version": "0.7.0", 117 | "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", 118 | "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==", 119 | "dev": true 120 | }, 121 | "@types/blob-util": { 122 | "version": "1.3.3", 123 | "resolved": "https://registry.npmjs.org/@types/blob-util/-/blob-util-1.3.3.tgz", 124 | "integrity": "sha512-4ahcL/QDnpjWA2Qs16ZMQif7HjGP2cw3AGjHabybjw7Vm1EKu+cfQN1D78BaZbS1WJNa1opSMF5HNMztx7lR0w==", 125 | "dev": true 126 | }, 127 | "@types/bluebird": { 128 | "version": "3.5.18", 129 | "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.18.tgz", 130 | "integrity": "sha512-OTPWHmsyW18BhrnG5x8F7PzeZ2nFxmHGb42bZn79P9hl+GI5cMzyPgQTwNjbem0lJhoru/8vtjAFCUOu3+gE2w==", 131 | "dev": true 132 | }, 133 | "@types/chai": { 134 | "version": "4.0.8", 135 | "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.0.8.tgz", 136 | "integrity": "sha512-m812CONwdZn/dMzkIJEY0yAs4apyTkTORgfB2UsMOxgkUbC205AHnm4T8I0I5gPg9MHrFc1dJ35iS75c0CJkjg==", 137 | "dev": true 138 | }, 139 | "@types/chai-jquery": { 140 | "version": "1.1.35", 141 | "resolved": "https://registry.npmjs.org/@types/chai-jquery/-/chai-jquery-1.1.35.tgz", 142 | "integrity": "sha512-7aIt9QMRdxuagLLI48dPz96YJdhu64p6FCa6n4qkGN5DQLHnrIjZpD9bXCvV2G0NwgZ1FAmfP214dxc5zNCfgQ==", 143 | "dev": true, 144 | "requires": { 145 | "@types/chai": "*", 146 | "@types/jquery": "*" 147 | } 148 | }, 149 | "@types/jquery": { 150 | "version": "3.3.6", 151 | "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.3.6.tgz", 152 | "integrity": "sha512-403D4wN95Mtzt2EoQHARf5oe/jEPhzBOBNrunk+ydQGW8WmkQ/E8rViRAEB1qEt/vssfGfNVD6ujP4FVeegrLg==", 153 | "dev": true 154 | }, 155 | "@types/lodash": { 156 | "version": "4.14.87", 157 | "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.87.tgz", 158 | "integrity": "sha512-AqRC+aEF4N0LuNHtcjKtvF9OTfqZI0iaBoe3dA6m/W+/YZJBZjBmW/QIZ8fBeXC6cnytSY9tBoFBqZ9uSCeVsw==", 159 | "dev": true 160 | }, 161 | "@types/minimatch": { 162 | "version": "3.0.3", 163 | "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", 164 | "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", 165 | "dev": true 166 | }, 167 | "@types/mocha": { 168 | "version": "2.2.44", 169 | "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-2.2.44.tgz", 170 | "integrity": "sha512-k2tWTQU8G4+iSMvqKi0Q9IIsWAp/n8xzdZS4Q4YVIltApoMA00wFBFdlJnmoaK1/z7B0Cy0yPe6GgXteSmdUNw==", 171 | "dev": true 172 | }, 173 | "@types/sinon": { 174 | "version": "7.0.0", 175 | "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-7.0.0.tgz", 176 | "integrity": "sha512-kcYoPw0uKioFVC/oOqafk2yizSceIQXCYnkYts9vJIwQklFRsMubTObTDrjQamUyBRd47332s85074cd/hCwxg==", 177 | "dev": true 178 | }, 179 | "@types/sinon-chai": { 180 | "version": "3.2.2", 181 | "resolved": "https://registry.npmjs.org/@types/sinon-chai/-/sinon-chai-3.2.2.tgz", 182 | "integrity": "sha512-5zSs2AslzyPZdOsbm2NRtuSNAI2aTWzNKOHa/GRecKo7a5efYD7qGcPxMZXQDayVXT2Vnd5waXxBvV31eCZqiA==", 183 | "dev": true, 184 | "requires": { 185 | "@types/chai": "*", 186 | "@types/sinon": "*" 187 | } 188 | }, 189 | "JSONStream": { 190 | "version": "1.3.5", 191 | "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", 192 | "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", 193 | "dev": true, 194 | "requires": { 195 | "jsonparse": "^1.2.0", 196 | "through": ">=2.2.7 <3" 197 | } 198 | }, 199 | "abbrev": { 200 | "version": "1.1.1", 201 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", 202 | "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", 203 | "dev": true 204 | }, 205 | "agent-base": { 206 | "version": "4.2.1", 207 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", 208 | "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", 209 | "dev": true, 210 | "requires": { 211 | "es6-promisify": "^5.0.0" 212 | } 213 | }, 214 | "ajv": { 215 | "version": "6.8.1", 216 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.8.1.tgz", 217 | "integrity": "sha512-eqxCp82P+JfqL683wwsL73XmFs1eG6qjw+RD3YHx+Jll1r0jNd4dh8QG9NYAeNGA/hnZjeEDgtTskgJULbxpWQ==", 218 | "dev": true, 219 | "requires": { 220 | "fast-deep-equal": "^2.0.1", 221 | "fast-json-stable-stringify": "^2.0.0", 222 | "json-schema-traverse": "^0.4.1", 223 | "uri-js": "^4.2.2" 224 | } 225 | }, 226 | "ansi-escapes": { 227 | "version": "1.4.0", 228 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", 229 | "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", 230 | "dev": true 231 | }, 232 | "ansi-regex": { 233 | "version": "2.1.1", 234 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 235 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 236 | "dev": true 237 | }, 238 | "ansi-styles": { 239 | "version": "3.2.1", 240 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 241 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 242 | "dev": true, 243 | "requires": { 244 | "color-convert": "^1.9.0" 245 | } 246 | }, 247 | "aproba": { 248 | "version": "1.2.0", 249 | "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", 250 | "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", 251 | "dev": true 252 | }, 253 | "are-we-there-yet": { 254 | "version": "1.1.5", 255 | "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", 256 | "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", 257 | "dev": true, 258 | "requires": { 259 | "delegates": "^1.0.0", 260 | "readable-stream": "^2.0.6" 261 | } 262 | }, 263 | "array-find-index": { 264 | "version": "1.0.2", 265 | "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", 266 | "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", 267 | "dev": true 268 | }, 269 | "array-ify": { 270 | "version": "1.0.0", 271 | "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", 272 | "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=", 273 | "dev": true 274 | }, 275 | "arrify": { 276 | "version": "1.0.1", 277 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", 278 | "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", 279 | "dev": true 280 | }, 281 | "asn1": { 282 | "version": "0.2.4", 283 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", 284 | "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", 285 | "dev": true, 286 | "requires": { 287 | "safer-buffer": "~2.1.0" 288 | } 289 | }, 290 | "assert-plus": { 291 | "version": "1.0.0", 292 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 293 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 294 | "dev": true 295 | }, 296 | "async": { 297 | "version": "2.6.1", 298 | "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", 299 | "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", 300 | "dev": true, 301 | "requires": { 302 | "lodash": "^4.17.10" 303 | } 304 | }, 305 | "asynckit": { 306 | "version": "0.4.0", 307 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 308 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", 309 | "dev": true 310 | }, 311 | "aws-sign2": { 312 | "version": "0.7.0", 313 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", 314 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", 315 | "dev": true 316 | }, 317 | "aws4": { 318 | "version": "1.8.0", 319 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", 320 | "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", 321 | "dev": true 322 | }, 323 | "babel-runtime": { 324 | "version": "6.26.0", 325 | "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", 326 | "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", 327 | "dev": true, 328 | "requires": { 329 | "core-js": "^2.4.0", 330 | "regenerator-runtime": "^0.11.0" 331 | } 332 | }, 333 | "balanced-match": { 334 | "version": "1.0.0", 335 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 336 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 337 | "dev": true 338 | }, 339 | "bcrypt-pbkdf": { 340 | "version": "1.0.2", 341 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", 342 | "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", 343 | "dev": true, 344 | "requires": { 345 | "tweetnacl": "^0.14.3" 346 | } 347 | }, 348 | "bluebird": { 349 | "version": "3.5.0", 350 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", 351 | "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=", 352 | "dev": true 353 | }, 354 | "brace-expansion": { 355 | "version": "1.1.11", 356 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 357 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 358 | "dev": true, 359 | "requires": { 360 | "balanced-match": "^1.0.0", 361 | "concat-map": "0.0.1" 362 | } 363 | }, 364 | "buffer-crc32": { 365 | "version": "0.2.13", 366 | "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", 367 | "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", 368 | "dev": true 369 | }, 370 | "buffer-from": { 371 | "version": "1.1.1", 372 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", 373 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", 374 | "dev": true 375 | }, 376 | "builtins": { 377 | "version": "1.0.3", 378 | "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", 379 | "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", 380 | "dev": true 381 | }, 382 | "cacheable-request": { 383 | "version": "2.1.4", 384 | "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", 385 | "integrity": "sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=", 386 | "dev": true, 387 | "requires": { 388 | "clone-response": "1.0.2", 389 | "get-stream": "3.0.0", 390 | "http-cache-semantics": "3.8.1", 391 | "keyv": "3.0.0", 392 | "lowercase-keys": "1.0.0", 393 | "normalize-url": "2.0.1", 394 | "responselike": "1.0.2" 395 | }, 396 | "dependencies": { 397 | "lowercase-keys": { 398 | "version": "1.0.0", 399 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", 400 | "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=", 401 | "dev": true 402 | } 403 | } 404 | }, 405 | "cachedir": { 406 | "version": "1.3.0", 407 | "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-1.3.0.tgz", 408 | "integrity": "sha512-O1ji32oyON9laVPJL1IZ5bmwd2cB46VfpxkDequezH+15FDzzVddEyrGEeX4WusDSqKxdyFdDQDEG1yo1GoWkg==", 409 | "dev": true, 410 | "requires": { 411 | "os-homedir": "^1.0.1" 412 | } 413 | }, 414 | "camelcase": { 415 | "version": "4.1.0", 416 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", 417 | "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", 418 | "dev": true 419 | }, 420 | "camelcase-keys": { 421 | "version": "4.2.0", 422 | "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", 423 | "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", 424 | "dev": true, 425 | "requires": { 426 | "camelcase": "^4.1.0", 427 | "map-obj": "^2.0.0", 428 | "quick-lru": "^1.0.0" 429 | } 430 | }, 431 | "caseless": { 432 | "version": "0.12.0", 433 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 434 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", 435 | "dev": true 436 | }, 437 | "chalk": { 438 | "version": "2.4.2", 439 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 440 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 441 | "dev": true, 442 | "requires": { 443 | "ansi-styles": "^3.2.1", 444 | "escape-string-regexp": "^1.0.5", 445 | "supports-color": "^5.3.0" 446 | } 447 | }, 448 | "check-more-types": { 449 | "version": "2.24.0", 450 | "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", 451 | "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", 452 | "dev": true 453 | }, 454 | "ci-info": { 455 | "version": "1.6.0", 456 | "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", 457 | "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", 458 | "dev": true 459 | }, 460 | "cli-cursor": { 461 | "version": "1.0.2", 462 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", 463 | "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", 464 | "dev": true, 465 | "requires": { 466 | "restore-cursor": "^1.0.1" 467 | } 468 | }, 469 | "cli-spinners": { 470 | "version": "0.1.2", 471 | "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-0.1.2.tgz", 472 | "integrity": "sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw=", 473 | "dev": true 474 | }, 475 | "cli-truncate": { 476 | "version": "0.2.1", 477 | "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", 478 | "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=", 479 | "dev": true, 480 | "requires": { 481 | "slice-ansi": "0.0.4", 482 | "string-width": "^1.0.1" 483 | } 484 | }, 485 | "clone-response": { 486 | "version": "1.0.2", 487 | "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", 488 | "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", 489 | "dev": true, 490 | "requires": { 491 | "mimic-response": "^1.0.0" 492 | } 493 | }, 494 | "co": { 495 | "version": "4.6.0", 496 | "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", 497 | "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", 498 | "dev": true 499 | }, 500 | "code-point-at": { 501 | "version": "1.1.0", 502 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", 503 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", 504 | "dev": true 505 | }, 506 | "color-convert": { 507 | "version": "1.9.3", 508 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 509 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 510 | "dev": true, 511 | "requires": { 512 | "color-name": "1.1.3" 513 | } 514 | }, 515 | "color-name": { 516 | "version": "1.1.3", 517 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 518 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 519 | "dev": true 520 | }, 521 | "colors": { 522 | "version": "1.0.3", 523 | "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", 524 | "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", 525 | "dev": true 526 | }, 527 | "combined-stream": { 528 | "version": "1.0.7", 529 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", 530 | "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", 531 | "dev": true, 532 | "requires": { 533 | "delayed-stream": "~1.0.0" 534 | } 535 | }, 536 | "commander": { 537 | "version": "2.17.1", 538 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", 539 | "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", 540 | "dev": true 541 | }, 542 | "common-tags": { 543 | "version": "1.4.0", 544 | "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.4.0.tgz", 545 | "integrity": "sha1-EYe+Tz1M8MBCfUP3Tu8fc1AWFMA=", 546 | "dev": true, 547 | "requires": { 548 | "babel-runtime": "^6.18.0" 549 | } 550 | }, 551 | "compare-func": { 552 | "version": "1.3.2", 553 | "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz", 554 | "integrity": "sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg=", 555 | "dev": true, 556 | "requires": { 557 | "array-ify": "^1.0.0", 558 | "dot-prop": "^3.0.0" 559 | } 560 | }, 561 | "concat-map": { 562 | "version": "0.0.1", 563 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 564 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 565 | "dev": true 566 | }, 567 | "concat-stream": { 568 | "version": "1.6.2", 569 | "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", 570 | "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", 571 | "dev": true, 572 | "requires": { 573 | "buffer-from": "^1.0.0", 574 | "inherits": "^2.0.3", 575 | "readable-stream": "^2.2.2", 576 | "typedarray": "^0.0.6" 577 | } 578 | }, 579 | "config-chain": { 580 | "version": "1.1.12", 581 | "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", 582 | "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", 583 | "dev": true, 584 | "requires": { 585 | "ini": "^1.3.4", 586 | "proto-list": "~1.2.1" 587 | } 588 | }, 589 | "console-control-strings": { 590 | "version": "1.1.0", 591 | "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", 592 | "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", 593 | "dev": true 594 | }, 595 | "conventional-changelog-angular": { 596 | "version": "1.6.6", 597 | "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-1.6.6.tgz", 598 | "integrity": "sha512-suQnFSqCxRwyBxY68pYTsFkG0taIdinHLNEAX5ivtw8bCRnIgnpvcHmlR/yjUyZIrNPYAoXlY1WiEKWgSE4BNg==", 599 | "dev": true, 600 | "requires": { 601 | "compare-func": "^1.3.1", 602 | "q": "^1.5.1" 603 | } 604 | }, 605 | "conventional-changelog-core": { 606 | "version": "1.9.5", 607 | "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-1.9.5.tgz", 608 | "integrity": "sha1-XbdWba18DLddr0f7spdve/mSjB0=", 609 | "dev": true, 610 | "requires": { 611 | "conventional-changelog-writer": "^2.0.3", 612 | "conventional-commits-parser": "^2.1.0", 613 | "dateformat": "^1.0.12", 614 | "get-pkg-repo": "^1.0.0", 615 | "git-raw-commits": "^1.3.0", 616 | "git-remote-origin-url": "^2.0.0", 617 | "git-semver-tags": "^1.2.3", 618 | "lodash": "^4.0.0", 619 | "normalize-package-data": "^2.3.5", 620 | "q": "^1.4.1", 621 | "read-pkg": "^1.1.0", 622 | "read-pkg-up": "^1.0.1", 623 | "through2": "^2.0.0" 624 | }, 625 | "dependencies": { 626 | "find-up": { 627 | "version": "1.1.2", 628 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", 629 | "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", 630 | "dev": true, 631 | "requires": { 632 | "path-exists": "^2.0.0", 633 | "pinkie-promise": "^2.0.0" 634 | } 635 | }, 636 | "load-json-file": { 637 | "version": "1.1.0", 638 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", 639 | "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", 640 | "dev": true, 641 | "requires": { 642 | "graceful-fs": "^4.1.2", 643 | "parse-json": "^2.2.0", 644 | "pify": "^2.0.0", 645 | "pinkie-promise": "^2.0.0", 646 | "strip-bom": "^2.0.0" 647 | } 648 | }, 649 | "parse-json": { 650 | "version": "2.2.0", 651 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", 652 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", 653 | "dev": true, 654 | "requires": { 655 | "error-ex": "^1.2.0" 656 | } 657 | }, 658 | "path-exists": { 659 | "version": "2.1.0", 660 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", 661 | "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", 662 | "dev": true, 663 | "requires": { 664 | "pinkie-promise": "^2.0.0" 665 | } 666 | }, 667 | "path-type": { 668 | "version": "1.1.0", 669 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", 670 | "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", 671 | "dev": true, 672 | "requires": { 673 | "graceful-fs": "^4.1.2", 674 | "pify": "^2.0.0", 675 | "pinkie-promise": "^2.0.0" 676 | } 677 | }, 678 | "pify": { 679 | "version": "2.3.0", 680 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 681 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 682 | "dev": true 683 | }, 684 | "read-pkg": { 685 | "version": "1.1.0", 686 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", 687 | "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", 688 | "dev": true, 689 | "requires": { 690 | "load-json-file": "^1.0.0", 691 | "normalize-package-data": "^2.3.2", 692 | "path-type": "^1.0.0" 693 | } 694 | }, 695 | "read-pkg-up": { 696 | "version": "1.0.1", 697 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", 698 | "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", 699 | "dev": true, 700 | "requires": { 701 | "find-up": "^1.0.0", 702 | "read-pkg": "^1.0.0" 703 | } 704 | }, 705 | "strip-bom": { 706 | "version": "2.0.0", 707 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", 708 | "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", 709 | "dev": true, 710 | "requires": { 711 | "is-utf8": "^0.2.0" 712 | } 713 | } 714 | } 715 | }, 716 | "conventional-changelog-writer": { 717 | "version": "2.0.3", 718 | "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-2.0.3.tgz", 719 | "integrity": "sha512-2E1h7UXL0fhRO5h0CxDZ5EBc5sfBZEQePvuZ+gPvApiRrICUyNDy/NQIP+2TBd4wKZQf2Zm7TxbzXHG5HkPIbA==", 720 | "dev": true, 721 | "requires": { 722 | "compare-func": "^1.3.1", 723 | "conventional-commits-filter": "^1.1.1", 724 | "dateformat": "^1.0.11", 725 | "handlebars": "^4.0.2", 726 | "json-stringify-safe": "^5.0.1", 727 | "lodash": "^4.0.0", 728 | "meow": "^3.3.0", 729 | "semver": "^5.0.1", 730 | "split": "^1.0.0", 731 | "through2": "^2.0.0" 732 | }, 733 | "dependencies": { 734 | "camelcase": { 735 | "version": "2.1.1", 736 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", 737 | "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", 738 | "dev": true 739 | }, 740 | "camelcase-keys": { 741 | "version": "2.1.0", 742 | "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", 743 | "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", 744 | "dev": true, 745 | "requires": { 746 | "camelcase": "^2.0.0", 747 | "map-obj": "^1.0.0" 748 | } 749 | }, 750 | "find-up": { 751 | "version": "1.1.2", 752 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", 753 | "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", 754 | "dev": true, 755 | "requires": { 756 | "path-exists": "^2.0.0", 757 | "pinkie-promise": "^2.0.0" 758 | } 759 | }, 760 | "indent-string": { 761 | "version": "2.1.0", 762 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", 763 | "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", 764 | "dev": true, 765 | "requires": { 766 | "repeating": "^2.0.0" 767 | } 768 | }, 769 | "load-json-file": { 770 | "version": "1.1.0", 771 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", 772 | "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", 773 | "dev": true, 774 | "requires": { 775 | "graceful-fs": "^4.1.2", 776 | "parse-json": "^2.2.0", 777 | "pify": "^2.0.0", 778 | "pinkie-promise": "^2.0.0", 779 | "strip-bom": "^2.0.0" 780 | } 781 | }, 782 | "map-obj": { 783 | "version": "1.0.1", 784 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", 785 | "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", 786 | "dev": true 787 | }, 788 | "meow": { 789 | "version": "3.7.0", 790 | "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", 791 | "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", 792 | "dev": true, 793 | "requires": { 794 | "camelcase-keys": "^2.0.0", 795 | "decamelize": "^1.1.2", 796 | "loud-rejection": "^1.0.0", 797 | "map-obj": "^1.0.1", 798 | "minimist": "^1.1.3", 799 | "normalize-package-data": "^2.3.4", 800 | "object-assign": "^4.0.1", 801 | "read-pkg-up": "^1.0.1", 802 | "redent": "^1.0.0", 803 | "trim-newlines": "^1.0.0" 804 | } 805 | }, 806 | "parse-json": { 807 | "version": "2.2.0", 808 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", 809 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", 810 | "dev": true, 811 | "requires": { 812 | "error-ex": "^1.2.0" 813 | } 814 | }, 815 | "path-exists": { 816 | "version": "2.1.0", 817 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", 818 | "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", 819 | "dev": true, 820 | "requires": { 821 | "pinkie-promise": "^2.0.0" 822 | } 823 | }, 824 | "path-type": { 825 | "version": "1.1.0", 826 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", 827 | "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", 828 | "dev": true, 829 | "requires": { 830 | "graceful-fs": "^4.1.2", 831 | "pify": "^2.0.0", 832 | "pinkie-promise": "^2.0.0" 833 | } 834 | }, 835 | "pify": { 836 | "version": "2.3.0", 837 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 838 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 839 | "dev": true 840 | }, 841 | "read-pkg": { 842 | "version": "1.1.0", 843 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", 844 | "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", 845 | "dev": true, 846 | "requires": { 847 | "load-json-file": "^1.0.0", 848 | "normalize-package-data": "^2.3.2", 849 | "path-type": "^1.0.0" 850 | } 851 | }, 852 | "read-pkg-up": { 853 | "version": "1.0.1", 854 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", 855 | "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", 856 | "dev": true, 857 | "requires": { 858 | "find-up": "^1.0.0", 859 | "read-pkg": "^1.0.0" 860 | } 861 | }, 862 | "redent": { 863 | "version": "1.0.0", 864 | "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", 865 | "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", 866 | "dev": true, 867 | "requires": { 868 | "indent-string": "^2.1.0", 869 | "strip-indent": "^1.0.1" 870 | } 871 | }, 872 | "strip-bom": { 873 | "version": "2.0.0", 874 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", 875 | "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", 876 | "dev": true, 877 | "requires": { 878 | "is-utf8": "^0.2.0" 879 | } 880 | }, 881 | "strip-indent": { 882 | "version": "1.0.1", 883 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", 884 | "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", 885 | "dev": true, 886 | "requires": { 887 | "get-stdin": "^4.0.1" 888 | } 889 | }, 890 | "trim-newlines": { 891 | "version": "1.0.0", 892 | "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", 893 | "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", 894 | "dev": true 895 | } 896 | } 897 | }, 898 | "conventional-commits-filter": { 899 | "version": "1.1.6", 900 | "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-1.1.6.tgz", 901 | "integrity": "sha512-KcDgtCRKJCQhyk6VLT7zR+ZOyCnerfemE/CsR3iQpzRRFbLEs0Y6rwk3mpDvtOh04X223z+1xyJ582Stfct/0Q==", 902 | "dev": true, 903 | "requires": { 904 | "is-subset": "^0.1.1", 905 | "modify-values": "^1.0.0" 906 | } 907 | }, 908 | "conventional-commits-parser": { 909 | "version": "2.1.7", 910 | "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-2.1.7.tgz", 911 | "integrity": "sha512-BoMaddIEJ6B4QVMSDu9IkVImlGOSGA1I2BQyOZHeLQ6qVOJLcLKn97+fL6dGbzWEiqDzfH4OkcveULmeq2MHFQ==", 912 | "dev": true, 913 | "requires": { 914 | "JSONStream": "^1.0.4", 915 | "is-text-path": "^1.0.0", 916 | "lodash": "^4.2.1", 917 | "meow": "^4.0.0", 918 | "split2": "^2.0.0", 919 | "through2": "^2.0.0", 920 | "trim-off-newlines": "^1.0.0" 921 | } 922 | }, 923 | "core-js": { 924 | "version": "2.6.4", 925 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.4.tgz", 926 | "integrity": "sha512-05qQ5hXShcqGkPZpXEFLIpxayZscVD2kuMBZewxiIPPEagukO4mqgPA9CWhUvFBJfy3ODdK2p9xyHh7FTU9/7A==", 927 | "dev": true 928 | }, 929 | "core-util-is": { 930 | "version": "1.0.2", 931 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 932 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 933 | "dev": true 934 | }, 935 | "corser": { 936 | "version": "2.0.1", 937 | "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", 938 | "integrity": "sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c=", 939 | "dev": true 940 | }, 941 | "cross-spawn": { 942 | "version": "5.1.0", 943 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", 944 | "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", 945 | "dev": true, 946 | "requires": { 947 | "lru-cache": "^4.0.1", 948 | "shebang-command": "^1.2.0", 949 | "which": "^1.2.9" 950 | } 951 | }, 952 | "currently-unhandled": { 953 | "version": "0.4.1", 954 | "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", 955 | "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", 956 | "dev": true, 957 | "requires": { 958 | "array-find-index": "^1.0.1" 959 | } 960 | }, 961 | "cypress": { 962 | "version": "3.1.5", 963 | "resolved": "https://registry.npmjs.org/cypress/-/cypress-3.1.5.tgz", 964 | "integrity": "sha512-jzYGKJqU1CHoNocPndinf/vbG28SeU+hg+4qhousT/HDBMJxYgjecXOmSgBX/ga9/TakhqSrIrSP2r6gW/OLtg==", 965 | "dev": true, 966 | "requires": { 967 | "@cypress/listr-verbose-renderer": "0.4.1", 968 | "@cypress/xvfb": "1.2.3", 969 | "@types/blob-util": "1.3.3", 970 | "@types/bluebird": "3.5.18", 971 | "@types/chai": "4.0.8", 972 | "@types/chai-jquery": "1.1.35", 973 | "@types/jquery": "3.3.6", 974 | "@types/lodash": "4.14.87", 975 | "@types/minimatch": "3.0.3", 976 | "@types/mocha": "2.2.44", 977 | "@types/sinon": "7.0.0", 978 | "@types/sinon-chai": "3.2.2", 979 | "bluebird": "3.5.0", 980 | "cachedir": "1.3.0", 981 | "chalk": "2.4.1", 982 | "check-more-types": "2.24.0", 983 | "commander": "2.11.0", 984 | "common-tags": "1.4.0", 985 | "debug": "3.1.0", 986 | "execa": "0.10.0", 987 | "executable": "4.1.1", 988 | "extract-zip": "1.6.6", 989 | "fs-extra": "4.0.1", 990 | "getos": "3.1.0", 991 | "glob": "7.1.2", 992 | "is-ci": "1.0.10", 993 | "is-installed-globally": "0.1.0", 994 | "lazy-ass": "1.6.0", 995 | "listr": "0.12.0", 996 | "lodash": "4.17.11", 997 | "log-symbols": "2.2.0", 998 | "minimist": "1.2.0", 999 | "moment": "2.22.2", 1000 | "ramda": "0.24.1", 1001 | "request": "2.87.0", 1002 | "request-progress": "0.3.1", 1003 | "supports-color": "5.1.0", 1004 | "tmp": "0.0.31", 1005 | "url": "0.11.0", 1006 | "yauzl": "2.8.0" 1007 | }, 1008 | "dependencies": { 1009 | "ajv": { 1010 | "version": "5.5.2", 1011 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", 1012 | "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", 1013 | "dev": true, 1014 | "requires": { 1015 | "co": "^4.6.0", 1016 | "fast-deep-equal": "^1.0.0", 1017 | "fast-json-stable-stringify": "^2.0.0", 1018 | "json-schema-traverse": "^0.3.0" 1019 | } 1020 | }, 1021 | "chalk": { 1022 | "version": "2.4.1", 1023 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", 1024 | "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", 1025 | "dev": true, 1026 | "requires": { 1027 | "ansi-styles": "^3.2.1", 1028 | "escape-string-regexp": "^1.0.5", 1029 | "supports-color": "^5.3.0" 1030 | }, 1031 | "dependencies": { 1032 | "supports-color": { 1033 | "version": "5.5.0", 1034 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 1035 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 1036 | "dev": true, 1037 | "requires": { 1038 | "has-flag": "^3.0.0" 1039 | } 1040 | } 1041 | } 1042 | }, 1043 | "commander": { 1044 | "version": "2.11.0", 1045 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", 1046 | "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", 1047 | "dev": true 1048 | }, 1049 | "cross-spawn": { 1050 | "version": "6.0.5", 1051 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", 1052 | "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", 1053 | "dev": true, 1054 | "requires": { 1055 | "nice-try": "^1.0.4", 1056 | "path-key": "^2.0.1", 1057 | "semver": "^5.5.0", 1058 | "shebang-command": "^1.2.0", 1059 | "which": "^1.2.9" 1060 | } 1061 | }, 1062 | "debug": { 1063 | "version": "3.1.0", 1064 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", 1065 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", 1066 | "dev": true, 1067 | "requires": { 1068 | "ms": "2.0.0" 1069 | } 1070 | }, 1071 | "execa": { 1072 | "version": "0.10.0", 1073 | "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", 1074 | "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", 1075 | "dev": true, 1076 | "requires": { 1077 | "cross-spawn": "^6.0.0", 1078 | "get-stream": "^3.0.0", 1079 | "is-stream": "^1.1.0", 1080 | "npm-run-path": "^2.0.0", 1081 | "p-finally": "^1.0.0", 1082 | "signal-exit": "^3.0.0", 1083 | "strip-eof": "^1.0.0" 1084 | } 1085 | }, 1086 | "fast-deep-equal": { 1087 | "version": "1.1.0", 1088 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", 1089 | "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", 1090 | "dev": true 1091 | }, 1092 | "fs-extra": { 1093 | "version": "4.0.1", 1094 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.1.tgz", 1095 | "integrity": "sha1-f8DGyJV/mD9X8waiTlud3Y0N2IA=", 1096 | "dev": true, 1097 | "requires": { 1098 | "graceful-fs": "^4.1.2", 1099 | "jsonfile": "^3.0.0", 1100 | "universalify": "^0.1.0" 1101 | } 1102 | }, 1103 | "har-validator": { 1104 | "version": "5.0.3", 1105 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", 1106 | "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", 1107 | "dev": true, 1108 | "requires": { 1109 | "ajv": "^5.1.0", 1110 | "har-schema": "^2.0.0" 1111 | } 1112 | }, 1113 | "json-schema-traverse": { 1114 | "version": "0.3.1", 1115 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", 1116 | "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", 1117 | "dev": true 1118 | }, 1119 | "jsonfile": { 1120 | "version": "3.0.1", 1121 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", 1122 | "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", 1123 | "dev": true, 1124 | "requires": { 1125 | "graceful-fs": "^4.1.6" 1126 | } 1127 | }, 1128 | "ms": { 1129 | "version": "2.0.0", 1130 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 1131 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 1132 | "dev": true 1133 | }, 1134 | "oauth-sign": { 1135 | "version": "0.8.2", 1136 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", 1137 | "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", 1138 | "dev": true 1139 | }, 1140 | "punycode": { 1141 | "version": "1.4.1", 1142 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 1143 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", 1144 | "dev": true 1145 | }, 1146 | "request": { 1147 | "version": "2.87.0", 1148 | "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", 1149 | "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", 1150 | "dev": true, 1151 | "requires": { 1152 | "aws-sign2": "~0.7.0", 1153 | "aws4": "^1.6.0", 1154 | "caseless": "~0.12.0", 1155 | "combined-stream": "~1.0.5", 1156 | "extend": "~3.0.1", 1157 | "forever-agent": "~0.6.1", 1158 | "form-data": "~2.3.1", 1159 | "har-validator": "~5.0.3", 1160 | "http-signature": "~1.2.0", 1161 | "is-typedarray": "~1.0.0", 1162 | "isstream": "~0.1.2", 1163 | "json-stringify-safe": "~5.0.1", 1164 | "mime-types": "~2.1.17", 1165 | "oauth-sign": "~0.8.2", 1166 | "performance-now": "^2.1.0", 1167 | "qs": "~6.5.1", 1168 | "safe-buffer": "^5.1.1", 1169 | "tough-cookie": "~2.3.3", 1170 | "tunnel-agent": "^0.6.0", 1171 | "uuid": "^3.1.0" 1172 | } 1173 | }, 1174 | "supports-color": { 1175 | "version": "5.1.0", 1176 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz", 1177 | "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==", 1178 | "dev": true, 1179 | "requires": { 1180 | "has-flag": "^2.0.0" 1181 | }, 1182 | "dependencies": { 1183 | "has-flag": { 1184 | "version": "2.0.0", 1185 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", 1186 | "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", 1187 | "dev": true 1188 | } 1189 | } 1190 | }, 1191 | "tough-cookie": { 1192 | "version": "2.3.4", 1193 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", 1194 | "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", 1195 | "dev": true, 1196 | "requires": { 1197 | "punycode": "^1.4.1" 1198 | } 1199 | } 1200 | } 1201 | }, 1202 | "dargs": { 1203 | "version": "4.1.0", 1204 | "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz", 1205 | "integrity": "sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc=", 1206 | "dev": true, 1207 | "requires": { 1208 | "number-is-nan": "^1.0.0" 1209 | } 1210 | }, 1211 | "dashdash": { 1212 | "version": "1.14.1", 1213 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 1214 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", 1215 | "dev": true, 1216 | "requires": { 1217 | "assert-plus": "^1.0.0" 1218 | } 1219 | }, 1220 | "date-fns": { 1221 | "version": "1.30.1", 1222 | "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", 1223 | "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", 1224 | "dev": true 1225 | }, 1226 | "dateformat": { 1227 | "version": "1.0.12", 1228 | "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", 1229 | "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", 1230 | "dev": true, 1231 | "requires": { 1232 | "get-stdin": "^4.0.1", 1233 | "meow": "^3.3.0" 1234 | }, 1235 | "dependencies": { 1236 | "camelcase": { 1237 | "version": "2.1.1", 1238 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", 1239 | "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", 1240 | "dev": true 1241 | }, 1242 | "camelcase-keys": { 1243 | "version": "2.1.0", 1244 | "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", 1245 | "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", 1246 | "dev": true, 1247 | "requires": { 1248 | "camelcase": "^2.0.0", 1249 | "map-obj": "^1.0.0" 1250 | } 1251 | }, 1252 | "find-up": { 1253 | "version": "1.1.2", 1254 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", 1255 | "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", 1256 | "dev": true, 1257 | "requires": { 1258 | "path-exists": "^2.0.0", 1259 | "pinkie-promise": "^2.0.0" 1260 | } 1261 | }, 1262 | "indent-string": { 1263 | "version": "2.1.0", 1264 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", 1265 | "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", 1266 | "dev": true, 1267 | "requires": { 1268 | "repeating": "^2.0.0" 1269 | } 1270 | }, 1271 | "load-json-file": { 1272 | "version": "1.1.0", 1273 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", 1274 | "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", 1275 | "dev": true, 1276 | "requires": { 1277 | "graceful-fs": "^4.1.2", 1278 | "parse-json": "^2.2.0", 1279 | "pify": "^2.0.0", 1280 | "pinkie-promise": "^2.0.0", 1281 | "strip-bom": "^2.0.0" 1282 | } 1283 | }, 1284 | "map-obj": { 1285 | "version": "1.0.1", 1286 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", 1287 | "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", 1288 | "dev": true 1289 | }, 1290 | "meow": { 1291 | "version": "3.7.0", 1292 | "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", 1293 | "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", 1294 | "dev": true, 1295 | "requires": { 1296 | "camelcase-keys": "^2.0.0", 1297 | "decamelize": "^1.1.2", 1298 | "loud-rejection": "^1.0.0", 1299 | "map-obj": "^1.0.1", 1300 | "minimist": "^1.1.3", 1301 | "normalize-package-data": "^2.3.4", 1302 | "object-assign": "^4.0.1", 1303 | "read-pkg-up": "^1.0.1", 1304 | "redent": "^1.0.0", 1305 | "trim-newlines": "^1.0.0" 1306 | } 1307 | }, 1308 | "parse-json": { 1309 | "version": "2.2.0", 1310 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", 1311 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", 1312 | "dev": true, 1313 | "requires": { 1314 | "error-ex": "^1.2.0" 1315 | } 1316 | }, 1317 | "path-exists": { 1318 | "version": "2.1.0", 1319 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", 1320 | "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", 1321 | "dev": true, 1322 | "requires": { 1323 | "pinkie-promise": "^2.0.0" 1324 | } 1325 | }, 1326 | "path-type": { 1327 | "version": "1.1.0", 1328 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", 1329 | "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", 1330 | "dev": true, 1331 | "requires": { 1332 | "graceful-fs": "^4.1.2", 1333 | "pify": "^2.0.0", 1334 | "pinkie-promise": "^2.0.0" 1335 | } 1336 | }, 1337 | "pify": { 1338 | "version": "2.3.0", 1339 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 1340 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 1341 | "dev": true 1342 | }, 1343 | "read-pkg": { 1344 | "version": "1.1.0", 1345 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", 1346 | "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", 1347 | "dev": true, 1348 | "requires": { 1349 | "load-json-file": "^1.0.0", 1350 | "normalize-package-data": "^2.3.2", 1351 | "path-type": "^1.0.0" 1352 | } 1353 | }, 1354 | "read-pkg-up": { 1355 | "version": "1.0.1", 1356 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", 1357 | "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", 1358 | "dev": true, 1359 | "requires": { 1360 | "find-up": "^1.0.0", 1361 | "read-pkg": "^1.0.0" 1362 | } 1363 | }, 1364 | "redent": { 1365 | "version": "1.0.0", 1366 | "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", 1367 | "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", 1368 | "dev": true, 1369 | "requires": { 1370 | "indent-string": "^2.1.0", 1371 | "strip-indent": "^1.0.1" 1372 | } 1373 | }, 1374 | "strip-bom": { 1375 | "version": "2.0.0", 1376 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", 1377 | "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", 1378 | "dev": true, 1379 | "requires": { 1380 | "is-utf8": "^0.2.0" 1381 | } 1382 | }, 1383 | "strip-indent": { 1384 | "version": "1.0.1", 1385 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", 1386 | "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", 1387 | "dev": true, 1388 | "requires": { 1389 | "get-stdin": "^4.0.1" 1390 | } 1391 | }, 1392 | "trim-newlines": { 1393 | "version": "1.0.0", 1394 | "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", 1395 | "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", 1396 | "dev": true 1397 | } 1398 | } 1399 | }, 1400 | "debug": { 1401 | "version": "3.2.6", 1402 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", 1403 | "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", 1404 | "dev": true, 1405 | "requires": { 1406 | "ms": "^2.1.1" 1407 | } 1408 | }, 1409 | "decamelize": { 1410 | "version": "1.2.0", 1411 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 1412 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", 1413 | "dev": true 1414 | }, 1415 | "decamelize-keys": { 1416 | "version": "1.1.0", 1417 | "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", 1418 | "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", 1419 | "dev": true, 1420 | "requires": { 1421 | "decamelize": "^1.1.0", 1422 | "map-obj": "^1.0.0" 1423 | }, 1424 | "dependencies": { 1425 | "map-obj": { 1426 | "version": "1.0.1", 1427 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", 1428 | "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", 1429 | "dev": true 1430 | } 1431 | } 1432 | }, 1433 | "decode-uri-component": { 1434 | "version": "0.2.0", 1435 | "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", 1436 | "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", 1437 | "dev": true 1438 | }, 1439 | "decompress-response": { 1440 | "version": "3.3.0", 1441 | "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", 1442 | "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", 1443 | "dev": true, 1444 | "requires": { 1445 | "mimic-response": "^1.0.0" 1446 | } 1447 | }, 1448 | "delayed-stream": { 1449 | "version": "1.0.0", 1450 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 1451 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", 1452 | "dev": true 1453 | }, 1454 | "delegates": { 1455 | "version": "1.0.0", 1456 | "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", 1457 | "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", 1458 | "dev": true 1459 | }, 1460 | "dot-prop": { 1461 | "version": "3.0.0", 1462 | "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", 1463 | "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=", 1464 | "dev": true, 1465 | "requires": { 1466 | "is-obj": "^1.0.0" 1467 | } 1468 | }, 1469 | "dotenv": { 1470 | "version": "4.0.0", 1471 | "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz", 1472 | "integrity": "sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0=", 1473 | "dev": true 1474 | }, 1475 | "duplexer3": { 1476 | "version": "0.1.4", 1477 | "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", 1478 | "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", 1479 | "dev": true 1480 | }, 1481 | "ecc-jsbn": { 1482 | "version": "0.1.2", 1483 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", 1484 | "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", 1485 | "dev": true, 1486 | "requires": { 1487 | "jsbn": "~0.1.0", 1488 | "safer-buffer": "^2.1.0" 1489 | } 1490 | }, 1491 | "ecstatic": { 1492 | "version": "3.3.0", 1493 | "resolved": "https://registry.npmjs.org/ecstatic/-/ecstatic-3.3.0.tgz", 1494 | "integrity": "sha512-EblWYTd+wPIAMQ0U4oYJZ7QBypT9ZUIwpqli0bKDjeIIQnXDBK2dXtZ9yzRCOlkW1HkO8gn7/FxLK1yPIW17pw==", 1495 | "dev": true, 1496 | "requires": { 1497 | "he": "^1.1.1", 1498 | "mime": "^1.6.0", 1499 | "minimist": "^1.1.0", 1500 | "url-join": "^2.0.5" 1501 | }, 1502 | "dependencies": { 1503 | "mime": { 1504 | "version": "1.6.0", 1505 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 1506 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", 1507 | "dev": true 1508 | } 1509 | } 1510 | }, 1511 | "elegant-spinner": { 1512 | "version": "1.0.1", 1513 | "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", 1514 | "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=", 1515 | "dev": true 1516 | }, 1517 | "error-ex": { 1518 | "version": "1.3.2", 1519 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 1520 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 1521 | "dev": true, 1522 | "requires": { 1523 | "is-arrayish": "^0.2.1" 1524 | } 1525 | }, 1526 | "es6-promise": { 1527 | "version": "4.2.5", 1528 | "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz", 1529 | "integrity": "sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg==", 1530 | "dev": true 1531 | }, 1532 | "es6-promisify": { 1533 | "version": "5.0.0", 1534 | "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", 1535 | "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", 1536 | "dev": true, 1537 | "requires": { 1538 | "es6-promise": "^4.0.3" 1539 | } 1540 | }, 1541 | "escape-string-regexp": { 1542 | "version": "1.0.5", 1543 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1544 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 1545 | "dev": true 1546 | }, 1547 | "eventemitter3": { 1548 | "version": "3.1.0", 1549 | "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz", 1550 | "integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==", 1551 | "dev": true 1552 | }, 1553 | "execa": { 1554 | "version": "0.8.0", 1555 | "resolved": "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz", 1556 | "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=", 1557 | "dev": true, 1558 | "requires": { 1559 | "cross-spawn": "^5.0.1", 1560 | "get-stream": "^3.0.0", 1561 | "is-stream": "^1.1.0", 1562 | "npm-run-path": "^2.0.0", 1563 | "p-finally": "^1.0.0", 1564 | "signal-exit": "^3.0.0", 1565 | "strip-eof": "^1.0.0" 1566 | } 1567 | }, 1568 | "executable": { 1569 | "version": "4.1.1", 1570 | "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", 1571 | "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", 1572 | "dev": true, 1573 | "requires": { 1574 | "pify": "^2.2.0" 1575 | }, 1576 | "dependencies": { 1577 | "pify": { 1578 | "version": "2.3.0", 1579 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 1580 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 1581 | "dev": true 1582 | } 1583 | } 1584 | }, 1585 | "exit-hook": { 1586 | "version": "1.1.1", 1587 | "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", 1588 | "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", 1589 | "dev": true 1590 | }, 1591 | "extend": { 1592 | "version": "3.0.2", 1593 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 1594 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", 1595 | "dev": true 1596 | }, 1597 | "extract-zip": { 1598 | "version": "1.6.6", 1599 | "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.6.tgz", 1600 | "integrity": "sha1-EpDt6NINCHK0Kf0/NRyhKOxe+Fw=", 1601 | "dev": true, 1602 | "requires": { 1603 | "concat-stream": "1.6.0", 1604 | "debug": "2.6.9", 1605 | "mkdirp": "0.5.0", 1606 | "yauzl": "2.4.1" 1607 | }, 1608 | "dependencies": { 1609 | "concat-stream": { 1610 | "version": "1.6.0", 1611 | "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", 1612 | "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", 1613 | "dev": true, 1614 | "requires": { 1615 | "inherits": "^2.0.3", 1616 | "readable-stream": "^2.2.2", 1617 | "typedarray": "^0.0.6" 1618 | } 1619 | }, 1620 | "debug": { 1621 | "version": "2.6.9", 1622 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 1623 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 1624 | "dev": true, 1625 | "requires": { 1626 | "ms": "2.0.0" 1627 | } 1628 | }, 1629 | "minimist": { 1630 | "version": "0.0.8", 1631 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 1632 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 1633 | "dev": true 1634 | }, 1635 | "mkdirp": { 1636 | "version": "0.5.0", 1637 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", 1638 | "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=", 1639 | "dev": true, 1640 | "requires": { 1641 | "minimist": "0.0.8" 1642 | } 1643 | }, 1644 | "ms": { 1645 | "version": "2.0.0", 1646 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 1647 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 1648 | "dev": true 1649 | }, 1650 | "yauzl": { 1651 | "version": "2.4.1", 1652 | "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", 1653 | "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", 1654 | "dev": true, 1655 | "requires": { 1656 | "fd-slicer": "~1.0.1" 1657 | } 1658 | } 1659 | } 1660 | }, 1661 | "extsprintf": { 1662 | "version": "1.3.0", 1663 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", 1664 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", 1665 | "dev": true 1666 | }, 1667 | "fast-deep-equal": { 1668 | "version": "2.0.1", 1669 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", 1670 | "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", 1671 | "dev": true 1672 | }, 1673 | "fast-json-stable-stringify": { 1674 | "version": "2.0.0", 1675 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", 1676 | "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", 1677 | "dev": true 1678 | }, 1679 | "fd-slicer": { 1680 | "version": "1.0.1", 1681 | "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", 1682 | "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", 1683 | "dev": true, 1684 | "requires": { 1685 | "pend": "~1.2.0" 1686 | } 1687 | }, 1688 | "figures": { 1689 | "version": "1.7.0", 1690 | "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", 1691 | "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", 1692 | "dev": true, 1693 | "requires": { 1694 | "escape-string-regexp": "^1.0.5", 1695 | "object-assign": "^4.1.0" 1696 | } 1697 | }, 1698 | "find-up": { 1699 | "version": "2.1.0", 1700 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", 1701 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", 1702 | "dev": true, 1703 | "requires": { 1704 | "locate-path": "^2.0.0" 1705 | } 1706 | }, 1707 | "follow-redirects": { 1708 | "version": "1.2.6", 1709 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.2.6.tgz", 1710 | "integrity": "sha512-FrMqZ/FONtHnbqO651UPpfRUVukIEwJhXMfdr/JWAmrDbeYBu773b1J6gdWDyRIj4hvvzQEHoEOTrdR8o6KLYA==", 1711 | "dev": true, 1712 | "requires": { 1713 | "debug": "^3.1.0" 1714 | } 1715 | }, 1716 | "foreachasync": { 1717 | "version": "3.0.0", 1718 | "resolved": "https://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz", 1719 | "integrity": "sha1-VQKYfchxS+M5IJfzLgBxyd7gfPY=", 1720 | "dev": true 1721 | }, 1722 | "forever-agent": { 1723 | "version": "0.6.1", 1724 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", 1725 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", 1726 | "dev": true 1727 | }, 1728 | "form-data": { 1729 | "version": "2.3.3", 1730 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", 1731 | "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", 1732 | "dev": true, 1733 | "requires": { 1734 | "asynckit": "^0.4.0", 1735 | "combined-stream": "^1.0.6", 1736 | "mime-types": "^2.1.12" 1737 | } 1738 | }, 1739 | "from2": { 1740 | "version": "2.3.0", 1741 | "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", 1742 | "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", 1743 | "dev": true, 1744 | "requires": { 1745 | "inherits": "^2.0.1", 1746 | "readable-stream": "^2.0.0" 1747 | } 1748 | }, 1749 | "fs-extra": { 1750 | "version": "4.0.3", 1751 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", 1752 | "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", 1753 | "dev": true, 1754 | "requires": { 1755 | "graceful-fs": "^4.1.2", 1756 | "jsonfile": "^4.0.0", 1757 | "universalify": "^0.1.0" 1758 | } 1759 | }, 1760 | "fs.realpath": { 1761 | "version": "1.0.0", 1762 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1763 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 1764 | "dev": true 1765 | }, 1766 | "gauge": { 1767 | "version": "2.7.4", 1768 | "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", 1769 | "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", 1770 | "dev": true, 1771 | "requires": { 1772 | "aproba": "^1.0.3", 1773 | "console-control-strings": "^1.0.0", 1774 | "has-unicode": "^2.0.0", 1775 | "object-assign": "^4.1.0", 1776 | "signal-exit": "^3.0.0", 1777 | "string-width": "^1.0.1", 1778 | "strip-ansi": "^3.0.1", 1779 | "wide-align": "^1.1.0" 1780 | } 1781 | }, 1782 | "get-pkg-repo": { 1783 | "version": "1.4.0", 1784 | "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz", 1785 | "integrity": "sha1-xztInAbYDMVTbCyFP54FIyBWly0=", 1786 | "dev": true, 1787 | "requires": { 1788 | "hosted-git-info": "^2.1.4", 1789 | "meow": "^3.3.0", 1790 | "normalize-package-data": "^2.3.0", 1791 | "parse-github-repo-url": "^1.3.0", 1792 | "through2": "^2.0.0" 1793 | }, 1794 | "dependencies": { 1795 | "camelcase": { 1796 | "version": "2.1.1", 1797 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", 1798 | "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", 1799 | "dev": true 1800 | }, 1801 | "camelcase-keys": { 1802 | "version": "2.1.0", 1803 | "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", 1804 | "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", 1805 | "dev": true, 1806 | "requires": { 1807 | "camelcase": "^2.0.0", 1808 | "map-obj": "^1.0.0" 1809 | } 1810 | }, 1811 | "find-up": { 1812 | "version": "1.1.2", 1813 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", 1814 | "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", 1815 | "dev": true, 1816 | "requires": { 1817 | "path-exists": "^2.0.0", 1818 | "pinkie-promise": "^2.0.0" 1819 | } 1820 | }, 1821 | "indent-string": { 1822 | "version": "2.1.0", 1823 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", 1824 | "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", 1825 | "dev": true, 1826 | "requires": { 1827 | "repeating": "^2.0.0" 1828 | } 1829 | }, 1830 | "load-json-file": { 1831 | "version": "1.1.0", 1832 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", 1833 | "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", 1834 | "dev": true, 1835 | "requires": { 1836 | "graceful-fs": "^4.1.2", 1837 | "parse-json": "^2.2.0", 1838 | "pify": "^2.0.0", 1839 | "pinkie-promise": "^2.0.0", 1840 | "strip-bom": "^2.0.0" 1841 | } 1842 | }, 1843 | "map-obj": { 1844 | "version": "1.0.1", 1845 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", 1846 | "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", 1847 | "dev": true 1848 | }, 1849 | "meow": { 1850 | "version": "3.7.0", 1851 | "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", 1852 | "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", 1853 | "dev": true, 1854 | "requires": { 1855 | "camelcase-keys": "^2.0.0", 1856 | "decamelize": "^1.1.2", 1857 | "loud-rejection": "^1.0.0", 1858 | "map-obj": "^1.0.1", 1859 | "minimist": "^1.1.3", 1860 | "normalize-package-data": "^2.3.4", 1861 | "object-assign": "^4.0.1", 1862 | "read-pkg-up": "^1.0.1", 1863 | "redent": "^1.0.0", 1864 | "trim-newlines": "^1.0.0" 1865 | } 1866 | }, 1867 | "parse-json": { 1868 | "version": "2.2.0", 1869 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", 1870 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", 1871 | "dev": true, 1872 | "requires": { 1873 | "error-ex": "^1.2.0" 1874 | } 1875 | }, 1876 | "path-exists": { 1877 | "version": "2.1.0", 1878 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", 1879 | "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", 1880 | "dev": true, 1881 | "requires": { 1882 | "pinkie-promise": "^2.0.0" 1883 | } 1884 | }, 1885 | "path-type": { 1886 | "version": "1.1.0", 1887 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", 1888 | "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", 1889 | "dev": true, 1890 | "requires": { 1891 | "graceful-fs": "^4.1.2", 1892 | "pify": "^2.0.0", 1893 | "pinkie-promise": "^2.0.0" 1894 | } 1895 | }, 1896 | "pify": { 1897 | "version": "2.3.0", 1898 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 1899 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 1900 | "dev": true 1901 | }, 1902 | "read-pkg": { 1903 | "version": "1.1.0", 1904 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", 1905 | "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", 1906 | "dev": true, 1907 | "requires": { 1908 | "load-json-file": "^1.0.0", 1909 | "normalize-package-data": "^2.3.2", 1910 | "path-type": "^1.0.0" 1911 | } 1912 | }, 1913 | "read-pkg-up": { 1914 | "version": "1.0.1", 1915 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", 1916 | "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", 1917 | "dev": true, 1918 | "requires": { 1919 | "find-up": "^1.0.0", 1920 | "read-pkg": "^1.0.0" 1921 | } 1922 | }, 1923 | "redent": { 1924 | "version": "1.0.0", 1925 | "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", 1926 | "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", 1927 | "dev": true, 1928 | "requires": { 1929 | "indent-string": "^2.1.0", 1930 | "strip-indent": "^1.0.1" 1931 | } 1932 | }, 1933 | "strip-bom": { 1934 | "version": "2.0.0", 1935 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", 1936 | "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", 1937 | "dev": true, 1938 | "requires": { 1939 | "is-utf8": "^0.2.0" 1940 | } 1941 | }, 1942 | "strip-indent": { 1943 | "version": "1.0.1", 1944 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", 1945 | "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", 1946 | "dev": true, 1947 | "requires": { 1948 | "get-stdin": "^4.0.1" 1949 | } 1950 | }, 1951 | "trim-newlines": { 1952 | "version": "1.0.0", 1953 | "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", 1954 | "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", 1955 | "dev": true 1956 | } 1957 | } 1958 | }, 1959 | "get-stdin": { 1960 | "version": "4.0.1", 1961 | "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", 1962 | "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", 1963 | "dev": true 1964 | }, 1965 | "get-stream": { 1966 | "version": "3.0.0", 1967 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", 1968 | "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", 1969 | "dev": true 1970 | }, 1971 | "getos": { 1972 | "version": "3.1.0", 1973 | "resolved": "https://registry.npmjs.org/getos/-/getos-3.1.0.tgz", 1974 | "integrity": "sha512-i9vrxtDu5DlLVFcrbqUqGWYlZN/zZ4pGMICCAcZoYsX3JA54nYp8r5EThw5K+m2q3wszkx4Th746JstspB0H4Q==", 1975 | "dev": true, 1976 | "requires": { 1977 | "async": "2.4.0" 1978 | }, 1979 | "dependencies": { 1980 | "async": { 1981 | "version": "2.4.0", 1982 | "resolved": "https://registry.npmjs.org/async/-/async-2.4.0.tgz", 1983 | "integrity": "sha1-SZAgDxjqW4N8LMT4wDGmmFw4VhE=", 1984 | "dev": true, 1985 | "requires": { 1986 | "lodash": "^4.14.0" 1987 | } 1988 | } 1989 | } 1990 | }, 1991 | "getpass": { 1992 | "version": "0.1.7", 1993 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 1994 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", 1995 | "dev": true, 1996 | "requires": { 1997 | "assert-plus": "^1.0.0" 1998 | } 1999 | }, 2000 | "git-head": { 2001 | "version": "1.20.1", 2002 | "resolved": "https://registry.npmjs.org/git-head/-/git-head-1.20.1.tgz", 2003 | "integrity": "sha1-A20WpLN0lJ5OPa8VgnkDaG08zVI=", 2004 | "dev": true, 2005 | "requires": { 2006 | "git-refs": "^1.1.3" 2007 | } 2008 | }, 2009 | "git-raw-commits": { 2010 | "version": "1.3.6", 2011 | "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-1.3.6.tgz", 2012 | "integrity": "sha512-svsK26tQ8vEKnMshTDatSIQSMDdz8CxIIqKsvPqbtV23Etmw6VNaFAitu8zwZ0VrOne7FztwPyRLxK7/DIUTQg==", 2013 | "dev": true, 2014 | "requires": { 2015 | "dargs": "^4.0.1", 2016 | "lodash.template": "^4.0.2", 2017 | "meow": "^4.0.0", 2018 | "split2": "^2.0.0", 2019 | "through2": "^2.0.0" 2020 | } 2021 | }, 2022 | "git-refs": { 2023 | "version": "1.1.3", 2024 | "resolved": "https://registry.npmjs.org/git-refs/-/git-refs-1.1.3.tgz", 2025 | "integrity": "sha1-gwl8s6klhcSkkm7FTiGC354g6J0=", 2026 | "dev": true, 2027 | "requires": { 2028 | "path-object": "^2.3.0", 2029 | "slash": "^1.0.0", 2030 | "walk": "^2.3.9" 2031 | } 2032 | }, 2033 | "git-remote-origin-url": { 2034 | "version": "2.0.0", 2035 | "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", 2036 | "integrity": "sha1-UoJlna4hBxRaERJhEq0yFuxfpl8=", 2037 | "dev": true, 2038 | "requires": { 2039 | "gitconfiglocal": "^1.0.0", 2040 | "pify": "^2.3.0" 2041 | }, 2042 | "dependencies": { 2043 | "pify": { 2044 | "version": "2.3.0", 2045 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 2046 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 2047 | "dev": true 2048 | } 2049 | } 2050 | }, 2051 | "git-semver-tags": { 2052 | "version": "1.3.6", 2053 | "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-1.3.6.tgz", 2054 | "integrity": "sha512-2jHlJnln4D/ECk9FxGEBh3k44wgYdWjWDtMmJPaecjoRmxKo3Y1Lh8GMYuOPu04CHw86NTAODchYjC5pnpMQig==", 2055 | "dev": true, 2056 | "requires": { 2057 | "meow": "^4.0.0", 2058 | "semver": "^5.5.0" 2059 | } 2060 | }, 2061 | "gitconfiglocal": { 2062 | "version": "1.0.0", 2063 | "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", 2064 | "integrity": "sha1-QdBF84UaXqiPA/JMocYXgRRGS5s=", 2065 | "dev": true, 2066 | "requires": { 2067 | "ini": "^1.3.2" 2068 | } 2069 | }, 2070 | "github": { 2071 | "version": "12.1.0", 2072 | "resolved": "https://registry.npmjs.org/github/-/github-12.1.0.tgz", 2073 | "integrity": "sha512-HhWjhd/OATC4Hjj7xfGjGRtwWzo/fzTc55EkvsRatI9G6Vp47mVcdBIt1lQ56A9Qit/yVQRX1+M9jbWlcJvgug==", 2074 | "dev": true, 2075 | "requires": { 2076 | "dotenv": "^4.0.0", 2077 | "follow-redirects": "1.2.6", 2078 | "https-proxy-agent": "^2.1.0", 2079 | "lodash": "^4.17.4", 2080 | "mime": "^2.0.3", 2081 | "netrc": "^0.1.4" 2082 | } 2083 | }, 2084 | "glob": { 2085 | "version": "7.1.2", 2086 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", 2087 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", 2088 | "dev": true, 2089 | "requires": { 2090 | "fs.realpath": "^1.0.0", 2091 | "inflight": "^1.0.4", 2092 | "inherits": "2", 2093 | "minimatch": "^3.0.4", 2094 | "once": "^1.3.0", 2095 | "path-is-absolute": "^1.0.0" 2096 | } 2097 | }, 2098 | "global-dirs": { 2099 | "version": "0.1.1", 2100 | "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", 2101 | "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", 2102 | "dev": true, 2103 | "requires": { 2104 | "ini": "^1.3.4" 2105 | } 2106 | }, 2107 | "got": { 2108 | "version": "8.3.2", 2109 | "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", 2110 | "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", 2111 | "dev": true, 2112 | "requires": { 2113 | "@sindresorhus/is": "^0.7.0", 2114 | "cacheable-request": "^2.1.1", 2115 | "decompress-response": "^3.3.0", 2116 | "duplexer3": "^0.1.4", 2117 | "get-stream": "^3.0.0", 2118 | "into-stream": "^3.1.0", 2119 | "is-retry-allowed": "^1.1.0", 2120 | "isurl": "^1.0.0-alpha5", 2121 | "lowercase-keys": "^1.0.0", 2122 | "mimic-response": "^1.0.0", 2123 | "p-cancelable": "^0.4.0", 2124 | "p-timeout": "^2.0.1", 2125 | "pify": "^3.0.0", 2126 | "safe-buffer": "^5.1.1", 2127 | "timed-out": "^4.0.1", 2128 | "url-parse-lax": "^3.0.0", 2129 | "url-to-options": "^1.0.1" 2130 | } 2131 | }, 2132 | "graceful-fs": { 2133 | "version": "4.1.15", 2134 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", 2135 | "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", 2136 | "dev": true 2137 | }, 2138 | "handlebars": { 2139 | "version": "4.1.0", 2140 | "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.0.tgz", 2141 | "integrity": "sha512-l2jRuU1NAWK6AW5qqcTATWQJvNPEwkM7NEKSiv/gqOsoSQbVoWyqVEY5GS+XPQ88zLNmqASRpzfdm8d79hJS+w==", 2142 | "dev": true, 2143 | "requires": { 2144 | "async": "^2.5.0", 2145 | "optimist": "^0.6.1", 2146 | "source-map": "^0.6.1", 2147 | "uglify-js": "^3.1.4" 2148 | } 2149 | }, 2150 | "har-schema": { 2151 | "version": "2.0.0", 2152 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", 2153 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", 2154 | "dev": true 2155 | }, 2156 | "har-validator": { 2157 | "version": "5.1.3", 2158 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", 2159 | "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", 2160 | "dev": true, 2161 | "requires": { 2162 | "ajv": "^6.5.5", 2163 | "har-schema": "^2.0.0" 2164 | } 2165 | }, 2166 | "has-ansi": { 2167 | "version": "2.0.0", 2168 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", 2169 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", 2170 | "dev": true, 2171 | "requires": { 2172 | "ansi-regex": "^2.0.0" 2173 | } 2174 | }, 2175 | "has-flag": { 2176 | "version": "3.0.0", 2177 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 2178 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 2179 | "dev": true 2180 | }, 2181 | "has-symbol-support-x": { 2182 | "version": "1.4.2", 2183 | "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", 2184 | "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", 2185 | "dev": true 2186 | }, 2187 | "has-to-string-tag-x": { 2188 | "version": "1.4.1", 2189 | "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", 2190 | "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", 2191 | "dev": true, 2192 | "requires": { 2193 | "has-symbol-support-x": "^1.4.1" 2194 | } 2195 | }, 2196 | "has-unicode": { 2197 | "version": "2.0.1", 2198 | "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", 2199 | "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", 2200 | "dev": true 2201 | }, 2202 | "he": { 2203 | "version": "1.2.0", 2204 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", 2205 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", 2206 | "dev": true 2207 | }, 2208 | "hosted-git-info": { 2209 | "version": "2.7.1", 2210 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", 2211 | "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", 2212 | "dev": true 2213 | }, 2214 | "http-cache-semantics": { 2215 | "version": "3.8.1", 2216 | "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", 2217 | "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", 2218 | "dev": true 2219 | }, 2220 | "http-proxy": { 2221 | "version": "1.17.0", 2222 | "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz", 2223 | "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", 2224 | "dev": true, 2225 | "requires": { 2226 | "eventemitter3": "^3.0.0", 2227 | "follow-redirects": "^1.0.0", 2228 | "requires-port": "^1.0.0" 2229 | } 2230 | }, 2231 | "http-server": { 2232 | "version": "0.11.1", 2233 | "resolved": "https://registry.npmjs.org/http-server/-/http-server-0.11.1.tgz", 2234 | "integrity": "sha512-6JeGDGoujJLmhjiRGlt8yK8Z9Kl0vnl/dQoQZlc4oeqaUoAKQg94NILLfrY3oWzSyFaQCVNTcKE5PZ3cH8VP9w==", 2235 | "dev": true, 2236 | "requires": { 2237 | "colors": "1.0.3", 2238 | "corser": "~2.0.0", 2239 | "ecstatic": "^3.0.0", 2240 | "http-proxy": "^1.8.1", 2241 | "opener": "~1.4.0", 2242 | "optimist": "0.6.x", 2243 | "portfinder": "^1.0.13", 2244 | "union": "~0.4.3" 2245 | } 2246 | }, 2247 | "http-signature": { 2248 | "version": "1.2.0", 2249 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", 2250 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", 2251 | "dev": true, 2252 | "requires": { 2253 | "assert-plus": "^1.0.0", 2254 | "jsprim": "^1.2.2", 2255 | "sshpk": "^1.7.0" 2256 | } 2257 | }, 2258 | "https-proxy-agent": { 2259 | "version": "2.2.1", 2260 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", 2261 | "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", 2262 | "dev": true, 2263 | "requires": { 2264 | "agent-base": "^4.1.0", 2265 | "debug": "^3.1.0" 2266 | } 2267 | }, 2268 | "import-from": { 2269 | "version": "2.1.0", 2270 | "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", 2271 | "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", 2272 | "dev": true, 2273 | "requires": { 2274 | "resolve-from": "^3.0.0" 2275 | } 2276 | }, 2277 | "indent-string": { 2278 | "version": "3.2.0", 2279 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", 2280 | "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", 2281 | "dev": true 2282 | }, 2283 | "inflight": { 2284 | "version": "1.0.6", 2285 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 2286 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 2287 | "dev": true, 2288 | "requires": { 2289 | "once": "^1.3.0", 2290 | "wrappy": "1" 2291 | } 2292 | }, 2293 | "inherits": { 2294 | "version": "2.0.3", 2295 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 2296 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", 2297 | "dev": true 2298 | }, 2299 | "ini": { 2300 | "version": "1.3.5", 2301 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", 2302 | "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", 2303 | "dev": true 2304 | }, 2305 | "into-stream": { 2306 | "version": "3.1.0", 2307 | "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", 2308 | "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", 2309 | "dev": true, 2310 | "requires": { 2311 | "from2": "^2.1.1", 2312 | "p-is-promise": "^1.1.0" 2313 | } 2314 | }, 2315 | "is-arrayish": { 2316 | "version": "0.2.1", 2317 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 2318 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", 2319 | "dev": true 2320 | }, 2321 | "is-ci": { 2322 | "version": "1.0.10", 2323 | "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.0.10.tgz", 2324 | "integrity": "sha1-9zkzayYyNlBhqdSCcM1WrjNpMY4=", 2325 | "dev": true, 2326 | "requires": { 2327 | "ci-info": "^1.0.0" 2328 | } 2329 | }, 2330 | "is-finite": { 2331 | "version": "1.0.2", 2332 | "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", 2333 | "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", 2334 | "dev": true, 2335 | "requires": { 2336 | "number-is-nan": "^1.0.0" 2337 | } 2338 | }, 2339 | "is-fullwidth-code-point": { 2340 | "version": "1.0.0", 2341 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", 2342 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", 2343 | "dev": true, 2344 | "requires": { 2345 | "number-is-nan": "^1.0.0" 2346 | } 2347 | }, 2348 | "is-installed-globally": { 2349 | "version": "0.1.0", 2350 | "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", 2351 | "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", 2352 | "dev": true, 2353 | "requires": { 2354 | "global-dirs": "^0.1.0", 2355 | "is-path-inside": "^1.0.0" 2356 | } 2357 | }, 2358 | "is-obj": { 2359 | "version": "1.0.1", 2360 | "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", 2361 | "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", 2362 | "dev": true 2363 | }, 2364 | "is-object": { 2365 | "version": "1.0.1", 2366 | "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", 2367 | "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", 2368 | "dev": true 2369 | }, 2370 | "is-path-inside": { 2371 | "version": "1.0.1", 2372 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", 2373 | "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", 2374 | "dev": true, 2375 | "requires": { 2376 | "path-is-inside": "^1.0.1" 2377 | } 2378 | }, 2379 | "is-plain-obj": { 2380 | "version": "1.1.0", 2381 | "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", 2382 | "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", 2383 | "dev": true 2384 | }, 2385 | "is-promise": { 2386 | "version": "2.1.0", 2387 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", 2388 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", 2389 | "dev": true 2390 | }, 2391 | "is-retry-allowed": { 2392 | "version": "1.1.0", 2393 | "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", 2394 | "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", 2395 | "dev": true 2396 | }, 2397 | "is-stream": { 2398 | "version": "1.1.0", 2399 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", 2400 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", 2401 | "dev": true 2402 | }, 2403 | "is-subset": { 2404 | "version": "0.1.1", 2405 | "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", 2406 | "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=", 2407 | "dev": true 2408 | }, 2409 | "is-text-path": { 2410 | "version": "1.0.1", 2411 | "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", 2412 | "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", 2413 | "dev": true, 2414 | "requires": { 2415 | "text-extensions": "^1.0.0" 2416 | } 2417 | }, 2418 | "is-typedarray": { 2419 | "version": "1.0.0", 2420 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 2421 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", 2422 | "dev": true 2423 | }, 2424 | "is-utf8": { 2425 | "version": "0.2.1", 2426 | "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", 2427 | "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", 2428 | "dev": true 2429 | }, 2430 | "isarray": { 2431 | "version": "1.0.0", 2432 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 2433 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 2434 | "dev": true 2435 | }, 2436 | "isexe": { 2437 | "version": "2.0.0", 2438 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 2439 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 2440 | "dev": true 2441 | }, 2442 | "isstream": { 2443 | "version": "0.1.2", 2444 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 2445 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", 2446 | "dev": true 2447 | }, 2448 | "isurl": { 2449 | "version": "1.0.0", 2450 | "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", 2451 | "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", 2452 | "dev": true, 2453 | "requires": { 2454 | "has-to-string-tag-x": "^1.2.0", 2455 | "is-object": "^1.0.1" 2456 | } 2457 | }, 2458 | "jsbn": { 2459 | "version": "0.1.1", 2460 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", 2461 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", 2462 | "dev": true 2463 | }, 2464 | "json-buffer": { 2465 | "version": "3.0.0", 2466 | "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", 2467 | "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", 2468 | "dev": true 2469 | }, 2470 | "json-parse-better-errors": { 2471 | "version": "1.0.2", 2472 | "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", 2473 | "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", 2474 | "dev": true 2475 | }, 2476 | "json-schema": { 2477 | "version": "0.2.3", 2478 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", 2479 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", 2480 | "dev": true 2481 | }, 2482 | "json-schema-traverse": { 2483 | "version": "0.4.1", 2484 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 2485 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 2486 | "dev": true 2487 | }, 2488 | "json-stringify-safe": { 2489 | "version": "5.0.1", 2490 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 2491 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", 2492 | "dev": true 2493 | }, 2494 | "jsonfile": { 2495 | "version": "4.0.0", 2496 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", 2497 | "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", 2498 | "dev": true, 2499 | "requires": { 2500 | "graceful-fs": "^4.1.6" 2501 | } 2502 | }, 2503 | "jsonparse": { 2504 | "version": "1.3.1", 2505 | "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", 2506 | "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", 2507 | "dev": true 2508 | }, 2509 | "jsprim": { 2510 | "version": "1.4.1", 2511 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", 2512 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", 2513 | "dev": true, 2514 | "requires": { 2515 | "assert-plus": "1.0.0", 2516 | "extsprintf": "1.3.0", 2517 | "json-schema": "0.2.3", 2518 | "verror": "1.10.0" 2519 | } 2520 | }, 2521 | "keyv": { 2522 | "version": "3.0.0", 2523 | "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", 2524 | "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", 2525 | "dev": true, 2526 | "requires": { 2527 | "json-buffer": "3.0.0" 2528 | } 2529 | }, 2530 | "lazy-ass": { 2531 | "version": "1.6.0", 2532 | "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", 2533 | "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", 2534 | "dev": true 2535 | }, 2536 | "listr": { 2537 | "version": "0.12.0", 2538 | "resolved": "https://registry.npmjs.org/listr/-/listr-0.12.0.tgz", 2539 | "integrity": "sha1-a84sD1YD+klYDqF81qAMwOX6RRo=", 2540 | "dev": true, 2541 | "requires": { 2542 | "chalk": "^1.1.3", 2543 | "cli-truncate": "^0.2.1", 2544 | "figures": "^1.7.0", 2545 | "indent-string": "^2.1.0", 2546 | "is-promise": "^2.1.0", 2547 | "is-stream": "^1.1.0", 2548 | "listr-silent-renderer": "^1.1.1", 2549 | "listr-update-renderer": "^0.2.0", 2550 | "listr-verbose-renderer": "^0.4.0", 2551 | "log-symbols": "^1.0.2", 2552 | "log-update": "^1.0.2", 2553 | "ora": "^0.2.3", 2554 | "p-map": "^1.1.1", 2555 | "rxjs": "^5.0.0-beta.11", 2556 | "stream-to-observable": "^0.1.0", 2557 | "strip-ansi": "^3.0.1" 2558 | }, 2559 | "dependencies": { 2560 | "ansi-styles": { 2561 | "version": "2.2.1", 2562 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 2563 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", 2564 | "dev": true 2565 | }, 2566 | "chalk": { 2567 | "version": "1.1.3", 2568 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 2569 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 2570 | "dev": true, 2571 | "requires": { 2572 | "ansi-styles": "^2.2.1", 2573 | "escape-string-regexp": "^1.0.2", 2574 | "has-ansi": "^2.0.0", 2575 | "strip-ansi": "^3.0.0", 2576 | "supports-color": "^2.0.0" 2577 | } 2578 | }, 2579 | "indent-string": { 2580 | "version": "2.1.0", 2581 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", 2582 | "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", 2583 | "dev": true, 2584 | "requires": { 2585 | "repeating": "^2.0.0" 2586 | } 2587 | }, 2588 | "log-symbols": { 2589 | "version": "1.0.2", 2590 | "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", 2591 | "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", 2592 | "dev": true, 2593 | "requires": { 2594 | "chalk": "^1.0.0" 2595 | } 2596 | }, 2597 | "supports-color": { 2598 | "version": "2.0.0", 2599 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 2600 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", 2601 | "dev": true 2602 | } 2603 | } 2604 | }, 2605 | "listr-silent-renderer": { 2606 | "version": "1.1.1", 2607 | "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", 2608 | "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=", 2609 | "dev": true 2610 | }, 2611 | "listr-update-renderer": { 2612 | "version": "0.2.0", 2613 | "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.2.0.tgz", 2614 | "integrity": "sha1-yoDhd5tOcCZoB+ju0a1qvjmFUPk=", 2615 | "dev": true, 2616 | "requires": { 2617 | "chalk": "^1.1.3", 2618 | "cli-truncate": "^0.2.1", 2619 | "elegant-spinner": "^1.0.1", 2620 | "figures": "^1.7.0", 2621 | "indent-string": "^3.0.0", 2622 | "log-symbols": "^1.0.2", 2623 | "log-update": "^1.0.2", 2624 | "strip-ansi": "^3.0.1" 2625 | }, 2626 | "dependencies": { 2627 | "ansi-styles": { 2628 | "version": "2.2.1", 2629 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 2630 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", 2631 | "dev": true 2632 | }, 2633 | "chalk": { 2634 | "version": "1.1.3", 2635 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 2636 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 2637 | "dev": true, 2638 | "requires": { 2639 | "ansi-styles": "^2.2.1", 2640 | "escape-string-regexp": "^1.0.2", 2641 | "has-ansi": "^2.0.0", 2642 | "strip-ansi": "^3.0.0", 2643 | "supports-color": "^2.0.0" 2644 | } 2645 | }, 2646 | "log-symbols": { 2647 | "version": "1.0.2", 2648 | "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", 2649 | "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", 2650 | "dev": true, 2651 | "requires": { 2652 | "chalk": "^1.0.0" 2653 | } 2654 | }, 2655 | "supports-color": { 2656 | "version": "2.0.0", 2657 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 2658 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", 2659 | "dev": true 2660 | } 2661 | } 2662 | }, 2663 | "listr-verbose-renderer": { 2664 | "version": "0.4.1", 2665 | "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz", 2666 | "integrity": "sha1-ggb0z21S3cWCfl/RSYng6WWTOjU=", 2667 | "dev": true, 2668 | "requires": { 2669 | "chalk": "^1.1.3", 2670 | "cli-cursor": "^1.0.2", 2671 | "date-fns": "^1.27.2", 2672 | "figures": "^1.7.0" 2673 | }, 2674 | "dependencies": { 2675 | "ansi-styles": { 2676 | "version": "2.2.1", 2677 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 2678 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", 2679 | "dev": true 2680 | }, 2681 | "chalk": { 2682 | "version": "1.1.3", 2683 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 2684 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 2685 | "dev": true, 2686 | "requires": { 2687 | "ansi-styles": "^2.2.1", 2688 | "escape-string-regexp": "^1.0.2", 2689 | "has-ansi": "^2.0.0", 2690 | "strip-ansi": "^3.0.0", 2691 | "supports-color": "^2.0.0" 2692 | } 2693 | }, 2694 | "supports-color": { 2695 | "version": "2.0.0", 2696 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 2697 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", 2698 | "dev": true 2699 | } 2700 | } 2701 | }, 2702 | "load-json-file": { 2703 | "version": "4.0.0", 2704 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", 2705 | "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", 2706 | "dev": true, 2707 | "requires": { 2708 | "graceful-fs": "^4.1.2", 2709 | "parse-json": "^4.0.0", 2710 | "pify": "^3.0.0", 2711 | "strip-bom": "^3.0.0" 2712 | } 2713 | }, 2714 | "locate-path": { 2715 | "version": "2.0.0", 2716 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", 2717 | "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", 2718 | "dev": true, 2719 | "requires": { 2720 | "p-locate": "^2.0.0", 2721 | "path-exists": "^3.0.0" 2722 | } 2723 | }, 2724 | "lodash": { 2725 | "version": "4.17.11", 2726 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", 2727 | "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", 2728 | "dev": true 2729 | }, 2730 | "lodash._baseassign": { 2731 | "version": "3.2.0", 2732 | "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", 2733 | "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", 2734 | "dev": true, 2735 | "requires": { 2736 | "lodash._basecopy": "^3.0.0", 2737 | "lodash.keys": "^3.0.0" 2738 | } 2739 | }, 2740 | "lodash._basecopy": { 2741 | "version": "3.0.1", 2742 | "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", 2743 | "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", 2744 | "dev": true 2745 | }, 2746 | "lodash._bindcallback": { 2747 | "version": "3.0.1", 2748 | "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", 2749 | "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=", 2750 | "dev": true 2751 | }, 2752 | "lodash._createassigner": { 2753 | "version": "3.1.1", 2754 | "resolved": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz", 2755 | "integrity": "sha1-g4pbri/aymOsIt7o4Z+k5taXCxE=", 2756 | "dev": true, 2757 | "requires": { 2758 | "lodash._bindcallback": "^3.0.0", 2759 | "lodash._isiterateecall": "^3.0.0", 2760 | "lodash.restparam": "^3.0.0" 2761 | } 2762 | }, 2763 | "lodash._getnative": { 2764 | "version": "3.9.1", 2765 | "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", 2766 | "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", 2767 | "dev": true 2768 | }, 2769 | "lodash._isiterateecall": { 2770 | "version": "3.0.9", 2771 | "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", 2772 | "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", 2773 | "dev": true 2774 | }, 2775 | "lodash._reinterpolate": { 2776 | "version": "3.0.0", 2777 | "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", 2778 | "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", 2779 | "dev": true 2780 | }, 2781 | "lodash.assign": { 2782 | "version": "3.2.0", 2783 | "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.tgz", 2784 | "integrity": "sha1-POnwI0tLIiPilrj6CsH+6OvKZPo=", 2785 | "dev": true, 2786 | "requires": { 2787 | "lodash._baseassign": "^3.0.0", 2788 | "lodash._createassigner": "^3.0.0", 2789 | "lodash.keys": "^3.0.0" 2790 | } 2791 | }, 2792 | "lodash.isarguments": { 2793 | "version": "3.1.0", 2794 | "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", 2795 | "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", 2796 | "dev": true 2797 | }, 2798 | "lodash.isarray": { 2799 | "version": "3.0.4", 2800 | "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", 2801 | "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", 2802 | "dev": true 2803 | }, 2804 | "lodash.keys": { 2805 | "version": "3.1.2", 2806 | "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", 2807 | "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", 2808 | "dev": true, 2809 | "requires": { 2810 | "lodash._getnative": "^3.0.0", 2811 | "lodash.isarguments": "^3.0.0", 2812 | "lodash.isarray": "^3.0.0" 2813 | } 2814 | }, 2815 | "lodash.once": { 2816 | "version": "4.1.1", 2817 | "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", 2818 | "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", 2819 | "dev": true 2820 | }, 2821 | "lodash.restparam": { 2822 | "version": "3.6.1", 2823 | "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", 2824 | "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", 2825 | "dev": true 2826 | }, 2827 | "lodash.template": { 2828 | "version": "4.4.0", 2829 | "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", 2830 | "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=", 2831 | "dev": true, 2832 | "requires": { 2833 | "lodash._reinterpolate": "~3.0.0", 2834 | "lodash.templatesettings": "^4.0.0" 2835 | } 2836 | }, 2837 | "lodash.templatesettings": { 2838 | "version": "4.1.0", 2839 | "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz", 2840 | "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=", 2841 | "dev": true, 2842 | "requires": { 2843 | "lodash._reinterpolate": "~3.0.0" 2844 | } 2845 | }, 2846 | "log-symbols": { 2847 | "version": "2.2.0", 2848 | "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", 2849 | "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", 2850 | "dev": true, 2851 | "requires": { 2852 | "chalk": "^2.0.1" 2853 | } 2854 | }, 2855 | "log-update": { 2856 | "version": "1.0.2", 2857 | "resolved": "https://registry.npmjs.org/log-update/-/log-update-1.0.2.tgz", 2858 | "integrity": "sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE=", 2859 | "dev": true, 2860 | "requires": { 2861 | "ansi-escapes": "^1.0.0", 2862 | "cli-cursor": "^1.0.2" 2863 | } 2864 | }, 2865 | "loud-rejection": { 2866 | "version": "1.6.0", 2867 | "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", 2868 | "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", 2869 | "dev": true, 2870 | "requires": { 2871 | "currently-unhandled": "^0.4.1", 2872 | "signal-exit": "^3.0.0" 2873 | } 2874 | }, 2875 | "lowercase-keys": { 2876 | "version": "1.0.1", 2877 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", 2878 | "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", 2879 | "dev": true 2880 | }, 2881 | "lru-cache": { 2882 | "version": "4.1.5", 2883 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", 2884 | "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", 2885 | "dev": true, 2886 | "requires": { 2887 | "pseudomap": "^1.0.2", 2888 | "yallist": "^2.1.2" 2889 | } 2890 | }, 2891 | "map-obj": { 2892 | "version": "2.0.0", 2893 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", 2894 | "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", 2895 | "dev": true 2896 | }, 2897 | "meow": { 2898 | "version": "4.0.1", 2899 | "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", 2900 | "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", 2901 | "dev": true, 2902 | "requires": { 2903 | "camelcase-keys": "^4.0.0", 2904 | "decamelize-keys": "^1.0.0", 2905 | "loud-rejection": "^1.0.0", 2906 | "minimist": "^1.1.3", 2907 | "minimist-options": "^3.0.1", 2908 | "normalize-package-data": "^2.3.4", 2909 | "read-pkg-up": "^3.0.0", 2910 | "redent": "^2.0.0", 2911 | "trim-newlines": "^2.0.0" 2912 | } 2913 | }, 2914 | "mime": { 2915 | "version": "2.4.0", 2916 | "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz", 2917 | "integrity": "sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==", 2918 | "dev": true 2919 | }, 2920 | "mime-db": { 2921 | "version": "1.37.0", 2922 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", 2923 | "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==", 2924 | "dev": true 2925 | }, 2926 | "mime-types": { 2927 | "version": "2.1.21", 2928 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", 2929 | "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", 2930 | "dev": true, 2931 | "requires": { 2932 | "mime-db": "~1.37.0" 2933 | } 2934 | }, 2935 | "mimic-response": { 2936 | "version": "1.0.1", 2937 | "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", 2938 | "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", 2939 | "dev": true 2940 | }, 2941 | "minimatch": { 2942 | "version": "3.0.4", 2943 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 2944 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 2945 | "dev": true, 2946 | "requires": { 2947 | "brace-expansion": "^1.1.7" 2948 | } 2949 | }, 2950 | "minimist": { 2951 | "version": "1.2.0", 2952 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 2953 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", 2954 | "dev": true 2955 | }, 2956 | "minimist-options": { 2957 | "version": "3.0.2", 2958 | "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", 2959 | "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", 2960 | "dev": true, 2961 | "requires": { 2962 | "arrify": "^1.0.1", 2963 | "is-plain-obj": "^1.1.0" 2964 | } 2965 | }, 2966 | "mkdirp": { 2967 | "version": "0.5.1", 2968 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 2969 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 2970 | "dev": true, 2971 | "requires": { 2972 | "minimist": "0.0.8" 2973 | }, 2974 | "dependencies": { 2975 | "minimist": { 2976 | "version": "0.0.8", 2977 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 2978 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 2979 | "dev": true 2980 | } 2981 | } 2982 | }, 2983 | "modify-values": { 2984 | "version": "1.0.1", 2985 | "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", 2986 | "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", 2987 | "dev": true 2988 | }, 2989 | "moment": { 2990 | "version": "2.22.2", 2991 | "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz", 2992 | "integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=", 2993 | "dev": true 2994 | }, 2995 | "ms": { 2996 | "version": "2.1.1", 2997 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", 2998 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", 2999 | "dev": true 3000 | }, 3001 | "nerf-dart": { 3002 | "version": "1.0.0", 3003 | "resolved": "https://registry.npmjs.org/nerf-dart/-/nerf-dart-1.0.0.tgz", 3004 | "integrity": "sha1-5tq3/r9a2Bbqgc9cYpxaDr3nLBo=", 3005 | "dev": true 3006 | }, 3007 | "netrc": { 3008 | "version": "0.1.4", 3009 | "resolved": "https://registry.npmjs.org/netrc/-/netrc-0.1.4.tgz", 3010 | "integrity": "sha1-a+lPysqNd63gqWcNxGCRTJRHJEQ=", 3011 | "dev": true 3012 | }, 3013 | "nice-try": { 3014 | "version": "1.0.5", 3015 | "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", 3016 | "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", 3017 | "dev": true 3018 | }, 3019 | "nopt": { 3020 | "version": "4.0.1", 3021 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", 3022 | "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", 3023 | "dev": true, 3024 | "requires": { 3025 | "abbrev": "1", 3026 | "osenv": "^0.1.4" 3027 | } 3028 | }, 3029 | "normalize-package-data": { 3030 | "version": "2.5.0", 3031 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", 3032 | "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", 3033 | "dev": true, 3034 | "requires": { 3035 | "hosted-git-info": "^2.1.4", 3036 | "resolve": "^1.10.0", 3037 | "semver": "2 || 3 || 4 || 5", 3038 | "validate-npm-package-license": "^3.0.1" 3039 | } 3040 | }, 3041 | "normalize-url": { 3042 | "version": "2.0.1", 3043 | "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", 3044 | "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", 3045 | "dev": true, 3046 | "requires": { 3047 | "prepend-http": "^2.0.0", 3048 | "query-string": "^5.0.1", 3049 | "sort-keys": "^2.0.0" 3050 | } 3051 | }, 3052 | "npm-package-arg": { 3053 | "version": "6.1.0", 3054 | "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.0.tgz", 3055 | "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", 3056 | "dev": true, 3057 | "requires": { 3058 | "hosted-git-info": "^2.6.0", 3059 | "osenv": "^0.1.5", 3060 | "semver": "^5.5.0", 3061 | "validate-npm-package-name": "^3.0.0" 3062 | } 3063 | }, 3064 | "npm-registry-client": { 3065 | "version": "8.6.0", 3066 | "resolved": "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-8.6.0.tgz", 3067 | "integrity": "sha512-Qs6P6nnopig+Y8gbzpeN/dkt+n7IyVd8f45NTMotGk6Qo7GfBmzwYx6jRLoOOgKiMnaQfYxsuyQlD8Mc3guBhg==", 3068 | "dev": true, 3069 | "requires": { 3070 | "concat-stream": "^1.5.2", 3071 | "graceful-fs": "^4.1.6", 3072 | "normalize-package-data": "~1.0.1 || ^2.0.0", 3073 | "npm-package-arg": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0", 3074 | "npmlog": "2 || ^3.1.0 || ^4.0.0", 3075 | "once": "^1.3.3", 3076 | "request": "^2.74.0", 3077 | "retry": "^0.10.0", 3078 | "safe-buffer": "^5.1.1", 3079 | "semver": "2 >=2.2.1 || 3.x || 4 || 5", 3080 | "slide": "^1.1.3", 3081 | "ssri": "^5.2.4" 3082 | } 3083 | }, 3084 | "npm-run-path": { 3085 | "version": "2.0.2", 3086 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", 3087 | "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", 3088 | "dev": true, 3089 | "requires": { 3090 | "path-key": "^2.0.0" 3091 | } 3092 | }, 3093 | "npmconf": { 3094 | "version": "2.1.3", 3095 | "resolved": "https://registry.npmjs.org/npmconf/-/npmconf-2.1.3.tgz", 3096 | "integrity": "sha512-iTK+HI68GceCoGOHAQiJ/ik1iDfI7S+cgyG8A+PP18IU3X83kRhQIRhAUNj4Bp2JMx6Zrt5kCiozYa9uGWTjhA==", 3097 | "dev": true, 3098 | "requires": { 3099 | "config-chain": "~1.1.8", 3100 | "inherits": "~2.0.0", 3101 | "ini": "^1.2.0", 3102 | "mkdirp": "^0.5.0", 3103 | "nopt": "~3.0.1", 3104 | "once": "~1.3.0", 3105 | "osenv": "^0.1.0", 3106 | "safe-buffer": "^5.1.1", 3107 | "semver": "2 || 3 || 4", 3108 | "uid-number": "0.0.5" 3109 | }, 3110 | "dependencies": { 3111 | "nopt": { 3112 | "version": "3.0.6", 3113 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", 3114 | "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", 3115 | "dev": true, 3116 | "requires": { 3117 | "abbrev": "1" 3118 | } 3119 | }, 3120 | "once": { 3121 | "version": "1.3.3", 3122 | "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", 3123 | "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", 3124 | "dev": true, 3125 | "requires": { 3126 | "wrappy": "1" 3127 | } 3128 | }, 3129 | "semver": { 3130 | "version": "4.3.6", 3131 | "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", 3132 | "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", 3133 | "dev": true 3134 | } 3135 | } 3136 | }, 3137 | "npmlog": { 3138 | "version": "4.1.2", 3139 | "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", 3140 | "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", 3141 | "dev": true, 3142 | "requires": { 3143 | "are-we-there-yet": "~1.1.2", 3144 | "console-control-strings": "~1.1.0", 3145 | "gauge": "~2.7.3", 3146 | "set-blocking": "~2.0.0" 3147 | } 3148 | }, 3149 | "number-is-nan": { 3150 | "version": "1.0.1", 3151 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 3152 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", 3153 | "dev": true 3154 | }, 3155 | "oauth-sign": { 3156 | "version": "0.9.0", 3157 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", 3158 | "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", 3159 | "dev": true 3160 | }, 3161 | "object-assign": { 3162 | "version": "4.1.1", 3163 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 3164 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 3165 | "dev": true 3166 | }, 3167 | "once": { 3168 | "version": "1.4.0", 3169 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 3170 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 3171 | "dev": true, 3172 | "requires": { 3173 | "wrappy": "1" 3174 | } 3175 | }, 3176 | "onetime": { 3177 | "version": "1.1.0", 3178 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", 3179 | "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", 3180 | "dev": true 3181 | }, 3182 | "opener": { 3183 | "version": "1.4.3", 3184 | "resolved": "https://registry.npmjs.org/opener/-/opener-1.4.3.tgz", 3185 | "integrity": "sha1-XG2ixdflgx6P+jlklQ+NZnSskLg=", 3186 | "dev": true 3187 | }, 3188 | "optimist": { 3189 | "version": "0.6.1", 3190 | "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", 3191 | "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", 3192 | "dev": true, 3193 | "requires": { 3194 | "minimist": "~0.0.1", 3195 | "wordwrap": "~0.0.2" 3196 | }, 3197 | "dependencies": { 3198 | "minimist": { 3199 | "version": "0.0.10", 3200 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", 3201 | "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", 3202 | "dev": true 3203 | } 3204 | } 3205 | }, 3206 | "ora": { 3207 | "version": "0.2.3", 3208 | "resolved": "https://registry.npmjs.org/ora/-/ora-0.2.3.tgz", 3209 | "integrity": "sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q=", 3210 | "dev": true, 3211 | "requires": { 3212 | "chalk": "^1.1.1", 3213 | "cli-cursor": "^1.0.2", 3214 | "cli-spinners": "^0.1.2", 3215 | "object-assign": "^4.0.1" 3216 | }, 3217 | "dependencies": { 3218 | "ansi-styles": { 3219 | "version": "2.2.1", 3220 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 3221 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", 3222 | "dev": true 3223 | }, 3224 | "chalk": { 3225 | "version": "1.1.3", 3226 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 3227 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 3228 | "dev": true, 3229 | "requires": { 3230 | "ansi-styles": "^2.2.1", 3231 | "escape-string-regexp": "^1.0.2", 3232 | "has-ansi": "^2.0.0", 3233 | "strip-ansi": "^3.0.0", 3234 | "supports-color": "^2.0.0" 3235 | } 3236 | }, 3237 | "supports-color": { 3238 | "version": "2.0.0", 3239 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 3240 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", 3241 | "dev": true 3242 | } 3243 | } 3244 | }, 3245 | "os-homedir": { 3246 | "version": "1.0.2", 3247 | "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", 3248 | "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", 3249 | "dev": true 3250 | }, 3251 | "os-tmpdir": { 3252 | "version": "1.0.2", 3253 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 3254 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 3255 | "dev": true 3256 | }, 3257 | "osenv": { 3258 | "version": "0.1.5", 3259 | "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", 3260 | "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", 3261 | "dev": true, 3262 | "requires": { 3263 | "os-homedir": "^1.0.0", 3264 | "os-tmpdir": "^1.0.0" 3265 | } 3266 | }, 3267 | "p-cancelable": { 3268 | "version": "0.4.1", 3269 | "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", 3270 | "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==", 3271 | "dev": true 3272 | }, 3273 | "p-finally": { 3274 | "version": "1.0.0", 3275 | "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", 3276 | "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", 3277 | "dev": true 3278 | }, 3279 | "p-is-promise": { 3280 | "version": "1.1.0", 3281 | "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", 3282 | "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=", 3283 | "dev": true 3284 | }, 3285 | "p-limit": { 3286 | "version": "1.3.0", 3287 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", 3288 | "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", 3289 | "dev": true, 3290 | "requires": { 3291 | "p-try": "^1.0.0" 3292 | } 3293 | }, 3294 | "p-locate": { 3295 | "version": "2.0.0", 3296 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", 3297 | "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", 3298 | "dev": true, 3299 | "requires": { 3300 | "p-limit": "^1.1.0" 3301 | } 3302 | }, 3303 | "p-map": { 3304 | "version": "1.2.0", 3305 | "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", 3306 | "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", 3307 | "dev": true 3308 | }, 3309 | "p-reduce": { 3310 | "version": "1.0.0", 3311 | "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", 3312 | "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=", 3313 | "dev": true 3314 | }, 3315 | "p-retry": { 3316 | "version": "1.0.0", 3317 | "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-1.0.0.tgz", 3318 | "integrity": "sha1-OSczKkt9cCabU1UVEX/FR9oaaWg=", 3319 | "dev": true, 3320 | "requires": { 3321 | "retry": "^0.10.0" 3322 | } 3323 | }, 3324 | "p-series": { 3325 | "version": "1.1.0", 3326 | "resolved": "https://registry.npmjs.org/p-series/-/p-series-1.1.0.tgz", 3327 | "integrity": "sha512-356covArc9UCfj2twY/sxCJKGMzzO+pJJtucizsPC6aS1xKSTBc9PQrQhvFR3+7F+fa2KBKdJjdIcv6NEWDcIQ==", 3328 | "dev": true, 3329 | "requires": { 3330 | "@sindresorhus/is": "^0.7.0", 3331 | "p-reduce": "^1.0.0" 3332 | } 3333 | }, 3334 | "p-timeout": { 3335 | "version": "2.0.1", 3336 | "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", 3337 | "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", 3338 | "dev": true, 3339 | "requires": { 3340 | "p-finally": "^1.0.0" 3341 | } 3342 | }, 3343 | "p-try": { 3344 | "version": "1.0.0", 3345 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", 3346 | "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", 3347 | "dev": true 3348 | }, 3349 | "parse-github-repo-url": { 3350 | "version": "1.4.1", 3351 | "resolved": "https://registry.npmjs.org/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz", 3352 | "integrity": "sha1-nn2LslKmy2ukJZUGC3v23z28H1A=", 3353 | "dev": true 3354 | }, 3355 | "parse-json": { 3356 | "version": "4.0.0", 3357 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", 3358 | "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", 3359 | "dev": true, 3360 | "requires": { 3361 | "error-ex": "^1.3.1", 3362 | "json-parse-better-errors": "^1.0.1" 3363 | } 3364 | }, 3365 | "path-exists": { 3366 | "version": "3.0.0", 3367 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 3368 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", 3369 | "dev": true 3370 | }, 3371 | "path-is-absolute": { 3372 | "version": "1.0.1", 3373 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 3374 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 3375 | "dev": true 3376 | }, 3377 | "path-is-inside": { 3378 | "version": "1.0.2", 3379 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", 3380 | "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", 3381 | "dev": true 3382 | }, 3383 | "path-key": { 3384 | "version": "2.0.1", 3385 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", 3386 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", 3387 | "dev": true 3388 | }, 3389 | "path-object": { 3390 | "version": "2.3.0", 3391 | "resolved": "https://registry.npmjs.org/path-object/-/path-object-2.3.0.tgz", 3392 | "integrity": "sha1-A+RmU+XDdcYK8cq92UvGRIpdkRA=", 3393 | "dev": true, 3394 | "requires": { 3395 | "core-util-is": "^1.0.1", 3396 | "lodash.assign": "^3.0.0" 3397 | } 3398 | }, 3399 | "path-parse": { 3400 | "version": "1.0.6", 3401 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", 3402 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", 3403 | "dev": true 3404 | }, 3405 | "path-type": { 3406 | "version": "3.0.0", 3407 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", 3408 | "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", 3409 | "dev": true, 3410 | "requires": { 3411 | "pify": "^3.0.0" 3412 | } 3413 | }, 3414 | "pend": { 3415 | "version": "1.2.0", 3416 | "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", 3417 | "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", 3418 | "dev": true 3419 | }, 3420 | "performance-now": { 3421 | "version": "2.1.0", 3422 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", 3423 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", 3424 | "dev": true 3425 | }, 3426 | "pify": { 3427 | "version": "3.0.0", 3428 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", 3429 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", 3430 | "dev": true 3431 | }, 3432 | "pinkie": { 3433 | "version": "2.0.4", 3434 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 3435 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", 3436 | "dev": true 3437 | }, 3438 | "pinkie-promise": { 3439 | "version": "2.0.1", 3440 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 3441 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", 3442 | "dev": true, 3443 | "requires": { 3444 | "pinkie": "^2.0.0" 3445 | } 3446 | }, 3447 | "portfinder": { 3448 | "version": "1.0.20", 3449 | "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.20.tgz", 3450 | "integrity": "sha512-Yxe4mTyDzTd59PZJY4ojZR8F+E5e97iq2ZOHPz3HDgSvYC5siNad2tLooQ5y5QHyQhc3xVqvyk/eNA3wuoa7Sw==", 3451 | "dev": true, 3452 | "requires": { 3453 | "async": "^1.5.2", 3454 | "debug": "^2.2.0", 3455 | "mkdirp": "0.5.x" 3456 | }, 3457 | "dependencies": { 3458 | "async": { 3459 | "version": "1.5.2", 3460 | "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", 3461 | "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", 3462 | "dev": true 3463 | }, 3464 | "debug": { 3465 | "version": "2.6.9", 3466 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 3467 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 3468 | "dev": true, 3469 | "requires": { 3470 | "ms": "2.0.0" 3471 | } 3472 | }, 3473 | "ms": { 3474 | "version": "2.0.0", 3475 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 3476 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 3477 | "dev": true 3478 | } 3479 | } 3480 | }, 3481 | "prepend-http": { 3482 | "version": "2.0.0", 3483 | "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", 3484 | "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", 3485 | "dev": true 3486 | }, 3487 | "process-nextick-args": { 3488 | "version": "2.0.0", 3489 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", 3490 | "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", 3491 | "dev": true 3492 | }, 3493 | "proto-list": { 3494 | "version": "1.2.4", 3495 | "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", 3496 | "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", 3497 | "dev": true 3498 | }, 3499 | "pseudomap": { 3500 | "version": "1.0.2", 3501 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", 3502 | "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", 3503 | "dev": true 3504 | }, 3505 | "psl": { 3506 | "version": "1.1.31", 3507 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", 3508 | "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==", 3509 | "dev": true 3510 | }, 3511 | "punycode": { 3512 | "version": "2.1.1", 3513 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 3514 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 3515 | "dev": true 3516 | }, 3517 | "q": { 3518 | "version": "1.5.1", 3519 | "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", 3520 | "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", 3521 | "dev": true 3522 | }, 3523 | "qs": { 3524 | "version": "6.5.2", 3525 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", 3526 | "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", 3527 | "dev": true 3528 | }, 3529 | "query-string": { 3530 | "version": "5.1.1", 3531 | "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", 3532 | "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", 3533 | "dev": true, 3534 | "requires": { 3535 | "decode-uri-component": "^0.2.0", 3536 | "object-assign": "^4.1.0", 3537 | "strict-uri-encode": "^1.0.0" 3538 | } 3539 | }, 3540 | "querystring": { 3541 | "version": "0.2.0", 3542 | "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", 3543 | "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", 3544 | "dev": true 3545 | }, 3546 | "quick-lru": { 3547 | "version": "1.1.0", 3548 | "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", 3549 | "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", 3550 | "dev": true 3551 | }, 3552 | "ramda": { 3553 | "version": "0.24.1", 3554 | "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.24.1.tgz", 3555 | "integrity": "sha1-w7d1UZfzW43DUCIoJixMkd22uFc=", 3556 | "dev": true 3557 | }, 3558 | "read-pkg": { 3559 | "version": "3.0.0", 3560 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", 3561 | "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", 3562 | "dev": true, 3563 | "requires": { 3564 | "load-json-file": "^4.0.0", 3565 | "normalize-package-data": "^2.3.2", 3566 | "path-type": "^3.0.0" 3567 | } 3568 | }, 3569 | "read-pkg-up": { 3570 | "version": "3.0.0", 3571 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", 3572 | "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", 3573 | "dev": true, 3574 | "requires": { 3575 | "find-up": "^2.0.0", 3576 | "read-pkg": "^3.0.0" 3577 | } 3578 | }, 3579 | "readable-stream": { 3580 | "version": "2.3.6", 3581 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", 3582 | "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", 3583 | "dev": true, 3584 | "requires": { 3585 | "core-util-is": "~1.0.0", 3586 | "inherits": "~2.0.3", 3587 | "isarray": "~1.0.0", 3588 | "process-nextick-args": "~2.0.0", 3589 | "safe-buffer": "~5.1.1", 3590 | "string_decoder": "~1.1.1", 3591 | "util-deprecate": "~1.0.1" 3592 | } 3593 | }, 3594 | "redent": { 3595 | "version": "2.0.0", 3596 | "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", 3597 | "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", 3598 | "dev": true, 3599 | "requires": { 3600 | "indent-string": "^3.0.0", 3601 | "strip-indent": "^2.0.0" 3602 | } 3603 | }, 3604 | "regenerator-runtime": { 3605 | "version": "0.11.1", 3606 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", 3607 | "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", 3608 | "dev": true 3609 | }, 3610 | "repeating": { 3611 | "version": "2.0.1", 3612 | "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", 3613 | "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", 3614 | "dev": true, 3615 | "requires": { 3616 | "is-finite": "^1.0.0" 3617 | } 3618 | }, 3619 | "request": { 3620 | "version": "2.88.0", 3621 | "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", 3622 | "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", 3623 | "dev": true, 3624 | "requires": { 3625 | "aws-sign2": "~0.7.0", 3626 | "aws4": "^1.8.0", 3627 | "caseless": "~0.12.0", 3628 | "combined-stream": "~1.0.6", 3629 | "extend": "~3.0.2", 3630 | "forever-agent": "~0.6.1", 3631 | "form-data": "~2.3.2", 3632 | "har-validator": "~5.1.0", 3633 | "http-signature": "~1.2.0", 3634 | "is-typedarray": "~1.0.0", 3635 | "isstream": "~0.1.2", 3636 | "json-stringify-safe": "~5.0.1", 3637 | "mime-types": "~2.1.19", 3638 | "oauth-sign": "~0.9.0", 3639 | "performance-now": "^2.1.0", 3640 | "qs": "~6.5.2", 3641 | "safe-buffer": "^5.1.2", 3642 | "tough-cookie": "~2.4.3", 3643 | "tunnel-agent": "^0.6.0", 3644 | "uuid": "^3.3.2" 3645 | } 3646 | }, 3647 | "request-progress": { 3648 | "version": "0.3.1", 3649 | "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-0.3.1.tgz", 3650 | "integrity": "sha1-ByHBBdipasayzossia4tXs/Pazo=", 3651 | "dev": true, 3652 | "requires": { 3653 | "throttleit": "~0.0.2" 3654 | } 3655 | }, 3656 | "require-relative": { 3657 | "version": "0.8.7", 3658 | "resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz", 3659 | "integrity": "sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=", 3660 | "dev": true 3661 | }, 3662 | "requires-port": { 3663 | "version": "1.0.0", 3664 | "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", 3665 | "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", 3666 | "dev": true 3667 | }, 3668 | "resolve": { 3669 | "version": "1.10.0", 3670 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz", 3671 | "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==", 3672 | "dev": true, 3673 | "requires": { 3674 | "path-parse": "^1.0.6" 3675 | } 3676 | }, 3677 | "resolve-from": { 3678 | "version": "3.0.0", 3679 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", 3680 | "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", 3681 | "dev": true 3682 | }, 3683 | "responselike": { 3684 | "version": "1.0.2", 3685 | "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", 3686 | "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", 3687 | "dev": true, 3688 | "requires": { 3689 | "lowercase-keys": "^1.0.0" 3690 | } 3691 | }, 3692 | "restore-cursor": { 3693 | "version": "1.0.1", 3694 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", 3695 | "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", 3696 | "dev": true, 3697 | "requires": { 3698 | "exit-hook": "^1.0.0", 3699 | "onetime": "^1.0.0" 3700 | } 3701 | }, 3702 | "retry": { 3703 | "version": "0.10.1", 3704 | "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", 3705 | "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", 3706 | "dev": true 3707 | }, 3708 | "rxjs": { 3709 | "version": "5.5.12", 3710 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz", 3711 | "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==", 3712 | "dev": true, 3713 | "requires": { 3714 | "symbol-observable": "1.0.1" 3715 | } 3716 | }, 3717 | "safe-buffer": { 3718 | "version": "5.1.2", 3719 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 3720 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", 3721 | "dev": true 3722 | }, 3723 | "safer-buffer": { 3724 | "version": "2.1.2", 3725 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 3726 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", 3727 | "dev": true 3728 | }, 3729 | "semantic-release": { 3730 | "version": "8.2.3", 3731 | "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-8.2.3.tgz", 3732 | "integrity": "sha512-L0EKspX5xaPKhrrZWwbdlydwk+uXQG+SadYlaQjYQJjaBSfptd+jL6FRu3LspZoLxvKF8yQWe4sYAySHcp69aw==", 3733 | "dev": true, 3734 | "requires": { 3735 | "@semantic-release/commit-analyzer": "^3.0.1", 3736 | "@semantic-release/condition-travis": "^6.0.0", 3737 | "@semantic-release/error": "^2.0.0", 3738 | "@semantic-release/last-release-npm": "^2.0.0", 3739 | "@semantic-release/release-notes-generator": "^4.0.0", 3740 | "execa": "^0.8.0", 3741 | "fs-extra": "^4.0.2", 3742 | "git-head": "^1.2.1", 3743 | "github": "^12.0.0", 3744 | "lodash": "^4.0.0", 3745 | "nerf-dart": "^1.0.0", 3746 | "nopt": "^4.0.0", 3747 | "normalize-package-data": "^2.3.4", 3748 | "npmconf": "^2.1.2", 3749 | "npmlog": "^4.0.0", 3750 | "p-series": "^1.0.0", 3751 | "parse-github-repo-url": "^1.3.0", 3752 | "require-relative": "^0.8.7", 3753 | "semver": "^5.4.1" 3754 | } 3755 | }, 3756 | "semver": { 3757 | "version": "5.6.0", 3758 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", 3759 | "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", 3760 | "dev": true 3761 | }, 3762 | "set-blocking": { 3763 | "version": "2.0.0", 3764 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 3765 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", 3766 | "dev": true 3767 | }, 3768 | "shebang-command": { 3769 | "version": "1.2.0", 3770 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 3771 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", 3772 | "dev": true, 3773 | "requires": { 3774 | "shebang-regex": "^1.0.0" 3775 | } 3776 | }, 3777 | "shebang-regex": { 3778 | "version": "1.0.0", 3779 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 3780 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", 3781 | "dev": true 3782 | }, 3783 | "signal-exit": { 3784 | "version": "3.0.2", 3785 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", 3786 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", 3787 | "dev": true 3788 | }, 3789 | "slash": { 3790 | "version": "1.0.0", 3791 | "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", 3792 | "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", 3793 | "dev": true 3794 | }, 3795 | "slice-ansi": { 3796 | "version": "0.0.4", 3797 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", 3798 | "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", 3799 | "dev": true 3800 | }, 3801 | "slide": { 3802 | "version": "1.1.6", 3803 | "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", 3804 | "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", 3805 | "dev": true 3806 | }, 3807 | "sort-keys": { 3808 | "version": "2.0.0", 3809 | "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", 3810 | "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", 3811 | "dev": true, 3812 | "requires": { 3813 | "is-plain-obj": "^1.0.0" 3814 | } 3815 | }, 3816 | "source-map": { 3817 | "version": "0.6.1", 3818 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 3819 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 3820 | "dev": true 3821 | }, 3822 | "source-map-support": { 3823 | "version": "0.5.10", 3824 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.10.tgz", 3825 | "integrity": "sha512-YfQ3tQFTK/yzlGJuX8pTwa4tifQj4QS2Mj7UegOu8jAz59MqIiMGPXxQhVQiIMNzayuUSF/jEuVnfFF5JqybmQ==", 3826 | "dev": true, 3827 | "requires": { 3828 | "buffer-from": "^1.0.0", 3829 | "source-map": "^0.6.0" 3830 | } 3831 | }, 3832 | "spdx-correct": { 3833 | "version": "3.1.0", 3834 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", 3835 | "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", 3836 | "dev": true, 3837 | "requires": { 3838 | "spdx-expression-parse": "^3.0.0", 3839 | "spdx-license-ids": "^3.0.0" 3840 | } 3841 | }, 3842 | "spdx-exceptions": { 3843 | "version": "2.2.0", 3844 | "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", 3845 | "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", 3846 | "dev": true 3847 | }, 3848 | "spdx-expression-parse": { 3849 | "version": "3.0.0", 3850 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", 3851 | "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", 3852 | "dev": true, 3853 | "requires": { 3854 | "spdx-exceptions": "^2.1.0", 3855 | "spdx-license-ids": "^3.0.0" 3856 | } 3857 | }, 3858 | "spdx-license-ids": { 3859 | "version": "3.0.3", 3860 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz", 3861 | "integrity": "sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g==", 3862 | "dev": true 3863 | }, 3864 | "split": { 3865 | "version": "1.0.1", 3866 | "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", 3867 | "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", 3868 | "dev": true, 3869 | "requires": { 3870 | "through": "2" 3871 | } 3872 | }, 3873 | "split2": { 3874 | "version": "2.2.0", 3875 | "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz", 3876 | "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", 3877 | "dev": true, 3878 | "requires": { 3879 | "through2": "^2.0.2" 3880 | } 3881 | }, 3882 | "sshpk": { 3883 | "version": "1.16.1", 3884 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", 3885 | "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", 3886 | "dev": true, 3887 | "requires": { 3888 | "asn1": "~0.2.3", 3889 | "assert-plus": "^1.0.0", 3890 | "bcrypt-pbkdf": "^1.0.0", 3891 | "dashdash": "^1.12.0", 3892 | "ecc-jsbn": "~0.1.1", 3893 | "getpass": "^0.1.1", 3894 | "jsbn": "~0.1.0", 3895 | "safer-buffer": "^2.0.2", 3896 | "tweetnacl": "~0.14.0" 3897 | } 3898 | }, 3899 | "ssri": { 3900 | "version": "5.3.0", 3901 | "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", 3902 | "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", 3903 | "dev": true, 3904 | "requires": { 3905 | "safe-buffer": "^5.1.1" 3906 | } 3907 | }, 3908 | "stream-to-observable": { 3909 | "version": "0.1.0", 3910 | "resolved": "https://registry.npmjs.org/stream-to-observable/-/stream-to-observable-0.1.0.tgz", 3911 | "integrity": "sha1-Rb8dny19wJvtgfHDB8Qw5ouEz/4=", 3912 | "dev": true 3913 | }, 3914 | "strict-uri-encode": { 3915 | "version": "1.1.0", 3916 | "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", 3917 | "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", 3918 | "dev": true 3919 | }, 3920 | "string-width": { 3921 | "version": "1.0.2", 3922 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 3923 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 3924 | "dev": true, 3925 | "requires": { 3926 | "code-point-at": "^1.0.0", 3927 | "is-fullwidth-code-point": "^1.0.0", 3928 | "strip-ansi": "^3.0.0" 3929 | } 3930 | }, 3931 | "string_decoder": { 3932 | "version": "1.1.1", 3933 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 3934 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 3935 | "dev": true, 3936 | "requires": { 3937 | "safe-buffer": "~5.1.0" 3938 | } 3939 | }, 3940 | "strip-ansi": { 3941 | "version": "3.0.1", 3942 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 3943 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 3944 | "dev": true, 3945 | "requires": { 3946 | "ansi-regex": "^2.0.0" 3947 | } 3948 | }, 3949 | "strip-bom": { 3950 | "version": "3.0.0", 3951 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", 3952 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", 3953 | "dev": true 3954 | }, 3955 | "strip-eof": { 3956 | "version": "1.0.0", 3957 | "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", 3958 | "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", 3959 | "dev": true 3960 | }, 3961 | "strip-indent": { 3962 | "version": "2.0.0", 3963 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", 3964 | "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", 3965 | "dev": true 3966 | }, 3967 | "supports-color": { 3968 | "version": "5.5.0", 3969 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 3970 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 3971 | "dev": true, 3972 | "requires": { 3973 | "has-flag": "^3.0.0" 3974 | } 3975 | }, 3976 | "symbol-observable": { 3977 | "version": "1.0.1", 3978 | "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", 3979 | "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", 3980 | "dev": true 3981 | }, 3982 | "terser": { 3983 | "version": "3.16.1", 3984 | "resolved": "https://registry.npmjs.org/terser/-/terser-3.16.1.tgz", 3985 | "integrity": "sha512-JDJjgleBROeek2iBcSNzOHLKsB/MdDf+E/BOAJ0Tk9r7p9/fVobfv7LMJ/g/k3v9SXdmjZnIlFd5nfn/Rt0Xow==", 3986 | "dev": true, 3987 | "requires": { 3988 | "commander": "~2.17.1", 3989 | "source-map": "~0.6.1", 3990 | "source-map-support": "~0.5.9" 3991 | } 3992 | }, 3993 | "text-extensions": { 3994 | "version": "1.9.0", 3995 | "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", 3996 | "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", 3997 | "dev": true 3998 | }, 3999 | "throttleit": { 4000 | "version": "0.0.2", 4001 | "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz", 4002 | "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=", 4003 | "dev": true 4004 | }, 4005 | "through": { 4006 | "version": "2.3.8", 4007 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 4008 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", 4009 | "dev": true 4010 | }, 4011 | "through2": { 4012 | "version": "2.0.5", 4013 | "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", 4014 | "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", 4015 | "dev": true, 4016 | "requires": { 4017 | "readable-stream": "~2.3.6", 4018 | "xtend": "~4.0.1" 4019 | } 4020 | }, 4021 | "timed-out": { 4022 | "version": "4.0.1", 4023 | "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", 4024 | "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", 4025 | "dev": true 4026 | }, 4027 | "tmp": { 4028 | "version": "0.0.31", 4029 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz", 4030 | "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=", 4031 | "dev": true, 4032 | "requires": { 4033 | "os-tmpdir": "~1.0.1" 4034 | } 4035 | }, 4036 | "tough-cookie": { 4037 | "version": "2.4.3", 4038 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", 4039 | "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", 4040 | "dev": true, 4041 | "requires": { 4042 | "psl": "^1.1.24", 4043 | "punycode": "^1.4.1" 4044 | }, 4045 | "dependencies": { 4046 | "punycode": { 4047 | "version": "1.4.1", 4048 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 4049 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", 4050 | "dev": true 4051 | } 4052 | } 4053 | }, 4054 | "travis-deploy-once": { 4055 | "version": "3.3.0", 4056 | "resolved": "https://registry.npmjs.org/travis-deploy-once/-/travis-deploy-once-3.3.0.tgz", 4057 | "integrity": "sha512-N0l+sdYHMQbJmQWfjmxkKRJrMWJ+52Ve1dhGDiPhGXFiWO0A0zSeTxiFujz0rSOLOl9OhsZ9EMlJh2lNrgGugA==", 4058 | "dev": true, 4059 | "requires": { 4060 | "chalk": "^2.1.0", 4061 | "got": "^8.0.1", 4062 | "p-retry": "^1.0.0", 4063 | "semver": "^5.4.1", 4064 | "url-join": "^2.0.2" 4065 | } 4066 | }, 4067 | "trim-newlines": { 4068 | "version": "2.0.0", 4069 | "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", 4070 | "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", 4071 | "dev": true 4072 | }, 4073 | "trim-off-newlines": { 4074 | "version": "1.0.1", 4075 | "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz", 4076 | "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=", 4077 | "dev": true 4078 | }, 4079 | "tunnel-agent": { 4080 | "version": "0.6.0", 4081 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 4082 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 4083 | "dev": true, 4084 | "requires": { 4085 | "safe-buffer": "^5.0.1" 4086 | } 4087 | }, 4088 | "tweetnacl": { 4089 | "version": "0.14.5", 4090 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", 4091 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", 4092 | "dev": true 4093 | }, 4094 | "typedarray": { 4095 | "version": "0.0.6", 4096 | "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", 4097 | "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", 4098 | "dev": true 4099 | }, 4100 | "uglify-js": { 4101 | "version": "3.4.9", 4102 | "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz", 4103 | "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==", 4104 | "dev": true, 4105 | "optional": true, 4106 | "requires": { 4107 | "commander": "~2.17.1", 4108 | "source-map": "~0.6.1" 4109 | } 4110 | }, 4111 | "uid-number": { 4112 | "version": "0.0.5", 4113 | "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.5.tgz", 4114 | "integrity": "sha1-Wj2yPvXb1VuB/ODsmirG/M3ruB4=", 4115 | "dev": true 4116 | }, 4117 | "union": { 4118 | "version": "0.4.6", 4119 | "resolved": "https://registry.npmjs.org/union/-/union-0.4.6.tgz", 4120 | "integrity": "sha1-GY+9rrolTniLDvy2MLwR8kopWeA=", 4121 | "dev": true, 4122 | "requires": { 4123 | "qs": "~2.3.3" 4124 | }, 4125 | "dependencies": { 4126 | "qs": { 4127 | "version": "2.3.3", 4128 | "resolved": "https://registry.npmjs.org/qs/-/qs-2.3.3.tgz", 4129 | "integrity": "sha1-6eha2+ddoLvkyOBHaghikPhjtAQ=", 4130 | "dev": true 4131 | } 4132 | } 4133 | }, 4134 | "universalify": { 4135 | "version": "0.1.2", 4136 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", 4137 | "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", 4138 | "dev": true 4139 | }, 4140 | "uri-js": { 4141 | "version": "4.2.2", 4142 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", 4143 | "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", 4144 | "dev": true, 4145 | "requires": { 4146 | "punycode": "^2.1.0" 4147 | } 4148 | }, 4149 | "url": { 4150 | "version": "0.11.0", 4151 | "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", 4152 | "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", 4153 | "dev": true, 4154 | "requires": { 4155 | "punycode": "1.3.2", 4156 | "querystring": "0.2.0" 4157 | }, 4158 | "dependencies": { 4159 | "punycode": { 4160 | "version": "1.3.2", 4161 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", 4162 | "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", 4163 | "dev": true 4164 | } 4165 | } 4166 | }, 4167 | "url-join": { 4168 | "version": "2.0.5", 4169 | "resolved": "https://registry.npmjs.org/url-join/-/url-join-2.0.5.tgz", 4170 | "integrity": "sha1-WvIvGMBSoACkjXuCxenC4v7tpyg=", 4171 | "dev": true 4172 | }, 4173 | "url-parse-lax": { 4174 | "version": "3.0.0", 4175 | "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", 4176 | "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", 4177 | "dev": true, 4178 | "requires": { 4179 | "prepend-http": "^2.0.0" 4180 | } 4181 | }, 4182 | "url-to-options": { 4183 | "version": "1.0.1", 4184 | "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", 4185 | "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=", 4186 | "dev": true 4187 | }, 4188 | "util-deprecate": { 4189 | "version": "1.0.2", 4190 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 4191 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 4192 | "dev": true 4193 | }, 4194 | "uuid": { 4195 | "version": "3.3.2", 4196 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", 4197 | "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", 4198 | "dev": true 4199 | }, 4200 | "validate-npm-package-license": { 4201 | "version": "3.0.4", 4202 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", 4203 | "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", 4204 | "dev": true, 4205 | "requires": { 4206 | "spdx-correct": "^3.0.0", 4207 | "spdx-expression-parse": "^3.0.0" 4208 | } 4209 | }, 4210 | "validate-npm-package-name": { 4211 | "version": "3.0.0", 4212 | "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", 4213 | "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", 4214 | "dev": true, 4215 | "requires": { 4216 | "builtins": "^1.0.3" 4217 | } 4218 | }, 4219 | "verror": { 4220 | "version": "1.10.0", 4221 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 4222 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", 4223 | "dev": true, 4224 | "requires": { 4225 | "assert-plus": "^1.0.0", 4226 | "core-util-is": "1.0.2", 4227 | "extsprintf": "^1.2.0" 4228 | } 4229 | }, 4230 | "walk": { 4231 | "version": "2.3.14", 4232 | "resolved": "https://registry.npmjs.org/walk/-/walk-2.3.14.tgz", 4233 | "integrity": "sha512-5skcWAUmySj6hkBdH6B6+3ddMjVQYH5Qy9QGbPmN8kVmLteXk+yVXg+yfk1nbX30EYakahLrr8iPcCxJQSCBeg==", 4234 | "dev": true, 4235 | "requires": { 4236 | "foreachasync": "^3.0.0" 4237 | } 4238 | }, 4239 | "which": { 4240 | "version": "1.3.1", 4241 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 4242 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 4243 | "dev": true, 4244 | "requires": { 4245 | "isexe": "^2.0.0" 4246 | } 4247 | }, 4248 | "wide-align": { 4249 | "version": "1.1.3", 4250 | "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", 4251 | "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", 4252 | "dev": true, 4253 | "requires": { 4254 | "string-width": "^1.0.2 || 2" 4255 | } 4256 | }, 4257 | "wordwrap": { 4258 | "version": "0.0.3", 4259 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", 4260 | "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", 4261 | "dev": true 4262 | }, 4263 | "wrappy": { 4264 | "version": "1.0.2", 4265 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 4266 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 4267 | "dev": true 4268 | }, 4269 | "xtend": { 4270 | "version": "4.0.1", 4271 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", 4272 | "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", 4273 | "dev": true 4274 | }, 4275 | "yallist": { 4276 | "version": "2.1.2", 4277 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", 4278 | "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", 4279 | "dev": true 4280 | }, 4281 | "yauzl": { 4282 | "version": "2.8.0", 4283 | "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.8.0.tgz", 4284 | "integrity": "sha1-eUUK/yKyqcWkHvVOAtuQfM+/nuI=", 4285 | "dev": true, 4286 | "requires": { 4287 | "buffer-crc32": "~0.2.3", 4288 | "fd-slicer": "~1.0.1" 4289 | } 4290 | } 4291 | } 4292 | } 4293 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "subresource-integrity-fallback", 3 | "version": "0.0.0-development", 4 | "description": "Subresource Integrity fallback script", 5 | "main": "dist/sri.min.js", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/JackuB/subresource-integrity-fallback.git" 9 | }, 10 | "keywords": [ 11 | "subresource", 12 | "integrity", 13 | "sri", 14 | "security" 15 | ], 16 | "author": "JackuB", 17 | "license": "MIT", 18 | "bugs": { 19 | "url": "https://github.com/JackuB/subresource-integrity-fallback/issues" 20 | }, 21 | "homepage": "https://sri.js.org", 22 | "scripts": { 23 | "test": "cypress run", 24 | "semantic-release": "semantic-release pre && npm publish && semantic-release post", 25 | "cypress:open": "cypress open", 26 | "serve": "npm run build && http-server ./ -p 8080", 27 | "build": "terser src/sri.js --compress --mangle --output dist/sri.min.js" 28 | }, 29 | "devDependencies": { 30 | "cypress": "^3.1.5", 31 | "http-server": "^0.11.1", 32 | "semantic-release": "^8.0.3", 33 | "terser": "^3.16.1" 34 | }, 35 | "dependencies": {} 36 | } 37 | -------------------------------------------------------------------------------- /src/sri.js: -------------------------------------------------------------------------------- 1 | try {(function() { 2 | // Function called on failure: 3 | // - `Error` as first argument 4 | // - `bool` whether it was a fallback failure 5 | const loadErrCb = window.resourceLoadError || (() => {}); 6 | 7 | // Internal way to recognize fallback loads 8 | const retryAttr = 'data-sri-fallback-retry'; 9 | 10 | // HTML attribute used to describe fallback URL 11 | const fbAttr = 'data-sri-fallback'; 12 | 13 | const MutationObserver = window.MutationObserver || window.WebKitMutationObserver; 14 | // Browsers without MO won't support SRI 15 | if(MutationObserver) { 16 | new MutationObserver(function(mutations) { 17 | mutations.forEach(function(mutation) { 18 | mutation.addedNodes.forEach(processNode); 19 | }); 20 | }).observe(document, { childList: true, subtree: true }); 21 | } 22 | 23 | const processNode = function(node) { 24 | const tagName = (node.tagName || '').toLowerCase(); 25 | if ( 26 | (tagName === 'link' || tagName === 'script') 27 | && node.integrity 28 | && !node.getAttribute(retryAttr) 29 | ) { 30 | node.onerror = function(e) { 31 | if (node.getAttribute(fbAttr)) { 32 | const fb = document.createElement(tagName); 33 | const parent = node.parentNode; 34 | 35 | fb.setAttribute(retryAttr, '1'); 36 | fb.setAttribute('integrity', node.integrity); 37 | 38 | if (node.src) fb.setAttribute('src', node.getAttribute(fbAttr)); 39 | if (node.href) fb.setAttribute('href', node.getAttribute(fbAttr)); 40 | 41 | fb.onerror = function(e) { 42 | loadErrCb(e, true); 43 | }; 44 | 45 | parent.appendChild(fb); 46 | node.remove(); 47 | } else { 48 | loadErrCb(e, false); 49 | } 50 | }; 51 | } 52 | }; 53 | })();} catch(e) {console.error(e)}; 54 | --------------------------------------------------------------------------------