├── .gitignore ├── .styleci.yml ├── .travis.yml ├── LICENSE.md ├── README.md ├── composer.json ├── package-lock.json ├── package.json └── src ├── Facades └── Wppconnect.php ├── RequestInterface.php ├── Wppconnect.php ├── WppconnectServiceProvider.php └── config └── wppconnect.php /.gitignore: -------------------------------------------------------------------------------- 1 | vendor/ 2 | composer.lock 3 | .idea/ 4 | node_modules 5 | -------------------------------------------------------------------------------- /.styleci.yml: -------------------------------------------------------------------------------- 1 | preset: psr2 -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: php 2 | sudo: false 3 | dist: trusty 4 | 5 | php: 6 | - 7.4 7 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 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 | Copyright 2021 WPPConnect Team 179 | 180 | Licensed under the Apache License, Version 2.0 (the "License"); 181 | you may not use this file except in compliance with the License. 182 | You may obtain a copy of the License at 183 | 184 | http://www.apache.org/licenses/LICENSE-2.0 185 | 186 | Unless required by applicable law or agreed to in writing, software 187 | distributed under the License is distributed on an "AS IS" BASIS, 188 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 189 | See the License for the specific language governing permissions and 190 | limitations under the License. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # WPPConnect Team 2 | ## _Wppconnect Laravel Client_ 3 | 4 | Uma API simples com empacotador Guzzle, fornecendo acesso fácil aos endpoints do WPPConnect Server. 5 | 6 | ## Nossos canais online 7 | 8 | [![Discord](https://img.shields.io/discord/844351092758413353?color=blueviolet&label=Discord&logo=discord&style=flat)](https://discord.gg/JU5JGGKGNG) 9 | [![Telegram Group](https://img.shields.io/badge/Telegram-Group-32AFED?logo=telegram)](https://t.me/wppconnect) 10 | [![WhatsApp Group](https://img.shields.io/badge/WhatsApp-Group-25D366?logo=whatsapp)](https://chat.whatsapp.com/LJaQu6ZyNvnBPNAVRbX00K) 11 | [![YouTube](https://img.shields.io/youtube/channel/subscribers/UCD7J9LG08PmGQrF5IS7Yv9A?label=YouTube)](https://www.youtube.com/c/wppconnect) 12 | 13 | # Requisitos 14 | 15 | * PHP 7.4 ou superior. 16 | * Laravel [8.x](https://laravel.com/docs/8.x) ou superior. 17 | 18 | ## Intalação - Laravel 19 | 20 | Baixe o pacote com o Composer (Packagist), utilizando o seguinte comando: 21 | 22 | ``` bash 23 | $ composer require wppconnect-team/wppconnect-laravel-client 24 | ``` 25 | 26 | Registre o WppconnectServiceProvider nos providers dentro de `config/app.php`: 27 | 28 | ``` php 29 | WPPConnectTeam\Wppconnect\WppconnectServiceProvider::class 30 | ``` 31 | 32 | Publique os arquivos do vendo (arquivo de configuração): 33 | ``` bash 34 | $ php artisan vendor:publish 35 | ``` 36 | 37 | **Opcional** 38 | Registre o facade em `config/app.php`: 39 | ``` php 40 | 'Wppconnect' => WPPConnectTeam\Wppconnect\Facades\Wppconnect::class 41 | ``` 42 | 43 | ## Configuração 44 | 45 | Configuração aplicada a todas as solicitações criadas pela API. 46 | 47 | Exemplo: 48 | ``` php 49 | 'defaults' => [ 50 | /** 51 | * URL do WPPConnect Server 52 | */ 53 | 'base_uri' => 'http://192.168.0.39:21465', 54 | 55 | /** 56 | * Secret Key 57 | * Veja: https://github.com/wppconnect-team/wppconnect-server#secret-key 58 | */ 59 | 'secret_key' => 'MYKeYPHP' 60 | ] 61 | ``` 62 | 63 | ## Uso 64 | 65 | Utilize este pacote sem qualquer configuração com o Wppconnect facade em seu controlador, ou, injete-o na classe onde o cliente se faz necessário: 66 | 67 | ```php 68 | /** 69 | * @var RequestInterface 70 | */ 71 | protected $client; 72 | 73 | /** 74 | * @param Wppconnect $client 75 | */ 76 | public function __construct(Wppconnect $client) 77 | { 78 | $this->client = $client; 79 | } 80 | ``` 81 | 82 | **Exemplo com o Facade:** 83 | 84 | ``` php 85 | class WppconnectController extends Controller 86 | { 87 | 88 | protected $url; 89 | protected $key; 90 | protected $session; 91 | 92 | /** 93 | * __construct function 94 | */ 95 | public function __construct() 96 | { 97 | $this->url = config('wppconnect.defaults.base_uri'); 98 | $this->key = config('wppconnect.defaults.secret_key'); 99 | $this->session = "mySession"; 100 | } 101 | 102 | public function index(){ 103 | 104 | #Function: Generated Token 105 | # /api/:session/generate-token 106 | 107 | //Session::flush(); 108 | if(!Session::get('token') and !Session::get('session')): 109 | Wppconnect::make($this->url); 110 | $response = Wppconnect::to('/api/'.$this->session.'/'.$this->key.'/generate-token')->asJson()->post(); 111 | $response = json_decode($response->getBody()->getContents(),true); 112 | if($response['status'] == 'success'): 113 | Session::put('token', $response['token']); 114 | Session::put('session', $response['session']); 115 | endif; 116 | endif; 117 | 118 | #Function: Start Session 119 | # /api/:session/start-session 120 | 121 | if(Session::get('token') and Session::get('session') and !Session::get('init')): 122 | Wppconnect::make($this->url); 123 | $response = Wppconnect::to('/api/'.Session::get('session').'/start-session')->withHeaders([ 124 | 'Authorization' => 'Bearer '.Session::get('token') 125 | ])->asJson()->post(); 126 | $response = json_decode($response->getBody()->getContents(),true); 127 | Session::put('init', true); 128 | endif; 129 | 130 | } 131 | } 132 | ``` 133 | ``` php 134 | #Function: Check Connection Session 135 | # /api/:session/check-connection-session 136 | 137 | if(Session::get('token') and Session::get('session') and Session::get('init')): 138 | Wppconnect::make($this->url); 139 | $response = Wppconnect::to('/api/'. Session::get('session').'/check-connection-session')->withHeaders([ 140 | 'Authorization' => 'Bearer '.Session::get('token') 141 | ])->asJson()->get(); 142 | $response = json_decode($response->getBody()->getContents(),true); 143 | dd($response); 144 | endif; 145 | ``` 146 | ``` php 147 | #Function: Close Session 148 | # /api/:session/close-session 149 | 150 | if(Session::get('token') and Session::get('session') and Session::get('init')): 151 | Wppconnect::make($this->url); 152 | $response = Wppconnect::to('/api/'. Session::get('session').'/close-session')->withHeaders([ 153 | 'Authorization' => 'Bearer '.Session::get('token') 154 | ])->asJson()->post(); 155 | $response = json_decode($response->getBody()->getContents(),true); 156 | dd($response); 157 | endif; 158 | ``` 159 | ``` php 160 | #Function: Send Message 161 | # /api/:session/send-message 162 | 163 | if(Session::get('token') and Session::get('session') and Session::get('init')): 164 | Wppconnect::make($this->url); 165 | $response = Wppconnect::to('/api/'. Session::get('session').'/send-message')->withBody([ 166 | 'phone' => '5500000000000', 167 | 'message' => 'Opa, funciona mesmo!' 168 | ])->withHeaders([ 169 | 'Authorization' => 'Bearer '.Session::get('token') 170 | ])->asJson()->post(); 171 | $response = json_decode($response->getBody()->getContents(),true); 172 | dd($response); 173 | endif; 174 | ``` 175 | ``` php 176 | #Function: Send File Base64 177 | # /api/:session/send-file-base64 178 | 179 | if(Session::get('token') and Session::get('session') and Session::get('init')): 180 | Wppconnect::make($this->url); 181 | $response = Wppconnect::to('/api/'. Session::get('session').'/send-file-base64')->withBody([ 182 | 'phone' => '5500000000000', 183 | 'base64' => 'data:image/jpg;base64,' . base64_encode(file_get_contents(resource_path('/img/xpto.jpg'))) 184 | ])->withHeaders([ 185 | 'Authorization' => 'Bearer '.Session::get('token') 186 | ])->asJson()->post(); 187 | $response = json_decode($response->getBody()->getContents(),true); 188 | dd($response); 189 | endif; 190 | ``` 191 | 192 | # Debug 193 | 194 | Usar `debug(bool|resource)` antes de enviar uma solicitação para ativar o depurador do Guzzle. Para mais informações acesse a [documentação](http://docs.guzzlephp.org/en/stable/request-options.html#debug). 195 | 196 | O debug é desligado após cada solicitação, se você precisar depurar várias solicitações enviadas sequencialmente, será necessário ativar a depuração para todas elas. 197 | 198 | **Exemplo** 199 | 200 | ```php 201 | $logFile = './client_debug_test.log'; 202 | $logFileResource = fopen($logFile, 'w+'); 203 | 204 | $this->client->debug($logFileResource)->to('post')->withBody([ 205 | 'foo' => 'bar' 206 | ])->asJson()->post(); 207 | 208 | fclose($logFileResource); 209 | ``` 210 | Os logs serão salvos no arquivo `client_debug_test.log`. 211 | 212 | ## Postman 213 | Acesse o [Postman Collection do WPPConnect](https://documenter.getpostman.com/view/9139457/TzshF4jQ) com todos os endpoints. 214 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "wppconnect-team/wppconnect-laravel-client", 3 | "description": "A simple API with Guzzle wrapper, providing easy access to wppconnect's endpoints.", 4 | "homepage": "https://github.com/wppconnect-team/wppconnect-laravel-client", 5 | "keywords": [ 6 | "laravel", 7 | "guzzle", 8 | "rest client", 9 | "wppconnect" 10 | ], 11 | "authors": [ 12 | { 13 | "name": "bgastaldi" 14 | } 15 | ], 16 | "license": "MIT", 17 | "type": "libr", 18 | "require": { 19 | "php": ">=7.4", 20 | "guzzlehttp/guzzle": "^7.0.1", 21 | "illuminate/support": ">=8.0" 22 | }, 23 | "minimum-stability": "dev", 24 | "autoload": { 25 | "psr-4": { 26 | "WPPConnectTeam\\Wppconnect\\": "src" 27 | } 28 | }, 29 | "extra": { 30 | "laravel": { 31 | "providers": [ 32 | "WPPConnectTeam\\Wppconnect\\WppconnectServiceProvider" 33 | ], 34 | "aliases": { 35 | "Wppconnect": "WPPConnectTeam\\Wppconnect\\Facades\\Wppconnect" 36 | } 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "wppconnect-laravel-client", 3 | "lockfileVersion": 2, 4 | "requires": true, 5 | "packages": { 6 | "": { 7 | "devDependencies": { 8 | "cz-conventional-changelog": "^3.3.0" 9 | } 10 | }, 11 | "node_modules/@babel/code-frame": { 12 | "version": "7.14.5", 13 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", 14 | "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", 15 | "dev": true, 16 | "optional": true, 17 | "dependencies": { 18 | "@babel/highlight": "^7.14.5" 19 | }, 20 | "engines": { 21 | "node": ">=6.9.0" 22 | } 23 | }, 24 | "node_modules/@babel/helper-validator-identifier": { 25 | "version": "7.14.5", 26 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", 27 | "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", 28 | "dev": true, 29 | "optional": true, 30 | "engines": { 31 | "node": ">=6.9.0" 32 | } 33 | }, 34 | "node_modules/@babel/highlight": { 35 | "version": "7.14.5", 36 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", 37 | "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", 38 | "dev": true, 39 | "optional": true, 40 | "dependencies": { 41 | "@babel/helper-validator-identifier": "^7.14.5", 42 | "chalk": "^2.0.0", 43 | "js-tokens": "^4.0.0" 44 | }, 45 | "engines": { 46 | "node": ">=6.9.0" 47 | } 48 | }, 49 | "node_modules/@commitlint/execute-rule": { 50 | "version": "12.1.4", 51 | "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-12.1.4.tgz", 52 | "integrity": "sha512-h2S1j8SXyNeABb27q2Ok2vD1WfxJiXvOttKuRA9Or7LN6OQoC/KtT3844CIhhWNteNMu/wE0gkTqGxDVAnJiHg==", 53 | "dev": true, 54 | "optional": true, 55 | "engines": { 56 | "node": ">=v10" 57 | } 58 | }, 59 | "node_modules/@commitlint/load": { 60 | "version": "12.1.4", 61 | "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-12.1.4.tgz", 62 | "integrity": "sha512-Keszi0IOjRzKfxT+qES/n+KZyLrxy79RQz8wWgssCboYjKEp+wC+fLCgbiMCYjI5k31CIzIOq/16J7Ycr0C0EA==", 63 | "dev": true, 64 | "optional": true, 65 | "dependencies": { 66 | "@commitlint/execute-rule": "^12.1.4", 67 | "@commitlint/resolve-extends": "^12.1.4", 68 | "@commitlint/types": "^12.1.4", 69 | "chalk": "^4.0.0", 70 | "cosmiconfig": "^7.0.0", 71 | "lodash": "^4.17.19", 72 | "resolve-from": "^5.0.0" 73 | }, 74 | "engines": { 75 | "node": ">=v10" 76 | } 77 | }, 78 | "node_modules/@commitlint/load/node_modules/ansi-styles": { 79 | "version": "4.3.0", 80 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 81 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 82 | "dev": true, 83 | "optional": true, 84 | "dependencies": { 85 | "color-convert": "^2.0.1" 86 | }, 87 | "engines": { 88 | "node": ">=8" 89 | }, 90 | "funding": { 91 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 92 | } 93 | }, 94 | "node_modules/@commitlint/load/node_modules/chalk": { 95 | "version": "4.1.1", 96 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", 97 | "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", 98 | "dev": true, 99 | "optional": true, 100 | "dependencies": { 101 | "ansi-styles": "^4.1.0", 102 | "supports-color": "^7.1.0" 103 | }, 104 | "engines": { 105 | "node": ">=10" 106 | }, 107 | "funding": { 108 | "url": "https://github.com/chalk/chalk?sponsor=1" 109 | } 110 | }, 111 | "node_modules/@commitlint/load/node_modules/color-convert": { 112 | "version": "2.0.1", 113 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 114 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 115 | "dev": true, 116 | "optional": true, 117 | "dependencies": { 118 | "color-name": "~1.1.4" 119 | }, 120 | "engines": { 121 | "node": ">=7.0.0" 122 | } 123 | }, 124 | "node_modules/@commitlint/load/node_modules/color-name": { 125 | "version": "1.1.4", 126 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 127 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 128 | "dev": true, 129 | "optional": true 130 | }, 131 | "node_modules/@commitlint/load/node_modules/has-flag": { 132 | "version": "4.0.0", 133 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 134 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 135 | "dev": true, 136 | "optional": true, 137 | "engines": { 138 | "node": ">=8" 139 | } 140 | }, 141 | "node_modules/@commitlint/load/node_modules/supports-color": { 142 | "version": "7.2.0", 143 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 144 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 145 | "dev": true, 146 | "optional": true, 147 | "dependencies": { 148 | "has-flag": "^4.0.0" 149 | }, 150 | "engines": { 151 | "node": ">=8" 152 | } 153 | }, 154 | "node_modules/@commitlint/resolve-extends": { 155 | "version": "12.1.4", 156 | "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-12.1.4.tgz", 157 | "integrity": "sha512-R9CoUtsXLd6KSCfsZly04grsH6JVnWFmVtWgWs1KdDpdV+G3TSs37tColMFqglpkx3dsWu8dsPD56+D9YnJfqg==", 158 | "dev": true, 159 | "optional": true, 160 | "dependencies": { 161 | "import-fresh": "^3.0.0", 162 | "lodash": "^4.17.19", 163 | "resolve-from": "^5.0.0", 164 | "resolve-global": "^1.0.0" 165 | }, 166 | "engines": { 167 | "node": ">=v10" 168 | } 169 | }, 170 | "node_modules/@commitlint/types": { 171 | "version": "12.1.4", 172 | "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-12.1.4.tgz", 173 | "integrity": "sha512-KRIjdnWNUx6ywz+SJvjmNCbQKcKP6KArhjZhY2l+CWKxak0d77SOjggkMwFTiSgLODOwmuLTbarR2ZfWPiPMlw==", 174 | "dev": true, 175 | "optional": true, 176 | "dependencies": { 177 | "chalk": "^4.0.0" 178 | }, 179 | "engines": { 180 | "node": ">=v10" 181 | } 182 | }, 183 | "node_modules/@commitlint/types/node_modules/ansi-styles": { 184 | "version": "4.3.0", 185 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 186 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 187 | "dev": true, 188 | "optional": true, 189 | "dependencies": { 190 | "color-convert": "^2.0.1" 191 | }, 192 | "engines": { 193 | "node": ">=8" 194 | }, 195 | "funding": { 196 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 197 | } 198 | }, 199 | "node_modules/@commitlint/types/node_modules/chalk": { 200 | "version": "4.1.1", 201 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", 202 | "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", 203 | "dev": true, 204 | "optional": true, 205 | "dependencies": { 206 | "ansi-styles": "^4.1.0", 207 | "supports-color": "^7.1.0" 208 | }, 209 | "engines": { 210 | "node": ">=10" 211 | }, 212 | "funding": { 213 | "url": "https://github.com/chalk/chalk?sponsor=1" 214 | } 215 | }, 216 | "node_modules/@commitlint/types/node_modules/color-convert": { 217 | "version": "2.0.1", 218 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 219 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 220 | "dev": true, 221 | "optional": true, 222 | "dependencies": { 223 | "color-name": "~1.1.4" 224 | }, 225 | "engines": { 226 | "node": ">=7.0.0" 227 | } 228 | }, 229 | "node_modules/@commitlint/types/node_modules/color-name": { 230 | "version": "1.1.4", 231 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 232 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 233 | "dev": true, 234 | "optional": true 235 | }, 236 | "node_modules/@commitlint/types/node_modules/has-flag": { 237 | "version": "4.0.0", 238 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 239 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 240 | "dev": true, 241 | "optional": true, 242 | "engines": { 243 | "node": ">=8" 244 | } 245 | }, 246 | "node_modules/@commitlint/types/node_modules/supports-color": { 247 | "version": "7.2.0", 248 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 249 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 250 | "dev": true, 251 | "optional": true, 252 | "dependencies": { 253 | "has-flag": "^4.0.0" 254 | }, 255 | "engines": { 256 | "node": ">=8" 257 | } 258 | }, 259 | "node_modules/@types/parse-json": { 260 | "version": "4.0.0", 261 | "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", 262 | "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", 263 | "dev": true, 264 | "optional": true 265 | }, 266 | "node_modules/ansi-escapes": { 267 | "version": "3.2.0", 268 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", 269 | "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", 270 | "dev": true, 271 | "engines": { 272 | "node": ">=4" 273 | } 274 | }, 275 | "node_modules/ansi-regex": { 276 | "version": "4.1.0", 277 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 278 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", 279 | "dev": true, 280 | "engines": { 281 | "node": ">=6" 282 | } 283 | }, 284 | "node_modules/ansi-styles": { 285 | "version": "3.2.1", 286 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 287 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 288 | "dev": true, 289 | "dependencies": { 290 | "color-convert": "^1.9.0" 291 | }, 292 | "engines": { 293 | "node": ">=4" 294 | } 295 | }, 296 | "node_modules/balanced-match": { 297 | "version": "1.0.2", 298 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 299 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 300 | "dev": true 301 | }, 302 | "node_modules/brace-expansion": { 303 | "version": "1.1.11", 304 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 305 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 306 | "dev": true, 307 | "dependencies": { 308 | "balanced-match": "^1.0.0", 309 | "concat-map": "0.0.1" 310 | } 311 | }, 312 | "node_modules/braces": { 313 | "version": "3.0.2", 314 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 315 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 316 | "dev": true, 317 | "dependencies": { 318 | "fill-range": "^7.0.1" 319 | }, 320 | "engines": { 321 | "node": ">=8" 322 | } 323 | }, 324 | "node_modules/cachedir": { 325 | "version": "2.2.0", 326 | "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.2.0.tgz", 327 | "integrity": "sha512-VvxA0xhNqIIfg0V9AmJkDg91DaJwryutH5rVEZAhcNi4iJFj9f+QxmAjgK1LT9I8OgToX27fypX6/MeCXVbBjQ==", 328 | "dev": true, 329 | "engines": { 330 | "node": ">=6" 331 | } 332 | }, 333 | "node_modules/callsites": { 334 | "version": "3.1.0", 335 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 336 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 337 | "dev": true, 338 | "optional": true, 339 | "engines": { 340 | "node": ">=6" 341 | } 342 | }, 343 | "node_modules/chalk": { 344 | "version": "2.4.2", 345 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 346 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 347 | "dev": true, 348 | "dependencies": { 349 | "ansi-styles": "^3.2.1", 350 | "escape-string-regexp": "^1.0.5", 351 | "supports-color": "^5.3.0" 352 | }, 353 | "engines": { 354 | "node": ">=4" 355 | } 356 | }, 357 | "node_modules/chardet": { 358 | "version": "0.7.0", 359 | "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", 360 | "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", 361 | "dev": true 362 | }, 363 | "node_modules/cli-cursor": { 364 | "version": "2.1.0", 365 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", 366 | "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", 367 | "dev": true, 368 | "dependencies": { 369 | "restore-cursor": "^2.0.0" 370 | }, 371 | "engines": { 372 | "node": ">=4" 373 | } 374 | }, 375 | "node_modules/cli-width": { 376 | "version": "2.2.1", 377 | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", 378 | "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", 379 | "dev": true 380 | }, 381 | "node_modules/color-convert": { 382 | "version": "1.9.3", 383 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 384 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 385 | "dev": true, 386 | "dependencies": { 387 | "color-name": "1.1.3" 388 | } 389 | }, 390 | "node_modules/color-name": { 391 | "version": "1.1.3", 392 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 393 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 394 | "dev": true 395 | }, 396 | "node_modules/commitizen": { 397 | "version": "4.2.4", 398 | "resolved": "https://registry.npmjs.org/commitizen/-/commitizen-4.2.4.tgz", 399 | "integrity": "sha512-LlZChbDzg3Ir3O2S7jSo/cgWp5/QwylQVr59K4xayVq8S4/RdKzSyJkghAiZZHfhh5t4pxunUoyeg0ml1q/7aw==", 400 | "dev": true, 401 | "dependencies": { 402 | "cachedir": "2.2.0", 403 | "cz-conventional-changelog": "3.2.0", 404 | "dedent": "0.7.0", 405 | "detect-indent": "6.0.0", 406 | "find-node-modules": "^2.1.2", 407 | "find-root": "1.1.0", 408 | "fs-extra": "8.1.0", 409 | "glob": "7.1.4", 410 | "inquirer": "6.5.2", 411 | "is-utf8": "^0.2.1", 412 | "lodash": "^4.17.20", 413 | "minimist": "1.2.5", 414 | "strip-bom": "4.0.0", 415 | "strip-json-comments": "3.0.1" 416 | }, 417 | "bin": { 418 | "commitizen": "bin/commitizen", 419 | "cz": "bin/git-cz", 420 | "git-cz": "bin/git-cz" 421 | }, 422 | "engines": { 423 | "node": ">= 10" 424 | } 425 | }, 426 | "node_modules/commitizen/node_modules/cz-conventional-changelog": { 427 | "version": "3.2.0", 428 | "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.2.0.tgz", 429 | "integrity": "sha512-yAYxeGpVi27hqIilG1nh4A9Bnx4J3Ov+eXy4koL3drrR+IO9GaWPsKjik20ht608Asqi8TQPf0mczhEeyAtMzg==", 430 | "dev": true, 431 | "dependencies": { 432 | "chalk": "^2.4.1", 433 | "commitizen": "^4.0.3", 434 | "conventional-commit-types": "^3.0.0", 435 | "lodash.map": "^4.5.1", 436 | "longest": "^2.0.1", 437 | "word-wrap": "^1.0.3" 438 | }, 439 | "engines": { 440 | "node": ">= 10" 441 | }, 442 | "optionalDependencies": { 443 | "@commitlint/load": ">6.1.1" 444 | } 445 | }, 446 | "node_modules/concat-map": { 447 | "version": "0.0.1", 448 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 449 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 450 | "dev": true 451 | }, 452 | "node_modules/conventional-commit-types": { 453 | "version": "3.0.0", 454 | "resolved": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-3.0.0.tgz", 455 | "integrity": "sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==", 456 | "dev": true 457 | }, 458 | "node_modules/cosmiconfig": { 459 | "version": "7.0.0", 460 | "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", 461 | "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", 462 | "dev": true, 463 | "optional": true, 464 | "dependencies": { 465 | "@types/parse-json": "^4.0.0", 466 | "import-fresh": "^3.2.1", 467 | "parse-json": "^5.0.0", 468 | "path-type": "^4.0.0", 469 | "yaml": "^1.10.0" 470 | }, 471 | "engines": { 472 | "node": ">=10" 473 | } 474 | }, 475 | "node_modules/cz-conventional-changelog": { 476 | "version": "3.3.0", 477 | "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.3.0.tgz", 478 | "integrity": "sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==", 479 | "dev": true, 480 | "dependencies": { 481 | "chalk": "^2.4.1", 482 | "commitizen": "^4.0.3", 483 | "conventional-commit-types": "^3.0.0", 484 | "lodash.map": "^4.5.1", 485 | "longest": "^2.0.1", 486 | "word-wrap": "^1.0.3" 487 | }, 488 | "engines": { 489 | "node": ">= 10" 490 | }, 491 | "optionalDependencies": { 492 | "@commitlint/load": ">6.1.1" 493 | } 494 | }, 495 | "node_modules/dedent": { 496 | "version": "0.7.0", 497 | "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", 498 | "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", 499 | "dev": true 500 | }, 501 | "node_modules/detect-file": { 502 | "version": "1.0.0", 503 | "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", 504 | "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", 505 | "dev": true, 506 | "engines": { 507 | "node": ">=0.10.0" 508 | } 509 | }, 510 | "node_modules/detect-indent": { 511 | "version": "6.0.0", 512 | "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", 513 | "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==", 514 | "dev": true, 515 | "engines": { 516 | "node": ">=8" 517 | } 518 | }, 519 | "node_modules/error-ex": { 520 | "version": "1.3.2", 521 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 522 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 523 | "dev": true, 524 | "optional": true, 525 | "dependencies": { 526 | "is-arrayish": "^0.2.1" 527 | } 528 | }, 529 | "node_modules/escape-string-regexp": { 530 | "version": "1.0.5", 531 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 532 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 533 | "dev": true, 534 | "engines": { 535 | "node": ">=0.8.0" 536 | } 537 | }, 538 | "node_modules/expand-tilde": { 539 | "version": "2.0.2", 540 | "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", 541 | "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", 542 | "dev": true, 543 | "dependencies": { 544 | "homedir-polyfill": "^1.0.1" 545 | }, 546 | "engines": { 547 | "node": ">=0.10.0" 548 | } 549 | }, 550 | "node_modules/external-editor": { 551 | "version": "3.1.0", 552 | "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", 553 | "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", 554 | "dev": true, 555 | "dependencies": { 556 | "chardet": "^0.7.0", 557 | "iconv-lite": "^0.4.24", 558 | "tmp": "^0.0.33" 559 | }, 560 | "engines": { 561 | "node": ">=4" 562 | } 563 | }, 564 | "node_modules/figures": { 565 | "version": "2.0.0", 566 | "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", 567 | "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", 568 | "dev": true, 569 | "dependencies": { 570 | "escape-string-regexp": "^1.0.5" 571 | }, 572 | "engines": { 573 | "node": ">=4" 574 | } 575 | }, 576 | "node_modules/fill-range": { 577 | "version": "7.0.1", 578 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 579 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 580 | "dev": true, 581 | "dependencies": { 582 | "to-regex-range": "^5.0.1" 583 | }, 584 | "engines": { 585 | "node": ">=8" 586 | } 587 | }, 588 | "node_modules/find-node-modules": { 589 | "version": "2.1.2", 590 | "resolved": "https://registry.npmjs.org/find-node-modules/-/find-node-modules-2.1.2.tgz", 591 | "integrity": "sha512-x+3P4mbtRPlSiVE1Qco0Z4YLU8WFiFcuWTf3m75OV9Uzcfs2Bg+O9N+r/K0AnmINBW06KpfqKwYJbFlFq4qNug==", 592 | "dev": true, 593 | "dependencies": { 594 | "findup-sync": "^4.0.0", 595 | "merge": "^2.1.0" 596 | } 597 | }, 598 | "node_modules/find-root": { 599 | "version": "1.1.0", 600 | "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", 601 | "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", 602 | "dev": true 603 | }, 604 | "node_modules/findup-sync": { 605 | "version": "4.0.0", 606 | "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz", 607 | "integrity": "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==", 608 | "dev": true, 609 | "dependencies": { 610 | "detect-file": "^1.0.0", 611 | "is-glob": "^4.0.0", 612 | "micromatch": "^4.0.2", 613 | "resolve-dir": "^1.0.1" 614 | }, 615 | "engines": { 616 | "node": ">= 8" 617 | } 618 | }, 619 | "node_modules/fs-extra": { 620 | "version": "8.1.0", 621 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", 622 | "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", 623 | "dev": true, 624 | "dependencies": { 625 | "graceful-fs": "^4.2.0", 626 | "jsonfile": "^4.0.0", 627 | "universalify": "^0.1.0" 628 | }, 629 | "engines": { 630 | "node": ">=6 <7 || >=8" 631 | } 632 | }, 633 | "node_modules/fs.realpath": { 634 | "version": "1.0.0", 635 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 636 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 637 | "dev": true 638 | }, 639 | "node_modules/glob": { 640 | "version": "7.1.4", 641 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", 642 | "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", 643 | "dev": true, 644 | "dependencies": { 645 | "fs.realpath": "^1.0.0", 646 | "inflight": "^1.0.4", 647 | "inherits": "2", 648 | "minimatch": "^3.0.4", 649 | "once": "^1.3.0", 650 | "path-is-absolute": "^1.0.0" 651 | }, 652 | "engines": { 653 | "node": "*" 654 | } 655 | }, 656 | "node_modules/global-dirs": { 657 | "version": "0.1.1", 658 | "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", 659 | "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", 660 | "dev": true, 661 | "optional": true, 662 | "dependencies": { 663 | "ini": "^1.3.4" 664 | }, 665 | "engines": { 666 | "node": ">=4" 667 | } 668 | }, 669 | "node_modules/global-modules": { 670 | "version": "1.0.0", 671 | "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", 672 | "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", 673 | "dev": true, 674 | "dependencies": { 675 | "global-prefix": "^1.0.1", 676 | "is-windows": "^1.0.1", 677 | "resolve-dir": "^1.0.0" 678 | }, 679 | "engines": { 680 | "node": ">=0.10.0" 681 | } 682 | }, 683 | "node_modules/global-prefix": { 684 | "version": "1.0.2", 685 | "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", 686 | "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", 687 | "dev": true, 688 | "dependencies": { 689 | "expand-tilde": "^2.0.2", 690 | "homedir-polyfill": "^1.0.1", 691 | "ini": "^1.3.4", 692 | "is-windows": "^1.0.1", 693 | "which": "^1.2.14" 694 | }, 695 | "engines": { 696 | "node": ">=0.10.0" 697 | } 698 | }, 699 | "node_modules/graceful-fs": { 700 | "version": "4.2.6", 701 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", 702 | "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", 703 | "dev": true 704 | }, 705 | "node_modules/has-flag": { 706 | "version": "3.0.0", 707 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 708 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 709 | "dev": true, 710 | "engines": { 711 | "node": ">=4" 712 | } 713 | }, 714 | "node_modules/homedir-polyfill": { 715 | "version": "1.0.3", 716 | "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", 717 | "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", 718 | "dev": true, 719 | "dependencies": { 720 | "parse-passwd": "^1.0.0" 721 | }, 722 | "engines": { 723 | "node": ">=0.10.0" 724 | } 725 | }, 726 | "node_modules/iconv-lite": { 727 | "version": "0.4.24", 728 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 729 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 730 | "dev": true, 731 | "dependencies": { 732 | "safer-buffer": ">= 2.1.2 < 3" 733 | }, 734 | "engines": { 735 | "node": ">=0.10.0" 736 | } 737 | }, 738 | "node_modules/import-fresh": { 739 | "version": "3.3.0", 740 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", 741 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", 742 | "dev": true, 743 | "optional": true, 744 | "dependencies": { 745 | "parent-module": "^1.0.0", 746 | "resolve-from": "^4.0.0" 747 | }, 748 | "engines": { 749 | "node": ">=6" 750 | }, 751 | "funding": { 752 | "url": "https://github.com/sponsors/sindresorhus" 753 | } 754 | }, 755 | "node_modules/import-fresh/node_modules/resolve-from": { 756 | "version": "4.0.0", 757 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 758 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 759 | "dev": true, 760 | "optional": true, 761 | "engines": { 762 | "node": ">=4" 763 | } 764 | }, 765 | "node_modules/inflight": { 766 | "version": "1.0.6", 767 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 768 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 769 | "dev": true, 770 | "dependencies": { 771 | "once": "^1.3.0", 772 | "wrappy": "1" 773 | } 774 | }, 775 | "node_modules/inherits": { 776 | "version": "2.0.4", 777 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 778 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 779 | "dev": true 780 | }, 781 | "node_modules/ini": { 782 | "version": "1.3.8", 783 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", 784 | "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", 785 | "dev": true 786 | }, 787 | "node_modules/inquirer": { 788 | "version": "6.5.2", 789 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", 790 | "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", 791 | "dev": true, 792 | "dependencies": { 793 | "ansi-escapes": "^3.2.0", 794 | "chalk": "^2.4.2", 795 | "cli-cursor": "^2.1.0", 796 | "cli-width": "^2.0.0", 797 | "external-editor": "^3.0.3", 798 | "figures": "^2.0.0", 799 | "lodash": "^4.17.12", 800 | "mute-stream": "0.0.7", 801 | "run-async": "^2.2.0", 802 | "rxjs": "^6.4.0", 803 | "string-width": "^2.1.0", 804 | "strip-ansi": "^5.1.0", 805 | "through": "^2.3.6" 806 | }, 807 | "engines": { 808 | "node": ">=6.0.0" 809 | } 810 | }, 811 | "node_modules/is-arrayish": { 812 | "version": "0.2.1", 813 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 814 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", 815 | "dev": true, 816 | "optional": true 817 | }, 818 | "node_modules/is-extglob": { 819 | "version": "2.1.1", 820 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 821 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 822 | "dev": true, 823 | "engines": { 824 | "node": ">=0.10.0" 825 | } 826 | }, 827 | "node_modules/is-fullwidth-code-point": { 828 | "version": "2.0.0", 829 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 830 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 831 | "dev": true, 832 | "engines": { 833 | "node": ">=4" 834 | } 835 | }, 836 | "node_modules/is-glob": { 837 | "version": "4.0.1", 838 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", 839 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", 840 | "dev": true, 841 | "dependencies": { 842 | "is-extglob": "^2.1.1" 843 | }, 844 | "engines": { 845 | "node": ">=0.10.0" 846 | } 847 | }, 848 | "node_modules/is-number": { 849 | "version": "7.0.0", 850 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 851 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 852 | "dev": true, 853 | "engines": { 854 | "node": ">=0.12.0" 855 | } 856 | }, 857 | "node_modules/is-utf8": { 858 | "version": "0.2.1", 859 | "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", 860 | "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", 861 | "dev": true 862 | }, 863 | "node_modules/is-windows": { 864 | "version": "1.0.2", 865 | "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", 866 | "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", 867 | "dev": true, 868 | "engines": { 869 | "node": ">=0.10.0" 870 | } 871 | }, 872 | "node_modules/isexe": { 873 | "version": "2.0.0", 874 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 875 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 876 | "dev": true 877 | }, 878 | "node_modules/js-tokens": { 879 | "version": "4.0.0", 880 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 881 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 882 | "dev": true, 883 | "optional": true 884 | }, 885 | "node_modules/json-parse-even-better-errors": { 886 | "version": "2.3.1", 887 | "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", 888 | "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", 889 | "dev": true, 890 | "optional": true 891 | }, 892 | "node_modules/jsonfile": { 893 | "version": "4.0.0", 894 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", 895 | "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", 896 | "dev": true, 897 | "optionalDependencies": { 898 | "graceful-fs": "^4.1.6" 899 | } 900 | }, 901 | "node_modules/lines-and-columns": { 902 | "version": "1.1.6", 903 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", 904 | "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", 905 | "dev": true, 906 | "optional": true 907 | }, 908 | "node_modules/lodash": { 909 | "version": "4.17.21", 910 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 911 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", 912 | "dev": true 913 | }, 914 | "node_modules/lodash.map": { 915 | "version": "4.6.0", 916 | "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", 917 | "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=", 918 | "dev": true 919 | }, 920 | "node_modules/longest": { 921 | "version": "2.0.1", 922 | "resolved": "https://registry.npmjs.org/longest/-/longest-2.0.1.tgz", 923 | "integrity": "sha1-eB4YMpaqlPbU2RbcM10NF676I/g=", 924 | "dev": true, 925 | "engines": { 926 | "node": ">=0.10.0" 927 | } 928 | }, 929 | "node_modules/merge": { 930 | "version": "2.1.1", 931 | "resolved": "https://registry.npmjs.org/merge/-/merge-2.1.1.tgz", 932 | "integrity": "sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==", 933 | "dev": true 934 | }, 935 | "node_modules/micromatch": { 936 | "version": "4.0.4", 937 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", 938 | "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", 939 | "dev": true, 940 | "dependencies": { 941 | "braces": "^3.0.1", 942 | "picomatch": "^2.2.3" 943 | }, 944 | "engines": { 945 | "node": ">=8.6" 946 | } 947 | }, 948 | "node_modules/mimic-fn": { 949 | "version": "1.2.0", 950 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", 951 | "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", 952 | "dev": true, 953 | "engines": { 954 | "node": ">=4" 955 | } 956 | }, 957 | "node_modules/minimatch": { 958 | "version": "3.0.4", 959 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 960 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 961 | "dev": true, 962 | "dependencies": { 963 | "brace-expansion": "^1.1.7" 964 | }, 965 | "engines": { 966 | "node": "*" 967 | } 968 | }, 969 | "node_modules/minimist": { 970 | "version": "1.2.5", 971 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", 972 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", 973 | "dev": true 974 | }, 975 | "node_modules/mute-stream": { 976 | "version": "0.0.7", 977 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", 978 | "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", 979 | "dev": true 980 | }, 981 | "node_modules/once": { 982 | "version": "1.4.0", 983 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 984 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 985 | "dev": true, 986 | "dependencies": { 987 | "wrappy": "1" 988 | } 989 | }, 990 | "node_modules/onetime": { 991 | "version": "2.0.1", 992 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", 993 | "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", 994 | "dev": true, 995 | "dependencies": { 996 | "mimic-fn": "^1.0.0" 997 | }, 998 | "engines": { 999 | "node": ">=4" 1000 | } 1001 | }, 1002 | "node_modules/os-tmpdir": { 1003 | "version": "1.0.2", 1004 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 1005 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 1006 | "dev": true, 1007 | "engines": { 1008 | "node": ">=0.10.0" 1009 | } 1010 | }, 1011 | "node_modules/parent-module": { 1012 | "version": "1.0.1", 1013 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 1014 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 1015 | "dev": true, 1016 | "optional": true, 1017 | "dependencies": { 1018 | "callsites": "^3.0.0" 1019 | }, 1020 | "engines": { 1021 | "node": ">=6" 1022 | } 1023 | }, 1024 | "node_modules/parse-json": { 1025 | "version": "5.2.0", 1026 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", 1027 | "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", 1028 | "dev": true, 1029 | "optional": true, 1030 | "dependencies": { 1031 | "@babel/code-frame": "^7.0.0", 1032 | "error-ex": "^1.3.1", 1033 | "json-parse-even-better-errors": "^2.3.0", 1034 | "lines-and-columns": "^1.1.6" 1035 | }, 1036 | "engines": { 1037 | "node": ">=8" 1038 | }, 1039 | "funding": { 1040 | "url": "https://github.com/sponsors/sindresorhus" 1041 | } 1042 | }, 1043 | "node_modules/parse-passwd": { 1044 | "version": "1.0.0", 1045 | "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", 1046 | "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", 1047 | "dev": true, 1048 | "engines": { 1049 | "node": ">=0.10.0" 1050 | } 1051 | }, 1052 | "node_modules/path-is-absolute": { 1053 | "version": "1.0.1", 1054 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1055 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 1056 | "dev": true, 1057 | "engines": { 1058 | "node": ">=0.10.0" 1059 | } 1060 | }, 1061 | "node_modules/path-type": { 1062 | "version": "4.0.0", 1063 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", 1064 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", 1065 | "dev": true, 1066 | "optional": true, 1067 | "engines": { 1068 | "node": ">=8" 1069 | } 1070 | }, 1071 | "node_modules/picomatch": { 1072 | "version": "2.3.0", 1073 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", 1074 | "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", 1075 | "dev": true, 1076 | "engines": { 1077 | "node": ">=8.6" 1078 | }, 1079 | "funding": { 1080 | "url": "https://github.com/sponsors/jonschlinkert" 1081 | } 1082 | }, 1083 | "node_modules/resolve-dir": { 1084 | "version": "1.0.1", 1085 | "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", 1086 | "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", 1087 | "dev": true, 1088 | "dependencies": { 1089 | "expand-tilde": "^2.0.0", 1090 | "global-modules": "^1.0.0" 1091 | }, 1092 | "engines": { 1093 | "node": ">=0.10.0" 1094 | } 1095 | }, 1096 | "node_modules/resolve-from": { 1097 | "version": "5.0.0", 1098 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", 1099 | "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", 1100 | "dev": true, 1101 | "optional": true, 1102 | "engines": { 1103 | "node": ">=8" 1104 | } 1105 | }, 1106 | "node_modules/resolve-global": { 1107 | "version": "1.0.0", 1108 | "resolved": "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz", 1109 | "integrity": "sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==", 1110 | "dev": true, 1111 | "optional": true, 1112 | "dependencies": { 1113 | "global-dirs": "^0.1.1" 1114 | }, 1115 | "engines": { 1116 | "node": ">=8" 1117 | } 1118 | }, 1119 | "node_modules/restore-cursor": { 1120 | "version": "2.0.0", 1121 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", 1122 | "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", 1123 | "dev": true, 1124 | "dependencies": { 1125 | "onetime": "^2.0.0", 1126 | "signal-exit": "^3.0.2" 1127 | }, 1128 | "engines": { 1129 | "node": ">=4" 1130 | } 1131 | }, 1132 | "node_modules/run-async": { 1133 | "version": "2.4.1", 1134 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", 1135 | "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", 1136 | "dev": true, 1137 | "engines": { 1138 | "node": ">=0.12.0" 1139 | } 1140 | }, 1141 | "node_modules/rxjs": { 1142 | "version": "6.6.7", 1143 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", 1144 | "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", 1145 | "dev": true, 1146 | "dependencies": { 1147 | "tslib": "^1.9.0" 1148 | }, 1149 | "engines": { 1150 | "npm": ">=2.0.0" 1151 | } 1152 | }, 1153 | "node_modules/safer-buffer": { 1154 | "version": "2.1.2", 1155 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 1156 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", 1157 | "dev": true 1158 | }, 1159 | "node_modules/signal-exit": { 1160 | "version": "3.0.3", 1161 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", 1162 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", 1163 | "dev": true 1164 | }, 1165 | "node_modules/string-width": { 1166 | "version": "2.1.1", 1167 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 1168 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 1169 | "dev": true, 1170 | "dependencies": { 1171 | "is-fullwidth-code-point": "^2.0.0", 1172 | "strip-ansi": "^4.0.0" 1173 | }, 1174 | "engines": { 1175 | "node": ">=4" 1176 | } 1177 | }, 1178 | "node_modules/string-width/node_modules/ansi-regex": { 1179 | "version": "3.0.0", 1180 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 1181 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 1182 | "dev": true, 1183 | "engines": { 1184 | "node": ">=4" 1185 | } 1186 | }, 1187 | "node_modules/string-width/node_modules/strip-ansi": { 1188 | "version": "4.0.0", 1189 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 1190 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 1191 | "dev": true, 1192 | "dependencies": { 1193 | "ansi-regex": "^3.0.0" 1194 | }, 1195 | "engines": { 1196 | "node": ">=4" 1197 | } 1198 | }, 1199 | "node_modules/strip-ansi": { 1200 | "version": "5.2.0", 1201 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 1202 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 1203 | "dev": true, 1204 | "dependencies": { 1205 | "ansi-regex": "^4.1.0" 1206 | }, 1207 | "engines": { 1208 | "node": ">=6" 1209 | } 1210 | }, 1211 | "node_modules/strip-bom": { 1212 | "version": "4.0.0", 1213 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", 1214 | "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", 1215 | "dev": true, 1216 | "engines": { 1217 | "node": ">=8" 1218 | } 1219 | }, 1220 | "node_modules/strip-json-comments": { 1221 | "version": "3.0.1", 1222 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", 1223 | "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", 1224 | "dev": true, 1225 | "engines": { 1226 | "node": ">=8" 1227 | } 1228 | }, 1229 | "node_modules/supports-color": { 1230 | "version": "5.5.0", 1231 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 1232 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 1233 | "dev": true, 1234 | "dependencies": { 1235 | "has-flag": "^3.0.0" 1236 | }, 1237 | "engines": { 1238 | "node": ">=4" 1239 | } 1240 | }, 1241 | "node_modules/through": { 1242 | "version": "2.3.8", 1243 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 1244 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", 1245 | "dev": true 1246 | }, 1247 | "node_modules/tmp": { 1248 | "version": "0.0.33", 1249 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", 1250 | "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", 1251 | "dev": true, 1252 | "dependencies": { 1253 | "os-tmpdir": "~1.0.2" 1254 | }, 1255 | "engines": { 1256 | "node": ">=0.6.0" 1257 | } 1258 | }, 1259 | "node_modules/to-regex-range": { 1260 | "version": "5.0.1", 1261 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 1262 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 1263 | "dev": true, 1264 | "dependencies": { 1265 | "is-number": "^7.0.0" 1266 | }, 1267 | "engines": { 1268 | "node": ">=8.0" 1269 | } 1270 | }, 1271 | "node_modules/tslib": { 1272 | "version": "1.14.1", 1273 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", 1274 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", 1275 | "dev": true 1276 | }, 1277 | "node_modules/universalify": { 1278 | "version": "0.1.2", 1279 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", 1280 | "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", 1281 | "dev": true, 1282 | "engines": { 1283 | "node": ">= 4.0.0" 1284 | } 1285 | }, 1286 | "node_modules/which": { 1287 | "version": "1.3.1", 1288 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 1289 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 1290 | "dev": true, 1291 | "dependencies": { 1292 | "isexe": "^2.0.0" 1293 | }, 1294 | "bin": { 1295 | "which": "bin/which" 1296 | } 1297 | }, 1298 | "node_modules/word-wrap": { 1299 | "version": "1.2.3", 1300 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", 1301 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", 1302 | "dev": true, 1303 | "engines": { 1304 | "node": ">=0.10.0" 1305 | } 1306 | }, 1307 | "node_modules/wrappy": { 1308 | "version": "1.0.2", 1309 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1310 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 1311 | "dev": true 1312 | }, 1313 | "node_modules/yaml": { 1314 | "version": "1.10.2", 1315 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", 1316 | "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", 1317 | "dev": true, 1318 | "optional": true, 1319 | "engines": { 1320 | "node": ">= 6" 1321 | } 1322 | } 1323 | }, 1324 | "dependencies": { 1325 | "@babel/code-frame": { 1326 | "version": "7.14.5", 1327 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", 1328 | "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", 1329 | "dev": true, 1330 | "optional": true, 1331 | "requires": { 1332 | "@babel/highlight": "^7.14.5" 1333 | } 1334 | }, 1335 | "@babel/helper-validator-identifier": { 1336 | "version": "7.14.5", 1337 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", 1338 | "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", 1339 | "dev": true, 1340 | "optional": true 1341 | }, 1342 | "@babel/highlight": { 1343 | "version": "7.14.5", 1344 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", 1345 | "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", 1346 | "dev": true, 1347 | "optional": true, 1348 | "requires": { 1349 | "@babel/helper-validator-identifier": "^7.14.5", 1350 | "chalk": "^2.0.0", 1351 | "js-tokens": "^4.0.0" 1352 | } 1353 | }, 1354 | "@commitlint/execute-rule": { 1355 | "version": "12.1.4", 1356 | "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-12.1.4.tgz", 1357 | "integrity": "sha512-h2S1j8SXyNeABb27q2Ok2vD1WfxJiXvOttKuRA9Or7LN6OQoC/KtT3844CIhhWNteNMu/wE0gkTqGxDVAnJiHg==", 1358 | "dev": true, 1359 | "optional": true 1360 | }, 1361 | "@commitlint/load": { 1362 | "version": "12.1.4", 1363 | "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-12.1.4.tgz", 1364 | "integrity": "sha512-Keszi0IOjRzKfxT+qES/n+KZyLrxy79RQz8wWgssCboYjKEp+wC+fLCgbiMCYjI5k31CIzIOq/16J7Ycr0C0EA==", 1365 | "dev": true, 1366 | "optional": true, 1367 | "requires": { 1368 | "@commitlint/execute-rule": "^12.1.4", 1369 | "@commitlint/resolve-extends": "^12.1.4", 1370 | "@commitlint/types": "^12.1.4", 1371 | "chalk": "^4.0.0", 1372 | "cosmiconfig": "^7.0.0", 1373 | "lodash": "^4.17.19", 1374 | "resolve-from": "^5.0.0" 1375 | }, 1376 | "dependencies": { 1377 | "ansi-styles": { 1378 | "version": "4.3.0", 1379 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 1380 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 1381 | "dev": true, 1382 | "optional": true, 1383 | "requires": { 1384 | "color-convert": "^2.0.1" 1385 | } 1386 | }, 1387 | "chalk": { 1388 | "version": "4.1.1", 1389 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", 1390 | "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", 1391 | "dev": true, 1392 | "optional": true, 1393 | "requires": { 1394 | "ansi-styles": "^4.1.0", 1395 | "supports-color": "^7.1.0" 1396 | } 1397 | }, 1398 | "color-convert": { 1399 | "version": "2.0.1", 1400 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 1401 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 1402 | "dev": true, 1403 | "optional": true, 1404 | "requires": { 1405 | "color-name": "~1.1.4" 1406 | } 1407 | }, 1408 | "color-name": { 1409 | "version": "1.1.4", 1410 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 1411 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 1412 | "dev": true, 1413 | "optional": true 1414 | }, 1415 | "has-flag": { 1416 | "version": "4.0.0", 1417 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 1418 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 1419 | "dev": true, 1420 | "optional": true 1421 | }, 1422 | "supports-color": { 1423 | "version": "7.2.0", 1424 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 1425 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 1426 | "dev": true, 1427 | "optional": true, 1428 | "requires": { 1429 | "has-flag": "^4.0.0" 1430 | } 1431 | } 1432 | } 1433 | }, 1434 | "@commitlint/resolve-extends": { 1435 | "version": "12.1.4", 1436 | "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-12.1.4.tgz", 1437 | "integrity": "sha512-R9CoUtsXLd6KSCfsZly04grsH6JVnWFmVtWgWs1KdDpdV+G3TSs37tColMFqglpkx3dsWu8dsPD56+D9YnJfqg==", 1438 | "dev": true, 1439 | "optional": true, 1440 | "requires": { 1441 | "import-fresh": "^3.0.0", 1442 | "lodash": "^4.17.19", 1443 | "resolve-from": "^5.0.0", 1444 | "resolve-global": "^1.0.0" 1445 | } 1446 | }, 1447 | "@commitlint/types": { 1448 | "version": "12.1.4", 1449 | "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-12.1.4.tgz", 1450 | "integrity": "sha512-KRIjdnWNUx6ywz+SJvjmNCbQKcKP6KArhjZhY2l+CWKxak0d77SOjggkMwFTiSgLODOwmuLTbarR2ZfWPiPMlw==", 1451 | "dev": true, 1452 | "optional": true, 1453 | "requires": { 1454 | "chalk": "^4.0.0" 1455 | }, 1456 | "dependencies": { 1457 | "ansi-styles": { 1458 | "version": "4.3.0", 1459 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 1460 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 1461 | "dev": true, 1462 | "optional": true, 1463 | "requires": { 1464 | "color-convert": "^2.0.1" 1465 | } 1466 | }, 1467 | "chalk": { 1468 | "version": "4.1.1", 1469 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", 1470 | "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", 1471 | "dev": true, 1472 | "optional": true, 1473 | "requires": { 1474 | "ansi-styles": "^4.1.0", 1475 | "supports-color": "^7.1.0" 1476 | } 1477 | }, 1478 | "color-convert": { 1479 | "version": "2.0.1", 1480 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 1481 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 1482 | "dev": true, 1483 | "optional": true, 1484 | "requires": { 1485 | "color-name": "~1.1.4" 1486 | } 1487 | }, 1488 | "color-name": { 1489 | "version": "1.1.4", 1490 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 1491 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 1492 | "dev": true, 1493 | "optional": true 1494 | }, 1495 | "has-flag": { 1496 | "version": "4.0.0", 1497 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 1498 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 1499 | "dev": true, 1500 | "optional": true 1501 | }, 1502 | "supports-color": { 1503 | "version": "7.2.0", 1504 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 1505 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 1506 | "dev": true, 1507 | "optional": true, 1508 | "requires": { 1509 | "has-flag": "^4.0.0" 1510 | } 1511 | } 1512 | } 1513 | }, 1514 | "@types/parse-json": { 1515 | "version": "4.0.0", 1516 | "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", 1517 | "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", 1518 | "dev": true, 1519 | "optional": true 1520 | }, 1521 | "ansi-escapes": { 1522 | "version": "3.2.0", 1523 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", 1524 | "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", 1525 | "dev": true 1526 | }, 1527 | "ansi-regex": { 1528 | "version": "4.1.0", 1529 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 1530 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", 1531 | "dev": true 1532 | }, 1533 | "ansi-styles": { 1534 | "version": "3.2.1", 1535 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 1536 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 1537 | "dev": true, 1538 | "requires": { 1539 | "color-convert": "^1.9.0" 1540 | } 1541 | }, 1542 | "balanced-match": { 1543 | "version": "1.0.2", 1544 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 1545 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 1546 | "dev": true 1547 | }, 1548 | "brace-expansion": { 1549 | "version": "1.1.11", 1550 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 1551 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 1552 | "dev": true, 1553 | "requires": { 1554 | "balanced-match": "^1.0.0", 1555 | "concat-map": "0.0.1" 1556 | } 1557 | }, 1558 | "braces": { 1559 | "version": "3.0.2", 1560 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 1561 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 1562 | "dev": true, 1563 | "requires": { 1564 | "fill-range": "^7.0.1" 1565 | } 1566 | }, 1567 | "cachedir": { 1568 | "version": "2.2.0", 1569 | "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.2.0.tgz", 1570 | "integrity": "sha512-VvxA0xhNqIIfg0V9AmJkDg91DaJwryutH5rVEZAhcNi4iJFj9f+QxmAjgK1LT9I8OgToX27fypX6/MeCXVbBjQ==", 1571 | "dev": true 1572 | }, 1573 | "callsites": { 1574 | "version": "3.1.0", 1575 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 1576 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 1577 | "dev": true, 1578 | "optional": true 1579 | }, 1580 | "chalk": { 1581 | "version": "2.4.2", 1582 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 1583 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 1584 | "dev": true, 1585 | "requires": { 1586 | "ansi-styles": "^3.2.1", 1587 | "escape-string-regexp": "^1.0.5", 1588 | "supports-color": "^5.3.0" 1589 | } 1590 | }, 1591 | "chardet": { 1592 | "version": "0.7.0", 1593 | "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", 1594 | "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", 1595 | "dev": true 1596 | }, 1597 | "cli-cursor": { 1598 | "version": "2.1.0", 1599 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", 1600 | "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", 1601 | "dev": true, 1602 | "requires": { 1603 | "restore-cursor": "^2.0.0" 1604 | } 1605 | }, 1606 | "cli-width": { 1607 | "version": "2.2.1", 1608 | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", 1609 | "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", 1610 | "dev": true 1611 | }, 1612 | "color-convert": { 1613 | "version": "1.9.3", 1614 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 1615 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 1616 | "dev": true, 1617 | "requires": { 1618 | "color-name": "1.1.3" 1619 | } 1620 | }, 1621 | "color-name": { 1622 | "version": "1.1.3", 1623 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 1624 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 1625 | "dev": true 1626 | }, 1627 | "commitizen": { 1628 | "version": "4.2.4", 1629 | "resolved": "https://registry.npmjs.org/commitizen/-/commitizen-4.2.4.tgz", 1630 | "integrity": "sha512-LlZChbDzg3Ir3O2S7jSo/cgWp5/QwylQVr59K4xayVq8S4/RdKzSyJkghAiZZHfhh5t4pxunUoyeg0ml1q/7aw==", 1631 | "dev": true, 1632 | "requires": { 1633 | "cachedir": "2.2.0", 1634 | "cz-conventional-changelog": "3.2.0", 1635 | "dedent": "0.7.0", 1636 | "detect-indent": "6.0.0", 1637 | "find-node-modules": "^2.1.2", 1638 | "find-root": "1.1.0", 1639 | "fs-extra": "8.1.0", 1640 | "glob": "7.1.4", 1641 | "inquirer": "6.5.2", 1642 | "is-utf8": "^0.2.1", 1643 | "lodash": "^4.17.20", 1644 | "minimist": "1.2.5", 1645 | "strip-bom": "4.0.0", 1646 | "strip-json-comments": "3.0.1" 1647 | }, 1648 | "dependencies": { 1649 | "cz-conventional-changelog": { 1650 | "version": "3.2.0", 1651 | "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.2.0.tgz", 1652 | "integrity": "sha512-yAYxeGpVi27hqIilG1nh4A9Bnx4J3Ov+eXy4koL3drrR+IO9GaWPsKjik20ht608Asqi8TQPf0mczhEeyAtMzg==", 1653 | "dev": true, 1654 | "requires": { 1655 | "@commitlint/load": ">6.1.1", 1656 | "chalk": "^2.4.1", 1657 | "commitizen": "^4.0.3", 1658 | "conventional-commit-types": "^3.0.0", 1659 | "lodash.map": "^4.5.1", 1660 | "longest": "^2.0.1", 1661 | "word-wrap": "^1.0.3" 1662 | } 1663 | } 1664 | } 1665 | }, 1666 | "concat-map": { 1667 | "version": "0.0.1", 1668 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 1669 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 1670 | "dev": true 1671 | }, 1672 | "conventional-commit-types": { 1673 | "version": "3.0.0", 1674 | "resolved": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-3.0.0.tgz", 1675 | "integrity": "sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==", 1676 | "dev": true 1677 | }, 1678 | "cosmiconfig": { 1679 | "version": "7.0.0", 1680 | "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", 1681 | "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", 1682 | "dev": true, 1683 | "optional": true, 1684 | "requires": { 1685 | "@types/parse-json": "^4.0.0", 1686 | "import-fresh": "^3.2.1", 1687 | "parse-json": "^5.0.0", 1688 | "path-type": "^4.0.0", 1689 | "yaml": "^1.10.0" 1690 | } 1691 | }, 1692 | "cz-conventional-changelog": { 1693 | "version": "3.3.0", 1694 | "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.3.0.tgz", 1695 | "integrity": "sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==", 1696 | "dev": true, 1697 | "requires": { 1698 | "@commitlint/load": ">6.1.1", 1699 | "chalk": "^2.4.1", 1700 | "commitizen": "^4.0.3", 1701 | "conventional-commit-types": "^3.0.0", 1702 | "lodash.map": "^4.5.1", 1703 | "longest": "^2.0.1", 1704 | "word-wrap": "^1.0.3" 1705 | } 1706 | }, 1707 | "dedent": { 1708 | "version": "0.7.0", 1709 | "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", 1710 | "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", 1711 | "dev": true 1712 | }, 1713 | "detect-file": { 1714 | "version": "1.0.0", 1715 | "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", 1716 | "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", 1717 | "dev": true 1718 | }, 1719 | "detect-indent": { 1720 | "version": "6.0.0", 1721 | "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", 1722 | "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==", 1723 | "dev": true 1724 | }, 1725 | "error-ex": { 1726 | "version": "1.3.2", 1727 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 1728 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 1729 | "dev": true, 1730 | "optional": true, 1731 | "requires": { 1732 | "is-arrayish": "^0.2.1" 1733 | } 1734 | }, 1735 | "escape-string-regexp": { 1736 | "version": "1.0.5", 1737 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1738 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 1739 | "dev": true 1740 | }, 1741 | "expand-tilde": { 1742 | "version": "2.0.2", 1743 | "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", 1744 | "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", 1745 | "dev": true, 1746 | "requires": { 1747 | "homedir-polyfill": "^1.0.1" 1748 | } 1749 | }, 1750 | "external-editor": { 1751 | "version": "3.1.0", 1752 | "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", 1753 | "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", 1754 | "dev": true, 1755 | "requires": { 1756 | "chardet": "^0.7.0", 1757 | "iconv-lite": "^0.4.24", 1758 | "tmp": "^0.0.33" 1759 | } 1760 | }, 1761 | "figures": { 1762 | "version": "2.0.0", 1763 | "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", 1764 | "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", 1765 | "dev": true, 1766 | "requires": { 1767 | "escape-string-regexp": "^1.0.5" 1768 | } 1769 | }, 1770 | "fill-range": { 1771 | "version": "7.0.1", 1772 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 1773 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 1774 | "dev": true, 1775 | "requires": { 1776 | "to-regex-range": "^5.0.1" 1777 | } 1778 | }, 1779 | "find-node-modules": { 1780 | "version": "2.1.2", 1781 | "resolved": "https://registry.npmjs.org/find-node-modules/-/find-node-modules-2.1.2.tgz", 1782 | "integrity": "sha512-x+3P4mbtRPlSiVE1Qco0Z4YLU8WFiFcuWTf3m75OV9Uzcfs2Bg+O9N+r/K0AnmINBW06KpfqKwYJbFlFq4qNug==", 1783 | "dev": true, 1784 | "requires": { 1785 | "findup-sync": "^4.0.0", 1786 | "merge": "^2.1.0" 1787 | } 1788 | }, 1789 | "find-root": { 1790 | "version": "1.1.0", 1791 | "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", 1792 | "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", 1793 | "dev": true 1794 | }, 1795 | "findup-sync": { 1796 | "version": "4.0.0", 1797 | "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz", 1798 | "integrity": "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==", 1799 | "dev": true, 1800 | "requires": { 1801 | "detect-file": "^1.0.0", 1802 | "is-glob": "^4.0.0", 1803 | "micromatch": "^4.0.2", 1804 | "resolve-dir": "^1.0.1" 1805 | } 1806 | }, 1807 | "fs-extra": { 1808 | "version": "8.1.0", 1809 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", 1810 | "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", 1811 | "dev": true, 1812 | "requires": { 1813 | "graceful-fs": "^4.2.0", 1814 | "jsonfile": "^4.0.0", 1815 | "universalify": "^0.1.0" 1816 | } 1817 | }, 1818 | "fs.realpath": { 1819 | "version": "1.0.0", 1820 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1821 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 1822 | "dev": true 1823 | }, 1824 | "glob": { 1825 | "version": "7.1.4", 1826 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", 1827 | "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", 1828 | "dev": true, 1829 | "requires": { 1830 | "fs.realpath": "^1.0.0", 1831 | "inflight": "^1.0.4", 1832 | "inherits": "2", 1833 | "minimatch": "^3.0.4", 1834 | "once": "^1.3.0", 1835 | "path-is-absolute": "^1.0.0" 1836 | } 1837 | }, 1838 | "global-dirs": { 1839 | "version": "0.1.1", 1840 | "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", 1841 | "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", 1842 | "dev": true, 1843 | "optional": true, 1844 | "requires": { 1845 | "ini": "^1.3.4" 1846 | } 1847 | }, 1848 | "global-modules": { 1849 | "version": "1.0.0", 1850 | "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", 1851 | "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", 1852 | "dev": true, 1853 | "requires": { 1854 | "global-prefix": "^1.0.1", 1855 | "is-windows": "^1.0.1", 1856 | "resolve-dir": "^1.0.0" 1857 | } 1858 | }, 1859 | "global-prefix": { 1860 | "version": "1.0.2", 1861 | "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", 1862 | "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", 1863 | "dev": true, 1864 | "requires": { 1865 | "expand-tilde": "^2.0.2", 1866 | "homedir-polyfill": "^1.0.1", 1867 | "ini": "^1.3.4", 1868 | "is-windows": "^1.0.1", 1869 | "which": "^1.2.14" 1870 | } 1871 | }, 1872 | "graceful-fs": { 1873 | "version": "4.2.6", 1874 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", 1875 | "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", 1876 | "dev": true 1877 | }, 1878 | "has-flag": { 1879 | "version": "3.0.0", 1880 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 1881 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 1882 | "dev": true 1883 | }, 1884 | "homedir-polyfill": { 1885 | "version": "1.0.3", 1886 | "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", 1887 | "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", 1888 | "dev": true, 1889 | "requires": { 1890 | "parse-passwd": "^1.0.0" 1891 | } 1892 | }, 1893 | "iconv-lite": { 1894 | "version": "0.4.24", 1895 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 1896 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 1897 | "dev": true, 1898 | "requires": { 1899 | "safer-buffer": ">= 2.1.2 < 3" 1900 | } 1901 | }, 1902 | "import-fresh": { 1903 | "version": "3.3.0", 1904 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", 1905 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", 1906 | "dev": true, 1907 | "optional": true, 1908 | "requires": { 1909 | "parent-module": "^1.0.0", 1910 | "resolve-from": "^4.0.0" 1911 | }, 1912 | "dependencies": { 1913 | "resolve-from": { 1914 | "version": "4.0.0", 1915 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 1916 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 1917 | "dev": true, 1918 | "optional": true 1919 | } 1920 | } 1921 | }, 1922 | "inflight": { 1923 | "version": "1.0.6", 1924 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1925 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1926 | "dev": true, 1927 | "requires": { 1928 | "once": "^1.3.0", 1929 | "wrappy": "1" 1930 | } 1931 | }, 1932 | "inherits": { 1933 | "version": "2.0.4", 1934 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1935 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 1936 | "dev": true 1937 | }, 1938 | "ini": { 1939 | "version": "1.3.8", 1940 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", 1941 | "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", 1942 | "dev": true 1943 | }, 1944 | "inquirer": { 1945 | "version": "6.5.2", 1946 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", 1947 | "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", 1948 | "dev": true, 1949 | "requires": { 1950 | "ansi-escapes": "^3.2.0", 1951 | "chalk": "^2.4.2", 1952 | "cli-cursor": "^2.1.0", 1953 | "cli-width": "^2.0.0", 1954 | "external-editor": "^3.0.3", 1955 | "figures": "^2.0.0", 1956 | "lodash": "^4.17.12", 1957 | "mute-stream": "0.0.7", 1958 | "run-async": "^2.2.0", 1959 | "rxjs": "^6.4.0", 1960 | "string-width": "^2.1.0", 1961 | "strip-ansi": "^5.1.0", 1962 | "through": "^2.3.6" 1963 | } 1964 | }, 1965 | "is-arrayish": { 1966 | "version": "0.2.1", 1967 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 1968 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", 1969 | "dev": true, 1970 | "optional": true 1971 | }, 1972 | "is-extglob": { 1973 | "version": "2.1.1", 1974 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 1975 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 1976 | "dev": true 1977 | }, 1978 | "is-fullwidth-code-point": { 1979 | "version": "2.0.0", 1980 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 1981 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 1982 | "dev": true 1983 | }, 1984 | "is-glob": { 1985 | "version": "4.0.1", 1986 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", 1987 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", 1988 | "dev": true, 1989 | "requires": { 1990 | "is-extglob": "^2.1.1" 1991 | } 1992 | }, 1993 | "is-number": { 1994 | "version": "7.0.0", 1995 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 1996 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 1997 | "dev": true 1998 | }, 1999 | "is-utf8": { 2000 | "version": "0.2.1", 2001 | "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", 2002 | "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", 2003 | "dev": true 2004 | }, 2005 | "is-windows": { 2006 | "version": "1.0.2", 2007 | "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", 2008 | "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", 2009 | "dev": true 2010 | }, 2011 | "isexe": { 2012 | "version": "2.0.0", 2013 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 2014 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 2015 | "dev": true 2016 | }, 2017 | "js-tokens": { 2018 | "version": "4.0.0", 2019 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 2020 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 2021 | "dev": true, 2022 | "optional": true 2023 | }, 2024 | "json-parse-even-better-errors": { 2025 | "version": "2.3.1", 2026 | "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", 2027 | "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", 2028 | "dev": true, 2029 | "optional": true 2030 | }, 2031 | "jsonfile": { 2032 | "version": "4.0.0", 2033 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", 2034 | "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", 2035 | "dev": true, 2036 | "requires": { 2037 | "graceful-fs": "^4.1.6" 2038 | } 2039 | }, 2040 | "lines-and-columns": { 2041 | "version": "1.1.6", 2042 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", 2043 | "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", 2044 | "dev": true, 2045 | "optional": true 2046 | }, 2047 | "lodash": { 2048 | "version": "4.17.21", 2049 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 2050 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", 2051 | "dev": true 2052 | }, 2053 | "lodash.map": { 2054 | "version": "4.6.0", 2055 | "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", 2056 | "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=", 2057 | "dev": true 2058 | }, 2059 | "longest": { 2060 | "version": "2.0.1", 2061 | "resolved": "https://registry.npmjs.org/longest/-/longest-2.0.1.tgz", 2062 | "integrity": "sha1-eB4YMpaqlPbU2RbcM10NF676I/g=", 2063 | "dev": true 2064 | }, 2065 | "merge": { 2066 | "version": "2.1.1", 2067 | "resolved": "https://registry.npmjs.org/merge/-/merge-2.1.1.tgz", 2068 | "integrity": "sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==", 2069 | "dev": true 2070 | }, 2071 | "micromatch": { 2072 | "version": "4.0.4", 2073 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", 2074 | "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", 2075 | "dev": true, 2076 | "requires": { 2077 | "braces": "^3.0.1", 2078 | "picomatch": "^2.2.3" 2079 | } 2080 | }, 2081 | "mimic-fn": { 2082 | "version": "1.2.0", 2083 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", 2084 | "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", 2085 | "dev": true 2086 | }, 2087 | "minimatch": { 2088 | "version": "3.0.4", 2089 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 2090 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 2091 | "dev": true, 2092 | "requires": { 2093 | "brace-expansion": "^1.1.7" 2094 | } 2095 | }, 2096 | "minimist": { 2097 | "version": "1.2.5", 2098 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", 2099 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", 2100 | "dev": true 2101 | }, 2102 | "mute-stream": { 2103 | "version": "0.0.7", 2104 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", 2105 | "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", 2106 | "dev": true 2107 | }, 2108 | "once": { 2109 | "version": "1.4.0", 2110 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 2111 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 2112 | "dev": true, 2113 | "requires": { 2114 | "wrappy": "1" 2115 | } 2116 | }, 2117 | "onetime": { 2118 | "version": "2.0.1", 2119 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", 2120 | "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", 2121 | "dev": true, 2122 | "requires": { 2123 | "mimic-fn": "^1.0.0" 2124 | } 2125 | }, 2126 | "os-tmpdir": { 2127 | "version": "1.0.2", 2128 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 2129 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 2130 | "dev": true 2131 | }, 2132 | "parent-module": { 2133 | "version": "1.0.1", 2134 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 2135 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 2136 | "dev": true, 2137 | "optional": true, 2138 | "requires": { 2139 | "callsites": "^3.0.0" 2140 | } 2141 | }, 2142 | "parse-json": { 2143 | "version": "5.2.0", 2144 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", 2145 | "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", 2146 | "dev": true, 2147 | "optional": true, 2148 | "requires": { 2149 | "@babel/code-frame": "^7.0.0", 2150 | "error-ex": "^1.3.1", 2151 | "json-parse-even-better-errors": "^2.3.0", 2152 | "lines-and-columns": "^1.1.6" 2153 | } 2154 | }, 2155 | "parse-passwd": { 2156 | "version": "1.0.0", 2157 | "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", 2158 | "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", 2159 | "dev": true 2160 | }, 2161 | "path-is-absolute": { 2162 | "version": "1.0.1", 2163 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 2164 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 2165 | "dev": true 2166 | }, 2167 | "path-type": { 2168 | "version": "4.0.0", 2169 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", 2170 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", 2171 | "dev": true, 2172 | "optional": true 2173 | }, 2174 | "picomatch": { 2175 | "version": "2.3.0", 2176 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", 2177 | "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", 2178 | "dev": true 2179 | }, 2180 | "resolve-dir": { 2181 | "version": "1.0.1", 2182 | "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", 2183 | "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", 2184 | "dev": true, 2185 | "requires": { 2186 | "expand-tilde": "^2.0.0", 2187 | "global-modules": "^1.0.0" 2188 | } 2189 | }, 2190 | "resolve-from": { 2191 | "version": "5.0.0", 2192 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", 2193 | "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", 2194 | "dev": true, 2195 | "optional": true 2196 | }, 2197 | "resolve-global": { 2198 | "version": "1.0.0", 2199 | "resolved": "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz", 2200 | "integrity": "sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==", 2201 | "dev": true, 2202 | "optional": true, 2203 | "requires": { 2204 | "global-dirs": "^0.1.1" 2205 | } 2206 | }, 2207 | "restore-cursor": { 2208 | "version": "2.0.0", 2209 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", 2210 | "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", 2211 | "dev": true, 2212 | "requires": { 2213 | "onetime": "^2.0.0", 2214 | "signal-exit": "^3.0.2" 2215 | } 2216 | }, 2217 | "run-async": { 2218 | "version": "2.4.1", 2219 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", 2220 | "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", 2221 | "dev": true 2222 | }, 2223 | "rxjs": { 2224 | "version": "6.6.7", 2225 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", 2226 | "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", 2227 | "dev": true, 2228 | "requires": { 2229 | "tslib": "^1.9.0" 2230 | } 2231 | }, 2232 | "safer-buffer": { 2233 | "version": "2.1.2", 2234 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 2235 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", 2236 | "dev": true 2237 | }, 2238 | "signal-exit": { 2239 | "version": "3.0.3", 2240 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", 2241 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", 2242 | "dev": true 2243 | }, 2244 | "string-width": { 2245 | "version": "2.1.1", 2246 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 2247 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 2248 | "dev": true, 2249 | "requires": { 2250 | "is-fullwidth-code-point": "^2.0.0", 2251 | "strip-ansi": "^4.0.0" 2252 | }, 2253 | "dependencies": { 2254 | "ansi-regex": { 2255 | "version": "3.0.0", 2256 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 2257 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 2258 | "dev": true 2259 | }, 2260 | "strip-ansi": { 2261 | "version": "4.0.0", 2262 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 2263 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 2264 | "dev": true, 2265 | "requires": { 2266 | "ansi-regex": "^3.0.0" 2267 | } 2268 | } 2269 | } 2270 | }, 2271 | "strip-ansi": { 2272 | "version": "5.2.0", 2273 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 2274 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 2275 | "dev": true, 2276 | "requires": { 2277 | "ansi-regex": "^4.1.0" 2278 | } 2279 | }, 2280 | "strip-bom": { 2281 | "version": "4.0.0", 2282 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", 2283 | "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", 2284 | "dev": true 2285 | }, 2286 | "strip-json-comments": { 2287 | "version": "3.0.1", 2288 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", 2289 | "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", 2290 | "dev": true 2291 | }, 2292 | "supports-color": { 2293 | "version": "5.5.0", 2294 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 2295 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 2296 | "dev": true, 2297 | "requires": { 2298 | "has-flag": "^3.0.0" 2299 | } 2300 | }, 2301 | "through": { 2302 | "version": "2.3.8", 2303 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 2304 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", 2305 | "dev": true 2306 | }, 2307 | "tmp": { 2308 | "version": "0.0.33", 2309 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", 2310 | "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", 2311 | "dev": true, 2312 | "requires": { 2313 | "os-tmpdir": "~1.0.2" 2314 | } 2315 | }, 2316 | "to-regex-range": { 2317 | "version": "5.0.1", 2318 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 2319 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 2320 | "dev": true, 2321 | "requires": { 2322 | "is-number": "^7.0.0" 2323 | } 2324 | }, 2325 | "tslib": { 2326 | "version": "1.14.1", 2327 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", 2328 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", 2329 | "dev": true 2330 | }, 2331 | "universalify": { 2332 | "version": "0.1.2", 2333 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", 2334 | "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", 2335 | "dev": true 2336 | }, 2337 | "which": { 2338 | "version": "1.3.1", 2339 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 2340 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 2341 | "dev": true, 2342 | "requires": { 2343 | "isexe": "^2.0.0" 2344 | } 2345 | }, 2346 | "word-wrap": { 2347 | "version": "1.2.3", 2348 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", 2349 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", 2350 | "dev": true 2351 | }, 2352 | "wrappy": { 2353 | "version": "1.0.2", 2354 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2355 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 2356 | "dev": true 2357 | }, 2358 | "yaml": { 2359 | "version": "1.10.2", 2360 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", 2361 | "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", 2362 | "dev": true, 2363 | "optional": true 2364 | } 2365 | } 2366 | } 2367 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "devDependencies": { 3 | "cz-conventional-changelog": "^3.3.0" 4 | }, 5 | "config": { 6 | "commitizen": { 7 | "path": "./node_modules/cz-conventional-changelog" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/Facades/Wppconnect.php: -------------------------------------------------------------------------------- 1 | client = new GuzzleClient(); 39 | } 40 | 41 | /** 42 | * Create a new Guzzle Client specifying the Base URI. 43 | * 44 | * @param string $base_uri 45 | * @return RequestInterface 46 | */ 47 | public function make(string $base_uri): RequestInterface 48 | { 49 | $this->client = new GuzzleClient(['base_uri' => $base_uri]); 50 | 51 | return $this; 52 | } 53 | 54 | /** 55 | * Specify the URI for the Request. 56 | * 57 | * @param string $uri 58 | * @return RequestInterface 59 | */ 60 | public function to(string $uri): RequestInterface 61 | { 62 | $this->uri = $uri; 63 | 64 | return $this; 65 | } 66 | 67 | /** 68 | * Specify the payload. 69 | * 70 | * @param mixed $body 71 | * @param array $headers 72 | * @param array $options 73 | * @return RequestInterface 74 | */ 75 | public function with($body = [], array $headers = [], array $options = []): RequestInterface 76 | { 77 | $this->body = $body; 78 | $this->headers = $headers; 79 | $this->options = $options; 80 | 81 | return $this; 82 | } 83 | 84 | /** 85 | * Specify the body for the request. 86 | * 87 | * @param mixed $body 88 | * @return RequestInterface 89 | */ 90 | public function withBody($body = []): RequestInterface 91 | { 92 | $this->body = $body; 93 | 94 | return $this; 95 | } 96 | 97 | /** 98 | * Append to existing body. 99 | * 100 | * @param mixed $body 101 | * @return RequestInterface 102 | */ 103 | public function addBody($body = []): RequestInterface 104 | { 105 | if (is_array($body) && is_array($this->body)): 106 | $this->body = array_merge($this->body, $body); 107 | endif; 108 | 109 | if (is_string($body) && is_string($this->body)): 110 | $this->body .= $body; 111 | endif; 112 | 113 | return $this; 114 | } 115 | 116 | /** 117 | * Get existing body. 118 | * 119 | * @return mixed 120 | */ 121 | public function getBody() 122 | { 123 | return $this->body; 124 | } 125 | 126 | /** 127 | * Specify the headers for the request. 128 | * 129 | * @param array $headers 130 | * @return RequestInterface 131 | */ 132 | public function withHeaders(array $headers = []): RequestInterface 133 | { 134 | $this->headers = $headers; 135 | 136 | return $this; 137 | } 138 | 139 | /** 140 | * Append to existing headers. 141 | * 142 | * @param array $headers 143 | * @return RequestInterface 144 | */ 145 | public function addHeaders(array $headers = []): RequestInterface 146 | { 147 | $this->headers = array_merge($this->headers, $headers); 148 | 149 | return $this; 150 | } 151 | 152 | /** 153 | * Get existing headers. 154 | * 155 | * @return array 156 | */ 157 | public function getHeaders(): array 158 | { 159 | return $this->headers; 160 | } 161 | 162 | 163 | /** 164 | * Specify the options for the request. 165 | * 166 | * @param array $options 167 | * @return RequestInterface 168 | */ 169 | public function withOptions(array $options = []): RequestInterface 170 | { 171 | $this->options = $options; 172 | 173 | return $this; 174 | } 175 | 176 | /** 177 | * Append to existing options. 178 | * 179 | * @param array $options 180 | * @return RequestInterface 181 | */ 182 | public function addOptions(array $options = []): RequestInterface 183 | { 184 | $this->options = array_merge($this->options, $options); 185 | 186 | return $this; 187 | } 188 | 189 | /** 190 | * Get existing options. 191 | * 192 | * @return array 193 | */ 194 | public function getOptions(): array 195 | { 196 | return $this->options; 197 | } 198 | 199 | /** 200 | * Specify the body to be Form Parameters. 201 | * 202 | * @return RequestInterface 203 | */ 204 | public function asFormParams(): RequestInterface 205 | { 206 | $this->format = 'form_params'; 207 | 208 | return $this; 209 | } 210 | 211 | /** 212 | * Specify the body to be JSON. 213 | * 214 | * @return RequestInterface 215 | */ 216 | public function asJson(): RequestInterface 217 | { 218 | $this->format = 'json'; 219 | 220 | return $this; 221 | } 222 | 223 | /** 224 | * Specify the body to be a string. 225 | * 226 | * @return RequestInterface 227 | */ 228 | public function asString(): RequestInterface 229 | { 230 | $this->format = 'body'; 231 | 232 | return $this; 233 | } 234 | 235 | /** 236 | * Toggle debugging. 237 | * 238 | * @param resource|bool $debug 239 | * @return $this 240 | */ 241 | public function debug($debug = false): RequestInterface 242 | { 243 | $this->debug = $debug; 244 | 245 | return $this; 246 | } 247 | 248 | /** 249 | * Send a GET Request. 250 | * 251 | * @return ResponseInterface 252 | */ 253 | public function get(): ResponseInterface 254 | { 255 | return $this->makeRequest(); 256 | } 257 | 258 | /** 259 | * Send a POST Request. 260 | * 261 | * @return ResponseInterface 262 | */ 263 | public function post(): ResponseInterface 264 | { 265 | return $this->makeRequest('POST'); 266 | } 267 | 268 | /** 269 | * Send a PUT Request. 270 | * 271 | * @return ResponseInterface 272 | */ 273 | public function put(): ResponseInterface 274 | { 275 | return $this->makeRequest('PUT'); 276 | } 277 | 278 | /** 279 | * Send a PATCH Request. 280 | * 281 | * @return ResponseInterface 282 | */ 283 | public function patch(): ResponseInterface 284 | { 285 | return $this->makeRequest('PATCH'); 286 | } 287 | 288 | /** 289 | * Send a DELETE Request. 290 | * 291 | * @return ResponseInterface 292 | */ 293 | public function delete(): ResponseInterface 294 | { 295 | return $this->makeRequest('DELETE'); 296 | } 297 | 298 | /** 299 | * @param string $method 300 | * @return ResponseInterface 301 | * @throws \InvalidArgumentException 302 | */ 303 | public function request(string $method): ResponseInterface 304 | { 305 | if (!in_array(strtolower($method), ['get', 'post', 'put', 'patch', 'delete'])): 306 | throw new \InvalidArgumentException('The specified method must be either GET, POST, PUT, PATCH or DELETE'); 307 | endif; 308 | 309 | return $this->makeRequest($method); 310 | } 311 | 312 | /** 313 | * Sends the request. 314 | * 315 | * @param string $method 316 | * @return ResponseInterface 317 | */ 318 | private function makeRequest(string $method = 'GET'): ResponseInterface 319 | { 320 | $requestParameters = [ 321 | $this->format => $this->body, 322 | 'headers' => $this->headers, 323 | 'debug' => $this->debug, 324 | ]; 325 | 326 | if ($this->options !== null) : 327 | $requestParameters = array_merge($requestParameters, $this->options); 328 | endif; 329 | 330 | $response = $this->client->request($method, $this->uri, $requestParameters); 331 | $this->debug = false; 332 | return $response; 333 | } 334 | } 335 | -------------------------------------------------------------------------------- /src/WppconnectServiceProvider.php: -------------------------------------------------------------------------------- 1 | publishes([ 19 | __DIR__.'/config/wppconnect.php' => config_path('wppconnect.php'), 20 | ]); 21 | } 22 | 23 | /** 24 | * Register any application services.; 25 | * 26 | * @return void 27 | */ 28 | public function register(): void 29 | { 30 | $this->app->bind(RequestInterface::class, Wppconnect::class); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/config/wppconnect.php: -------------------------------------------------------------------------------- 1 | [ 9 | /** 10 | * Configures a base URL for the client so that requests created using a relative URL are combined with the base_url 11 | * See: http://guzzle.readthedocs.org/en/latest/quickstart.html#creating-a-client 12 | */ 13 | 'base_uri' => 'http://192.168.0.39:21465', 14 | 15 | /** 16 | * Secret Key 17 | * See: https://github.com/wppconnect-team/wppconnect-server#secret-key 18 | */ 19 | 'secret_key' => 'MYKeYPHP' 20 | ] 21 | 22 | ]; 23 | --------------------------------------------------------------------------------