├── .gitignore ├── LICENSE ├── README.md ├── index.js ├── package-lock.json └── package.json /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Created by https://www.gitignore.io/api/node 3 | # Edit at https://www.gitignore.io/?templates=node 4 | 5 | ### Node ### 6 | # Logs 7 | logs 8 | *.log 9 | npm-debug.log* 10 | yarn-debug.log* 11 | yarn-error.log* 12 | 13 | # Runtime data 14 | pids 15 | *.pid 16 | *.seed 17 | *.pid.lock 18 | 19 | # Directory for instrumented libs generated by jscoverage/JSCover 20 | lib-cov 21 | 22 | # Coverage directory used by tools like istanbul 23 | coverage 24 | 25 | # nyc test coverage 26 | .nyc_output 27 | 28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 29 | .grunt 30 | 31 | # Bower dependency directory (https://bower.io/) 32 | bower_components 33 | 34 | # node-waf configuration 35 | .lock-wscript 36 | 37 | # Compiled binary addons (https://nodejs.org/api/addons.html) 38 | build/Release 39 | 40 | # Dependency directories 41 | node_modules/ 42 | jspm_packages/ 43 | 44 | # TypeScript v1 declaration files 45 | typings/ 46 | 47 | # Optional npm cache directory 48 | .npm 49 | 50 | # Optional eslint cache 51 | .eslintcache 52 | 53 | # Optional REPL history 54 | .node_repl_history 55 | 56 | # Output of 'npm pack' 57 | *.tgz 58 | 59 | # Yarn Integrity file 60 | .yarn-integrity 61 | 62 | # dotenv environment variables file 63 | .env 64 | .env.test 65 | 66 | # parcel-bundler cache (https://parceljs.org/) 67 | .cache 68 | 69 | # next.js build output 70 | .next 71 | 72 | # nuxt.js build output 73 | .nuxt 74 | 75 | # vuepress build output 76 | .vuepress/dist 77 | 78 | # Serverless directories 79 | .serverless/ 80 | 81 | # FuseBox cache 82 | .fusebox/ 83 | 84 | # DynamoDB Local files 85 | .dynamodb/ 86 | 87 | # End of https://www.gitignore.io/api/node 88 | 89 | # the default posts output directory 90 | posts/ -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Michael Scharnagl 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 | # html posts to markdown 2 | 3 | A node.js tool to extract html posts from webpages using [puppeteer 4 | ](https://github.com/GoogleChrome/puppeteer), extract them to markdown and save them. 5 | 6 | ## Disclaimer 7 | 8 | I haven't really tested this and there are many things missing, but it works for my use case. 9 | 10 | ## Setup 11 | 12 | 1) Clone the repository 13 | 2) Run ```npm install ``` 14 | 15 | ## Usage 16 | 17 | ```bash 18 | node index.js --url="https://justmarkup.com" --postSelector=".main .article h2 a" --titleSelector=".article h1" --contentSelector=".article .entry-content" --dir="/posts/" 19 | ``` 20 | 21 | ## Options 22 | 23 | | Option | Default | Description | 24 | | :-------------------- | :------ | :---------------- 25 | | `--url` | https://justmarkup.com | The entry page containing links to the posts 26 | | `--postSelector` | .main .article h2 a | The selector for all the links to your posts 27 | | `--titleSelector` | .article h1 | The selector for the title of your post 28 | | `--contentSelector` | .article .entry-content | The selector for the content wrapper of your post 29 | | `--dir` | /posts/ | The directory where the posts should be saved 30 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | const puppeteer = require('puppeteer'); 2 | const TurndownService = require('turndown'); 3 | const fs = require('fs'); 4 | const args = require('yargs').argv; 5 | 6 | const turndownService = new TurndownService(); 7 | 8 | // check for line arguments and define default values 9 | const pageURL = args.url ? args.url : 'https://justmarkup.com'; 10 | const postsSelector = args.postSelector ? args.postSelector : '.main .article h2 a'; 11 | const titleSelector = args.titleSelector ? args.titleSelector : '.article h1'; 12 | const contentSelector = args.contentSelector ? args.contentSelector : '.article .entry-content'; 13 | const postsDirectory = args.dir ? __dirname + args.dir : __dirname + '/posts/'; 14 | 15 | (async() => { 16 | // start the browser 17 | const browser = await puppeteer.launch({ args: ['--no-sandbox'] }); 18 | // open the main page url 19 | const page = await browser.newPage(); 20 | try { 21 | await page.goto(pageURL); 22 | console.log('opened the page: ', pageURL); 23 | } catch (error) { 24 | console.log(error); 25 | console.log('failed to open the page: ', pageURL); 26 | } 27 | 28 | // Find all links to articles 29 | await page.waitForSelector(postsSelector, { timeout: 0 }); 30 | const postUrls = await page.$$eval(postsSelector, postLinks => postLinks.map(link => link.href)); 31 | 32 | // Visit each page one by one 33 | for (let postUrl of postUrls) { 34 | 35 | // open the page 36 | try { 37 | await page.goto(postUrl); 38 | console.log('opened the page: ', postUrl); 39 | } catch (error) { 40 | console.log(error); 41 | console.log('failed to open the page: ', postUrl); 42 | } 43 | 44 | // get the pathname 45 | let pagePathname = await page.evaluate(() => location.pathname); 46 | // this replaces all / with - 47 | pagePathname = pagePathname.replace(/\//g, "-"); 48 | 49 | // my pathname starts with /log/ so I remove this and also remove the last - 50 | // pagePathname = pagePathname.substr(5); 51 | // pagePathname = pagePathname.slice(0, -1); 52 | 53 | 54 | 55 | // get the title of the post 56 | await page.waitForSelector(titleSelector); 57 | const pageTitle = await page.$eval(titleSelector, titleSelector => titleSelector.outerHTML); 58 | 59 | // get the content of the page 60 | await page.waitForSelector(contentSelector, { timeout: 0 }); 61 | const pageContent = await page.$eval(contentSelector, contentSelector => contentSelector.innerHTML); 62 | 63 | // convert the html to markdown 64 | let pageContentMarkdown = turndownService.turndown(pageTitle + pageContent); 65 | 66 | // Check if folder exists before writing files there 67 | if (!fs.existsSync(postsDirectory)) { 68 | fs.mkdirSync(postsDirectory); 69 | } 70 | 71 | // save the file as pathname.md 72 | fs.writeFile(postsDirectory + pagePathname + '.md', pageContentMarkdown, (err) => { 73 | if (err) { 74 | console.log(err); 75 | } 76 | 77 | // success case, the file was saved 78 | console.log('Page saved!'); 79 | }); 80 | 81 | } 82 | 83 | // all done, close the browser 84 | await browser.close(); 85 | 86 | process.exit() 87 | })(); -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "html-posts-to-markdown", 3 | "version": "0.0.1", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "abab": { 8 | "version": "2.0.0", 9 | "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz", 10 | "integrity": "sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w==" 11 | }, 12 | "acorn": { 13 | "version": "5.7.3", 14 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", 15 | "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==" 16 | }, 17 | "acorn-globals": { 18 | "version": "4.3.0", 19 | "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.0.tgz", 20 | "integrity": "sha512-hMtHj3s5RnuhvHPowpBYvJVj3rAar82JiDQHvGs1zO0l10ocX/xEdBShNHTJaboucJUsScghp74pH3s7EnHHQw==", 21 | "requires": { 22 | "acorn": "6.0.4", 23 | "acorn-walk": "6.1.1" 24 | }, 25 | "dependencies": { 26 | "acorn": { 27 | "version": "6.0.4", 28 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.4.tgz", 29 | "integrity": "sha512-VY4i5EKSKkofY2I+6QLTbTTN/UvEQPCo6eiwzzSaSWfpaDhOmStMCMod6wmuPciNq+XS0faCglFu2lHZpdHUtg==" 30 | } 31 | } 32 | }, 33 | "acorn-walk": { 34 | "version": "6.1.1", 35 | "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.1.1.tgz", 36 | "integrity": "sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw==" 37 | }, 38 | "agent-base": { 39 | "version": "4.2.1", 40 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", 41 | "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", 42 | "requires": { 43 | "es6-promisify": "5.0.0" 44 | } 45 | }, 46 | "ajv": { 47 | "version": "6.6.2", 48 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.2.tgz", 49 | "integrity": "sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==", 50 | "requires": { 51 | "fast-deep-equal": "2.0.1", 52 | "fast-json-stable-stringify": "2.0.0", 53 | "json-schema-traverse": "0.4.1", 54 | "uri-js": "4.2.2" 55 | } 56 | }, 57 | "ansi-regex": { 58 | "version": "3.0.0", 59 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 60 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" 61 | }, 62 | "array-equal": { 63 | "version": "1.0.0", 64 | "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", 65 | "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=" 66 | }, 67 | "asn1": { 68 | "version": "0.2.4", 69 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", 70 | "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", 71 | "requires": { 72 | "safer-buffer": "2.1.2" 73 | } 74 | }, 75 | "assert-plus": { 76 | "version": "1.0.0", 77 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 78 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" 79 | }, 80 | "async-limiter": { 81 | "version": "1.0.0", 82 | "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", 83 | "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" 84 | }, 85 | "asynckit": { 86 | "version": "0.4.0", 87 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 88 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" 89 | }, 90 | "aws-sign2": { 91 | "version": "0.7.0", 92 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", 93 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" 94 | }, 95 | "aws4": { 96 | "version": "1.8.0", 97 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", 98 | "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" 99 | }, 100 | "balanced-match": { 101 | "version": "1.0.0", 102 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 103 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" 104 | }, 105 | "bcrypt-pbkdf": { 106 | "version": "1.0.2", 107 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", 108 | "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", 109 | "requires": { 110 | "tweetnacl": "0.14.5" 111 | } 112 | }, 113 | "brace-expansion": { 114 | "version": "1.1.11", 115 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 116 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 117 | "requires": { 118 | "balanced-match": "1.0.0", 119 | "concat-map": "0.0.1" 120 | } 121 | }, 122 | "browser-process-hrtime": { 123 | "version": "0.1.3", 124 | "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz", 125 | "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==" 126 | }, 127 | "buffer-from": { 128 | "version": "1.1.1", 129 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", 130 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" 131 | }, 132 | "camelcase": { 133 | "version": "5.0.0", 134 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", 135 | "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==" 136 | }, 137 | "caseless": { 138 | "version": "0.12.0", 139 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 140 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" 141 | }, 142 | "cliui": { 143 | "version": "4.1.0", 144 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", 145 | "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", 146 | "requires": { 147 | "string-width": "2.1.1", 148 | "strip-ansi": "4.0.0", 149 | "wrap-ansi": "2.1.0" 150 | } 151 | }, 152 | "code-point-at": { 153 | "version": "1.1.0", 154 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", 155 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" 156 | }, 157 | "combined-stream": { 158 | "version": "1.0.7", 159 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", 160 | "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", 161 | "requires": { 162 | "delayed-stream": "1.0.0" 163 | } 164 | }, 165 | "concat-map": { 166 | "version": "0.0.1", 167 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 168 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" 169 | }, 170 | "concat-stream": { 171 | "version": "1.6.2", 172 | "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", 173 | "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", 174 | "requires": { 175 | "buffer-from": "1.1.1", 176 | "inherits": "2.0.3", 177 | "readable-stream": "2.3.6", 178 | "typedarray": "0.0.6" 179 | } 180 | }, 181 | "core-util-is": { 182 | "version": "1.0.2", 183 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 184 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 185 | }, 186 | "cross-spawn": { 187 | "version": "6.0.5", 188 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", 189 | "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", 190 | "requires": { 191 | "nice-try": "1.0.5", 192 | "path-key": "2.0.1", 193 | "semver": "5.6.0", 194 | "shebang-command": "1.2.0", 195 | "which": "1.3.1" 196 | } 197 | }, 198 | "cssom": { 199 | "version": "0.3.4", 200 | "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.4.tgz", 201 | "integrity": "sha512-+7prCSORpXNeR4/fUP3rL+TzqtiFfhMvTd7uEqMdgPvLPt4+uzFUeufx5RHjGTACCargg/DiEt/moMQmvnfkog==" 202 | }, 203 | "cssstyle": { 204 | "version": "1.1.1", 205 | "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.1.1.tgz", 206 | "integrity": "sha512-364AI1l/M5TYcFH83JnOH/pSqgaNnKmYgKrm0didZMGKWjQB60dymwWy1rKUgL3J1ffdq9xVi2yGLHdSjjSNog==", 207 | "requires": { 208 | "cssom": "0.3.4" 209 | } 210 | }, 211 | "dashdash": { 212 | "version": "1.14.1", 213 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 214 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", 215 | "requires": { 216 | "assert-plus": "1.0.0" 217 | } 218 | }, 219 | "data-urls": { 220 | "version": "1.1.0", 221 | "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", 222 | "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", 223 | "requires": { 224 | "abab": "2.0.0", 225 | "whatwg-mimetype": "2.3.0", 226 | "whatwg-url": "7.0.0" 227 | }, 228 | "dependencies": { 229 | "whatwg-url": { 230 | "version": "7.0.0", 231 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz", 232 | "integrity": "sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==", 233 | "requires": { 234 | "lodash.sortby": "4.7.0", 235 | "tr46": "1.0.1", 236 | "webidl-conversions": "4.0.2" 237 | } 238 | } 239 | } 240 | }, 241 | "debug": { 242 | "version": "4.1.1", 243 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", 244 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", 245 | "requires": { 246 | "ms": "2.1.1" 247 | } 248 | }, 249 | "decamelize": { 250 | "version": "1.2.0", 251 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 252 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" 253 | }, 254 | "deep-is": { 255 | "version": "0.1.3", 256 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", 257 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" 258 | }, 259 | "delayed-stream": { 260 | "version": "1.0.0", 261 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 262 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" 263 | }, 264 | "domexception": { 265 | "version": "1.0.1", 266 | "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", 267 | "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", 268 | "requires": { 269 | "webidl-conversions": "4.0.2" 270 | } 271 | }, 272 | "ecc-jsbn": { 273 | "version": "0.1.2", 274 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", 275 | "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", 276 | "requires": { 277 | "jsbn": "0.1.1", 278 | "safer-buffer": "2.1.2" 279 | } 280 | }, 281 | "end-of-stream": { 282 | "version": "1.4.1", 283 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", 284 | "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", 285 | "requires": { 286 | "once": "1.4.0" 287 | } 288 | }, 289 | "es6-promise": { 290 | "version": "4.2.5", 291 | "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz", 292 | "integrity": "sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg==" 293 | }, 294 | "es6-promisify": { 295 | "version": "5.0.0", 296 | "resolved": "http://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", 297 | "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", 298 | "requires": { 299 | "es6-promise": "4.2.5" 300 | } 301 | }, 302 | "escodegen": { 303 | "version": "1.11.0", 304 | "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.0.tgz", 305 | "integrity": "sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw==", 306 | "requires": { 307 | "esprima": "3.1.3", 308 | "estraverse": "4.2.0", 309 | "esutils": "2.0.2", 310 | "optionator": "0.8.2", 311 | "source-map": "0.6.1" 312 | } 313 | }, 314 | "esprima": { 315 | "version": "3.1.3", 316 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", 317 | "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" 318 | }, 319 | "estraverse": { 320 | "version": "4.2.0", 321 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", 322 | "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" 323 | }, 324 | "esutils": { 325 | "version": "2.0.2", 326 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 327 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" 328 | }, 329 | "execa": { 330 | "version": "1.0.0", 331 | "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", 332 | "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", 333 | "requires": { 334 | "cross-spawn": "6.0.5", 335 | "get-stream": "4.1.0", 336 | "is-stream": "1.1.0", 337 | "npm-run-path": "2.0.2", 338 | "p-finally": "1.0.0", 339 | "signal-exit": "3.0.2", 340 | "strip-eof": "1.0.0" 341 | } 342 | }, 343 | "extend": { 344 | "version": "3.0.2", 345 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 346 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" 347 | }, 348 | "extract-zip": { 349 | "version": "1.6.7", 350 | "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz", 351 | "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=", 352 | "requires": { 353 | "concat-stream": "1.6.2", 354 | "debug": "2.6.9", 355 | "mkdirp": "0.5.1", 356 | "yauzl": "2.4.1" 357 | }, 358 | "dependencies": { 359 | "debug": { 360 | "version": "2.6.9", 361 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 362 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 363 | "requires": { 364 | "ms": "2.0.0" 365 | } 366 | }, 367 | "ms": { 368 | "version": "2.0.0", 369 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 370 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 371 | } 372 | } 373 | }, 374 | "extsprintf": { 375 | "version": "1.3.0", 376 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", 377 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" 378 | }, 379 | "fast-deep-equal": { 380 | "version": "2.0.1", 381 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", 382 | "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" 383 | }, 384 | "fast-json-stable-stringify": { 385 | "version": "2.0.0", 386 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", 387 | "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" 388 | }, 389 | "fast-levenshtein": { 390 | "version": "2.0.6", 391 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 392 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" 393 | }, 394 | "fd-slicer": { 395 | "version": "1.0.1", 396 | "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", 397 | "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", 398 | "requires": { 399 | "pend": "1.2.0" 400 | } 401 | }, 402 | "find-up": { 403 | "version": "3.0.0", 404 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", 405 | "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", 406 | "requires": { 407 | "locate-path": "3.0.0" 408 | } 409 | }, 410 | "forever-agent": { 411 | "version": "0.6.1", 412 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", 413 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" 414 | }, 415 | "form-data": { 416 | "version": "2.3.3", 417 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", 418 | "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", 419 | "requires": { 420 | "asynckit": "0.4.0", 421 | "combined-stream": "1.0.7", 422 | "mime-types": "2.1.21" 423 | } 424 | }, 425 | "fs.realpath": { 426 | "version": "1.0.0", 427 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 428 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" 429 | }, 430 | "get-caller-file": { 431 | "version": "1.0.3", 432 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", 433 | "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" 434 | }, 435 | "get-stream": { 436 | "version": "4.1.0", 437 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", 438 | "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", 439 | "requires": { 440 | "pump": "3.0.0" 441 | } 442 | }, 443 | "getpass": { 444 | "version": "0.1.7", 445 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 446 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", 447 | "requires": { 448 | "assert-plus": "1.0.0" 449 | } 450 | }, 451 | "glob": { 452 | "version": "7.1.3", 453 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", 454 | "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", 455 | "requires": { 456 | "fs.realpath": "1.0.0", 457 | "inflight": "1.0.6", 458 | "inherits": "2.0.3", 459 | "minimatch": "3.0.4", 460 | "once": "1.4.0", 461 | "path-is-absolute": "1.0.1" 462 | } 463 | }, 464 | "har-schema": { 465 | "version": "2.0.0", 466 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", 467 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" 468 | }, 469 | "har-validator": { 470 | "version": "5.1.3", 471 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", 472 | "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", 473 | "requires": { 474 | "ajv": "6.6.2", 475 | "har-schema": "2.0.0" 476 | } 477 | }, 478 | "html-encoding-sniffer": { 479 | "version": "1.0.2", 480 | "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", 481 | "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", 482 | "requires": { 483 | "whatwg-encoding": "1.0.5" 484 | } 485 | }, 486 | "http-signature": { 487 | "version": "1.2.0", 488 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", 489 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", 490 | "requires": { 491 | "assert-plus": "1.0.0", 492 | "jsprim": "1.4.1", 493 | "sshpk": "1.16.0" 494 | } 495 | }, 496 | "https-proxy-agent": { 497 | "version": "2.2.1", 498 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", 499 | "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", 500 | "requires": { 501 | "agent-base": "4.2.1", 502 | "debug": "3.2.6" 503 | }, 504 | "dependencies": { 505 | "debug": { 506 | "version": "3.2.6", 507 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", 508 | "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", 509 | "requires": { 510 | "ms": "2.1.1" 511 | } 512 | } 513 | } 514 | }, 515 | "iconv-lite": { 516 | "version": "0.4.24", 517 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 518 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 519 | "requires": { 520 | "safer-buffer": "2.1.2" 521 | } 522 | }, 523 | "inflight": { 524 | "version": "1.0.6", 525 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 526 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 527 | "requires": { 528 | "once": "1.4.0", 529 | "wrappy": "1.0.2" 530 | } 531 | }, 532 | "inherits": { 533 | "version": "2.0.3", 534 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 535 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 536 | }, 537 | "invert-kv": { 538 | "version": "2.0.0", 539 | "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", 540 | "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==" 541 | }, 542 | "is-fullwidth-code-point": { 543 | "version": "2.0.0", 544 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 545 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" 546 | }, 547 | "is-stream": { 548 | "version": "1.1.0", 549 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", 550 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" 551 | }, 552 | "is-typedarray": { 553 | "version": "1.0.0", 554 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 555 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" 556 | }, 557 | "isarray": { 558 | "version": "1.0.0", 559 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 560 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 561 | }, 562 | "isexe": { 563 | "version": "2.0.0", 564 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 565 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" 566 | }, 567 | "isstream": { 568 | "version": "0.1.2", 569 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 570 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" 571 | }, 572 | "jsbn": { 573 | "version": "0.1.1", 574 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", 575 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" 576 | }, 577 | "jsdom": { 578 | "version": "11.12.0", 579 | "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz", 580 | "integrity": "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==", 581 | "requires": { 582 | "abab": "2.0.0", 583 | "acorn": "5.7.3", 584 | "acorn-globals": "4.3.0", 585 | "array-equal": "1.0.0", 586 | "cssom": "0.3.4", 587 | "cssstyle": "1.1.1", 588 | "data-urls": "1.1.0", 589 | "domexception": "1.0.1", 590 | "escodegen": "1.11.0", 591 | "html-encoding-sniffer": "1.0.2", 592 | "left-pad": "1.3.0", 593 | "nwsapi": "2.0.9", 594 | "parse5": "4.0.0", 595 | "pn": "1.1.0", 596 | "request": "2.88.0", 597 | "request-promise-native": "1.0.5", 598 | "sax": "1.2.4", 599 | "symbol-tree": "3.2.2", 600 | "tough-cookie": "2.5.0", 601 | "w3c-hr-time": "1.0.1", 602 | "webidl-conversions": "4.0.2", 603 | "whatwg-encoding": "1.0.5", 604 | "whatwg-mimetype": "2.3.0", 605 | "whatwg-url": "6.5.0", 606 | "ws": "5.2.2", 607 | "xml-name-validator": "3.0.0" 608 | }, 609 | "dependencies": { 610 | "ws": { 611 | "version": "5.2.2", 612 | "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", 613 | "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", 614 | "requires": { 615 | "async-limiter": "1.0.0" 616 | } 617 | } 618 | } 619 | }, 620 | "json-schema": { 621 | "version": "0.2.3", 622 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", 623 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" 624 | }, 625 | "json-schema-traverse": { 626 | "version": "0.4.1", 627 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 628 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" 629 | }, 630 | "json-stringify-safe": { 631 | "version": "5.0.1", 632 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 633 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" 634 | }, 635 | "jsprim": { 636 | "version": "1.4.1", 637 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", 638 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", 639 | "requires": { 640 | "assert-plus": "1.0.0", 641 | "extsprintf": "1.3.0", 642 | "json-schema": "0.2.3", 643 | "verror": "1.10.0" 644 | } 645 | }, 646 | "lcid": { 647 | "version": "2.0.0", 648 | "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", 649 | "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", 650 | "requires": { 651 | "invert-kv": "2.0.0" 652 | } 653 | }, 654 | "left-pad": { 655 | "version": "1.3.0", 656 | "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", 657 | "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==" 658 | }, 659 | "levn": { 660 | "version": "0.3.0", 661 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", 662 | "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", 663 | "requires": { 664 | "prelude-ls": "1.1.2", 665 | "type-check": "0.3.2" 666 | } 667 | }, 668 | "locate-path": { 669 | "version": "3.0.0", 670 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", 671 | "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", 672 | "requires": { 673 | "p-locate": "3.0.0", 674 | "path-exists": "3.0.0" 675 | } 676 | }, 677 | "lodash": { 678 | "version": "4.17.11", 679 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", 680 | "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" 681 | }, 682 | "lodash.sortby": { 683 | "version": "4.7.0", 684 | "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", 685 | "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" 686 | }, 687 | "map-age-cleaner": { 688 | "version": "0.1.3", 689 | "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", 690 | "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", 691 | "requires": { 692 | "p-defer": "1.0.0" 693 | } 694 | }, 695 | "mem": { 696 | "version": "4.0.0", 697 | "resolved": "https://registry.npmjs.org/mem/-/mem-4.0.0.tgz", 698 | "integrity": "sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==", 699 | "requires": { 700 | "map-age-cleaner": "0.1.3", 701 | "mimic-fn": "1.2.0", 702 | "p-is-promise": "1.1.0" 703 | } 704 | }, 705 | "mime": { 706 | "version": "2.4.0", 707 | "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz", 708 | "integrity": "sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==" 709 | }, 710 | "mime-db": { 711 | "version": "1.37.0", 712 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", 713 | "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==" 714 | }, 715 | "mime-types": { 716 | "version": "2.1.21", 717 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", 718 | "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", 719 | "requires": { 720 | "mime-db": "1.37.0" 721 | } 722 | }, 723 | "mimic-fn": { 724 | "version": "1.2.0", 725 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", 726 | "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" 727 | }, 728 | "minimatch": { 729 | "version": "3.0.4", 730 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 731 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 732 | "requires": { 733 | "brace-expansion": "1.1.11" 734 | } 735 | }, 736 | "minimist": { 737 | "version": "0.0.8", 738 | "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 739 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" 740 | }, 741 | "mkdirp": { 742 | "version": "0.5.1", 743 | "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 744 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 745 | "requires": { 746 | "minimist": "0.0.8" 747 | } 748 | }, 749 | "ms": { 750 | "version": "2.1.1", 751 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", 752 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" 753 | }, 754 | "nice-try": { 755 | "version": "1.0.5", 756 | "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", 757 | "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" 758 | }, 759 | "npm-run-path": { 760 | "version": "2.0.2", 761 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", 762 | "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", 763 | "requires": { 764 | "path-key": "2.0.1" 765 | } 766 | }, 767 | "number-is-nan": { 768 | "version": "1.0.1", 769 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 770 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" 771 | }, 772 | "nwsapi": { 773 | "version": "2.0.9", 774 | "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.0.9.tgz", 775 | "integrity": "sha512-nlWFSCTYQcHk/6A9FFnfhKc14c3aFhfdNBXgo8Qgi9QTBu/qg3Ww+Uiz9wMzXd1T8GFxPc2QIHB6Qtf2XFryFQ==" 776 | }, 777 | "oauth-sign": { 778 | "version": "0.9.0", 779 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", 780 | "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" 781 | }, 782 | "once": { 783 | "version": "1.4.0", 784 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 785 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 786 | "requires": { 787 | "wrappy": "1.0.2" 788 | } 789 | }, 790 | "optionator": { 791 | "version": "0.8.2", 792 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", 793 | "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", 794 | "requires": { 795 | "deep-is": "0.1.3", 796 | "fast-levenshtein": "2.0.6", 797 | "levn": "0.3.0", 798 | "prelude-ls": "1.1.2", 799 | "type-check": "0.3.2", 800 | "wordwrap": "1.0.0" 801 | } 802 | }, 803 | "os-locale": { 804 | "version": "3.1.0", 805 | "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", 806 | "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", 807 | "requires": { 808 | "execa": "1.0.0", 809 | "lcid": "2.0.0", 810 | "mem": "4.0.0" 811 | } 812 | }, 813 | "p-defer": { 814 | "version": "1.0.0", 815 | "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", 816 | "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" 817 | }, 818 | "p-finally": { 819 | "version": "1.0.0", 820 | "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", 821 | "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" 822 | }, 823 | "p-is-promise": { 824 | "version": "1.1.0", 825 | "resolved": "http://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", 826 | "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=" 827 | }, 828 | "p-limit": { 829 | "version": "2.1.0", 830 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz", 831 | "integrity": "sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==", 832 | "requires": { 833 | "p-try": "2.0.0" 834 | } 835 | }, 836 | "p-locate": { 837 | "version": "3.0.0", 838 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", 839 | "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", 840 | "requires": { 841 | "p-limit": "2.1.0" 842 | } 843 | }, 844 | "p-try": { 845 | "version": "2.0.0", 846 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", 847 | "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==" 848 | }, 849 | "parse5": { 850 | "version": "4.0.0", 851 | "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", 852 | "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==" 853 | }, 854 | "path-exists": { 855 | "version": "3.0.0", 856 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 857 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" 858 | }, 859 | "path-is-absolute": { 860 | "version": "1.0.1", 861 | "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 862 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" 863 | }, 864 | "path-key": { 865 | "version": "2.0.1", 866 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", 867 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" 868 | }, 869 | "pend": { 870 | "version": "1.2.0", 871 | "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", 872 | "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" 873 | }, 874 | "performance-now": { 875 | "version": "2.1.0", 876 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", 877 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" 878 | }, 879 | "pn": { 880 | "version": "1.1.0", 881 | "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", 882 | "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==" 883 | }, 884 | "prelude-ls": { 885 | "version": "1.1.2", 886 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", 887 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" 888 | }, 889 | "process-nextick-args": { 890 | "version": "2.0.0", 891 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", 892 | "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" 893 | }, 894 | "progress": { 895 | "version": "2.0.3", 896 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", 897 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" 898 | }, 899 | "proxy-from-env": { 900 | "version": "1.0.0", 901 | "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", 902 | "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=" 903 | }, 904 | "psl": { 905 | "version": "1.1.31", 906 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", 907 | "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==" 908 | }, 909 | "pump": { 910 | "version": "3.0.0", 911 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", 912 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", 913 | "requires": { 914 | "end-of-stream": "1.4.1", 915 | "once": "1.4.0" 916 | } 917 | }, 918 | "punycode": { 919 | "version": "2.1.1", 920 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 921 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" 922 | }, 923 | "puppeteer": { 924 | "version": "1.11.0", 925 | "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-1.11.0.tgz", 926 | "integrity": "sha512-iG4iMOHixc2EpzqRV+pv7o3GgmU2dNYEMkvKwSaQO/vMZURakwSOn/EYJ6OIRFYOque1qorzIBvrytPIQB3YzQ==", 927 | "requires": { 928 | "debug": "4.1.1", 929 | "extract-zip": "1.6.7", 930 | "https-proxy-agent": "2.2.1", 931 | "mime": "2.4.0", 932 | "progress": "2.0.3", 933 | "proxy-from-env": "1.0.0", 934 | "rimraf": "2.6.2", 935 | "ws": "6.1.2" 936 | } 937 | }, 938 | "qs": { 939 | "version": "6.5.2", 940 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", 941 | "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" 942 | }, 943 | "readable-stream": { 944 | "version": "2.3.6", 945 | "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", 946 | "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", 947 | "requires": { 948 | "core-util-is": "1.0.2", 949 | "inherits": "2.0.3", 950 | "isarray": "1.0.0", 951 | "process-nextick-args": "2.0.0", 952 | "safe-buffer": "5.1.2", 953 | "string_decoder": "1.1.1", 954 | "util-deprecate": "1.0.2" 955 | } 956 | }, 957 | "request": { 958 | "version": "2.88.0", 959 | "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", 960 | "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", 961 | "requires": { 962 | "aws-sign2": "0.7.0", 963 | "aws4": "1.8.0", 964 | "caseless": "0.12.0", 965 | "combined-stream": "1.0.7", 966 | "extend": "3.0.2", 967 | "forever-agent": "0.6.1", 968 | "form-data": "2.3.3", 969 | "har-validator": "5.1.3", 970 | "http-signature": "1.2.0", 971 | "is-typedarray": "1.0.0", 972 | "isstream": "0.1.2", 973 | "json-stringify-safe": "5.0.1", 974 | "mime-types": "2.1.21", 975 | "oauth-sign": "0.9.0", 976 | "performance-now": "2.1.0", 977 | "qs": "6.5.2", 978 | "safe-buffer": "5.1.2", 979 | "tough-cookie": "2.4.3", 980 | "tunnel-agent": "0.6.0", 981 | "uuid": "3.3.2" 982 | }, 983 | "dependencies": { 984 | "punycode": { 985 | "version": "1.4.1", 986 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 987 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" 988 | }, 989 | "tough-cookie": { 990 | "version": "2.4.3", 991 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", 992 | "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", 993 | "requires": { 994 | "psl": "1.1.31", 995 | "punycode": "1.4.1" 996 | } 997 | } 998 | } 999 | }, 1000 | "request-promise-core": { 1001 | "version": "1.1.1", 1002 | "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz", 1003 | "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=", 1004 | "requires": { 1005 | "lodash": "4.17.11" 1006 | } 1007 | }, 1008 | "request-promise-native": { 1009 | "version": "1.0.5", 1010 | "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.5.tgz", 1011 | "integrity": "sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU=", 1012 | "requires": { 1013 | "request-promise-core": "1.1.1", 1014 | "stealthy-require": "1.1.1", 1015 | "tough-cookie": "2.5.0" 1016 | } 1017 | }, 1018 | "require-directory": { 1019 | "version": "2.1.1", 1020 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 1021 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" 1022 | }, 1023 | "require-main-filename": { 1024 | "version": "1.0.1", 1025 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", 1026 | "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" 1027 | }, 1028 | "rimraf": { 1029 | "version": "2.6.2", 1030 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", 1031 | "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", 1032 | "requires": { 1033 | "glob": "7.1.3" 1034 | } 1035 | }, 1036 | "safe-buffer": { 1037 | "version": "5.1.2", 1038 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1039 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 1040 | }, 1041 | "safer-buffer": { 1042 | "version": "2.1.2", 1043 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 1044 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 1045 | }, 1046 | "sax": { 1047 | "version": "1.2.4", 1048 | "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", 1049 | "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" 1050 | }, 1051 | "semver": { 1052 | "version": "5.6.0", 1053 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", 1054 | "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==" 1055 | }, 1056 | "set-blocking": { 1057 | "version": "2.0.0", 1058 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 1059 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" 1060 | }, 1061 | "shebang-command": { 1062 | "version": "1.2.0", 1063 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 1064 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", 1065 | "requires": { 1066 | "shebang-regex": "1.0.0" 1067 | } 1068 | }, 1069 | "shebang-regex": { 1070 | "version": "1.0.0", 1071 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 1072 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" 1073 | }, 1074 | "signal-exit": { 1075 | "version": "3.0.2", 1076 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", 1077 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" 1078 | }, 1079 | "source-map": { 1080 | "version": "0.6.1", 1081 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 1082 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 1083 | "optional": true 1084 | }, 1085 | "sshpk": { 1086 | "version": "1.16.0", 1087 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.0.tgz", 1088 | "integrity": "sha512-Zhev35/y7hRMcID/upReIvRse+I9SVhyVre/KTJSJQWMz3C3+G+HpO7m1wK/yckEtujKZ7dS4hkVxAnmHaIGVQ==", 1089 | "requires": { 1090 | "asn1": "0.2.4", 1091 | "assert-plus": "1.0.0", 1092 | "bcrypt-pbkdf": "1.0.2", 1093 | "dashdash": "1.14.1", 1094 | "ecc-jsbn": "0.1.2", 1095 | "getpass": "0.1.7", 1096 | "jsbn": "0.1.1", 1097 | "safer-buffer": "2.1.2", 1098 | "tweetnacl": "0.14.5" 1099 | } 1100 | }, 1101 | "stealthy-require": { 1102 | "version": "1.1.1", 1103 | "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", 1104 | "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=" 1105 | }, 1106 | "string-width": { 1107 | "version": "2.1.1", 1108 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 1109 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 1110 | "requires": { 1111 | "is-fullwidth-code-point": "2.0.0", 1112 | "strip-ansi": "4.0.0" 1113 | } 1114 | }, 1115 | "string_decoder": { 1116 | "version": "1.1.1", 1117 | "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 1118 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 1119 | "requires": { 1120 | "safe-buffer": "5.1.2" 1121 | } 1122 | }, 1123 | "strip-ansi": { 1124 | "version": "4.0.0", 1125 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 1126 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 1127 | "requires": { 1128 | "ansi-regex": "3.0.0" 1129 | } 1130 | }, 1131 | "strip-eof": { 1132 | "version": "1.0.0", 1133 | "resolved": "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", 1134 | "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" 1135 | }, 1136 | "symbol-tree": { 1137 | "version": "3.2.2", 1138 | "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", 1139 | "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=" 1140 | }, 1141 | "tough-cookie": { 1142 | "version": "2.5.0", 1143 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", 1144 | "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", 1145 | "requires": { 1146 | "psl": "1.1.31", 1147 | "punycode": "2.1.1" 1148 | } 1149 | }, 1150 | "tr46": { 1151 | "version": "1.0.1", 1152 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", 1153 | "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", 1154 | "requires": { 1155 | "punycode": "2.1.1" 1156 | } 1157 | }, 1158 | "tunnel-agent": { 1159 | "version": "0.6.0", 1160 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 1161 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 1162 | "requires": { 1163 | "safe-buffer": "5.1.2" 1164 | } 1165 | }, 1166 | "turndown": { 1167 | "version": "5.0.1", 1168 | "resolved": "https://registry.npmjs.org/turndown/-/turndown-5.0.1.tgz", 1169 | "integrity": "sha512-OuNongGmx5vo1TWuSFmVa4Rkm/HxFNPU3dyP9OpOMF2RFTtl0RU+QLIIROcDvXWauFJaLpZaZeVMAsL8vrt3Tw==", 1170 | "requires": { 1171 | "jsdom": "11.12.0" 1172 | } 1173 | }, 1174 | "tweetnacl": { 1175 | "version": "0.14.5", 1176 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", 1177 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" 1178 | }, 1179 | "type-check": { 1180 | "version": "0.3.2", 1181 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", 1182 | "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", 1183 | "requires": { 1184 | "prelude-ls": "1.1.2" 1185 | } 1186 | }, 1187 | "typedarray": { 1188 | "version": "0.0.6", 1189 | "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", 1190 | "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" 1191 | }, 1192 | "uri-js": { 1193 | "version": "4.2.2", 1194 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", 1195 | "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", 1196 | "requires": { 1197 | "punycode": "2.1.1" 1198 | } 1199 | }, 1200 | "util-deprecate": { 1201 | "version": "1.0.2", 1202 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1203 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 1204 | }, 1205 | "uuid": { 1206 | "version": "3.3.2", 1207 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", 1208 | "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" 1209 | }, 1210 | "verror": { 1211 | "version": "1.10.0", 1212 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 1213 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", 1214 | "requires": { 1215 | "assert-plus": "1.0.0", 1216 | "core-util-is": "1.0.2", 1217 | "extsprintf": "1.3.0" 1218 | } 1219 | }, 1220 | "w3c-hr-time": { 1221 | "version": "1.0.1", 1222 | "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", 1223 | "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", 1224 | "requires": { 1225 | "browser-process-hrtime": "0.1.3" 1226 | } 1227 | }, 1228 | "webidl-conversions": { 1229 | "version": "4.0.2", 1230 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", 1231 | "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" 1232 | }, 1233 | "whatwg-encoding": { 1234 | "version": "1.0.5", 1235 | "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", 1236 | "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", 1237 | "requires": { 1238 | "iconv-lite": "0.4.24" 1239 | } 1240 | }, 1241 | "whatwg-mimetype": { 1242 | "version": "2.3.0", 1243 | "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", 1244 | "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" 1245 | }, 1246 | "whatwg-url": { 1247 | "version": "6.5.0", 1248 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz", 1249 | "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==", 1250 | "requires": { 1251 | "lodash.sortby": "4.7.0", 1252 | "tr46": "1.0.1", 1253 | "webidl-conversions": "4.0.2" 1254 | } 1255 | }, 1256 | "which": { 1257 | "version": "1.3.1", 1258 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 1259 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 1260 | "requires": { 1261 | "isexe": "2.0.0" 1262 | } 1263 | }, 1264 | "which-module": { 1265 | "version": "2.0.0", 1266 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", 1267 | "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" 1268 | }, 1269 | "wordwrap": { 1270 | "version": "1.0.0", 1271 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", 1272 | "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" 1273 | }, 1274 | "wrap-ansi": { 1275 | "version": "2.1.0", 1276 | "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", 1277 | "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", 1278 | "requires": { 1279 | "string-width": "1.0.2", 1280 | "strip-ansi": "3.0.1" 1281 | }, 1282 | "dependencies": { 1283 | "ansi-regex": { 1284 | "version": "2.1.1", 1285 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 1286 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" 1287 | }, 1288 | "is-fullwidth-code-point": { 1289 | "version": "1.0.0", 1290 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", 1291 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", 1292 | "requires": { 1293 | "number-is-nan": "1.0.1" 1294 | } 1295 | }, 1296 | "string-width": { 1297 | "version": "1.0.2", 1298 | "resolved": "http://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 1299 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 1300 | "requires": { 1301 | "code-point-at": "1.1.0", 1302 | "is-fullwidth-code-point": "1.0.0", 1303 | "strip-ansi": "3.0.1" 1304 | } 1305 | }, 1306 | "strip-ansi": { 1307 | "version": "3.0.1", 1308 | "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 1309 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 1310 | "requires": { 1311 | "ansi-regex": "2.1.1" 1312 | } 1313 | } 1314 | } 1315 | }, 1316 | "wrappy": { 1317 | "version": "1.0.2", 1318 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1319 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 1320 | }, 1321 | "ws": { 1322 | "version": "6.1.2", 1323 | "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.2.tgz", 1324 | "integrity": "sha512-rfUqzvz0WxmSXtJpPMX2EeASXabOrSMk1ruMOV3JBTBjo4ac2lDjGGsbQSyxj8Odhw5fBib8ZKEjDNvgouNKYw==", 1325 | "requires": { 1326 | "async-limiter": "1.0.0" 1327 | } 1328 | }, 1329 | "xml-name-validator": { 1330 | "version": "3.0.0", 1331 | "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", 1332 | "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" 1333 | }, 1334 | "y18n": { 1335 | "version": "4.0.0", 1336 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", 1337 | "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" 1338 | }, 1339 | "yargs": { 1340 | "version": "12.0.5", 1341 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", 1342 | "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", 1343 | "requires": { 1344 | "cliui": "4.1.0", 1345 | "decamelize": "1.2.0", 1346 | "find-up": "3.0.0", 1347 | "get-caller-file": "1.0.3", 1348 | "os-locale": "3.1.0", 1349 | "require-directory": "2.1.1", 1350 | "require-main-filename": "1.0.1", 1351 | "set-blocking": "2.0.0", 1352 | "string-width": "2.1.1", 1353 | "which-module": "2.0.0", 1354 | "y18n": "4.0.0", 1355 | "yargs-parser": "11.1.1" 1356 | } 1357 | }, 1358 | "yargs-parser": { 1359 | "version": "11.1.1", 1360 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", 1361 | "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", 1362 | "requires": { 1363 | "camelcase": "5.0.0", 1364 | "decamelize": "1.2.0" 1365 | } 1366 | }, 1367 | "yauzl": { 1368 | "version": "2.4.1", 1369 | "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", 1370 | "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", 1371 | "requires": { 1372 | "fd-slicer": "1.0.1" 1373 | } 1374 | } 1375 | } 1376 | } 1377 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "html-posts-to-markdown", 3 | "version": "0.0.1", 4 | "description": "Save your online html posts as markdown using puppeteer", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [ 10 | "html", 11 | "markdown", 12 | "extract", 13 | "puppeteer" 14 | ], 15 | "author": "Michael Scharnagl @justmarkup", 16 | "license": "MIT", 17 | "dependencies": { 18 | "puppeteer": "^1.11.0", 19 | "turndown": "^5.0.1", 20 | "yargs": "^12.0.5" 21 | } 22 | } 23 | --------------------------------------------------------------------------------