├── .gitignore ├── demo ├── .gitignore ├── package.json ├── composer.json ├── resources │ ├── views │ │ └── Demo │ │ │ └── block.blade.php │ └── assets │ │ ├── styles │ │ ├── public.scss │ │ └── editor.scss │ │ └── scripts │ │ ├── editor.js │ │ └── components │ │ └── edit.js ├── index.php ├── src │ └── Demo.php ├── phpcs.xml └── config │ └── app.php ├── src ├── Contracts │ ├── RegistrarInterface.php │ ├── ApplicationInterface.php │ ├── ViewInterface.php │ ├── AssetsInterface.php │ ├── AssetInterface.php │ └── BlockInterface.php ├── Registrar.php ├── Assets.php ├── Asset.php ├── App.php ├── View.php ├── Support │ └── Fluent.php └── Block.php ├── autoload.php ├── CHANGELOG.md ├── phpcs.xml ├── .github └── ISSUE_TEMPLATE │ ├── feature_request.md │ └── bug_report.md ├── tiny-blocks.php ├── composer.json ├── LICENSE.md ├── config └── app.php ├── README.md ├── composer.lock └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | vendor 2 | node_modules 3 | .vscode 4 | wordpress -------------------------------------------------------------------------------- /demo/.gitignore: -------------------------------------------------------------------------------- 1 | **/node_modules 2 | **/dist 3 | **/vendor 4 | **/*.log 5 | -------------------------------------------------------------------------------- /demo/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "devDependencies": {} 4 | } 5 | -------------------------------------------------------------------------------- /src/Contracts/RegistrarInterface.php: -------------------------------------------------------------------------------- 1 | =7.1", 11 | "composer/installers": "v2", 12 | "tinypixel/blocks": "1.0.1" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /demo/resources/views/Demo/block.blade.php: -------------------------------------------------------------------------------- 1 |
2 |
3 | @isset($attr->heading) 4 |

5 | {!! $attr->heading !!} 6 |

7 | @endisset 8 |
9 | 10 | @isset($content) 11 |
12 | {!! $content !!} 13 |
14 | @endisset 15 |
-------------------------------------------------------------------------------- /demo/resources/assets/styles/public.scss: -------------------------------------------------------------------------------- 1 | $primary: #0000ff; 2 | 3 | .wp-block-tiny-pixel-block { 4 | display: flex; 5 | flex-direction: row; 6 | 7 | .tiny-pixel-block__column-a { 8 | flex: 2; 9 | 10 | &__heading { 11 | display: inline-block; 12 | font-size: 2rem; 13 | width: 100%; 14 | border-bottom: 2px solid rgba(0, 0, 4, 0.598); 15 | } 16 | } 17 | 18 | .tiny-pixel-block__column-b { 19 | flex: 1; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /autoload.php: -------------------------------------------------------------------------------- 1 | , 21 | }); 22 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## 1.0.0 4 | 5 | - Overhauled to work with 5.8.0. 6 | 7 | ## 0.9.0 8 | 9 | ### New 10 | 11 | - Updated concrete implementations 12 | 13 | ## 0.8.0 14 | 15 | ### New 16 | 17 | - Abstracts 18 | 19 | ## v0.7.0 20 | 21 | ### New 22 | 23 | - Interfaces 24 | 25 | ## v0.6.0 26 | 27 | ### New 28 | 29 | - Configurable providers 30 | 31 | ## v0.5.0 32 | 33 | ### New 34 | 35 | - `\DI\Container` implementation 36 | 37 | ## v0.3.0 38 | 39 | Just a lot of cleanup. Removed a couple features which were burdensome to refactor. 40 | 41 | It's pretty strongly typed now though 💪. 42 | 43 | We can always add more later. 44 | -------------------------------------------------------------------------------- /phpcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Roots Coding Standards 4 | 5 | 6 | . 7 | 8 | 9 | 10 | 11 | 12 | demo 13 | vendor/ 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /demo/index.php: -------------------------------------------------------------------------------- 1 | main($configPath); 24 | }); 25 | -------------------------------------------------------------------------------- /src/Contracts/AssetInterface.php: -------------------------------------------------------------------------------- 1 | addEditorStyle( 23 | $this->makeAsset('editor/css') 24 | ->setUrl('dist/styles/editor.css') 25 | ); 26 | 27 | $this->addEditorScript( 28 | $this->makeAsset('editor/js') 29 | ->setUrl('dist/scripts/editor.js') 30 | ); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /demo/resources/assets/scripts/components/edit.js: -------------------------------------------------------------------------------- 1 | import { __ } from "@wordpress/i18n"; 2 | import { InnerBlocks, RichText } from "@wordpress/block-editor"; 3 | 4 | export const edit = ({ className, attributes, setAttributes }) => { 5 | const { heading } = attributes; 6 | 7 | const onChange = { 8 | heading: (heading) => setAttributes({ heading }), 9 | }; 10 | 11 | return ( 12 |
13 |
14 | 20 |
21 | 22 |
23 | 24 |
25 |
26 | ); 27 | }; 28 | -------------------------------------------------------------------------------- /src/Registrar.php: -------------------------------------------------------------------------------- 1 | container = $container; 25 | } 26 | 27 | /** 28 | * Register blocks. 29 | * 30 | * Called on init. 31 | * 32 | * @return void 33 | */ 34 | public function register(): RegistrarInterface 35 | { 36 | Collection::make($this->container->get('blocks'))->each( 37 | function ($block) { 38 | $block->view->render($block); 39 | } 40 | ); 41 | 42 | return $this; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /tiny-blocks.php: -------------------------------------------------------------------------------- 1 | =7.1", 17 | "composer/installers": "v2", 18 | "illuminate/collections": "^8.61", 19 | "eftec/bladeone": "^3.24", 20 | "php-di/php-di": "^6.0" 21 | }, 22 | "require-dev": { 23 | "roots/wordpress": "dev-master" 24 | }, 25 | "autoload": { 26 | "psr-4": { 27 | "TinyPixel\\Blocks\\": [ 28 | "/src" 29 | ] 30 | }, 31 | "files": [ 32 | "./tiny-blocks.php" 33 | ] 34 | }, 35 | "extra": { 36 | "wordpress-install-dir": "wordpress" 37 | }, 38 | "scripts": { 39 | "lint": [ 40 | "phpcs --ignore=vendor,demo --extensions=php --standard=PSR12 ." 41 | ] 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | # Released under MIT License 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 8 | -------------------------------------------------------------------------------- /src/Contracts/BlockInterface.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | Roots Coding Standards 4 | 5 | 6 | src 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | **/src/blade 22 | 23 | 24 | 25 | 26 | **/src/blade 27 | 28 | 29 | 30 | 31 | **/src/blade 32 | 33 | 34 | 35 | 36 | **/src/blade 37 | 38 | 39 | 40 | 41 | **/src/blade 42 | 43 | 44 | 45 | 46 | **/src/blade 47 | 48 | 49 | 50 | 51 | **/src/blade 52 | 53 | 54 | 55 | 56 | **/src/blade 57 | 58 | 59 | 60 | 61 | **/src/blade 62 | 63 | 64 | 65 | 66 | **/src/blade 67 | 68 | 69 | -------------------------------------------------------------------------------- /src/Assets.php: -------------------------------------------------------------------------------- 1 | container = $container; 28 | } 29 | 30 | /** 31 | * Enqueue editor assets. 32 | * 33 | * @param Collection 34 | * @return void 35 | */ 36 | public function enqueueEditorAssets(Collection $blocks): AssetsInterface 37 | { 38 | $blocks->each(function ($block) { 39 | $block->editorScripts->each(function ($script) { 40 | $this->enqueueScript($script); 41 | }); 42 | 43 | $block->editorStyles->each(function ($style) { 44 | $this->enqueueStyle($style); 45 | }); 46 | }); 47 | 48 | return $this; 49 | } 50 | 51 | /** 52 | * Enqueue public assets. 53 | * 54 | * @param Collection 55 | * @return Assets 56 | */ 57 | public function enqueuePublicAssets(Collection $blocks): AssetsInterface 58 | { 59 | $blocks->each(function ($block) { 60 | $block->publicScripts->each(function ($script) { 61 | $this->enqueueScript($script); 62 | }); 63 | 64 | $block->publicStyles->each(function ($style) { 65 | $this->enqueueStyle($style); 66 | }); 67 | }); 68 | 69 | return $this; 70 | } 71 | 72 | /** 73 | * Enqueue block script. 74 | * 75 | * @param array block 76 | * @return void 77 | */ 78 | public function enqueueScript(Asset $script): void 79 | { 80 | wp_enqueue_script( 81 | $script->getName(), 82 | $script->getUrl(), 83 | $script->getManifest() ? $script->getManifest()->dependencies : $script->getDependencies(), 84 | $script->getManifest() ? $script->getManifest()->version : $script->getVersion(), 85 | ); 86 | } 87 | 88 | /** 89 | * Enqueue block style. 90 | * 91 | * @param array block 92 | * @return void 93 | */ 94 | public function enqueueStyle(Asset $style): void 95 | { 96 | wp_enqueue_style($style->getName(), $style->getUrl()); 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /config/app.php: -------------------------------------------------------------------------------- 1 | [ 16 | 'domain' => 'tinypixel', 17 | 'base_path' => realpath(__DIR__ . '/../'), 18 | 'base_url' => plugins_url('/', __DIR__), 19 | 'dist' => 'dist', 20 | ], 21 | 22 | /* 23 | |-------------------------------------------------------------------------- 24 | | View engine instances 25 | |-------------------------------------------------------------------------- 26 | | 27 | | Here you may specify one or more locations on disk to register as 28 | | a views directory. When using the standard default eftec\blade 29 | | configuration this yields a separate view engine instance per location 30 | | specified. Other view implementations may work differently. 31 | | 32 | */ 33 | 34 | 'views' => [ 35 | 'app' => [ 36 | 'dir' => realpath(__DIR__ . '/../resources/views/'), 37 | 'cache' => $cachePath, 38 | 'debug' => 0, 39 | ], 40 | ], 41 | 42 | /* 43 | |-------------------------------------------------------------------------- 44 | | Blocks 45 | |-------------------------------------------------------------------------- 46 | | 47 | | Registered blocks 48 | | 49 | */ 50 | 51 | 'blocks' => [ 52 | ], 53 | 54 | /* 55 | |-------------------------------------------------------------------------- 56 | | Providers 57 | |-------------------------------------------------------------------------- 58 | | 59 | | The following class definitions are used by the core classes when 60 | | registering blocks and rendering views. Here you may register your own 61 | | class definitions or substitute in alternative implmentations of 62 | | core services (for example: using Illuminate\View instead of eftect\BladeOne) 63 | | 64 | */ 65 | 66 | 'providers' => [ 67 | 'view' => function (Illuminate\Support\Collection $app) { 68 | return new \TinyPixel\Blocks\View($app); 69 | }, 70 | 71 | 'block' => function (Illuminate\Support\Collection $app) { 72 | return new \TinyPixel\Blocks\Block($app); 73 | }, 74 | 75 | 'assets' => function (Illuminate\Support\Collection $app) { 76 | return new \TinyPixel\Blocks\Assets($app); 77 | }, 78 | 79 | 'asset' => function (Illuminate\Support\Collection $app) { 80 | return new \TinyPixel\Blocks\Asset($app); 81 | }, 82 | 83 | 'registrar' => function (Illuminate\Support\Collection $app) { 84 | return new \TinyPixel\Blocks\Registrar($app); 85 | }, 86 | ], 87 | ]; 88 | -------------------------------------------------------------------------------- /demo/config/app.php: -------------------------------------------------------------------------------- 1 | [ 16 | 'domain' => 'tinypixel', 17 | 'base_path' => realpath(__DIR__ . '/../'), 18 | 'base_url' => plugins_url('/', __DIR__), 19 | 'dist' => 'dist', 20 | ], 21 | 22 | /* 23 | |-------------------------------------------------------------------------- 24 | | View engine instances 25 | |-------------------------------------------------------------------------- 26 | | 27 | | Here you may specify one or more locations on disk to register as 28 | | a views directory. When using the standard default eftec\blade 29 | | configuration this yields a separate view engine instance per location 30 | | specified. Other view implementations may work differently. 31 | | 32 | */ 33 | 34 | 'views' => [ 35 | 'app' => [ 36 | 'dir' => realpath(__DIR__ . '/../resources/views/'), 37 | 'cache' => $cachePath, 38 | 'debug' => false, 39 | ], 40 | ], 41 | 42 | /* 43 | |-------------------------------------------------------------------------- 44 | | Blocks 45 | |-------------------------------------------------------------------------- 46 | | 47 | | Registered blocks 48 | | 49 | */ 50 | 51 | 'blocks' => [ 52 | \Foo\Demo::class, 53 | ], 54 | 55 | /* 56 | |-------------------------------------------------------------------------- 57 | | Providers 58 | |-------------------------------------------------------------------------- 59 | | 60 | | The following class definitions are used by the core classes when 61 | | registering blocks and rendering views. Here you may register your own 62 | | class definitions or substitute in alternative implmentations of 63 | | core services (for example: using Illuminate\View instead of eftect\BladeOne) 64 | | 65 | */ 66 | 67 | 'providers' => [ 68 | 'view' => function (Illuminate\Support\Collection $app) { 69 | return new \TinyPixel\Blocks\View($app); 70 | }, 71 | 72 | 'block' => function (Illuminate\Support\Collection $app) { 73 | return new \TinyPixel\Blocks\Block($app); 74 | }, 75 | 76 | 'assets' => function (Illuminate\Support\Collection $app) { 77 | return new \TinyPixel\Blocks\Assets($app); 78 | }, 79 | 80 | 'asset' => function (Illuminate\Support\Collection $app) { 81 | return new \TinyPixel\Blocks\Asset($app); 82 | }, 83 | 84 | 'registrar' => function (Illuminate\Support\Collection $app) { 85 | return new \TinyPixel\Blocks\Registrar($app); 86 | }, 87 | ], 88 | ]; 89 | -------------------------------------------------------------------------------- /src/Asset.php: -------------------------------------------------------------------------------- 1 | container = $container; 50 | } 51 | 52 | /** 53 | * Get asset name 54 | * 55 | * @return string 56 | */ 57 | public function getName(): string 58 | { 59 | return $this->name; 60 | } 61 | 62 | /** 63 | * Set asset name 64 | * 65 | * @param string 66 | * @return AssetInterface 67 | */ 68 | public function setName(string $name): AssetInterface 69 | { 70 | $this->name = $name; 71 | 72 | return $this; 73 | } 74 | 75 | /** 76 | * Get asset url 77 | * 78 | * @return string 79 | */ 80 | public function getUrl(): string 81 | { 82 | return $this->url; 83 | } 84 | 85 | /** 86 | * Set asset url 87 | * 88 | * @param string 89 | * @return AssetInterface 90 | */ 91 | public function setUrl(string $url): AssetInterface 92 | { 93 | $this->url = $this->container->get('project')['base_url'] . $this->container->get('project')['dist'] . '/' . $url; 94 | 95 | return $this; 96 | } 97 | 98 | /** 99 | * Get dependencies 100 | * 101 | * @return array 102 | */ 103 | public function getDependencies(): array 104 | { 105 | return $this->dependencies ?: []; 106 | } 107 | 108 | /** 109 | * Set dependencies 110 | * 111 | * @param array 112 | * @return AssetInterface 113 | */ 114 | public function setDependencies(array $dependencies): AssetInterface 115 | { 116 | $this->dependencies = $dependencies; 117 | 118 | return $this; 119 | } 120 | 121 | /** 122 | * Get version 123 | * 124 | * @return array 125 | */ 126 | public function getVersion() 127 | { 128 | return $this->version ?: null; 129 | } 130 | 131 | /** 132 | * Set version 133 | * 134 | * @param string 135 | * @return AssetInterface 136 | */ 137 | public function setVersion(string $version): AssetInterface 138 | { 139 | $this->version = $version; 140 | 141 | return $this; 142 | } 143 | 144 | /** 145 | * Get manifest. 146 | * 147 | * @return object; null if none 148 | */ 149 | public function getManifest() 150 | { 151 | return $this->manifest; 152 | } 153 | 154 | /** 155 | * Set manifest. 156 | * 157 | * @param string 158 | * @return AssetInterface 159 | */ 160 | public function setManifest(string $manifest): AssetInterface 161 | { 162 | $path = $this->container->get('project')['base_path'] . '/dist/' . $manifest; 163 | 164 | if (file_exists($path)) { 165 | $this->manifest = (object) require $path; 166 | } 167 | 168 | return $this; 169 | } 170 | } 171 | -------------------------------------------------------------------------------- /src/App.php: -------------------------------------------------------------------------------- 1 | makeContainer($config); 46 | $this->registerHooks(); 47 | } 48 | 49 | /** 50 | * 51 | */ 52 | public function makeContainer(string $configDir): void 53 | { 54 | $this->container = Collection::make( 55 | require_once $configDir . "/app.php" 56 | ); 57 | 58 | /** 59 | * Instantiate factory providers 60 | */ 61 | $this->collect('providers')->each( 62 | function ($factory, $name) { 63 | $this->container->put($name, $factory($this->container)); 64 | } 65 | ); 66 | 67 | /** 68 | * Instantiate views 69 | */ 70 | $this->container->put('views', 71 | $this->collect('views')->map(function (array $properties) { 72 | return $this->make('view') 73 | ->boot(new Fluent($properties)); 74 | })->toArray() 75 | ); 76 | 77 | /** 78 | * Instantiate blocks 79 | */ 80 | $this->container->put('blocks', 81 | $this->collect('blocks')->map(function (string $block) { 82 | $instance = new $block($this->container); 83 | 84 | if ($instance->viewKey) { 85 | $instance->setView( 86 | $this->get('views')[$instance->viewKey] 87 | ); 88 | } 89 | 90 | return $instance; 91 | }) 92 | ); 93 | } 94 | 95 | /** 96 | * Register hooks 97 | * 98 | * @uses \add_action 99 | * 100 | * @return void 101 | */ 102 | public function registerHooks(): void 103 | { 104 | add_action('init', function () { 105 | if ($this->collect('blocks')->isNotEmpty()) { 106 | $this->get('registrar')->register($this->container); 107 | } 108 | }); 109 | 110 | add_action('enqueue_block_editor_assets', function () { 111 | if ($this->collect('blocks')->isNotEmpty()) { 112 | $this->get('assets') 113 | ->enqueueEditorAssets($this->collect('blocks')); 114 | } 115 | }); 116 | 117 | add_action('wp_enqueue_scripts', function () { 118 | if ($this->collect('blocks')->isNotEmpty()) { 119 | $this->get('assets') 120 | ->enqueuePublicAssets($this->collect('blocks')); 121 | } 122 | }); 123 | 124 | $this->get('registrar')->register(); 125 | } 126 | 127 | /** 128 | * Get the collection of blocks 129 | * 130 | * @return Collection 131 | */ 132 | public function collect(string $key): Collection 133 | { 134 | return Collection::make($this->container->get($key)); 135 | } 136 | 137 | /** 138 | * Liberate a boi from the container 139 | */ 140 | public function get(string $key) 141 | { 142 | return $this->container->get($key); 143 | } 144 | 145 | /** 146 | * Get a service from the container 147 | * 148 | * @param string $key 149 | * @return mixed 150 | */ 151 | public function make(string $name) 152 | { 153 | $Service = $this->container->get('providers')[$name]; 154 | 155 | return $Service($this->container); 156 | } 157 | } 158 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # tiny-pixel/blocks 2 | 3 | Provides a backbone for building modular blocks with Blade templating support. 4 | 5 | This framework is under active development. 6 | 7 | ## What this is 8 | 9 | - A way to streamline and structure the registration of blocks 10 | - A way to streamline and structure the registration of block assets 11 | - A provider of Blade functionality and templating utilities for server-rendered, dynamic blocks. 12 | 13 | ## What this is not 14 | 15 | - A way of writing editor blocks without javascript 16 | 17 | ## Getting started 18 | 19 | Use `composer` to install the package to your project: 20 | 21 | ```sh 22 | composer require tiny-pixel/blocks 23 | ``` 24 | 25 | ## Usage 26 | 27 | See the demo directory in the repo for an example implementation. 28 | 29 | File structure: 30 | 31 | ```sh 32 | demo 33 | ├── config 34 | │   └── app.php # Plugin config 35 | ├── index.php # Plugin entrypoint 36 | ├── resources 37 | │   ├── assets # JS and CSS assets 38 | │ │ # Implementation is up to you 39 | │ │ 40 | │   └── views # Place blade templates here 41 | │      └── Demo # Should match block name 42 | │         └── block.blade.php # Entry template 43 | │      44 | └── src # Block classes 45 |   └── Demo.php # Match name of views & class 46 | ``` 47 | 48 | Somewhere in your plugin, hook into the `tinypixel/blocks/loaded` action. 49 | 50 | It passes you an instance of the library. Call `main` to kick everything off. 51 | You must pass the path to your config directory to `main`. 52 | 53 | ```php 54 | add_action('tinypixel/blocks/loaded', function ($app) { 55 | $configPath = realpath(__DIR__ . '/config'); 56 | $app->main($configPath); 57 | }); 58 | ``` 59 | 60 | In `config/app.php`, you only really need to do two things: 61 | 62 | 1. Add your blocks to the classes in the `blocks` key: 63 | 64 | ```php 65 | 'blocks' => [ 66 | \Foo\Demo::class, 67 | ], 68 | ``` 69 | 70 | 2. Change the `project.domain` key to match the namespace of your blocks. Not the PHP namespace, but the block namespace used in `register_block_type`. 71 | 72 | ```php 73 | 'project' => [ 74 | 'domain' => 'foo', 75 | 'base_path' => realpath(__DIR__ . '/../'), 76 | 'base_url' => plugins_url('/', __DIR__), 77 | 'dist' => 'dist', 78 | ], 79 | ``` 80 | 81 | You can modify the other settings as you see fit. They are largely self explanatory and control where caches are stored, where compiled assets are being stored, etc. One day this might even be documented! 82 | 83 | ## Block definitions 84 | 85 | By default, the library will look for block classes in `src/`. 86 | 87 | This classname should match the name of the block without the block namespace. For example, for a `foo/demo` namespace we will register the class as `Demo`. The namespace is set in `config.project.domain`, as mentioned above. 88 | 89 | Use the `setupAssets` method to register your block scripts and styles. 90 | 91 | In addition to the ones below you can use `$this->addPublicScript` and `$this->addPublicStyle` to register frontend scripts and styles. 92 | 93 | ```php 94 | addEditorStyle( 105 | $this->makeAsset('editor/css') 106 | ->setUrl('dist/styles/editor.css') 107 | ); 108 | 109 | $this->addEditorScript( 110 | $this->makeAsset('editor/js') 111 | ->setUrl('dist/scripts/editor.js') 112 | ); 113 | } 114 | } 115 | ``` 116 | 117 | Last step (other than actually writing the block JS, good luck!) is to implement the template. The default template path is `resources/views`. The block template should be named `block.blade.php`. It should be located in a directory named after the block name. 118 | 119 | Any block attributes are available in the template as `$attr`. These attributes are passed to the block as an object. 120 | 121 | In addition to the `$attr` object, you also have access to `$content`, which is a `string` of the block content. You also have access to a `$id` and `$className` variable, for convenience. 122 | 123 | The `$id` is a unique identifier for the block. You can use it for dynamically applying styles to the block, or calling JS functions. 124 | 125 | The `$className` is the class name of the block. This is based on the block name and follows the following naming convetion: `wp-block-{namespace}-{name}`. 126 | 127 | ## Author notes 128 | 129 | © 2019 Tiny Pixel Collective 130 | 131 | [Licensed MIT](https://github.com/pixelcollective/tree/master/LICENSE.md). 132 | -------------------------------------------------------------------------------- /src/View.php: -------------------------------------------------------------------------------- 1 | container = $container; 43 | } 44 | 45 | /** 46 | * Boot view implementation 47 | * 48 | * @param Collection container instance 49 | * @return void 50 | */ 51 | public function boot(Object $config): ViewInterface 52 | { 53 | $this->setBaseDir($config->dir . '/'); 54 | $this->setCacheDir($config->cache . '/'); 55 | $this->setDebug($config->debug); 56 | 57 | $this->blade = new BladeOne( 58 | ...$this->getConfig()->toArray() 59 | ); 60 | 61 | return $this; 62 | } 63 | 64 | /** 65 | * Render a view. 66 | * 67 | * @param BlockInterface block instance 68 | * @return void 69 | */ 70 | public function render(BlockInterface $block): void 71 | { 72 | register_block_type($block->withDomain($block->getName()), [ 73 | 'render_callback' => function ($attr, $innerContent) use ($block) { 74 | return $this->blade->run( 75 | $block->getTemplate(), 76 | $block->with([ 77 | 'id' => uniqid(), 78 | 'classname' => $block->getClassName(), 79 | 'attr' => $this->transform($attr), 80 | 'content' => $innerContent, 81 | ]) 82 | ); 83 | } 84 | ]); 85 | } 86 | 87 | /** 88 | * Mutate template variables prior to rendering view. 89 | * 90 | * @param array $attr 91 | */ 92 | public function transform($attr) { 93 | $mutate = function($attr) { 94 | if(is_string($attr)) { 95 | return $attr; 96 | } 97 | 98 | if (is_array($attr)) { 99 | return (object) $this->transform($attr); 100 | } 101 | 102 | return $attr; 103 | }; 104 | 105 | return (object) Collection::make($attr)->map( 106 | $mutate 107 | )->toArray(); 108 | } 109 | 110 | /** 111 | * Get view configuration as an array. 112 | * 113 | * @return array bladeone configuration 114 | */ 115 | public function getConfig(): Fluent 116 | { 117 | return new Fluent([ 118 | $this->getBaseDir(), 119 | $this->getCacheDir(), 120 | $this->getDebug() 121 | ]); 122 | } 123 | 124 | /** 125 | * Get view base directory. 126 | * 127 | * @return string 128 | */ 129 | public function getBaseDir(): string 130 | { 131 | return $this->baseDir; 132 | } 133 | 134 | /** 135 | * Set view base directory. 136 | * 137 | * @param string 138 | * @return void 139 | */ 140 | public function setBaseDir(string $baseDir): void 141 | { 142 | $this->baseDir = $baseDir; 143 | } 144 | 145 | /** 146 | * Get view cache directory. 147 | * 148 | * @return string 149 | */ 150 | public function getCacheDir(): string 151 | { 152 | return $this->cacheDir; 153 | } 154 | 155 | /** 156 | * Set view cache directory. 157 | * 158 | * @param string 159 | * @return void 160 | */ 161 | public function setCacheDir(string $cacheDir): void 162 | { 163 | $this->cacheDir = $cacheDir; 164 | } 165 | 166 | /** 167 | * Get view debug mode. 168 | * 169 | * @return int debug constant 170 | */ 171 | public function getDebug(): int 172 | { 173 | return $this->debug; 174 | } 175 | 176 | /** 177 | * Set view debug mode. 178 | * 179 | * @param int debug constant 180 | * @return void 181 | */ 182 | public function setDebug(int $debug): void 183 | { 184 | $this->debug = $debug; 185 | } 186 | } 187 | -------------------------------------------------------------------------------- /src/Support/Fluent.php: -------------------------------------------------------------------------------- 1 | $value) { 28 | $this->attributes[$key] = $value; 29 | } 30 | } 31 | 32 | /** 33 | * Get an attribute from the fluent instance. 34 | * 35 | * @param string $key 36 | * @param mixed $default 37 | * @return mixed 38 | */ 39 | public function get($key, $default = null) 40 | { 41 | if (array_key_exists($key, $this->attributes)) { 42 | return $this->attributes[$key]; 43 | } 44 | 45 | return value($default); 46 | } 47 | 48 | /** 49 | * Get the attributes from the fluent instance. 50 | * 51 | * @return array 52 | */ 53 | public function getAttributes() 54 | { 55 | return $this->attributes; 56 | } 57 | 58 | /** 59 | * Convert the fluent instance to an array. 60 | * 61 | * @return array 62 | */ 63 | public function toArray() 64 | { 65 | return $this->attributes; 66 | } 67 | 68 | /** 69 | * Convert the object into something JSON serializable. 70 | * 71 | * @return array 72 | */ 73 | public function jsonSerialize() 74 | { 75 | return $this->toArray(); 76 | } 77 | 78 | /** 79 | * Convert the fluent instance to JSON. 80 | * 81 | * @param int $options 82 | * @return string 83 | */ 84 | public function toJson($options = 0) 85 | { 86 | return json_encode($this->jsonSerialize(), $options); 87 | } 88 | 89 | /** 90 | * Determine if the given offset exists. 91 | * 92 | * @param string $offset 93 | * @return bool 94 | */ 95 | public function offsetExists($offset) 96 | { 97 | return isset($this->attributes[$offset]); 98 | } 99 | 100 | /** 101 | * Get the value for a given offset. 102 | * 103 | * @param string $offset 104 | * @return mixed 105 | */ 106 | public function offsetGet($offset) 107 | { 108 | return $this->get($offset); 109 | } 110 | 111 | /** 112 | * Set the value at the given offset. 113 | * 114 | * @param string $offset 115 | * @param mixed $value 116 | * @return void 117 | */ 118 | public function offsetSet($offset, $value) 119 | { 120 | $this->attributes[$offset] = $value; 121 | } 122 | 123 | /** 124 | * Unset the value at the given offset. 125 | * 126 | * @param string $offset 127 | * @return void 128 | */ 129 | public function offsetUnset($offset) 130 | { 131 | unset($this->attributes[$offset]); 132 | } 133 | 134 | /** 135 | * Handle dynamic calls to the fluent instance to set attributes. 136 | * 137 | * @param string $method 138 | * @param array $parameters 139 | * @return $this 140 | */ 141 | public function __call($method, $parameters) 142 | { 143 | $this->attributes[$method] = count($parameters) > 0 ? $parameters[0] : true; 144 | 145 | return $this; 146 | } 147 | 148 | /** 149 | * Dynamically retrieve the value of an attribute. 150 | * 151 | * @param string $key 152 | * @return mixed 153 | */ 154 | public function __get($key) 155 | { 156 | return $this->get($key); 157 | } 158 | 159 | /** 160 | * Dynamically set the value of an attribute. 161 | * 162 | * @param string $key 163 | * @param mixed $value 164 | * @return void 165 | */ 166 | public function __set($key, $value) 167 | { 168 | $this->offsetSet($key, $value); 169 | } 170 | 171 | /** 172 | * Dynamically check if an attribute is set. 173 | * 174 | * @param string $key 175 | * @return bool 176 | */ 177 | public function __isset($key) 178 | { 179 | return $this->offsetExists($key); 180 | } 181 | 182 | /** 183 | * Dynamically unset an attribute. 184 | * 185 | * @param string $key 186 | * @return void 187 | */ 188 | public function __unset($key) 189 | { 190 | $this->offsetUnset($key); 191 | } 192 | } 193 | -------------------------------------------------------------------------------- /src/Block.php: -------------------------------------------------------------------------------- 1 | container = $container; 87 | 88 | $this->domain = $this->container->get('project')['domain']; 89 | 90 | $this->setName($this->makeName()); 91 | 92 | $this->setClassName( 93 | 'wp-block-' . str_replace('/', '-', $this->withDomain($this->name))); 94 | 95 | if (!isset($this->template)) { 96 | $this->setTemplate($this->name . '/block.blade.php'); 97 | } 98 | 99 | Collection::make($this->assetTypes)->each( 100 | function ($asset) { 101 | $this->{$asset} = Collection::make($this->{$asset}); 102 | } 103 | ); 104 | 105 | $this->build(); 106 | } 107 | 108 | /** 109 | * Make name 110 | */ 111 | public function makeName() { 112 | return strtolower( 113 | preg_replace('/(?class()) 114 | ); 115 | } 116 | 117 | /** 118 | * Class 119 | */ 120 | public function class() { 121 | $classname = get_class($this); 122 | $parts = explode('\\', $classname); 123 | 124 | return array_pop($parts); 125 | } 126 | 127 | /** 128 | * Prepend domain 129 | */ 130 | public function withDomain(string $input): string { 131 | return $this->domain . '/' . $input; 132 | } 133 | 134 | /** 135 | * Space to enqueue assets, etc. 136 | * 137 | * @return void 138 | */ 139 | public function build(): void 140 | { 141 | return; 142 | } 143 | 144 | /** 145 | * Make asset instance 146 | * 147 | * @return Asset 148 | */ 149 | public function makeAsset(string $ident): AssetInterface 150 | { 151 | $assetObj = $this->container->get('providers')['asset']($this->container); 152 | $assetObj->setName($this->withDomain($this->name . '/' . $ident)); 153 | 154 | return $assetObj; 155 | } 156 | 157 | /** 158 | * Data to be passed to block view template. 159 | * 160 | * @param array 161 | * @return array 162 | */ 163 | public function with(array $data): array 164 | { 165 | return $data; 166 | } 167 | 168 | /** 169 | * Get block name. 170 | * 171 | * @return string 172 | */ 173 | public function getName(): string 174 | { 175 | return $this->name; 176 | } 177 | 178 | /** 179 | * Set block name. 180 | * 181 | * @param string name 182 | * @return void 183 | */ 184 | public function setName(string $name): BlockInterface 185 | { 186 | $this->name = $name; 187 | 188 | return $this; 189 | } 190 | 191 | /** 192 | * Set view instance 193 | * 194 | * @param ViewInterface 195 | * @return void 196 | */ 197 | public function setViewKey(string $key): void 198 | { 199 | $this->viewKey = $key; 200 | } 201 | 202 | /** 203 | * Get view instance 204 | * 205 | * @return string 206 | */ 207 | public function getViewKey(): string 208 | { 209 | return $this->viewKey; 210 | } 211 | 212 | /** 213 | * Set view instance 214 | * 215 | * @param ViewInterface 216 | * @return void 217 | */ 218 | public function setView(ViewInterface $view): BlockInterface 219 | { 220 | $this->view = $view; 221 | 222 | return $this; 223 | } 224 | 225 | /** 226 | * Get view instance 227 | * 228 | * @return ViewInterface 229 | */ 230 | public function getView(): ViewInterface 231 | { 232 | return $this->view; 233 | } 234 | 235 | /** 236 | * Get blade template. 237 | * 238 | * @return string 239 | */ 240 | public function getTemplate() 241 | { 242 | return $this->template; 243 | } 244 | 245 | /** 246 | * Set template 247 | * 248 | * @param string $template 249 | * @return BlockInterface 250 | */ 251 | public function setTemplate(string $template): BlockInterface 252 | { 253 | $this->template = $template; 254 | 255 | return $this; 256 | } 257 | 258 | /** 259 | * Get data 260 | * 261 | * @return string block data 262 | */ 263 | public function getData() 264 | { 265 | return $this->data ?: []; 266 | } 267 | 268 | /** 269 | * Set view 270 | * 271 | * @param string block data 272 | * @return void 273 | */ 274 | public function setData(array $data): BlockInterface 275 | { 276 | $this->data = $data; 277 | 278 | return $this; 279 | } 280 | 281 | /** 282 | * Get editor scripts 283 | * 284 | * @return Collection 285 | */ 286 | public function getEditorScripts(): Collection 287 | { 288 | return $this->editorScripts; 289 | } 290 | 291 | /** 292 | * Add editor script 293 | * 294 | * @param AssetInterface 295 | * @return void 296 | */ 297 | public function addEditorScript(AssetInterface $editorScript): void 298 | { 299 | $this->editorScripts->put( 300 | $editorScript->getName(), 301 | $editorScript 302 | ); 303 | } 304 | 305 | /** 306 | * Set editor scripts 307 | * 308 | * @param Collection 309 | * @return void 310 | */ 311 | public function setEditorScripts(Collection $editorScripts) 312 | { 313 | $this->editorScripts = $editorScripts; 314 | } 315 | 316 | /** 317 | * Get editor styles 318 | * 319 | * @return Collection 320 | */ 321 | public function getEditorStyles(): Collection 322 | { 323 | return $this->editorStyles; 324 | } 325 | 326 | /** 327 | * Add editor styles 328 | * 329 | * @param AssetInterface 330 | * @return void 331 | */ 332 | public function addEditorStyle(AssetInterface $editorStyle): void 333 | { 334 | $this->editorStyles->put($editorStyle->getName(), $editorStyle); 335 | } 336 | 337 | /** 338 | * Add public styles 339 | * 340 | * @param AssetInterface 341 | * @return void 342 | */ 343 | public function addPublicStyle(AssetInterface $publicStyle): void 344 | { 345 | $this->publicStyles->put($publicStyle->getName(), $publicStyle); 346 | } 347 | 348 | /** 349 | * Set editor styles 350 | * 351 | * @param Collection 352 | * @return void 353 | */ 354 | public function setEditorStyles(Collection $editorStyles) 355 | { 356 | $this->editorStyles = $editorStyles; 357 | } 358 | 359 | /** 360 | * Get classname 361 | * 362 | * @return string 363 | */ 364 | public function getClassName(): string 365 | { 366 | return $this->className ?: ''; 367 | } 368 | 369 | /** 370 | * Set classname 371 | * 372 | * @param string 373 | * @return string 374 | */ 375 | public function setClassName(string $className): BlockInterface 376 | { 377 | $this->className = $className; 378 | 379 | return $this; 380 | } 381 | } 382 | -------------------------------------------------------------------------------- /composer.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_readme": [ 3 | "This file locks the dependencies of your project to a known state", 4 | "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", 5 | "This file is @generated automatically" 6 | ], 7 | "content-hash": "f95040a7ab6edb7fa26f31257b97af89", 8 | "packages": [ 9 | { 10 | "name": "composer/installers", 11 | "version": "v2.0.0", 12 | "source": { 13 | "type": "git", 14 | "url": "https://github.com/composer/installers.git", 15 | "reference": "5a546a8cc4607f38cfbd8e20b3de234e45b2110f" 16 | }, 17 | "dist": { 18 | "type": "zip", 19 | "url": "https://api.github.com/repos/composer/installers/zipball/5a546a8cc4607f38cfbd8e20b3de234e45b2110f", 20 | "reference": "5a546a8cc4607f38cfbd8e20b3de234e45b2110f", 21 | "shasum": "" 22 | }, 23 | "require": { 24 | "composer-plugin-api": "^1.0 || ^2.0", 25 | "php": "^7.2 || ^8.0" 26 | }, 27 | "require-dev": { 28 | "composer/composer": "1.6.* || ^2.0", 29 | "composer/semver": "^1 || ^3", 30 | "phpstan/phpstan": "^0.12.55", 31 | "phpstan/phpstan-phpunit": "^0.12.16", 32 | "symfony/phpunit-bridge": "^5.3", 33 | "symfony/process": "^5" 34 | }, 35 | "type": "composer-plugin", 36 | "extra": { 37 | "class": "Composer\\Installers\\Plugin", 38 | "branch-alias": { 39 | "dev-main": "2.x-dev" 40 | } 41 | }, 42 | "autoload": { 43 | "psr-4": { 44 | "Composer\\Installers\\": "src/Composer/Installers" 45 | } 46 | }, 47 | "notification-url": "https://packagist.org/downloads/", 48 | "license": [ 49 | "MIT" 50 | ], 51 | "authors": [ 52 | { 53 | "name": "Kyle Robinson Young", 54 | "email": "kyle@dontkry.com", 55 | "homepage": "https://github.com/shama" 56 | } 57 | ], 58 | "description": "A multi-framework Composer library installer", 59 | "homepage": "https://composer.github.io/installers/", 60 | "keywords": [ 61 | "Dolibarr", 62 | "Eliasis", 63 | "Hurad", 64 | "ImageCMS", 65 | "Kanboard", 66 | "Lan Management System", 67 | "MODX Evo", 68 | "MantisBT", 69 | "Mautic", 70 | "Maya", 71 | "OXID", 72 | "Plentymarkets", 73 | "Porto", 74 | "RadPHP", 75 | "SMF", 76 | "Starbug", 77 | "Thelia", 78 | "Whmcs", 79 | "WolfCMS", 80 | "agl", 81 | "annotatecms", 82 | "attogram", 83 | "bitrix", 84 | "cakephp", 85 | "chef", 86 | "cockpit", 87 | "codeigniter", 88 | "concrete5", 89 | "croogo", 90 | "dokuwiki", 91 | "drupal", 92 | "eZ Platform", 93 | "elgg", 94 | "expressionengine", 95 | "fuelphp", 96 | "grav", 97 | "installer", 98 | "itop", 99 | "known", 100 | "kohana", 101 | "laravel", 102 | "lavalite", 103 | "lithium", 104 | "magento", 105 | "majima", 106 | "mako", 107 | "mediawiki", 108 | "miaoxing", 109 | "modulework", 110 | "modx", 111 | "moodle", 112 | "osclass", 113 | "pantheon", 114 | "phpbb", 115 | "piwik", 116 | "ppi", 117 | "processwire", 118 | "puppet", 119 | "pxcms", 120 | "reindex", 121 | "roundcube", 122 | "shopware", 123 | "silverstripe", 124 | "sydes", 125 | "sylius", 126 | "tastyigniter", 127 | "wordpress", 128 | "yawik", 129 | "zend", 130 | "zikula" 131 | ], 132 | "support": { 133 | "issues": "https://github.com/composer/installers/issues", 134 | "source": "https://github.com/composer/installers/tree/v2.0.0" 135 | }, 136 | "funding": [ 137 | { 138 | "url": "https://packagist.com", 139 | "type": "custom" 140 | }, 141 | { 142 | "url": "https://github.com/composer", 143 | "type": "github" 144 | }, 145 | { 146 | "url": "https://tidelift.com/funding/github/packagist/composer/composer", 147 | "type": "tidelift" 148 | } 149 | ], 150 | "time": "2021-08-04T13:56:36+00:00" 151 | }, 152 | { 153 | "name": "eftec/bladeone", 154 | "version": "3.52", 155 | "source": { 156 | "type": "git", 157 | "url": "https://github.com/EFTEC/BladeOne.git", 158 | "reference": "a19bf66917de0b29836983db87a455a4f6e32148" 159 | }, 160 | "dist": { 161 | "type": "zip", 162 | "url": "https://api.github.com/repos/EFTEC/BladeOne/zipball/a19bf66917de0b29836983db87a455a4f6e32148", 163 | "reference": "a19bf66917de0b29836983db87a455a4f6e32148", 164 | "shasum": "" 165 | }, 166 | "require": { 167 | "ext-json": "*", 168 | "php": ">=5.6" 169 | }, 170 | "require-dev": { 171 | "friendsofphp/php-cs-fixer": "^2.16.1", 172 | "phpunit/phpunit": "^5.7", 173 | "squizlabs/php_codesniffer": "^3.5.4" 174 | }, 175 | "suggest": { 176 | "eftec/bladeonehtml": "Extension to create forms", 177 | "ext-mbstring": "This extension is used if it's active" 178 | }, 179 | "type": "library", 180 | "autoload": { 181 | "psr-4": { 182 | "eftec\\bladeone\\": "lib/" 183 | } 184 | }, 185 | "notification-url": "https://packagist.org/downloads/", 186 | "license": [ 187 | "MIT" 188 | ], 189 | "authors": [ 190 | { 191 | "name": "Jorge Patricio Castro Castillo", 192 | "email": "jcastro@eftec.cl" 193 | } 194 | ], 195 | "description": "The standalone version Blade Template Engine from Laravel in a single php file", 196 | "homepage": "https://github.com/EFTEC/BladeOne", 197 | "keywords": [ 198 | "blade", 199 | "php", 200 | "template", 201 | "templating", 202 | "view" 203 | ], 204 | "support": { 205 | "issues": "https://github.com/EFTEC/BladeOne/issues", 206 | "source": "https://github.com/EFTEC/BladeOne/tree/3.52" 207 | }, 208 | "time": "2021-04-17T13:49:01+00:00" 209 | }, 210 | { 211 | "name": "illuminate/collections", 212 | "version": "v8.61.0", 213 | "source": { 214 | "type": "git", 215 | "url": "https://github.com/illuminate/collections.git", 216 | "reference": "18fa841df912ec56849351dd6ca8928e8a98b69d" 217 | }, 218 | "dist": { 219 | "type": "zip", 220 | "url": "https://api.github.com/repos/illuminate/collections/zipball/18fa841df912ec56849351dd6ca8928e8a98b69d", 221 | "reference": "18fa841df912ec56849351dd6ca8928e8a98b69d", 222 | "shasum": "" 223 | }, 224 | "require": { 225 | "illuminate/contracts": "^8.0", 226 | "illuminate/macroable": "^8.0", 227 | "php": "^7.3|^8.0" 228 | }, 229 | "suggest": { 230 | "symfony/var-dumper": "Required to use the dump method (^5.1.4)." 231 | }, 232 | "type": "library", 233 | "extra": { 234 | "branch-alias": { 235 | "dev-master": "8.x-dev" 236 | } 237 | }, 238 | "autoload": { 239 | "psr-4": { 240 | "Illuminate\\Support\\": "" 241 | }, 242 | "files": [ 243 | "helpers.php" 244 | ] 245 | }, 246 | "notification-url": "https://packagist.org/downloads/", 247 | "license": [ 248 | "MIT" 249 | ], 250 | "authors": [ 251 | { 252 | "name": "Taylor Otwell", 253 | "email": "taylor@laravel.com" 254 | } 255 | ], 256 | "description": "The Illuminate Collections package.", 257 | "homepage": "https://laravel.com", 258 | "support": { 259 | "issues": "https://github.com/laravel/framework/issues", 260 | "source": "https://github.com/laravel/framework" 261 | }, 262 | "time": "2021-09-08T12:48:16+00:00" 263 | }, 264 | { 265 | "name": "illuminate/contracts", 266 | "version": "v8.61.0", 267 | "source": { 268 | "type": "git", 269 | "url": "https://github.com/illuminate/contracts.git", 270 | "reference": "ab4bb4ec3b36905ccf972c84f9aaa2bdd1153913" 271 | }, 272 | "dist": { 273 | "type": "zip", 274 | "url": "https://api.github.com/repos/illuminate/contracts/zipball/ab4bb4ec3b36905ccf972c84f9aaa2bdd1153913", 275 | "reference": "ab4bb4ec3b36905ccf972c84f9aaa2bdd1153913", 276 | "shasum": "" 277 | }, 278 | "require": { 279 | "php": "^7.3|^8.0", 280 | "psr/container": "^1.0", 281 | "psr/simple-cache": "^1.0" 282 | }, 283 | "type": "library", 284 | "extra": { 285 | "branch-alias": { 286 | "dev-master": "8.x-dev" 287 | } 288 | }, 289 | "autoload": { 290 | "psr-4": { 291 | "Illuminate\\Contracts\\": "" 292 | } 293 | }, 294 | "notification-url": "https://packagist.org/downloads/", 295 | "license": [ 296 | "MIT" 297 | ], 298 | "authors": [ 299 | { 300 | "name": "Taylor Otwell", 301 | "email": "taylor@laravel.com" 302 | } 303 | ], 304 | "description": "The Illuminate Contracts package.", 305 | "homepage": "https://laravel.com", 306 | "support": { 307 | "issues": "https://github.com/laravel/framework/issues", 308 | "source": "https://github.com/laravel/framework" 309 | }, 310 | "time": "2021-09-08T12:09:40+00:00" 311 | }, 312 | { 313 | "name": "illuminate/macroable", 314 | "version": "v8.61.0", 315 | "source": { 316 | "type": "git", 317 | "url": "https://github.com/illuminate/macroable.git", 318 | "reference": "300aa13c086f25116b5f3cde3ca54ff5c822fb05" 319 | }, 320 | "dist": { 321 | "type": "zip", 322 | "url": "https://api.github.com/repos/illuminate/macroable/zipball/300aa13c086f25116b5f3cde3ca54ff5c822fb05", 323 | "reference": "300aa13c086f25116b5f3cde3ca54ff5c822fb05", 324 | "shasum": "" 325 | }, 326 | "require": { 327 | "php": "^7.3|^8.0" 328 | }, 329 | "type": "library", 330 | "extra": { 331 | "branch-alias": { 332 | "dev-master": "8.x-dev" 333 | } 334 | }, 335 | "autoload": { 336 | "psr-4": { 337 | "Illuminate\\Support\\": "" 338 | } 339 | }, 340 | "notification-url": "https://packagist.org/downloads/", 341 | "license": [ 342 | "MIT" 343 | ], 344 | "authors": [ 345 | { 346 | "name": "Taylor Otwell", 347 | "email": "taylor@laravel.com" 348 | } 349 | ], 350 | "description": "The Illuminate Macroable package.", 351 | "homepage": "https://laravel.com", 352 | "support": { 353 | "issues": "https://github.com/laravel/framework/issues", 354 | "source": "https://github.com/laravel/framework" 355 | }, 356 | "time": "2020-10-27T15:20:30+00:00" 357 | }, 358 | { 359 | "name": "opis/closure", 360 | "version": "3.6.2", 361 | "source": { 362 | "type": "git", 363 | "url": "https://github.com/opis/closure.git", 364 | "reference": "06e2ebd25f2869e54a306dda991f7db58066f7f6" 365 | }, 366 | "dist": { 367 | "type": "zip", 368 | "url": "https://api.github.com/repos/opis/closure/zipball/06e2ebd25f2869e54a306dda991f7db58066f7f6", 369 | "reference": "06e2ebd25f2869e54a306dda991f7db58066f7f6", 370 | "shasum": "" 371 | }, 372 | "require": { 373 | "php": "^5.4 || ^7.0 || ^8.0" 374 | }, 375 | "require-dev": { 376 | "jeremeamia/superclosure": "^2.0", 377 | "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0" 378 | }, 379 | "type": "library", 380 | "extra": { 381 | "branch-alias": { 382 | "dev-master": "3.6.x-dev" 383 | } 384 | }, 385 | "autoload": { 386 | "psr-4": { 387 | "Opis\\Closure\\": "src/" 388 | }, 389 | "files": [ 390 | "functions.php" 391 | ] 392 | }, 393 | "notification-url": "https://packagist.org/downloads/", 394 | "license": [ 395 | "MIT" 396 | ], 397 | "authors": [ 398 | { 399 | "name": "Marius Sarca", 400 | "email": "marius.sarca@gmail.com" 401 | }, 402 | { 403 | "name": "Sorin Sarca", 404 | "email": "sarca_sorin@hotmail.com" 405 | } 406 | ], 407 | "description": "A library that can be used to serialize closures (anonymous functions) and arbitrary objects.", 408 | "homepage": "https://opis.io/closure", 409 | "keywords": [ 410 | "anonymous functions", 411 | "closure", 412 | "function", 413 | "serializable", 414 | "serialization", 415 | "serialize" 416 | ], 417 | "support": { 418 | "issues": "https://github.com/opis/closure/issues", 419 | "source": "https://github.com/opis/closure/tree/3.6.2" 420 | }, 421 | "time": "2021-04-09T13:42:10+00:00" 422 | }, 423 | { 424 | "name": "php-di/invoker", 425 | "version": "2.3.2", 426 | "source": { 427 | "type": "git", 428 | "url": "https://github.com/PHP-DI/Invoker.git", 429 | "reference": "5214cbe5aad066022cd845dbf313f0e47aed928f" 430 | }, 431 | "dist": { 432 | "type": "zip", 433 | "url": "https://api.github.com/repos/PHP-DI/Invoker/zipball/5214cbe5aad066022cd845dbf313f0e47aed928f", 434 | "reference": "5214cbe5aad066022cd845dbf313f0e47aed928f", 435 | "shasum": "" 436 | }, 437 | "require": { 438 | "php": ">=7.3", 439 | "psr/container": "^1.0|^2.0" 440 | }, 441 | "require-dev": { 442 | "athletic/athletic": "~0.1.8", 443 | "mnapoli/hard-mode": "~0.3.0", 444 | "phpunit/phpunit": "^9.0" 445 | }, 446 | "type": "library", 447 | "autoload": { 448 | "psr-4": { 449 | "Invoker\\": "src/" 450 | } 451 | }, 452 | "notification-url": "https://packagist.org/downloads/", 453 | "license": [ 454 | "MIT" 455 | ], 456 | "description": "Generic and extensible callable invoker", 457 | "homepage": "https://github.com/PHP-DI/Invoker", 458 | "keywords": [ 459 | "callable", 460 | "dependency", 461 | "dependency-injection", 462 | "injection", 463 | "invoke", 464 | "invoker" 465 | ], 466 | "support": { 467 | "issues": "https://github.com/PHP-DI/Invoker/issues", 468 | "source": "https://github.com/PHP-DI/Invoker/tree/2.3.2" 469 | }, 470 | "funding": [ 471 | { 472 | "url": "https://github.com/mnapoli", 473 | "type": "github" 474 | } 475 | ], 476 | "time": "2021-07-30T15:05:32+00:00" 477 | }, 478 | { 479 | "name": "php-di/php-di", 480 | "version": "6.3.5", 481 | "source": { 482 | "type": "git", 483 | "url": "https://github.com/PHP-DI/PHP-DI.git", 484 | "reference": "b8126d066ce144765300ee0ab040c1ed6c9ef588" 485 | }, 486 | "dist": { 487 | "type": "zip", 488 | "url": "https://api.github.com/repos/PHP-DI/PHP-DI/zipball/b8126d066ce144765300ee0ab040c1ed6c9ef588", 489 | "reference": "b8126d066ce144765300ee0ab040c1ed6c9ef588", 490 | "shasum": "" 491 | }, 492 | "require": { 493 | "opis/closure": "^3.5.5", 494 | "php": ">=7.2.0", 495 | "php-di/invoker": "^2.0", 496 | "php-di/phpdoc-reader": "^2.0.1", 497 | "psr/container": "^1.0" 498 | }, 499 | "provide": { 500 | "psr/container-implementation": "^1.0" 501 | }, 502 | "require-dev": { 503 | "doctrine/annotations": "~1.2", 504 | "friendsofphp/php-cs-fixer": "^2.4", 505 | "mnapoli/phpunit-easymock": "^1.2", 506 | "ocramius/proxy-manager": "^2.0.2", 507 | "phpstan/phpstan": "^0.12", 508 | "phpunit/phpunit": "^8.5|^9.0" 509 | }, 510 | "suggest": { 511 | "doctrine/annotations": "Install it if you want to use annotations (version ~1.2)", 512 | "ocramius/proxy-manager": "Install it if you want to use lazy injection (version ~2.0)" 513 | }, 514 | "type": "library", 515 | "autoload": { 516 | "psr-4": { 517 | "DI\\": "src/" 518 | }, 519 | "files": [ 520 | "src/functions.php" 521 | ] 522 | }, 523 | "notification-url": "https://packagist.org/downloads/", 524 | "license": [ 525 | "MIT" 526 | ], 527 | "description": "The dependency injection container for humans", 528 | "homepage": "https://php-di.org/", 529 | "keywords": [ 530 | "PSR-11", 531 | "container", 532 | "container-interop", 533 | "dependency injection", 534 | "di", 535 | "ioc", 536 | "psr11" 537 | ], 538 | "support": { 539 | "issues": "https://github.com/PHP-DI/PHP-DI/issues", 540 | "source": "https://github.com/PHP-DI/PHP-DI/tree/6.3.5" 541 | }, 542 | "funding": [ 543 | { 544 | "url": "https://github.com/mnapoli", 545 | "type": "github" 546 | }, 547 | { 548 | "url": "https://tidelift.com/funding/github/packagist/php-di/php-di", 549 | "type": "tidelift" 550 | } 551 | ], 552 | "time": "2021-09-02T09:49:58+00:00" 553 | }, 554 | { 555 | "name": "php-di/phpdoc-reader", 556 | "version": "2.2.1", 557 | "source": { 558 | "type": "git", 559 | "url": "https://github.com/PHP-DI/PhpDocReader.git", 560 | "reference": "66daff34cbd2627740ffec9469ffbac9f8c8185c" 561 | }, 562 | "dist": { 563 | "type": "zip", 564 | "url": "https://api.github.com/repos/PHP-DI/PhpDocReader/zipball/66daff34cbd2627740ffec9469ffbac9f8c8185c", 565 | "reference": "66daff34cbd2627740ffec9469ffbac9f8c8185c", 566 | "shasum": "" 567 | }, 568 | "require": { 569 | "php": ">=7.2.0" 570 | }, 571 | "require-dev": { 572 | "mnapoli/hard-mode": "~0.3.0", 573 | "phpunit/phpunit": "^8.5|^9.0" 574 | }, 575 | "type": "library", 576 | "autoload": { 577 | "psr-4": { 578 | "PhpDocReader\\": "src/PhpDocReader" 579 | } 580 | }, 581 | "notification-url": "https://packagist.org/downloads/", 582 | "license": [ 583 | "MIT" 584 | ], 585 | "description": "PhpDocReader parses @var and @param values in PHP docblocks (supports namespaced class names with the same resolution rules as PHP)", 586 | "keywords": [ 587 | "phpdoc", 588 | "reflection" 589 | ], 590 | "support": { 591 | "issues": "https://github.com/PHP-DI/PhpDocReader/issues", 592 | "source": "https://github.com/PHP-DI/PhpDocReader/tree/2.2.1" 593 | }, 594 | "time": "2020-10-12T12:39:22+00:00" 595 | }, 596 | { 597 | "name": "psr/container", 598 | "version": "1.1.1", 599 | "source": { 600 | "type": "git", 601 | "url": "https://github.com/php-fig/container.git", 602 | "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" 603 | }, 604 | "dist": { 605 | "type": "zip", 606 | "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", 607 | "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", 608 | "shasum": "" 609 | }, 610 | "require": { 611 | "php": ">=7.2.0" 612 | }, 613 | "type": "library", 614 | "autoload": { 615 | "psr-4": { 616 | "Psr\\Container\\": "src/" 617 | } 618 | }, 619 | "notification-url": "https://packagist.org/downloads/", 620 | "license": [ 621 | "MIT" 622 | ], 623 | "authors": [ 624 | { 625 | "name": "PHP-FIG", 626 | "homepage": "https://www.php-fig.org/" 627 | } 628 | ], 629 | "description": "Common Container Interface (PHP FIG PSR-11)", 630 | "homepage": "https://github.com/php-fig/container", 631 | "keywords": [ 632 | "PSR-11", 633 | "container", 634 | "container-interface", 635 | "container-interop", 636 | "psr" 637 | ], 638 | "support": { 639 | "issues": "https://github.com/php-fig/container/issues", 640 | "source": "https://github.com/php-fig/container/tree/1.1.1" 641 | }, 642 | "time": "2021-03-05T17:36:06+00:00" 643 | }, 644 | { 645 | "name": "psr/simple-cache", 646 | "version": "1.0.1", 647 | "source": { 648 | "type": "git", 649 | "url": "https://github.com/php-fig/simple-cache.git", 650 | "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" 651 | }, 652 | "dist": { 653 | "type": "zip", 654 | "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", 655 | "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", 656 | "shasum": "" 657 | }, 658 | "require": { 659 | "php": ">=5.3.0" 660 | }, 661 | "type": "library", 662 | "extra": { 663 | "branch-alias": { 664 | "dev-master": "1.0.x-dev" 665 | } 666 | }, 667 | "autoload": { 668 | "psr-4": { 669 | "Psr\\SimpleCache\\": "src/" 670 | } 671 | }, 672 | "notification-url": "https://packagist.org/downloads/", 673 | "license": [ 674 | "MIT" 675 | ], 676 | "authors": [ 677 | { 678 | "name": "PHP-FIG", 679 | "homepage": "http://www.php-fig.org/" 680 | } 681 | ], 682 | "description": "Common interfaces for simple caching", 683 | "keywords": [ 684 | "cache", 685 | "caching", 686 | "psr", 687 | "psr-16", 688 | "simple-cache" 689 | ], 690 | "support": { 691 | "source": "https://github.com/php-fig/simple-cache/tree/master" 692 | }, 693 | "time": "2017-10-23T01:57:42+00:00" 694 | } 695 | ], 696 | "packages-dev": [ 697 | { 698 | "name": "roots/wordpress", 699 | "version": "dev-master", 700 | "source": { 701 | "type": "git", 702 | "url": "https://github.com/WordPress/WordPress.git", 703 | "reference": "5.8.1" 704 | }, 705 | "dist": { 706 | "type": "zip", 707 | "url": "https://api.github.com/repos/WordPress/WordPress/zipball/refs/tags/5.8.1" 708 | }, 709 | "require": { 710 | "php": ">=5.3.2", 711 | "roots/wordpress-core-installer": ">=1.0.0" 712 | }, 713 | "type": "wordpress-core", 714 | "notification-url": "https://packagist.org/downloads/", 715 | "license": [ 716 | "GPL-2.0-or-later" 717 | ], 718 | "authors": [ 719 | { 720 | "name": "WordPress Community", 721 | "homepage": "https://wordpress.org/about/" 722 | } 723 | ], 724 | "description": "WordPress is web software you can use to create a beautiful website or blog.", 725 | "homepage": "https://wordpress.org/", 726 | "keywords": [ 727 | "blog", 728 | "cms", 729 | "wordpress" 730 | ], 731 | "support": { 732 | "docs": "https://developer.wordpress.org/", 733 | "forum": "https://wordpress.org/support/", 734 | "irc": "irc://irc.freenode.net/wordpress", 735 | "issues": "https://core.trac.wordpress.org/", 736 | "rss": "https://wordpress.org/news/feed/", 737 | "source": "https://core.trac.wordpress.org/browser", 738 | "wiki": "https://codex.wordpress.org/" 739 | }, 740 | "funding": [ 741 | { 742 | "url": "https://github.com/roots", 743 | "type": "github" 744 | }, 745 | { 746 | "url": "https://www.patreon.com/rootsdev", 747 | "type": "patreon" 748 | } 749 | ], 750 | "time": "2021-09-09T02:22:11+00:00" 751 | }, 752 | { 753 | "name": "roots/wordpress-core-installer", 754 | "version": "1.100.0", 755 | "source": { 756 | "type": "git", 757 | "url": "https://github.com/roots/wordpress-core-installer.git", 758 | "reference": "73f8488e5178c5d54234b919f823a9095e2b1847" 759 | }, 760 | "dist": { 761 | "type": "zip", 762 | "url": "https://api.github.com/repos/roots/wordpress-core-installer/zipball/73f8488e5178c5d54234b919f823a9095e2b1847", 763 | "reference": "73f8488e5178c5d54234b919f823a9095e2b1847", 764 | "shasum": "" 765 | }, 766 | "require": { 767 | "composer-plugin-api": "^1.0 || ^2.0", 768 | "php": ">=5.6.0" 769 | }, 770 | "conflict": { 771 | "composer/installers": "<1.0.6" 772 | }, 773 | "replace": { 774 | "johnpbloch/wordpress-core-installer": "*" 775 | }, 776 | "require-dev": { 777 | "composer/composer": "^1.0 || ^2.0", 778 | "phpunit/phpunit": ">=5.7.27" 779 | }, 780 | "type": "composer-plugin", 781 | "extra": { 782 | "class": "Roots\\Composer\\WordPressCorePlugin" 783 | }, 784 | "autoload": { 785 | "psr-4": { 786 | "Roots\\Composer\\": "src/" 787 | } 788 | }, 789 | "notification-url": "https://packagist.org/downloads/", 790 | "license": [ 791 | "GPL-2.0-or-later" 792 | ], 793 | "authors": [ 794 | { 795 | "name": "John P. Bloch", 796 | "email": "me@johnpbloch.com" 797 | }, 798 | { 799 | "name": "Roots", 800 | "email": "team@roots.io" 801 | } 802 | ], 803 | "description": "A custom installer to handle deploying WordPress with composer", 804 | "keywords": [ 805 | "wordpress" 806 | ], 807 | "support": { 808 | "issues": "https://github.com/roots/wordpress-core-installer/issues", 809 | "source": "https://github.com/roots/wordpress-core-installer/tree/master" 810 | }, 811 | "funding": [ 812 | { 813 | "url": "https://github.com/roots", 814 | "type": "github" 815 | }, 816 | { 817 | "url": "https://www.patreon.com/rootsdev", 818 | "type": "patreon" 819 | } 820 | ], 821 | "time": "2020-08-20T00:27:30+00:00" 822 | } 823 | ], 824 | "aliases": [], 825 | "minimum-stability": "dev", 826 | "stability-flags": { 827 | "roots/wordpress": 20 828 | }, 829 | "prefer-stable": true, 830 | "prefer-lowest": false, 831 | "platform": { 832 | "php": ">=7.1" 833 | }, 834 | "platform-dev": [], 835 | "plugin-api-version": "2.1.0" 836 | } 837 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@sindresorhus/is@^0.14.0": 6 | version "0.14.0" 7 | resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" 8 | integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== 9 | 10 | "@szmarczak/http-timer@^1.1.2": 11 | version "1.1.2" 12 | resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" 13 | integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== 14 | dependencies: 15 | defer-to-connect "^1.0.1" 16 | 17 | "@types/color-name@^1.1.1": 18 | version "1.1.1" 19 | resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" 20 | integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== 21 | 22 | ajv@^6.10.2: 23 | version "6.10.2" 24 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" 25 | integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== 26 | dependencies: 27 | fast-deep-equal "^2.0.1" 28 | fast-json-stable-stringify "^2.0.0" 29 | json-schema-traverse "^0.4.1" 30 | uri-js "^4.2.2" 31 | 32 | ansi-align@^3.0.0: 33 | version "3.0.0" 34 | resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" 35 | integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== 36 | dependencies: 37 | string-width "^3.0.0" 38 | 39 | ansi-escapes@^3.0.0: 40 | version "3.2.0" 41 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" 42 | integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== 43 | 44 | ansi-escapes@^4.2.1: 45 | version "4.3.0" 46 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.0.tgz#a4ce2b33d6b214b7950d8595c212f12ac9cc569d" 47 | integrity sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg== 48 | dependencies: 49 | type-fest "^0.8.1" 50 | 51 | ansi-regex@^3.0.0: 52 | version "3.0.0" 53 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 54 | integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= 55 | 56 | ansi-regex@^4.1.0: 57 | version "4.1.0" 58 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" 59 | integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== 60 | 61 | ansi-regex@^5.0.0: 62 | version "5.0.0" 63 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" 64 | integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== 65 | 66 | ansi-styles@^3.2.1: 67 | version "3.2.1" 68 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 69 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 70 | dependencies: 71 | color-convert "^1.9.0" 72 | 73 | ansi-styles@^4.1.0: 74 | version "4.2.0" 75 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.0.tgz#5681f0dcf7ae5880a7841d8831c4724ed9cc0172" 76 | integrity sha512-7kFQgnEaMdRtwf6uSfUnVr9gSGC7faurn+J/Mv90/W+iTtN0405/nLdopfMWwchyxhbGYl6TC4Sccn9TUkGAgg== 77 | dependencies: 78 | "@types/color-name" "^1.1.1" 79 | color-convert "^2.0.1" 80 | 81 | array-find-index@^1.0.1: 82 | version "1.0.2" 83 | resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" 84 | integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= 85 | 86 | arrify@^1.0.1: 87 | version "1.0.1" 88 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 89 | integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= 90 | 91 | boxen@^3.0.0: 92 | version "3.2.0" 93 | resolved "https://registry.yarnpkg.com/boxen/-/boxen-3.2.0.tgz#fbdff0de93636ab4450886b6ff45b92d098f45eb" 94 | integrity sha512-cU4J/+NodM3IHdSL2yN8bqYqnmlBTidDR4RC7nJs61ZmtGz8VZzM3HLQX0zY5mrSmPtR3xWwsq2jOUQqFZN8+A== 95 | dependencies: 96 | ansi-align "^3.0.0" 97 | camelcase "^5.3.1" 98 | chalk "^2.4.2" 99 | cli-boxes "^2.2.0" 100 | string-width "^3.0.0" 101 | term-size "^1.2.0" 102 | type-fest "^0.3.0" 103 | widest-line "^2.0.0" 104 | 105 | cacheable-request@^6.0.0: 106 | version "6.1.0" 107 | resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" 108 | integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== 109 | dependencies: 110 | clone-response "^1.0.2" 111 | get-stream "^5.1.0" 112 | http-cache-semantics "^4.0.0" 113 | keyv "^3.0.0" 114 | lowercase-keys "^2.0.0" 115 | normalize-url "^4.1.0" 116 | responselike "^1.0.2" 117 | 118 | camelcase-keys@^4.0.0: 119 | version "4.2.0" 120 | resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" 121 | integrity sha1-oqpfsa9oh1glnDLBQUJteJI7m3c= 122 | dependencies: 123 | camelcase "^4.1.0" 124 | map-obj "^2.0.0" 125 | quick-lru "^1.0.0" 126 | 127 | camelcase@^4.1.0: 128 | version "4.1.0" 129 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" 130 | integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= 131 | 132 | camelcase@^5.3.1: 133 | version "5.3.1" 134 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" 135 | integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== 136 | 137 | chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.2: 138 | version "2.4.2" 139 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 140 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 141 | dependencies: 142 | ansi-styles "^3.2.1" 143 | escape-string-regexp "^1.0.5" 144 | supports-color "^5.3.0" 145 | 146 | chalk@^3.0.0: 147 | version "3.0.0" 148 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" 149 | integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== 150 | dependencies: 151 | ansi-styles "^4.1.0" 152 | supports-color "^7.1.0" 153 | 154 | chardet@^0.7.0: 155 | version "0.7.0" 156 | resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" 157 | integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== 158 | 159 | ci-info@^2.0.0: 160 | version "2.0.0" 161 | resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" 162 | integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== 163 | 164 | cli-boxes@^2.2.0: 165 | version "2.2.0" 166 | resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.0.tgz#538ecae8f9c6ca508e3c3c95b453fe93cb4c168d" 167 | integrity sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w== 168 | 169 | cli-cursor@^3.1.0: 170 | version "3.1.0" 171 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" 172 | integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== 173 | dependencies: 174 | restore-cursor "^3.1.0" 175 | 176 | cli-spinners@^2.2.0: 177 | version "2.2.0" 178 | resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.2.0.tgz#e8b988d9206c692302d8ee834e7a85c0144d8f77" 179 | integrity sha512-tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ== 180 | 181 | cli-width@^2.0.0: 182 | version "2.2.0" 183 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" 184 | integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= 185 | 186 | clone-response@^1.0.2: 187 | version "1.0.2" 188 | resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" 189 | integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= 190 | dependencies: 191 | mimic-response "^1.0.0" 192 | 193 | clone@^1.0.2: 194 | version "1.0.4" 195 | resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" 196 | integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= 197 | 198 | color-convert@^1.9.0: 199 | version "1.9.3" 200 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 201 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 202 | dependencies: 203 | color-name "1.1.3" 204 | 205 | color-convert@^2.0.1: 206 | version "2.0.1" 207 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 208 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 209 | dependencies: 210 | color-name "~1.1.4" 211 | 212 | color-name@1.1.3: 213 | version "1.1.3" 214 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 215 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 216 | 217 | color-name@~1.1.4: 218 | version "1.1.4" 219 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 220 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 221 | 222 | conf@^6.1.0: 223 | version "6.2.0" 224 | resolved "https://registry.yarnpkg.com/conf/-/conf-6.2.0.tgz#274d37a0a2e50757ffb89336e954d08718eb359a" 225 | integrity sha512-fvl40R6YemHrFsNiyP7TD0tzOe3pQD2dfT2s20WvCaq57A1oV+RImbhn2Y4sQGDz1lB0wNSb7dPcPIvQB69YNA== 226 | dependencies: 227 | ajv "^6.10.2" 228 | debounce-fn "^3.0.1" 229 | dot-prop "^5.0.0" 230 | env-paths "^2.2.0" 231 | json-schema-typed "^7.0.1" 232 | make-dir "^3.0.0" 233 | onetime "^5.1.0" 234 | pkg-up "^3.0.1" 235 | semver "^6.2.0" 236 | write-file-atomic "^3.0.0" 237 | 238 | configstore@^4.0.0: 239 | version "4.0.0" 240 | resolved "https://registry.yarnpkg.com/configstore/-/configstore-4.0.0.tgz#5933311e95d3687efb592c528b922d9262d227e7" 241 | integrity sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ== 242 | dependencies: 243 | dot-prop "^4.1.0" 244 | graceful-fs "^4.1.2" 245 | make-dir "^1.0.0" 246 | unique-string "^1.0.0" 247 | write-file-atomic "^2.0.0" 248 | xdg-basedir "^3.0.0" 249 | 250 | cross-spawn@^5.0.1: 251 | version "5.1.0" 252 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" 253 | integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= 254 | dependencies: 255 | lru-cache "^4.0.1" 256 | shebang-command "^1.2.0" 257 | which "^1.2.9" 258 | 259 | cross-spawn@^7.0.0: 260 | version "7.0.1" 261 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.1.tgz#0ab56286e0f7c24e153d04cc2aa027e43a9a5d14" 262 | integrity sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg== 263 | dependencies: 264 | path-key "^3.1.0" 265 | shebang-command "^2.0.0" 266 | which "^2.0.1" 267 | 268 | crypto-random-string@^1.0.0: 269 | version "1.0.0" 270 | resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" 271 | integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= 272 | 273 | currently-unhandled@^0.4.1: 274 | version "0.4.1" 275 | resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" 276 | integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= 277 | dependencies: 278 | array-find-index "^1.0.1" 279 | 280 | debounce-fn@^3.0.1: 281 | version "3.0.1" 282 | resolved "https://registry.yarnpkg.com/debounce-fn/-/debounce-fn-3.0.1.tgz#034afe8b904d985d1ec1aa589cd15f388741d680" 283 | integrity sha512-aBoJh5AhpqlRoHZjHmOzZlRx+wz2xVwGL9rjs+Kj0EWUrL4/h4K7OD176thl2Tdoqui/AaA4xhHrNArGLAaI3Q== 284 | dependencies: 285 | mimic-fn "^2.1.0" 286 | 287 | decamelize-keys@^1.0.0: 288 | version "1.1.0" 289 | resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" 290 | integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= 291 | dependencies: 292 | decamelize "^1.1.0" 293 | map-obj "^1.0.0" 294 | 295 | decamelize@^1.1.0: 296 | version "1.2.0" 297 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 298 | integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= 299 | 300 | decompress-response@^3.3.0: 301 | version "3.3.0" 302 | resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" 303 | integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= 304 | dependencies: 305 | mimic-response "^1.0.0" 306 | 307 | deep-extend@^0.6.0: 308 | version "0.6.0" 309 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" 310 | integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== 311 | 312 | defaults@^1.0.3: 313 | version "1.0.3" 314 | resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" 315 | integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= 316 | dependencies: 317 | clone "^1.0.2" 318 | 319 | defer-to-connect@^1.0.1: 320 | version "1.1.1" 321 | resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.1.tgz#88ae694b93f67b81815a2c8c769aef6574ac8f2f" 322 | integrity sha512-J7thop4u3mRTkYRQ+Vpfwy2G5Ehoy82I14+14W4YMDLKdWloI9gSzRbV30s/NckQGVJtPkWNcW4oMAUigTdqiQ== 323 | 324 | dot-prop@^4.1.0: 325 | version "4.2.0" 326 | resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" 327 | integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ== 328 | dependencies: 329 | is-obj "^1.0.0" 330 | 331 | dot-prop@^5.0.0: 332 | version "5.2.0" 333 | resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" 334 | integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A== 335 | dependencies: 336 | is-obj "^2.0.0" 337 | 338 | duplexer3@^0.1.4: 339 | version "0.1.4" 340 | resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" 341 | integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= 342 | 343 | emoji-regex@^7.0.1: 344 | version "7.0.3" 345 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" 346 | integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== 347 | 348 | emoji-regex@^8.0.0: 349 | version "8.0.0" 350 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 351 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 352 | 353 | end-of-stream@^1.1.0: 354 | version "1.4.4" 355 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" 356 | integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== 357 | dependencies: 358 | once "^1.4.0" 359 | 360 | env-paths@^2.2.0: 361 | version "2.2.0" 362 | resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" 363 | integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA== 364 | 365 | error-ex@^1.3.1: 366 | version "1.3.2" 367 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" 368 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== 369 | dependencies: 370 | is-arrayish "^0.2.1" 371 | 372 | escape-string-regexp@^1.0.5: 373 | version "1.0.5" 374 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 375 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 376 | 377 | execa@^0.7.0: 378 | version "0.7.0" 379 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" 380 | integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= 381 | dependencies: 382 | cross-spawn "^5.0.1" 383 | get-stream "^3.0.0" 384 | is-stream "^1.1.0" 385 | npm-run-path "^2.0.0" 386 | p-finally "^1.0.0" 387 | signal-exit "^3.0.0" 388 | strip-eof "^1.0.0" 389 | 390 | execa@^3.2.0: 391 | version "3.4.0" 392 | resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" 393 | integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== 394 | dependencies: 395 | cross-spawn "^7.0.0" 396 | get-stream "^5.0.0" 397 | human-signals "^1.1.1" 398 | is-stream "^2.0.0" 399 | merge-stream "^2.0.0" 400 | npm-run-path "^4.0.0" 401 | onetime "^5.1.0" 402 | p-finally "^2.0.0" 403 | signal-exit "^3.0.2" 404 | strip-final-newline "^2.0.0" 405 | 406 | external-editor@^3.0.3: 407 | version "3.1.0" 408 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" 409 | integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== 410 | dependencies: 411 | chardet "^0.7.0" 412 | iconv-lite "^0.4.24" 413 | tmp "^0.0.33" 414 | 415 | fast-deep-equal@^2.0.1: 416 | version "2.0.1" 417 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" 418 | integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= 419 | 420 | fast-json-stable-stringify@^2.0.0: 421 | version "2.1.0" 422 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 423 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 424 | 425 | figures@^2.0.0: 426 | version "2.0.0" 427 | resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" 428 | integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= 429 | dependencies: 430 | escape-string-regexp "^1.0.5" 431 | 432 | figures@^3.0.0: 433 | version "3.1.0" 434 | resolved "https://registry.yarnpkg.com/figures/-/figures-3.1.0.tgz#4b198dd07d8d71530642864af2d45dd9e459c4ec" 435 | integrity sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg== 436 | dependencies: 437 | escape-string-regexp "^1.0.5" 438 | 439 | find-up@^2.0.0: 440 | version "2.1.0" 441 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" 442 | integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= 443 | dependencies: 444 | locate-path "^2.0.0" 445 | 446 | find-up@^3.0.0: 447 | version "3.0.0" 448 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" 449 | integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== 450 | dependencies: 451 | locate-path "^3.0.0" 452 | 453 | get-stream@^3.0.0: 454 | version "3.0.0" 455 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" 456 | integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= 457 | 458 | get-stream@^4.1.0: 459 | version "4.1.0" 460 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" 461 | integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== 462 | dependencies: 463 | pump "^3.0.0" 464 | 465 | get-stream@^5.0.0, get-stream@^5.1.0: 466 | version "5.1.0" 467 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" 468 | integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== 469 | dependencies: 470 | pump "^3.0.0" 471 | 472 | gitmoji-cli@^3.0.0: 473 | version "3.0.0" 474 | resolved "https://registry.yarnpkg.com/gitmoji-cli/-/gitmoji-cli-3.0.0.tgz#caeff7c4059a78b848903e2769dea6993d0e0a92" 475 | integrity sha512-eRb/bUvC5E5TXSD0/A6DJffPP+g7gcpn572XhC/sQnWW0B3fopeegldE++pM2bfKuUGGsObRThsbuU5NqR8P9Q== 476 | dependencies: 477 | chalk "^2.4.2" 478 | conf "^6.1.0" 479 | execa "^3.2.0" 480 | inquirer "^7.0.0" 481 | inquirer-autocomplete-prompt "^1.0.1" 482 | meow "^5.0.0" 483 | node-fetch "^2.6.0" 484 | ora "^4.0.2" 485 | path-exists "^3.0.0" 486 | update-notifier "^3.0.1" 487 | 488 | global-dirs@^0.1.0: 489 | version "0.1.1" 490 | resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" 491 | integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= 492 | dependencies: 493 | ini "^1.3.4" 494 | 495 | got@^9.6.0: 496 | version "9.6.0" 497 | resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" 498 | integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== 499 | dependencies: 500 | "@sindresorhus/is" "^0.14.0" 501 | "@szmarczak/http-timer" "^1.1.2" 502 | cacheable-request "^6.0.0" 503 | decompress-response "^3.3.0" 504 | duplexer3 "^0.1.4" 505 | get-stream "^4.1.0" 506 | lowercase-keys "^1.0.1" 507 | mimic-response "^1.0.1" 508 | p-cancelable "^1.0.0" 509 | to-readable-stream "^1.0.0" 510 | url-parse-lax "^3.0.0" 511 | 512 | graceful-fs@^4.1.11, graceful-fs@^4.1.2: 513 | version "4.2.3" 514 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" 515 | integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== 516 | 517 | has-flag@^3.0.0: 518 | version "3.0.0" 519 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 520 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 521 | 522 | has-flag@^4.0.0: 523 | version "4.0.0" 524 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 525 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 526 | 527 | has-yarn@^2.1.0: 528 | version "2.1.0" 529 | resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" 530 | integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== 531 | 532 | hosted-git-info@^2.1.4: 533 | version "2.8.5" 534 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c" 535 | integrity sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg== 536 | 537 | http-cache-semantics@^4.0.0: 538 | version "4.0.3" 539 | resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz#495704773277eeef6e43f9ab2c2c7d259dda25c5" 540 | integrity sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew== 541 | 542 | human-signals@^1.1.1: 543 | version "1.1.1" 544 | resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" 545 | integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== 546 | 547 | iconv-lite@^0.4.24: 548 | version "0.4.24" 549 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 550 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 551 | dependencies: 552 | safer-buffer ">= 2.1.2 < 3" 553 | 554 | import-lazy@^2.1.0: 555 | version "2.1.0" 556 | resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" 557 | integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= 558 | 559 | imurmurhash@^0.1.4: 560 | version "0.1.4" 561 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 562 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= 563 | 564 | indent-string@^3.0.0: 565 | version "3.2.0" 566 | resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" 567 | integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= 568 | 569 | ini@^1.3.4, ini@~1.3.0: 570 | version "1.3.5" 571 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" 572 | integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== 573 | 574 | inquirer-autocomplete-prompt@^1.0.1: 575 | version "1.0.1" 576 | resolved "https://registry.yarnpkg.com/inquirer-autocomplete-prompt/-/inquirer-autocomplete-prompt-1.0.1.tgz#e4be98a9e727ea5160937e33f8724e70464e3c4d" 577 | integrity sha512-Y4V6ifAu9LNrNjcEtYq8YUKhrgmmufUn5fsDQqeWgHY8rEO6ZAQkNUiZtBm2kw2uUQlC9HdgrRCHDhTPPguH5A== 578 | dependencies: 579 | ansi-escapes "^3.0.0" 580 | chalk "^2.0.0" 581 | figures "^2.0.0" 582 | run-async "^2.3.0" 583 | 584 | inquirer@^7.0.0: 585 | version "7.0.1" 586 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.0.1.tgz#13f7980eedc73c689feff3994b109c4e799c6ebb" 587 | integrity sha512-V1FFQ3TIO15det8PijPLFR9M9baSlnRs9nL7zWu1MNVA2T9YVl9ZbrHJhYs7e9X8jeMZ3lr2JH/rdHFgNCBdYw== 588 | dependencies: 589 | ansi-escapes "^4.2.1" 590 | chalk "^2.4.2" 591 | cli-cursor "^3.1.0" 592 | cli-width "^2.0.0" 593 | external-editor "^3.0.3" 594 | figures "^3.0.0" 595 | lodash "^4.17.15" 596 | mute-stream "0.0.8" 597 | run-async "^2.2.0" 598 | rxjs "^6.5.3" 599 | string-width "^4.1.0" 600 | strip-ansi "^5.1.0" 601 | through "^2.3.6" 602 | 603 | is-arrayish@^0.2.1: 604 | version "0.2.1" 605 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 606 | integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= 607 | 608 | is-ci@^2.0.0: 609 | version "2.0.0" 610 | resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" 611 | integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== 612 | dependencies: 613 | ci-info "^2.0.0" 614 | 615 | is-fullwidth-code-point@^2.0.0: 616 | version "2.0.0" 617 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 618 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= 619 | 620 | is-fullwidth-code-point@^3.0.0: 621 | version "3.0.0" 622 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 623 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 624 | 625 | is-installed-globally@^0.1.0: 626 | version "0.1.0" 627 | resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" 628 | integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA= 629 | dependencies: 630 | global-dirs "^0.1.0" 631 | is-path-inside "^1.0.0" 632 | 633 | is-interactive@^1.0.0: 634 | version "1.0.0" 635 | resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" 636 | integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== 637 | 638 | is-npm@^3.0.0: 639 | version "3.0.0" 640 | resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-3.0.0.tgz#ec9147bfb629c43f494cf67936a961edec7e8053" 641 | integrity sha512-wsigDr1Kkschp2opC4G3yA6r9EgVA6NjRpWzIi9axXqeIaAATPRJc4uLujXe3Nd9uO8KoDyA4MD6aZSeXTADhA== 642 | 643 | is-obj@^1.0.0: 644 | version "1.0.1" 645 | resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" 646 | integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= 647 | 648 | is-obj@^2.0.0: 649 | version "2.0.0" 650 | resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" 651 | integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== 652 | 653 | is-path-inside@^1.0.0: 654 | version "1.0.1" 655 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" 656 | integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= 657 | dependencies: 658 | path-is-inside "^1.0.1" 659 | 660 | is-plain-obj@^1.1.0: 661 | version "1.1.0" 662 | resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" 663 | integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= 664 | 665 | is-promise@^2.1.0: 666 | version "2.1.0" 667 | resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" 668 | integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= 669 | 670 | is-stream@^1.1.0: 671 | version "1.1.0" 672 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 673 | integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= 674 | 675 | is-stream@^2.0.0: 676 | version "2.0.0" 677 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" 678 | integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== 679 | 680 | is-typedarray@^1.0.0: 681 | version "1.0.0" 682 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 683 | integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= 684 | 685 | is-yarn-global@^0.3.0: 686 | version "0.3.0" 687 | resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" 688 | integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== 689 | 690 | isexe@^2.0.0: 691 | version "2.0.0" 692 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 693 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 694 | 695 | json-buffer@3.0.0: 696 | version "3.0.0" 697 | resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" 698 | integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= 699 | 700 | json-parse-better-errors@^1.0.1: 701 | version "1.0.2" 702 | resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" 703 | integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== 704 | 705 | json-schema-traverse@^0.4.1: 706 | version "0.4.1" 707 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 708 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 709 | 710 | json-schema-typed@^7.0.1: 711 | version "7.0.3" 712 | resolved "https://registry.yarnpkg.com/json-schema-typed/-/json-schema-typed-7.0.3.tgz#23ff481b8b4eebcd2ca123b4fa0409e66469a2d9" 713 | integrity sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A== 714 | 715 | keyv@^3.0.0: 716 | version "3.1.0" 717 | resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" 718 | integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== 719 | dependencies: 720 | json-buffer "3.0.0" 721 | 722 | latest-version@^5.0.0: 723 | version "5.1.0" 724 | resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" 725 | integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== 726 | dependencies: 727 | package-json "^6.3.0" 728 | 729 | load-json-file@^4.0.0: 730 | version "4.0.0" 731 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" 732 | integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= 733 | dependencies: 734 | graceful-fs "^4.1.2" 735 | parse-json "^4.0.0" 736 | pify "^3.0.0" 737 | strip-bom "^3.0.0" 738 | 739 | locate-path@^2.0.0: 740 | version "2.0.0" 741 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" 742 | integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= 743 | dependencies: 744 | p-locate "^2.0.0" 745 | path-exists "^3.0.0" 746 | 747 | locate-path@^3.0.0: 748 | version "3.0.0" 749 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" 750 | integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== 751 | dependencies: 752 | p-locate "^3.0.0" 753 | path-exists "^3.0.0" 754 | 755 | lodash@^4.17.15: 756 | version "4.17.15" 757 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" 758 | integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== 759 | 760 | log-symbols@^3.0.0: 761 | version "3.0.0" 762 | resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" 763 | integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== 764 | dependencies: 765 | chalk "^2.4.2" 766 | 767 | loud-rejection@^1.0.0: 768 | version "1.6.0" 769 | resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" 770 | integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= 771 | dependencies: 772 | currently-unhandled "^0.4.1" 773 | signal-exit "^3.0.0" 774 | 775 | lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: 776 | version "1.0.1" 777 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" 778 | integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== 779 | 780 | lowercase-keys@^2.0.0: 781 | version "2.0.0" 782 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" 783 | integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== 784 | 785 | lru-cache@^4.0.1: 786 | version "4.1.5" 787 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" 788 | integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== 789 | dependencies: 790 | pseudomap "^1.0.2" 791 | yallist "^2.1.2" 792 | 793 | make-dir@^1.0.0: 794 | version "1.3.0" 795 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" 796 | integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== 797 | dependencies: 798 | pify "^3.0.0" 799 | 800 | make-dir@^3.0.0: 801 | version "3.0.0" 802 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.0.tgz#1b5f39f6b9270ed33f9f054c5c0f84304989f801" 803 | integrity sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw== 804 | dependencies: 805 | semver "^6.0.0" 806 | 807 | map-obj@^1.0.0: 808 | version "1.0.1" 809 | resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" 810 | integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= 811 | 812 | map-obj@^2.0.0: 813 | version "2.0.0" 814 | resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" 815 | integrity sha1-plzSkIepJZi4eRJXpSPgISIqwfk= 816 | 817 | meow@^5.0.0: 818 | version "5.0.0" 819 | resolved "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz#dfc73d63a9afc714a5e371760eb5c88b91078aa4" 820 | integrity sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig== 821 | dependencies: 822 | camelcase-keys "^4.0.0" 823 | decamelize-keys "^1.0.0" 824 | loud-rejection "^1.0.0" 825 | minimist-options "^3.0.1" 826 | normalize-package-data "^2.3.4" 827 | read-pkg-up "^3.0.0" 828 | redent "^2.0.0" 829 | trim-newlines "^2.0.0" 830 | yargs-parser "^10.0.0" 831 | 832 | merge-stream@^2.0.0: 833 | version "2.0.0" 834 | resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" 835 | integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== 836 | 837 | mimic-fn@^2.1.0: 838 | version "2.1.0" 839 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" 840 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== 841 | 842 | mimic-response@^1.0.0, mimic-response@^1.0.1: 843 | version "1.0.1" 844 | resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" 845 | integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== 846 | 847 | minimist-options@^3.0.1: 848 | version "3.0.2" 849 | resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954" 850 | integrity sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ== 851 | dependencies: 852 | arrify "^1.0.1" 853 | is-plain-obj "^1.1.0" 854 | 855 | minimist@^1.2.0: 856 | version "1.2.0" 857 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 858 | integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= 859 | 860 | mute-stream@0.0.8: 861 | version "0.0.8" 862 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" 863 | integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== 864 | 865 | node-fetch@^2.6.0: 866 | version "2.6.0" 867 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" 868 | integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== 869 | 870 | normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: 871 | version "2.5.0" 872 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" 873 | integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== 874 | dependencies: 875 | hosted-git-info "^2.1.4" 876 | resolve "^1.10.0" 877 | semver "2 || 3 || 4 || 5" 878 | validate-npm-package-license "^3.0.1" 879 | 880 | normalize-url@^4.1.0: 881 | version "4.5.0" 882 | resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" 883 | integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== 884 | 885 | npm-run-path@^2.0.0: 886 | version "2.0.2" 887 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" 888 | integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= 889 | dependencies: 890 | path-key "^2.0.0" 891 | 892 | npm-run-path@^4.0.0: 893 | version "4.0.0" 894 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.0.tgz#d644ec1bd0569187d2a52909971023a0a58e8438" 895 | integrity sha512-8eyAOAH+bYXFPSnNnKr3J+yoybe8O87Is5rtAQ8qRczJz1ajcsjg8l2oZqP+Ppx15Ii3S1vUTjQN2h4YO2tWWQ== 896 | dependencies: 897 | path-key "^3.0.0" 898 | 899 | once@^1.3.1, once@^1.4.0: 900 | version "1.4.0" 901 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 902 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 903 | dependencies: 904 | wrappy "1" 905 | 906 | onetime@^5.1.0: 907 | version "5.1.0" 908 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" 909 | integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== 910 | dependencies: 911 | mimic-fn "^2.1.0" 912 | 913 | ora@^4.0.2: 914 | version "4.0.3" 915 | resolved "https://registry.yarnpkg.com/ora/-/ora-4.0.3.tgz#752a1b7b4be4825546a7a3d59256fa523b6b6d05" 916 | integrity sha512-fnDebVFyz309A73cqCipVL1fBZewq4vwgSHfxh43vVy31mbyoQ8sCH3Oeaog/owYOs/lLlGVPCISQonTneg6Pg== 917 | dependencies: 918 | chalk "^3.0.0" 919 | cli-cursor "^3.1.0" 920 | cli-spinners "^2.2.0" 921 | is-interactive "^1.0.0" 922 | log-symbols "^3.0.0" 923 | mute-stream "0.0.8" 924 | strip-ansi "^6.0.0" 925 | wcwidth "^1.0.1" 926 | 927 | os-tmpdir@~1.0.2: 928 | version "1.0.2" 929 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 930 | integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= 931 | 932 | p-cancelable@^1.0.0: 933 | version "1.1.0" 934 | resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" 935 | integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== 936 | 937 | p-finally@^1.0.0: 938 | version "1.0.0" 939 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 940 | integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= 941 | 942 | p-finally@^2.0.0: 943 | version "2.0.1" 944 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" 945 | integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== 946 | 947 | p-limit@^1.1.0: 948 | version "1.3.0" 949 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" 950 | integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== 951 | dependencies: 952 | p-try "^1.0.0" 953 | 954 | p-limit@^2.0.0: 955 | version "2.2.1" 956 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537" 957 | integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg== 958 | dependencies: 959 | p-try "^2.0.0" 960 | 961 | p-locate@^2.0.0: 962 | version "2.0.0" 963 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" 964 | integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= 965 | dependencies: 966 | p-limit "^1.1.0" 967 | 968 | p-locate@^3.0.0: 969 | version "3.0.0" 970 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" 971 | integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== 972 | dependencies: 973 | p-limit "^2.0.0" 974 | 975 | p-try@^1.0.0: 976 | version "1.0.0" 977 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" 978 | integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= 979 | 980 | p-try@^2.0.0: 981 | version "2.2.0" 982 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" 983 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 984 | 985 | package-json@^6.3.0: 986 | version "6.5.0" 987 | resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" 988 | integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== 989 | dependencies: 990 | got "^9.6.0" 991 | registry-auth-token "^4.0.0" 992 | registry-url "^5.0.0" 993 | semver "^6.2.0" 994 | 995 | parse-json@^4.0.0: 996 | version "4.0.0" 997 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" 998 | integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= 999 | dependencies: 1000 | error-ex "^1.3.1" 1001 | json-parse-better-errors "^1.0.1" 1002 | 1003 | path-exists@^3.0.0: 1004 | version "3.0.0" 1005 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 1006 | integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= 1007 | 1008 | path-is-inside@^1.0.1: 1009 | version "1.0.2" 1010 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" 1011 | integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= 1012 | 1013 | path-key@^2.0.0: 1014 | version "2.0.1" 1015 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 1016 | integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= 1017 | 1018 | path-key@^3.0.0, path-key@^3.1.0: 1019 | version "3.1.1" 1020 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 1021 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 1022 | 1023 | path-parse@^1.0.6: 1024 | version "1.0.6" 1025 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" 1026 | integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== 1027 | 1028 | path-type@^3.0.0: 1029 | version "3.0.0" 1030 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" 1031 | integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== 1032 | dependencies: 1033 | pify "^3.0.0" 1034 | 1035 | pify@^3.0.0: 1036 | version "3.0.0" 1037 | resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" 1038 | integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= 1039 | 1040 | pkg-up@^3.0.1: 1041 | version "3.1.0" 1042 | resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" 1043 | integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== 1044 | dependencies: 1045 | find-up "^3.0.0" 1046 | 1047 | prepend-http@^2.0.0: 1048 | version "2.0.0" 1049 | resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" 1050 | integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= 1051 | 1052 | pseudomap@^1.0.2: 1053 | version "1.0.2" 1054 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" 1055 | integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= 1056 | 1057 | pump@^3.0.0: 1058 | version "3.0.0" 1059 | resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" 1060 | integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 1061 | dependencies: 1062 | end-of-stream "^1.1.0" 1063 | once "^1.3.1" 1064 | 1065 | punycode@^2.1.0: 1066 | version "2.1.1" 1067 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 1068 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 1069 | 1070 | quick-lru@^1.0.0: 1071 | version "1.1.0" 1072 | resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" 1073 | integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g= 1074 | 1075 | rc@^1.2.8: 1076 | version "1.2.8" 1077 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" 1078 | integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== 1079 | dependencies: 1080 | deep-extend "^0.6.0" 1081 | ini "~1.3.0" 1082 | minimist "^1.2.0" 1083 | strip-json-comments "~2.0.1" 1084 | 1085 | read-pkg-up@^3.0.0: 1086 | version "3.0.0" 1087 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" 1088 | integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= 1089 | dependencies: 1090 | find-up "^2.0.0" 1091 | read-pkg "^3.0.0" 1092 | 1093 | read-pkg@^3.0.0: 1094 | version "3.0.0" 1095 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" 1096 | integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= 1097 | dependencies: 1098 | load-json-file "^4.0.0" 1099 | normalize-package-data "^2.3.2" 1100 | path-type "^3.0.0" 1101 | 1102 | redent@^2.0.0: 1103 | version "2.0.0" 1104 | resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" 1105 | integrity sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo= 1106 | dependencies: 1107 | indent-string "^3.0.0" 1108 | strip-indent "^2.0.0" 1109 | 1110 | registry-auth-token@^4.0.0: 1111 | version "4.0.0" 1112 | resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.0.0.tgz#30e55961eec77379da551ea5c4cf43cbf03522be" 1113 | integrity sha512-lpQkHxd9UL6tb3k/aHAVfnVtn+Bcs9ob5InuFLLEDqSqeq+AljB8GZW9xY0x7F+xYwEcjKe07nyoxzEYz6yvkw== 1114 | dependencies: 1115 | rc "^1.2.8" 1116 | safe-buffer "^5.0.1" 1117 | 1118 | registry-url@^5.0.0: 1119 | version "5.1.0" 1120 | resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" 1121 | integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== 1122 | dependencies: 1123 | rc "^1.2.8" 1124 | 1125 | resolve@^1.10.0: 1126 | version "1.14.0" 1127 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.14.0.tgz#6d14c6f9db9f8002071332b600039abf82053f64" 1128 | integrity sha512-uviWSi5N67j3t3UKFxej1loCH0VZn5XuqdNxoLShPcYPw6cUZn74K1VRj+9myynRX03bxIBEkwlkob/ujLsJVw== 1129 | dependencies: 1130 | path-parse "^1.0.6" 1131 | 1132 | responselike@^1.0.2: 1133 | version "1.0.2" 1134 | resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" 1135 | integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= 1136 | dependencies: 1137 | lowercase-keys "^1.0.0" 1138 | 1139 | restore-cursor@^3.1.0: 1140 | version "3.1.0" 1141 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" 1142 | integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== 1143 | dependencies: 1144 | onetime "^5.1.0" 1145 | signal-exit "^3.0.2" 1146 | 1147 | run-async@^2.2.0, run-async@^2.3.0: 1148 | version "2.3.0" 1149 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" 1150 | integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= 1151 | dependencies: 1152 | is-promise "^2.1.0" 1153 | 1154 | rxjs@^6.5.3: 1155 | version "6.5.3" 1156 | resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.3.tgz#510e26317f4db91a7eb1de77d9dd9ba0a4899a3a" 1157 | integrity sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA== 1158 | dependencies: 1159 | tslib "^1.9.0" 1160 | 1161 | safe-buffer@^5.0.1: 1162 | version "5.2.0" 1163 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" 1164 | integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== 1165 | 1166 | "safer-buffer@>= 2.1.2 < 3": 1167 | version "2.1.2" 1168 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 1169 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 1170 | 1171 | semver-diff@^2.0.0: 1172 | version "2.1.0" 1173 | resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" 1174 | integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY= 1175 | dependencies: 1176 | semver "^5.0.3" 1177 | 1178 | "semver@2 || 3 || 4 || 5", semver@^5.0.3: 1179 | version "5.7.1" 1180 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" 1181 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 1182 | 1183 | semver@^6.0.0, semver@^6.2.0: 1184 | version "6.3.0" 1185 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 1186 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 1187 | 1188 | shebang-command@^1.2.0: 1189 | version "1.2.0" 1190 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 1191 | integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= 1192 | dependencies: 1193 | shebang-regex "^1.0.0" 1194 | 1195 | shebang-command@^2.0.0: 1196 | version "2.0.0" 1197 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 1198 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 1199 | dependencies: 1200 | shebang-regex "^3.0.0" 1201 | 1202 | shebang-regex@^1.0.0: 1203 | version "1.0.0" 1204 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 1205 | integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= 1206 | 1207 | shebang-regex@^3.0.0: 1208 | version "3.0.0" 1209 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 1210 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 1211 | 1212 | signal-exit@^3.0.0, signal-exit@^3.0.2: 1213 | version "3.0.2" 1214 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 1215 | integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= 1216 | 1217 | spdx-correct@^3.0.0: 1218 | version "3.1.0" 1219 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" 1220 | integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== 1221 | dependencies: 1222 | spdx-expression-parse "^3.0.0" 1223 | spdx-license-ids "^3.0.0" 1224 | 1225 | spdx-exceptions@^2.1.0: 1226 | version "2.2.0" 1227 | resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" 1228 | integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== 1229 | 1230 | spdx-expression-parse@^3.0.0: 1231 | version "3.0.0" 1232 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" 1233 | integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== 1234 | dependencies: 1235 | spdx-exceptions "^2.1.0" 1236 | spdx-license-ids "^3.0.0" 1237 | 1238 | spdx-license-ids@^3.0.0: 1239 | version "3.0.5" 1240 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" 1241 | integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== 1242 | 1243 | string-width@^2.1.1: 1244 | version "2.1.1" 1245 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 1246 | integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== 1247 | dependencies: 1248 | is-fullwidth-code-point "^2.0.0" 1249 | strip-ansi "^4.0.0" 1250 | 1251 | string-width@^3.0.0: 1252 | version "3.1.0" 1253 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" 1254 | integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== 1255 | dependencies: 1256 | emoji-regex "^7.0.1" 1257 | is-fullwidth-code-point "^2.0.0" 1258 | strip-ansi "^5.1.0" 1259 | 1260 | string-width@^4.1.0: 1261 | version "4.2.0" 1262 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" 1263 | integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== 1264 | dependencies: 1265 | emoji-regex "^8.0.0" 1266 | is-fullwidth-code-point "^3.0.0" 1267 | strip-ansi "^6.0.0" 1268 | 1269 | strip-ansi@^4.0.0: 1270 | version "4.0.0" 1271 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 1272 | integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= 1273 | dependencies: 1274 | ansi-regex "^3.0.0" 1275 | 1276 | strip-ansi@^5.1.0: 1277 | version "5.2.0" 1278 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" 1279 | integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== 1280 | dependencies: 1281 | ansi-regex "^4.1.0" 1282 | 1283 | strip-ansi@^6.0.0: 1284 | version "6.0.0" 1285 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" 1286 | integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== 1287 | dependencies: 1288 | ansi-regex "^5.0.0" 1289 | 1290 | strip-bom@^3.0.0: 1291 | version "3.0.0" 1292 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 1293 | integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= 1294 | 1295 | strip-eof@^1.0.0: 1296 | version "1.0.0" 1297 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 1298 | integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= 1299 | 1300 | strip-final-newline@^2.0.0: 1301 | version "2.0.0" 1302 | resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" 1303 | integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== 1304 | 1305 | strip-indent@^2.0.0: 1306 | version "2.0.0" 1307 | resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" 1308 | integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= 1309 | 1310 | strip-json-comments@~2.0.1: 1311 | version "2.0.1" 1312 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 1313 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= 1314 | 1315 | supports-color@^5.3.0: 1316 | version "5.5.0" 1317 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1318 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1319 | dependencies: 1320 | has-flag "^3.0.0" 1321 | 1322 | supports-color@^7.1.0: 1323 | version "7.1.0" 1324 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" 1325 | integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== 1326 | dependencies: 1327 | has-flag "^4.0.0" 1328 | 1329 | term-size@^1.2.0: 1330 | version "1.2.0" 1331 | resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" 1332 | integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk= 1333 | dependencies: 1334 | execa "^0.7.0" 1335 | 1336 | through@^2.3.6: 1337 | version "2.3.8" 1338 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 1339 | integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= 1340 | 1341 | tmp@^0.0.33: 1342 | version "0.0.33" 1343 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" 1344 | integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== 1345 | dependencies: 1346 | os-tmpdir "~1.0.2" 1347 | 1348 | to-readable-stream@^1.0.0: 1349 | version "1.0.0" 1350 | resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" 1351 | integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== 1352 | 1353 | trim-newlines@^2.0.0: 1354 | version "2.0.0" 1355 | resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" 1356 | integrity sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA= 1357 | 1358 | tslib@^1.9.0: 1359 | version "1.10.0" 1360 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" 1361 | integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== 1362 | 1363 | type-fest@^0.3.0: 1364 | version "0.3.1" 1365 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" 1366 | integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== 1367 | 1368 | type-fest@^0.8.1: 1369 | version "0.8.1" 1370 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" 1371 | integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== 1372 | 1373 | typedarray-to-buffer@^3.1.5: 1374 | version "3.1.5" 1375 | resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" 1376 | integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== 1377 | dependencies: 1378 | is-typedarray "^1.0.0" 1379 | 1380 | unique-string@^1.0.0: 1381 | version "1.0.0" 1382 | resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" 1383 | integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= 1384 | dependencies: 1385 | crypto-random-string "^1.0.0" 1386 | 1387 | update-notifier@^3.0.1: 1388 | version "3.0.1" 1389 | resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-3.0.1.tgz#78ecb68b915e2fd1be9f767f6e298ce87b736250" 1390 | integrity sha512-grrmrB6Zb8DUiyDIaeRTBCkgISYUgETNe7NglEbVsrLWXeESnlCSP50WfRSj/GmzMPl6Uchj24S/p80nP/ZQrQ== 1391 | dependencies: 1392 | boxen "^3.0.0" 1393 | chalk "^2.0.1" 1394 | configstore "^4.0.0" 1395 | has-yarn "^2.1.0" 1396 | import-lazy "^2.1.0" 1397 | is-ci "^2.0.0" 1398 | is-installed-globally "^0.1.0" 1399 | is-npm "^3.0.0" 1400 | is-yarn-global "^0.3.0" 1401 | latest-version "^5.0.0" 1402 | semver-diff "^2.0.0" 1403 | xdg-basedir "^3.0.0" 1404 | 1405 | uri-js@^4.2.2: 1406 | version "4.2.2" 1407 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" 1408 | integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== 1409 | dependencies: 1410 | punycode "^2.1.0" 1411 | 1412 | url-parse-lax@^3.0.0: 1413 | version "3.0.0" 1414 | resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" 1415 | integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= 1416 | dependencies: 1417 | prepend-http "^2.0.0" 1418 | 1419 | validate-npm-package-license@^3.0.1: 1420 | version "3.0.4" 1421 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" 1422 | integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== 1423 | dependencies: 1424 | spdx-correct "^3.0.0" 1425 | spdx-expression-parse "^3.0.0" 1426 | 1427 | wcwidth@^1.0.1: 1428 | version "1.0.1" 1429 | resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" 1430 | integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= 1431 | dependencies: 1432 | defaults "^1.0.3" 1433 | 1434 | which@^1.2.9: 1435 | version "1.3.1" 1436 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 1437 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== 1438 | dependencies: 1439 | isexe "^2.0.0" 1440 | 1441 | which@^2.0.1: 1442 | version "2.0.2" 1443 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 1444 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 1445 | dependencies: 1446 | isexe "^2.0.0" 1447 | 1448 | widest-line@^2.0.0: 1449 | version "2.0.1" 1450 | resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" 1451 | integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA== 1452 | dependencies: 1453 | string-width "^2.1.1" 1454 | 1455 | wrappy@1: 1456 | version "1.0.2" 1457 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1458 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 1459 | 1460 | write-file-atomic@^2.0.0: 1461 | version "2.4.3" 1462 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" 1463 | integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== 1464 | dependencies: 1465 | graceful-fs "^4.1.11" 1466 | imurmurhash "^0.1.4" 1467 | signal-exit "^3.0.2" 1468 | 1469 | write-file-atomic@^3.0.0: 1470 | version "3.0.1" 1471 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.1.tgz#558328352e673b5bb192cf86500d60b230667d4b" 1472 | integrity sha512-JPStrIyyVJ6oCSz/691fAjFtefZ6q+fP6tm+OS4Qw6o+TGQxNp1ziY2PgS+X/m0V8OWhZiO/m4xSj+Pr4RrZvw== 1473 | dependencies: 1474 | imurmurhash "^0.1.4" 1475 | is-typedarray "^1.0.0" 1476 | signal-exit "^3.0.2" 1477 | typedarray-to-buffer "^3.1.5" 1478 | 1479 | xdg-basedir@^3.0.0: 1480 | version "3.0.0" 1481 | resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" 1482 | integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= 1483 | 1484 | yallist@^2.1.2: 1485 | version "2.1.2" 1486 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" 1487 | integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= 1488 | 1489 | yargs-parser@^10.0.0: 1490 | version "10.1.0" 1491 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" 1492 | integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== 1493 | dependencies: 1494 | camelcase "^4.1.0" 1495 | --------------------------------------------------------------------------------