├── .gitignore ├── .npmignore ├── .nvmrc ├── LICENSE ├── README.md ├── bin └── imagemin-merlin.js ├── docs └── assets │ └── output.png ├── package-lock.json ├── package.json └── src ├── index.js ├── plugin_options.js └── utils.js /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | .eslintcache 2 | .eslintrc 3 | .eslintignore 4 | .gitignore 5 | node_modules/ 6 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | 10.12.0 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # imagemin-merlin (aka Merlin) 2 | 3 | Merlin is an extension of [imagemin](https://www.npmjs.com/package/imagemin) that makes it _super-easy_ to automatically, efficiently compress GIF, JPG and PNG graphics. 4 | 5 | It’s “super-easy” for two reasons: 6 | 7 | 1. Setup is simple and there’s no confusion around what needs to be done how, where, when and why. Install, run, done – forever. 8 | 9 | 2. Compression happens _losslessly_ through standard settings. That’s explicitly regarded a benefit here not to worry about overly aggressive default optimization. (Further micro-optimization may happen separately.) 10 | 11 | ## Installation and use 12 | 13 | ### 1) Install 14 | 15 | Install Merlin in respective Node project: 16 | 17 | ```bash 18 | npm i -D @sum.cumo/imagemin-merlin 19 | ``` 20 | 21 | ### 2a) Set up manual optimization 22 | 23 | For manual use, add the following in the `scripts` section of the project’s package.json: 24 | 25 | ```json 26 | { 27 | "scripts":{ 28 | "imagemin": "imagemin-merlin" 29 | } 30 | } 31 | ``` 32 | 33 | To ensure that _all_ GIFs, JPGs and PNGs have at least been optimized once, it’s recommended to run Merlin manually right after installation: `npm run imagemin`. 34 | 35 | There’s a `--folder` option that allows to set a particular folder for compression, different from the project root. For example, `npm run imagemin -- --folder=static`. The `node_modules` folder is ignored by default. 36 | 37 | `--dry` is an optional parameter to run Merlin in “dry mode.” All changed files can then be inspected under `/tmp/imagemin-merlin`. 38 | 39 | `--ignore` is an optional parameter to let Merlin ignore the specified paths. Multiple paths has to be seperated by a comma. 40 | 41 | ### 2b) Set up automatic optimization 42 | 43 | For automated use Merlin should then be triggered through [Git hooks](https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks) or a related tool like [Husky](https://github.com/typicode/husky) (`npm i -D husky`), for example on `pre-commit`. For that, using Husky as an example, the following may be added to package.json (main level): 44 | 45 | ```json 46 | "husky": { 47 | "hooks": { 48 | "pre-commit": "npm run imagemin -- --staged" 49 | } 50 | }, 51 | ``` 52 | 53 | The `--staged` parameter triggers a mode that watches GIF, JPG and PNG files in `git diff` and only compresses those files – that approach makes Merlin be quite efficient in operation. (Note that the `folder` parameter doesn’t work in `staged` mode.) 54 | 55 | ## How does the output look like? 56 | 57 | ![output](./docs/assets/output.png) 58 | 59 | * Green: The graphic has been optimized. 60 | * White: The graphic has not been changed. 61 | * Blue: The graphic had already been compressed further than the new result, and was therefore skipped. 62 | 63 | ## How does Merlin work? 64 | 65 | Merlin is a Node script that puts a little [wrapper](bin/imagemin-merlin.js) around [imagemin-cli](https://www.npmjs.com/package/imagemin-cli) and the three losslessly compressing sub-packages [imagemin-gifsicle](https://www.npmjs.com/package/imagemin-gifsicle), [imagemin-optipng](https://www.npmjs.com/package/imagemin-optipng) and [imagemin-jpegtran](https://www.npmjs.com/package/imagemin-jpegtran). 66 | 67 | Unless manual optimization over the project or subfolders is triggered, automated compression works through Git hooks that monitor whether a given change list includes image files. If it does, only those images are compressed where there is an improvement, so to prevent regressions and to be able to actually feed back the improved images to the underlying repository. 68 | 69 | Through this approach, though still glossed over here, Merlin makes up for what’s missing or complicated in imagemin and related packages, namely easy, riskless, automated, resource-friendly “on site” optimization. 70 | 71 | ### Why use Merlin? 72 | 73 | (This is just a paraphrased remainder of earlier documentation, just left for the moment in case it makes anything more clear ☺️) 74 | 75 | You _can_ use Merlin if you need a simple, automatable, robust solution to compress images and to keep the compressed result in your repository (instead of only in the production environment). 76 | 77 | That last piece is useful since Merlin compresses losslessly, so that there’s no risk that images suffer from quality issues after processing through Merlin. This kind of defensive base compression makes it rather obvious to also want to feed back compressed graphics into one’s source repository – which is why Merlin works the way it does 78 | 79 | ## What does Merlin _not_ do? 80 | 81 | Merlin is no substitute for image fine-tuning and micro-optimization. That is really difficult to do in an automated fashion, because that type of compression requires weighing quality and performance, which is [context-dependent](https://meiert.com/en/blog/understanding-image-compression/). In its most extreme form, when maximum quality at maximum performance is required from each graphic, micro-optimization is even hard to do manually. 82 | 83 | The point is: Micro-optimization still needs to be taken care of through complementary means, whether manually or through other tools (well including other packages from the [imagemin family](https://github.com/imagemin)). Merlin simply solves the problem that images are checked in or go live that are not compressed _at all_. 84 | 85 | ## What’s next? 86 | 87 | Some new features we’re working on or think about: 88 | 89 | * Give the option to configure the underlying imagemin plugins (somewhat prepared for but not completed yet). 90 | * Observe .gitignore files when Merlin doesn’t run as `--staged`. 91 | * Support project structures in which the project’s .git folder is not at the same level as its package.json – at the moment, automatic mode doesn’t work in these cases. 92 | 93 | Thoughts, suggestions, fixes? Please file an [issue](https://github.com/sumcumo/imagemin-merlin/issues/new) or send a pull request – thank you! 94 | 95 | ## License 96 | 97 | Copyright 2019 [sum.cumo GmbH](https://www.sumcumo.com/) 98 | 99 | Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at 100 | 101 | http://www.apache.org/licenses/LICENSE-2.0 102 | 103 | Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. 104 | 105 | ---- 106 | 107 | [Learn more about sum.cumo](https://www.sumcumo.com/en) and [work on open source projects](https://www.sumcumo.com/jobs), too! 108 | -------------------------------------------------------------------------------- /bin/imagemin-merlin.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | const argv = require('yargs').argv 4 | 5 | require('../src/index.js')(argv) 6 | -------------------------------------------------------------------------------- /docs/assets/output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumcumo/imagemin-merlin/930d0ef6c98d623bb9134e2cb21a345065352a7e/docs/assets/output.png -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@sum.cumo/imagemin-merlin", 3 | "version": "2.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@babel/code-frame": { 8 | "version": "7.10.4", 9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", 10 | "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", 11 | "requires": { 12 | "@babel/highlight": "^7.10.4" 13 | } 14 | }, 15 | "@babel/helper-validator-identifier": { 16 | "version": "7.10.4", 17 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", 18 | "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==" 19 | }, 20 | "@babel/highlight": { 21 | "version": "7.10.4", 22 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", 23 | "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", 24 | "requires": { 25 | "@babel/helper-validator-identifier": "^7.10.4", 26 | "chalk": "^2.0.0", 27 | "js-tokens": "^4.0.0" 28 | }, 29 | "dependencies": { 30 | "ansi-styles": { 31 | "version": "3.2.1", 32 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 33 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 34 | "requires": { 35 | "color-convert": "^1.9.0" 36 | } 37 | }, 38 | "chalk": { 39 | "version": "2.4.2", 40 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 41 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 42 | "requires": { 43 | "ansi-styles": "^3.2.1", 44 | "escape-string-regexp": "^1.0.5", 45 | "supports-color": "^5.3.0" 46 | } 47 | }, 48 | "color-convert": { 49 | "version": "1.9.3", 50 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 51 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 52 | "requires": { 53 | "color-name": "1.1.3" 54 | } 55 | }, 56 | "color-name": { 57 | "version": "1.1.3", 58 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 59 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" 60 | }, 61 | "has-flag": { 62 | "version": "3.0.0", 63 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 64 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" 65 | }, 66 | "supports-color": { 67 | "version": "5.5.0", 68 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 69 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 70 | "requires": { 71 | "has-flag": "^3.0.0" 72 | } 73 | } 74 | } 75 | }, 76 | "@nodelib/fs.scandir": { 77 | "version": "2.1.3", 78 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", 79 | "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", 80 | "requires": { 81 | "@nodelib/fs.stat": "2.0.3", 82 | "run-parallel": "^1.1.9" 83 | } 84 | }, 85 | "@nodelib/fs.stat": { 86 | "version": "2.0.3", 87 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", 88 | "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==" 89 | }, 90 | "@nodelib/fs.walk": { 91 | "version": "1.2.4", 92 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", 93 | "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", 94 | "requires": { 95 | "@nodelib/fs.scandir": "2.1.3", 96 | "fastq": "^1.6.0" 97 | } 98 | }, 99 | "@sindresorhus/is": { 100 | "version": "0.7.0", 101 | "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", 102 | "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==", 103 | "optional": true 104 | }, 105 | "@types/color-name": { 106 | "version": "1.1.1", 107 | "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", 108 | "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" 109 | }, 110 | "@types/glob": { 111 | "version": "7.1.3", 112 | "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", 113 | "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", 114 | "requires": { 115 | "@types/minimatch": "*", 116 | "@types/node": "*" 117 | } 118 | }, 119 | "@types/minimatch": { 120 | "version": "3.0.3", 121 | "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", 122 | "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" 123 | }, 124 | "@types/minimist": { 125 | "version": "1.2.0", 126 | "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.0.tgz", 127 | "integrity": "sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY=" 128 | }, 129 | "@types/node": { 130 | "version": "14.0.27", 131 | "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.27.tgz", 132 | "integrity": "sha512-kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g==" 133 | }, 134 | "@types/normalize-package-data": { 135 | "version": "2.4.0", 136 | "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", 137 | "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==" 138 | }, 139 | "@types/q": { 140 | "version": "1.5.4", 141 | "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", 142 | "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", 143 | "optional": true 144 | }, 145 | "ansi-regex": { 146 | "version": "2.1.1", 147 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 148 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" 149 | }, 150 | "ansi-styles": { 151 | "version": "4.2.1", 152 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", 153 | "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", 154 | "requires": { 155 | "@types/color-name": "^1.1.1", 156 | "color-convert": "^2.0.1" 157 | } 158 | }, 159 | "arch": { 160 | "version": "2.1.2", 161 | "resolved": "https://registry.npmjs.org/arch/-/arch-2.1.2.tgz", 162 | "integrity": "sha512-NTBIIbAfkJeIletyABbVtdPgeKfDafR+1mZV/AyyfC1UkVkp9iUjV+wwmqtUgphHYajbI86jejBJp5e+jkGTiQ==", 163 | "optional": true 164 | }, 165 | "archive-type": { 166 | "version": "4.0.0", 167 | "resolved": "https://registry.npmjs.org/archive-type/-/archive-type-4.0.0.tgz", 168 | "integrity": "sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA=", 169 | "optional": true, 170 | "requires": { 171 | "file-type": "^4.2.0" 172 | }, 173 | "dependencies": { 174 | "file-type": { 175 | "version": "4.4.0", 176 | "resolved": "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz", 177 | "integrity": "sha1-G2AOX8ofvcboDApwxxyNul95BsU=", 178 | "optional": true 179 | } 180 | } 181 | }, 182 | "argparse": { 183 | "version": "1.0.10", 184 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", 185 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", 186 | "optional": true, 187 | "requires": { 188 | "sprintf-js": "~1.0.2" 189 | } 190 | }, 191 | "array-find-index": { 192 | "version": "1.0.2", 193 | "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", 194 | "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", 195 | "optional": true 196 | }, 197 | "array-union": { 198 | "version": "2.1.0", 199 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", 200 | "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" 201 | }, 202 | "arrify": { 203 | "version": "2.0.1", 204 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", 205 | "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" 206 | }, 207 | "balanced-match": { 208 | "version": "1.0.0", 209 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 210 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" 211 | }, 212 | "base64-js": { 213 | "version": "1.3.1", 214 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", 215 | "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" 216 | }, 217 | "bin-build": { 218 | "version": "3.0.0", 219 | "resolved": "https://registry.npmjs.org/bin-build/-/bin-build-3.0.0.tgz", 220 | "integrity": "sha512-jcUOof71/TNAI2uM5uoUaDq2ePcVBQ3R/qhxAz1rX7UfvduAL/RXD3jXzvn8cVcDJdGVkiR1shal3OH0ImpuhA==", 221 | "optional": true, 222 | "requires": { 223 | "decompress": "^4.0.0", 224 | "download": "^6.2.2", 225 | "execa": "^0.7.0", 226 | "p-map-series": "^1.0.0", 227 | "tempfile": "^2.0.0" 228 | }, 229 | "dependencies": { 230 | "cross-spawn": { 231 | "version": "5.1.0", 232 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", 233 | "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", 234 | "optional": true, 235 | "requires": { 236 | "lru-cache": "^4.0.1", 237 | "shebang-command": "^1.2.0", 238 | "which": "^1.2.9" 239 | } 240 | }, 241 | "execa": { 242 | "version": "0.7.0", 243 | "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", 244 | "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", 245 | "optional": true, 246 | "requires": { 247 | "cross-spawn": "^5.0.1", 248 | "get-stream": "^3.0.0", 249 | "is-stream": "^1.1.0", 250 | "npm-run-path": "^2.0.0", 251 | "p-finally": "^1.0.0", 252 | "signal-exit": "^3.0.0", 253 | "strip-eof": "^1.0.0" 254 | } 255 | }, 256 | "get-stream": { 257 | "version": "3.0.0", 258 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", 259 | "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", 260 | "optional": true 261 | } 262 | } 263 | }, 264 | "bin-check": { 265 | "version": "4.1.0", 266 | "resolved": "https://registry.npmjs.org/bin-check/-/bin-check-4.1.0.tgz", 267 | "integrity": "sha512-b6weQyEUKsDGFlACWSIOfveEnImkJyK/FGW6FAG42loyoquvjdtOIqO6yBFzHyqyVVhNgNkQxxx09SFLK28YnA==", 268 | "optional": true, 269 | "requires": { 270 | "execa": "^0.7.0", 271 | "executable": "^4.1.0" 272 | }, 273 | "dependencies": { 274 | "cross-spawn": { 275 | "version": "5.1.0", 276 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", 277 | "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", 278 | "optional": true, 279 | "requires": { 280 | "lru-cache": "^4.0.1", 281 | "shebang-command": "^1.2.0", 282 | "which": "^1.2.9" 283 | } 284 | }, 285 | "execa": { 286 | "version": "0.7.0", 287 | "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", 288 | "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", 289 | "optional": true, 290 | "requires": { 291 | "cross-spawn": "^5.0.1", 292 | "get-stream": "^3.0.0", 293 | "is-stream": "^1.1.0", 294 | "npm-run-path": "^2.0.0", 295 | "p-finally": "^1.0.0", 296 | "signal-exit": "^3.0.0", 297 | "strip-eof": "^1.0.0" 298 | } 299 | }, 300 | "get-stream": { 301 | "version": "3.0.0", 302 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", 303 | "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", 304 | "optional": true 305 | } 306 | } 307 | }, 308 | "bin-version": { 309 | "version": "3.1.0", 310 | "resolved": "https://registry.npmjs.org/bin-version/-/bin-version-3.1.0.tgz", 311 | "integrity": "sha512-Mkfm4iE1VFt4xd4vH+gx+0/71esbfus2LsnCGe8Pi4mndSPyT+NGES/Eg99jx8/lUGWfu3z2yuB/bt5UB+iVbQ==", 312 | "optional": true, 313 | "requires": { 314 | "execa": "^1.0.0", 315 | "find-versions": "^3.0.0" 316 | } 317 | }, 318 | "bin-version-check": { 319 | "version": "4.0.0", 320 | "resolved": "https://registry.npmjs.org/bin-version-check/-/bin-version-check-4.0.0.tgz", 321 | "integrity": "sha512-sR631OrhC+1f8Cvs8WyVWOA33Y8tgwjETNPyyD/myRBXLkfS/vl74FmH/lFcRl9KY3zwGh7jFhvyk9vV3/3ilQ==", 322 | "optional": true, 323 | "requires": { 324 | "bin-version": "^3.0.0", 325 | "semver": "^5.6.0", 326 | "semver-truncate": "^1.1.2" 327 | }, 328 | "dependencies": { 329 | "semver": { 330 | "version": "5.7.1", 331 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 332 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", 333 | "optional": true 334 | } 335 | } 336 | }, 337 | "bin-wrapper": { 338 | "version": "4.1.0", 339 | "resolved": "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-4.1.0.tgz", 340 | "integrity": "sha512-hfRmo7hWIXPkbpi0ZltboCMVrU+0ClXR/JgbCKKjlDjQf6igXa7OwdqNcFWQZPZTgiY7ZpzE3+LjjkLiTN2T7Q==", 341 | "optional": true, 342 | "requires": { 343 | "bin-check": "^4.1.0", 344 | "bin-version-check": "^4.0.0", 345 | "download": "^7.1.0", 346 | "import-lazy": "^3.1.0", 347 | "os-filter-obj": "^2.0.0", 348 | "pify": "^4.0.1" 349 | }, 350 | "dependencies": { 351 | "download": { 352 | "version": "7.1.0", 353 | "resolved": "https://registry.npmjs.org/download/-/download-7.1.0.tgz", 354 | "integrity": "sha512-xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ==", 355 | "optional": true, 356 | "requires": { 357 | "archive-type": "^4.0.0", 358 | "caw": "^2.0.1", 359 | "content-disposition": "^0.5.2", 360 | "decompress": "^4.2.0", 361 | "ext-name": "^5.0.0", 362 | "file-type": "^8.1.0", 363 | "filenamify": "^2.0.0", 364 | "get-stream": "^3.0.0", 365 | "got": "^8.3.1", 366 | "make-dir": "^1.2.0", 367 | "p-event": "^2.1.0", 368 | "pify": "^3.0.0" 369 | }, 370 | "dependencies": { 371 | "pify": { 372 | "version": "3.0.0", 373 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", 374 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", 375 | "optional": true 376 | } 377 | } 378 | }, 379 | "file-type": { 380 | "version": "8.1.0", 381 | "resolved": "https://registry.npmjs.org/file-type/-/file-type-8.1.0.tgz", 382 | "integrity": "sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ==", 383 | "optional": true 384 | }, 385 | "get-stream": { 386 | "version": "3.0.0", 387 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", 388 | "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" 389 | }, 390 | "got": { 391 | "version": "8.3.2", 392 | "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", 393 | "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", 394 | "optional": true, 395 | "requires": { 396 | "@sindresorhus/is": "^0.7.0", 397 | "cacheable-request": "^2.1.1", 398 | "decompress-response": "^3.3.0", 399 | "duplexer3": "^0.1.4", 400 | "get-stream": "^3.0.0", 401 | "into-stream": "^3.1.0", 402 | "is-retry-allowed": "^1.1.0", 403 | "isurl": "^1.0.0-alpha5", 404 | "lowercase-keys": "^1.0.0", 405 | "mimic-response": "^1.0.0", 406 | "p-cancelable": "^0.4.0", 407 | "p-timeout": "^2.0.1", 408 | "pify": "^3.0.0", 409 | "safe-buffer": "^5.1.1", 410 | "timed-out": "^4.0.1", 411 | "url-parse-lax": "^3.0.0", 412 | "url-to-options": "^1.0.1" 413 | }, 414 | "dependencies": { 415 | "pify": { 416 | "version": "3.0.0", 417 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", 418 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", 419 | "optional": true 420 | } 421 | } 422 | }, 423 | "make-dir": { 424 | "version": "1.3.0", 425 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", 426 | "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", 427 | "optional": true, 428 | "requires": { 429 | "pify": "^3.0.0" 430 | }, 431 | "dependencies": { 432 | "pify": { 433 | "version": "3.0.0", 434 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", 435 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", 436 | "optional": true 437 | } 438 | } 439 | }, 440 | "p-cancelable": { 441 | "version": "0.4.1", 442 | "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", 443 | "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==", 444 | "optional": true 445 | }, 446 | "p-event": { 447 | "version": "2.3.1", 448 | "resolved": "https://registry.npmjs.org/p-event/-/p-event-2.3.1.tgz", 449 | "integrity": "sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA==", 450 | "optional": true, 451 | "requires": { 452 | "p-timeout": "^2.0.1" 453 | } 454 | }, 455 | "p-timeout": { 456 | "version": "2.0.1", 457 | "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", 458 | "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", 459 | "requires": { 460 | "p-finally": "^1.0.0" 461 | } 462 | }, 463 | "pify": { 464 | "version": "4.0.1", 465 | "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", 466 | "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", 467 | "optional": true 468 | }, 469 | "prepend-http": { 470 | "version": "2.0.0", 471 | "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", 472 | "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", 473 | "optional": true 474 | }, 475 | "url-parse-lax": { 476 | "version": "3.0.0", 477 | "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", 478 | "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", 479 | "optional": true, 480 | "requires": { 481 | "prepend-http": "^2.0.0" 482 | } 483 | } 484 | } 485 | }, 486 | "bl": { 487 | "version": "1.2.2", 488 | "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", 489 | "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", 490 | "requires": { 491 | "readable-stream": "^2.3.5", 492 | "safe-buffer": "^5.1.1" 493 | } 494 | }, 495 | "boolbase": { 496 | "version": "1.0.0", 497 | "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", 498 | "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" 499 | }, 500 | "brace-expansion": { 501 | "version": "1.1.11", 502 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 503 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 504 | "requires": { 505 | "balanced-match": "^1.0.0", 506 | "concat-map": "0.0.1" 507 | } 508 | }, 509 | "braces": { 510 | "version": "3.0.2", 511 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 512 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 513 | "requires": { 514 | "fill-range": "^7.0.1" 515 | } 516 | }, 517 | "buffer": { 518 | "version": "5.6.0", 519 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", 520 | "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", 521 | "requires": { 522 | "base64-js": "^1.0.2", 523 | "ieee754": "^1.1.4" 524 | } 525 | }, 526 | "buffer-alloc": { 527 | "version": "1.2.0", 528 | "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", 529 | "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", 530 | "requires": { 531 | "buffer-alloc-unsafe": "^1.1.0", 532 | "buffer-fill": "^1.0.0" 533 | } 534 | }, 535 | "buffer-alloc-unsafe": { 536 | "version": "1.1.0", 537 | "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", 538 | "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" 539 | }, 540 | "buffer-crc32": { 541 | "version": "0.2.13", 542 | "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", 543 | "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" 544 | }, 545 | "buffer-fill": { 546 | "version": "1.0.0", 547 | "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", 548 | "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" 549 | }, 550 | "cacheable-request": { 551 | "version": "2.1.4", 552 | "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", 553 | "integrity": "sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=", 554 | "optional": true, 555 | "requires": { 556 | "clone-response": "1.0.2", 557 | "get-stream": "3.0.0", 558 | "http-cache-semantics": "3.8.1", 559 | "keyv": "3.0.0", 560 | "lowercase-keys": "1.0.0", 561 | "normalize-url": "2.0.1", 562 | "responselike": "1.0.2" 563 | }, 564 | "dependencies": { 565 | "get-stream": { 566 | "version": "3.0.0", 567 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", 568 | "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", 569 | "optional": true 570 | }, 571 | "lowercase-keys": { 572 | "version": "1.0.0", 573 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", 574 | "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=", 575 | "optional": true 576 | } 577 | } 578 | }, 579 | "camelcase": { 580 | "version": "2.1.1", 581 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", 582 | "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", 583 | "optional": true 584 | }, 585 | "camelcase-keys": { 586 | "version": "2.1.0", 587 | "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", 588 | "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", 589 | "optional": true, 590 | "requires": { 591 | "camelcase": "^2.0.0", 592 | "map-obj": "^1.0.0" 593 | } 594 | }, 595 | "caw": { 596 | "version": "2.0.1", 597 | "resolved": "https://registry.npmjs.org/caw/-/caw-2.0.1.tgz", 598 | "integrity": "sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA==", 599 | "requires": { 600 | "get-proxy": "^2.0.0", 601 | "isurl": "^1.0.0-alpha5", 602 | "tunnel-agent": "^0.6.0", 603 | "url-to-options": "^1.0.1" 604 | } 605 | }, 606 | "chalk": { 607 | "version": "4.1.0", 608 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", 609 | "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", 610 | "requires": { 611 | "ansi-styles": "^4.1.0", 612 | "supports-color": "^7.1.0" 613 | } 614 | }, 615 | "cli-cursor": { 616 | "version": "3.1.0", 617 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", 618 | "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", 619 | "requires": { 620 | "restore-cursor": "^3.1.0" 621 | } 622 | }, 623 | "cli-spinners": { 624 | "version": "2.4.0", 625 | "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.4.0.tgz", 626 | "integrity": "sha512-sJAofoarcm76ZGpuooaO0eDy8saEy+YoZBLjC4h8srt4jeBnkYeOgqxgsJQTpyt2LjI5PTfLJHSL+41Yu4fEJA==" 627 | }, 628 | "cliui": { 629 | "version": "6.0.0", 630 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", 631 | "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", 632 | "requires": { 633 | "string-width": "^4.2.0", 634 | "strip-ansi": "^6.0.0", 635 | "wrap-ansi": "^6.2.0" 636 | }, 637 | "dependencies": { 638 | "ansi-regex": { 639 | "version": "5.0.0", 640 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", 641 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" 642 | }, 643 | "strip-ansi": { 644 | "version": "6.0.0", 645 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", 646 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", 647 | "requires": { 648 | "ansi-regex": "^5.0.0" 649 | } 650 | } 651 | } 652 | }, 653 | "clone": { 654 | "version": "1.0.4", 655 | "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", 656 | "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" 657 | }, 658 | "clone-response": { 659 | "version": "1.0.2", 660 | "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", 661 | "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", 662 | "optional": true, 663 | "requires": { 664 | "mimic-response": "^1.0.0" 665 | } 666 | }, 667 | "coa": { 668 | "version": "2.0.2", 669 | "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", 670 | "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", 671 | "optional": true, 672 | "requires": { 673 | "@types/q": "^1.5.1", 674 | "chalk": "^2.4.1", 675 | "q": "^1.1.2" 676 | }, 677 | "dependencies": { 678 | "ansi-styles": { 679 | "version": "3.2.1", 680 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 681 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 682 | "optional": true, 683 | "requires": { 684 | "color-convert": "^1.9.0" 685 | } 686 | }, 687 | "chalk": { 688 | "version": "2.4.2", 689 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 690 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 691 | "optional": true, 692 | "requires": { 693 | "ansi-styles": "^3.2.1", 694 | "escape-string-regexp": "^1.0.5", 695 | "supports-color": "^5.3.0" 696 | } 697 | }, 698 | "color-convert": { 699 | "version": "1.9.3", 700 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 701 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 702 | "optional": true, 703 | "requires": { 704 | "color-name": "1.1.3" 705 | } 706 | }, 707 | "color-name": { 708 | "version": "1.1.3", 709 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 710 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 711 | "optional": true 712 | }, 713 | "has-flag": { 714 | "version": "3.0.0", 715 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 716 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 717 | "optional": true 718 | }, 719 | "supports-color": { 720 | "version": "5.5.0", 721 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 722 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 723 | "optional": true, 724 | "requires": { 725 | "has-flag": "^3.0.0" 726 | } 727 | } 728 | } 729 | }, 730 | "color-convert": { 731 | "version": "2.0.1", 732 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 733 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 734 | "requires": { 735 | "color-name": "~1.1.4" 736 | } 737 | }, 738 | "color-name": { 739 | "version": "1.1.4", 740 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 741 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 742 | }, 743 | "commander": { 744 | "version": "2.20.3", 745 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", 746 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" 747 | }, 748 | "concat-map": { 749 | "version": "0.0.1", 750 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 751 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" 752 | }, 753 | "config-chain": { 754 | "version": "1.1.12", 755 | "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", 756 | "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", 757 | "requires": { 758 | "ini": "^1.3.4", 759 | "proto-list": "~1.2.1" 760 | } 761 | }, 762 | "console-stream": { 763 | "version": "0.1.1", 764 | "resolved": "https://registry.npmjs.org/console-stream/-/console-stream-0.1.1.tgz", 765 | "integrity": "sha1-oJX+B7IEZZVfL6/Si11yvM2UnUQ=", 766 | "optional": true 767 | }, 768 | "content-disposition": { 769 | "version": "0.5.3", 770 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", 771 | "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", 772 | "requires": { 773 | "safe-buffer": "5.1.2" 774 | }, 775 | "dependencies": { 776 | "safe-buffer": { 777 | "version": "5.1.2", 778 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 779 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 780 | } 781 | } 782 | }, 783 | "core-util-is": { 784 | "version": "1.0.2", 785 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 786 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 787 | }, 788 | "cross-spawn": { 789 | "version": "6.0.5", 790 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", 791 | "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", 792 | "requires": { 793 | "nice-try": "^1.0.4", 794 | "path-key": "^2.0.1", 795 | "semver": "^5.5.0", 796 | "shebang-command": "^1.2.0", 797 | "which": "^1.2.9" 798 | }, 799 | "dependencies": { 800 | "semver": { 801 | "version": "5.7.1", 802 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 803 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" 804 | } 805 | } 806 | }, 807 | "css-select": { 808 | "version": "2.1.0", 809 | "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", 810 | "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", 811 | "optional": true, 812 | "requires": { 813 | "boolbase": "^1.0.0", 814 | "css-what": "^3.2.1", 815 | "domutils": "^1.7.0", 816 | "nth-check": "^1.0.2" 817 | } 818 | }, 819 | "css-select-base-adapter": { 820 | "version": "0.1.1", 821 | "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", 822 | "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", 823 | "optional": true 824 | }, 825 | "css-tree": { 826 | "version": "1.0.0-alpha.37", 827 | "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", 828 | "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", 829 | "optional": true, 830 | "requires": { 831 | "mdn-data": "2.0.4", 832 | "source-map": "^0.6.1" 833 | } 834 | }, 835 | "css-what": { 836 | "version": "3.3.0", 837 | "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.3.0.tgz", 838 | "integrity": "sha512-pv9JPyatiPaQ6pf4OvD/dbfm0o5LviWmwxNWzblYf/1u9QZd0ihV+PMwy5jdQWQ3349kZmKEx9WXuSka2dM4cg==", 839 | "optional": true 840 | }, 841 | "csso": { 842 | "version": "4.0.3", 843 | "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz", 844 | "integrity": "sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==", 845 | "optional": true, 846 | "requires": { 847 | "css-tree": "1.0.0-alpha.39" 848 | }, 849 | "dependencies": { 850 | "css-tree": { 851 | "version": "1.0.0-alpha.39", 852 | "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz", 853 | "integrity": "sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==", 854 | "optional": true, 855 | "requires": { 856 | "mdn-data": "2.0.6", 857 | "source-map": "^0.6.1" 858 | } 859 | }, 860 | "mdn-data": { 861 | "version": "2.0.6", 862 | "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz", 863 | "integrity": "sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==", 864 | "optional": true 865 | } 866 | } 867 | }, 868 | "currently-unhandled": { 869 | "version": "0.4.1", 870 | "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", 871 | "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", 872 | "optional": true, 873 | "requires": { 874 | "array-find-index": "^1.0.1" 875 | } 876 | }, 877 | "cwd": { 878 | "version": "0.10.0", 879 | "resolved": "https://registry.npmjs.org/cwd/-/cwd-0.10.0.tgz", 880 | "integrity": "sha1-FyQAaUBXwioTsM8WFix+S3p/5Wc=", 881 | "requires": { 882 | "find-pkg": "^0.1.2", 883 | "fs-exists-sync": "^0.1.0" 884 | } 885 | }, 886 | "decamelize": { 887 | "version": "1.2.0", 888 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 889 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" 890 | }, 891 | "decamelize-keys": { 892 | "version": "1.1.0", 893 | "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", 894 | "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", 895 | "requires": { 896 | "decamelize": "^1.1.0", 897 | "map-obj": "^1.0.0" 898 | } 899 | }, 900 | "decode-uri-component": { 901 | "version": "0.2.0", 902 | "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", 903 | "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", 904 | "optional": true 905 | }, 906 | "decompress": { 907 | "version": "4.2.1", 908 | "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", 909 | "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", 910 | "requires": { 911 | "decompress-tar": "^4.0.0", 912 | "decompress-tarbz2": "^4.0.0", 913 | "decompress-targz": "^4.0.0", 914 | "decompress-unzip": "^4.0.1", 915 | "graceful-fs": "^4.1.10", 916 | "make-dir": "^1.0.0", 917 | "pify": "^2.3.0", 918 | "strip-dirs": "^2.0.0" 919 | }, 920 | "dependencies": { 921 | "make-dir": { 922 | "version": "1.3.0", 923 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", 924 | "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", 925 | "requires": { 926 | "pify": "^3.0.0" 927 | }, 928 | "dependencies": { 929 | "pify": { 930 | "version": "3.0.0", 931 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", 932 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" 933 | } 934 | } 935 | } 936 | } 937 | }, 938 | "decompress-response": { 939 | "version": "3.3.0", 940 | "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", 941 | "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", 942 | "requires": { 943 | "mimic-response": "^1.0.0" 944 | } 945 | }, 946 | "decompress-tar": { 947 | "version": "4.1.1", 948 | "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", 949 | "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", 950 | "requires": { 951 | "file-type": "^5.2.0", 952 | "is-stream": "^1.1.0", 953 | "tar-stream": "^1.5.2" 954 | }, 955 | "dependencies": { 956 | "file-type": { 957 | "version": "5.2.0", 958 | "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", 959 | "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=" 960 | } 961 | } 962 | }, 963 | "decompress-tarbz2": { 964 | "version": "4.1.1", 965 | "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", 966 | "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", 967 | "requires": { 968 | "decompress-tar": "^4.1.0", 969 | "file-type": "^6.1.0", 970 | "is-stream": "^1.1.0", 971 | "seek-bzip": "^1.0.5", 972 | "unbzip2-stream": "^1.0.9" 973 | }, 974 | "dependencies": { 975 | "file-type": { 976 | "version": "6.2.0", 977 | "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", 978 | "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==" 979 | } 980 | } 981 | }, 982 | "decompress-targz": { 983 | "version": "4.1.1", 984 | "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", 985 | "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", 986 | "requires": { 987 | "decompress-tar": "^4.1.1", 988 | "file-type": "^5.2.0", 989 | "is-stream": "^1.1.0" 990 | }, 991 | "dependencies": { 992 | "file-type": { 993 | "version": "5.2.0", 994 | "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", 995 | "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=" 996 | } 997 | } 998 | }, 999 | "decompress-unzip": { 1000 | "version": "4.0.1", 1001 | "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", 1002 | "integrity": "sha1-3qrM39FK6vhVePczroIQ+bSEj2k=", 1003 | "requires": { 1004 | "file-type": "^3.8.0", 1005 | "get-stream": "^2.2.0", 1006 | "pify": "^2.3.0", 1007 | "yauzl": "^2.4.2" 1008 | }, 1009 | "dependencies": { 1010 | "file-type": { 1011 | "version": "3.9.0", 1012 | "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", 1013 | "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=" 1014 | }, 1015 | "get-stream": { 1016 | "version": "2.3.1", 1017 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", 1018 | "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", 1019 | "requires": { 1020 | "object-assign": "^4.0.1", 1021 | "pinkie-promise": "^2.0.0" 1022 | } 1023 | } 1024 | } 1025 | }, 1026 | "defaults": { 1027 | "version": "1.0.3", 1028 | "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", 1029 | "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", 1030 | "requires": { 1031 | "clone": "^1.0.2" 1032 | } 1033 | }, 1034 | "define-properties": { 1035 | "version": "1.1.3", 1036 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", 1037 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", 1038 | "requires": { 1039 | "object-keys": "^1.0.12" 1040 | } 1041 | }, 1042 | "dir-glob": { 1043 | "version": "3.0.1", 1044 | "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", 1045 | "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", 1046 | "requires": { 1047 | "path-type": "^4.0.0" 1048 | } 1049 | }, 1050 | "dom-serializer": { 1051 | "version": "0.2.2", 1052 | "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", 1053 | "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", 1054 | "optional": true, 1055 | "requires": { 1056 | "domelementtype": "^2.0.1", 1057 | "entities": "^2.0.0" 1058 | }, 1059 | "dependencies": { 1060 | "domelementtype": { 1061 | "version": "2.0.1", 1062 | "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz", 1063 | "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==", 1064 | "optional": true 1065 | } 1066 | } 1067 | }, 1068 | "domelementtype": { 1069 | "version": "1.3.1", 1070 | "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", 1071 | "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", 1072 | "optional": true 1073 | }, 1074 | "domutils": { 1075 | "version": "1.7.0", 1076 | "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", 1077 | "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", 1078 | "optional": true, 1079 | "requires": { 1080 | "dom-serializer": "0", 1081 | "domelementtype": "1" 1082 | } 1083 | }, 1084 | "download": { 1085 | "version": "6.2.5", 1086 | "resolved": "https://registry.npmjs.org/download/-/download-6.2.5.tgz", 1087 | "integrity": "sha512-DpO9K1sXAST8Cpzb7kmEhogJxymyVUd5qz/vCOSyvwtp2Klj2XcDt5YUuasgxka44SxF0q5RriKIwJmQHG2AuA==", 1088 | "optional": true, 1089 | "requires": { 1090 | "caw": "^2.0.0", 1091 | "content-disposition": "^0.5.2", 1092 | "decompress": "^4.0.0", 1093 | "ext-name": "^5.0.0", 1094 | "file-type": "5.2.0", 1095 | "filenamify": "^2.0.0", 1096 | "get-stream": "^3.0.0", 1097 | "got": "^7.0.0", 1098 | "make-dir": "^1.0.0", 1099 | "p-event": "^1.0.0", 1100 | "pify": "^3.0.0" 1101 | }, 1102 | "dependencies": { 1103 | "file-type": { 1104 | "version": "5.2.0", 1105 | "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", 1106 | "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=", 1107 | "optional": true 1108 | }, 1109 | "get-stream": { 1110 | "version": "3.0.0", 1111 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", 1112 | "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", 1113 | "optional": true 1114 | }, 1115 | "make-dir": { 1116 | "version": "1.3.0", 1117 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", 1118 | "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", 1119 | "optional": true, 1120 | "requires": { 1121 | "pify": "^3.0.0" 1122 | } 1123 | }, 1124 | "pify": { 1125 | "version": "3.0.0", 1126 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", 1127 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" 1128 | } 1129 | } 1130 | }, 1131 | "duplexer3": { 1132 | "version": "0.1.4", 1133 | "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", 1134 | "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" 1135 | }, 1136 | "emoji-regex": { 1137 | "version": "8.0.0", 1138 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 1139 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 1140 | }, 1141 | "end-of-stream": { 1142 | "version": "1.4.4", 1143 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 1144 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 1145 | "requires": { 1146 | "once": "^1.4.0" 1147 | } 1148 | }, 1149 | "entities": { 1150 | "version": "2.0.3", 1151 | "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", 1152 | "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==", 1153 | "optional": true 1154 | }, 1155 | "error-ex": { 1156 | "version": "1.3.2", 1157 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 1158 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 1159 | "requires": { 1160 | "is-arrayish": "^0.2.1" 1161 | } 1162 | }, 1163 | "es-abstract": { 1164 | "version": "1.17.6", 1165 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", 1166 | "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", 1167 | "requires": { 1168 | "es-to-primitive": "^1.2.1", 1169 | "function-bind": "^1.1.1", 1170 | "has": "^1.0.3", 1171 | "has-symbols": "^1.0.1", 1172 | "is-callable": "^1.2.0", 1173 | "is-regex": "^1.1.0", 1174 | "object-inspect": "^1.7.0", 1175 | "object-keys": "^1.1.1", 1176 | "object.assign": "^4.1.0", 1177 | "string.prototype.trimend": "^1.0.1", 1178 | "string.prototype.trimstart": "^1.0.1" 1179 | } 1180 | }, 1181 | "es-to-primitive": { 1182 | "version": "1.2.1", 1183 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", 1184 | "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", 1185 | "requires": { 1186 | "is-callable": "^1.1.4", 1187 | "is-date-object": "^1.0.1", 1188 | "is-symbol": "^1.0.2" 1189 | } 1190 | }, 1191 | "escape-string-regexp": { 1192 | "version": "1.0.5", 1193 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1194 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" 1195 | }, 1196 | "esprima": { 1197 | "version": "4.0.1", 1198 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", 1199 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", 1200 | "optional": true 1201 | }, 1202 | "exec-buffer": { 1203 | "version": "3.2.0", 1204 | "resolved": "https://registry.npmjs.org/exec-buffer/-/exec-buffer-3.2.0.tgz", 1205 | "integrity": "sha512-wsiD+2Tp6BWHoVv3B+5Dcx6E7u5zky+hUwOHjuH2hKSLR3dvRmX8fk8UD8uqQixHs4Wk6eDmiegVrMPjKj7wpA==", 1206 | "optional": true, 1207 | "requires": { 1208 | "execa": "^0.7.0", 1209 | "p-finally": "^1.0.0", 1210 | "pify": "^3.0.0", 1211 | "rimraf": "^2.5.4", 1212 | "tempfile": "^2.0.0" 1213 | }, 1214 | "dependencies": { 1215 | "cross-spawn": { 1216 | "version": "5.1.0", 1217 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", 1218 | "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", 1219 | "optional": true, 1220 | "requires": { 1221 | "lru-cache": "^4.0.1", 1222 | "shebang-command": "^1.2.0", 1223 | "which": "^1.2.9" 1224 | } 1225 | }, 1226 | "execa": { 1227 | "version": "0.7.0", 1228 | "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", 1229 | "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", 1230 | "optional": true, 1231 | "requires": { 1232 | "cross-spawn": "^5.0.1", 1233 | "get-stream": "^3.0.0", 1234 | "is-stream": "^1.1.0", 1235 | "npm-run-path": "^2.0.0", 1236 | "p-finally": "^1.0.0", 1237 | "signal-exit": "^3.0.0", 1238 | "strip-eof": "^1.0.0" 1239 | } 1240 | }, 1241 | "get-stream": { 1242 | "version": "3.0.0", 1243 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", 1244 | "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", 1245 | "optional": true 1246 | }, 1247 | "pify": { 1248 | "version": "3.0.0", 1249 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", 1250 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", 1251 | "optional": true 1252 | }, 1253 | "rimraf": { 1254 | "version": "2.7.1", 1255 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", 1256 | "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", 1257 | "optional": true, 1258 | "requires": { 1259 | "glob": "^7.1.3" 1260 | } 1261 | } 1262 | } 1263 | }, 1264 | "execa": { 1265 | "version": "1.0.0", 1266 | "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", 1267 | "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", 1268 | "requires": { 1269 | "cross-spawn": "^6.0.0", 1270 | "get-stream": "^4.0.0", 1271 | "is-stream": "^1.1.0", 1272 | "npm-run-path": "^2.0.0", 1273 | "p-finally": "^1.0.0", 1274 | "signal-exit": "^3.0.0", 1275 | "strip-eof": "^1.0.0" 1276 | } 1277 | }, 1278 | "executable": { 1279 | "version": "4.1.1", 1280 | "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", 1281 | "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", 1282 | "optional": true, 1283 | "requires": { 1284 | "pify": "^2.2.0" 1285 | } 1286 | }, 1287 | "expand-tilde": { 1288 | "version": "1.2.2", 1289 | "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz", 1290 | "integrity": "sha1-C4HrqJflo9MdHD0QL48BRB5VlEk=", 1291 | "requires": { 1292 | "os-homedir": "^1.0.1" 1293 | } 1294 | }, 1295 | "ext-list": { 1296 | "version": "2.2.2", 1297 | "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", 1298 | "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==", 1299 | "requires": { 1300 | "mime-db": "^1.28.0" 1301 | } 1302 | }, 1303 | "ext-name": { 1304 | "version": "5.0.0", 1305 | "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz", 1306 | "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==", 1307 | "requires": { 1308 | "ext-list": "^2.0.0", 1309 | "sort-keys-length": "^1.0.0" 1310 | } 1311 | }, 1312 | "fast-glob": { 1313 | "version": "3.2.4", 1314 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", 1315 | "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", 1316 | "requires": { 1317 | "@nodelib/fs.stat": "^2.0.2", 1318 | "@nodelib/fs.walk": "^1.2.3", 1319 | "glob-parent": "^5.1.0", 1320 | "merge2": "^1.3.0", 1321 | "micromatch": "^4.0.2", 1322 | "picomatch": "^2.2.1" 1323 | } 1324 | }, 1325 | "fastq": { 1326 | "version": "1.8.0", 1327 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz", 1328 | "integrity": "sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==", 1329 | "requires": { 1330 | "reusify": "^1.0.4" 1331 | } 1332 | }, 1333 | "fd-slicer": { 1334 | "version": "1.1.0", 1335 | "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", 1336 | "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", 1337 | "requires": { 1338 | "pend": "~1.2.0" 1339 | } 1340 | }, 1341 | "figures": { 1342 | "version": "1.7.0", 1343 | "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", 1344 | "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", 1345 | "optional": true, 1346 | "requires": { 1347 | "escape-string-regexp": "^1.0.5", 1348 | "object-assign": "^4.1.0" 1349 | } 1350 | }, 1351 | "file-type": { 1352 | "version": "12.4.2", 1353 | "resolved": "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz", 1354 | "integrity": "sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg==" 1355 | }, 1356 | "filename-reserved-regex": { 1357 | "version": "2.0.0", 1358 | "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", 1359 | "integrity": "sha1-q/c9+rc10EVECr/qLZHzieu/oik=" 1360 | }, 1361 | "filenamify": { 1362 | "version": "2.1.0", 1363 | "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-2.1.0.tgz", 1364 | "integrity": "sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA==", 1365 | "requires": { 1366 | "filename-reserved-regex": "^2.0.0", 1367 | "strip-outer": "^1.0.0", 1368 | "trim-repeated": "^1.0.0" 1369 | } 1370 | }, 1371 | "filesize": { 1372 | "version": "6.1.0", 1373 | "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.1.0.tgz", 1374 | "integrity": "sha512-LpCHtPQ3sFx67z+uh2HnSyWSLLu5Jxo21795uRDuar/EOuYWXib5EmPaGIBuSnRqH2IODiKA2k5re/K9OnN/Yg==" 1375 | }, 1376 | "fill-range": { 1377 | "version": "7.0.1", 1378 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 1379 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 1380 | "requires": { 1381 | "to-regex-range": "^5.0.1" 1382 | } 1383 | }, 1384 | "find": { 1385 | "version": "0.3.0", 1386 | "resolved": "https://registry.npmjs.org/find/-/find-0.3.0.tgz", 1387 | "integrity": "sha512-iSd+O4OEYV/I36Zl8MdYJO0xD82wH528SaCieTVHhclgiYNe9y+yPKSwK+A7/WsmHL1EZ+pYUJBXWTL5qofksw==", 1388 | "requires": { 1389 | "traverse-chain": "~0.1.0" 1390 | } 1391 | }, 1392 | "find-file-up": { 1393 | "version": "0.1.3", 1394 | "resolved": "https://registry.npmjs.org/find-file-up/-/find-file-up-0.1.3.tgz", 1395 | "integrity": "sha1-z2gJG8+fMApA2kEbN9pczlovvqA=", 1396 | "requires": { 1397 | "fs-exists-sync": "^0.1.0", 1398 | "resolve-dir": "^0.1.0" 1399 | } 1400 | }, 1401 | "find-pkg": { 1402 | "version": "0.1.2", 1403 | "resolved": "https://registry.npmjs.org/find-pkg/-/find-pkg-0.1.2.tgz", 1404 | "integrity": "sha1-G9wiwG42NlUy4qJIBGhUuXiNpVc=", 1405 | "requires": { 1406 | "find-file-up": "^0.1.2" 1407 | } 1408 | }, 1409 | "find-up": { 1410 | "version": "1.1.2", 1411 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", 1412 | "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", 1413 | "optional": true, 1414 | "requires": { 1415 | "path-exists": "^2.0.0", 1416 | "pinkie-promise": "^2.0.0" 1417 | } 1418 | }, 1419 | "find-versions": { 1420 | "version": "3.2.0", 1421 | "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz", 1422 | "integrity": "sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==", 1423 | "optional": true, 1424 | "requires": { 1425 | "semver-regex": "^2.0.0" 1426 | } 1427 | }, 1428 | "from2": { 1429 | "version": "2.3.0", 1430 | "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", 1431 | "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", 1432 | "optional": true, 1433 | "requires": { 1434 | "inherits": "^2.0.1", 1435 | "readable-stream": "^2.0.0" 1436 | } 1437 | }, 1438 | "fs-constants": { 1439 | "version": "1.0.0", 1440 | "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", 1441 | "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" 1442 | }, 1443 | "fs-exists-sync": { 1444 | "version": "0.1.0", 1445 | "resolved": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz", 1446 | "integrity": "sha1-mC1ok6+RjnLQjeyehnP/K1qNat0=" 1447 | }, 1448 | "fs.realpath": { 1449 | "version": "1.0.0", 1450 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1451 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" 1452 | }, 1453 | "function-bind": { 1454 | "version": "1.1.1", 1455 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1456 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" 1457 | }, 1458 | "get-caller-file": { 1459 | "version": "2.0.5", 1460 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", 1461 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" 1462 | }, 1463 | "get-proxy": { 1464 | "version": "2.1.0", 1465 | "resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-2.1.0.tgz", 1466 | "integrity": "sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw==", 1467 | "requires": { 1468 | "npm-conf": "^1.1.0" 1469 | } 1470 | }, 1471 | "get-stdin": { 1472 | "version": "8.0.0", 1473 | "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", 1474 | "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==" 1475 | }, 1476 | "get-stream": { 1477 | "version": "4.1.0", 1478 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", 1479 | "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", 1480 | "requires": { 1481 | "pump": "^3.0.0" 1482 | } 1483 | }, 1484 | "gifsicle": { 1485 | "version": "5.1.0", 1486 | "resolved": "https://registry.npmjs.org/gifsicle/-/gifsicle-5.1.0.tgz", 1487 | "integrity": "sha512-hQsOH7yjC7fMokntysN6f2QuxrnX+zmKKKVy0sC3Vhtnk8WrOxLdfH/Z2PNn7lVVx+1+drzIeAe8ufcmdSC/8g==", 1488 | "optional": true, 1489 | "requires": { 1490 | "bin-build": "^3.0.0", 1491 | "bin-wrapper": "^4.0.0", 1492 | "execa": "^4.0.0", 1493 | "logalot": "^2.0.0" 1494 | }, 1495 | "dependencies": { 1496 | "cross-spawn": { 1497 | "version": "7.0.3", 1498 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 1499 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 1500 | "optional": true, 1501 | "requires": { 1502 | "path-key": "^3.1.0", 1503 | "shebang-command": "^2.0.0", 1504 | "which": "^2.0.1" 1505 | } 1506 | }, 1507 | "execa": { 1508 | "version": "4.0.3", 1509 | "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz", 1510 | "integrity": "sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==", 1511 | "optional": true, 1512 | "requires": { 1513 | "cross-spawn": "^7.0.0", 1514 | "get-stream": "^5.0.0", 1515 | "human-signals": "^1.1.1", 1516 | "is-stream": "^2.0.0", 1517 | "merge-stream": "^2.0.0", 1518 | "npm-run-path": "^4.0.0", 1519 | "onetime": "^5.1.0", 1520 | "signal-exit": "^3.0.2", 1521 | "strip-final-newline": "^2.0.0" 1522 | } 1523 | }, 1524 | "get-stream": { 1525 | "version": "5.1.0", 1526 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", 1527 | "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", 1528 | "optional": true, 1529 | "requires": { 1530 | "pump": "^3.0.0" 1531 | } 1532 | }, 1533 | "is-stream": { 1534 | "version": "2.0.0", 1535 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", 1536 | "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", 1537 | "optional": true 1538 | }, 1539 | "npm-run-path": { 1540 | "version": "4.0.1", 1541 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", 1542 | "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", 1543 | "optional": true, 1544 | "requires": { 1545 | "path-key": "^3.0.0" 1546 | } 1547 | }, 1548 | "path-key": { 1549 | "version": "3.1.1", 1550 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 1551 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" 1552 | }, 1553 | "shebang-command": { 1554 | "version": "2.0.0", 1555 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 1556 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 1557 | "optional": true, 1558 | "requires": { 1559 | "shebang-regex": "^3.0.0" 1560 | } 1561 | }, 1562 | "shebang-regex": { 1563 | "version": "3.0.0", 1564 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 1565 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 1566 | "optional": true 1567 | }, 1568 | "which": { 1569 | "version": "2.0.2", 1570 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 1571 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 1572 | "optional": true, 1573 | "requires": { 1574 | "isexe": "^2.0.0" 1575 | } 1576 | } 1577 | } 1578 | }, 1579 | "glob": { 1580 | "version": "7.1.6", 1581 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", 1582 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", 1583 | "requires": { 1584 | "fs.realpath": "^1.0.0", 1585 | "inflight": "^1.0.4", 1586 | "inherits": "2", 1587 | "minimatch": "^3.0.4", 1588 | "once": "^1.3.0", 1589 | "path-is-absolute": "^1.0.0" 1590 | } 1591 | }, 1592 | "glob-parent": { 1593 | "version": "5.1.1", 1594 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", 1595 | "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", 1596 | "requires": { 1597 | "is-glob": "^4.0.1" 1598 | } 1599 | }, 1600 | "global-modules": { 1601 | "version": "0.2.3", 1602 | "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz", 1603 | "integrity": "sha1-6lo77ULG1s6ZWk+KEmm12uIjgo0=", 1604 | "requires": { 1605 | "global-prefix": "^0.1.4", 1606 | "is-windows": "^0.2.0" 1607 | } 1608 | }, 1609 | "global-prefix": { 1610 | "version": "0.1.5", 1611 | "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz", 1612 | "integrity": "sha1-jTvGuNo8qBEqFg2NSW/wRiv+948=", 1613 | "requires": { 1614 | "homedir-polyfill": "^1.0.0", 1615 | "ini": "^1.3.4", 1616 | "is-windows": "^0.2.0", 1617 | "which": "^1.2.12" 1618 | } 1619 | }, 1620 | "globby": { 1621 | "version": "10.0.2", 1622 | "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", 1623 | "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", 1624 | "requires": { 1625 | "@types/glob": "^7.1.1", 1626 | "array-union": "^2.1.0", 1627 | "dir-glob": "^3.0.1", 1628 | "fast-glob": "^3.0.3", 1629 | "glob": "^7.1.3", 1630 | "ignore": "^5.1.1", 1631 | "merge2": "^1.2.3", 1632 | "slash": "^3.0.0" 1633 | } 1634 | }, 1635 | "got": { 1636 | "version": "7.1.0", 1637 | "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", 1638 | "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", 1639 | "optional": true, 1640 | "requires": { 1641 | "decompress-response": "^3.2.0", 1642 | "duplexer3": "^0.1.4", 1643 | "get-stream": "^3.0.0", 1644 | "is-plain-obj": "^1.1.0", 1645 | "is-retry-allowed": "^1.0.0", 1646 | "is-stream": "^1.0.0", 1647 | "isurl": "^1.0.0-alpha5", 1648 | "lowercase-keys": "^1.0.0", 1649 | "p-cancelable": "^0.3.0", 1650 | "p-timeout": "^1.1.1", 1651 | "safe-buffer": "^5.0.1", 1652 | "timed-out": "^4.0.0", 1653 | "url-parse-lax": "^1.0.0", 1654 | "url-to-options": "^1.0.1" 1655 | }, 1656 | "dependencies": { 1657 | "get-stream": { 1658 | "version": "3.0.0", 1659 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", 1660 | "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", 1661 | "optional": true 1662 | } 1663 | } 1664 | }, 1665 | "graceful-fs": { 1666 | "version": "4.2.4", 1667 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", 1668 | "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" 1669 | }, 1670 | "hard-rejection": { 1671 | "version": "2.1.0", 1672 | "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", 1673 | "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==" 1674 | }, 1675 | "has": { 1676 | "version": "1.0.3", 1677 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 1678 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 1679 | "requires": { 1680 | "function-bind": "^1.1.1" 1681 | } 1682 | }, 1683 | "has-ansi": { 1684 | "version": "2.0.0", 1685 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", 1686 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", 1687 | "optional": true, 1688 | "requires": { 1689 | "ansi-regex": "^2.0.0" 1690 | } 1691 | }, 1692 | "has-flag": { 1693 | "version": "4.0.0", 1694 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 1695 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" 1696 | }, 1697 | "has-symbol-support-x": { 1698 | "version": "1.4.2", 1699 | "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", 1700 | "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" 1701 | }, 1702 | "has-symbols": { 1703 | "version": "1.0.1", 1704 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", 1705 | "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" 1706 | }, 1707 | "has-to-string-tag-x": { 1708 | "version": "1.4.1", 1709 | "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", 1710 | "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", 1711 | "requires": { 1712 | "has-symbol-support-x": "^1.4.1" 1713 | } 1714 | }, 1715 | "homedir-polyfill": { 1716 | "version": "1.0.3", 1717 | "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", 1718 | "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", 1719 | "requires": { 1720 | "parse-passwd": "^1.0.0" 1721 | } 1722 | }, 1723 | "hosted-git-info": { 1724 | "version": "2.8.8", 1725 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", 1726 | "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" 1727 | }, 1728 | "html-comment-regex": { 1729 | "version": "1.1.2", 1730 | "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", 1731 | "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", 1732 | "optional": true 1733 | }, 1734 | "http-cache-semantics": { 1735 | "version": "3.8.1", 1736 | "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", 1737 | "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", 1738 | "optional": true 1739 | }, 1740 | "human-signals": { 1741 | "version": "1.1.1", 1742 | "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", 1743 | "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", 1744 | "optional": true 1745 | }, 1746 | "ieee754": { 1747 | "version": "1.1.13", 1748 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", 1749 | "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" 1750 | }, 1751 | "ignore": { 1752 | "version": "5.1.8", 1753 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", 1754 | "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==" 1755 | }, 1756 | "imagemin": { 1757 | "version": "7.0.1", 1758 | "resolved": "https://registry.npmjs.org/imagemin/-/imagemin-7.0.1.tgz", 1759 | "integrity": "sha512-33AmZ+xjZhg2JMCe+vDf6a9mzWukE7l+wAtesjE7KyteqqKjzxv7aVQeWnul1Ve26mWvEQqyPwl0OctNBfSR9w==", 1760 | "requires": { 1761 | "file-type": "^12.0.0", 1762 | "globby": "^10.0.0", 1763 | "graceful-fs": "^4.2.2", 1764 | "junk": "^3.1.0", 1765 | "make-dir": "^3.0.0", 1766 | "p-pipe": "^3.0.0", 1767 | "replace-ext": "^1.0.0" 1768 | } 1769 | }, 1770 | "imagemin-cli": { 1771 | "version": "6.0.0", 1772 | "resolved": "https://registry.npmjs.org/imagemin-cli/-/imagemin-cli-6.0.0.tgz", 1773 | "integrity": "sha512-ZDQqZWnIxf4UEG6KSfCtddq625V+NnNmYgZOdyyQU1CkwTQV7ameE3bWYplGlpwYFOAXs71AbBBT3wEC1upBAA==", 1774 | "requires": { 1775 | "arrify": "^2.0.1", 1776 | "get-stdin": "^8.0.0", 1777 | "imagemin": "^7.0.0", 1778 | "imagemin-gifsicle": "^7.0.0", 1779 | "imagemin-jpegtran": "^6.0.0", 1780 | "imagemin-optipng": "^7.0.0", 1781 | "imagemin-svgo": "^7.0.0", 1782 | "lodash.pairs": "^3.0.1", 1783 | "meow": "^7.0.1", 1784 | "ora": "^4.0.3", 1785 | "plur": "^4.0.0", 1786 | "strip-indent": "^3.0.0" 1787 | } 1788 | }, 1789 | "imagemin-gifsicle": { 1790 | "version": "7.0.0", 1791 | "resolved": "https://registry.npmjs.org/imagemin-gifsicle/-/imagemin-gifsicle-7.0.0.tgz", 1792 | "integrity": "sha512-LaP38xhxAwS3W8PFh4y5iQ6feoTSF+dTAXFRUEYQWYst6Xd+9L/iPk34QGgK/VO/objmIlmq9TStGfVY2IcHIA==", 1793 | "optional": true, 1794 | "requires": { 1795 | "execa": "^1.0.0", 1796 | "gifsicle": "^5.0.0", 1797 | "is-gif": "^3.0.0" 1798 | } 1799 | }, 1800 | "imagemin-jpegtran": { 1801 | "version": "6.0.0", 1802 | "resolved": "https://registry.npmjs.org/imagemin-jpegtran/-/imagemin-jpegtran-6.0.0.tgz", 1803 | "integrity": "sha512-Ih+NgThzqYfEWv9t58EItncaaXIHR0u9RuhKa8CtVBlMBvY0dCIxgQJQCfwImA4AV1PMfmUKlkyIHJjb7V4z1g==", 1804 | "optional": true, 1805 | "requires": { 1806 | "exec-buffer": "^3.0.0", 1807 | "is-jpg": "^2.0.0", 1808 | "jpegtran-bin": "^4.0.0" 1809 | } 1810 | }, 1811 | "imagemin-optipng": { 1812 | "version": "7.1.0", 1813 | "resolved": "https://registry.npmjs.org/imagemin-optipng/-/imagemin-optipng-7.1.0.tgz", 1814 | "integrity": "sha512-JNORTZ6j6untH7e5gF4aWdhDCxe3ODsSLKs/f7Grewy3ebZpl1ZsU+VUTPY4rzeHgaFA8GSWOoA8V2M3OixWZQ==", 1815 | "optional": true, 1816 | "requires": { 1817 | "exec-buffer": "^3.0.0", 1818 | "is-png": "^2.0.0", 1819 | "optipng-bin": "^6.0.0" 1820 | } 1821 | }, 1822 | "imagemin-svgo": { 1823 | "version": "7.1.0", 1824 | "resolved": "https://registry.npmjs.org/imagemin-svgo/-/imagemin-svgo-7.1.0.tgz", 1825 | "integrity": "sha512-0JlIZNWP0Luasn1HT82uB9nU9aa+vUj6kpT+MjPW11LbprXC+iC4HDwn1r4Q2/91qj4iy9tRZNsFySMlEpLdpg==", 1826 | "optional": true, 1827 | "requires": { 1828 | "is-svg": "^4.2.1", 1829 | "svgo": "^1.3.2" 1830 | } 1831 | }, 1832 | "import-lazy": { 1833 | "version": "3.1.0", 1834 | "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-3.1.0.tgz", 1835 | "integrity": "sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ==", 1836 | "optional": true 1837 | }, 1838 | "indent-string": { 1839 | "version": "2.1.0", 1840 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", 1841 | "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", 1842 | "requires": { 1843 | "repeating": "^2.0.0" 1844 | } 1845 | }, 1846 | "inflight": { 1847 | "version": "1.0.6", 1848 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1849 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1850 | "requires": { 1851 | "once": "^1.3.0", 1852 | "wrappy": "1" 1853 | } 1854 | }, 1855 | "inherits": { 1856 | "version": "2.0.4", 1857 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1858 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 1859 | }, 1860 | "ini": { 1861 | "version": "1.3.5", 1862 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", 1863 | "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" 1864 | }, 1865 | "into-stream": { 1866 | "version": "3.1.0", 1867 | "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", 1868 | "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", 1869 | "optional": true, 1870 | "requires": { 1871 | "from2": "^2.1.1", 1872 | "p-is-promise": "^1.1.0" 1873 | } 1874 | }, 1875 | "irregular-plurals": { 1876 | "version": "3.2.0", 1877 | "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.2.0.tgz", 1878 | "integrity": "sha512-YqTdPLfwP7YFN0SsD3QUVCkm9ZG2VzOXv3DOrw5G5mkMbVwptTwVcFv7/C0vOpBmgTxAeTG19XpUs1E522LW9Q==" 1879 | }, 1880 | "is-absolute": { 1881 | "version": "1.0.0", 1882 | "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", 1883 | "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", 1884 | "requires": { 1885 | "is-relative": "^1.0.0", 1886 | "is-windows": "^1.0.1" 1887 | }, 1888 | "dependencies": { 1889 | "is-windows": { 1890 | "version": "1.0.2", 1891 | "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", 1892 | "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" 1893 | } 1894 | } 1895 | }, 1896 | "is-arrayish": { 1897 | "version": "0.2.1", 1898 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 1899 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" 1900 | }, 1901 | "is-callable": { 1902 | "version": "1.2.0", 1903 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", 1904 | "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==" 1905 | }, 1906 | "is-date-object": { 1907 | "version": "1.0.2", 1908 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", 1909 | "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" 1910 | }, 1911 | "is-extglob": { 1912 | "version": "2.1.1", 1913 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 1914 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" 1915 | }, 1916 | "is-finite": { 1917 | "version": "1.1.0", 1918 | "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", 1919 | "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==" 1920 | }, 1921 | "is-fullwidth-code-point": { 1922 | "version": "3.0.0", 1923 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 1924 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" 1925 | }, 1926 | "is-gif": { 1927 | "version": "3.0.0", 1928 | "resolved": "https://registry.npmjs.org/is-gif/-/is-gif-3.0.0.tgz", 1929 | "integrity": "sha512-IqJ/jlbw5WJSNfwQ/lHEDXF8rxhRgF6ythk2oiEvhpG29F704eX9NO6TvPfMiq9DrbwgcEDnETYNcZDPewQoVw==", 1930 | "optional": true, 1931 | "requires": { 1932 | "file-type": "^10.4.0" 1933 | }, 1934 | "dependencies": { 1935 | "file-type": { 1936 | "version": "10.11.0", 1937 | "resolved": "https://registry.npmjs.org/file-type/-/file-type-10.11.0.tgz", 1938 | "integrity": "sha512-uzk64HRpUZyTGZtVuvrjP0FYxzQrBf4rojot6J65YMEbwBLB0CWm0CLojVpwpmFmxcE/lkvYICgfcGozbBq6rw==", 1939 | "optional": true 1940 | } 1941 | } 1942 | }, 1943 | "is-glob": { 1944 | "version": "4.0.1", 1945 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", 1946 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", 1947 | "requires": { 1948 | "is-extglob": "^2.1.1" 1949 | } 1950 | }, 1951 | "is-interactive": { 1952 | "version": "1.0.0", 1953 | "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", 1954 | "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==" 1955 | }, 1956 | "is-jpg": { 1957 | "version": "2.0.0", 1958 | "resolved": "https://registry.npmjs.org/is-jpg/-/is-jpg-2.0.0.tgz", 1959 | "integrity": "sha1-LhmX+m6RZuqsAkLarkQ0A+TvHZc=", 1960 | "optional": true 1961 | }, 1962 | "is-natural-number": { 1963 | "version": "4.0.1", 1964 | "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", 1965 | "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=" 1966 | }, 1967 | "is-number": { 1968 | "version": "7.0.0", 1969 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 1970 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" 1971 | }, 1972 | "is-object": { 1973 | "version": "1.0.1", 1974 | "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", 1975 | "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=" 1976 | }, 1977 | "is-plain-obj": { 1978 | "version": "1.1.0", 1979 | "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", 1980 | "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" 1981 | }, 1982 | "is-png": { 1983 | "version": "2.0.0", 1984 | "resolved": "https://registry.npmjs.org/is-png/-/is-png-2.0.0.tgz", 1985 | "integrity": "sha512-4KPGizaVGj2LK7xwJIz8o5B2ubu1D/vcQsgOGFEDlpcvgZHto4gBnyd0ig7Ws+67ixmwKoNmu0hYnpo6AaKb5g==", 1986 | "optional": true 1987 | }, 1988 | "is-regex": { 1989 | "version": "1.1.1", 1990 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", 1991 | "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", 1992 | "requires": { 1993 | "has-symbols": "^1.0.1" 1994 | } 1995 | }, 1996 | "is-relative": { 1997 | "version": "1.0.0", 1998 | "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", 1999 | "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", 2000 | "requires": { 2001 | "is-unc-path": "^1.0.0" 2002 | } 2003 | }, 2004 | "is-retry-allowed": { 2005 | "version": "1.2.0", 2006 | "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", 2007 | "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" 2008 | }, 2009 | "is-stream": { 2010 | "version": "1.1.0", 2011 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", 2012 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" 2013 | }, 2014 | "is-svg": { 2015 | "version": "4.2.1", 2016 | "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-4.2.1.tgz", 2017 | "integrity": "sha512-PHx3ANecKsKNl5y5+Jvt53Y4J7MfMpbNZkv384QNiswMKAWIbvcqbPz+sYbFKJI8Xv3be01GSFniPmoaP+Ai5A==", 2018 | "optional": true, 2019 | "requires": { 2020 | "html-comment-regex": "^1.1.2" 2021 | } 2022 | }, 2023 | "is-symbol": { 2024 | "version": "1.0.3", 2025 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", 2026 | "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", 2027 | "requires": { 2028 | "has-symbols": "^1.0.1" 2029 | } 2030 | }, 2031 | "is-unc-path": { 2032 | "version": "1.0.0", 2033 | "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", 2034 | "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", 2035 | "requires": { 2036 | "unc-path-regex": "^0.1.2" 2037 | } 2038 | }, 2039 | "is-utf8": { 2040 | "version": "0.2.1", 2041 | "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", 2042 | "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", 2043 | "optional": true 2044 | }, 2045 | "is-windows": { 2046 | "version": "0.2.0", 2047 | "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz", 2048 | "integrity": "sha1-3hqm1j6indJIc3tp8f+LgALSEIw=" 2049 | }, 2050 | "isarray": { 2051 | "version": "1.0.0", 2052 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 2053 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 2054 | }, 2055 | "isexe": { 2056 | "version": "2.0.0", 2057 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 2058 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" 2059 | }, 2060 | "isurl": { 2061 | "version": "1.0.0", 2062 | "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", 2063 | "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", 2064 | "requires": { 2065 | "has-to-string-tag-x": "^1.2.0", 2066 | "is-object": "^1.0.1" 2067 | } 2068 | }, 2069 | "jpegtran-bin": { 2070 | "version": "4.0.0", 2071 | "resolved": "https://registry.npmjs.org/jpegtran-bin/-/jpegtran-bin-4.0.0.tgz", 2072 | "integrity": "sha512-2cRl1ism+wJUoYAYFt6O/rLBfpXNWG2dUWbgcEkTt5WGMnqI46eEro8T4C5zGROxKRqyKpCBSdHPvt5UYCtxaQ==", 2073 | "optional": true, 2074 | "requires": { 2075 | "bin-build": "^3.0.0", 2076 | "bin-wrapper": "^4.0.0", 2077 | "logalot": "^2.0.0" 2078 | } 2079 | }, 2080 | "js-tokens": { 2081 | "version": "4.0.0", 2082 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 2083 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 2084 | }, 2085 | "js-yaml": { 2086 | "version": "3.14.0", 2087 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", 2088 | "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", 2089 | "optional": true, 2090 | "requires": { 2091 | "argparse": "^1.0.7", 2092 | "esprima": "^4.0.0" 2093 | } 2094 | }, 2095 | "json-buffer": { 2096 | "version": "3.0.0", 2097 | "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", 2098 | "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", 2099 | "optional": true 2100 | }, 2101 | "json-parse-better-errors": { 2102 | "version": "1.0.2", 2103 | "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", 2104 | "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" 2105 | }, 2106 | "junk": { 2107 | "version": "3.1.0", 2108 | "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", 2109 | "integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==" 2110 | }, 2111 | "keyv": { 2112 | "version": "3.0.0", 2113 | "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", 2114 | "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", 2115 | "optional": true, 2116 | "requires": { 2117 | "json-buffer": "3.0.0" 2118 | } 2119 | }, 2120 | "kind-of": { 2121 | "version": "6.0.3", 2122 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", 2123 | "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" 2124 | }, 2125 | "lines-and-columns": { 2126 | "version": "1.1.6", 2127 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", 2128 | "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" 2129 | }, 2130 | "load-json-file": { 2131 | "version": "1.1.0", 2132 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", 2133 | "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", 2134 | "optional": true, 2135 | "requires": { 2136 | "graceful-fs": "^4.1.2", 2137 | "parse-json": "^2.2.0", 2138 | "pify": "^2.0.0", 2139 | "pinkie-promise": "^2.0.0", 2140 | "strip-bom": "^2.0.0" 2141 | } 2142 | }, 2143 | "locate-path": { 2144 | "version": "5.0.0", 2145 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", 2146 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", 2147 | "requires": { 2148 | "p-locate": "^4.1.0" 2149 | } 2150 | }, 2151 | "lodash._getnative": { 2152 | "version": "3.9.1", 2153 | "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", 2154 | "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=" 2155 | }, 2156 | "lodash.isarguments": { 2157 | "version": "3.1.0", 2158 | "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", 2159 | "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=" 2160 | }, 2161 | "lodash.isarray": { 2162 | "version": "3.0.4", 2163 | "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", 2164 | "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=" 2165 | }, 2166 | "lodash.keys": { 2167 | "version": "3.1.2", 2168 | "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", 2169 | "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", 2170 | "requires": { 2171 | "lodash._getnative": "^3.0.0", 2172 | "lodash.isarguments": "^3.0.0", 2173 | "lodash.isarray": "^3.0.0" 2174 | } 2175 | }, 2176 | "lodash.pairs": { 2177 | "version": "3.0.1", 2178 | "resolved": "https://registry.npmjs.org/lodash.pairs/-/lodash.pairs-3.0.1.tgz", 2179 | "integrity": "sha1-u+CNV4bu6qCaFckevw3LfSvjJqk=", 2180 | "requires": { 2181 | "lodash.keys": "^3.0.0" 2182 | } 2183 | }, 2184 | "log-symbols": { 2185 | "version": "3.0.0", 2186 | "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", 2187 | "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", 2188 | "requires": { 2189 | "chalk": "^2.4.2" 2190 | }, 2191 | "dependencies": { 2192 | "ansi-styles": { 2193 | "version": "3.2.1", 2194 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 2195 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 2196 | "requires": { 2197 | "color-convert": "^1.9.0" 2198 | } 2199 | }, 2200 | "chalk": { 2201 | "version": "2.4.2", 2202 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 2203 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 2204 | "requires": { 2205 | "ansi-styles": "^3.2.1", 2206 | "escape-string-regexp": "^1.0.5", 2207 | "supports-color": "^5.3.0" 2208 | } 2209 | }, 2210 | "color-convert": { 2211 | "version": "1.9.3", 2212 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 2213 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 2214 | "requires": { 2215 | "color-name": "1.1.3" 2216 | } 2217 | }, 2218 | "color-name": { 2219 | "version": "1.1.3", 2220 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 2221 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" 2222 | }, 2223 | "has-flag": { 2224 | "version": "3.0.0", 2225 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 2226 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" 2227 | }, 2228 | "supports-color": { 2229 | "version": "5.5.0", 2230 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 2231 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 2232 | "requires": { 2233 | "has-flag": "^3.0.0" 2234 | } 2235 | } 2236 | } 2237 | }, 2238 | "logalot": { 2239 | "version": "2.1.0", 2240 | "resolved": "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz", 2241 | "integrity": "sha1-X46MkNME7fElMJUaVVSruMXj9VI=", 2242 | "optional": true, 2243 | "requires": { 2244 | "figures": "^1.3.5", 2245 | "squeak": "^1.0.0" 2246 | } 2247 | }, 2248 | "longest": { 2249 | "version": "1.0.1", 2250 | "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", 2251 | "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", 2252 | "optional": true 2253 | }, 2254 | "loud-rejection": { 2255 | "version": "1.6.0", 2256 | "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", 2257 | "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", 2258 | "optional": true, 2259 | "requires": { 2260 | "currently-unhandled": "^0.4.1", 2261 | "signal-exit": "^3.0.0" 2262 | } 2263 | }, 2264 | "lowercase-keys": { 2265 | "version": "1.0.1", 2266 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", 2267 | "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" 2268 | }, 2269 | "lpad-align": { 2270 | "version": "1.1.2", 2271 | "resolved": "https://registry.npmjs.org/lpad-align/-/lpad-align-1.1.2.tgz", 2272 | "integrity": "sha1-IfYArBwwlcPG5JfuZyce4ISB/p4=", 2273 | "optional": true, 2274 | "requires": { 2275 | "get-stdin": "^4.0.1", 2276 | "indent-string": "^2.1.0", 2277 | "longest": "^1.0.0", 2278 | "meow": "^3.3.0" 2279 | }, 2280 | "dependencies": { 2281 | "get-stdin": { 2282 | "version": "4.0.1", 2283 | "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", 2284 | "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", 2285 | "optional": true 2286 | }, 2287 | "meow": { 2288 | "version": "3.7.0", 2289 | "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", 2290 | "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", 2291 | "optional": true, 2292 | "requires": { 2293 | "camelcase-keys": "^2.0.0", 2294 | "decamelize": "^1.1.2", 2295 | "loud-rejection": "^1.0.0", 2296 | "map-obj": "^1.0.1", 2297 | "minimist": "^1.1.3", 2298 | "normalize-package-data": "^2.3.4", 2299 | "object-assign": "^4.0.1", 2300 | "read-pkg-up": "^1.0.1", 2301 | "redent": "^1.0.0", 2302 | "trim-newlines": "^1.0.0" 2303 | } 2304 | } 2305 | } 2306 | }, 2307 | "lru-cache": { 2308 | "version": "4.1.5", 2309 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", 2310 | "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", 2311 | "requires": { 2312 | "pseudomap": "^1.0.2", 2313 | "yallist": "^2.1.2" 2314 | } 2315 | }, 2316 | "make-dir": { 2317 | "version": "3.1.0", 2318 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", 2319 | "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", 2320 | "requires": { 2321 | "semver": "^6.0.0" 2322 | } 2323 | }, 2324 | "map-cache": { 2325 | "version": "0.2.2", 2326 | "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", 2327 | "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" 2328 | }, 2329 | "map-obj": { 2330 | "version": "1.0.1", 2331 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", 2332 | "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" 2333 | }, 2334 | "mdn-data": { 2335 | "version": "2.0.4", 2336 | "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", 2337 | "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", 2338 | "optional": true 2339 | }, 2340 | "meow": { 2341 | "version": "7.1.0", 2342 | "resolved": "https://registry.npmjs.org/meow/-/meow-7.1.0.tgz", 2343 | "integrity": "sha512-kq5F0KVteskZ3JdfyQFivJEj2RaA8NFsS4+r9DaMKLcUHpk5OcHS3Q0XkCXONB1mZRPsu/Y/qImKri0nwSEZog==", 2344 | "requires": { 2345 | "@types/minimist": "^1.2.0", 2346 | "camelcase-keys": "^6.2.2", 2347 | "decamelize-keys": "^1.1.0", 2348 | "hard-rejection": "^2.1.0", 2349 | "minimist-options": "4.1.0", 2350 | "normalize-package-data": "^2.5.0", 2351 | "read-pkg-up": "^7.0.1", 2352 | "redent": "^3.0.0", 2353 | "trim-newlines": "^3.0.0", 2354 | "type-fest": "^0.13.1", 2355 | "yargs-parser": "^18.1.3" 2356 | }, 2357 | "dependencies": { 2358 | "camelcase": { 2359 | "version": "5.3.1", 2360 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", 2361 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" 2362 | }, 2363 | "camelcase-keys": { 2364 | "version": "6.2.2", 2365 | "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", 2366 | "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", 2367 | "requires": { 2368 | "camelcase": "^5.3.1", 2369 | "map-obj": "^4.0.0", 2370 | "quick-lru": "^4.0.1" 2371 | } 2372 | }, 2373 | "find-up": { 2374 | "version": "4.1.0", 2375 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", 2376 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", 2377 | "requires": { 2378 | "locate-path": "^5.0.0", 2379 | "path-exists": "^4.0.0" 2380 | } 2381 | }, 2382 | "indent-string": { 2383 | "version": "4.0.0", 2384 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", 2385 | "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" 2386 | }, 2387 | "map-obj": { 2388 | "version": "4.1.0", 2389 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.1.0.tgz", 2390 | "integrity": "sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g==" 2391 | }, 2392 | "parse-json": { 2393 | "version": "5.0.1", 2394 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.1.tgz", 2395 | "integrity": "sha512-ztoZ4/DYeXQq4E21v169sC8qWINGpcosGv9XhTDvg9/hWvx/zrFkc9BiWxR58OJLHGk28j5BL0SDLeV2WmFZlQ==", 2396 | "requires": { 2397 | "@babel/code-frame": "^7.0.0", 2398 | "error-ex": "^1.3.1", 2399 | "json-parse-better-errors": "^1.0.1", 2400 | "lines-and-columns": "^1.1.6" 2401 | } 2402 | }, 2403 | "path-exists": { 2404 | "version": "4.0.0", 2405 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 2406 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" 2407 | }, 2408 | "read-pkg": { 2409 | "version": "5.2.0", 2410 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", 2411 | "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", 2412 | "requires": { 2413 | "@types/normalize-package-data": "^2.4.0", 2414 | "normalize-package-data": "^2.5.0", 2415 | "parse-json": "^5.0.0", 2416 | "type-fest": "^0.6.0" 2417 | }, 2418 | "dependencies": { 2419 | "type-fest": { 2420 | "version": "0.6.0", 2421 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", 2422 | "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==" 2423 | } 2424 | } 2425 | }, 2426 | "read-pkg-up": { 2427 | "version": "7.0.1", 2428 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", 2429 | "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", 2430 | "requires": { 2431 | "find-up": "^4.1.0", 2432 | "read-pkg": "^5.2.0", 2433 | "type-fest": "^0.8.1" 2434 | }, 2435 | "dependencies": { 2436 | "type-fest": { 2437 | "version": "0.8.1", 2438 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", 2439 | "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" 2440 | } 2441 | } 2442 | }, 2443 | "redent": { 2444 | "version": "3.0.0", 2445 | "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", 2446 | "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", 2447 | "requires": { 2448 | "indent-string": "^4.0.0", 2449 | "strip-indent": "^3.0.0" 2450 | } 2451 | }, 2452 | "trim-newlines": { 2453 | "version": "3.0.0", 2454 | "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz", 2455 | "integrity": "sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==" 2456 | } 2457 | } 2458 | }, 2459 | "merge-stream": { 2460 | "version": "2.0.0", 2461 | "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", 2462 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", 2463 | "optional": true 2464 | }, 2465 | "merge2": { 2466 | "version": "1.4.1", 2467 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 2468 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" 2469 | }, 2470 | "micromatch": { 2471 | "version": "4.0.2", 2472 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", 2473 | "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", 2474 | "requires": { 2475 | "braces": "^3.0.1", 2476 | "picomatch": "^2.0.5" 2477 | } 2478 | }, 2479 | "mime-db": { 2480 | "version": "1.44.0", 2481 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", 2482 | "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" 2483 | }, 2484 | "mimic-fn": { 2485 | "version": "2.1.0", 2486 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", 2487 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" 2488 | }, 2489 | "mimic-response": { 2490 | "version": "1.0.1", 2491 | "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", 2492 | "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" 2493 | }, 2494 | "min-indent": { 2495 | "version": "1.0.1", 2496 | "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", 2497 | "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" 2498 | }, 2499 | "minimatch": { 2500 | "version": "3.0.4", 2501 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 2502 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 2503 | "requires": { 2504 | "brace-expansion": "^1.1.7" 2505 | } 2506 | }, 2507 | "minimist": { 2508 | "version": "1.2.5", 2509 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", 2510 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", 2511 | "optional": true 2512 | }, 2513 | "minimist-options": { 2514 | "version": "4.1.0", 2515 | "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", 2516 | "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", 2517 | "requires": { 2518 | "arrify": "^1.0.1", 2519 | "is-plain-obj": "^1.1.0", 2520 | "kind-of": "^6.0.3" 2521 | }, 2522 | "dependencies": { 2523 | "arrify": { 2524 | "version": "1.0.1", 2525 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", 2526 | "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" 2527 | } 2528 | } 2529 | }, 2530 | "mkdirp": { 2531 | "version": "0.5.5", 2532 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", 2533 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", 2534 | "optional": true, 2535 | "requires": { 2536 | "minimist": "^1.2.5" 2537 | } 2538 | }, 2539 | "mute-stream": { 2540 | "version": "0.0.8", 2541 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", 2542 | "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" 2543 | }, 2544 | "nice-try": { 2545 | "version": "1.0.5", 2546 | "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", 2547 | "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" 2548 | }, 2549 | "normalize-package-data": { 2550 | "version": "2.5.0", 2551 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", 2552 | "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", 2553 | "requires": { 2554 | "hosted-git-info": "^2.1.4", 2555 | "resolve": "^1.10.0", 2556 | "semver": "2 || 3 || 4 || 5", 2557 | "validate-npm-package-license": "^3.0.1" 2558 | }, 2559 | "dependencies": { 2560 | "semver": { 2561 | "version": "5.7.1", 2562 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 2563 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" 2564 | } 2565 | } 2566 | }, 2567 | "normalize-url": { 2568 | "version": "2.0.1", 2569 | "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", 2570 | "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", 2571 | "optional": true, 2572 | "requires": { 2573 | "prepend-http": "^2.0.0", 2574 | "query-string": "^5.0.1", 2575 | "sort-keys": "^2.0.0" 2576 | }, 2577 | "dependencies": { 2578 | "prepend-http": { 2579 | "version": "2.0.0", 2580 | "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", 2581 | "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", 2582 | "optional": true 2583 | }, 2584 | "sort-keys": { 2585 | "version": "2.0.0", 2586 | "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", 2587 | "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", 2588 | "optional": true, 2589 | "requires": { 2590 | "is-plain-obj": "^1.0.0" 2591 | } 2592 | } 2593 | } 2594 | }, 2595 | "npm-conf": { 2596 | "version": "1.1.3", 2597 | "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", 2598 | "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", 2599 | "requires": { 2600 | "config-chain": "^1.1.11", 2601 | "pify": "^3.0.0" 2602 | }, 2603 | "dependencies": { 2604 | "pify": { 2605 | "version": "3.0.0", 2606 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", 2607 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" 2608 | } 2609 | } 2610 | }, 2611 | "npm-run-path": { 2612 | "version": "2.0.2", 2613 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", 2614 | "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", 2615 | "requires": { 2616 | "path-key": "^2.0.0" 2617 | } 2618 | }, 2619 | "nth-check": { 2620 | "version": "1.0.2", 2621 | "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", 2622 | "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", 2623 | "optional": true, 2624 | "requires": { 2625 | "boolbase": "~1.0.0" 2626 | } 2627 | }, 2628 | "object-assign": { 2629 | "version": "4.1.1", 2630 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 2631 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" 2632 | }, 2633 | "object-inspect": { 2634 | "version": "1.8.0", 2635 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", 2636 | "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==" 2637 | }, 2638 | "object-keys": { 2639 | "version": "1.1.1", 2640 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 2641 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" 2642 | }, 2643 | "object.assign": { 2644 | "version": "4.1.0", 2645 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", 2646 | "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", 2647 | "requires": { 2648 | "define-properties": "^1.1.2", 2649 | "function-bind": "^1.1.1", 2650 | "has-symbols": "^1.0.0", 2651 | "object-keys": "^1.0.11" 2652 | } 2653 | }, 2654 | "object.getownpropertydescriptors": { 2655 | "version": "2.1.0", 2656 | "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", 2657 | "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", 2658 | "optional": true, 2659 | "requires": { 2660 | "define-properties": "^1.1.3", 2661 | "es-abstract": "^1.17.0-next.1" 2662 | } 2663 | }, 2664 | "object.values": { 2665 | "version": "1.1.1", 2666 | "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", 2667 | "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", 2668 | "optional": true, 2669 | "requires": { 2670 | "define-properties": "^1.1.3", 2671 | "es-abstract": "^1.17.0-next.1", 2672 | "function-bind": "^1.1.1", 2673 | "has": "^1.0.3" 2674 | } 2675 | }, 2676 | "once": { 2677 | "version": "1.4.0", 2678 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 2679 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 2680 | "requires": { 2681 | "wrappy": "1" 2682 | } 2683 | }, 2684 | "onetime": { 2685 | "version": "5.1.2", 2686 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", 2687 | "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", 2688 | "requires": { 2689 | "mimic-fn": "^2.1.0" 2690 | } 2691 | }, 2692 | "optipng-bin": { 2693 | "version": "6.0.0", 2694 | "resolved": "https://registry.npmjs.org/optipng-bin/-/optipng-bin-6.0.0.tgz", 2695 | "integrity": "sha512-95bB4y8IaTsa/8x6QH4bLUuyvyOoGBCLDA7wOgDL8UFqJpSUh1Hob8JRJhit+wC1ZLN3tQ7mFt7KuBj0x8F2Wg==", 2696 | "optional": true, 2697 | "requires": { 2698 | "bin-build": "^3.0.0", 2699 | "bin-wrapper": "^4.0.0", 2700 | "logalot": "^2.0.0" 2701 | } 2702 | }, 2703 | "ora": { 2704 | "version": "4.1.1", 2705 | "resolved": "https://registry.npmjs.org/ora/-/ora-4.1.1.tgz", 2706 | "integrity": "sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A==", 2707 | "requires": { 2708 | "chalk": "^3.0.0", 2709 | "cli-cursor": "^3.1.0", 2710 | "cli-spinners": "^2.2.0", 2711 | "is-interactive": "^1.0.0", 2712 | "log-symbols": "^3.0.0", 2713 | "mute-stream": "0.0.8", 2714 | "strip-ansi": "^6.0.0", 2715 | "wcwidth": "^1.0.1" 2716 | }, 2717 | "dependencies": { 2718 | "ansi-regex": { 2719 | "version": "5.0.0", 2720 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", 2721 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" 2722 | }, 2723 | "chalk": { 2724 | "version": "3.0.0", 2725 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", 2726 | "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", 2727 | "requires": { 2728 | "ansi-styles": "^4.1.0", 2729 | "supports-color": "^7.1.0" 2730 | } 2731 | }, 2732 | "strip-ansi": { 2733 | "version": "6.0.0", 2734 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", 2735 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", 2736 | "requires": { 2737 | "ansi-regex": "^5.0.0" 2738 | } 2739 | } 2740 | } 2741 | }, 2742 | "os-filter-obj": { 2743 | "version": "2.0.0", 2744 | "resolved": "https://registry.npmjs.org/os-filter-obj/-/os-filter-obj-2.0.0.tgz", 2745 | "integrity": "sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg==", 2746 | "optional": true, 2747 | "requires": { 2748 | "arch": "^2.1.0" 2749 | } 2750 | }, 2751 | "os-homedir": { 2752 | "version": "1.0.2", 2753 | "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", 2754 | "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" 2755 | }, 2756 | "p-cancelable": { 2757 | "version": "0.3.0", 2758 | "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", 2759 | "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", 2760 | "optional": true 2761 | }, 2762 | "p-event": { 2763 | "version": "1.3.0", 2764 | "resolved": "https://registry.npmjs.org/p-event/-/p-event-1.3.0.tgz", 2765 | "integrity": "sha1-jmtPT2XHK8W2/ii3XtqHT5akoIU=", 2766 | "optional": true, 2767 | "requires": { 2768 | "p-timeout": "^1.1.1" 2769 | } 2770 | }, 2771 | "p-finally": { 2772 | "version": "1.0.0", 2773 | "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", 2774 | "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" 2775 | }, 2776 | "p-is-promise": { 2777 | "version": "1.1.0", 2778 | "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", 2779 | "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=", 2780 | "optional": true 2781 | }, 2782 | "p-limit": { 2783 | "version": "2.3.0", 2784 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", 2785 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", 2786 | "requires": { 2787 | "p-try": "^2.0.0" 2788 | } 2789 | }, 2790 | "p-locate": { 2791 | "version": "4.1.0", 2792 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", 2793 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", 2794 | "requires": { 2795 | "p-limit": "^2.2.0" 2796 | } 2797 | }, 2798 | "p-map-series": { 2799 | "version": "1.0.0", 2800 | "resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-1.0.0.tgz", 2801 | "integrity": "sha1-v5j+V1cFZYqeE1G++4WuTB8Hvco=", 2802 | "optional": true, 2803 | "requires": { 2804 | "p-reduce": "^1.0.0" 2805 | } 2806 | }, 2807 | "p-pipe": { 2808 | "version": "3.1.0", 2809 | "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz", 2810 | "integrity": "sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==" 2811 | }, 2812 | "p-reduce": { 2813 | "version": "1.0.0", 2814 | "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", 2815 | "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=", 2816 | "optional": true 2817 | }, 2818 | "p-timeout": { 2819 | "version": "1.2.1", 2820 | "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", 2821 | "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", 2822 | "requires": { 2823 | "p-finally": "^1.0.0" 2824 | } 2825 | }, 2826 | "p-try": { 2827 | "version": "2.2.0", 2828 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", 2829 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" 2830 | }, 2831 | "parse-filepath": { 2832 | "version": "1.0.2", 2833 | "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", 2834 | "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", 2835 | "requires": { 2836 | "is-absolute": "^1.0.0", 2837 | "map-cache": "^0.2.0", 2838 | "path-root": "^0.1.1" 2839 | } 2840 | }, 2841 | "parse-json": { 2842 | "version": "2.2.0", 2843 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", 2844 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", 2845 | "optional": true, 2846 | "requires": { 2847 | "error-ex": "^1.2.0" 2848 | } 2849 | }, 2850 | "parse-passwd": { 2851 | "version": "1.0.0", 2852 | "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", 2853 | "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" 2854 | }, 2855 | "path-exists": { 2856 | "version": "2.1.0", 2857 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", 2858 | "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", 2859 | "optional": true, 2860 | "requires": { 2861 | "pinkie-promise": "^2.0.0" 2862 | } 2863 | }, 2864 | "path-is-absolute": { 2865 | "version": "1.0.1", 2866 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 2867 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" 2868 | }, 2869 | "path-key": { 2870 | "version": "2.0.1", 2871 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", 2872 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" 2873 | }, 2874 | "path-parse": { 2875 | "version": "1.0.6", 2876 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", 2877 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" 2878 | }, 2879 | "path-root": { 2880 | "version": "0.1.1", 2881 | "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", 2882 | "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", 2883 | "requires": { 2884 | "path-root-regex": "^0.1.0" 2885 | } 2886 | }, 2887 | "path-root-regex": { 2888 | "version": "0.1.2", 2889 | "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", 2890 | "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=" 2891 | }, 2892 | "path-type": { 2893 | "version": "4.0.0", 2894 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", 2895 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" 2896 | }, 2897 | "pend": { 2898 | "version": "1.2.0", 2899 | "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", 2900 | "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" 2901 | }, 2902 | "picomatch": { 2903 | "version": "2.2.2", 2904 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", 2905 | "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" 2906 | }, 2907 | "pify": { 2908 | "version": "2.3.0", 2909 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 2910 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" 2911 | }, 2912 | "pinkie": { 2913 | "version": "2.0.4", 2914 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 2915 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" 2916 | }, 2917 | "pinkie-promise": { 2918 | "version": "2.0.1", 2919 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 2920 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", 2921 | "requires": { 2922 | "pinkie": "^2.0.0" 2923 | } 2924 | }, 2925 | "plur": { 2926 | "version": "4.0.0", 2927 | "resolved": "https://registry.npmjs.org/plur/-/plur-4.0.0.tgz", 2928 | "integrity": "sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==", 2929 | "requires": { 2930 | "irregular-plurals": "^3.2.0" 2931 | } 2932 | }, 2933 | "prepend-http": { 2934 | "version": "1.0.4", 2935 | "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", 2936 | "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", 2937 | "optional": true 2938 | }, 2939 | "process-nextick-args": { 2940 | "version": "2.0.1", 2941 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 2942 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" 2943 | }, 2944 | "proto-list": { 2945 | "version": "1.2.4", 2946 | "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", 2947 | "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=" 2948 | }, 2949 | "pseudomap": { 2950 | "version": "1.0.2", 2951 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", 2952 | "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" 2953 | }, 2954 | "pump": { 2955 | "version": "3.0.0", 2956 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", 2957 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", 2958 | "requires": { 2959 | "end-of-stream": "^1.1.0", 2960 | "once": "^1.3.1" 2961 | } 2962 | }, 2963 | "q": { 2964 | "version": "1.5.1", 2965 | "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", 2966 | "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", 2967 | "optional": true 2968 | }, 2969 | "query-string": { 2970 | "version": "5.1.1", 2971 | "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", 2972 | "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", 2973 | "optional": true, 2974 | "requires": { 2975 | "decode-uri-component": "^0.2.0", 2976 | "object-assign": "^4.1.0", 2977 | "strict-uri-encode": "^1.0.0" 2978 | } 2979 | }, 2980 | "quick-lru": { 2981 | "version": "4.0.1", 2982 | "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", 2983 | "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==" 2984 | }, 2985 | "read-pkg": { 2986 | "version": "1.1.0", 2987 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", 2988 | "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", 2989 | "optional": true, 2990 | "requires": { 2991 | "load-json-file": "^1.0.0", 2992 | "normalize-package-data": "^2.3.2", 2993 | "path-type": "^1.0.0" 2994 | }, 2995 | "dependencies": { 2996 | "path-type": { 2997 | "version": "1.1.0", 2998 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", 2999 | "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", 3000 | "optional": true, 3001 | "requires": { 3002 | "graceful-fs": "^4.1.2", 3003 | "pify": "^2.0.0", 3004 | "pinkie-promise": "^2.0.0" 3005 | } 3006 | } 3007 | } 3008 | }, 3009 | "read-pkg-up": { 3010 | "version": "1.0.1", 3011 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", 3012 | "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", 3013 | "optional": true, 3014 | "requires": { 3015 | "find-up": "^1.0.0", 3016 | "read-pkg": "^1.0.0" 3017 | } 3018 | }, 3019 | "readable-stream": { 3020 | "version": "2.3.7", 3021 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 3022 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 3023 | "requires": { 3024 | "core-util-is": "~1.0.0", 3025 | "inherits": "~2.0.3", 3026 | "isarray": "~1.0.0", 3027 | "process-nextick-args": "~2.0.0", 3028 | "safe-buffer": "~5.1.1", 3029 | "string_decoder": "~1.1.1", 3030 | "util-deprecate": "~1.0.1" 3031 | }, 3032 | "dependencies": { 3033 | "safe-buffer": { 3034 | "version": "5.1.2", 3035 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 3036 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 3037 | } 3038 | } 3039 | }, 3040 | "redent": { 3041 | "version": "1.0.0", 3042 | "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", 3043 | "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", 3044 | "optional": true, 3045 | "requires": { 3046 | "indent-string": "^2.1.0", 3047 | "strip-indent": "^1.0.1" 3048 | }, 3049 | "dependencies": { 3050 | "get-stdin": { 3051 | "version": "4.0.1", 3052 | "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", 3053 | "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", 3054 | "optional": true 3055 | }, 3056 | "strip-indent": { 3057 | "version": "1.0.1", 3058 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", 3059 | "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", 3060 | "optional": true, 3061 | "requires": { 3062 | "get-stdin": "^4.0.1" 3063 | } 3064 | } 3065 | } 3066 | }, 3067 | "repeating": { 3068 | "version": "2.0.1", 3069 | "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", 3070 | "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", 3071 | "requires": { 3072 | "is-finite": "^1.0.0" 3073 | } 3074 | }, 3075 | "replace-ext": { 3076 | "version": "1.0.1", 3077 | "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", 3078 | "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==" 3079 | }, 3080 | "require-directory": { 3081 | "version": "2.1.1", 3082 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 3083 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" 3084 | }, 3085 | "require-main-filename": { 3086 | "version": "2.0.0", 3087 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", 3088 | "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" 3089 | }, 3090 | "resolve": { 3091 | "version": "1.17.0", 3092 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", 3093 | "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", 3094 | "requires": { 3095 | "path-parse": "^1.0.6" 3096 | } 3097 | }, 3098 | "resolve-dir": { 3099 | "version": "0.1.1", 3100 | "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz", 3101 | "integrity": "sha1-shklmlYC+sXFxJatiUpujMQwJh4=", 3102 | "requires": { 3103 | "expand-tilde": "^1.2.2", 3104 | "global-modules": "^0.2.3" 3105 | } 3106 | }, 3107 | "responselike": { 3108 | "version": "1.0.2", 3109 | "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", 3110 | "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", 3111 | "optional": true, 3112 | "requires": { 3113 | "lowercase-keys": "^1.0.0" 3114 | } 3115 | }, 3116 | "restore-cursor": { 3117 | "version": "3.1.0", 3118 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", 3119 | "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", 3120 | "requires": { 3121 | "onetime": "^5.1.0", 3122 | "signal-exit": "^3.0.2" 3123 | } 3124 | }, 3125 | "reusify": { 3126 | "version": "1.0.4", 3127 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 3128 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" 3129 | }, 3130 | "rimraf": { 3131 | "version": "3.0.2", 3132 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 3133 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 3134 | "requires": { 3135 | "glob": "^7.1.3" 3136 | } 3137 | }, 3138 | "run-parallel": { 3139 | "version": "1.1.9", 3140 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", 3141 | "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==" 3142 | }, 3143 | "safe-buffer": { 3144 | "version": "5.2.1", 3145 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 3146 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" 3147 | }, 3148 | "sax": { 3149 | "version": "1.2.4", 3150 | "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", 3151 | "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", 3152 | "optional": true 3153 | }, 3154 | "seek-bzip": { 3155 | "version": "1.0.6", 3156 | "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", 3157 | "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", 3158 | "requires": { 3159 | "commander": "^2.8.1" 3160 | } 3161 | }, 3162 | "semver": { 3163 | "version": "6.3.0", 3164 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 3165 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" 3166 | }, 3167 | "semver-regex": { 3168 | "version": "2.0.0", 3169 | "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz", 3170 | "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==", 3171 | "optional": true 3172 | }, 3173 | "semver-truncate": { 3174 | "version": "1.1.2", 3175 | "resolved": "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz", 3176 | "integrity": "sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g=", 3177 | "optional": true, 3178 | "requires": { 3179 | "semver": "^5.3.0" 3180 | }, 3181 | "dependencies": { 3182 | "semver": { 3183 | "version": "5.7.1", 3184 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 3185 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", 3186 | "optional": true 3187 | } 3188 | } 3189 | }, 3190 | "set-blocking": { 3191 | "version": "2.0.0", 3192 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 3193 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" 3194 | }, 3195 | "shebang-command": { 3196 | "version": "1.2.0", 3197 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 3198 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", 3199 | "requires": { 3200 | "shebang-regex": "^1.0.0" 3201 | } 3202 | }, 3203 | "shebang-regex": { 3204 | "version": "1.0.0", 3205 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 3206 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" 3207 | }, 3208 | "signal-exit": { 3209 | "version": "3.0.3", 3210 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", 3211 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" 3212 | }, 3213 | "slash": { 3214 | "version": "3.0.0", 3215 | "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", 3216 | "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" 3217 | }, 3218 | "sort-keys": { 3219 | "version": "1.1.2", 3220 | "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", 3221 | "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", 3222 | "requires": { 3223 | "is-plain-obj": "^1.0.0" 3224 | } 3225 | }, 3226 | "sort-keys-length": { 3227 | "version": "1.0.1", 3228 | "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz", 3229 | "integrity": "sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=", 3230 | "requires": { 3231 | "sort-keys": "^1.0.0" 3232 | } 3233 | }, 3234 | "source-map": { 3235 | "version": "0.6.1", 3236 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 3237 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" 3238 | }, 3239 | "spdx-correct": { 3240 | "version": "3.1.1", 3241 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", 3242 | "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", 3243 | "requires": { 3244 | "spdx-expression-parse": "^3.0.0", 3245 | "spdx-license-ids": "^3.0.0" 3246 | } 3247 | }, 3248 | "spdx-exceptions": { 3249 | "version": "2.3.0", 3250 | "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", 3251 | "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" 3252 | }, 3253 | "spdx-expression-parse": { 3254 | "version": "3.0.1", 3255 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", 3256 | "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", 3257 | "requires": { 3258 | "spdx-exceptions": "^2.1.0", 3259 | "spdx-license-ids": "^3.0.0" 3260 | } 3261 | }, 3262 | "spdx-license-ids": { 3263 | "version": "3.0.5", 3264 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", 3265 | "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" 3266 | }, 3267 | "sprintf-js": { 3268 | "version": "1.0.3", 3269 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 3270 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", 3271 | "optional": true 3272 | }, 3273 | "squeak": { 3274 | "version": "1.3.0", 3275 | "resolved": "https://registry.npmjs.org/squeak/-/squeak-1.3.0.tgz", 3276 | "integrity": "sha1-MwRQN7ZDiLVnZ0uEMiplIQc5FsM=", 3277 | "optional": true, 3278 | "requires": { 3279 | "chalk": "^1.0.0", 3280 | "console-stream": "^0.1.1", 3281 | "lpad-align": "^1.0.1" 3282 | }, 3283 | "dependencies": { 3284 | "ansi-styles": { 3285 | "version": "2.2.1", 3286 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 3287 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", 3288 | "optional": true 3289 | }, 3290 | "chalk": { 3291 | "version": "1.1.3", 3292 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 3293 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 3294 | "optional": true, 3295 | "requires": { 3296 | "ansi-styles": "^2.2.1", 3297 | "escape-string-regexp": "^1.0.2", 3298 | "has-ansi": "^2.0.0", 3299 | "strip-ansi": "^3.0.0", 3300 | "supports-color": "^2.0.0" 3301 | } 3302 | }, 3303 | "supports-color": { 3304 | "version": "2.0.0", 3305 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 3306 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", 3307 | "optional": true 3308 | } 3309 | } 3310 | }, 3311 | "stable": { 3312 | "version": "0.1.8", 3313 | "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", 3314 | "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", 3315 | "optional": true 3316 | }, 3317 | "staged-git-files": { 3318 | "version": "1.2.0", 3319 | "resolved": "https://registry.npmjs.org/staged-git-files/-/staged-git-files-1.2.0.tgz", 3320 | "integrity": "sha512-MYK3aDsO8XAXkv2ASsrznObxVDlocYm7gc/cMk/hB4vbJZeEqOO7H1mZR7EY2C5q3YgKOBo3Tmu0D30h7RjdWg==" 3321 | }, 3322 | "strict-uri-encode": { 3323 | "version": "1.1.0", 3324 | "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", 3325 | "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", 3326 | "optional": true 3327 | }, 3328 | "string-width": { 3329 | "version": "4.2.0", 3330 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", 3331 | "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", 3332 | "requires": { 3333 | "emoji-regex": "^8.0.0", 3334 | "is-fullwidth-code-point": "^3.0.0", 3335 | "strip-ansi": "^6.0.0" 3336 | }, 3337 | "dependencies": { 3338 | "ansi-regex": { 3339 | "version": "5.0.0", 3340 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", 3341 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" 3342 | }, 3343 | "strip-ansi": { 3344 | "version": "6.0.0", 3345 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", 3346 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", 3347 | "requires": { 3348 | "ansi-regex": "^5.0.0" 3349 | } 3350 | } 3351 | } 3352 | }, 3353 | "string.prototype.trimend": { 3354 | "version": "1.0.1", 3355 | "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", 3356 | "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", 3357 | "requires": { 3358 | "define-properties": "^1.1.3", 3359 | "es-abstract": "^1.17.5" 3360 | } 3361 | }, 3362 | "string.prototype.trimstart": { 3363 | "version": "1.0.1", 3364 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", 3365 | "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", 3366 | "requires": { 3367 | "define-properties": "^1.1.3", 3368 | "es-abstract": "^1.17.5" 3369 | } 3370 | }, 3371 | "string_decoder": { 3372 | "version": "1.1.1", 3373 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 3374 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 3375 | "requires": { 3376 | "safe-buffer": "~5.1.0" 3377 | }, 3378 | "dependencies": { 3379 | "safe-buffer": { 3380 | "version": "5.1.2", 3381 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 3382 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 3383 | } 3384 | } 3385 | }, 3386 | "strip-ansi": { 3387 | "version": "3.0.1", 3388 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 3389 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 3390 | "optional": true, 3391 | "requires": { 3392 | "ansi-regex": "^2.0.0" 3393 | } 3394 | }, 3395 | "strip-bom": { 3396 | "version": "2.0.0", 3397 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", 3398 | "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", 3399 | "optional": true, 3400 | "requires": { 3401 | "is-utf8": "^0.2.0" 3402 | } 3403 | }, 3404 | "strip-dirs": { 3405 | "version": "2.1.0", 3406 | "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", 3407 | "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", 3408 | "requires": { 3409 | "is-natural-number": "^4.0.1" 3410 | } 3411 | }, 3412 | "strip-eof": { 3413 | "version": "1.0.0", 3414 | "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", 3415 | "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" 3416 | }, 3417 | "strip-final-newline": { 3418 | "version": "2.0.0", 3419 | "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", 3420 | "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", 3421 | "optional": true 3422 | }, 3423 | "strip-indent": { 3424 | "version": "3.0.0", 3425 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", 3426 | "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", 3427 | "requires": { 3428 | "min-indent": "^1.0.0" 3429 | } 3430 | }, 3431 | "strip-outer": { 3432 | "version": "1.0.1", 3433 | "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", 3434 | "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", 3435 | "requires": { 3436 | "escape-string-regexp": "^1.0.2" 3437 | } 3438 | }, 3439 | "supports-color": { 3440 | "version": "7.1.0", 3441 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", 3442 | "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", 3443 | "requires": { 3444 | "has-flag": "^4.0.0" 3445 | } 3446 | }, 3447 | "svgo": { 3448 | "version": "1.3.2", 3449 | "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", 3450 | "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", 3451 | "optional": true, 3452 | "requires": { 3453 | "chalk": "^2.4.1", 3454 | "coa": "^2.0.2", 3455 | "css-select": "^2.0.0", 3456 | "css-select-base-adapter": "^0.1.1", 3457 | "css-tree": "1.0.0-alpha.37", 3458 | "csso": "^4.0.2", 3459 | "js-yaml": "^3.13.1", 3460 | "mkdirp": "~0.5.1", 3461 | "object.values": "^1.1.0", 3462 | "sax": "~1.2.4", 3463 | "stable": "^0.1.8", 3464 | "unquote": "~1.1.1", 3465 | "util.promisify": "~1.0.0" 3466 | }, 3467 | "dependencies": { 3468 | "ansi-styles": { 3469 | "version": "3.2.1", 3470 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 3471 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 3472 | "optional": true, 3473 | "requires": { 3474 | "color-convert": "^1.9.0" 3475 | } 3476 | }, 3477 | "chalk": { 3478 | "version": "2.4.2", 3479 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 3480 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 3481 | "optional": true, 3482 | "requires": { 3483 | "ansi-styles": "^3.2.1", 3484 | "escape-string-regexp": "^1.0.5", 3485 | "supports-color": "^5.3.0" 3486 | } 3487 | }, 3488 | "color-convert": { 3489 | "version": "1.9.3", 3490 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 3491 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 3492 | "optional": true, 3493 | "requires": { 3494 | "color-name": "1.1.3" 3495 | } 3496 | }, 3497 | "color-name": { 3498 | "version": "1.1.3", 3499 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 3500 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 3501 | "optional": true 3502 | }, 3503 | "has-flag": { 3504 | "version": "3.0.0", 3505 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 3506 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 3507 | "optional": true 3508 | }, 3509 | "supports-color": { 3510 | "version": "5.5.0", 3511 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 3512 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 3513 | "optional": true, 3514 | "requires": { 3515 | "has-flag": "^3.0.0" 3516 | } 3517 | } 3518 | } 3519 | }, 3520 | "tar-stream": { 3521 | "version": "1.6.2", 3522 | "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", 3523 | "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", 3524 | "requires": { 3525 | "bl": "^1.0.0", 3526 | "buffer-alloc": "^1.2.0", 3527 | "end-of-stream": "^1.0.0", 3528 | "fs-constants": "^1.0.0", 3529 | "readable-stream": "^2.3.0", 3530 | "to-buffer": "^1.1.1", 3531 | "xtend": "^4.0.0" 3532 | } 3533 | }, 3534 | "temp-dir": { 3535 | "version": "1.0.0", 3536 | "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", 3537 | "integrity": "sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=" 3538 | }, 3539 | "tempfile": { 3540 | "version": "2.0.0", 3541 | "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-2.0.0.tgz", 3542 | "integrity": "sha1-awRGhWqbERTRhW/8vlCczLCXcmU=", 3543 | "requires": { 3544 | "temp-dir": "^1.0.0", 3545 | "uuid": "^3.0.1" 3546 | } 3547 | }, 3548 | "through": { 3549 | "version": "2.3.8", 3550 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 3551 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" 3552 | }, 3553 | "timed-out": { 3554 | "version": "4.0.1", 3555 | "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", 3556 | "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" 3557 | }, 3558 | "to-buffer": { 3559 | "version": "1.1.1", 3560 | "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", 3561 | "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==" 3562 | }, 3563 | "to-regex-range": { 3564 | "version": "5.0.1", 3565 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 3566 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 3567 | "requires": { 3568 | "is-number": "^7.0.0" 3569 | } 3570 | }, 3571 | "traverse-chain": { 3572 | "version": "0.1.0", 3573 | "resolved": "https://registry.npmjs.org/traverse-chain/-/traverse-chain-0.1.0.tgz", 3574 | "integrity": "sha1-YdvC1Ttp/2CRoSoWj9fUMxB+QPE=" 3575 | }, 3576 | "trim-newlines": { 3577 | "version": "1.0.0", 3578 | "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", 3579 | "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", 3580 | "optional": true 3581 | }, 3582 | "trim-repeated": { 3583 | "version": "1.0.0", 3584 | "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", 3585 | "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=", 3586 | "requires": { 3587 | "escape-string-regexp": "^1.0.2" 3588 | } 3589 | }, 3590 | "tunnel-agent": { 3591 | "version": "0.6.0", 3592 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 3593 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 3594 | "requires": { 3595 | "safe-buffer": "^5.0.1" 3596 | } 3597 | }, 3598 | "type-fest": { 3599 | "version": "0.13.1", 3600 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", 3601 | "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==" 3602 | }, 3603 | "unbzip2-stream": { 3604 | "version": "1.4.3", 3605 | "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", 3606 | "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", 3607 | "requires": { 3608 | "buffer": "^5.2.1", 3609 | "through": "^2.3.8" 3610 | } 3611 | }, 3612 | "unc-path-regex": { 3613 | "version": "0.1.2", 3614 | "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", 3615 | "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" 3616 | }, 3617 | "unquote": { 3618 | "version": "1.1.1", 3619 | "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", 3620 | "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", 3621 | "optional": true 3622 | }, 3623 | "url-parse-lax": { 3624 | "version": "1.0.0", 3625 | "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", 3626 | "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", 3627 | "optional": true, 3628 | "requires": { 3629 | "prepend-http": "^1.0.1" 3630 | } 3631 | }, 3632 | "url-to-options": { 3633 | "version": "1.0.1", 3634 | "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", 3635 | "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" 3636 | }, 3637 | "util-deprecate": { 3638 | "version": "1.0.2", 3639 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 3640 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 3641 | }, 3642 | "util.promisify": { 3643 | "version": "1.0.1", 3644 | "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", 3645 | "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", 3646 | "optional": true, 3647 | "requires": { 3648 | "define-properties": "^1.1.3", 3649 | "es-abstract": "^1.17.2", 3650 | "has-symbols": "^1.0.1", 3651 | "object.getownpropertydescriptors": "^2.1.0" 3652 | } 3653 | }, 3654 | "uuid": { 3655 | "version": "3.4.0", 3656 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", 3657 | "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" 3658 | }, 3659 | "validate-npm-package-license": { 3660 | "version": "3.0.4", 3661 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", 3662 | "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", 3663 | "requires": { 3664 | "spdx-correct": "^3.0.0", 3665 | "spdx-expression-parse": "^3.0.0" 3666 | } 3667 | }, 3668 | "wcwidth": { 3669 | "version": "1.0.1", 3670 | "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", 3671 | "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", 3672 | "requires": { 3673 | "defaults": "^1.0.3" 3674 | } 3675 | }, 3676 | "which": { 3677 | "version": "1.3.1", 3678 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 3679 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 3680 | "requires": { 3681 | "isexe": "^2.0.0" 3682 | } 3683 | }, 3684 | "which-module": { 3685 | "version": "2.0.0", 3686 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", 3687 | "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" 3688 | }, 3689 | "wrap-ansi": { 3690 | "version": "6.2.0", 3691 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", 3692 | "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", 3693 | "requires": { 3694 | "ansi-styles": "^4.0.0", 3695 | "string-width": "^4.1.0", 3696 | "strip-ansi": "^6.0.0" 3697 | }, 3698 | "dependencies": { 3699 | "ansi-regex": { 3700 | "version": "5.0.0", 3701 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", 3702 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" 3703 | }, 3704 | "strip-ansi": { 3705 | "version": "6.0.0", 3706 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", 3707 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", 3708 | "requires": { 3709 | "ansi-regex": "^5.0.0" 3710 | } 3711 | } 3712 | } 3713 | }, 3714 | "wrappy": { 3715 | "version": "1.0.2", 3716 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 3717 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 3718 | }, 3719 | "xtend": { 3720 | "version": "4.0.2", 3721 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", 3722 | "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" 3723 | }, 3724 | "y18n": { 3725 | "version": "4.0.0", 3726 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", 3727 | "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" 3728 | }, 3729 | "yallist": { 3730 | "version": "2.1.2", 3731 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", 3732 | "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" 3733 | }, 3734 | "yargs": { 3735 | "version": "15.4.1", 3736 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", 3737 | "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", 3738 | "requires": { 3739 | "cliui": "^6.0.0", 3740 | "decamelize": "^1.2.0", 3741 | "find-up": "^4.1.0", 3742 | "get-caller-file": "^2.0.1", 3743 | "require-directory": "^2.1.1", 3744 | "require-main-filename": "^2.0.0", 3745 | "set-blocking": "^2.0.0", 3746 | "string-width": "^4.2.0", 3747 | "which-module": "^2.0.0", 3748 | "y18n": "^4.0.0", 3749 | "yargs-parser": "^18.1.2" 3750 | }, 3751 | "dependencies": { 3752 | "find-up": { 3753 | "version": "4.1.0", 3754 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", 3755 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", 3756 | "requires": { 3757 | "locate-path": "^5.0.0", 3758 | "path-exists": "^4.0.0" 3759 | } 3760 | }, 3761 | "path-exists": { 3762 | "version": "4.0.0", 3763 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 3764 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" 3765 | } 3766 | } 3767 | }, 3768 | "yargs-parser": { 3769 | "version": "18.1.3", 3770 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", 3771 | "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", 3772 | "requires": { 3773 | "camelcase": "^5.0.0", 3774 | "decamelize": "^1.2.0" 3775 | }, 3776 | "dependencies": { 3777 | "camelcase": { 3778 | "version": "5.3.1", 3779 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", 3780 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" 3781 | } 3782 | } 3783 | }, 3784 | "yauzl": { 3785 | "version": "2.10.0", 3786 | "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", 3787 | "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", 3788 | "requires": { 3789 | "buffer-crc32": "~0.2.3", 3790 | "fd-slicer": "~1.1.0" 3791 | } 3792 | } 3793 | } 3794 | } 3795 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@sum.cumo/imagemin-merlin", 3 | "version": "2.0.0", 4 | "description": "Crush GIF, JPG, and PNG images lossless-ly (manually or automatically)", 5 | "bin": { 6 | "imagemin-merlin": "./bin/imagemin-merlin.js" 7 | }, 8 | "repository": { 9 | "type": "git", 10 | "url": "git@github.com:sumcumo/imagemin-merlin.git" 11 | }, 12 | "homepage": "https://github.com/sumcumo/imagemin-merlin", 13 | "keywords": [ 14 | "minify", 15 | "compress", 16 | "compression", 17 | "image", 18 | "images", 19 | "graphics", 20 | "gif", 21 | "jpeg", 22 | "jpg", 23 | "png", 24 | "performance", 25 | "automation" 26 | ], 27 | "author": "sum.cumo", 28 | "license": "Apache-2.0", 29 | "dependencies": { 30 | "chalk": "^4.1.0", 31 | "cwd": "^0.10.0", 32 | "filesize": "^6.1.0", 33 | "find": "^0.3.0", 34 | "imagemin-cli": "^6.0.0", 35 | "parse-filepath": "^1.0.2", 36 | "rimraf": "^3.0.2", 37 | "staged-git-files": "^1.1.2", 38 | "yargs": "^15.4.1" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | const rimraf = require('rimraf') 2 | const find = require('find') 3 | const sgf = require('staged-git-files') 4 | const utils = require('./utils.js') 5 | const cwd = require('cwd') 6 | 7 | // files to be crushed 8 | const regex = new RegExp(/\.gif|\.jpeg|\.jpg|\.png$/) 9 | console.log(`(Search pattern: ${regex})\n`) 10 | 11 | let savedKB = 0 12 | 13 | module.exports = async argv => { 14 | if(argv.dry){ 15 | rimraf.sync('/tmp/imagemin-merlin') 16 | } 17 | 18 | let ignorePaths = [] 19 | 20 | if(argv.ignore){ 21 | ignorePaths = argv.ignore.split(',') 22 | } 23 | 24 | // search for staged files 25 | if(argv.staged){ 26 | sgf('A', async function(err, results){ 27 | if(err){ 28 | return console.error(err) 29 | } 30 | 31 | let didRun = false 32 | 33 | let filteredResults = results 34 | .filter(result => result.filename.match(regex)) 35 | 36 | ignorePaths.forEach(ignorePath => { 37 | filteredResults = filteredResults 38 | .filter(result => !result.filename.match(new RegExp(ignorePath))) 39 | }) 40 | 41 | for (let index = 0; index < filteredResults.length; index++) { 42 | const result = filteredResults[index]; 43 | didRun = true 44 | savedKB += await utils.crushing(result.filename, argv.dry) 45 | } 46 | 47 | closingNote(didRun) 48 | }) 49 | } else { 50 | let folder = cwd() 51 | 52 | if(argv.folder){ 53 | folder = argv.folder 54 | } 55 | 56 | let files = find.fileSync(regex, folder) 57 | let didRun = false 58 | 59 | ignorePaths.forEach(ignorePath => { 60 | files = files 61 | .filter(file => !file.match(new RegExp(ignorePath))) 62 | }) 63 | 64 | for (let index = 0; index < files.length; index++) { 65 | const file = files[index] 66 | 67 | if(!file.match(/node_modules\//)){ 68 | didRun = true 69 | savedKB += await utils.crushing(file, argv.dry) 70 | } 71 | } 72 | 73 | closingNote(didRun) 74 | } 75 | } 76 | 77 | const closingNote = (didRun) => { 78 | if(didRun){ 79 | console.info(`\n🎉 You saved ${utils.sizeHuman(savedKB)}.`) 80 | } else { 81 | console.info('\nThere were no images found to crush ¯\\_(ツ)_/¯ See you next time.') 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /src/plugin_options.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | jpegtran: { 3 | // see https://www.npmjs.com/package/imagemin-jpegtran 4 | progressive: true, 5 | }, 6 | optipng: { 7 | // see https://www.npmjs.com/package/imagemin-optipng 8 | }, 9 | gifsicle: { 10 | // see https://www.npmjs.com/package/imagemin-gifsicle 11 | }, 12 | } 13 | -------------------------------------------------------------------------------- /src/utils.js: -------------------------------------------------------------------------------- 1 | const filesize = require('filesize') 2 | const fs = require('fs') 3 | const parsePath = require('parse-filepath') 4 | const imagemin = require('imagemin') 5 | const imageminJpegtran = require('imagemin-jpegtran') 6 | const imageminOptipng = require('imagemin-optipng') 7 | const imageminGifsicle = require('imagemin-gifsicle') 8 | const chalk = require('chalk') 9 | const options = require('./plugin_options.js') 10 | 11 | const crushing = async (filename, dry) => { 12 | const filenameBackup = `${filename}.bak` 13 | fs.copyFileSync(filename, filenameBackup) 14 | 15 | const fileSizeBefore = size(filename) 16 | 17 | if(fileSizeBefore === 0){ 18 | console.info(chalk.blue(`Skipping ${filename}, it has ${filesize(fileSizeBefore)}`)) 19 | return 20 | } 21 | 22 | let output = parsePath(filename).dir || './' 23 | if(dry){ 24 | output = `/tmp/imagemin-merlin/${parsePath(filename).absolute}` 25 | } 26 | 27 | await imagemin([filename], output, { 28 | plugins: [ 29 | imageminJpegtran(options.jpegtran), 30 | imageminOptipng(options.optipng), 31 | imageminGifsicle(options.gifsicle), 32 | ] 33 | }) 34 | const fileSizeAfter = size(`${output}/${parsePath(filename).base}`) 35 | 36 | let color = 'white' 37 | let status = 'Skipped' 38 | let details = 'already optimized' 39 | 40 | if(fileSizeAfter < fileSizeBefore){ 41 | color = 'green' 42 | status = 'Crushed' 43 | details = `${sizeHuman(fileSizeBefore)} → ${sizeHuman(fileSizeAfter)}` 44 | } else if(fileSizeAfter > fileSizeBefore){ // filesize is bigger than before 45 | color = 'blue' 46 | status = 'Skipped' 47 | details = 'more optimized' 48 | 49 | // restore the backup'ed file 50 | fs.renameSync(filenameBackup, filename) 51 | } 52 | 53 | if(fs.existsSync(filenameBackup)){ 54 | fs.unlinkSync(filenameBackup) 55 | } 56 | 57 | console.info( 58 | chalk[color]( 59 | `${status} ${filename} (${details})` 60 | ) 61 | ) 62 | 63 | if(fileSizeAfter === 0){ 64 | console.error(chalk.bold.red(`Something went wrong, new filesize is ${filesize(fileSizeAfter)}`)) 65 | } 66 | 67 | return fileSizeAfter < fileSizeBefore ? fileSizeBefore - fileSizeAfter : 0 68 | } 69 | 70 | const size = (file) => { 71 | return fs.statSync(file)['size'] 72 | } 73 | 74 | const sizeHuman = (size) => { 75 | return filesize(size, { round: 5 }) 76 | } 77 | 78 | module.exports = { 79 | crushing, 80 | sizeHuman, 81 | } 82 | --------------------------------------------------------------------------------