Version Description
- Add - Webhook status. #246 #273
- Add - Show CC gateway in admin payments list. #236
- Add - Add 3d secure contingency settings. #230
- Add - Improve logging. #252 #275
- Add - Do not send payee email. #231
- Add - Allow customers to see and delete their saved payments in My Account. #274
- Fix - PayPal Payments generates multiple orders. #244
- Fix - Saved credit card does not auto fill. #242
- Fix - Incorrect webhooks registration. #254
- Fix - Disable funding credit cards affecting hosted fields, unset for GB. #249
- Fix - REFUND_CAPTURE_CURRENCY_MISMATCH on multicurrency sites. #225
- Fix - Can't checkout to certain countries with optional postcode. #224
Download this release
Release Info
Developer | woothemes |
Plugin | WooCommerce PayPal Payments |
Version | 1.6.0 |
Comparing to | |
See all releases |
Code changes from version 1.5.1 to 1.6.0
- bootstrap.php +56 -0
- changelog.txt +14 -0
- modules.php +30 -0
- modules/ppcp-api-client/services.php +8 -3
- modules/ppcp-api-client/src/Endpoint/class-orderendpoint.php +1 -1
- modules/ppcp-api-client/src/Endpoint/class-paymenttokenendpoint.php +1 -18
- modules/ppcp-api-client/src/Endpoint/class-requesttrait.php +43 -1
- modules/ppcp-api-client/src/Endpoint/class-webhookendpoint.php +114 -41
- modules/ppcp-api-client/src/Entity/class-cardauthenticationresult.php +1 -1
- modules/ppcp-api-client/src/Entity/class-payee.php +3 -3
- modules/ppcp-api-client/src/Entity/class-webhook.php +28 -1
- modules/ppcp-api-client/src/Entity/class-webhookevent.php +170 -0
- modules/ppcp-api-client/src/Factory/class-payeefactory.php +2 -7
- modules/ppcp-api-client/src/Factory/class-paymentsourcefactory.php +2 -2
- modules/ppcp-api-client/src/Factory/class-purchaseunitfactory.php +15 -0
- modules/ppcp-api-client/src/Factory/class-webhookeventfactory.php +74 -0
- modules/ppcp-button/assets/css/hosted-fields.css +1 -1
- modules/ppcp-button/assets/js/button.js +1 -2
- modules/ppcp-button/assets/js/button.js.map +0 -1
- modules/ppcp-button/assets/js/hosted-fields.js +1 -2
- modules/ppcp-button/assets/js/hosted-fields.js.map +0 -1
- modules/ppcp-button/resources/css/hosted-fields.scss +4 -0
- modules/ppcp-button/resources/js/modules/ContextBootstrap/CheckoutBootstap.js +33 -3
- modules/ppcp-button/resources/js/modules/Renderer/CreditCardRenderer.js +89 -35
- modules/ppcp-button/resources/js/modules/Renderer/Renderer.js +9 -1
- modules/ppcp-button/services.php +11 -5
- modules/ppcp-button/src/Assets/class-smartbutton.php +27 -5
- modules/ppcp-button/src/Endpoint/class-approveorderendpoint.php +4 -1
- modules/ppcp-button/src/Endpoint/class-changecartendpoint.php +24 -11
- modules/ppcp-button/src/Endpoint/class-createorderendpoint.php +35 -7
- modules/ppcp-button/src/Endpoint/class-dataclientidendpoint.php +18 -4
- modules/ppcp-button/src/Helper/class-threedsecure.php +20 -1
- modules/ppcp-onboarding/services.php +3 -1
- modules/ppcp-onboarding/src/Endpoint/class-loginsellerendpoint.php +16 -3
- modules/ppcp-subscription/services.php +3 -10
- modules/ppcp-subscription/src/class-renewalhandler.php +1 -1
- modules/ppcp-subscription/src/class-subscriptionmodule.php +4 -4
- modules/ppcp-vaulting/assets/js/myaccount-payments.js +1 -0
- modules/ppcp-vaulting/extensions.php +12 -0
- modules/ppcp-vaulting/module.php +16 -0
- modules/ppcp-vaulting/package.json +23 -0
- modules/ppcp-vaulting/resources/js/myaccount-payments.js +41 -0
- modules/ppcp-vaulting/services.php +42 -0
- modules/ppcp-vaulting/src/Assets/class-myaccountpaymentsassets.php +67 -0
- modules/ppcp-vaulting/src/Endpoint/class-deletepaymenttokenendpoint.php +95 -0
- modules/{ppcp-subscription/src/Repository → ppcp-vaulting/src}/class-paymenttokenrepository.php +23 -16
- modules/ppcp-vaulting/src/class-paymenttokensrenderer.php +83 -0
- modules/ppcp-vaulting/src/class-vaultingmodule.php +116 -0
- modules/ppcp-vaulting/webpack.config.js +22 -0
- modules/ppcp-vaulting/yarn.lock +2219 -0
- modules/ppcp-wc-gateway/assets/js/gateway-settings.js +1 -2
- modules/ppcp-wc-gateway/assets/js/gateway-settings.js.map +0 -1
- modules/ppcp-wc-gateway/package.json +5 -5
- modules/ppcp-wc-gateway/services.php +109 -17
- modules/ppcp-wc-gateway/src/Gateway/class-creditcardgateway.php +86 -11
- modules/ppcp-wc-gateway/src/Gateway/class-paypalgateway.php +40 -8
- modules/ppcp-wc-gateway/src/Gateway/class-processpaymenttrait.php +20 -0
- modules/ppcp-wc-gateway/src/Notice/class-dccwithoutpaypaladminnotice.php +101 -0
- modules/ppcp-wc-gateway/src/Processor/class-orderprocessor.php +1 -1
- modules/ppcp-wc-gateway/src/Processor/class-refundprocessor.php +1 -1
- modules/ppcp-wc-gateway/src/Settings/class-pagematchertrait.php +49 -0
- modules/ppcp-wc-gateway/src/Settings/class-sectionsrenderer.php +22 -8
- modules/ppcp-wc-gateway/src/Settings/class-settingslistener.php +72 -41
- modules/ppcp-wc-gateway/src/Settings/class-settingsrenderer.php +74 -67
- modules/ppcp-wc-gateway/src/class-wcgatewaymodule.php +13 -60
- modules/ppcp-wc-gateway/webpack.config.js +1 -1
- modules/ppcp-wc-gateway/yarn.lock +1222 -3033
- modules/ppcp-webhooks/assets/css/status-page.css +1 -0
- modules/ppcp-webhooks/assets/js/status-page-style.js +1 -0
- modules/ppcp-webhooks/assets/js/status-page.js +1 -0
- modules/ppcp-webhooks/extensions.php +58 -1
- modules/ppcp-webhooks/package.json +23 -0
- modules/ppcp-webhooks/resources/css/status-page.scss +34 -0
- modules/ppcp-webhooks/resources/js/status-page.js +148 -0
- modules/ppcp-webhooks/services.php +140 -6
- modules/ppcp-webhooks/src/Endpoint/class-resubscribeendpoint.php +79 -0
- modules/ppcp-webhooks/src/Endpoint/class-simulateendpoint.php +77 -0
- modules/ppcp-webhooks/src/Endpoint/class-simulationstateendpoint.php +68 -0
- modules/ppcp-webhooks/src/Status/Assets/class-webhooksstatuspageassets.php +110 -0
- modules/ppcp-webhooks/src/Status/class-webhooksimulation.php +180 -0
- modules/ppcp-webhooks/src/Status/class-webhooksstatuspage.php +18 -0
- modules/ppcp-webhooks/src/class-incomingwebhookendpoint.php +80 -34
- modules/ppcp-webhooks/src/class-webhookmodule.php +73 -0
- modules/ppcp-webhooks/src/class-webhookregistrar.php +16 -1
- modules/ppcp-webhooks/webpack.config.js +36 -0
- modules/ppcp-webhooks/yarn.lock +2219 -0
- readme.txt +15 -1
- vendor/autoload.php +1 -1
- vendor/composer/ClassLoader.php +102 -11
- vendor/composer/InstalledVersions.php +6 -6
- vendor/composer/autoload_classmap.php +15 -1
- vendor/composer/autoload_real.php +7 -7
- vendor/composer/autoload_static.php +19 -5
- vendor/composer/installed.json +7 -7
- vendor/composer/installed.php +5 -5
- vendor/dhii/module-interface/.env.example +0 -6
- vendor/dhii/module-interface/CHANGELOG.md +0 -32
- vendor/dhii/module-interface/LICENSE +0 -21
- vendor/dhii/module-interface/README.md +0 -290
- vendor/dhii/module-interface/docker-compose.yml +0 -29
- vendor/dhii/module-interface/docker/Dockerfile +0 -39
- vendor/dhii/module-interface/phpcs.xml.dist +0 -50
- vendor/dhii/module-interface/phpunit.xml.dist +0 -20
- vendor/dhii/module-interface/psalm.xml.dist +0 -152
- vendor/dhii/module-interface/tests/bootstrap.php +0 -5
- vendor/dhii/module-interface/tests/stubs/GetImplementingMockBuilderCapableTrait.php +0 -48
- vendor/dhii/module-interface/tests/unit/Exception/ModuleExceptionInterfaceTest.php +0 -64
- vendor/dhii/module-interface/tests/unit/ModuleAwareInterfaceTest.php +0 -46
- vendor/dhii/module-interface/tests/unit/ModuleInterfaceTest.php +0 -38
bootstrap.php
ADDED
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Bootstraps the modular app.
|
4 |
+
*
|
5 |
+
* @package WooCommerce\PayPalCommerce
|
6 |
+
*/
|
7 |
+
|
8 |
+
use Dhii\Container\CachingContainer;
|
9 |
+
use Dhii\Container\CompositeCachingServiceProvider;
|
10 |
+
use Dhii\Container\CompositeContainer;
|
11 |
+
use Dhii\Container\DelegatingContainer;
|
12 |
+
use Dhii\Container\ProxyContainer;
|
13 |
+
use Dhii\Modular\Module\ModuleInterface;
|
14 |
+
use Interop\Container\ServiceProviderInterface;
|
15 |
+
use Psr\Container\ContainerInterface;
|
16 |
+
|
17 |
+
return function (
|
18 |
+
string $root_dir,
|
19 |
+
ContainerInterface ...$additional_containers
|
20 |
+
): ContainerInterface {
|
21 |
+
$modules = ( require "$root_dir/modules.php" )( $root_dir );
|
22 |
+
|
23 |
+
// Use this filter to add custom module or remove some of existing ones.
|
24 |
+
// Modules able to access container, add services and modify existing ones.
|
25 |
+
$modules = apply_filters( 'woocommerce_paypal_payments_modules', $modules );
|
26 |
+
|
27 |
+
$providers = array_map(
|
28 |
+
function ( ModuleInterface $module ): ServiceProviderInterface {
|
29 |
+
return $module->setup();
|
30 |
+
},
|
31 |
+
$modules
|
32 |
+
);
|
33 |
+
|
34 |
+
$provider = new CompositeCachingServiceProvider( $providers );
|
35 |
+
$proxy_container = new ProxyContainer();
|
36 |
+
// TODO: caching does not work currently,
|
37 |
+
// may want to consider fixing it later (pass proxy as parent to DelegatingContainer)
|
38 |
+
// for now not fixed since we were using this behavior for long time and fixing it now may break things.
|
39 |
+
$container = new DelegatingContainer( $provider );
|
40 |
+
$app_container = new CachingContainer(
|
41 |
+
new CompositeContainer(
|
42 |
+
array_merge(
|
43 |
+
$additional_containers,
|
44 |
+
array( $container )
|
45 |
+
)
|
46 |
+
)
|
47 |
+
);
|
48 |
+
$proxy_container->setInnerContainer( $app_container );
|
49 |
+
|
50 |
+
foreach ( $modules as $module ) {
|
51 |
+
/* @var $module ModuleInterface module */
|
52 |
+
$module->run( $app_container );
|
53 |
+
}
|
54 |
+
|
55 |
+
return $app_container;
|
56 |
+
};
|
changelog.txt
CHANGED
@@ -1,5 +1,19 @@
|
|
1 |
*** Changelog ***
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
= 1.5.1 - 2021-08-19 =
|
4 |
* Fix - Set 3DS contingencies to "SCA_WHEN_REQUIRED". #178
|
5 |
* Fix - Plugin conflict blocking line item details. #221
|
1 |
*** Changelog ***
|
2 |
|
3 |
+
= 1.6.0 - 2021-09-29 =
|
4 |
+
* Add - Webhook status. #246 #273
|
5 |
+
* Add - Show CC gateway in admin payments list. #236
|
6 |
+
* Add - Add 3d secure contingency settings. #230
|
7 |
+
* Add - Improve logging. #252 #275
|
8 |
+
* Add - Do not send payee email. #231
|
9 |
+
* Add - Allow customers to see and delete their saved payments in My Account. #274
|
10 |
+
* Fix - PayPal Payments generates multiple orders. #244
|
11 |
+
* Fix - Saved credit card does not auto fill. #242
|
12 |
+
* Fix - Incorrect webhooks registration. #254
|
13 |
+
* Fix - Disable funding credit cards affecting hosted fields, unset for GB. #249
|
14 |
+
* Fix - REFUND_CAPTURE_CURRENCY_MISMATCH on multicurrency sites. #225
|
15 |
+
* Fix - Can't checkout to certain countries with optional postcode. #224
|
16 |
+
|
17 |
= 1.5.1 - 2021-08-19 =
|
18 |
* Fix - Set 3DS contingencies to "SCA_WHEN_REQUIRED". #178
|
19 |
* Fix - Plugin conflict blocking line item details. #221
|
modules.php
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The list of modules.
|
4 |
+
*
|
5 |
+
* @package WooCommerce\PayPalCommerce
|
6 |
+
*/
|
7 |
+
|
8 |
+
use WooCommerce\PayPalCommerce\PluginModule;
|
9 |
+
|
10 |
+
return function ( string $root_dir ): iterable {
|
11 |
+
$modules_dir = "$root_dir/modules";
|
12 |
+
|
13 |
+
$modules = array(
|
14 |
+
new PluginModule(),
|
15 |
+
( require "$modules_dir/woocommerce-logging/module.php" )(),
|
16 |
+
( require "$modules_dir/ppcp-admin-notices/module.php" )(),
|
17 |
+
( require "$modules_dir/ppcp-api-client/module.php" )(),
|
18 |
+
( require "$modules_dir/ppcp-button/module.php" )(),
|
19 |
+
( require "$modules_dir/ppcp-compat/module.php" )(),
|
20 |
+
( require "$modules_dir/ppcp-onboarding/module.php" )(),
|
21 |
+
( require "$modules_dir/ppcp-session/module.php" )(),
|
22 |
+
( require "$modules_dir/ppcp-status-report/module.php" )(),
|
23 |
+
( require "$modules_dir/ppcp-subscription/module.php" )(),
|
24 |
+
( require "$modules_dir/ppcp-wc-gateway/module.php" )(),
|
25 |
+
( require "$modules_dir/ppcp-webhooks/module.php" )(),
|
26 |
+
( require "$modules_dir/ppcp-vaulting/module.php" )(),
|
27 |
+
);
|
28 |
+
|
29 |
+
return $modules;
|
30 |
+
};
|
modules/ppcp-api-client/services.php
CHANGED
@@ -35,6 +35,7 @@ use WooCommerce\PayPalCommerce\ApiClient\Factory\PaymentTokenFactory;
|
|
35 |
use WooCommerce\PayPalCommerce\ApiClient\Factory\PurchaseUnitFactory;
|
36 |
use WooCommerce\PayPalCommerce\ApiClient\Factory\SellerStatusFactory;
|
37 |
use WooCommerce\PayPalCommerce\ApiClient\Factory\ShippingFactory;
|
|
|
38 |
use WooCommerce\PayPalCommerce\ApiClient\Factory\WebhookFactory;
|
39 |
use WooCommerce\PayPalCommerce\ApiClient\Helper\Cache;
|
40 |
use WooCommerce\PayPalCommerce\ApiClient\Helper\DccApplies;
|
@@ -71,19 +72,19 @@ return array(
|
|
71 |
return 'WC-';
|
72 |
},
|
73 |
'api.bearer' => static function ( $container ): Bearer {
|
74 |
-
|
75 |
$cache = new Cache( 'ppcp-paypal-bearer' );
|
76 |
$key = $container->get( 'api.key' );
|
77 |
$secret = $container->get( 'api.secret' );
|
78 |
-
|
79 |
$host = $container->get( 'api.host' );
|
80 |
$logger = $container->get( 'woocommerce.logger.woocommerce' );
|
|
|
81 |
return new PayPalBearer(
|
82 |
$cache,
|
83 |
$host,
|
84 |
$key,
|
85 |
$secret,
|
86 |
-
$logger
|
|
|
87 |
);
|
88 |
},
|
89 |
'api.endpoint.partners' => static function ( $container ) : PartnersEndpoint {
|
@@ -114,6 +115,7 @@ return array(
|
|
114 |
$container->get( 'api.host' ),
|
115 |
$container->get( 'api.bearer' ),
|
116 |
$container->get( 'api.factory.webhook' ),
|
|
|
117 |
$container->get( 'woocommerce.logger.woocommerce' )
|
118 |
);
|
119 |
},
|
@@ -214,6 +216,9 @@ return array(
|
|
214 |
'api.factory.webhook' => static function ( $container ): WebhookFactory {
|
215 |
return new WebhookFactory();
|
216 |
},
|
|
|
|
|
|
|
217 |
'api.factory.capture' => static function ( $container ): CaptureFactory {
|
218 |
|
219 |
$amount_factory = $container->get( 'api.factory.amount' );
|
35 |
use WooCommerce\PayPalCommerce\ApiClient\Factory\PurchaseUnitFactory;
|
36 |
use WooCommerce\PayPalCommerce\ApiClient\Factory\SellerStatusFactory;
|
37 |
use WooCommerce\PayPalCommerce\ApiClient\Factory\ShippingFactory;
|
38 |
+
use WooCommerce\PayPalCommerce\ApiClient\Factory\WebhookEventFactory;
|
39 |
use WooCommerce\PayPalCommerce\ApiClient\Factory\WebhookFactory;
|
40 |
use WooCommerce\PayPalCommerce\ApiClient\Helper\Cache;
|
41 |
use WooCommerce\PayPalCommerce\ApiClient\Helper\DccApplies;
|
72 |
return 'WC-';
|
73 |
},
|
74 |
'api.bearer' => static function ( $container ): Bearer {
|
|
|
75 |
$cache = new Cache( 'ppcp-paypal-bearer' );
|
76 |
$key = $container->get( 'api.key' );
|
77 |
$secret = $container->get( 'api.secret' );
|
|
|
78 |
$host = $container->get( 'api.host' );
|
79 |
$logger = $container->get( 'woocommerce.logger.woocommerce' );
|
80 |
+
$settings = $container->get( 'wcgateway.settings' );
|
81 |
return new PayPalBearer(
|
82 |
$cache,
|
83 |
$host,
|
84 |
$key,
|
85 |
$secret,
|
86 |
+
$logger,
|
87 |
+
$settings
|
88 |
);
|
89 |
},
|
90 |
'api.endpoint.partners' => static function ( $container ) : PartnersEndpoint {
|
115 |
$container->get( 'api.host' ),
|
116 |
$container->get( 'api.bearer' ),
|
117 |
$container->get( 'api.factory.webhook' ),
|
118 |
+
$container->get( 'api.factory.webhook-event' ),
|
119 |
$container->get( 'woocommerce.logger.woocommerce' )
|
120 |
);
|
121 |
},
|
216 |
'api.factory.webhook' => static function ( $container ): WebhookFactory {
|
217 |
return new WebhookFactory();
|
218 |
},
|
219 |
+
'api.factory.webhook-event' => static function ( $container ): WebhookEventFactory {
|
220 |
+
return new WebhookEventFactory();
|
221 |
+
},
|
222 |
'api.factory.capture' => static function ( $container ): CaptureFactory {
|
223 |
|
224 |
$amount_factory = $container->get( 'api.factory.amount' );
|
modules/ppcp-api-client/src/Endpoint/class-orderendpoint.php
CHANGED
@@ -390,7 +390,7 @@ class OrderEndpoint {
|
|
390 |
}
|
391 |
$json = json_decode( $response['body'] );
|
392 |
$status_code = (int) wp_remote_retrieve_response_code( $response );
|
393 |
-
if (
|
394 |
if ( false !== strpos( $response['body'], ErrorResponse::ORDER_ALREADY_AUTHORIZED ) ) {
|
395 |
return $this->order( $order->id() );
|
396 |
}
|
390 |
}
|
391 |
$json = json_decode( $response['body'] );
|
392 |
$status_code = (int) wp_remote_retrieve_response_code( $response );
|
393 |
+
if ( ! in_array( $status_code, array( 200, 201 ), true ) ) {
|
394 |
if ( false !== strpos( $response['body'], ErrorResponse::ORDER_ALREADY_AUTHORIZED ) ) {
|
395 |
return $this->order( $order->id() );
|
396 |
}
|
modules/ppcp-api-client/src/Endpoint/class-paymenttokenendpoint.php
CHANGED
@@ -139,24 +139,7 @@ class PaymentTokenEndpoint {
|
|
139 |
foreach ( $json->payment_tokens as $token_value ) {
|
140 |
$tokens[] = $this->factory->from_paypal_response( $token_value );
|
141 |
}
|
142 |
-
|
143 |
-
$error = new RuntimeException(
|
144 |
-
sprintf(
|
145 |
-
// translators: %d is the customer id.
|
146 |
-
__( 'No token stored for customer %d.', 'woocommerce-paypal-payments' ),
|
147 |
-
$id
|
148 |
-
)
|
149 |
-
);
|
150 |
-
$this->logger->log(
|
151 |
-
'warning',
|
152 |
-
$error->getMessage(),
|
153 |
-
array(
|
154 |
-
'args' => $args,
|
155 |
-
'response' => $response,
|
156 |
-
)
|
157 |
-
);
|
158 |
-
throw $error;
|
159 |
-
}
|
160 |
return $tokens;
|
161 |
}
|
162 |
|
139 |
foreach ( $json->payment_tokens as $token_value ) {
|
140 |
$tokens[] = $this->factory->from_paypal_response( $token_value );
|
141 |
}
|
142 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
143 |
return $tokens;
|
144 |
}
|
145 |
|
modules/ppcp-api-client/src/Endpoint/class-requesttrait.php
CHANGED
@@ -36,6 +36,48 @@ trait RequestTrait {
|
|
36 |
$args['headers']['PayPal-Partner-Attribution-Id'] = 'Woo_PPCP';
|
37 |
}
|
38 |
|
39 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
}
|
41 |
}
|
36 |
$args['headers']['PayPal-Partner-Attribution-Id'] = 'Woo_PPCP';
|
37 |
}
|
38 |
|
39 |
+
$response = wp_remote_get( $url, $args );
|
40 |
+
$this->logger->debug( $this->request_response_string( $url, $args, $response ) );
|
41 |
+
return $response;
|
42 |
+
}
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Returns request and response information as string.
|
46 |
+
*
|
47 |
+
* @param string $url The request URL.
|
48 |
+
* @param array $args The request arguments.
|
49 |
+
* @param array $response The response.
|
50 |
+
* @return string
|
51 |
+
*/
|
52 |
+
private function request_response_string( string $url, array $args, array $response ): string {
|
53 |
+
$method = $args['method'] ?? '';
|
54 |
+
$output = $method . ' ' . $url . "\n";
|
55 |
+
if ( isset( $args['body'] ) ) {
|
56 |
+
if ( ! in_array(
|
57 |
+
$url,
|
58 |
+
array(
|
59 |
+
trailingslashit( $this->host ) . 'v1/oauth2/token/',
|
60 |
+
trailingslashit( $this->host ) . 'v1/oauth2/token?grant_type=client_credentials',
|
61 |
+
),
|
62 |
+
true
|
63 |
+
) ) {
|
64 |
+
$output .= 'Request Body: ' . wc_print_r( $args['body'], true ) . "\n";
|
65 |
+
}
|
66 |
+
}
|
67 |
+
|
68 |
+
if ( isset( $response['headers']->getAll()['paypal-debug-id'] ) ) {
|
69 |
+
$output .= 'Response Debug ID: ' . $response['headers']->getAll()['paypal-debug-id'] . "\n";
|
70 |
+
}
|
71 |
+
if ( isset( $response['response'] ) ) {
|
72 |
+
$output .= 'Response: ' . wc_print_r( $response['response'], true ) . "\n";
|
73 |
+
|
74 |
+
if ( isset( $response['body'] )
|
75 |
+
&& isset( $response['response']['code'] )
|
76 |
+
&& ! in_array( $response['response']['code'], array( 200, 201, 202, 204 ), true ) ) {
|
77 |
+
$output .= 'Response Body: ' . wc_print_r( $response['body'], true ) . "\n";
|
78 |
+
}
|
79 |
+
}
|
80 |
+
|
81 |
+
return $output;
|
82 |
}
|
83 |
}
|
modules/ppcp-api-client/src/Endpoint/class-webhookendpoint.php
CHANGED
@@ -11,8 +11,10 @@ namespace WooCommerce\PayPalCommerce\ApiClient\Endpoint;
|
|
11 |
|
12 |
use WooCommerce\PayPalCommerce\ApiClient\Authentication\Bearer;
|
13 |
use WooCommerce\PayPalCommerce\ApiClient\Entity\Webhook;
|
|
|
14 |
use WooCommerce\PayPalCommerce\ApiClient\Exception\PayPalApiException;
|
15 |
use WooCommerce\PayPalCommerce\ApiClient\Exception\RuntimeException;
|
|
|
16 |
use WooCommerce\PayPalCommerce\ApiClient\Factory\WebhookFactory;
|
17 |
use Psr\Log\LoggerInterface;
|
18 |
|
@@ -44,6 +46,13 @@ class WebhookEndpoint {
|
|
44 |
*/
|
45 |
private $webhook_factory;
|
46 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
/**
|
48 |
* The logger.
|
49 |
*
|
@@ -54,22 +63,25 @@ class WebhookEndpoint {
|
|
54 |
/**
|
55 |
* WebhookEndpoint constructor.
|
56 |
*
|
57 |
-
* @param string
|
58 |
-
* @param Bearer
|
59 |
-
* @param WebhookFactory
|
60 |
-
* @param
|
|
|
61 |
*/
|
62 |
public function __construct(
|
63 |
string $host,
|
64 |
Bearer $bearer,
|
65 |
WebhookFactory $webhook_factory,
|
|
|
66 |
LoggerInterface $logger
|
67 |
) {
|
68 |
|
69 |
-
$this->host
|
70 |
-
$this->bearer
|
71 |
-
$this->webhook_factory
|
72 |
-
$this->
|
|
|
73 |
}
|
74 |
|
75 |
/**
|
@@ -79,14 +91,14 @@ class WebhookEndpoint {
|
|
79 |
*
|
80 |
* @return Webhook
|
81 |
* @throws RuntimeException If the request fails.
|
|
|
82 |
*/
|
83 |
public function create( Webhook $hook ): Webhook {
|
84 |
-
|
85 |
-
* An hook, which has an ID has already been created.
|
86 |
-
*/
|
87 |
if ( $hook->id() ) {
|
88 |
return $hook;
|
89 |
}
|
|
|
90 |
$bearer = $this->bearer->bearer();
|
91 |
$url = trailingslashit( $this->host ) . 'v1/notifications/webhooks';
|
92 |
$args = array(
|
@@ -100,42 +112,64 @@ class WebhookEndpoint {
|
|
100 |
$response = $this->request( $url, $args );
|
101 |
|
102 |
if ( is_wp_error( $response ) ) {
|
103 |
-
|
104 |
__( 'Not able to create a webhook.', 'woocommerce-paypal-payments' )
|
105 |
);
|
106 |
-
$this->logger->log(
|
107 |
-
'warning',
|
108 |
-
$error->getMessage(),
|
109 |
-
array(
|
110 |
-
'args' => $args,
|
111 |
-
'response' => $response,
|
112 |
-
)
|
113 |
-
);
|
114 |
-
throw $error;
|
115 |
}
|
116 |
|
117 |
$json = json_decode( $response['body'] );
|
118 |
$status_code = (int) wp_remote_retrieve_response_code( $response );
|
119 |
if ( 201 !== $status_code ) {
|
120 |
-
|
121 |
$json,
|
122 |
$status_code
|
123 |
);
|
124 |
-
$this->logger->log(
|
125 |
-
'warning',
|
126 |
-
$error->getMessage(),
|
127 |
-
array(
|
128 |
-
'args' => $args,
|
129 |
-
'response' => $response,
|
130 |
-
)
|
131 |
-
);
|
132 |
-
throw $error;
|
133 |
}
|
134 |
|
135 |
$hook = $this->webhook_factory->from_paypal_response( $json );
|
136 |
return $hook;
|
137 |
}
|
138 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
139 |
/**
|
140 |
* Deletes a webhook.
|
141 |
*
|
@@ -160,22 +194,61 @@ class WebhookEndpoint {
|
|
160 |
$response = $this->request( $url, $args );
|
161 |
|
162 |
if ( is_wp_error( $response ) ) {
|
163 |
-
|
164 |
__( 'Not able to delete the webhook.', 'woocommerce-paypal-payments' )
|
165 |
);
|
166 |
-
$this->logger->log(
|
167 |
-
'warning',
|
168 |
-
$error->getMessage(),
|
169 |
-
array(
|
170 |
-
'args' => $args,
|
171 |
-
'response' => $response,
|
172 |
-
)
|
173 |
-
);
|
174 |
-
throw $error;
|
175 |
}
|
176 |
return wp_remote_retrieve_response_code( $response ) === 204;
|
177 |
}
|
178 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
179 |
/**
|
180 |
* Verifies if a webhook event is legitimate.
|
181 |
*
|
11 |
|
12 |
use WooCommerce\PayPalCommerce\ApiClient\Authentication\Bearer;
|
13 |
use WooCommerce\PayPalCommerce\ApiClient\Entity\Webhook;
|
14 |
+
use WooCommerce\PayPalCommerce\ApiClient\Entity\WebhookEvent;
|
15 |
use WooCommerce\PayPalCommerce\ApiClient\Exception\PayPalApiException;
|
16 |
use WooCommerce\PayPalCommerce\ApiClient\Exception\RuntimeException;
|
17 |
+
use WooCommerce\PayPalCommerce\ApiClient\Factory\WebhookEventFactory;
|
18 |
use WooCommerce\PayPalCommerce\ApiClient\Factory\WebhookFactory;
|
19 |
use Psr\Log\LoggerInterface;
|
20 |
|
46 |
*/
|
47 |
private $webhook_factory;
|
48 |
|
49 |
+
/**
|
50 |
+
* The webhook event factory.
|
51 |
+
*
|
52 |
+
* @var WebhookEventFactory
|
53 |
+
*/
|
54 |
+
private $webhook_event_factory;
|
55 |
+
|
56 |
/**
|
57 |
* The logger.
|
58 |
*
|
63 |
/**
|
64 |
* WebhookEndpoint constructor.
|
65 |
*
|
66 |
+
* @param string $host The host.
|
67 |
+
* @param Bearer $bearer The bearer.
|
68 |
+
* @param WebhookFactory $webhook_factory The webhook factory.
|
69 |
+
* @param WebhookEventFactory $webhook_event_factory The webhook event factory.
|
70 |
+
* @param LoggerInterface $logger The logger.
|
71 |
*/
|
72 |
public function __construct(
|
73 |
string $host,
|
74 |
Bearer $bearer,
|
75 |
WebhookFactory $webhook_factory,
|
76 |
+
WebhookEventFactory $webhook_event_factory,
|
77 |
LoggerInterface $logger
|
78 |
) {
|
79 |
|
80 |
+
$this->host = $host;
|
81 |
+
$this->bearer = $bearer;
|
82 |
+
$this->webhook_factory = $webhook_factory;
|
83 |
+
$this->webhook_event_factory = $webhook_event_factory;
|
84 |
+
$this->logger = $logger;
|
85 |
}
|
86 |
|
87 |
/**
|
91 |
*
|
92 |
* @return Webhook
|
93 |
* @throws RuntimeException If the request fails.
|
94 |
+
* @throws PayPalApiException If the request fails.
|
95 |
*/
|
96 |
public function create( Webhook $hook ): Webhook {
|
97 |
+
// The hook was already created.
|
|
|
|
|
98 |
if ( $hook->id() ) {
|
99 |
return $hook;
|
100 |
}
|
101 |
+
|
102 |
$bearer = $this->bearer->bearer();
|
103 |
$url = trailingslashit( $this->host ) . 'v1/notifications/webhooks';
|
104 |
$args = array(
|
112 |
$response = $this->request( $url, $args );
|
113 |
|
114 |
if ( is_wp_error( $response ) ) {
|
115 |
+
throw new RuntimeException(
|
116 |
__( 'Not able to create a webhook.', 'woocommerce-paypal-payments' )
|
117 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
118 |
}
|
119 |
|
120 |
$json = json_decode( $response['body'] );
|
121 |
$status_code = (int) wp_remote_retrieve_response_code( $response );
|
122 |
if ( 201 !== $status_code ) {
|
123 |
+
throw new PayPalApiException(
|
124 |
$json,
|
125 |
$status_code
|
126 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
127 |
}
|
128 |
|
129 |
$hook = $this->webhook_factory->from_paypal_response( $json );
|
130 |
return $hook;
|
131 |
}
|
132 |
|
133 |
+
/**
|
134 |
+
* Loads the webhooks list for the current auth token.
|
135 |
+
*
|
136 |
+
* @return Webhook[]
|
137 |
+
* @throws RuntimeException If the request fails.
|
138 |
+
* @throws PayPalApiException If the request fails.
|
139 |
+
*/
|
140 |
+
public function list(): array {
|
141 |
+
$bearer = $this->bearer->bearer();
|
142 |
+
$url = trailingslashit( $this->host ) . 'v1/notifications/webhooks';
|
143 |
+
$args = array(
|
144 |
+
'method' => 'GET',
|
145 |
+
'headers' => array(
|
146 |
+
'Authorization' => 'Bearer ' . $bearer->token(),
|
147 |
+
'Content-Type' => 'application/json',
|
148 |
+
),
|
149 |
+
);
|
150 |
+
$response = $this->request( $url, $args );
|
151 |
+
|
152 |
+
if ( is_wp_error( $response ) ) {
|
153 |
+
throw new RuntimeException(
|
154 |
+
__( 'Not able to load webhooks list.', 'woocommerce-paypal-payments' )
|
155 |
+
);
|
156 |
+
}
|
157 |
+
|
158 |
+
$json = json_decode( $response['body'] );
|
159 |
+
$status_code = (int) wp_remote_retrieve_response_code( $response );
|
160 |
+
if ( 200 !== $status_code ) {
|
161 |
+
throw new PayPalApiException(
|
162 |
+
$json,
|
163 |
+
$status_code
|
164 |
+
);
|
165 |
+
}
|
166 |
+
|
167 |
+
return array_map(
|
168 |
+
array( $this->webhook_factory, 'from_paypal_response' ),
|
169 |
+
$json->webhooks
|
170 |
+
);
|
171 |
+
}
|
172 |
+
|
173 |
/**
|
174 |
* Deletes a webhook.
|
175 |
*
|
194 |
$response = $this->request( $url, $args );
|
195 |
|
196 |
if ( is_wp_error( $response ) ) {
|
197 |
+
throw new RuntimeException(
|
198 |
__( 'Not able to delete the webhook.', 'woocommerce-paypal-payments' )
|
199 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
200 |
}
|
201 |
return wp_remote_retrieve_response_code( $response ) === 204;
|
202 |
}
|
203 |
|
204 |
+
/**
|
205 |
+
* Request a simulated webhook to be sent.
|
206 |
+
*
|
207 |
+
* @param Webhook $hook The webhook subscription to use.
|
208 |
+
* @param string $event_type The event type, such as CHECKOUT.ORDER.APPROVED.
|
209 |
+
* @param string|null $resource_version The event resource version, such as 2.0.
|
210 |
+
*
|
211 |
+
* @return WebhookEvent
|
212 |
+
* @throws RuntimeException If the request fails.
|
213 |
+
* @throws PayPalApiException If the request fails.
|
214 |
+
*/
|
215 |
+
public function simulate( Webhook $hook, string $event_type, ?string $resource_version ): WebhookEvent {
|
216 |
+
$bearer = $this->bearer->bearer();
|
217 |
+
$url = trailingslashit( $this->host ) . 'v1/notifications/simulate-event';
|
218 |
+
$data = array(
|
219 |
+
'webhook_id' => $hook->id(),
|
220 |
+
'event_type' => $event_type,
|
221 |
+
);
|
222 |
+
if ( $resource_version ) {
|
223 |
+
$data['resource_version'] = $resource_version;
|
224 |
+
}
|
225 |
+
$args = array(
|
226 |
+
'method' => 'POST',
|
227 |
+
'headers' => array(
|
228 |
+
'Authorization' => 'Bearer ' . $bearer->token(),
|
229 |
+
'Content-Type' => 'application/json',
|
230 |
+
),
|
231 |
+
'body' => wp_json_encode( $data ),
|
232 |
+
);
|
233 |
+
$response = $this->request( $url, $args );
|
234 |
+
|
235 |
+
if ( is_wp_error( $response ) ) {
|
236 |
+
throw new RuntimeException(
|
237 |
+
__( 'Not able to simulate webhook.', 'woocommerce-paypal-payments' )
|
238 |
+
);
|
239 |
+
}
|
240 |
+
$json = json_decode( $response['body'] );
|
241 |
+
$status_code = (int) wp_remote_retrieve_response_code( $response );
|
242 |
+
if ( 202 !== $status_code ) {
|
243 |
+
throw new PayPalApiException(
|
244 |
+
$json,
|
245 |
+
$status_code
|
246 |
+
);
|
247 |
+
}
|
248 |
+
|
249 |
+
return $this->webhook_event_factory->from_paypal_response( $json );
|
250 |
+
}
|
251 |
+
|
252 |
/**
|
253 |
* Verifies if a webhook event is legitimate.
|
254 |
*
|
modules/ppcp-api-client/src/Entity/class-cardauthenticationresult.php
CHANGED
@@ -112,7 +112,7 @@ class CardAuthenticationResult {
|
|
112 |
$data['liability_shift'] = $this->liability_shift();
|
113 |
$data['three_d_secure'] = array(
|
114 |
'enrollment_status' => $this->enrollment_status(),
|
115 |
-
'
|
116 |
);
|
117 |
return $data;
|
118 |
}
|
112 |
$data['liability_shift'] = $this->liability_shift();
|
113 |
$data['three_d_secure'] = array(
|
114 |
'enrollment_status' => $this->enrollment_status(),
|
115 |
+
'authentication_status' => $this->authentication_result(),
|
116 |
);
|
117 |
return $data;
|
118 |
}
|
modules/ppcp-api-client/src/Entity/class-payee.php
CHANGED
@@ -68,11 +68,11 @@ class Payee {
|
|
68 |
* @return array
|
69 |
*/
|
70 |
public function to_array(): array {
|
71 |
-
$data = array(
|
72 |
-
'email_address' => $this->email(),
|
73 |
-
);
|
74 |
if ( $this->merchant_id ) {
|
75 |
$data['merchant_id'] = $this->merchant_id();
|
|
|
|
|
76 |
}
|
77 |
return $data;
|
78 |
}
|
68 |
* @return array
|
69 |
*/
|
70 |
public function to_array(): array {
|
71 |
+
$data = array();
|
|
|
|
|
72 |
if ( $this->merchant_id ) {
|
73 |
$data['merchant_id'] = $this->merchant_id();
|
74 |
+
} else {
|
75 |
+
$data['email_address'] = $this->email();
|
76 |
}
|
77 |
return $data;
|
78 |
}
|
modules/ppcp-api-client/src/Entity/class-webhook.php
CHANGED
@@ -9,6 +9,8 @@ declare(strict_types=1);
|
|
9 |
|
10 |
namespace WooCommerce\PayPalCommerce\ApiClient\Entity;
|
11 |
|
|
|
|
|
12 |
/**
|
13 |
* Class Webhook
|
14 |
*/
|
@@ -71,13 +73,38 @@ class Webhook {
|
|
71 |
/**
|
72 |
* Returns the event types.
|
73 |
*
|
74 |
-
* @return
|
75 |
*/
|
76 |
public function event_types(): array {
|
77 |
|
78 |
return $this->event_types;
|
79 |
}
|
80 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
81 |
/**
|
82 |
* Returns the object as array.
|
83 |
*
|
9 |
|
10 |
namespace WooCommerce\PayPalCommerce\ApiClient\Entity;
|
11 |
|
12 |
+
use stdClass;
|
13 |
+
|
14 |
/**
|
15 |
* Class Webhook
|
16 |
*/
|
73 |
/**
|
74 |
* Returns the event types.
|
75 |
*
|
76 |
+
* @return stdClass[]
|
77 |
*/
|
78 |
public function event_types(): array {
|
79 |
|
80 |
return $this->event_types;
|
81 |
}
|
82 |
|
83 |
+
/**
|
84 |
+
* Returns the human-friendly names of the event types.
|
85 |
+
*
|
86 |
+
* @return string[]
|
87 |
+
*/
|
88 |
+
public function humanfriendly_event_names(): array {
|
89 |
+
|
90 |
+
return array_map(
|
91 |
+
function ( $event ): string {
|
92 |
+
return Webhook::get_humanfriendly_event_name( $event->name );
|
93 |
+
},
|
94 |
+
$this->event_types
|
95 |
+
);
|
96 |
+
}
|
97 |
+
|
98 |
+
/**
|
99 |
+
* Converts event names to more human-friendly form.
|
100 |
+
*
|
101 |
+
* @param string $name The event name like 'CHECKOUT.ORDER.APPROVED'.
|
102 |
+
* @return string
|
103 |
+
*/
|
104 |
+
public static function get_humanfriendly_event_name( string $name ): string {
|
105 |
+
return strtolower( str_replace( '.', ' ', $name ) );
|
106 |
+
}
|
107 |
+
|
108 |
/**
|
109 |
* Returns the object as array.
|
110 |
*
|
modules/ppcp-api-client/src/Entity/class-webhookevent.php
ADDED
@@ -0,0 +1,170 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The Webhook event notification object.
|
4 |
+
*
|
5 |
+
* @package WooCommerce\PayPalCommerce\ApiClient\Entity
|
6 |
+
*/
|
7 |
+
|
8 |
+
declare(strict_types=1);
|
9 |
+
|
10 |
+
namespace WooCommerce\PayPalCommerce\ApiClient\Entity;
|
11 |
+
|
12 |
+
use DateTime;
|
13 |
+
use stdClass;
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Class WebhookEvent
|
17 |
+
*/
|
18 |
+
class WebhookEvent {
|
19 |
+
|
20 |
+
/**
|
21 |
+
* The ID of the event notification.
|
22 |
+
*
|
23 |
+
* @var string
|
24 |
+
*/
|
25 |
+
private $id;
|
26 |
+
|
27 |
+
/**
|
28 |
+
* The date and time when the event notification was created.
|
29 |
+
*
|
30 |
+
* @var DateTime|null
|
31 |
+
*/
|
32 |
+
private $create_time;
|
33 |
+
|
34 |
+
/**
|
35 |
+
* The name of the resource related to the webhook notification event, such as 'checkout-order'.
|
36 |
+
*
|
37 |
+
* @var string
|
38 |
+
*/
|
39 |
+
private $resource_type;
|
40 |
+
|
41 |
+
/**
|
42 |
+
* The event version in the webhook notification, such as '1.0'.
|
43 |
+
*
|
44 |
+
* @var string
|
45 |
+
*/
|
46 |
+
private $event_version;
|
47 |
+
|
48 |
+
/**
|
49 |
+
* The event that triggered the webhook event notification, such as 'CHECKOUT.ORDER.APPROVED'.
|
50 |
+
*
|
51 |
+
* @var string
|
52 |
+
*/
|
53 |
+
private $event_type;
|
54 |
+
|
55 |
+
/**
|
56 |
+
* A summary description for the event notification.
|
57 |
+
*
|
58 |
+
* @var string
|
59 |
+
*/
|
60 |
+
private $summary;
|
61 |
+
|
62 |
+
/**
|
63 |
+
* The resource version in the webhook notification, such as '1.0'.
|
64 |
+
*
|
65 |
+
* @var string
|
66 |
+
*/
|
67 |
+
private $resource_version;
|
68 |
+
|
69 |
+
/**
|
70 |
+
* The resource that triggered the webhook event notification.
|
71 |
+
*
|
72 |
+
* @var stdClass
|
73 |
+
*/
|
74 |
+
private $resource;
|
75 |
+
|
76 |
+
/**
|
77 |
+
* WebhookEvent constructor.
|
78 |
+
*
|
79 |
+
* @param string $id The ID of the event notification.
|
80 |
+
* @param DateTime|null $create_time The date and time when the event notification was created.
|
81 |
+
* @param string $resource_type The name of the resource related to the webhook notification event, such as 'checkout-order'.
|
82 |
+
* @param string $event_version The event version in the webhook notification, such as '1.0'.
|
83 |
+
* @param string $event_type The event that triggered the webhook event notification, such as 'CHECKOUT.ORDER.APPROVED'.
|
84 |
+
* @param string $summary A summary description for the event notification.
|
85 |
+
* @param string $resource_version The resource version in the webhook notification, such as '1.0'.
|
86 |
+
* @param stdClass $resource The resource that triggered the webhook event notification.
|
87 |
+
*/
|
88 |
+
public function __construct( string $id, ?DateTime $create_time, string $resource_type, string $event_version, string $event_type, string $summary, string $resource_version, stdClass $resource ) {
|
89 |
+
$this->id = $id;
|
90 |
+
$this->create_time = $create_time;
|
91 |
+
$this->resource_type = $resource_type;
|
92 |
+
$this->event_version = $event_version;
|
93 |
+
$this->event_type = $event_type;
|
94 |
+
$this->summary = $summary;
|
95 |
+
$this->resource_version = $resource_version;
|
96 |
+
$this->resource = $resource;
|
97 |
+
}
|
98 |
+
|
99 |
+
/**
|
100 |
+
* The ID of the event notification.
|
101 |
+
*
|
102 |
+
* @return string
|
103 |
+
*/
|
104 |
+
public function id(): string {
|
105 |
+
return $this->id;
|
106 |
+
}
|
107 |
+
|
108 |
+
/**
|
109 |
+
* The date and time when the event notification was created.
|
110 |
+
*
|
111 |
+
* @return DateTime|null
|
112 |
+
*/
|
113 |
+
public function create_time(): ?DateTime {
|
114 |
+
return $this->create_time;
|
115 |
+
}
|
116 |
+
|
117 |
+
/**
|
118 |
+
* The name of the resource related to the webhook notification event, such as 'checkout-order'.
|
119 |
+
*
|
120 |
+
* @return string
|
121 |
+
*/
|
122 |
+
public function resource_type(): string {
|
123 |
+
return $this->resource_type;
|
124 |
+
}
|
125 |
+
|
126 |
+
/**
|
127 |
+
* The event version in the webhook notification, such as '1.0'.
|
128 |
+
*
|
129 |
+
* @return string
|
130 |
+
*/
|
131 |
+
public function event_version(): string {
|
132 |
+
return $this->event_version;
|
133 |
+
}
|
134 |
+
|
135 |
+
/**
|
136 |
+
* The event that triggered the webhook event notification, such as 'CHECKOUT.ORDER.APPROVED'.
|
137 |
+
*
|
138 |
+
* @return string
|
139 |
+
*/
|
140 |
+
public function event_type(): string {
|
141 |
+
return $this->event_type;
|
142 |
+
}
|
143 |
+
|
144 |
+
/**
|
145 |
+
* A summary description for the event notification.
|
146 |
+
*
|
147 |
+
* @return string
|
148 |
+
*/
|
149 |
+
public function summary(): string {
|
150 |
+
return $this->summary;
|
151 |
+
}
|
152 |
+
|
153 |
+
/**
|
154 |
+
* The resource version in the webhook notification, such as '1.0'.
|
155 |
+
*
|
156 |
+
* @return string
|
157 |
+
*/
|
158 |
+
public function resource_version(): string {
|
159 |
+
return $this->resource_version;
|
160 |
+
}
|
161 |
+
|
162 |
+
/**
|
163 |
+
* The resource that triggered the webhook event notification.
|
164 |
+
*
|
165 |
+
* @return stdClass
|
166 |
+
*/
|
167 |
+
public function resource(): stdClass {
|
168 |
+
return $this->resource;
|
169 |
+
}
|
170 |
+
}
|
modules/ppcp-api-client/src/Factory/class-payeefactory.php
CHANGED
@@ -26,13 +26,8 @@ class PayeeFactory {
|
|
26 |
* @throws RuntimeException When JSON object is malformed.
|
27 |
*/
|
28 |
public function from_paypal_response( \stdClass $data ) {
|
29 |
-
|
30 |
-
throw new RuntimeException(
|
31 |
-
__( 'No email for payee given.', 'woocommerce-paypal-payments' )
|
32 |
-
);
|
33 |
-
}
|
34 |
-
|
35 |
$merchant_id = ( isset( $data->merchant_id ) ) ? $data->merchant_id : '';
|
36 |
-
return new Payee( $
|
37 |
}
|
38 |
}
|
26 |
* @throws RuntimeException When JSON object is malformed.
|
27 |
*/
|
28 |
public function from_paypal_response( \stdClass $data ) {
|
29 |
+
$email = ( isset( $data->email_address ) ) ? $data->email_address : '';
|
|
|
|
|
|
|
|
|
|
|
30 |
$merchant_id = ( isset( $data->merchant_id ) ) ? $data->merchant_id : '';
|
31 |
+
return new Payee( $email, $merchant_id );
|
32 |
}
|
33 |
}
|
modules/ppcp-api-client/src/Factory/class-paymentsourcefactory.php
CHANGED
@@ -37,8 +37,8 @@ class PaymentSourceFactory {
|
|
37 |
(string) $data->card->authentication_result->liability_shift : '',
|
38 |
isset( $data->card->authentication_result->three_d_secure->enrollment_status ) ?
|
39 |
(string) $data->card->authentication_result->three_d_secure->enrollment_status : '',
|
40 |
-
isset( $data->card->authentication_result->three_d_secure->
|
41 |
-
(string) $data->card->authentication_result->three_d_secure->
|
42 |
);
|
43 |
}
|
44 |
$card = new PaymentSourceCard(
|
37 |
(string) $data->card->authentication_result->liability_shift : '',
|
38 |
isset( $data->card->authentication_result->three_d_secure->enrollment_status ) ?
|
39 |
(string) $data->card->authentication_result->three_d_secure->enrollment_status : '',
|
40 |
+
isset( $data->card->authentication_result->three_d_secure->authentication_status ) ?
|
41 |
+
(string) $data->card->authentication_result->three_d_secure->authentication_status : ''
|
42 |
);
|
43 |
}
|
44 |
$card = new PaymentSourceCard(
|
modules/ppcp-api-client/src/Factory/class-purchaseunitfactory.php
CHANGED
@@ -159,6 +159,7 @@ class PurchaseUnitFactory {
|
|
159 |
if (
|
160 |
2 !== strlen( $shipping->address()->country_code() )
|
161 |
|| ( ! $shipping->address()->postal_code() )
|
|
|
162 |
) {
|
163 |
$shipping = null;
|
164 |
}
|
@@ -265,4 +266,18 @@ class PurchaseUnitFactory {
|
|
265 |
}
|
266 |
return false;
|
267 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
268 |
}
|
159 |
if (
|
160 |
2 !== strlen( $shipping->address()->country_code() )
|
161 |
|| ( ! $shipping->address()->postal_code() )
|
162 |
+
|| $this->country_without_postal_code( $shipping->address()->country_code() )
|
163 |
) {
|
164 |
$shipping = null;
|
165 |
}
|
266 |
}
|
267 |
return false;
|
268 |
}
|
269 |
+
|
270 |
+
/**
|
271 |
+
* Check if country does not have postal code.
|
272 |
+
*
|
273 |
+
* @param string $country_code The country code.
|
274 |
+
* @return bool Whether country has postal code or not.
|
275 |
+
*/
|
276 |
+
private function country_without_postal_code( string $country_code ): bool {
|
277 |
+
$countries = array( 'AE', 'AF', 'AG', 'AI', 'AL', 'AN', 'AO', 'AW', 'BB', 'BF', 'BH', 'BI', 'BJ', 'BM', 'BO', 'BS', 'BT', 'BW', 'BZ', 'CD', 'CF', 'CG', 'CI', 'CK', 'CL', 'CM', 'CO', 'CR', 'CV', 'DJ', 'DM', 'DO', 'EC', 'EG', 'ER', 'ET', 'FJ', 'FK', 'GA', 'GD', 'GH', 'GI', 'GM', 'GN', 'GQ', 'GT', 'GW', 'GY', 'HK', 'HN', 'HT', 'IE', 'IQ', 'IR', 'JM', 'JO', 'KE', 'KH', 'KI', 'KM', 'KN', 'KP', 'KW', 'KY', 'LA', 'LB', 'LC', 'LK', 'LR', 'LS', 'LY', 'ML', 'MM', 'MO', 'MR', 'MS', 'MT', 'MU', 'MW', 'MZ', 'NA', 'NE', 'NG', 'NI', 'NP', 'NR', 'NU', 'OM', 'PA', 'PE', 'PF', 'PY', 'QA', 'RW', 'SA', 'SB', 'SC', 'SD', 'SL', 'SN', 'SO', 'SR', 'SS', 'ST', 'SV', 'SY', 'TC', 'TD', 'TG', 'TL', 'TO', 'TT', 'TV', 'TZ', 'UG', 'UY', 'VC', 'VE', 'VG', 'VN', 'VU', 'WS', 'XA', 'XB', 'XC', 'XE', 'XL', 'XM', 'XN', 'XS', 'YE', 'ZM', 'ZW' );
|
278 |
+
if ( in_array( $country_code, $countries, true ) ) {
|
279 |
+
return true;
|
280 |
+
}
|
281 |
+
return false;
|
282 |
+
}
|
283 |
}
|
modules/ppcp-api-client/src/Factory/class-webhookeventfactory.php
ADDED
@@ -0,0 +1,74 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Creates WebhookEvent.
|
4 |
+
*
|
5 |
+
* @package WooCommerce\PayPalCommerce\ApiClient\Factory
|
6 |
+
*/
|
7 |
+
|
8 |
+
declare(strict_types=1);
|
9 |
+
|
10 |
+
namespace WooCommerce\PayPalCommerce\ApiClient\Factory;
|
11 |
+
|
12 |
+
use DateTime;
|
13 |
+
use stdClass;
|
14 |
+
use WooCommerce\PayPalCommerce\ApiClient\Entity\WebhookEvent;
|
15 |
+
use WooCommerce\PayPalCommerce\ApiClient\Exception\RuntimeException;
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Class WebhookEventFactory
|
19 |
+
*/
|
20 |
+
class WebhookEventFactory {
|
21 |
+
|
22 |
+
/**
|
23 |
+
* Returns a webhook from a given data array.
|
24 |
+
*
|
25 |
+
* @param array $data The data array.
|
26 |
+
*
|
27 |
+
* @return WebhookEvent
|
28 |
+
*/
|
29 |
+
public function from_array( array $data ): WebhookEvent {
|
30 |
+
return $this->from_paypal_response( (object) $data );
|
31 |
+
}
|
32 |
+
|
33 |
+
/**
|
34 |
+
* Returns a Webhook based of a PayPal JSON response.
|
35 |
+
*
|
36 |
+
* @param stdClass $data The JSON object.
|
37 |
+
*
|
38 |
+
* @return WebhookEvent
|
39 |
+
* @throws RuntimeException When JSON object is malformed.
|
40 |
+
*/
|
41 |
+
public function from_paypal_response( stdClass $data ): WebhookEvent {
|
42 |
+
if ( ! isset( $data->id ) ) {
|
43 |
+
throw new RuntimeException(
|
44 |
+
__( 'ID for webhook event not found.', 'woocommerce-paypal-payments' )
|
45 |
+
);
|
46 |
+
}
|
47 |
+
if ( ! isset( $data->event_type ) ) {
|
48 |
+
throw new RuntimeException(
|
49 |
+
__( 'Event type for webhook event not found.', 'woocommerce-paypal-payments' )
|
50 |
+
);
|
51 |
+
}
|
52 |
+
|
53 |
+
$create_time = ( isset( $data->create_time ) ) ?
|
54 |
+
DateTime::createFromFormat( 'Y-m-d\TH:i:sO', $data->create_time )
|
55 |
+
: null;
|
56 |
+
|
57 |
+
// Sometimes the time may be in weird format 2018-12-19T22:20:32.000Z (at least in simulation),
|
58 |
+
// we do not care much about time, so just ignore on failure.
|
59 |
+
if ( false === $create_time ) {
|
60 |
+
$create_time = null;
|
61 |
+
}
|
62 |
+
|
63 |
+
return new WebhookEvent(
|
64 |
+
(string) $data->id,
|
65 |
+
$create_time,
|
66 |
+
(string) $data->resource_type ?? '',
|
67 |
+
(string) $data->event_version ?? '',
|
68 |
+
(string) $data->event_type,
|
69 |
+
(string) $data->summary ?? '',
|
70 |
+
(string) $data->resource_version ?? '',
|
71 |
+
(object) $data->resource ?? ( new stdClass() )
|
72 |
+
);
|
73 |
+
}
|
74 |
+
}
|
modules/ppcp-button/assets/css/hosted-fields.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
#payment ul.payment_methods li img.ppcp-card-icon{padding:0 0 3px 3px;max-height:25px;display:inline-block}.payments-sdk-contingency-handler{z-index:1000 !important}
|
1 |
+
#payment ul.payment_methods li img.ppcp-card-icon{padding:0 0 3px 3px;max-height:25px;display:inline-block}.payments-sdk-contingency-handler{z-index:1000 !important}.ppcp-credit-card-gateway-form-field-disabled{opacity:.5 !important}
|
modules/ppcp-button/assets/js/button.js
CHANGED
@@ -1,2 +1 @@
|
|
1 |
-
!function(e){var t={};function r(n){if(t[n])return t[n].exports;var a=t[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,r),a.l=!0,a.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)r.d(n,a,function(t){return e[t]}.bind(null,a));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=1)}([,function(e,t,r){"use strict";r.r(t);var n=class{constructor(e){this.genericErrorText=e,this.wrapper=document.querySelector(".woocommerce-notices-wrapper"),this.messagesList=document.querySelector("ul.woocommerce-error")}genericError(){this.wrapper.classList.contains("ppcp-persist")||(this.clear(),this.message(this.genericErrorText))}appendPreparedErrorMessageElement(e){null===this.messagesList&&this.prepareMessagesList(),this.messagesList.replaceWith(e)}message(e,t=!1){if(0===e.length)throw new Error("A new message text must be a non-empty string.");null===this.messagesList&&this.prepareMessagesList(),t?this.wrapper.classList.add("ppcp-persist"):this.wrapper.classList.remove("ppcp-persist");let r=this.prepareMessagesListItem(e);this.messagesList.appendChild(r),jQuery.scroll_to_notices(jQuery(".woocommerce-notices-wrapper"))}prepareMessagesList(){null===this.messagesList&&(this.messagesList=document.createElement("ul"),this.messagesList.setAttribute("class","woocommerce-error"),this.messagesList.setAttribute("role","alert"),this.wrapper.appendChild(this.messagesList))}prepareMessagesListItem(e){const t=document.createElement("li");return t.innerHTML=e,t}sanitize(e){const t=document.createElement("textarea");return t.innerHTML=e,t.value.replace("Error: ","")}clear(){this.wrapper.classList.contains("woocommerce-error")&&(this.wrapper.classList.remove("woocommerce-error"),this.wrapper.innerText="")}};var a=(e,t)=>(r,n)=>fetch(e.config.ajax.approve_order.endpoint,{method:"POST",body:JSON.stringify({nonce:e.config.ajax.approve_order.nonce,order_id:r.orderID})}).then(e=>e.json()).then(r=>{if(!r.success)return t.genericError(),n.restart().catch(e=>{t.genericError()});location.href=e.config.redirect});const s=()=>{const e=PayPalCommerceGateway.payer;if(!e)return null;const t=document.querySelector("#billing_phone")||void 0!==e.phone?{phone_type:"HOME",phone_number:{national_number:document.querySelector("#billing_phone")?document.querySelector("#billing_phone").value:e.phone.phone_number.national_number}}:null,r={email_address:document.querySelector("#billing_email")?document.querySelector("#billing_email").value:e.email_address,name:{surname:document.querySelector("#billing_last_name")?document.querySelector("#billing_last_name").value:e.name.surname,given_name:document.querySelector("#billing_first_name")?document.querySelector("#billing_first_name").value:e.name.given_name},address:{country_code:document.querySelector("#billing_country")?document.querySelector("#billing_country").value:e.address.country_code,address_line_1:document.querySelector("#billing_address_1")?document.querySelector("#billing_address_1").value:e.address.address_line_1,address_line_2:document.querySelector("#billing_address_2")?document.querySelector("#billing_address_2").value:e.address.address_line_2,admin_area_1:document.querySelector("#billing_state")?document.querySelector("#billing_state").value:e.address.admin_area_1,admin_area_2:document.querySelector("#billing_city")?document.querySelector("#billing_city").value:e.address.admin_area_2,postal_code:document.querySelector("#billing_postcode")?document.querySelector("#billing_postcode").value:e.address.postal_code}};return t&&(r.phone=t),r};var o=class{constructor(e,t){this.config=e,this.errorHandler=t}configuration(){return{createOrder:(e,t)=>{const r=s(),n=void 0!==this.config.bn_codes[this.config.context]?this.config.bn_codes[this.config.context]:"";return fetch(this.config.ajax.create_order.endpoint,{method:"POST",body:JSON.stringify({nonce:this.config.ajax.create_order.nonce,purchase_units:[],bn_code:n,payer:r,context:this.config.context})}).then((function(e){return e.json()})).then((function(e){if(!e.success)throw console.error(e),Error(e.data.message);return e.data.id}))},onApprove:a(this,this.errorHandler),onError:e=>{this.errorHandler.genericError()}}}};var i=class{constructor(e,t){this.gateway=e,this.renderer=t,this.actionHandler=null}init(){this.actionHandler=new o(PayPalCommerceGateway,new n(this.gateway.labels.error.generic)),this.render(),jQuery(document.body).on("wc_fragments_loaded wc_fragments_refreshed",()=>{this.render()})}shouldRender(){return null!==document.querySelector(this.gateway.button.mini_cart_wrapper)||null!==document.querySelector(this.gateway.hosted_fields.mini_cart_wrapper)}render(){this.shouldRender()&&this.renderer.render(this.gateway.button.mini_cart_wrapper,this.gateway.hosted_fields.mini_cart_wrapper,this.actionHandler.configuration())}};var c=class{constructor(e,t,r){this.id=e,this.quantity=t,this.variations=r}data(){return{id:this.id,quantity:this.quantity,variations:this.variations}}};var d=class{constructor(e,t){this.endpoint=e,this.nonce=t}update(e,t){return new Promise((r,n)=>{fetch(this.endpoint,{method:"POST",body:JSON.stringify({nonce:this.nonce,products:t})}).then(e=>e.json()).then(t=>{if(!t.success)return void n(t.data);const a=e(t.data);r(a)})})}};var l=class{constructor(e,t,r){this.element=e,this.showCallback=t,this.hideCallback=r,this.observer=null}init(){const e=()=>{this.element.classList.contains("disabled")?this.hideCallback():this.showCallback()};this.observer=new MutationObserver(e),this.observer.observe(this.element,{attributes:!0}),e()}disconnect(){this.observer.disconnect()}};var u=class{constructor(e,t,r,n,a,s){this.config=e,this.updateCart=t,this.showButtonCallback=r,this.hideButtonCallback=n,this.formElement=a,this.errorHandler=s}configuration(){if(this.hasVariations()){new l(this.formElement.querySelector(".single_add_to_cart_button"),this.showButtonCallback,this.hideButtonCallback).init()}return{createOrder:this.createOrder(),onApprove:a(this,this.errorHandler),onError:e=>{this.errorHandler.genericError()}}}createOrder(){var e=null;e=this.isGroupedProduct()?()=>{const e=[];return this.formElement.querySelectorAll('input[type="number"]').forEach(t=>{if(!t.value)return;const r=t.getAttribute("name").match(/quantity\[([\d]*)\]/);if(2!==r.length)return;const n=parseInt(r[1]),a=parseInt(t.value);e.push(new c(n,a,null))}),e}:()=>{const e=document.querySelector('[name="add-to-cart"]').value,t=document.querySelector('[name="quantity"]').value,r=this.variations();return[new c(e,t,r)]};return(t,r)=>{this.errorHandler.clear();return this.updateCart.update(e=>{const t=s(),r=void 0!==this.config.bn_codes[this.config.context]?this.config.bn_codes[this.config.context]:"";return fetch(this.config.ajax.create_order.endpoint,{method:"POST",body:JSON.stringify({nonce:this.config.ajax.create_order.nonce,purchase_units:e,payer:t,bn_code:r,context:this.config.context})}).then((function(e){return e.json()})).then((function(e){if(!e.success)throw console.error(e),Error(e.data.message);return e.data.id}))},e())}}variations(){if(!this.hasVariations())return null;return[...this.formElement.querySelectorAll("[name^='attribute_']")].map(e=>({value:e.value,name:e.name}))}hasVariations(){return this.formElement.classList.contains("variations_form")}isGroupedProduct(){return this.formElement.classList.contains("grouped_form")}};var h=class{constructor(e,t,r){this.gateway=e,this.renderer=t,this.messages=r}init(){this.shouldRender()?this.render():this.renderer.hideButtons(this.gateway.hosted_fields.wrapper)}shouldRender(){return null!==document.querySelector("form.cart")}render(){const e=new u(this.gateway,new d(this.gateway.ajax.change_cart.endpoint,this.gateway.ajax.change_cart.nonce),()=>{this.renderer.showButtons(this.gateway.button.wrapper),this.renderer.showButtons(this.gateway.hosted_fields.wrapper);let e="0";document.querySelector("form.cart ins .woocommerce-Price-amount")?e=document.querySelector("form.cart ins .woocommerce-Price-amount").innerText:document.querySelector("form.cart .woocommerce-Price-amount")&&(e=document.querySelector("form.cart .woocommerce-Price-amount").innerText);const t=parseInt(e.replace(/([^\d,\.\s]*)/g,""));this.messages.renderWithAmount(t)},()=>{this.renderer.hideButtons(this.gateway.button.wrapper),this.renderer.hideButtons(this.gateway.hosted_fields.wrapper)},document.querySelector("form.cart"),new n(this.gateway.labels.error.generic));this.renderer.render(this.gateway.button.wrapper,this.gateway.hosted_fields.wrapper,e.configuration())}};var p=class{constructor(e,t){this.gateway=e,this.renderer=t}init(){this.shouldRender()&&(this.render(),jQuery(document.body).on("updated_cart_totals updated_checkout",()=>{this.render()}))}shouldRender(){return null!==document.querySelector(this.gateway.button.wrapper)||null!==document.querySelector(this.gateway.hosted_fields.wrapper)}render(){const e=new o(PayPalCommerceGateway,new n(this.gateway.labels.error.generic));this.renderer.render(this.gateway.button.wrapper,this.gateway.hosted_fields.wrapper,e.configuration())}};var m=(e,t,r)=>(n,a)=>(r.block(),fetch(e.config.ajax.approve_order.endpoint,{method:"POST",body:JSON.stringify({nonce:e.config.ajax.approve_order.nonce,order_id:n.orderID})}).then(e=>e.json()).then(e=>{if(r.unblock(),!e.success){if(100===e.data.code?t.message(e.data.message):t.genericError(),void 0!==a&&void 0!==a.restart)return a.restart();throw new Error(e.data.message)}document.querySelector("#place_order").click()}));var y=class{constructor(e,t,r){this.config=e,this.errorHandler=t,this.spinner=r}configuration(){const e=this.spinner;return{createOrder:(t,r)=>{const n=s(),a=void 0!==this.config.bn_codes[this.config.context]?this.config.bn_codes[this.config.context]:"",o=this.errorHandler,i="checkout"===this.config.context?"form.checkout":"form#order_review",c=jQuery(i).serialize(),d=!!jQuery("#createaccount").is(":checked");return fetch(this.config.ajax.create_order.endpoint,{method:"POST",body:JSON.stringify({nonce:this.config.ajax.create_order.nonce,payer:n,bn_code:a,context:this.config.context,order_id:this.config.order_id,form:c,createaccount:d})}).then((function(e){return e.json()})).then((function(t){if(!t.success){if(e.unblock(),void 0!==t.messages){const e=new DOMParser;o.appendPreparedErrorMessageElement(e.parseFromString(t.messages,"text/html").querySelector("ul"))}else o.message(t.data.message,!0);return}const r=document.createElement("input");return r.setAttribute("type","hidden"),r.setAttribute("name","ppcp-resume-order"),r.setAttribute("value",t.data.purchase_units[0].custom_id),document.querySelector(i).append(r),t.data.id}))},onApprove:m(this,this.errorHandler,this.spinner),onCancel:()=>{e.unblock()},onError:()=>{this.errorHandler.genericError(),e.unblock()}}}};var g=class{constructor(e,t,r,n){this.gateway=e,this.renderer=t,this.messages=r,this.spinner=n}init(){this.render(),jQuery(document.body).on("updated_checkout",()=>{this.render()}),jQuery(document.body).on("updated_checkout payment_method_selected",()=>{this.switchBetweenPayPalandOrderButton(),this.displayPlaceOrderButtonForSavedCreditCards()}),jQuery("#saved-credit-card").on("change",()=>{this.displayPlaceOrderButtonForSavedCreditCards()}),this.switchBetweenPayPalandOrderButton(),this.displayPlaceOrderButtonForSavedCreditCards()}shouldRender(){return!document.querySelector(this.gateway.button.cancel_wrapper)&&(null!==document.querySelector(this.gateway.button.wrapper)||null!==document.querySelector(this.gateway.hosted_fields.wrapper))}render(){if(!this.shouldRender())return;document.querySelector(this.gateway.hosted_fields.wrapper+">div")&&document.querySelector(this.gateway.hosted_fields.wrapper+">div").setAttribute("style","");const e=new y(PayPalCommerceGateway,new n(this.gateway.labels.error.generic),this.spinner);this.renderer.render(this.gateway.button.wrapper,this.gateway.hosted_fields.wrapper,e.configuration())}switchBetweenPayPalandOrderButton(){jQuery("#saved-credit-card").val(jQuery("#saved-credit-card option:first").val());const e=jQuery('input[name="payment_method"]:checked').val();"ppcp-gateway"!==e&&"ppcp-credit-card-gateway"!==e?(this.renderer.hideButtons(this.gateway.button.wrapper),this.renderer.hideButtons(this.gateway.messages.wrapper),this.renderer.hideButtons(this.gateway.hosted_fields.wrapper),jQuery("#place_order").show()):(jQuery("#place_order").hide(),"ppcp-gateway"===e&&(this.renderer.showButtons(this.gateway.button.wrapper),this.renderer.showButtons(this.gateway.messages.wrapper),this.messages.render(),this.renderer.hideButtons(this.gateway.hosted_fields.wrapper)),"ppcp-credit-card-gateway"===e&&(this.renderer.hideButtons(this.gateway.button.wrapper),this.renderer.hideButtons(this.gateway.messages.wrapper),this.renderer.showButtons(this.gateway.hosted_fields.wrapper)))}displayPlaceOrderButtonForSavedCreditCards(){"ppcp-credit-card-gateway"===jQuery('input[name="payment_method"]:checked').val()&&(jQuery("#saved-credit-card").length&&""!==jQuery("#saved-credit-card").val()?(this.renderer.hideButtons(this.gateway.button.wrapper),this.renderer.hideButtons(this.gateway.messages.wrapper),this.renderer.hideButtons(this.gateway.hosted_fields.wrapper),jQuery("#place_order").show()):(jQuery("#place_order").hide(),this.renderer.hideButtons(this.gateway.button.wrapper),this.renderer.hideButtons(this.gateway.messages.wrapper),this.renderer.showButtons(this.gateway.hosted_fields.wrapper)))}};var w=class{constructor(e,t,r,n){this.gateway=e,this.renderer=t,this.messages=r,this.spinner=n}init(){this.render(),jQuery(document.body).on("updated_checkout",()=>{this.render()}),jQuery(document.body).on("updated_checkout payment_method_selected",()=>{this.switchBetweenPayPalandOrderButton()}),this.switchBetweenPayPalandOrderButton()}shouldRender(){return!document.querySelector(this.gateway.button.cancel_wrapper)&&(null!==document.querySelector(this.gateway.button.wrapper)||null!==document.querySelector(this.gateway.hosted_fields.wrapper))}render(){if(!this.shouldRender())return;document.querySelector(this.gateway.hosted_fields.wrapper+">div")&&document.querySelector(this.gateway.hosted_fields.wrapper+">div").setAttribute("style","");const e=new y(PayPalCommerceGateway,new n(this.gateway.labels.error.generic),this.spinner);this.renderer.render(this.gateway.button.wrapper,this.gateway.hosted_fields.wrapper,e.configuration())}switchBetweenPayPalandOrderButton(){if(new URLSearchParams(window.location.search).has("change_payment_method"))return;const e=jQuery('input[name="payment_method"]:checked').val();"ppcp-gateway"!==e&&"ppcp-credit-card-gateway"!==e?(this.renderer.hideButtons(this.gateway.button.wrapper),this.renderer.hideButtons(this.gateway.messages.wrapper),this.renderer.hideButtons(this.gateway.hosted_fields.wrapper),jQuery("#place_order").show()):(jQuery("#place_order").hide(),"ppcp-gateway"===e&&(this.renderer.showButtons(this.gateway.button.wrapper),this.renderer.showButtons(this.gateway.messages.wrapper),this.messages.render(),this.renderer.hideButtons(this.gateway.hosted_fields.wrapper)),"ppcp-credit-card-gateway"===e&&(this.renderer.hideButtons(this.gateway.button.wrapper),this.renderer.hideButtons(this.gateway.messages.wrapper),this.renderer.showButtons(this.gateway.hosted_fields.wrapper)))}};var f=class{constructor(e,t){this.defaultConfig=t,this.creditCardRenderer=e}render(e,t,r){this.renderButtons(e,r),this.creditCardRenderer.render(t,r)}renderButtons(e,t){if(!document.querySelector(e)||this.isAlreadyRendered(e)||void 0===paypal.Buttons)return;const r=e===this.defaultConfig.button.wrapper?this.defaultConfig.button.style:this.defaultConfig.button.mini_cart_style;paypal.Buttons({style:r,...t}).render(e)}isAlreadyRendered(e){return document.querySelector(e).hasChildNodes()}hideButtons(e){const t=document.querySelector(e);return!!t&&(t.style.display="none",!0)}showButtons(e){const t=document.querySelector(e);return!!t&&(t.style.display="block",!0)}};var _=e=>{const t=window.getComputedStyle(e),r=document.createElement("span");return r.setAttribute("id",e.id),Object.values(t).forEach(e=>{t[e]&&isNaN(e)&&r.style.setProperty(e,""+t[e])}),r};var b=class{constructor(e,t,r){this.defaultConfig=e,this.errorHandler=t,this.spinner=r,this.cardValid=!1,this.formValid=!1}render(e,t){if("checkout"!==this.defaultConfig.context&&"pay-now"!==this.defaultConfig.context||null===e||null===document.querySelector(e))return;if(void 0===paypal.HostedFields||!paypal.HostedFields.isEligible()){const t=document.querySelector(e);return void t.parentNode.removeChild(t)}const r=document.querySelector(".payment_box.payment_method_ppcp-credit-card-gateway"),n=r.style.display;r.style.display="block";const a=document.querySelector("#ppcp-hide-dcc");a&&a.parentNode.removeChild(a);const s=document.querySelector("#ppcp-credit-card-gateway-card-number"),o=window.getComputedStyle(s);let i={};Object.values(o).forEach(e=>{o[e]&&(i[e]=""+o[e])});const c=_(s);s.parentNode.replaceChild(c,s);const d=document.querySelector("#ppcp-credit-card-gateway-card-expiry"),l=_(d);d.parentNode.replaceChild(l,d);const u=document.querySelector("#ppcp-credit-card-gateway-card-cvc"),h=_(u);u.parentNode.replaceChild(h,u),r.style.display=n;const p=".payment_box payment_method_ppcp-credit-card-gateway";this.defaultConfig.enforce_vault&&document.querySelector(p+" .ppcp-credit-card-vault")&&(document.querySelector(p+" .ppcp-credit-card-vault").checked=!0,document.querySelector(p+" .ppcp-credit-card-vault").setAttribute("disabled",!0)),paypal.HostedFields.render({createOrder:t.createOrder,styles:{input:i},fields:{number:{selector:"#ppcp-credit-card-gateway-card-number",placeholder:this.defaultConfig.hosted_fields.labels.credit_card_number},cvv:{selector:"#ppcp-credit-card-gateway-card-cvc",placeholder:this.defaultConfig.hosted_fields.labels.cvv},expirationDate:{selector:"#ppcp-credit-card-gateway-card-expiry",placeholder:this.defaultConfig.hosted_fields.labels.mm_yy}}}).then(r=>{const n=e=>{if(this.spinner.block(),e&&e.preventDefault(),this.errorHandler.clear(),this.formValid&&this.cardValid){const e=!!this.defaultConfig.save_card,n=document.getElementById("ppcp-credit-card-vault")?document.getElementById("ppcp-credit-card-vault").checked:e;r.submit({contingencies:["SCA_WHEN_REQUIRED"],vault:n}).then(e=>(e.orderID=e.orderId,this.spinner.unblock(),t.onApprove(e))).catch(()=>{this.errorHandler.genericError(),this.spinner.unblock()})}else{this.spinner.unblock();const e=this.cardValid?this.defaultConfig.hosted_fields.labels.fields_not_valid:this.defaultConfig.hosted_fields.labels.card_not_supported;this.errorHandler.message(e)}};r.on("inputSubmitRequest",(function(){n(null)})),r.on("cardTypeChange",e=>{if(!e.cards.length)return void(this.cardValid=!1);const t=this.defaultConfig.hosted_fields.valid_cards;this.cardValid=-1!==t.indexOf(e.cards[0].type)}),r.on("validityChange",e=>{const t=Object.keys(e.fields).every((function(t){return e.fields[t].isValid}));this.formValid=t}),document.querySelector(e+" button").addEventListener("click",n)}),document.querySelector("#payment_method_ppcp-credit-card-gateway").addEventListener("click",()=>{document.querySelector("label[for=ppcp-credit-card-gateway-card-number]").click()})}};const v=(e,t)=>{if(!e)return!1;if(e.user!==t)return!1;return!((new Date).getTime()>=1e3*e.expiration)};var S=(e,t)=>{fetch(t.endpoint,{method:"POST",body:JSON.stringify({nonce:t.nonce})}).then(e=>e.json()).then(r=>{var n;v(r,t.user)&&(n=r,sessionStorage.setItem("ppcp-data-client-id",JSON.stringify(n)),e.setAttribute("data-client-token",r.token),document.body.append(e))})};var P=class{constructor(e){this.config=e}render(){this.shouldRender()&&paypal.Messages({amount:this.config.amount,placement:this.config.placement,style:this.config.style}).render(this.config.wrapper)}renderWithAmount(e){if(!this.shouldRender())return;const t=document.createElement("div");t.setAttribute("id",this.config.wrapper.replace("#",""));const r=document.querySelector(this.config.wrapper).nextSibling;document.querySelector(this.config.wrapper).parentElement.removeChild(document.querySelector(this.config.wrapper)),r.parentElement.insertBefore(t,r),paypal.Messages({amount:e,placement:this.config.placement,style:this.config.style}).render(this.config.wrapper)}shouldRender(){return void 0!==paypal.Messages&&void 0!==this.config.wrapper&&!!document.querySelector(this.config.wrapper)}};var q=class{constructor(){this.target="form.woocommerce-checkout"}setTarget(e){this.target=e}block(){jQuery(this.target).block({message:null,overlayCSS:{background:"#fff",opacity:.6}})}unblock(){jQuery(this.target).unblock()}};document.addEventListener("DOMContentLoaded",()=>{const e=document.createElement("script");e.addEventListener("load",e=>{(()=>{const e=new n(PayPalCommerceGateway.labels.error.generic),t=new q,r=new b(PayPalCommerceGateway,e,t),a=new f(r,PayPalCommerceGateway),s=new P(PayPalCommerceGateway.messages),o=PayPalCommerceGateway.context;if(("mini-cart"===o||"product"===o)&&"1"===PayPalCommerceGateway.mini_cart_buttons_enabled){new i(PayPalCommerceGateway,a).init()}if("product"===o&&"1"===PayPalCommerceGateway.single_product_buttons_enabled){new h(PayPalCommerceGateway,a,s).init()}if("cart"===o){new p(PayPalCommerceGateway,a).init()}if("checkout"===o){new g(PayPalCommerceGateway,a,s,t).init()}if("pay-now"===o){new w(PayPalCommerceGateway,a,s,t).init()}"checkout"!==o&&s.render()})()}),e.setAttribute("src",PayPalCommerceGateway.button.url),Object.entries(PayPalCommerceGateway.script_attributes).forEach(t=>{e.setAttribute(t[0],t[1])}),PayPalCommerceGateway.data_client_id.set_attribute?S(e,PayPalCommerceGateway.data_client_id):document.body.append(e)})}]);
|
2 |
-
//# sourceMappingURL=button.js.map
|
1 |
+
(()=>{"use strict";var __webpack_modules__={94:()=>{eval("\n;// CONCATENATED MODULE: ./resources/js/modules/ErrorHandler.js\nclass ErrorHandler {\n constructor(genericErrorText) {\n this.genericErrorText = genericErrorText;\n this.wrapper = document.querySelector('.woocommerce-notices-wrapper');\n this.messagesList = document.querySelector('ul.woocommerce-error');\n }\n\n genericError() {\n if (this.wrapper.classList.contains('ppcp-persist')) {\n return;\n }\n\n this.clear();\n this.message(this.genericErrorText);\n }\n\n appendPreparedErrorMessageElement(errorMessageElement) {\n if (this.messagesList === null) {\n this.prepareMessagesList();\n }\n\n this.messagesList.replaceWith(errorMessageElement);\n }\n\n message(text, persist = false) {\n if (!typeof String || text.length === 0) {\n throw new Error('A new message text must be a non-empty string.');\n }\n\n if (this.messagesList === null) {\n this.prepareMessagesList();\n }\n\n if (persist) {\n this.wrapper.classList.add('ppcp-persist');\n } else {\n this.wrapper.classList.remove('ppcp-persist');\n }\n\n let messageNode = this.prepareMessagesListItem(text);\n this.messagesList.appendChild(messageNode);\n jQuery.scroll_to_notices(jQuery('.woocommerce-notices-wrapper'));\n }\n\n prepareMessagesList() {\n if (this.messagesList === null) {\n this.messagesList = document.createElement('ul');\n this.messagesList.setAttribute('class', 'woocommerce-error');\n this.messagesList.setAttribute('role', 'alert');\n this.wrapper.appendChild(this.messagesList);\n }\n }\n\n prepareMessagesListItem(message) {\n const li = document.createElement('li');\n li.innerHTML = message;\n return li;\n }\n\n sanitize(text) {\n const textarea = document.createElement('textarea');\n textarea.innerHTML = text;\n return textarea.value.replace('Error: ', '');\n }\n\n clear() {\n if (!this.wrapper.classList.contains('woocommerce-error')) {\n return;\n }\n\n this.wrapper.classList.remove('woocommerce-error');\n this.wrapper.innerText = '';\n }\n\n}\n\n/* harmony default export */ const modules_ErrorHandler = (ErrorHandler);\n;// CONCATENATED MODULE: ./resources/js/modules/OnApproveHandler/onApproveForContinue.js\nconst onApprove = (context, errorHandler) => {\n return (data, actions) => {\n return fetch(context.config.ajax.approve_order.endpoint, {\n method: 'POST',\n body: JSON.stringify({\n nonce: context.config.ajax.approve_order.nonce,\n order_id: data.orderID\n })\n }).then(res => {\n return res.json();\n }).then(data => {\n if (!data.success) {\n errorHandler.genericError();\n return actions.restart().catch(err => {\n errorHandler.genericError();\n });\n ;\n }\n\n location.href = context.config.redirect;\n });\n };\n};\n\n/* harmony default export */ const onApproveForContinue = (onApprove);\n;// CONCATENATED MODULE: ./resources/js/modules/Helper/PayerData.js\nconst payerData = () => {\n const payer = PayPalCommerceGateway.payer;\n\n if (!payer) {\n return null;\n }\n\n const phone = document.querySelector('#billing_phone') || typeof payer.phone !== 'undefined' ? {\n phone_type: \"HOME\",\n phone_number: {\n national_number: document.querySelector('#billing_phone') ? document.querySelector('#billing_phone').value : payer.phone.phone_number.national_number\n }\n } : null;\n const payerData = {\n email_address: document.querySelector('#billing_email') ? document.querySelector('#billing_email').value : payer.email_address,\n name: {\n surname: document.querySelector('#billing_last_name') ? document.querySelector('#billing_last_name').value : payer.name.surname,\n given_name: document.querySelector('#billing_first_name') ? document.querySelector('#billing_first_name').value : payer.name.given_name\n },\n address: {\n country_code: document.querySelector('#billing_country') ? document.querySelector('#billing_country').value : payer.address.country_code,\n address_line_1: document.querySelector('#billing_address_1') ? document.querySelector('#billing_address_1').value : payer.address.address_line_1,\n address_line_2: document.querySelector('#billing_address_2') ? document.querySelector('#billing_address_2').value : payer.address.address_line_2,\n admin_area_1: document.querySelector('#billing_state') ? document.querySelector('#billing_state').value : payer.address.admin_area_1,\n admin_area_2: document.querySelector('#billing_city') ? document.querySelector('#billing_city').value : payer.address.admin_area_2,\n postal_code: document.querySelector('#billing_postcode') ? document.querySelector('#billing_postcode').value : payer.address.postal_code\n }\n };\n\n if (phone) {\n payerData.phone = phone;\n }\n\n return payerData;\n};\n;// CONCATENATED MODULE: ./resources/js/modules/ActionHandler/CartActionHandler.js\n\n\n\nclass CartActionHandler {\n constructor(config, errorHandler) {\n this.config = config;\n this.errorHandler = errorHandler;\n }\n\n configuration() {\n const createOrder = (data, actions) => {\n const payer = payerData();\n const bnCode = typeof this.config.bn_codes[this.config.context] !== 'undefined' ? this.config.bn_codes[this.config.context] : '';\n return fetch(this.config.ajax.create_order.endpoint, {\n method: 'POST',\n body: JSON.stringify({\n nonce: this.config.ajax.create_order.nonce,\n purchase_units: [],\n bn_code: bnCode,\n payer,\n context: this.config.context\n })\n }).then(function (res) {\n return res.json();\n }).then(function (data) {\n if (!data.success) {\n console.error(data);\n throw Error(data.data.message);\n }\n\n return data.data.id;\n });\n };\n\n return {\n createOrder,\n onApprove: onApproveForContinue(this, this.errorHandler),\n onError: error => {\n this.errorHandler.genericError();\n }\n };\n }\n\n}\n\n/* harmony default export */ const ActionHandler_CartActionHandler = (CartActionHandler);\n;// CONCATENATED MODULE: ./resources/js/modules/ContextBootstrap/MiniCartBootstap.js\n\n\n\nclass MiniCartBootstap {\n constructor(gateway, renderer) {\n this.gateway = gateway;\n this.renderer = renderer;\n this.actionHandler = null;\n }\n\n init() {\n this.actionHandler = new ActionHandler_CartActionHandler(PayPalCommerceGateway, new modules_ErrorHandler(this.gateway.labels.error.generic));\n this.render();\n jQuery(document.body).on('wc_fragments_loaded wc_fragments_refreshed', () => {\n this.render();\n });\n }\n\n shouldRender() {\n return document.querySelector(this.gateway.button.mini_cart_wrapper) !== null || document.querySelector(this.gateway.hosted_fields.mini_cart_wrapper) !== null;\n }\n\n render() {\n if (!this.shouldRender()) {\n return;\n }\n\n this.renderer.render(this.gateway.button.mini_cart_wrapper, this.gateway.hosted_fields.mini_cart_wrapper, this.actionHandler.configuration());\n }\n\n}\n\n/* harmony default export */ const ContextBootstrap_MiniCartBootstap = (MiniCartBootstap);\n;// CONCATENATED MODULE: ./resources/js/modules/Helper/UpdateCart.js\n\n\nclass UpdateCart {\n constructor(endpoint, nonce) {\n this.endpoint = endpoint;\n this.nonce = nonce;\n }\n /**\n *\n * @param onResolve\n * @param {Product[]} products\n * @returns {Promise<unknown>}\n */\n\n\n update(onResolve, products) {\n return new Promise((resolve, reject) => {\n fetch(this.endpoint, {\n method: 'POST',\n body: JSON.stringify({\n nonce: this.nonce,\n products\n })\n }).then(result => {\n return result.json();\n }).then(result => {\n if (!result.success) {\n reject(result.data);\n return;\n }\n\n const resolved = onResolve(result.data);\n resolve(resolved);\n });\n });\n }\n\n}\n\n/* harmony default export */ const Helper_UpdateCart = (UpdateCart);\n;// CONCATENATED MODULE: ./resources/js/modules/Helper/ButtonsToggleListener.js\n/**\n * When you can't add something to the cart, the PayPal buttons should not show.\n * Therefore we listen for changes on the add to cart button and show/hide the buttons accordingly.\n */\nclass ButtonsToggleListener {\n constructor(element, showCallback, hideCallback) {\n this.element = element;\n this.showCallback = showCallback;\n this.hideCallback = hideCallback;\n this.observer = null;\n }\n\n init() {\n const config = {\n attributes: true\n };\n\n const callback = () => {\n if (this.element.classList.contains('disabled')) {\n this.hideCallback();\n return;\n }\n\n this.showCallback();\n };\n\n this.observer = new MutationObserver(callback);\n this.observer.observe(this.element, config);\n callback();\n }\n\n disconnect() {\n this.observer.disconnect();\n }\n\n}\n\n/* harmony default export */ const Helper_ButtonsToggleListener = (ButtonsToggleListener);\n;// CONCATENATED MODULE: ./resources/js/modules/Entity/Product.js\nclass Product {\n constructor(id, quantity, variations) {\n this.id = id;\n this.quantity = quantity;\n this.variations = variations;\n }\n\n data() {\n return {\n id: this.id,\n quantity: this.quantity,\n variations: this.variations\n };\n }\n\n}\n\n/* harmony default export */ const Entity_Product = (Product);\n;// CONCATENATED MODULE: ./resources/js/modules/ActionHandler/SingleProductActionHandler.js\n\n\n\n\n\nclass SingleProductActionHandler {\n constructor(config, updateCart, showButtonCallback, hideButtonCallback, formElement, errorHandler) {\n this.config = config;\n this.updateCart = updateCart;\n this.showButtonCallback = showButtonCallback;\n this.hideButtonCallback = hideButtonCallback;\n this.formElement = formElement;\n this.errorHandler = errorHandler;\n }\n\n configuration() {\n if (this.hasVariations()) {\n const observer = new Helper_ButtonsToggleListener(this.formElement.querySelector('.single_add_to_cart_button'), this.showButtonCallback, this.hideButtonCallback);\n observer.init();\n }\n\n return {\n createOrder: this.createOrder(),\n onApprove: onApproveForContinue(this, this.errorHandler),\n onError: error => {\n this.errorHandler.genericError();\n }\n };\n }\n\n createOrder() {\n var getProducts = null;\n\n if (!this.isGroupedProduct()) {\n getProducts = () => {\n const id = document.querySelector('[name=\"add-to-cart\"]').value;\n const qty = document.querySelector('[name=\"quantity\"]').value;\n const variations = this.variations();\n return [new Entity_Product(id, qty, variations)];\n };\n } else {\n getProducts = () => {\n const products = [];\n this.formElement.querySelectorAll('input[type=\"number\"]').forEach(element => {\n if (!element.value) {\n return;\n }\n\n const elementName = element.getAttribute('name').match(/quantity\\[([\\d]*)\\]/);\n\n if (elementName.length !== 2) {\n return;\n }\n\n const id = parseInt(elementName[1]);\n const quantity = parseInt(element.value);\n products.push(new Entity_Product(id, quantity, null));\n });\n return products;\n };\n }\n\n const createOrder = (data, actions) => {\n this.errorHandler.clear();\n\n const onResolve = purchase_units => {\n const payer = payerData();\n const bnCode = typeof this.config.bn_codes[this.config.context] !== 'undefined' ? this.config.bn_codes[this.config.context] : '';\n return fetch(this.config.ajax.create_order.endpoint, {\n method: 'POST',\n body: JSON.stringify({\n nonce: this.config.ajax.create_order.nonce,\n purchase_units,\n payer,\n bn_code: bnCode,\n context: this.config.context\n })\n }).then(function (res) {\n return res.json();\n }).then(function (data) {\n if (!data.success) {\n console.error(data);\n throw Error(data.data.message);\n }\n\n return data.data.id;\n });\n };\n\n const promise = this.updateCart.update(onResolve, getProducts());\n return promise;\n };\n\n return createOrder;\n }\n\n variations() {\n if (!this.hasVariations()) {\n return null;\n }\n\n const attributes = [...this.formElement.querySelectorAll(\"[name^='attribute_']\")].map(element => {\n return {\n value: element.value,\n name: element.name\n };\n });\n return attributes;\n }\n\n hasVariations() {\n return this.formElement.classList.contains('variations_form');\n }\n\n isGroupedProduct() {\n return this.formElement.classList.contains('grouped_form');\n }\n\n}\n\n/* harmony default export */ const ActionHandler_SingleProductActionHandler = (SingleProductActionHandler);\n;// CONCATENATED MODULE: ./resources/js/modules/ContextBootstrap/SingleProductBootstap.js\n\n\n\n\nclass SingleProductBootstap {\n constructor(gateway, renderer, messages) {\n this.gateway = gateway;\n this.renderer = renderer;\n this.messages = messages;\n }\n\n init() {\n if (!this.shouldRender()) {\n this.renderer.hideButtons(this.gateway.hosted_fields.wrapper);\n return;\n }\n\n this.render();\n }\n\n shouldRender() {\n if (document.querySelector('form.cart') === null) {\n return false;\n }\n\n return true;\n }\n\n render() {\n const actionHandler = new ActionHandler_SingleProductActionHandler(this.gateway, new Helper_UpdateCart(this.gateway.ajax.change_cart.endpoint, this.gateway.ajax.change_cart.nonce), () => {\n this.renderer.showButtons(this.gateway.button.wrapper);\n this.renderer.showButtons(this.gateway.hosted_fields.wrapper);\n let priceText = \"0\";\n\n if (document.querySelector('form.cart ins .woocommerce-Price-amount')) {\n priceText = document.querySelector('form.cart ins .woocommerce-Price-amount').innerText;\n } else if (document.querySelector('form.cart .woocommerce-Price-amount')) {\n priceText = document.querySelector('form.cart .woocommerce-Price-amount').innerText;\n }\n\n const amount = parseInt(priceText.replace(/([^\\d,\\.\\s]*)/g, ''));\n this.messages.renderWithAmount(amount);\n }, () => {\n this.renderer.hideButtons(this.gateway.button.wrapper);\n this.renderer.hideButtons(this.gateway.hosted_fields.wrapper);\n }, document.querySelector('form.cart'), new modules_ErrorHandler(this.gateway.labels.error.generic));\n this.renderer.render(this.gateway.button.wrapper, this.gateway.hosted_fields.wrapper, actionHandler.configuration());\n }\n\n}\n\n/* harmony default export */ const ContextBootstrap_SingleProductBootstap = (SingleProductBootstap);\n;// CONCATENATED MODULE: ./resources/js/modules/ContextBootstrap/CartBootstap.js\n\n\n\nclass CartBootstrap {\n constructor(gateway, renderer) {\n this.gateway = gateway;\n this.renderer = renderer;\n }\n\n init() {\n if (!this.shouldRender()) {\n return;\n }\n\n this.render();\n jQuery(document.body).on('updated_cart_totals updated_checkout', () => {\n this.render();\n });\n }\n\n shouldRender() {\n return document.querySelector(this.gateway.button.wrapper) !== null || document.querySelector(this.gateway.hosted_fields.wrapper) !== null;\n }\n\n render() {\n const actionHandler = new ActionHandler_CartActionHandler(PayPalCommerceGateway, new modules_ErrorHandler(this.gateway.labels.error.generic));\n this.renderer.render(this.gateway.button.wrapper, this.gateway.hosted_fields.wrapper, actionHandler.configuration());\n }\n\n}\n\n/* harmony default export */ const CartBootstap = (CartBootstrap);\n;// CONCATENATED MODULE: ./resources/js/modules/OnApproveHandler/onApproveForPayNow.js\nconst onApproveForPayNow_onApprove = (context, errorHandler, spinner) => {\n return (data, actions) => {\n spinner.block();\n return fetch(context.config.ajax.approve_order.endpoint, {\n method: 'POST',\n body: JSON.stringify({\n nonce: context.config.ajax.approve_order.nonce,\n order_id: data.orderID\n })\n }).then(res => {\n return res.json();\n }).then(data => {\n spinner.unblock();\n\n if (!data.success) {\n if (data.data.code === 100) {\n errorHandler.message(data.data.message);\n } else {\n errorHandler.genericError();\n }\n\n if (typeof actions !== 'undefined' && typeof actions.restart !== 'undefined') {\n return actions.restart();\n }\n\n throw new Error(data.data.message);\n }\n\n document.querySelector('#place_order').click();\n });\n };\n};\n\n/* harmony default export */ const onApproveForPayNow = (onApproveForPayNow_onApprove);\n;// CONCATENATED MODULE: ./resources/js/modules/ActionHandler/CheckoutActionHandler.js\n\n\n\nclass CheckoutActionHandler {\n constructor(config, errorHandler, spinner) {\n this.config = config;\n this.errorHandler = errorHandler;\n this.spinner = spinner;\n }\n\n configuration() {\n const spinner = this.spinner;\n\n const createOrder = (data, actions) => {\n const payer = payerData();\n const bnCode = typeof this.config.bn_codes[this.config.context] !== 'undefined' ? this.config.bn_codes[this.config.context] : '';\n const errorHandler = this.errorHandler;\n const formSelector = this.config.context === 'checkout' ? 'form.checkout' : 'form#order_review';\n const formValues = jQuery(formSelector).serialize();\n const createaccount = jQuery('#createaccount').is(\":checked\") ? true : false;\n return fetch(this.config.ajax.create_order.endpoint, {\n method: 'POST',\n body: JSON.stringify({\n nonce: this.config.ajax.create_order.nonce,\n payer,\n bn_code: bnCode,\n context: this.config.context,\n order_id: this.config.order_id,\n form: formValues,\n createaccount: createaccount\n })\n }).then(function (res) {\n return res.json();\n }).then(function (data) {\n if (!data.success) {\n spinner.unblock(); //handle both messages sent from Woocommerce (data.messages) and this plugin (data.data.message)\n\n if (typeof data.messages !== 'undefined') {\n const domParser = new DOMParser();\n errorHandler.appendPreparedErrorMessageElement(domParser.parseFromString(data.messages, 'text/html').querySelector('ul'));\n } else {\n errorHandler.message(data.data.message, true);\n }\n\n return;\n }\n\n const input = document.createElement('input');\n input.setAttribute('type', 'hidden');\n input.setAttribute('name', 'ppcp-resume-order');\n input.setAttribute('value', data.data.purchase_units[0].custom_id);\n document.querySelector(formSelector).append(input);\n return data.data.id;\n });\n };\n\n return {\n createOrder,\n onApprove: onApproveForPayNow(this, this.errorHandler, this.spinner),\n onCancel: () => {\n spinner.unblock();\n },\n onError: () => {\n this.errorHandler.genericError();\n spinner.unblock();\n }\n };\n }\n\n}\n\n/* harmony default export */ const ActionHandler_CheckoutActionHandler = (CheckoutActionHandler);\n;// CONCATENATED MODULE: ./resources/js/modules/ContextBootstrap/CheckoutBootstap.js\n\n\n\nclass CheckoutBootstap {\n constructor(gateway, renderer, messages, spinner) {\n this.gateway = gateway;\n this.renderer = renderer;\n this.messages = messages;\n this.spinner = spinner;\n }\n\n init() {\n this.render();\n jQuery(document.body).on('updated_checkout', () => {\n this.render();\n });\n jQuery(document.body).on('updated_checkout payment_method_selected', () => {\n this.switchBetweenPayPalandOrderButton();\n this.displayPlaceOrderButtonForSavedCreditCards();\n });\n jQuery(document).on('hosted_fields_loaded', () => {\n jQuery('#saved-credit-card').on('change', () => {\n this.displayPlaceOrderButtonForSavedCreditCards();\n });\n });\n this.switchBetweenPayPalandOrderButton();\n this.displayPlaceOrderButtonForSavedCreditCards();\n }\n\n shouldRender() {\n if (document.querySelector(this.gateway.button.cancel_wrapper)) {\n return false;\n }\n\n return document.querySelector(this.gateway.button.wrapper) !== null || document.querySelector(this.gateway.hosted_fields.wrapper) !== null;\n }\n\n render() {\n if (!this.shouldRender()) {\n return;\n }\n\n if (document.querySelector(this.gateway.hosted_fields.wrapper + '>div')) {\n document.querySelector(this.gateway.hosted_fields.wrapper + '>div').setAttribute('style', '');\n }\n\n const actionHandler = new ActionHandler_CheckoutActionHandler(PayPalCommerceGateway, new modules_ErrorHandler(this.gateway.labels.error.generic), this.spinner);\n this.renderer.render(this.gateway.button.wrapper, this.gateway.hosted_fields.wrapper, actionHandler.configuration());\n }\n\n switchBetweenPayPalandOrderButton() {\n jQuery('#saved-credit-card').val(jQuery('#saved-credit-card option:first').val());\n const currentPaymentMethod = jQuery('input[name=\"payment_method\"]:checked').val();\n\n if (currentPaymentMethod !== 'ppcp-gateway' && currentPaymentMethod !== 'ppcp-credit-card-gateway') {\n this.renderer.hideButtons(this.gateway.button.wrapper);\n this.renderer.hideButtons(this.gateway.messages.wrapper);\n this.renderer.hideButtons(this.gateway.hosted_fields.wrapper);\n jQuery('#place_order').show();\n } else {\n jQuery('#place_order').hide();\n\n if (currentPaymentMethod === 'ppcp-gateway') {\n this.renderer.showButtons(this.gateway.button.wrapper);\n this.renderer.showButtons(this.gateway.messages.wrapper);\n this.messages.render();\n this.renderer.hideButtons(this.gateway.hosted_fields.wrapper);\n }\n\n if (currentPaymentMethod === 'ppcp-credit-card-gateway') {\n this.renderer.hideButtons(this.gateway.button.wrapper);\n this.renderer.hideButtons(this.gateway.messages.wrapper);\n this.renderer.showButtons(this.gateway.hosted_fields.wrapper);\n }\n }\n }\n\n displayPlaceOrderButtonForSavedCreditCards() {\n const currentPaymentMethod = jQuery('input[name=\"payment_method\"]:checked').val();\n\n if (currentPaymentMethod !== 'ppcp-credit-card-gateway') {\n return;\n }\n\n if (jQuery('#saved-credit-card').length && jQuery('#saved-credit-card').val() !== '') {\n this.renderer.hideButtons(this.gateway.button.wrapper);\n this.renderer.hideButtons(this.gateway.messages.wrapper);\n this.renderer.hideButtons(this.gateway.hosted_fields.wrapper);\n jQuery('#place_order').show();\n this.disableCreditCardFields();\n } else {\n jQuery('#place_order').hide();\n this.renderer.hideButtons(this.gateway.button.wrapper);\n this.renderer.hideButtons(this.gateway.messages.wrapper);\n this.renderer.showButtons(this.gateway.hosted_fields.wrapper);\n this.enableCreditCardFields();\n }\n }\n\n disableCreditCardFields() {\n jQuery('label[for=\"ppcp-credit-card-gateway-card-number\"]').addClass('ppcp-credit-card-gateway-form-field-disabled');\n jQuery('#ppcp-credit-card-gateway-card-number').addClass('ppcp-credit-card-gateway-form-field-disabled');\n jQuery('label[for=\"ppcp-credit-card-gateway-card-expiry\"]').addClass('ppcp-credit-card-gateway-form-field-disabled');\n jQuery('#ppcp-credit-card-gateway-card-expiry').addClass('ppcp-credit-card-gateway-form-field-disabled');\n jQuery('label[for=\"ppcp-credit-card-gateway-card-cvc\"]').addClass('ppcp-credit-card-gateway-form-field-disabled');\n jQuery('#ppcp-credit-card-gateway-card-cvc').addClass('ppcp-credit-card-gateway-form-field-disabled');\n jQuery('label[for=\"vault\"]').addClass('ppcp-credit-card-gateway-form-field-disabled');\n jQuery('#ppcp-credit-card-vault').addClass('ppcp-credit-card-gateway-form-field-disabled');\n jQuery('#ppcp-credit-card-vault').attr(\"disabled\", true);\n this.renderer.disableCreditCardFields();\n }\n\n enableCreditCardFields() {\n jQuery('label[for=\"ppcp-credit-card-gateway-card-number\"]').removeClass('ppcp-credit-card-gateway-form-field-disabled');\n jQuery('#ppcp-credit-card-gateway-card-number').removeClass('ppcp-credit-card-gateway-form-field-disabled');\n jQuery('label[for=\"ppcp-credit-card-gateway-card-expiry\"]').removeClass('ppcp-credit-card-gateway-form-field-disabled');\n jQuery('#ppcp-credit-card-gateway-card-expiry').removeClass('ppcp-credit-card-gateway-form-field-disabled');\n jQuery('label[for=\"ppcp-credit-card-gateway-card-cvc\"]').removeClass('ppcp-credit-card-gateway-form-field-disabled');\n jQuery('#ppcp-credit-card-gateway-card-cvc').removeClass('ppcp-credit-card-gateway-form-field-disabled');\n jQuery('label[for=\"vault\"]').removeClass('ppcp-credit-card-gateway-form-field-disabled');\n jQuery('#ppcp-credit-card-vault').removeClass('ppcp-credit-card-gateway-form-field-disabled');\n jQuery('#ppcp-credit-card-vault').attr(\"disabled\", false);\n this.renderer.enableCreditCardFields();\n }\n\n}\n\n/* harmony default export */ const ContextBootstrap_CheckoutBootstap = (CheckoutBootstap);\n;// CONCATENATED MODULE: ./resources/js/modules/ContextBootstrap/PayNowBootstrap.js\n\n\n\nclass PayNowBootstrap {\n constructor(gateway, renderer, messages, spinner) {\n this.gateway = gateway;\n this.renderer = renderer;\n this.messages = messages;\n this.spinner = spinner;\n }\n\n init() {\n this.render();\n jQuery(document.body).on('updated_checkout', () => {\n this.render();\n });\n jQuery(document.body).on('updated_checkout payment_method_selected', () => {\n this.switchBetweenPayPalandOrderButton();\n });\n this.switchBetweenPayPalandOrderButton();\n }\n\n shouldRender() {\n if (document.querySelector(this.gateway.button.cancel_wrapper)) {\n return false;\n }\n\n return document.querySelector(this.gateway.button.wrapper) !== null || document.querySelector(this.gateway.hosted_fields.wrapper) !== null;\n }\n\n render() {\n if (!this.shouldRender()) {\n return;\n }\n\n if (document.querySelector(this.gateway.hosted_fields.wrapper + '>div')) {\n document.querySelector(this.gateway.hosted_fields.wrapper + '>div').setAttribute('style', '');\n }\n\n const actionHandler = new ActionHandler_CheckoutActionHandler(PayPalCommerceGateway, new modules_ErrorHandler(this.gateway.labels.error.generic), this.spinner);\n this.renderer.render(this.gateway.button.wrapper, this.gateway.hosted_fields.wrapper, actionHandler.configuration());\n }\n\n switchBetweenPayPalandOrderButton() {\n const urlParams = new URLSearchParams(window.location.search);\n\n if (urlParams.has('change_payment_method')) {\n return;\n }\n\n const currentPaymentMethod = jQuery('input[name=\"payment_method\"]:checked').val();\n\n if (currentPaymentMethod !== 'ppcp-gateway' && currentPaymentMethod !== 'ppcp-credit-card-gateway') {\n this.renderer.hideButtons(this.gateway.button.wrapper);\n this.renderer.hideButtons(this.gateway.messages.wrapper);\n this.renderer.hideButtons(this.gateway.hosted_fields.wrapper);\n jQuery('#place_order').show();\n } else {\n jQuery('#place_order').hide();\n\n if (currentPaymentMethod === 'ppcp-gateway') {\n this.renderer.showButtons(this.gateway.button.wrapper);\n this.renderer.showButtons(this.gateway.messages.wrapper);\n this.messages.render();\n this.renderer.hideButtons(this.gateway.hosted_fields.wrapper);\n }\n\n if (currentPaymentMethod === 'ppcp-credit-card-gateway') {\n this.renderer.hideButtons(this.gateway.button.wrapper);\n this.renderer.hideButtons(this.gateway.messages.wrapper);\n this.renderer.showButtons(this.gateway.hosted_fields.wrapper);\n }\n }\n }\n\n}\n\n/* harmony default export */ const ContextBootstrap_PayNowBootstrap = (PayNowBootstrap);\n;// CONCATENATED MODULE: ./resources/js/modules/Renderer/Renderer.js\nclass Renderer {\n constructor(creditCardRenderer, defaultConfig) {\n this.defaultConfig = defaultConfig;\n this.creditCardRenderer = creditCardRenderer;\n }\n\n render(wrapper, hostedFieldsWrapper, contextConfig) {\n this.renderButtons(wrapper, contextConfig);\n this.creditCardRenderer.render(hostedFieldsWrapper, contextConfig);\n }\n\n renderButtons(wrapper, contextConfig) {\n if (!document.querySelector(wrapper) || this.isAlreadyRendered(wrapper) || 'undefined' === typeof paypal.Buttons) {\n return;\n }\n\n const style = wrapper === this.defaultConfig.button.wrapper ? this.defaultConfig.button.style : this.defaultConfig.button.mini_cart_style;\n paypal.Buttons({\n style,\n ...contextConfig\n }).render(wrapper);\n }\n\n isAlreadyRendered(wrapper) {\n return document.querySelector(wrapper).hasChildNodes();\n }\n\n hideButtons(element) {\n const domElement = document.querySelector(element);\n\n if (!domElement) {\n return false;\n }\n\n domElement.style.display = 'none';\n return true;\n }\n\n showButtons(element) {\n const domElement = document.querySelector(element);\n\n if (!domElement) {\n return false;\n }\n\n domElement.style.display = 'block';\n return true;\n }\n\n disableCreditCardFields() {\n this.creditCardRenderer.disableFields();\n }\n\n enableCreditCardFields() {\n this.creditCardRenderer.enableFields();\n }\n\n}\n\n/* harmony default export */ const Renderer_Renderer = (Renderer);\n;// CONCATENATED MODULE: ./resources/js/modules/Helper/DccInputFactory.js\nconst dccInputFactory = original => {\n const styles = window.getComputedStyle(original);\n const newElement = document.createElement('span');\n newElement.setAttribute('id', original.id);\n Object.values(styles).forEach(prop => {\n if (!styles[prop] || !isNaN(prop)) {\n return;\n }\n\n newElement.style.setProperty(prop, '' + styles[prop]);\n });\n return newElement;\n};\n\n/* harmony default export */ const DccInputFactory = (dccInputFactory);\n;// CONCATENATED MODULE: ./resources/js/modules/Renderer/CreditCardRenderer.js\n\n\nclass CreditCardRenderer {\n constructor(defaultConfig, errorHandler, spinner) {\n this.defaultConfig = defaultConfig;\n this.errorHandler = errorHandler;\n this.spinner = spinner;\n this.cardValid = false;\n this.formValid = false;\n this.currentHostedFieldsInstance = null;\n this.formSubmissionSubscribed = false;\n }\n\n render(wrapper, contextConfig) {\n if (this.defaultConfig.context !== 'checkout' && this.defaultConfig.context !== 'pay-now' || wrapper === null || document.querySelector(wrapper) === null) {\n return;\n }\n\n if (typeof paypal.HostedFields === 'undefined' || !paypal.HostedFields.isEligible()) {\n const wrapperElement = document.querySelector(wrapper);\n wrapperElement.parentNode.removeChild(wrapperElement);\n return;\n }\n\n if (this.currentHostedFieldsInstance) {\n this.currentHostedFieldsInstance.teardown().catch(err => console.error(`Hosted fields teardown error: ${err}`));\n this.currentHostedFieldsInstance = null;\n }\n\n const gateWayBox = document.querySelector('.payment_box.payment_method_ppcp-credit-card-gateway');\n const oldDisplayStyle = gateWayBox.style.display;\n gateWayBox.style.display = 'block';\n const hideDccGateway = document.querySelector('#ppcp-hide-dcc');\n\n if (hideDccGateway) {\n hideDccGateway.parentNode.removeChild(hideDccGateway);\n }\n\n const cardNumberField = document.querySelector('#ppcp-credit-card-gateway-card-number');\n const stylesRaw = window.getComputedStyle(cardNumberField);\n let styles = {};\n Object.values(stylesRaw).forEach(prop => {\n if (!stylesRaw[prop]) {\n return;\n }\n\n styles[prop] = '' + stylesRaw[prop];\n });\n const cardNumber = DccInputFactory(cardNumberField);\n cardNumberField.parentNode.replaceChild(cardNumber, cardNumberField);\n const cardExpiryField = document.querySelector('#ppcp-credit-card-gateway-card-expiry');\n const cardExpiry = DccInputFactory(cardExpiryField);\n cardExpiryField.parentNode.replaceChild(cardExpiry, cardExpiryField);\n const cardCodeField = document.querySelector('#ppcp-credit-card-gateway-card-cvc');\n const cardCode = DccInputFactory(cardCodeField);\n cardCodeField.parentNode.replaceChild(cardCode, cardCodeField);\n gateWayBox.style.display = oldDisplayStyle;\n const formWrapper = '.payment_box payment_method_ppcp-credit-card-gateway';\n\n if (this.defaultConfig.enforce_vault && document.querySelector(formWrapper + ' .ppcp-credit-card-vault')) {\n document.querySelector(formWrapper + ' .ppcp-credit-card-vault').checked = true;\n document.querySelector(formWrapper + ' .ppcp-credit-card-vault').setAttribute('disabled', true);\n }\n\n paypal.HostedFields.render({\n createOrder: contextConfig.createOrder,\n styles: {\n 'input': styles\n },\n fields: {\n number: {\n selector: '#ppcp-credit-card-gateway-card-number',\n placeholder: this.defaultConfig.hosted_fields.labels.credit_card_number\n },\n cvv: {\n selector: '#ppcp-credit-card-gateway-card-cvc',\n placeholder: this.defaultConfig.hosted_fields.labels.cvv\n },\n expirationDate: {\n selector: '#ppcp-credit-card-gateway-card-expiry',\n placeholder: this.defaultConfig.hosted_fields.labels.mm_yy\n }\n }\n }).then(hostedFields => {\n document.dispatchEvent(new CustomEvent(\"hosted_fields_loaded\"));\n this.currentHostedFieldsInstance = hostedFields;\n hostedFields.on('inputSubmitRequest', () => {\n this._submit(contextConfig);\n });\n hostedFields.on('cardTypeChange', event => {\n if (!event.cards.length) {\n this.cardValid = false;\n return;\n }\n\n const validCards = this.defaultConfig.hosted_fields.valid_cards;\n this.cardValid = validCards.indexOf(event.cards[0].type) !== -1;\n });\n hostedFields.on('validityChange', event => {\n const formValid = Object.keys(event.fields).every(function (key) {\n return event.fields[key].isValid;\n });\n this.formValid = formValid;\n });\n\n if (!this.formSubmissionSubscribed) {\n document.querySelector(wrapper + ' button').addEventListener('click', event => {\n event.preventDefault();\n\n this._submit(contextConfig);\n });\n this.formSubmissionSubscribed = true;\n }\n });\n document.querySelector('#payment_method_ppcp-credit-card-gateway').addEventListener('click', () => {\n document.querySelector('label[for=ppcp-credit-card-gateway-card-number]').click();\n });\n }\n\n disableFields() {\n if (this.currentHostedFieldsInstance) {\n this.currentHostedFieldsInstance.setAttribute({\n field: 'number',\n attribute: 'disabled'\n });\n this.currentHostedFieldsInstance.setAttribute({\n field: 'cvv',\n attribute: 'disabled'\n });\n this.currentHostedFieldsInstance.setAttribute({\n field: 'expirationDate',\n attribute: 'disabled'\n });\n }\n }\n\n enableFields() {\n if (this.currentHostedFieldsInstance) {\n this.currentHostedFieldsInstance.removeAttribute({\n field: 'number',\n attribute: 'disabled'\n });\n this.currentHostedFieldsInstance.removeAttribute({\n field: 'cvv',\n attribute: 'disabled'\n });\n this.currentHostedFieldsInstance.removeAttribute({\n field: 'expirationDate',\n attribute: 'disabled'\n });\n }\n }\n\n _submit(contextConfig) {\n this.spinner.block();\n this.errorHandler.clear();\n\n if (this.formValid && this.cardValid) {\n const save_card = this.defaultConfig.save_card ? true : false;\n const vault = document.getElementById('ppcp-credit-card-vault') ? document.getElementById('ppcp-credit-card-vault').checked : save_card;\n const contingency = this.defaultConfig.hosted_fields.contingency;\n const hostedFieldsData = {\n vault: vault\n };\n\n if (contingency !== 'NO_3D_SECURE') {\n hostedFieldsData.contingencies = [contingency];\n }\n\n this.currentHostedFieldsInstance.submit(hostedFieldsData).then(payload => {\n payload.orderID = payload.orderId;\n this.spinner.unblock();\n return contextConfig.onApprove(payload);\n }).catch(err => {\n console.error(err);\n this.spinner.unblock();\n });\n } else {\n this.spinner.unblock();\n const message = !this.cardValid ? this.defaultConfig.hosted_fields.labels.card_not_supported : this.defaultConfig.hosted_fields.labels.fields_not_valid;\n this.errorHandler.message(message);\n }\n }\n\n}\n\n/* harmony default export */ const Renderer_CreditCardRenderer = (CreditCardRenderer);\n;// CONCATENATED MODULE: ./resources/js/modules/DataClientIdAttributeHandler.js\nconst storageKey = 'ppcp-data-client-id';\n\nconst validateToken = (token, user) => {\n if (!token) {\n return false;\n }\n\n if (token.user !== user) {\n return false;\n }\n\n const currentTime = new Date().getTime();\n const isExpired = currentTime >= token.expiration * 1000;\n return !isExpired;\n};\n\nconst storedTokenForUser = user => {\n const token = JSON.parse(sessionStorage.getItem(storageKey));\n\n if (validateToken(token, user)) {\n return token.token;\n }\n\n return null;\n};\n\nconst storeToken = token => {\n sessionStorage.setItem(storageKey, JSON.stringify(token));\n};\n\nconst dataClientIdAttributeHandler = (script, config) => {\n fetch(config.endpoint, {\n method: 'POST',\n body: JSON.stringify({\n nonce: config.nonce\n })\n }).then(res => {\n return res.json();\n }).then(data => {\n const isValid = validateToken(data, config.user);\n\n if (!isValid) {\n return;\n }\n\n storeToken(data);\n script.setAttribute('data-client-token', data.token);\n document.body.append(script);\n });\n};\n\n/* harmony default export */ const DataClientIdAttributeHandler = (dataClientIdAttributeHandler);\n;// CONCATENATED MODULE: ./resources/js/modules/Renderer/MessageRenderer.js\nclass MessageRenderer {\n constructor(config) {\n this.config = config;\n }\n\n render() {\n if (!this.shouldRender()) {\n return;\n }\n\n paypal.Messages({\n amount: this.config.amount,\n placement: this.config.placement,\n style: this.config.style\n }).render(this.config.wrapper);\n }\n\n renderWithAmount(amount) {\n if (!this.shouldRender()) {\n return;\n }\n\n const newWrapper = document.createElement('div');\n newWrapper.setAttribute('id', this.config.wrapper.replace('#', ''));\n const sibling = document.querySelector(this.config.wrapper).nextSibling;\n document.querySelector(this.config.wrapper).parentElement.removeChild(document.querySelector(this.config.wrapper));\n sibling.parentElement.insertBefore(newWrapper, sibling);\n paypal.Messages({\n amount,\n placement: this.config.placement,\n style: this.config.style\n }).render(this.config.wrapper);\n }\n\n shouldRender() {\n if (typeof paypal.Messages === 'undefined' || typeof this.config.wrapper === 'undefined') {\n return false;\n }\n\n if (!document.querySelector(this.config.wrapper)) {\n return false;\n }\n\n return true;\n }\n\n}\n\n/* harmony default export */ const Renderer_MessageRenderer = (MessageRenderer);\n;// CONCATENATED MODULE: ./resources/js/modules/Helper/Spinner.js\nclass Spinner {\n constructor() {\n this.target = 'form.woocommerce-checkout';\n }\n\n setTarget(target) {\n this.target = target;\n }\n\n block() {\n jQuery(this.target).block({\n message: null,\n overlayCSS: {\n background: '#fff',\n opacity: 0.6\n }\n });\n }\n\n unblock() {\n jQuery(this.target).unblock();\n }\n\n}\n\n/* harmony default export */ const Helper_Spinner = (Spinner);\n;// CONCATENATED MODULE: ./resources/js/button.js\n\n\n\n\n\n\n\n\n\n\n\n\nconst bootstrap = () => {\n const errorHandler = new modules_ErrorHandler(PayPalCommerceGateway.labels.error.generic);\n const spinner = new Helper_Spinner();\n const creditCardRenderer = new Renderer_CreditCardRenderer(PayPalCommerceGateway, errorHandler, spinner);\n const renderer = new Renderer_Renderer(creditCardRenderer, PayPalCommerceGateway);\n const messageRenderer = new Renderer_MessageRenderer(PayPalCommerceGateway.messages);\n const context = PayPalCommerceGateway.context;\n\n if (context === 'mini-cart' || context === 'product') {\n if (PayPalCommerceGateway.mini_cart_buttons_enabled === '1') {\n const miniCartBootstrap = new ContextBootstrap_MiniCartBootstap(PayPalCommerceGateway, renderer);\n miniCartBootstrap.init();\n }\n }\n\n if (context === 'product' && PayPalCommerceGateway.single_product_buttons_enabled === '1') {\n const singleProductBootstrap = new ContextBootstrap_SingleProductBootstap(PayPalCommerceGateway, renderer, messageRenderer);\n singleProductBootstrap.init();\n }\n\n if (context === 'cart') {\n const cartBootstrap = new CartBootstap(PayPalCommerceGateway, renderer);\n cartBootstrap.init();\n }\n\n if (context === 'checkout') {\n const checkoutBootstap = new ContextBootstrap_CheckoutBootstap(PayPalCommerceGateway, renderer, messageRenderer, spinner);\n checkoutBootstap.init();\n }\n\n if (context === 'pay-now') {\n const payNowBootstrap = new ContextBootstrap_PayNowBootstrap(PayPalCommerceGateway, renderer, messageRenderer, spinner);\n payNowBootstrap.init();\n }\n\n if (context !== 'checkout') {\n messageRenderer.render();\n }\n};\n\ndocument.addEventListener('DOMContentLoaded', () => {\n if (!typeof PayPalCommerceGateway) {\n console.error('PayPal button could not be configured.');\n return;\n }\n\n const script = document.createElement('script');\n script.addEventListener('load', event => {\n bootstrap();\n });\n script.setAttribute('src', PayPalCommerceGateway.button.url);\n Object.entries(PayPalCommerceGateway.script_attributes).forEach(keyValue => {\n script.setAttribute(keyValue[0], keyValue[1]);\n });\n\n if (PayPalCommerceGateway.data_client_id.set_attribute) {\n DataClientIdAttributeHandler(script, PayPalCommerceGateway.data_client_id);\n return;\n }\n\n document.body.append(script);\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFBQSxPQUFPLENBQUNDLEtBQVIsQ0FBYyx3Q0FBZDtBQUNBO0FBQ0g7O0FBQ0QsUUFBTWdOLE1BQU0sR0FBR3ZTLFFBQVEsQ0FBQ3dCLGFBQVQsQ0FBdUIsUUFBdkIsQ0FBZjtBQUVBK1EsRUFBQUEsTUFBTSxDQUFDaEMsZ0JBQVAsQ0FBd0IsTUFBeEIsRUFBaUNWLEtBQUQsSUFBVztBQUN2Q3lELElBQUFBLFNBQVM7QUFDWixHQUZEO0FBR0FmLEVBQUFBLE1BQU0sQ0FBQzlRLFlBQVAsQ0FBb0IsS0FBcEIsRUFBMkJxQyxxQkFBcUIsQ0FBQ3NDLE1BQXRCLENBQTZCMk4sR0FBeEQ7QUFDQTVHLEVBQUFBLE1BQU0sQ0FBQzZHLE9BQVAsQ0FBZWxRLHFCQUFxQixDQUFDbVEsaUJBQXJDLEVBQXdEMUwsT0FBeEQsQ0FDSzJMLFFBQUQsSUFBYztBQUNWM0IsSUFBQUEsTUFBTSxDQUFDOVEsWUFBUCxDQUFvQnlTLFFBQVEsQ0FBQyxDQUFELENBQTVCLEVBQWlDQSxRQUFRLENBQUMsQ0FBRCxDQUF6QztBQUNILEdBSEw7O0FBTUEsTUFBSXBRLHFCQUFxQixDQUFDcVEsY0FBdEIsQ0FBcUNDLGFBQXpDLEVBQXdEO0FBQ3BEOUIsSUFBQUEsNEJBQTRCLENBQUNDLE1BQUQsRUFBU3pPLHFCQUFxQixDQUFDcVEsY0FBL0IsQ0FBNUI7QUFDQTtBQUNIOztBQUVEblUsRUFBQUEsUUFBUSxDQUFDNEMsSUFBVCxDQUFjNkgsTUFBZCxDQUFxQjhILE1BQXJCO0FBQ0gsQ0F6QkwiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9wcGMtYnV0dG9uLy4vcmVzb3VyY2VzL2pzL21vZHVsZXMvRXJyb3JIYW5kbGVyLmpzP2U2NWEiLCJ3ZWJwYWNrOi8vcHBjLWJ1dHRvbi8uL3Jlc291cmNlcy9qcy9tb2R1bGVzL09uQXBwcm92ZUhhbmRsZXIvb25BcHByb3ZlRm9yQ29udGludWUuanM/YzQ1NCIsIndlYnBhY2s6Ly9wcGMtYnV0dG9uLy4vcmVzb3VyY2VzL2pzL21vZHVsZXMvSGVscGVyL1BheWVyRGF0YS5qcz8yYWYxIiwid2VicGFjazovL3BwYy1idXR0b24vLi9yZXNvdXJjZXMvanMvbW9kdWxlcy9BY3Rpb25IYW5kbGVyL0NhcnRBY3Rpb25IYW5kbGVyLmpzPzgyY2YiLCJ3ZWJwYWNrOi8vcHBjLWJ1dHRvbi8uL3Jlc291cmNlcy9qcy9tb2R1bGVzL0NvbnRleHRCb290c3RyYXAvTWluaUNhcnRCb290c3RhcC5qcz9kNTUyIiwid2VicGFjazovL3BwYy1idXR0b24vLi9yZXNvdXJjZXMvanMvbW9kdWxlcy9IZWxwZXIvVXBkYXRlQ2FydC5qcz9lNDIyIiwid2VicGFjazovL3BwYy1idXR0b24vLi9yZXNvdXJjZXMvanMvbW9kdWxlcy9IZWxwZXIvQnV0dG9uc1RvZ2dsZUxpc3RlbmVyLmpzP2UxOTMiLCJ3ZWJwYWNrOi8vcHBjLWJ1dHRvbi8uL3Jlc291cmNlcy9qcy9tb2R1bGVzL0VudGl0eS9Qcm9kdWN0LmpzPzlmZmYiLCJ3ZWJwYWNrOi8vcHBjLWJ1dHRvbi8uL3Jlc291cmNlcy9qcy9tb2R1bGVzL0FjdGlvbkhhbmRsZXIvU2luZ2xlUHJvZHVjdEFjdGlvbkhhbmRsZXIuanM/ZDliNyIsIndlYnBhY2s6Ly9wcGMtYnV0dG9uLy4vcmVzb3VyY2VzL2pzL21vZHVsZXMvQ29udGV4dEJvb3RzdHJhcC9TaW5nbGVQcm9kdWN0Qm9vdHN0YXAuanM/N2MxOSIsIndlYnBhY2s6Ly9wcGMtYnV0dG9uLy4vcmVzb3VyY2VzL2pzL21vZHVsZXMvQ29udGV4dEJvb3RzdHJhcC9DYXJ0Qm9vdHN0YXAuanM/NWU5NCIsIndlYnBhY2s6Ly9wcGMtYnV0dG9uLy4vcmVzb3VyY2VzL2pzL21vZHVsZXMvT25BcHByb3ZlSGFuZGxlci9vbkFwcHJvdmVGb3JQYXlOb3cuanM/OTMwNSIsIndlYnBhY2s6Ly9wcGMtYnV0dG9uLy4vcmVzb3VyY2VzL2pzL21vZHVsZXMvQWN0aW9uSGFuZGxlci9DaGVja291dEFjdGlvbkhhbmRsZXIuanM/ODUxNSIsIndlYnBhY2s6Ly9wcGMtYnV0dG9uLy4vcmVzb3VyY2VzL2pzL21vZHVsZXMvQ29udGV4dEJvb3RzdHJhcC9DaGVja291dEJvb3RzdGFwLmpzP2M4NTUiLCJ3ZWJwYWNrOi8vcHBjLWJ1dHRvbi8uL3Jlc291cmNlcy9qcy9tb2R1bGVzL0NvbnRleHRCb290c3RyYXAvUGF5Tm93Qm9vdHN0cmFwLmpzP2Q5ZjUiLCJ3ZWJwYWNrOi8vcHBjLWJ1dHRvbi8uL3Jlc291cmNlcy9qcy9tb2R1bGVzL1JlbmRlcmVyL1JlbmRlcmVyLmpzP2ZhOTMiLCJ3ZWJwYWNrOi8vcHBjLWJ1dHRvbi8uL3Jlc291cmNlcy9qcy9tb2R1bGVzL0hlbHBlci9EY2NJbnB1dEZhY3RvcnkuanM/MmEyZiIsIndlYnBhY2s6Ly9wcGMtYnV0dG9uLy4vcmVzb3VyY2VzL2pzL21vZHVsZXMvUmVuZGVyZXIvQ3JlZGl0Q2FyZFJlbmRlcmVyLmpzPzM4N2EiLCJ3ZWJwYWNrOi8vcHBjLWJ1dHRvbi8uL3Jlc291cmNlcy9qcy9tb2R1bGVzL0RhdGFDbGllbnRJZEF0dHJpYnV0ZUhhbmRsZXIuanM/ZWUwYiIsIndlYnBhY2s6Ly9wcGMtYnV0dG9uLy4vcmVzb3VyY2VzL2pzL21vZHVsZXMvUmVuZGVyZXIvTWVzc2FnZVJlbmRlcmVyLmpzP2NkMDIiLCJ3ZWJwYWNrOi8vcHBjLWJ1dHRvbi8uL3Jlc291cmNlcy9qcy9tb2R1bGVzL0hlbHBlci9TcGlubmVyLmpzPzE3MDgiLCJ3ZWJwYWNrOi8vcHBjLWJ1dHRvbi8uL3Jlc291cmNlcy9qcy9idXR0b24uanM/MDYwZiJdLCJzb3VyY2VzQ29udGVudCI6WyJjbGFzcyBFcnJvckhhbmRsZXIge1xuXG4gICAgY29uc3RydWN0b3IoZ2VuZXJpY0Vycm9yVGV4dClcbiAgICB7XG4gICAgICAgIHRoaXMuZ2VuZXJpY0Vycm9yVGV4dCA9IGdlbmVyaWNFcnJvclRleHQ7XG4gICAgICAgIHRoaXMud3JhcHBlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy53b29jb21tZXJjZS1ub3RpY2VzLXdyYXBwZXInKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlc0xpc3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd1bC53b29jb21tZXJjZS1lcnJvcicpO1xuICAgIH1cblxuICAgIGdlbmVyaWNFcnJvcigpIHtcbiAgICAgICAgaWYgKHRoaXMud3JhcHBlci5jbGFzc0xpc3QuY29udGFpbnMoJ3BwY3AtcGVyc2lzdCcpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jbGVhcigpO1xuICAgICAgICB0aGlzLm1lc3NhZ2UodGhpcy5nZW5lcmljRXJyb3JUZXh0KVxuICAgIH1cblxuICAgIGFwcGVuZFByZXBhcmVkRXJyb3JNZXNzYWdlRWxlbWVudChlcnJvck1lc3NhZ2VFbGVtZW50KVxuICAgIHtcbiAgICAgICAgaWYodGhpcy5tZXNzYWdlc0xpc3QgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZU1lc3NhZ2VzTGlzdCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5tZXNzYWdlc0xpc3QucmVwbGFjZVdpdGgoZXJyb3JNZXNzYWdlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgbWVzc2FnZSh0ZXh0LCBwZXJzaXN0ID0gZmFsc2UpXG4gICAge1xuICAgICAgICBpZighIHR5cGVvZiBTdHJpbmcgfHwgdGV4dC5sZW5ndGggPT09IDApe1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBIG5ldyBtZXNzYWdlIHRleHQgbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmcuJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZih0aGlzLm1lc3NhZ2VzTGlzdCA9PT0gbnVsbCl7XG4gICAgICAgICAgICB0aGlzLnByZXBhcmVNZXNzYWdlc0xpc3QoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwZXJzaXN0KSB7XG4gICAgICAgICAgICB0aGlzLndyYXBwZXIuY2xhc3NMaXN0LmFkZCgncHBjcC1wZXJzaXN0Jyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLndyYXBwZXIuY2xhc3NMaXN0LnJlbW92ZSgncHBjcC1wZXJzaXN0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbWVzc2FnZU5vZGUgPSB0aGlzLnByZXBhcmVNZXNzYWdlc0xpc3RJdGVtKHRleHQpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VzTGlzdC5hcHBlbmRDaGlsZChtZXNzYWdlTm9kZSk7XG5cbiAgICAgICAgalF1ZXJ5LnNjcm9sbF90b19ub3RpY2VzKGpRdWVyeSgnLndvb2NvbW1lcmNlLW5vdGljZXMtd3JhcHBlcicpKVxuICAgIH1cblxuICAgIHByZXBhcmVNZXNzYWdlc0xpc3QoKVxuICAgIHtcbiAgICAgICAgaWYodGhpcy5tZXNzYWdlc0xpc3QgPT09IG51bGwpe1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlc0xpc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd1bCcpO1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlc0xpc3Quc2V0QXR0cmlidXRlKCdjbGFzcycsICd3b29jb21tZXJjZS1lcnJvcicpO1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlc0xpc3Quc2V0QXR0cmlidXRlKCdyb2xlJywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB0aGlzLndyYXBwZXIuYXBwZW5kQ2hpbGQodGhpcy5tZXNzYWdlc0xpc3QpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJlcGFyZU1lc3NhZ2VzTGlzdEl0ZW0obWVzc2FnZSlcbiAgICB7XG4gICAgICAgIGNvbnN0IGxpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGknKTtcbiAgICAgICAgbGkuaW5uZXJIVE1MID0gbWVzc2FnZTtcblxuICAgICAgICByZXR1cm4gbGk7XG4gICAgfVxuXG4gICAgc2FuaXRpemUodGV4dClcbiAgICB7XG4gICAgICAgIGNvbnN0IHRleHRhcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTtcbiAgICAgICAgdGV4dGFyZWEuaW5uZXJIVE1MID0gdGV4dDtcbiAgICAgICAgcmV0dXJuIHRleHRhcmVhLnZhbHVlLnJlcGxhY2UoJ0Vycm9yOiAnLCAnJyk7XG4gICAgfVxuXG4gICAgY2xlYXIoKVxuICAgIHtcbiAgICAgICAgaWYgKCEgdGhpcy53cmFwcGVyLmNsYXNzTGlzdC5jb250YWlucygnd29vY29tbWVyY2UtZXJyb3InKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMud3JhcHBlci5jbGFzc0xpc3QucmVtb3ZlKCd3b29jb21tZXJjZS1lcnJvcicpO1xuICAgICAgICB0aGlzLndyYXBwZXIuaW5uZXJUZXh0ID0gJyc7XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBFcnJvckhhbmRsZXI7XG4iLCJjb25zdCBvbkFwcHJvdmUgPSAoY29udGV4dCwgZXJyb3JIYW5kbGVyKSA9PiB7XG4gICAgcmV0dXJuIChkYXRhLCBhY3Rpb25zKSA9PiB7XG4gICAgICAgIHJldHVybiBmZXRjaChjb250ZXh0LmNvbmZpZy5hamF4LmFwcHJvdmVfb3JkZXIuZW5kcG9pbnQsIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIG5vbmNlOiBjb250ZXh0LmNvbmZpZy5hamF4LmFwcHJvdmVfb3JkZXIubm9uY2UsXG4gICAgICAgICAgICAgICAgb3JkZXJfaWQ6ZGF0YS5vcmRlcklEXG4gICAgICAgICAgICB9KVxuICAgICAgICB9KS50aGVuKChyZXMpPT57XG4gICAgICAgICAgICByZXR1cm4gcmVzLmpzb24oKTtcbiAgICAgICAgfSkudGhlbigoZGF0YSk9PntcbiAgICAgICAgICAgIGlmICghZGF0YS5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgZXJyb3JIYW5kbGVyLmdlbmVyaWNFcnJvcigpO1xuICAgICAgICAgICAgICAgIHJldHVybiBhY3Rpb25zLnJlc3RhcnQoKS5jYXRjaChlcnIgPT4ge1xuICAgICAgICAgICAgICAgICAgICBlcnJvckhhbmRsZXIuZ2VuZXJpY0Vycm9yKCk7XG4gICAgICAgICAgICAgICAgfSk7O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbG9jYXRpb24uaHJlZiA9IGNvbnRleHQuY29uZmlnLnJlZGlyZWN0O1xuICAgICAgICB9KTtcblxuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgb25BcHByb3ZlO1xuIiwiZXhwb3J0IGNvbnN0IHBheWVyRGF0YSA9ICgpID0+IHtcbiAgICBjb25zdCBwYXllciA9IFBheVBhbENvbW1lcmNlR2F0ZXdheS5wYXllcjtcbiAgICBpZiAoISBwYXllcikge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBwaG9uZSA9IChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjYmlsbGluZ19waG9uZScpIHx8IHR5cGVvZiBwYXllci5waG9uZSAhPT0gJ3VuZGVmaW5lZCcpID9cbiAgICB7XG4gICAgICAgIHBob25lX3R5cGU6XCJIT01FXCIsXG4gICAgICAgICAgICBwaG9uZV9udW1iZXI6e1xuICAgICAgICAgICAgbmF0aW9uYWxfbnVtYmVyIDogKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNiaWxsaW5nX3Bob25lJykpID8gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2JpbGxpbmdfcGhvbmUnKS52YWx1ZSA6IHBheWVyLnBob25lLnBob25lX251bWJlci5uYXRpb25hbF9udW1iZXJcbiAgICAgICAgfVxuICAgIH0gOiBudWxsO1xuICAgIGNvbnN0IHBheWVyRGF0YSA9IHtcbiAgICAgICAgZW1haWxfYWRkcmVzczooZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2JpbGxpbmdfZW1haWwnKSkgPyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjYmlsbGluZ19lbWFpbCcpLnZhbHVlIDogcGF5ZXIuZW1haWxfYWRkcmVzcyxcbiAgICAgICAgbmFtZSA6IHtcbiAgICAgICAgICAgIHN1cm5hbWU6IChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjYmlsbGluZ19sYXN0X25hbWUnKSkgPyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjYmlsbGluZ19sYXN0X25hbWUnKS52YWx1ZSA6IHBheWVyLm5hbWUuc3VybmFtZSxcbiAgICAgICAgICAgIGdpdmVuX25hbWU6IChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjYmlsbGluZ19maXJzdF9uYW1lJykpID8gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2JpbGxpbmdfZmlyc3RfbmFtZScpLnZhbHVlIDogcGF5ZXIubmFtZS5naXZlbl9uYW1lXG4gICAgICAgIH0sXG4gICAgICAgIGFkZHJlc3MgOiB7XG4gICAgICAgICAgICBjb3VudHJ5X2NvZGUgOiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2JpbGxpbmdfY291bnRyeScpKSA/IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNiaWxsaW5nX2NvdW50cnknKS52YWx1ZSA6IHBheWVyLmFkZHJlc3MuY291bnRyeV9jb2RlLFxuICAgICAgICAgICAgYWRkcmVzc19saW5lXzEgOiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2JpbGxpbmdfYWRkcmVzc18xJykpID8gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2JpbGxpbmdfYWRkcmVzc18xJykudmFsdWUgOiBwYXllci5hZGRyZXNzLmFkZHJlc3NfbGluZV8xLFxuICAgICAgICAgICAgYWRkcmVzc19saW5lXzIgOiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2JpbGxpbmdfYWRkcmVzc18yJykpID8gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2JpbGxpbmdfYWRkcmVzc18yJykudmFsdWUgOiBwYXllci5hZGRyZXNzLmFkZHJlc3NfbGluZV8yLFxuICAgICAgICAgICAgYWRtaW5fYXJlYV8xIDogKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNiaWxsaW5nX3N0YXRlJykpID8gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2JpbGxpbmdfc3RhdGUnKS52YWx1ZSA6IHBheWVyLmFkZHJlc3MuYWRtaW5fYXJlYV8xLFxuICAgICAgICAgICAgYWRtaW5fYXJlYV8yIDogKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNiaWxsaW5nX2NpdHknKSkgPyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjYmlsbGluZ19jaXR5JykudmFsdWUgOiBwYXllci5hZGRyZXNzLmFkbWluX2FyZWFfMixcbiAgICAgICAgICAgIHBvc3RhbF9jb2RlIDogKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNiaWxsaW5nX3Bvc3Rjb2RlJykpID8gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2JpbGxpbmdfcG9zdGNvZGUnKS52YWx1ZSA6IHBheWVyLmFkZHJlc3MucG9zdGFsX2NvZGVcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBpZiAocGhvbmUpIHtcbiAgICAgICAgcGF5ZXJEYXRhLnBob25lID0gcGhvbmU7XG4gICAgfVxuICAgIHJldHVybiBwYXllckRhdGE7XG59XG4iLCJpbXBvcnQgb25BcHByb3ZlIGZyb20gJy4uL09uQXBwcm92ZUhhbmRsZXIvb25BcHByb3ZlRm9yQ29udGludWUuanMnO1xuaW1wb3J0IHtwYXllckRhdGF9IGZyb20gXCIuLi9IZWxwZXIvUGF5ZXJEYXRhXCI7XG5cbmNsYXNzIENhcnRBY3Rpb25IYW5kbGVyIHtcblxuICAgIGNvbnN0cnVjdG9yKGNvbmZpZywgZXJyb3JIYW5kbGVyKSB7XG4gICAgICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xuICAgICAgICB0aGlzLmVycm9ySGFuZGxlciA9IGVycm9ySGFuZGxlcjtcbiAgICB9XG5cbiAgICBjb25maWd1cmF0aW9uKCkge1xuICAgICAgICBjb25zdCBjcmVhdGVPcmRlciA9IChkYXRhLCBhY3Rpb25zKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwYXllciA9IHBheWVyRGF0YSgpO1xuICAgICAgICAgICAgY29uc3QgYm5Db2RlID0gdHlwZW9mIHRoaXMuY29uZmlnLmJuX2NvZGVzW3RoaXMuY29uZmlnLmNvbnRleHRdICE9PSAndW5kZWZpbmVkJyA/XG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWcuYm5fY29kZXNbdGhpcy5jb25maWcuY29udGV4dF0gOiAnJztcbiAgICAgICAgICAgIHJldHVybiBmZXRjaCh0aGlzLmNvbmZpZy5hamF4LmNyZWF0ZV9vcmRlci5lbmRwb2ludCwge1xuICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgbm9uY2U6IHRoaXMuY29uZmlnLmFqYXguY3JlYXRlX29yZGVyLm5vbmNlLFxuICAgICAgICAgICAgICAgICAgICBwdXJjaGFzZV91bml0czogW10sXG4gICAgICAgICAgICAgICAgICAgIGJuX2NvZGU6Ym5Db2RlLFxuICAgICAgICAgICAgICAgICAgICBwYXllcixcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDp0aGlzLmNvbmZpZy5jb250ZXh0XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uKHJlcykge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXMuanNvbigpO1xuICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbihkYXRhKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFkYXRhLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoZGF0YS5kYXRhLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5kYXRhLmlkO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNyZWF0ZU9yZGVyLFxuICAgICAgICAgICAgb25BcHByb3ZlOiBvbkFwcHJvdmUodGhpcywgdGhpcy5lcnJvckhhbmRsZXIpLFxuICAgICAgICAgICAgb25FcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lcnJvckhhbmRsZXIuZ2VuZXJpY0Vycm9yKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBDYXJ0QWN0aW9uSGFuZGxlcjtcbiIsImltcG9ydCBFcnJvckhhbmRsZXIgZnJvbSAnLi4vRXJyb3JIYW5kbGVyJztcbmltcG9ydCBDYXJ0QWN0aW9uSGFuZGxlciBmcm9tICcuLi9BY3Rpb25IYW5kbGVyL0NhcnRBY3Rpb25IYW5kbGVyJztcblxuY2xhc3MgTWluaUNhcnRCb290c3RhcCB7XG4gICAgY29uc3RydWN0b3IoZ2F0ZXdheSwgcmVuZGVyZXIpIHtcbiAgICAgICAgdGhpcy5nYXRld2F5ID0gZ2F0ZXdheTtcbiAgICAgICAgdGhpcy5yZW5kZXJlciA9IHJlbmRlcmVyO1xuICAgICAgICB0aGlzLmFjdGlvbkhhbmRsZXIgPSBudWxsO1xuICAgIH1cblxuICAgIGluaXQoKSB7XG5cbiAgICAgICAgdGhpcy5hY3Rpb25IYW5kbGVyID0gbmV3IENhcnRBY3Rpb25IYW5kbGVyKFxuICAgICAgICAgICAgUGF5UGFsQ29tbWVyY2VHYXRld2F5LFxuICAgICAgICAgICAgbmV3IEVycm9ySGFuZGxlcih0aGlzLmdhdGV3YXkubGFiZWxzLmVycm9yLmdlbmVyaWMpLFxuICAgICAgICApO1xuICAgICAgICB0aGlzLnJlbmRlcigpO1xuXG4gICAgICAgIGpRdWVyeShkb2N1bWVudC5ib2R5KS5vbignd2NfZnJhZ21lbnRzX2xvYWRlZCB3Y19mcmFnbWVudHNfcmVmcmVzaGVkJywgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXIoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvdWxkUmVuZGVyKCkge1xuICAgICAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLmdhdGV3YXkuYnV0dG9uLm1pbmlfY2FydF93cmFwcGVyKSAhPT1cbiAgICAgICAgICAgIG51bGwgfHwgZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLmdhdGV3YXkuaG9zdGVkX2ZpZWxkcy5taW5pX2NhcnRfd3JhcHBlcikgIT09XG4gICAgICAgIG51bGw7XG4gICAgfVxuXG4gICAgcmVuZGVyKCkge1xuICAgICAgICBpZiAoIXRoaXMuc2hvdWxkUmVuZGVyKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVuZGVyKFxuICAgICAgICAgICAgdGhpcy5nYXRld2F5LmJ1dHRvbi5taW5pX2NhcnRfd3JhcHBlcixcbiAgICAgICAgICAgIHRoaXMuZ2F0ZXdheS5ob3N0ZWRfZmllbGRzLm1pbmlfY2FydF93cmFwcGVyLFxuICAgICAgICAgICAgdGhpcy5hY3Rpb25IYW5kbGVyLmNvbmZpZ3VyYXRpb24oKVxuICAgICAgICApO1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTWluaUNhcnRCb290c3RhcDsiLCJpbXBvcnQgUHJvZHVjdCBmcm9tIFwiLi4vRW50aXR5L1Byb2R1Y3RcIjtcbmNsYXNzIFVwZGF0ZUNhcnQge1xuXG4gICAgY29uc3RydWN0b3IoZW5kcG9pbnQsIG5vbmNlKVxuICAgIHtcbiAgICAgICAgdGhpcy5lbmRwb2ludCA9IGVuZHBvaW50O1xuICAgICAgICB0aGlzLm5vbmNlID0gbm9uY2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb25SZXNvbHZlXG4gICAgICogQHBhcmFtIHtQcm9kdWN0W119IHByb2R1Y3RzXG4gICAgICogQHJldHVybnMge1Byb21pc2U8dW5rbm93bj59XG4gICAgICovXG4gICAgdXBkYXRlKG9uUmVzb2x2ZSwgcHJvZHVjdHMpXG4gICAge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgZmV0Y2goXG4gICAgICAgICAgICAgICAgdGhpcy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBub25jZTogdGhpcy5ub25jZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3RzLFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICkudGhlbihcbiAgICAgICAgICAgICAgICAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5qc29uKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoISByZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICByZWplY3QocmVzdWx0LmRhdGEpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkID0gb25SZXNvbHZlKHJlc3VsdC5kYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXNvbHZlZCk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBVcGRhdGVDYXJ0OyIsIi8qKlxuICogV2hlbiB5b3UgY2FuJ3QgYWRkIHNvbWV0aGluZyB0byB0aGUgY2FydCwgdGhlIFBheVBhbCBidXR0b25zIHNob3VsZCBub3Qgc2hvdy5cbiAqIFRoZXJlZm9yZSB3ZSBsaXN0ZW4gZm9yIGNoYW5nZXMgb24gdGhlIGFkZCB0byBjYXJ0IGJ1dHRvbiBhbmQgc2hvdy9oaWRlIHRoZSBidXR0b25zIGFjY29yZGluZ2x5LlxuICovXG5cbmNsYXNzIEJ1dHRvbnNUb2dnbGVMaXN0ZW5lciB7XG4gICAgY29uc3RydWN0b3IoZWxlbWVudCwgc2hvd0NhbGxiYWNrLCBoaWRlQ2FsbGJhY2spXG4gICAge1xuICAgICAgICB0aGlzLmVsZW1lbnQgPSBlbGVtZW50O1xuICAgICAgICB0aGlzLnNob3dDYWxsYmFjayA9IHNob3dDYWxsYmFjaztcbiAgICAgICAgdGhpcy5oaWRlQ2FsbGJhY2sgPSBoaWRlQ2FsbGJhY2s7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIgPSBudWxsO1xuICAgIH1cblxuICAgIGluaXQoKVxuICAgIHtcbiAgICAgICAgY29uc3QgY29uZmlnID0geyBhdHRyaWJ1dGVzIDogdHJ1ZSB9O1xuICAgICAgICBjb25zdCBjYWxsYmFjayA9ICgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdkaXNhYmxlZCcpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oaWRlQ2FsbGJhY2soKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNob3dDYWxsYmFjaygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihjYWxsYmFjayk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmVsZW1lbnQsIGNvbmZpZyk7XG4gICAgICAgIGNhbGxiYWNrKCk7XG4gICAgfVxuXG4gICAgZGlzY29ubmVjdCgpXG4gICAge1xuICAgICAgICB0aGlzLm9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEJ1dHRvbnNUb2dnbGVMaXN0ZW5lcjsiLCJjbGFzcyBQcm9kdWN0IHtcblxuICAgIGNvbnN0cnVjdG9yKGlkLCBxdWFudGl0eSwgdmFyaWF0aW9ucykge1xuICAgICAgICB0aGlzLmlkID0gaWQ7XG4gICAgICAgIHRoaXMucXVhbnRpdHkgPSBxdWFudGl0eTtcbiAgICAgICAgdGhpcy52YXJpYXRpb25zID0gdmFyaWF0aW9ucztcbiAgICB9XG5cbiAgICBkYXRhKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6dGhpcy5pZCxcbiAgICAgICAgICAgIHF1YW50aXR5OnRoaXMucXVhbnRpdHksXG4gICAgICAgICAgICB2YXJpYXRpb25zOnRoaXMudmFyaWF0aW9uc1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBQcm9kdWN0OyIsImltcG9ydCBCdXR0b25zVG9nZ2xlTGlzdGVuZXIgZnJvbSAnLi4vSGVscGVyL0J1dHRvbnNUb2dnbGVMaXN0ZW5lcic7XG5pbXBvcnQgUHJvZHVjdCBmcm9tICcuLi9FbnRpdHkvUHJvZHVjdCc7XG5pbXBvcnQgb25BcHByb3ZlIGZyb20gJy4uL09uQXBwcm92ZUhhbmRsZXIvb25BcHByb3ZlRm9yQ29udGludWUnO1xuaW1wb3J0IHtwYXllckRhdGF9IGZyb20gXCIuLi9IZWxwZXIvUGF5ZXJEYXRhXCI7XG5cbmNsYXNzIFNpbmdsZVByb2R1Y3RBY3Rpb25IYW5kbGVyIHtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBjb25maWcsXG4gICAgICAgIHVwZGF0ZUNhcnQsXG4gICAgICAgIHNob3dCdXR0b25DYWxsYmFjayxcbiAgICAgICAgaGlkZUJ1dHRvbkNhbGxiYWNrLFxuICAgICAgICBmb3JtRWxlbWVudCxcbiAgICAgICAgZXJyb3JIYW5kbGVyXG4gICAgKSB7XG4gICAgICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xuICAgICAgICB0aGlzLnVwZGF0ZUNhcnQgPSB1cGRhdGVDYXJ0O1xuICAgICAgICB0aGlzLnNob3dCdXR0b25DYWxsYmFjayA9IHNob3dCdXR0b25DYWxsYmFjaztcbiAgICAgICAgdGhpcy5oaWRlQnV0dG9uQ2FsbGJhY2sgPSBoaWRlQnV0dG9uQ2FsbGJhY2s7XG4gICAgICAgIHRoaXMuZm9ybUVsZW1lbnQgPSBmb3JtRWxlbWVudDtcbiAgICAgICAgdGhpcy5lcnJvckhhbmRsZXIgPSBlcnJvckhhbmRsZXI7XG4gICAgfVxuXG4gICAgY29uZmlndXJhdGlvbigpXG4gICAge1xuXG4gICAgICAgIGlmICggdGhpcy5oYXNWYXJpYXRpb25zKCkgKSB7XG4gICAgICAgICAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBCdXR0b25zVG9nZ2xlTGlzdGVuZXIoXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuc2luZ2xlX2FkZF90b19jYXJ0X2J1dHRvbicpLFxuICAgICAgICAgICAgICAgIHRoaXMuc2hvd0J1dHRvbkNhbGxiYWNrLFxuICAgICAgICAgICAgICAgIHRoaXMuaGlkZUJ1dHRvbkNhbGxiYWNrXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgb2JzZXJ2ZXIuaW5pdCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNyZWF0ZU9yZGVyOiB0aGlzLmNyZWF0ZU9yZGVyKCksXG4gICAgICAgICAgICBvbkFwcHJvdmU6IG9uQXBwcm92ZSh0aGlzLCB0aGlzLmVycm9ySGFuZGxlciksXG4gICAgICAgICAgICBvbkVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVycm9ySGFuZGxlci5nZW5lcmljRXJyb3IoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNyZWF0ZU9yZGVyKClcbiAgICB7XG4gICAgICAgIHZhciBnZXRQcm9kdWN0cyA9IG51bGw7XG4gICAgICAgIGlmICghIHRoaXMuaXNHcm91cGVkUHJvZHVjdCgpICkge1xuICAgICAgICAgICAgZ2V0UHJvZHVjdHMgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaWQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbbmFtZT1cImFkZC10by1jYXJ0XCJdJykudmFsdWU7XG4gICAgICAgICAgICAgICAgY29uc3QgcXR5ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW25hbWU9XCJxdWFudGl0eVwiXScpLnZhbHVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhcmlhdGlvbnMgPSB0aGlzLnZhcmlhdGlvbnMoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gW25ldyBQcm9kdWN0KGlkLCBxdHksIHZhcmlhdGlvbnMpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGdldFByb2R1Y3RzID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHByb2R1Y3RzID0gW107XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFt0eXBlPVwibnVtYmVyXCJdJykuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoISBlbGVtZW50LnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudE5hbWUgPSBlbGVtZW50LmdldEF0dHJpYnV0ZSgnbmFtZScpLm1hdGNoKC9xdWFudGl0eVxcWyhbXFxkXSopXFxdLyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50TmFtZS5sZW5ndGggIT09IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpZCA9IHBhcnNlSW50KGVsZW1lbnROYW1lWzFdKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcXVhbnRpdHkgPSBwYXJzZUludChlbGVtZW50LnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgcHJvZHVjdHMucHVzaChuZXcgUHJvZHVjdChpZCwgcXVhbnRpdHksIG51bGwpKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIHJldHVybiBwcm9kdWN0cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjcmVhdGVPcmRlciA9IChkYXRhLCBhY3Rpb25zKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmVycm9ySGFuZGxlci5jbGVhcigpO1xuXG4gICAgICAgICAgICBjb25zdCBvblJlc29sdmUgPSAocHVyY2hhc2VfdW5pdHMpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXllciA9IHBheWVyRGF0YSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJuQ29kZSA9IHR5cGVvZiB0aGlzLmNvbmZpZy5ibl9jb2Rlc1t0aGlzLmNvbmZpZy5jb250ZXh0XSAhPT0gJ3VuZGVmaW5lZCcgP1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5ibl9jb2Rlc1t0aGlzLmNvbmZpZy5jb250ZXh0XSA6ICcnO1xuICAgICAgICAgICAgICAgIHJldHVybiBmZXRjaCh0aGlzLmNvbmZpZy5hamF4LmNyZWF0ZV9vcmRlci5lbmRwb2ludCwge1xuICAgICAgICAgICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgbm9uY2U6IHRoaXMuY29uZmlnLmFqYXguY3JlYXRlX29yZGVyLm5vbmNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHVyY2hhc2VfdW5pdHMsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXllcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGJuX2NvZGU6Ym5Db2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDp0aGlzLmNvbmZpZy5jb250ZXh0XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXMuanNvbigpO1xuICAgICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFkYXRhLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihkYXRhLmRhdGEubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEuZGF0YS5pZDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IHByb21pc2UgPSB0aGlzLnVwZGF0ZUNhcnQudXBkYXRlKG9uUmVzb2x2ZSwgZ2V0UHJvZHVjdHMoKSk7XG4gICAgICAgICAgICByZXR1cm4gcHJvbWlzZTtcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZU9yZGVyO1xuICAgIH1cblxuICAgIHZhcmlhdGlvbnMoKVxuICAgIHtcblxuICAgICAgICBpZiAoISB0aGlzLmhhc1ZhcmlhdGlvbnMoKSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYXR0cmlidXRlcyA9IFsuLi50aGlzLmZvcm1FbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJbbmFtZV49J2F0dHJpYnV0ZV8nXVwiKV0ubWFwKFxuICAgICAgICAgICAgKGVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOmVsZW1lbnQudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ZWxlbWVudC5uYW1lXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gYXR0cmlidXRlcztcbiAgICB9XG5cbiAgICBoYXNWYXJpYXRpb25zKClcbiAgICB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1FbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygndmFyaWF0aW9uc19mb3JtJyk7XG4gICAgfVxuXG4gICAgaXNHcm91cGVkUHJvZHVjdCgpXG4gICAge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtRWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2dyb3VwZWRfZm9ybScpO1xuICAgIH1cbn1cbmV4cG9ydCBkZWZhdWx0IFNpbmdsZVByb2R1Y3RBY3Rpb25IYW5kbGVyO1xuIiwiaW1wb3J0IEVycm9ySGFuZGxlciBmcm9tICcuLi9FcnJvckhhbmRsZXInO1xuaW1wb3J0IFVwZGF0ZUNhcnQgZnJvbSBcIi4uL0hlbHBlci9VcGRhdGVDYXJ0XCI7XG5pbXBvcnQgU2luZ2xlUHJvZHVjdEFjdGlvbkhhbmRsZXIgZnJvbSBcIi4uL0FjdGlvbkhhbmRsZXIvU2luZ2xlUHJvZHVjdEFjdGlvbkhhbmRsZXJcIjtcblxuY2xhc3MgU2luZ2xlUHJvZHVjdEJvb3RzdGFwIHtcbiAgICBjb25zdHJ1Y3RvcihnYXRld2F5LCByZW5kZXJlciwgbWVzc2FnZXMpIHtcbiAgICAgICAgdGhpcy5nYXRld2F5ID0gZ2F0ZXdheTtcbiAgICAgICAgdGhpcy5yZW5kZXJlciA9IHJlbmRlcmVyO1xuICAgICAgICB0aGlzLm1lc3NhZ2VzID0gbWVzc2FnZXM7XG4gICAgfVxuXG4gICAgaW5pdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnNob3VsZFJlbmRlcigpKSB7XG4gICAgICAgICAgIHRoaXMucmVuZGVyZXIuaGlkZUJ1dHRvbnModGhpcy5nYXRld2F5Lmhvc3RlZF9maWVsZHMud3JhcHBlcik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlbmRlcigpO1xuICAgIH1cblxuICAgIHNob3VsZFJlbmRlcigpIHtcbiAgICAgICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2Zvcm0uY2FydCcpID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIGNvbnN0IGFjdGlvbkhhbmRsZXIgPSBuZXcgU2luZ2xlUHJvZHVjdEFjdGlvbkhhbmRsZXIoXG4gICAgICAgICAgICB0aGlzLmdhdGV3YXksXG4gICAgICAgICAgICBuZXcgVXBkYXRlQ2FydChcbiAgICAgICAgICAgICAgICB0aGlzLmdhdGV3YXkuYWpheC5jaGFuZ2VfY2FydC5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB0aGlzLmdhdGV3YXkuYWpheC5jaGFuZ2VfY2FydC5ub25jZSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zaG93QnV0dG9ucyh0aGlzLmdhdGV3YXkuYnV0dG9uLndyYXBwZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2hvd0J1dHRvbnModGhpcy5nYXRld2F5Lmhvc3RlZF9maWVsZHMud3JhcHBlcik7XG4gICAgICAgICAgICAgICAgbGV0IHByaWNlVGV4dCA9IFwiMFwiO1xuICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdmb3JtLmNhcnQgaW5zIC53b29jb21tZXJjZS1QcmljZS1hbW91bnQnKSkge1xuICAgICAgICAgICAgICAgICAgICBwcmljZVRleHQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdmb3JtLmNhcnQgaW5zIC53b29jb21tZXJjZS1QcmljZS1hbW91bnQnKS5pbm5lclRleHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2Zvcm0uY2FydCAud29vY29tbWVyY2UtUHJpY2UtYW1vdW50JykpIHtcbiAgICAgICAgICAgICAgICAgICAgcHJpY2VUZXh0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZm9ybS5jYXJ0IC53b29jb21tZXJjZS1QcmljZS1hbW91bnQnKS5pbm5lclRleHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGFtb3VudCA9IHBhcnNlSW50KHByaWNlVGV4dC5yZXBsYWNlKC8oW15cXGQsXFwuXFxzXSopL2csICcnKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlcy5yZW5kZXJXaXRoQW1vdW50KGFtb3VudClcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5oaWRlQnV0dG9ucyh0aGlzLmdhdGV3YXkuYnV0dG9uLndyYXBwZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuaGlkZUJ1dHRvbnModGhpcy5nYXRld2F5Lmhvc3RlZF9maWVsZHMud3JhcHBlcik7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZm9ybS5jYXJ0JyksXG4gICAgICAgICAgICBuZXcgRXJyb3JIYW5kbGVyKHRoaXMuZ2F0ZXdheS5sYWJlbHMuZXJyb3IuZ2VuZXJpYyksXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW5kZXIoXG4gICAgICAgICAgICB0aGlzLmdhdGV3YXkuYnV0dG9uLndyYXBwZXIsXG4gICAgICAgICAgICB0aGlzLmdhdGV3YXkuaG9zdGVkX2ZpZWxkcy53cmFwcGVyLFxuICAgICAgICAgICAgYWN0aW9uSGFuZGxlci5jb25maWd1cmF0aW9uKCksXG4gICAgICAgICk7XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBTaW5nbGVQcm9kdWN0Qm9vdHN0YXA7IiwiaW1wb3J0IENhcnRBY3Rpb25IYW5kbGVyIGZyb20gJy4uL0FjdGlvbkhhbmRsZXIvQ2FydEFjdGlvbkhhbmRsZXInO1xuaW1wb3J0IEVycm9ySGFuZGxlciBmcm9tICcuLi9FcnJvckhhbmRsZXInO1xuXG5jbGFzcyBDYXJ0Qm9vdHN0cmFwIHtcbiAgICBjb25zdHJ1Y3RvcihnYXRld2F5LCByZW5kZXJlcikge1xuICAgICAgICB0aGlzLmdhdGV3YXkgPSBnYXRld2F5O1xuICAgICAgICB0aGlzLnJlbmRlcmVyID0gcmVuZGVyZXI7XG4gICAgfVxuXG4gICAgaW5pdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnNob3VsZFJlbmRlcigpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlbmRlcigpO1xuXG4gICAgICAgIGpRdWVyeShkb2N1bWVudC5ib2R5KS5vbigndXBkYXRlZF9jYXJ0X3RvdGFscyB1cGRhdGVkX2NoZWNrb3V0JywgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXIoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvdWxkUmVuZGVyKCkge1xuICAgICAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLmdhdGV3YXkuYnV0dG9uLndyYXBwZXIpICE9PVxuICAgICAgICAgICAgbnVsbCB8fCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRoaXMuZ2F0ZXdheS5ob3N0ZWRfZmllbGRzLndyYXBwZXIpICE9PVxuICAgICAgICAgICAgbnVsbDtcbiAgICB9XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIGNvbnN0IGFjdGlvbkhhbmRsZXIgPSBuZXcgQ2FydEFjdGlvbkhhbmRsZXIoXG4gICAgICAgICAgICBQYXlQYWxDb21tZXJjZUdhdGV3YXksXG4gICAgICAgICAgICBuZXcgRXJyb3JIYW5kbGVyKHRoaXMuZ2F0ZXdheS5sYWJlbHMuZXJyb3IuZ2VuZXJpYyksXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW5kZXIoXG4gICAgICAgICAgICB0aGlzLmdhdGV3YXkuYnV0dG9uLndyYXBwZXIsXG4gICAgICAgICAgICB0aGlzLmdhdGV3YXkuaG9zdGVkX2ZpZWxkcy53cmFwcGVyLFxuICAgICAgICAgICAgYWN0aW9uSGFuZGxlci5jb25maWd1cmF0aW9uKCksXG4gICAgICAgICk7XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBDYXJ0Qm9vdHN0cmFwO1xuIiwiY29uc3Qgb25BcHByb3ZlID0gKGNvbnRleHQsIGVycm9ySGFuZGxlciwgc3Bpbm5lcikgPT4ge1xuICAgIHJldHVybiAoZGF0YSwgYWN0aW9ucykgPT4ge1xuICAgICAgICBzcGlubmVyLmJsb2NrKCk7XG4gICAgICAgIHJldHVybiBmZXRjaChjb250ZXh0LmNvbmZpZy5hamF4LmFwcHJvdmVfb3JkZXIuZW5kcG9pbnQsIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIG5vbmNlOiBjb250ZXh0LmNvbmZpZy5hamF4LmFwcHJvdmVfb3JkZXIubm9uY2UsXG4gICAgICAgICAgICAgICAgb3JkZXJfaWQ6ZGF0YS5vcmRlcklEXG4gICAgICAgICAgICB9KVxuICAgICAgICB9KS50aGVuKChyZXMpPT57XG4gICAgICAgICAgICByZXR1cm4gcmVzLmpzb24oKTtcbiAgICAgICAgfSkudGhlbigoZGF0YSk9PntcbiAgICAgICAgICAgIHNwaW5uZXIudW5ibG9jaygpO1xuICAgICAgICAgICAgaWYgKCFkYXRhLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICBpZiAoZGF0YS5kYXRhLmNvZGUgPT09IDEwMCkge1xuICAgICAgICAgICAgICAgICAgICBlcnJvckhhbmRsZXIubWVzc2FnZShkYXRhLmRhdGEubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JIYW5kbGVyLmdlbmVyaWNFcnJvcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGFjdGlvbnMgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBhY3Rpb25zLnJlc3RhcnQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhY3Rpb25zLnJlc3RhcnQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGRhdGEuZGF0YS5tZXNzYWdlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNwbGFjZV9vcmRlcicpLmNsaWNrKClcbiAgICAgICAgfSk7XG5cbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IG9uQXBwcm92ZTtcbiIsImltcG9ydCBvbkFwcHJvdmUgZnJvbSAnLi4vT25BcHByb3ZlSGFuZGxlci9vbkFwcHJvdmVGb3JQYXlOb3cuanMnO1xuaW1wb3J0IHtwYXllckRhdGF9IGZyb20gXCIuLi9IZWxwZXIvUGF5ZXJEYXRhXCI7XG5cbmNsYXNzIENoZWNrb3V0QWN0aW9uSGFuZGxlciB7XG5cbiAgICBjb25zdHJ1Y3Rvcihjb25maWcsIGVycm9ySGFuZGxlciwgc3Bpbm5lcikge1xuICAgICAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgICAgICAgdGhpcy5lcnJvckhhbmRsZXIgPSBlcnJvckhhbmRsZXI7XG4gICAgICAgIHRoaXMuc3Bpbm5lciA9IHNwaW5uZXI7XG4gICAgfVxuXG4gICAgY29uZmlndXJhdGlvbigpIHtcbiAgICAgICAgY29uc3Qgc3Bpbm5lciA9IHRoaXMuc3Bpbm5lcjtcbiAgICAgICAgY29uc3QgY3JlYXRlT3JkZXIgPSAoZGF0YSwgYWN0aW9ucykgPT4ge1xuICAgICAgICAgICAgY29uc3QgcGF5ZXIgPSBwYXllckRhdGEoKTtcbiAgICAgICAgICAgIGNvbnN0IGJuQ29kZSA9IHR5cGVvZiB0aGlzLmNvbmZpZy5ibl9jb2Rlc1t0aGlzLmNvbmZpZy5jb250ZXh0XSAhPT0gJ3VuZGVmaW5lZCcgP1xuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLmJuX2NvZGVzW3RoaXMuY29uZmlnLmNvbnRleHRdIDogJyc7XG5cbiAgICAgICAgICAgIGNvbnN0IGVycm9ySGFuZGxlciA9IHRoaXMuZXJyb3JIYW5kbGVyO1xuXG4gICAgICAgICAgICBjb25zdCBmb3JtU2VsZWN0b3IgPSB0aGlzLmNvbmZpZy5jb250ZXh0ID09PSAnY2hlY2tvdXQnID8gJ2Zvcm0uY2hlY2tvdXQnIDogJ2Zvcm0jb3JkZXJfcmV2aWV3JztcbiAgICAgICAgICAgIGNvbnN0IGZvcm1WYWx1ZXMgPSBqUXVlcnkoZm9ybVNlbGVjdG9yKS5zZXJpYWxpemUoKTtcblxuICAgICAgICAgICAgY29uc3QgY3JlYXRlYWNjb3VudCA9IGpRdWVyeSgnI2NyZWF0ZWFjY291bnQnKS5pcyhcIjpjaGVja2VkXCIpID8gdHJ1ZSA6IGZhbHNlO1xuXG4gICAgICAgICAgICByZXR1cm4gZmV0Y2godGhpcy5jb25maWcuYWpheC5jcmVhdGVfb3JkZXIuZW5kcG9pbnQsIHtcbiAgICAgICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgIG5vbmNlOiB0aGlzLmNvbmZpZy5hamF4LmNyZWF0ZV9vcmRlci5ub25jZSxcbiAgICAgICAgICAgICAgICAgICAgcGF5ZXIsXG4gICAgICAgICAgICAgICAgICAgIGJuX2NvZGU6Ym5Db2RlLFxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OnRoaXMuY29uZmlnLmNvbnRleHQsXG4gICAgICAgICAgICAgICAgICAgIG9yZGVyX2lkOnRoaXMuY29uZmlnLm9yZGVyX2lkLFxuICAgICAgICAgICAgICAgICAgICBmb3JtOmZvcm1WYWx1ZXMsXG4gICAgICAgICAgICAgICAgICAgIGNyZWF0ZWFjY291bnQ6IGNyZWF0ZWFjY291bnRcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlcy5qc29uKCk7XG4gICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFkYXRhLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgc3Bpbm5lci51bmJsb2NrKCk7XG4gICAgICAgICAgICAgICAgICAgIC8vaGFuZGxlIGJvdGggbWVzc2FnZXMgc2VudCBmcm9tIFdvb2NvbW1lcmNlIChkYXRhLm1lc3NhZ2VzKSBhbmQgdGhpcyBwbHVnaW4gKGRhdGEuZGF0YS5tZXNzYWdlKVxuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mKGRhdGEubWVzc2FnZXMpICE9PSAndW5kZWZpbmVkJyApXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRvbVBhcnNlciA9IG5ldyBET01QYXJzZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ySGFuZGxlci5hcHBlbmRQcmVwYXJlZEVycm9yTWVzc2FnZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tUGFyc2VyLnBhcnNlRnJvbVN0cmluZyhkYXRhLm1lc3NhZ2VzLCAndGV4dC9odG1sJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJ3VsJylcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvckhhbmRsZXIubWVzc2FnZShkYXRhLmRhdGEubWVzc2FnZSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnaGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3BwY3AtcmVzdW1lLW9yZGVyJyk7XG4gICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCd2YWx1ZScsIGRhdGEuZGF0YS5wdXJjaGFzZV91bml0c1swXS5jdXN0b21faWQpO1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZm9ybVNlbGVjdG9yKS5hcHBlbmQoaW5wdXQpO1xuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLmRhdGEuaWQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY3JlYXRlT3JkZXIsXG4gICAgICAgICAgICBvbkFwcHJvdmU6b25BcHByb3ZlKHRoaXMsIHRoaXMuZXJyb3JIYW5kbGVyLCB0aGlzLnNwaW5uZXIpLFxuICAgICAgICAgICAgb25DYW5jZWw6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBzcGlubmVyLnVuYmxvY2soKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvbkVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lcnJvckhhbmRsZXIuZ2VuZXJpY0Vycm9yKCk7XG4gICAgICAgICAgICAgICAgc3Bpbm5lci51bmJsb2NrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IENoZWNrb3V0QWN0aW9uSGFuZGxlcjtcbiIsImltcG9ydCBFcnJvckhhbmRsZXIgZnJvbSAnLi4vRXJyb3JIYW5kbGVyJztcbmltcG9ydCBDaGVja291dEFjdGlvbkhhbmRsZXIgZnJvbSAnLi4vQWN0aW9uSGFuZGxlci9DaGVja291dEFjdGlvbkhhbmRsZXInO1xuXG5jbGFzcyBDaGVja291dEJvb3RzdGFwIHtcbiAgICBjb25zdHJ1Y3RvcihnYXRld2F5LCByZW5kZXJlciwgbWVzc2FnZXMsIHNwaW5uZXIpIHtcbiAgICAgICAgdGhpcy5nYXRld2F5ID0gZ2F0ZXdheTtcbiAgICAgICAgdGhpcy5yZW5kZXJlciA9IHJlbmRlcmVyO1xuICAgICAgICB0aGlzLm1lc3NhZ2VzID0gbWVzc2FnZXM7XG4gICAgICAgIHRoaXMuc3Bpbm5lciA9IHNwaW5uZXI7XG4gICAgfVxuXG4gICAgaW5pdCgpIHtcblxuICAgICAgICB0aGlzLnJlbmRlcigpO1xuXG4gICAgICAgIGpRdWVyeShkb2N1bWVudC5ib2R5KS5vbigndXBkYXRlZF9jaGVja291dCcsICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyKClcbiAgICAgICAgfSk7XG5cbiAgICAgICAgalF1ZXJ5KGRvY3VtZW50LmJvZHkpLlxuICAgICAgICAgIG9uKCd1cGRhdGVkX2NoZWNrb3V0IHBheW1lbnRfbWV0aG9kX3NlbGVjdGVkJywgKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnN3aXRjaEJldHdlZW5QYXlQYWxhbmRPcmRlckJ1dHRvbigpXG4gICAgICAgICAgICAgIHRoaXMuZGlzcGxheVBsYWNlT3JkZXJCdXR0b25Gb3JTYXZlZENyZWRpdENhcmRzKClcblxuICAgICAgICAgIH0pXG5cbiAgICAgICAgalF1ZXJ5KGRvY3VtZW50KS5vbignaG9zdGVkX2ZpZWxkc19sb2FkZWQnLCAoKSA9PiB7XG4gICAgICAgICAgICBqUXVlcnkoJyNzYXZlZC1jcmVkaXQtY2FyZCcpLm9uKCdjaGFuZ2UnLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5UGxhY2VPcmRlckJ1dHRvbkZvclNhdmVkQ3JlZGl0Q2FyZHMoKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5zd2l0Y2hCZXR3ZWVuUGF5UGFsYW5kT3JkZXJCdXR0b24oKVxuICAgICAgICB0aGlzLmRpc3BsYXlQbGFjZU9yZGVyQnV0dG9uRm9yU2F2ZWRDcmVkaXRDYXJkcygpXG4gICAgfVxuXG4gICAgc2hvdWxkUmVuZGVyKCkge1xuICAgICAgICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLmdhdGV3YXkuYnV0dG9uLmNhbmNlbF93cmFwcGVyKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy5nYXRld2F5LmJ1dHRvbi53cmFwcGVyKSAhPT0gbnVsbCB8fCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRoaXMuZ2F0ZXdheS5ob3N0ZWRfZmllbGRzLndyYXBwZXIpICE9PSBudWxsO1xuICAgIH1cblxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgaWYgKCF0aGlzLnNob3VsZFJlbmRlcigpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy5nYXRld2F5Lmhvc3RlZF9maWVsZHMud3JhcHBlciArICc+ZGl2JykpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy5nYXRld2F5Lmhvc3RlZF9maWVsZHMud3JhcHBlciArICc+ZGl2Jykuc2V0QXR0cmlidXRlKCdzdHlsZScsICcnKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhY3Rpb25IYW5kbGVyID0gbmV3IENoZWNrb3V0QWN0aW9uSGFuZGxlcihcbiAgICAgICAgICAgIFBheVBhbENvbW1lcmNlR2F0ZXdheSxcbiAgICAgICAgICAgIG5ldyBFcnJvckhhbmRsZXIodGhpcy5nYXRld2F5LmxhYmVscy5lcnJvci5nZW5lcmljKSxcbiAgICAgICAgICAgIHRoaXMuc3Bpbm5lclxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVuZGVyKFxuICAgICAgICAgICAgdGhpcy5nYXRld2F5LmJ1dHRvbi53cmFwcGVyLFxuICAgICAgICAgICAgdGhpcy5nYXRld2F5Lmhvc3RlZF9maWVsZHMud3JhcHBlcixcbiAgICAgICAgICAgIGFjdGlvbkhhbmRsZXIuY29uZmlndXJhdGlvbigpLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHN3aXRjaEJldHdlZW5QYXlQYWxhbmRPcmRlckJ1dHRvbigpIHtcbiAgICAgICAgalF1ZXJ5KCcjc2F2ZWQtY3JlZGl0LWNhcmQnKS52YWwoalF1ZXJ5KCcjc2F2ZWQtY3JlZGl0LWNhcmQgb3B0aW9uOmZpcnN0JykudmFsKCkpO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRQYXltZW50TWV0aG9kID0galF1ZXJ5KFxuICAgICAgICAgICAgJ2lucHV0W25hbWU9XCJwYXltZW50X21ldGhvZFwiXTpjaGVja2VkJykudmFsKCk7XG5cbiAgICAgICAgaWYgKGN1cnJlbnRQYXltZW50TWV0aG9kICE9PSAncHBjcC1nYXRld2F5JyAmJiBjdXJyZW50UGF5bWVudE1ldGhvZCAhPT0gJ3BwY3AtY3JlZGl0LWNhcmQtZ2F0ZXdheScpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuaGlkZUJ1dHRvbnModGhpcy5nYXRld2F5LmJ1dHRvbi53cmFwcGVyKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuaGlkZUJ1dHRvbnModGhpcy5nYXRld2F5Lm1lc3NhZ2VzLndyYXBwZXIpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5oaWRlQnV0dG9ucyh0aGlzLmdhdGV3YXkuaG9zdGVkX2ZpZWxkcy53cmFwcGVyKTtcbiAgICAgICAgICAgIGpRdWVyeSgnI3BsYWNlX29yZGVyJykuc2hvdygpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgalF1ZXJ5KCcjcGxhY2Vfb3JkZXInKS5oaWRlKCk7XG4gICAgICAgICAgICBpZiAoY3VycmVudFBheW1lbnRNZXRob2QgPT09ICdwcGNwLWdhdGV3YXknKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zaG93QnV0dG9ucyh0aGlzLmdhdGV3YXkuYnV0dG9uLndyYXBwZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2hvd0J1dHRvbnModGhpcy5nYXRld2F5Lm1lc3NhZ2VzLndyYXBwZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZXMucmVuZGVyKClcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmhpZGVCdXR0b25zKHRoaXMuZ2F0ZXdheS5ob3N0ZWRfZmllbGRzLndyYXBwZXIpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY3VycmVudFBheW1lbnRNZXRob2QgPT09ICdwcGNwLWNyZWRpdC1jYXJkLWdhdGV3YXknKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5oaWRlQnV0dG9ucyh0aGlzLmdhdGV3YXkuYnV0dG9uLndyYXBwZXIpXG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5oaWRlQnV0dG9ucyh0aGlzLmdhdGV3YXkubWVzc2FnZXMud3JhcHBlcilcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNob3dCdXR0b25zKHRoaXMuZ2F0ZXdheS5ob3N0ZWRfZmllbGRzLndyYXBwZXIpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkaXNwbGF5UGxhY2VPcmRlckJ1dHRvbkZvclNhdmVkQ3JlZGl0Q2FyZHMoKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRQYXltZW50TWV0aG9kID0galF1ZXJ5KFxuICAgICAgICAgICdpbnB1dFtuYW1lPVwicGF5bWVudF9tZXRob2RcIl06Y2hlY2tlZCcpLnZhbCgpO1xuICAgICAgICBpZiAoY3VycmVudFBheW1lbnRNZXRob2QgIT09ICdwcGNwLWNyZWRpdC1jYXJkLWdhdGV3YXknKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoalF1ZXJ5KCcjc2F2ZWQtY3JlZGl0LWNhcmQnKS5sZW5ndGggJiYgalF1ZXJ5KCcjc2F2ZWQtY3JlZGl0LWNhcmQnKS52YWwoKSAhPT0gJycpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuaGlkZUJ1dHRvbnModGhpcy5nYXRld2F5LmJ1dHRvbi53cmFwcGVyKVxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5oaWRlQnV0dG9ucyh0aGlzLmdhdGV3YXkubWVzc2FnZXMud3JhcHBlcilcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuaGlkZUJ1dHRvbnModGhpcy5nYXRld2F5Lmhvc3RlZF9maWVsZHMud3JhcHBlcilcbiAgICAgICAgICAgIGpRdWVyeSgnI3BsYWNlX29yZGVyJykuc2hvdygpXG4gICAgICAgICAgICB0aGlzLmRpc2FibGVDcmVkaXRDYXJkRmllbGRzKClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGpRdWVyeSgnI3BsYWNlX29yZGVyJykuaGlkZSgpXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmhpZGVCdXR0b25zKHRoaXMuZ2F0ZXdheS5idXR0b24ud3JhcHBlcilcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuaGlkZUJ1dHRvbnModGhpcy5nYXRld2F5Lm1lc3NhZ2VzLndyYXBwZXIpXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNob3dCdXR0b25zKHRoaXMuZ2F0ZXdheS5ob3N0ZWRfZmllbGRzLndyYXBwZXIpXG4gICAgICAgICAgICB0aGlzLmVuYWJsZUNyZWRpdENhcmRGaWVsZHMoKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGlzYWJsZUNyZWRpdENhcmRGaWVsZHMoKSB7XG4gICAgICAgIGpRdWVyeSgnbGFiZWxbZm9yPVwicHBjcC1jcmVkaXQtY2FyZC1nYXRld2F5LWNhcmQtbnVtYmVyXCJdJykuYWRkQ2xhc3MoJ3BwY3AtY3JlZGl0LWNhcmQtZ2F0ZXdheS1mb3JtLWZpZWxkLWRpc2FibGVkJylcbiAgICAgICAgalF1ZXJ5KCcjcHBjcC1jcmVkaXQtY2FyZC1nYXRld2F5LWNhcmQtbnVtYmVyJykuYWRkQ2xhc3MoJ3BwY3AtY3JlZGl0LWNhcmQtZ2F0ZXdheS1mb3JtLWZpZWxkLWRpc2FibGVkJylcbiAgICAgICAgalF1ZXJ5KCdsYWJlbFtmb3I9XCJwcGNwLWNyZWRpdC1jYXJkLWdhdGV3YXktY2FyZC1leHBpcnlcIl0nKS5hZGRDbGFzcygncHBjcC1jcmVkaXQtY2FyZC1nYXRld2F5LWZvcm0tZmllbGQtZGlzYWJsZWQnKVxuICAgICAgICBqUXVlcnkoJyNwcGNwLWNyZWRpdC1jYXJkLWdhdGV3YXktY2FyZC1leHBpcnknKS5hZGRDbGFzcygncHBjcC1jcmVkaXQtY2FyZC1nYXRld2F5LWZvcm0tZmllbGQtZGlzYWJsZWQnKVxuICAgICAgICBqUXVlcnkoJ2xhYmVsW2Zvcj1cInBwY3AtY3JlZGl0LWNhcmQtZ2F0ZXdheS1jYXJkLWN2Y1wiXScpLmFkZENsYXNzKCdwcGNwLWNyZWRpdC1jYXJkLWdhdGV3YXktZm9ybS1maWVsZC1kaXNhYmxlZCcpXG4gICAgICAgIGpRdWVyeSgnI3BwY3AtY3JlZGl0LWNhcmQtZ2F0ZXdheS1jYXJkLWN2YycpLmFkZENsYXNzKCdwcGNwLWNyZWRpdC1jYXJkLWdhdGV3YXktZm9ybS1maWVsZC1kaXNhYmxlZCcpXG4gICAgICAgIGpRdWVyeSgnbGFiZWxbZm9yPVwidmF1bHRcIl0nKS5hZGRDbGFzcygncHBjcC1jcmVkaXQtY2FyZC1nYXRld2F5LWZvcm0tZmllbGQtZGlzYWJsZWQnKVxuICAgICAgICBqUXVlcnkoJyNwcGNwLWNyZWRpdC1jYXJkLXZhdWx0JykuYWRkQ2xhc3MoJ3BwY3AtY3JlZGl0LWNhcmQtZ2F0ZXdheS1mb3JtLWZpZWxkLWRpc2FibGVkJylcbiAgICAgICAgalF1ZXJ5KCcjcHBjcC1jcmVkaXQtY2FyZC12YXVsdCcpLmF0dHIoXCJkaXNhYmxlZFwiLCB0cnVlKVxuICAgICAgICB0aGlzLnJlbmRlcmVyLmRpc2FibGVDcmVkaXRDYXJkRmllbGRzKClcbiAgICB9XG5cbiAgICBlbmFibGVDcmVkaXRDYXJkRmllbGRzKCkge1xuICAgICAgICBqUXVlcnkoJ2xhYmVsW2Zvcj1cInBwY3AtY3JlZGl0LWNhcmQtZ2F0ZXdheS1jYXJkLW51bWJlclwiXScpLnJlbW92ZUNsYXNzKCdwcGNwLWNyZWRpdC1jYXJkLWdhdGV3YXktZm9ybS1maWVsZC1kaXNhYmxlZCcpXG4gICAgICAgIGpRdWVyeSgnI3BwY3AtY3JlZGl0LWNhcmQtZ2F0ZXdheS1jYXJkLW51bWJlcicpLnJlbW92ZUNsYXNzKCdwcGNwLWNyZWRpdC1jYXJkLWdhdGV3YXktZm9ybS1maWVsZC1kaXNhYmxlZCcpXG4gICAgICAgIGpRdWVyeSgnbGFiZWxbZm9yPVwicHBjcC1jcmVkaXQtY2FyZC1nYXRld2F5LWNhcmQtZXhwaXJ5XCJdJykucmVtb3ZlQ2xhc3MoJ3BwY3AtY3JlZGl0LWNhcmQtZ2F0ZXdheS1mb3JtLWZpZWxkLWRpc2FibGVkJylcbiAgICAgICAgalF1ZXJ5KCcjcHBjcC1jcmVkaXQtY2FyZC1nYXRld2F5LWNhcmQtZXhwaXJ5JykucmVtb3ZlQ2xhc3MoJ3BwY3AtY3JlZGl0LWNhcmQtZ2F0ZXdheS1mb3JtLWZpZWxkLWRpc2FibGVkJylcbiAgICAgICAgalF1ZXJ5KCdsYWJlbFtmb3I9XCJwcGNwLWNyZWRpdC1jYXJkLWdhdGV3YXktY2FyZC1jdmNcIl0nKS5yZW1vdmVDbGFzcygncHBjcC1jcmVkaXQtY2FyZC1nYXRld2F5LWZvcm0tZmllbGQtZGlzYWJsZWQnKVxuICAgICAgICBqUXVlcnkoJyNwcGNwLWNyZWRpdC1jYXJkLWdhdGV3YXktY2FyZC1jdmMnKS5yZW1vdmVDbGFzcygncHBjcC1jcmVkaXQtY2FyZC1nYXRld2F5LWZvcm0tZmllbGQtZGlzYWJsZWQnKVxuICAgICAgICBqUXVlcnkoJ2xhYmVsW2Zvcj1cInZhdWx0XCJdJykucmVtb3ZlQ2xhc3MoJ3BwY3AtY3JlZGl0LWNhcmQtZ2F0ZXdheS1mb3JtLWZpZWxkLWRpc2FibGVkJylcbiAgICAgICAgalF1ZXJ5KCcjcHBjcC1jcmVkaXQtY2FyZC12YXVsdCcpLnJlbW92ZUNsYXNzKCdwcGNwLWNyZWRpdC1jYXJkLWdhdGV3YXktZm9ybS1maWVsZC1kaXNhYmxlZCcpXG4gICAgICAgIGpRdWVyeSgnI3BwY3AtY3JlZGl0LWNhcmQtdmF1bHQnKS5hdHRyKFwiZGlzYWJsZWRcIiwgZmFsc2UpXG4gICAgICAgIHRoaXMucmVuZGVyZXIuZW5hYmxlQ3JlZGl0Q2FyZEZpZWxkcygpXG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBDaGVja291dEJvb3RzdGFwXG4iLCJpbXBvcnQgRXJyb3JIYW5kbGVyIGZyb20gJy4uL0Vycm9ySGFuZGxlcic7XG5pbXBvcnQgQ2hlY2tvdXRBY3Rpb25IYW5kbGVyIGZyb20gJy4uL0FjdGlvbkhhbmRsZXIvQ2hlY2tvdXRBY3Rpb25IYW5kbGVyJztcblxuY2xhc3MgUGF5Tm93Qm9vdHN0cmFwIHtcbiAgICBjb25zdHJ1Y3RvcihnYXRld2F5LCByZW5kZXJlciwgbWVzc2FnZXMsIHNwaW5uZXIpIHtcbiAgICAgICAgdGhpcy5nYXRld2F5ID0gZ2F0ZXdheTtcbiAgICAgICAgdGhpcy5yZW5kZXJlciA9IHJlbmRlcmVyO1xuICAgICAgICB0aGlzLm1lc3NhZ2VzID0gbWVzc2FnZXM7XG4gICAgICAgIHRoaXMuc3Bpbm5lciA9IHNwaW5uZXI7XG4gICAgfVxuXG4gICAgaW5pdCgpIHtcblxuICAgICAgICB0aGlzLnJlbmRlcigpO1xuXG4gICAgICAgIGpRdWVyeShkb2N1bWVudC5ib2R5KS5vbigndXBkYXRlZF9jaGVja291dCcsICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGpRdWVyeShkb2N1bWVudC5ib2R5KS5cbiAgICAgICAgb24oJ3VwZGF0ZWRfY2hlY2tvdXQgcGF5bWVudF9tZXRob2Rfc2VsZWN0ZWQnLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN3aXRjaEJldHdlZW5QYXlQYWxhbmRPcmRlckJ1dHRvbigpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zd2l0Y2hCZXR3ZWVuUGF5UGFsYW5kT3JkZXJCdXR0b24oKTtcbiAgICB9XG5cbiAgICBzaG91bGRSZW5kZXIoKSB7XG4gICAgICAgIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRoaXMuZ2F0ZXdheS5idXR0b24uY2FuY2VsX3dyYXBwZXIpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLmdhdGV3YXkuYnV0dG9uLndyYXBwZXIpICE9PSBudWxsIHx8IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy5nYXRld2F5Lmhvc3RlZF9maWVsZHMud3JhcHBlcikgIT09IG51bGw7XG4gICAgfVxuXG4gICAgcmVuZGVyKCkge1xuICAgICAgICBpZiAoIXRoaXMuc2hvdWxkUmVuZGVyKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLmdhdGV3YXkuaG9zdGVkX2ZpZWxkcy53cmFwcGVyICsgJz5kaXYnKSkge1xuICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLmdhdGV3YXkuaG9zdGVkX2ZpZWxkcy53cmFwcGVyICsgJz5kaXYnKS5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJycpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjdGlvbkhhbmRsZXIgPSBuZXcgQ2hlY2tvdXRBY3Rpb25IYW5kbGVyKFxuICAgICAgICAgICAgUGF5UGFsQ29tbWVyY2VHYXRld2F5LFxuICAgICAgICAgICAgbmV3IEVycm9ySGFuZGxlcih0aGlzLmdhdGV3YXkubGFiZWxzLmVycm9yLmdlbmVyaWMpLFxuICAgICAgICAgICAgdGhpcy5zcGlubmVyXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW5kZXIoXG4gICAgICAgICAgICB0aGlzLmdhdGV3YXkuYnV0dG9uLndyYXBwZXIsXG4gICAgICAgICAgICB0aGlzLmdhdGV3YXkuaG9zdGVkX2ZpZWxkcy53cmFwcGVyLFxuICAgICAgICAgICAgYWN0aW9uSGFuZGxlci5jb25maWd1cmF0aW9uKCksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgc3dpdGNoQmV0d2VlblBheVBhbGFuZE9yZGVyQnV0dG9uKCkge1xuICAgICAgICBjb25zdCB1cmxQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpXG4gICAgICAgIGlmICh1cmxQYXJhbXMuaGFzKCdjaGFuZ2VfcGF5bWVudF9tZXRob2QnKSkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjdXJyZW50UGF5bWVudE1ldGhvZCA9IGpRdWVyeShcbiAgICAgICAgICAgICdpbnB1dFtuYW1lPVwicGF5bWVudF9tZXRob2RcIl06Y2hlY2tlZCcpLnZhbCgpO1xuXG4gICAgICAgIGlmIChjdXJyZW50UGF5bWVudE1ldGhvZCAhPT0gJ3BwY3AtZ2F0ZXdheScgJiYgY3VycmVudFBheW1lbnRNZXRob2QgIT09ICdwcGNwLWNyZWRpdC1jYXJkLWdhdGV3YXknKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmhpZGVCdXR0b25zKHRoaXMuZ2F0ZXdheS5idXR0b24ud3JhcHBlcik7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmhpZGVCdXR0b25zKHRoaXMuZ2F0ZXdheS5tZXNzYWdlcy53cmFwcGVyKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuaGlkZUJ1dHRvbnModGhpcy5nYXRld2F5Lmhvc3RlZF9maWVsZHMud3JhcHBlcik7XG4gICAgICAgICAgICBqUXVlcnkoJyNwbGFjZV9vcmRlcicpLnNob3coKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGpRdWVyeSgnI3BsYWNlX29yZGVyJykuaGlkZSgpO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRQYXltZW50TWV0aG9kID09PSAncHBjcC1nYXRld2F5Jykge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2hvd0J1dHRvbnModGhpcy5nYXRld2F5LmJ1dHRvbi53cmFwcGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNob3dCdXR0b25zKHRoaXMuZ2F0ZXdheS5tZXNzYWdlcy53cmFwcGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VzLnJlbmRlcigpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuaGlkZUJ1dHRvbnModGhpcy5nYXRld2F5Lmhvc3RlZF9maWVsZHMud3JhcHBlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY3VycmVudFBheW1lbnRNZXRob2QgPT09ICdwcGNwLWNyZWRpdC1jYXJkLWdhdGV3YXknKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5oaWRlQnV0dG9ucyh0aGlzLmdhdGV3YXkuYnV0dG9uLndyYXBwZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuaGlkZUJ1dHRvbnModGhpcy5nYXRld2F5Lm1lc3NhZ2VzLndyYXBwZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2hvd0J1dHRvbnModGhpcy5nYXRld2F5Lmhvc3RlZF9maWVsZHMud3JhcHBlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFBheU5vd0Jvb3RzdHJhcDtcbiIsImNsYXNzIFJlbmRlcmVyIHtcbiAgICBjb25zdHJ1Y3RvcihjcmVkaXRDYXJkUmVuZGVyZXIsIGRlZmF1bHRDb25maWcpIHtcbiAgICAgICAgdGhpcy5kZWZhdWx0Q29uZmlnID0gZGVmYXVsdENvbmZpZztcbiAgICAgICAgdGhpcy5jcmVkaXRDYXJkUmVuZGVyZXIgPSBjcmVkaXRDYXJkUmVuZGVyZXI7XG4gICAgfVxuXG4gICAgcmVuZGVyKHdyYXBwZXIsIGhvc3RlZEZpZWxkc1dyYXBwZXIsIGNvbnRleHRDb25maWcpIHtcblxuICAgICAgICB0aGlzLnJlbmRlckJ1dHRvbnMod3JhcHBlciwgY29udGV4dENvbmZpZyk7XG4gICAgICAgIHRoaXMuY3JlZGl0Q2FyZFJlbmRlcmVyLnJlbmRlcihob3N0ZWRGaWVsZHNXcmFwcGVyLCBjb250ZXh0Q29uZmlnKTtcbiAgICB9XG5cbiAgICByZW5kZXJCdXR0b25zKHdyYXBwZXIsIGNvbnRleHRDb25maWcpIHtcbiAgICAgICAgaWYgKCEgZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih3cmFwcGVyKSB8fCB0aGlzLmlzQWxyZWFkeVJlbmRlcmVkKHdyYXBwZXIpIHx8ICd1bmRlZmluZWQnID09PSB0eXBlb2YgcGF5cGFsLkJ1dHRvbnMgKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdHlsZSA9IHdyYXBwZXIgPT09IHRoaXMuZGVmYXVsdENvbmZpZy5idXR0b24ud3JhcHBlciA/IHRoaXMuZGVmYXVsdENvbmZpZy5idXR0b24uc3R5bGUgOiB0aGlzLmRlZmF1bHRDb25maWcuYnV0dG9uLm1pbmlfY2FydF9zdHlsZTtcbiAgICAgICAgcGF5cGFsLkJ1dHRvbnMoe1xuICAgICAgICAgICAgc3R5bGUsXG4gICAgICAgICAgICAuLi5jb250ZXh0Q29uZmlnLFxuICAgICAgICB9KS5yZW5kZXIod3JhcHBlcik7XG4gICAgfVxuXG4gICAgaXNBbHJlYWR5UmVuZGVyZWQod3JhcHBlcikge1xuICAgICAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih3cmFwcGVyKS5oYXNDaGlsZE5vZGVzKCk7XG4gICAgfVxuXG4gICAgaGlkZUJ1dHRvbnMoZWxlbWVudCkge1xuICAgICAgICBjb25zdCBkb21FbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihlbGVtZW50KTtcbiAgICAgICAgaWYgKCEgZG9tRWxlbWVudCApIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBkb21FbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHNob3dCdXR0b25zKGVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgZG9tRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZWxlbWVudCk7XG4gICAgICAgIGlmICghIGRvbUVsZW1lbnQgKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgZG9tRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgZGlzYWJsZUNyZWRpdENhcmRGaWVsZHMoKSB7XG4gICAgICAgIHRoaXMuY3JlZGl0Q2FyZFJlbmRlcmVyLmRpc2FibGVGaWVsZHMoKTtcbiAgICB9XG5cbiAgICBlbmFibGVDcmVkaXRDYXJkRmllbGRzKCkge1xuICAgICAgICB0aGlzLmNyZWRpdENhcmRSZW5kZXJlci5lbmFibGVGaWVsZHMoKTtcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFJlbmRlcmVyO1xuIiwiY29uc3QgZGNjSW5wdXRGYWN0b3J5ID0gKG9yaWdpbmFsKSA9PiB7XG4gICAgY29uc3Qgc3R5bGVzID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUob3JpZ2luYWwpO1xuICAgIGNvbnN0IG5ld0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgbmV3RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2lkJywgb3JpZ2luYWwuaWQpO1xuICAgIE9iamVjdC52YWx1ZXMoc3R5bGVzKS5mb3JFYWNoKCAocHJvcCkgPT4ge1xuICAgICAgICBpZiAoISBzdHlsZXNbcHJvcF0gfHwgISBpc05hTihwcm9wKSApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBuZXdFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KHByb3AsJycgKyBzdHlsZXNbcHJvcF0pO1xuICAgIH0pO1xuICAgIHJldHVybiBuZXdFbGVtZW50O1xufVxuXG5leHBvcnQgZGVmYXVsdCBkY2NJbnB1dEZhY3Rvcnk7IiwiaW1wb3J0IGRjY0lucHV0RmFjdG9yeSBmcm9tIFwiLi4vSGVscGVyL0RjY0lucHV0RmFjdG9yeVwiO1xuXG5jbGFzcyBDcmVkaXRDYXJkUmVuZGVyZXIge1xuXG4gICAgY29uc3RydWN0b3IoZGVmYXVsdENvbmZpZywgZXJyb3JIYW5kbGVyLCBzcGlubmVyKSB7XG4gICAgICAgIHRoaXMuZGVmYXVsdENvbmZpZyA9IGRlZmF1bHRDb25maWc7XG4gICAgICAgIHRoaXMuZXJyb3JIYW5kbGVyID0gZXJyb3JIYW5kbGVyO1xuICAgICAgICB0aGlzLnNwaW5uZXIgPSBzcGlubmVyO1xuICAgICAgICB0aGlzLmNhcmRWYWxpZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmZvcm1WYWxpZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmN1cnJlbnRIb3N0ZWRGaWVsZHNJbnN0YW5jZSA9IG51bGw7XG4gICAgICAgIHRoaXMuZm9ybVN1Ym1pc3Npb25TdWJzY3JpYmVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcmVuZGVyKHdyYXBwZXIsIGNvbnRleHRDb25maWcpIHtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0Q29uZmlnLmNvbnRleHQgIT09ICdjaGVja291dCdcbiAgICAgICAgICAgICAgICAmJiB0aGlzLmRlZmF1bHRDb25maWcuY29udGV4dCAhPT0gJ3BheS1ub3cnXG4gICAgICAgICAgICApXG4gICAgICAgICAgICB8fCB3cmFwcGVyID09PSBudWxsXG4gICAgICAgICAgICB8fCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHdyYXBwZXIpID09PSBudWxsXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHR5cGVvZiBwYXlwYWwuSG9zdGVkRmllbGRzID09PSAndW5kZWZpbmVkJ1xuICAgICAgICAgICAgfHwgISBwYXlwYWwuSG9zdGVkRmllbGRzLmlzRWxpZ2libGUoKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IHdyYXBwZXJFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih3cmFwcGVyKTtcbiAgICAgICAgICAgIHdyYXBwZXJFbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQod3JhcHBlckVsZW1lbnQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuY3VycmVudEhvc3RlZEZpZWxkc0luc3RhbmNlKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRIb3N0ZWRGaWVsZHNJbnN0YW5jZS50ZWFyZG93bigpXG4gICAgICAgICAgICAgICAgLmNhdGNoKGVyciA9PiBjb25zb2xlLmVycm9yKGBIb3N0ZWQgZmllbGRzIHRlYXJkb3duIGVycm9yOiAke2Vycn1gKSk7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRIb3N0ZWRGaWVsZHNJbnN0YW5jZSA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBnYXRlV2F5Qm94ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnBheW1lbnRfYm94LnBheW1lbnRfbWV0aG9kX3BwY3AtY3JlZGl0LWNhcmQtZ2F0ZXdheScpO1xuICAgICAgICBjb25zdCBvbGREaXNwbGF5U3R5bGUgPSBnYXRlV2F5Qm94LnN0eWxlLmRpc3BsYXk7XG4gICAgICAgIGdhdGVXYXlCb3guc3R5bGUuZGlzcGxheSA9ICdibG9jayc7XG5cbiAgICAgICAgY29uc3QgaGlkZURjY0dhdGV3YXkgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcHBjcC1oaWRlLWRjYycpO1xuICAgICAgICBpZiAoaGlkZURjY0dhdGV3YXkpIHtcbiAgICAgICAgICAgIGhpZGVEY2NHYXRld2F5LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaGlkZURjY0dhdGV3YXkpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2FyZE51bWJlckZpZWxkID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3BwY3AtY3JlZGl0LWNhcmQtZ2F0ZXdheS1jYXJkLW51bWJlcicpO1xuXG4gICAgICAgIGNvbnN0IHN0eWxlc1JhdyA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGNhcmROdW1iZXJGaWVsZCk7XG4gICAgICAgIGxldCBzdHlsZXMgPSB7fTtcbiAgICAgICAgT2JqZWN0LnZhbHVlcyhzdHlsZXNSYXcpLmZvckVhY2goIChwcm9wKSA9PiB7XG4gICAgICAgICAgICBpZiAoISBzdHlsZXNSYXdbcHJvcF0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdHlsZXNbcHJvcF0gPSAnJyArIHN0eWxlc1Jhd1twcm9wXTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgY2FyZE51bWJlciA9IGRjY0lucHV0RmFjdG9yeShjYXJkTnVtYmVyRmllbGQpO1xuICAgICAgICBjYXJkTnVtYmVyRmllbGQucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQoY2FyZE51bWJlciwgY2FyZE51bWJlckZpZWxkKTtcblxuICAgICAgICBjb25zdCBjYXJkRXhwaXJ5RmllbGQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcHBjcC1jcmVkaXQtY2FyZC1nYXRld2F5LWNhcmQtZXhwaXJ5Jyk7XG4gICAgICAgIGNvbnN0IGNhcmRFeHBpcnkgPSBkY2NJbnB1dEZhY3RvcnkoY2FyZEV4cGlyeUZpZWxkKTtcbiAgICAgICAgY2FyZEV4cGlyeUZpZWxkLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKGNhcmRFeHBpcnksIGNhcmRFeHBpcnlGaWVsZCk7XG5cbiAgICAgICAgY29uc3QgY2FyZENvZGVGaWVsZCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNwcGNwLWNyZWRpdC1jYXJkLWdhdGV3YXktY2FyZC1jdmMnKTtcbiAgICAgICAgY29uc3QgY2FyZENvZGUgPSBkY2NJbnB1dEZhY3RvcnkoY2FyZENvZGVGaWVsZCk7XG4gICAgICAgIGNhcmRDb2RlRmllbGQucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQoY2FyZENvZGUsIGNhcmRDb2RlRmllbGQpO1xuXG4gICAgICAgIGdhdGVXYXlCb3guc3R5bGUuZGlzcGxheSA9IG9sZERpc3BsYXlTdHlsZTtcblxuICAgICAgICBjb25zdCBmb3JtV3JhcHBlciA9ICcucGF5bWVudF9ib3ggcGF5bWVudF9tZXRob2RfcHBjcC1jcmVkaXQtY2FyZC1nYXRld2F5JztcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5kZWZhdWx0Q29uZmlnLmVuZm9yY2VfdmF1bHRcbiAgICAgICAgICAgICYmIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZm9ybVdyYXBwZXIgKyAnIC5wcGNwLWNyZWRpdC1jYXJkLXZhdWx0JylcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGZvcm1XcmFwcGVyICsgJyAucHBjcC1jcmVkaXQtY2FyZC12YXVsdCcpLmNoZWNrZWQgPSB0cnVlO1xuICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3Rvcihmb3JtV3JhcHBlciArICcgLnBwY3AtY3JlZGl0LWNhcmQtdmF1bHQnKS5zZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcGF5cGFsLkhvc3RlZEZpZWxkcy5yZW5kZXIoe1xuICAgICAgICAgICAgY3JlYXRlT3JkZXI6IGNvbnRleHRDb25maWcuY3JlYXRlT3JkZXIsXG4gICAgICAgICAgICBzdHlsZXM6IHtcbiAgICAgICAgICAgICAgICAnaW5wdXQnOiBzdHlsZXNcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBmaWVsZHM6IHtcbiAgICAgICAgICAgICAgICBudW1iZXI6IHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICcjcHBjcC1jcmVkaXQtY2FyZC1nYXRld2F5LWNhcmQtbnVtYmVyJyxcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHRoaXMuZGVmYXVsdENvbmZpZy5ob3N0ZWRfZmllbGRzLmxhYmVscy5jcmVkaXRfY2FyZF9udW1iZXIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBjdnY6IHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICcjcHBjcC1jcmVkaXQtY2FyZC1nYXRld2F5LWNhcmQtY3ZjJyxcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHRoaXMuZGVmYXVsdENvbmZpZy5ob3N0ZWRfZmllbGRzLmxhYmVscy5jdnYsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBleHBpcmF0aW9uRGF0ZToge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJyNwcGNwLWNyZWRpdC1jYXJkLWdhdGV3YXktY2FyZC1leHBpcnknLFxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogdGhpcy5kZWZhdWx0Q29uZmlnLmhvc3RlZF9maWVsZHMubGFiZWxzLm1tX3l5LFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkudGhlbihob3N0ZWRGaWVsZHMgPT4ge1xuICAgICAgICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoXCJob3N0ZWRfZmllbGRzX2xvYWRlZFwiKSk7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRIb3N0ZWRGaWVsZHNJbnN0YW5jZSA9IGhvc3RlZEZpZWxkcztcblxuICAgICAgICAgICAgaG9zdGVkRmllbGRzLm9uKCdpbnB1dFN1Ym1pdFJlcXVlc3QnLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3VibWl0KGNvbnRleHRDb25maWcpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBob3N0ZWRGaWVsZHMub24oJ2NhcmRUeXBlQ2hhbmdlJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCAhIGV2ZW50LmNhcmRzLmxlbmd0aCApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYXJkVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCB2YWxpZENhcmRzID0gdGhpcy5kZWZhdWx0Q29uZmlnLmhvc3RlZF9maWVsZHMudmFsaWRfY2FyZHM7XG4gICAgICAgICAgICAgICAgdGhpcy5jYXJkVmFsaWQgPSB2YWxpZENhcmRzLmluZGV4T2YoZXZlbnQuY2FyZHNbMF0udHlwZSkgIT09IC0xO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGhvc3RlZEZpZWxkcy5vbigndmFsaWRpdHlDaGFuZ2UnLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmb3JtVmFsaWQgPSBPYmplY3Qua2V5cyhldmVudC5maWVsZHMpLmV2ZXJ5KGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV2ZW50LmZpZWxkc1trZXldLmlzVmFsaWQ7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICB0aGlzLmZvcm1WYWxpZCA9IGZvcm1WYWxpZDtcblxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5mb3JtU3VibWlzc2lvblN1YnNjcmliZWQpIHtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHdyYXBwZXIgKyAnIGJ1dHRvbicpLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgICAgICAgICAgICdjbGljaycsXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdWJtaXQoY29udGV4dENvbmZpZyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybVN1Ym1pc3Npb25TdWJzY3JpYmVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3BheW1lbnRfbWV0aG9kX3BwY3AtY3JlZGl0LWNhcmQtZ2F0ZXdheScpLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgICAnY2xpY2snLFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2xhYmVsW2Zvcj1wcGNwLWNyZWRpdC1jYXJkLWdhdGV3YXktY2FyZC1udW1iZXJdJykuY2xpY2soKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgIH1cblxuICAgIGRpc2FibGVGaWVsZHMoKSB7XG4gICAgICAgIGlmKCB0aGlzLmN1cnJlbnRIb3N0ZWRGaWVsZHNJbnN0YW5jZSkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50SG9zdGVkRmllbGRzSW5zdGFuY2Uuc2V0QXR0cmlidXRlKHtcbiAgICAgICAgICAgICAgICBmaWVsZDogJ251bWJlcicsXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlOiAnZGlzYWJsZWQnXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgdGhpcy5jdXJyZW50SG9zdGVkRmllbGRzSW5zdGFuY2Uuc2V0QXR0cmlidXRlKHtcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2N2dicsXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlOiAnZGlzYWJsZWQnXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgdGhpcy5jdXJyZW50SG9zdGVkRmllbGRzSW5zdGFuY2Uuc2V0QXR0cmlidXRlKHtcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2V4cGlyYXRpb25EYXRlJyxcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGU6ICdkaXNhYmxlZCdcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBlbmFibGVGaWVsZHMoKSB7XG4gICAgICAgIGlmKCB0aGlzLmN1cnJlbnRIb3N0ZWRGaWVsZHNJbnN0YW5jZSkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50SG9zdGVkRmllbGRzSW5zdGFuY2UucmVtb3ZlQXR0cmlidXRlKHtcbiAgICAgICAgICAgICAgICBmaWVsZDogJ251bWJlcicsXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlOiAnZGlzYWJsZWQnXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgdGhpcy5jdXJyZW50SG9zdGVkRmllbGRzSW5zdGFuY2UucmVtb3ZlQXR0cmlidXRlKHtcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2N2dicsXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlOiAnZGlzYWJsZWQnXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgdGhpcy5jdXJyZW50SG9zdGVkRmllbGRzSW5zdGFuY2UucmVtb3ZlQXR0cmlidXRlKHtcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2V4cGlyYXRpb25EYXRlJyxcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGU6ICdkaXNhYmxlZCdcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBfc3VibWl0KGNvbnRleHRDb25maWcpIHtcbiAgICAgICAgdGhpcy5zcGlubmVyLmJsb2NrKCk7XG4gICAgICAgIHRoaXMuZXJyb3JIYW5kbGVyLmNsZWFyKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuZm9ybVZhbGlkICYmIHRoaXMuY2FyZFZhbGlkKSB7XG4gICAgICAgICAgICBjb25zdCBzYXZlX2NhcmQgPSB0aGlzLmRlZmF1bHRDb25maWcuc2F2ZV9jYXJkID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICAgICAgY29uc3QgdmF1bHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHBjcC1jcmVkaXQtY2FyZC12YXVsdCcpID9cbiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHBjcC1jcmVkaXQtY2FyZC12YXVsdCcpLmNoZWNrZWQgOiBzYXZlX2NhcmQ7XG4gICAgICAgICAgICBjb25zdCBjb250aW5nZW5jeSA9IHRoaXMuZGVmYXVsdENvbmZpZy5ob3N0ZWRfZmllbGRzLmNvbnRpbmdlbmN5O1xuICAgICAgICAgICAgY29uc3QgaG9zdGVkRmllbGRzRGF0YSA9IHtcbiAgICAgICAgICAgICAgICB2YXVsdDogdmF1bHRcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAoY29udGluZ2VuY3kgIT09ICdOT18zRF9TRUNVUkUnKSB7XG4gICAgICAgICAgICAgICAgaG9zdGVkRmllbGRzRGF0YS5jb250aW5nZW5jaWVzID0gW2NvbnRpbmdlbmN5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY3VycmVudEhvc3RlZEZpZWxkc0luc3RhbmNlLnN1Ym1pdChob3N0ZWRGaWVsZHNEYXRhKS50aGVuKChwYXlsb2FkKSA9PiB7XG4gICAgICAgICAgICAgICAgcGF5bG9hZC5vcmRlcklEID0gcGF5bG9hZC5vcmRlcklkO1xuICAgICAgICAgICAgICAgIHRoaXMuc3Bpbm5lci51bmJsb2NrKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRleHRDb25maWcub25BcHByb3ZlKHBheWxvYWQpO1xuICAgICAgICAgICAgfSkuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICAgICAgICAgICAgdGhpcy5zcGlubmVyLnVuYmxvY2soKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zcGlubmVyLnVuYmxvY2soKTtcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSAhIHRoaXMuY2FyZFZhbGlkID8gdGhpcy5kZWZhdWx0Q29uZmlnLmhvc3RlZF9maWVsZHMubGFiZWxzLmNhcmRfbm90X3N1cHBvcnRlZCA6IHRoaXMuZGVmYXVsdENvbmZpZy5ob3N0ZWRfZmllbGRzLmxhYmVscy5maWVsZHNfbm90X3ZhbGlkO1xuICAgICAgICAgICAgdGhpcy5lcnJvckhhbmRsZXIubWVzc2FnZShtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydCBkZWZhdWx0IENyZWRpdENhcmRSZW5kZXJlcjtcbiIsImNvbnN0IHN0b3JhZ2VLZXkgPSAncHBjcC1kYXRhLWNsaWVudC1pZCc7XG5cbmNvbnN0IHZhbGlkYXRlVG9rZW4gPSAodG9rZW4sIHVzZXIpID0+IHtcbiAgICBpZiAoISB0b2tlbikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICh0b2tlbi51c2VyICE9PSB1c2VyKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgY3VycmVudFRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICBjb25zdCBpc0V4cGlyZWQgPSBjdXJyZW50VGltZSA+PSB0b2tlbi5leHBpcmF0aW9uICogMTAwMDtcbiAgICByZXR1cm4gISBpc0V4cGlyZWQ7XG59XG5cbmNvbnN0IHN0b3JlZFRva2VuRm9yVXNlciA9ICh1c2VyKSA9PiB7XG4gICAgY29uc3QgdG9rZW4gPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oc3RvcmFnZUtleSkpO1xuICAgIGlmICh2YWxpZGF0ZVRva2VuKHRva2VuLCB1c2VyKSkge1xuICAgICAgICByZXR1cm4gdG9rZW4udG9rZW47XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufVxuXG5jb25zdCBzdG9yZVRva2VuID0gKHRva2VuKSA9PiB7XG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShzdG9yYWdlS2V5LCBKU09OLnN0cmluZ2lmeSh0b2tlbikpO1xufVxuXG5jb25zdCBkYXRhQ2xpZW50SWRBdHRyaWJ1dGVIYW5kbGVyID0gKHNjcmlwdCwgY29uZmlnKSA9PiB7XG4gICAgZmV0Y2goY29uZmlnLmVuZHBvaW50LCB7XG4gICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICBub25jZTogY29uZmlnLm5vbmNlXG4gICAgICAgIH0pXG4gICAgfSkudGhlbigocmVzKT0+e1xuICAgICAgICByZXR1cm4gcmVzLmpzb24oKTtcbiAgICB9KS50aGVuKChkYXRhKT0+e1xuICAgICAgICBjb25zdCBpc1ZhbGlkID0gdmFsaWRhdGVUb2tlbihkYXRhLCBjb25maWcudXNlcik7XG4gICAgICAgIGlmICghaXNWYWxpZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN0b3JlVG9rZW4oZGF0YSk7XG4gICAgICAgIHNjcmlwdC5zZXRBdHRyaWJ1dGUoJ2RhdGEtY2xpZW50LXRva2VuJywgZGF0YS50b2tlbik7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKHNjcmlwdCk7XG4gICAgfSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGRhdGFDbGllbnRJZEF0dHJpYnV0ZUhhbmRsZXI7XG4iLCJjbGFzcyBNZXNzYWdlUmVuZGVyZXIge1xuXG4gICAgY29uc3RydWN0b3IoY29uZmlnKSB7XG4gICAgICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xuICAgIH1cblxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgaWYgKCEgdGhpcy5zaG91bGRSZW5kZXIoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgcGF5cGFsLk1lc3NhZ2VzKHtcbiAgICAgICAgICAgIGFtb3VudDogdGhpcy5jb25maWcuYW1vdW50LFxuICAgICAgICAgICAgcGxhY2VtZW50OiB0aGlzLmNvbmZpZy5wbGFjZW1lbnQsXG4gICAgICAgICAgICBzdHlsZTogdGhpcy5jb25maWcuc3R5bGVcbiAgICAgICAgfSkucmVuZGVyKHRoaXMuY29uZmlnLndyYXBwZXIpO1xuICAgIH1cblxuICAgIHJlbmRlcldpdGhBbW91bnQoYW1vdW50KSB7XG5cbiAgICAgICAgaWYgKCEgdGhpcy5zaG91bGRSZW5kZXIoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbmV3V3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBuZXdXcmFwcGVyLnNldEF0dHJpYnV0ZSgnaWQnLCB0aGlzLmNvbmZpZy53cmFwcGVyLnJlcGxhY2UoJyMnLCAnJykpO1xuXG4gICAgICAgIGNvbnN0IHNpYmxpbmcgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRoaXMuY29uZmlnLndyYXBwZXIpLm5leHRTaWJsaW5nO1xuICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRoaXMuY29uZmlnLndyYXBwZXIpLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQoZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLmNvbmZpZy53cmFwcGVyKSk7XG4gICAgICAgIHNpYmxpbmcucGFyZW50RWxlbWVudC5pbnNlcnRCZWZvcmUobmV3V3JhcHBlciwgc2libGluZyk7XG4gICAgICAgIHBheXBhbC5NZXNzYWdlcyh7XG4gICAgICAgICAgICBhbW91bnQsXG4gICAgICAgICAgICBwbGFjZW1lbnQ6IHRoaXMuY29uZmlnLnBsYWNlbWVudCxcbiAgICAgICAgICAgIHN0eWxlOiB0aGlzLmNvbmZpZy5zdHlsZVxuICAgICAgICB9KS5yZW5kZXIodGhpcy5jb25maWcud3JhcHBlcik7XG4gICAgfVxuXG4gICAgc2hvdWxkUmVuZGVyKCkge1xuXG4gICAgICAgIGlmICh0eXBlb2YgcGF5cGFsLk1lc3NhZ2VzID09PSAndW5kZWZpbmVkJyB8fCB0eXBlb2YgdGhpcy5jb25maWcud3JhcHBlciA9PT0gJ3VuZGVmaW5lZCcgKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCEgZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLmNvbmZpZy53cmFwcGVyKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbn1cbmV4cG9ydCBkZWZhdWx0IE1lc3NhZ2VSZW5kZXJlcjsiLCJjbGFzcyBTcGlubmVyIHtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnRhcmdldCA9ICdmb3JtLndvb2NvbW1lcmNlLWNoZWNrb3V0JztcbiAgICB9XG5cbiAgICBzZXRUYXJnZXQodGFyZ2V0KSB7XG4gICAgICAgIHRoaXMudGFyZ2V0ID0gdGFyZ2V0O1xuICAgIH1cblxuICAgIGJsb2NrKCkge1xuXG4gICAgICAgIGpRdWVyeSggdGhpcy50YXJnZXQgKS5ibG9jayh7XG4gICAgICAgICAgICBtZXNzYWdlOiBudWxsLFxuICAgICAgICAgICAgb3ZlcmxheUNTUzoge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICcjZmZmJyxcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjZcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdW5ibG9jaygpIHtcblxuICAgICAgICBqUXVlcnkoIHRoaXMudGFyZ2V0ICkudW5ibG9jaygpO1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgU3Bpbm5lcjtcbiIsImltcG9ydCBNaW5pQ2FydEJvb3RzdGFwIGZyb20gJy4vbW9kdWxlcy9Db250ZXh0Qm9vdHN0cmFwL01pbmlDYXJ0Qm9vdHN0YXAnO1xuaW1wb3J0IFNpbmdsZVByb2R1Y3RCb290c3RhcCBmcm9tICcuL21vZHVsZXMvQ29udGV4dEJvb3RzdHJhcC9TaW5nbGVQcm9kdWN0Qm9vdHN0YXAnO1xuaW1wb3J0IENhcnRCb290c3RyYXAgZnJvbSAnLi9tb2R1bGVzL0NvbnRleHRCb290c3RyYXAvQ2FydEJvb3RzdGFwJztcbmltcG9ydCBDaGVja291dEJvb3RzdGFwIGZyb20gJy4vbW9kdWxlcy9Db250ZXh0Qm9vdHN0cmFwL0NoZWNrb3V0Qm9vdHN0YXAnO1xuaW1wb3J0IFBheU5vd0Jvb3RzdHJhcCBmcm9tIFwiLi9tb2R1bGVzL0NvbnRleHRCb290c3RyYXAvUGF5Tm93Qm9vdHN0cmFwXCI7XG5pbXBvcnQgUmVuZGVyZXIgZnJvbSAnLi9tb2R1bGVzL1JlbmRlcmVyL1JlbmRlcmVyJztcbmltcG9ydCBFcnJvckhhbmRsZXIgZnJvbSAnLi9tb2R1bGVzL0Vycm9ySGFuZGxlcic7XG5pbXBvcnQgQ3JlZGl0Q2FyZFJlbmRlcmVyIGZyb20gXCIuL21vZHVsZXMvUmVuZGVyZXIvQ3JlZGl0Q2FyZFJlbmRlcmVyXCI7XG5pbXBvcnQgZGF0YUNsaWVudElkQXR0cmlidXRlSGFuZGxlciBmcm9tIFwiLi9tb2R1bGVzL0RhdGFDbGllbnRJZEF0dHJpYnV0ZUhhbmRsZXJcIjtcbmltcG9ydCBNZXNzYWdlUmVuZGVyZXIgZnJvbSBcIi4vbW9kdWxlcy9SZW5kZXJlci9NZXNzYWdlUmVuZGVyZXJcIjtcbmltcG9ydCBTcGlubmVyIGZyb20gXCIuL21vZHVsZXMvSGVscGVyL1NwaW5uZXJcIjtcblxuY29uc3QgYm9vdHN0cmFwID0gKCkgPT4ge1xuICAgIGNvbnN0IGVycm9ySGFuZGxlciA9IG5ldyBFcnJvckhhbmRsZXIoUGF5UGFsQ29tbWVyY2VHYXRld2F5LmxhYmVscy5lcnJvci5nZW5lcmljKTtcbiAgICBjb25zdCBzcGlubmVyID0gbmV3IFNwaW5uZXIoKTtcbiAgICBjb25zdCBjcmVkaXRDYXJkUmVuZGVyZXIgPSBuZXcgQ3JlZGl0Q2FyZFJlbmRlcmVyKFBheVBhbENvbW1lcmNlR2F0ZXdheSwgZXJyb3JIYW5kbGVyLCBzcGlubmVyKTtcbiAgICBjb25zdCByZW5kZXJlciA9IG5ldyBSZW5kZXJlcihjcmVkaXRDYXJkUmVuZGVyZXIsIFBheVBhbENvbW1lcmNlR2F0ZXdheSk7XG4gICAgY29uc3QgbWVzc2FnZVJlbmRlcmVyID0gbmV3IE1lc3NhZ2VSZW5kZXJlcihQYXlQYWxDb21tZXJjZUdhdGV3YXkubWVzc2FnZXMpO1xuICAgIGNvbnN0IGNvbnRleHQgPSBQYXlQYWxDb21tZXJjZUdhdGV3YXkuY29udGV4dDtcbiAgICBpZiAoY29udGV4dCA9PT0gJ21pbmktY2FydCcgfHwgY29udGV4dCA9PT0gJ3Byb2R1Y3QnKSB7XG4gICAgICAgIGlmIChQYXlQYWxDb21tZXJjZUdhdGV3YXkubWluaV9jYXJ0X2J1dHRvbnNfZW5hYmxlZCA9PT0gJzEnKSB7XG4gICAgICAgICAgICBjb25zdCBtaW5pQ2FydEJvb3RzdHJhcCA9IG5ldyBNaW5pQ2FydEJvb3RzdGFwKFxuICAgICAgICAgICAgICAgIFBheVBhbENvbW1lcmNlR2F0ZXdheSxcbiAgICAgICAgICAgICAgICByZW5kZXJlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgbWluaUNhcnRCb290c3RyYXAuaW5pdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNvbnRleHQgPT09ICdwcm9kdWN0JyAmJiBQYXlQYWxDb21tZXJjZUdhdGV3YXkuc2luZ2xlX3Byb2R1Y3RfYnV0dG9uc19lbmFibGVkID09PSAnMScpIHtcbiAgICAgICAgY29uc3Qgc2luZ2xlUHJvZHVjdEJvb3RzdHJhcCA9IG5ldyBTaW5nbGVQcm9kdWN0Qm9vdHN0YXAoXG4gICAgICAgICAgICBQYXlQYWxDb21tZXJjZUdhdGV3YXksXG4gICAgICAgICAgICByZW5kZXJlcixcbiAgICAgICAgICAgIG1lc3NhZ2VSZW5kZXJlcixcbiAgICAgICAgKTtcblxuICAgICAgICBzaW5nbGVQcm9kdWN0Qm9vdHN0cmFwLmluaXQoKTtcbiAgICB9XG5cbiAgICBpZiAoY29udGV4dCA9PT0gJ2NhcnQnKSB7XG4gICAgICAgIGNvbnN0IGNhcnRCb290c3RyYXAgPSBuZXcgQ2FydEJvb3RzdHJhcChcbiAgICAgICAgICAgIFBheVBhbENvbW1lcmNlR2F0ZXdheSxcbiAgICAgICAgICAgIHJlbmRlcmVyLFxuICAgICAgICApO1xuXG4gICAgICAgIGNhcnRCb290c3RyYXAuaW5pdCgpO1xuICAgIH1cblxuICAgIGlmIChjb250ZXh0ID09PSAnY2hlY2tvdXQnKSB7XG4gICAgICAgIGNvbnN0IGNoZWNrb3V0Qm9vdHN0YXAgPSBuZXcgQ2hlY2tvdXRCb290c3RhcChcbiAgICAgICAgICAgIFBheVBhbENvbW1lcmNlR2F0ZXdheSxcbiAgICAgICAgICAgIHJlbmRlcmVyLFxuICAgICAgICAgICAgbWVzc2FnZVJlbmRlcmVyLFxuICAgICAgICAgICAgc3Bpbm5lclxuICAgICAgICApO1xuXG4gICAgICAgIGNoZWNrb3V0Qm9vdHN0YXAuaW5pdCgpO1xuICAgIH1cblxuICAgIGlmIChjb250ZXh0ID09PSAncGF5LW5vdycgKSB7XG4gICAgICAgIGNvbnN0IHBheU5vd0Jvb3RzdHJhcCA9IG5ldyBQYXlOb3dCb290c3RyYXAoXG4gICAgICAgICAgICBQYXlQYWxDb21tZXJjZUdhdGV3YXksXG4gICAgICAgICAgICByZW5kZXJlcixcbiAgICAgICAgICAgIG1lc3NhZ2VSZW5kZXJlcixcbiAgICAgICAgICAgIHNwaW5uZXJcbiAgICAgICAgKTtcbiAgICAgICAgcGF5Tm93Qm9vdHN0cmFwLmluaXQoKTtcbiAgICB9XG5cbiAgICBpZiAoY29udGV4dCAhPT0gJ2NoZWNrb3V0Jykge1xuICAgICAgICBtZXNzYWdlUmVuZGVyZXIucmVuZGVyKCk7XG4gICAgfVxufTtcbmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgJ0RPTUNvbnRlbnRMb2FkZWQnLFxuICAgICgpID0+IHtcbiAgICAgICAgaWYgKCF0eXBlb2YgKFBheVBhbENvbW1lcmNlR2F0ZXdheSkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1BheVBhbCBidXR0b24gY291bGQgbm90IGJlIGNvbmZpZ3VyZWQuJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG5cbiAgICAgICAgc2NyaXB0LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGJvb3RzdHJhcCgpO1xuICAgICAgICB9KTtcbiAgICAgICAgc2NyaXB0LnNldEF0dHJpYnV0ZSgnc3JjJywgUGF5UGFsQ29tbWVyY2VHYXRld2F5LmJ1dHRvbi51cmwpO1xuICAgICAgICBPYmplY3QuZW50cmllcyhQYXlQYWxDb21tZXJjZUdhdGV3YXkuc2NyaXB0X2F0dHJpYnV0ZXMpLmZvckVhY2goXG4gICAgICAgICAgICAoa2V5VmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICBzY3JpcHQuc2V0QXR0cmlidXRlKGtleVZhbHVlWzBdLCBrZXlWYWx1ZVsxXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKFBheVBhbENvbW1lcmNlR2F0ZXdheS5kYXRhX2NsaWVudF9pZC5zZXRfYXR0cmlidXRlKSB7XG4gICAgICAgICAgICBkYXRhQ2xpZW50SWRBdHRyaWJ1dGVIYW5kbGVyKHNjcmlwdCwgUGF5UGFsQ29tbWVyY2VHYXRld2F5LmRhdGFfY2xpZW50X2lkKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKHNjcmlwdCk7XG4gICAgfSxcbik7XG4iXSwibmFtZXMiOlsiRXJyb3JIYW5kbGVyIiwiY29uc3RydWN0b3IiLCJnZW5lcmljRXJyb3JUZXh0Iiwid3JhcHBlciIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsIm1lc3NhZ2VzTGlzdCIsImdlbmVyaWNFcnJvciIsImNsYXNzTGlzdCIsImNvbnRhaW5zIiwiY2xlYXIiLCJtZXNzYWdlIiwiYXBwZW5kUHJlcGFyZWRFcnJvck1lc3NhZ2VFbGVtZW50IiwiZXJyb3JNZXNzYWdlRWxlbWVudCIsInByZXBhcmVNZXNzYWdlc0xpc3QiLCJyZXBsYWNlV2l0aCIsInRleHQiLCJwZXJzaXN0IiwiU3RyaW5nIiwibGVuZ3RoIiwiRXJyb3IiLCJhZGQiLCJyZW1vdmUiLCJtZXNzYWdlTm9kZSIsInByZXBhcmVNZXNzYWdlc0xpc3RJdGVtIiwiYXBwZW5kQ2hpbGQiLCJqUXVlcnkiLCJzY3JvbGxfdG9fbm90aWNlcyIsImNyZWF0ZUVsZW1lbnQiLCJzZXRBdHRyaWJ1dGUiLCJsaSIsImlubmVySFRNTCIsInNhbml0aXplIiwidGV4dGFyZWEiLCJ2YWx1ZSIsInJlcGxhY2UiLCJpbm5lclRleHQiLCJvbkFwcHJvdmUiLCJjb250ZXh0IiwiZXJyb3JIYW5kbGVyIiwiZGF0YSIsImFjdGlvbnMiLCJmZXRjaCIsImNvbmZpZyIsImFqYXgiLCJhcHByb3ZlX29yZGVyIiwiZW5kcG9pbnQiLCJtZXRob2QiLCJib2R5IiwiSlNPTiIsInN0cmluZ2lmeSIsIm5vbmNlIiwib3JkZXJfaWQiLCJvcmRlcklEIiwidGhlbiIsInJlcyIsImpzb24iLCJzdWNjZXNzIiwicmVzdGFydCIsImNhdGNoIiwiZXJyIiwibG9jYXRpb24iLCJocmVmIiwicmVkaXJlY3QiLCJwYXllckRhdGEiLCJwYXllciIsIlBheVBhbENvbW1lcmNlR2F0ZXdheSIsInBob25lIiwicGhvbmVfdHlwZSIsInBob25lX251bWJlciIsIm5hdGlvbmFsX251bWJlciIsImVtYWlsX2FkZHJlc3MiLCJuYW1lIiwic3VybmFtZSIsImdpdmVuX25hbWUiLCJhZGRyZXNzIiwiY291bnRyeV9jb2RlIiwiYWRkcmVzc19saW5lXzEiLCJhZGRyZXNzX2xpbmVfMiIsImFkbWluX2FyZWFfMSIsImFkbWluX2FyZWFfMiIsInBvc3RhbF9jb2RlIiwiQ2FydEFjdGlvbkhhbmRsZXIiLCJjb25maWd1cmF0aW9uIiwiY3JlYXRlT3JkZXIiLCJibkNvZGUiLCJibl9jb2RlcyIsImNyZWF0ZV9vcmRlciIsInB1cmNoYXNlX3VuaXRzIiwiYm5fY29kZSIsImNvbnNvbGUiLCJlcnJvciIsImlkIiwib25FcnJvciIsIk1pbmlDYXJ0Qm9vdHN0YXAiLCJnYXRld2F5IiwicmVuZGVyZXIiLCJhY3Rpb25IYW5kbGVyIiwiaW5pdCIsImxhYmVscyIsImdlbmVyaWMiLCJyZW5kZXIiLCJvbiIsInNob3VsZFJlbmRlciIsImJ1dHRvbiIsIm1pbmlfY2FydF93cmFwcGVyIiwiaG9zdGVkX2ZpZWxkcyIsIlByb2R1Y3QiLCJVcGRhdGVDYXJ0IiwidXBkYXRlIiwib25SZXNvbHZlIiwicHJvZHVjdHMiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsInJlc3VsdCIsInJlc29sdmVkIiwiQnV0dG9uc1RvZ2dsZUxpc3RlbmVyIiwiZWxlbWVudCIsInNob3dDYWxsYmFjayIsImhpZGVDYWxsYmFjayIsIm9ic2VydmVyIiwiYXR0cmlidXRlcyIsImNhbGxiYWNrIiwiTXV0YXRpb25PYnNlcnZlciIsIm9ic2VydmUiLCJkaXNjb25uZWN0IiwicXVhbnRpdHkiLCJ2YXJpYXRpb25zIiwiU2luZ2xlUHJvZHVjdEFjdGlvbkhhbmRsZXIiLCJ1cGRhdGVDYXJ0Iiwic2hvd0J1dHRvbkNhbGxiYWNrIiwiaGlkZUJ1dHRvbkNhbGxiYWNrIiwiZm9ybUVsZW1lbnQiLCJoYXNWYXJpYXRpb25zIiwiZ2V0UHJvZHVjdHMiLCJpc0dyb3VwZWRQcm9kdWN0IiwicXR5IiwicXVlcnlTZWxlY3RvckFsbCIsImZvckVhY2giLCJlbGVtZW50TmFtZSIsImdldEF0dHJpYnV0ZSIsIm1hdGNoIiwicGFyc2VJbnQiLCJwdXNoIiwicHJvbWlzZSIsIm1hcCIsIlNpbmdsZVByb2R1Y3RCb290c3RhcCIsIm1lc3NhZ2VzIiwiaGlkZUJ1dHRvbnMiLCJjaGFuZ2VfY2FydCIsInNob3dCdXR0b25zIiwicHJpY2VUZXh0IiwiYW1vdW50IiwicmVuZGVyV2l0aEFtb3VudCIsIkNhcnRCb290c3RyYXAiLCJzcGlubmVyIiwiYmxvY2siLCJ1bmJsb2NrIiwiY29kZSIsImNsaWNrIiwiQ2hlY2tvdXRBY3Rpb25IYW5kbGVyIiwiZm9ybVNlbGVjdG9yIiwiZm9ybVZhbHVlcyIsInNlcmlhbGl6ZSIsImNyZWF0ZWFjY291bnQiLCJpcyIsImZvcm0iLCJkb21QYXJzZXIiLCJET01QYXJzZXIiLCJwYXJzZUZyb21TdHJpbmciLCJpbnB1dCIsImN1c3RvbV9pZCIsImFwcGVuZCIsIm9uQ2FuY2VsIiwiQ2hlY2tvdXRCb290c3RhcCIsInN3aXRjaEJldHdlZW5QYXlQYWxhbmRPcmRlckJ1dHRvbiIsImRpc3BsYXlQbGFjZU9yZGVyQnV0dG9uRm9yU2F2ZWRDcmVkaXRDYXJkcyIsImNhbmNlbF93cmFwcGVyIiwidmFsIiwiY3VycmVudFBheW1lbnRNZXRob2QiLCJzaG93IiwiaGlkZSIsImRpc2FibGVDcmVkaXRDYXJkRmllbGRzIiwiZW5hYmxlQ3JlZGl0Q2FyZEZpZWxkcyIsImFkZENsYXNzIiwiYXR0ciIsInJlbW92ZUNsYXNzIiwiUGF5Tm93Qm9vdHN0cmFwIiwidXJsUGFyYW1zIiwiVVJMU2VhcmNoUGFyYW1zIiwid2luZG93Iiwic2VhcmNoIiwiaGFzIiwiUmVuZGVyZXIiLCJjcmVkaXRDYXJkUmVuZGVyZXIiLCJkZWZhdWx0Q29uZmlnIiwiaG9zdGVkRmllbGRzV3JhcHBlciIsImNvbnRleHRDb25maWciLCJyZW5kZXJCdXR0b25zIiwiaXNBbHJlYWR5UmVuZGVyZWQiLCJwYXlwYWwiLCJCdXR0b25zIiwic3R5bGUiLCJtaW5pX2NhcnRfc3R5bGUiLCJoYXNDaGlsZE5vZGVzIiwiZG9tRWxlbWVudCIsImRpc3BsYXkiLCJkaXNhYmxlRmllbGRzIiwiZW5hYmxlRmllbGRzIiwiZGNjSW5wdXRGYWN0b3J5Iiwib3JpZ2luYWwiLCJzdHlsZXMiLCJnZXRDb21wdXRlZFN0eWxlIiwibmV3RWxlbWVudCIsIk9iamVjdCIsInZhbHVlcyIsInByb3AiLCJpc05hTiIsInNldFByb3BlcnR5IiwiQ3JlZGl0Q2FyZFJlbmRlcmVyIiwiY2FyZFZhbGlkIiwiZm9ybVZhbGlkIiwiY3VycmVudEhvc3RlZEZpZWxkc0luc3RhbmNlIiwiZm9ybVN1Ym1pc3Npb25TdWJzY3JpYmVkIiwiSG9zdGVkRmllbGRzIiwiaXNFbGlnaWJsZSIsIndyYXBwZXJFbGVtZW50IiwicGFyZW50Tm9kZSIsInJlbW92ZUNoaWxkIiwidGVhcmRvd24iLCJnYXRlV2F5Qm94Iiwib2xkRGlzcGxheVN0eWxlIiwiaGlkZURjY0dhdGV3YXkiLCJjYXJkTnVtYmVyRmllbGQiLCJzdHlsZXNSYXciLCJjYXJkTnVtYmVyIiwicmVwbGFjZUNoaWxkIiwiY2FyZEV4cGlyeUZpZWxkIiwiY2FyZEV4cGlyeSIsImNhcmRDb2RlRmllbGQiLCJjYXJkQ29kZSIsImZvcm1XcmFwcGVyIiwiZW5mb3JjZV92YXVsdCIsImNoZWNrZWQiLCJmaWVsZHMiLCJudW1iZXIiLCJzZWxlY3RvciIsInBsYWNlaG9sZGVyIiwiY3JlZGl0X2NhcmRfbnVtYmVyIiwiY3Z2IiwiZXhwaXJhdGlvbkRhdGUiLCJtbV95eSIsImhvc3RlZEZpZWxkcyIsImRpc3BhdGNoRXZlbnQiLCJDdXN0b21FdmVudCIsIl9zdWJtaXQiLCJldmVudCIsImNhcmRzIiwidmFsaWRDYXJkcyIsInZhbGlkX2NhcmRzIiwiaW5kZXhPZiIsInR5cGUiLCJrZXlzIiwiZXZlcnkiLCJrZXkiLCJpc1ZhbGlkIiwiYWRkRXZlbnRMaXN0ZW5lciIsInByZXZlbnREZWZhdWx0IiwiZmllbGQiLCJhdHRyaWJ1dGUiLCJyZW1vdmVBdHRyaWJ1dGUiLCJzYXZlX2NhcmQiLCJ2YXVsdCIsImdldEVsZW1lbnRCeUlkIiwiY29udGluZ2VuY3kiLCJob3N0ZWRGaWVsZHNEYXRhIiwiY29udGluZ2VuY2llcyIsInN1Ym1pdCIsInBheWxvYWQiLCJvcmRlcklkIiwiY2FyZF9ub3Rfc3VwcG9ydGVkIiwiZmllbGRzX25vdF92YWxpZCIsInN0b3JhZ2VLZXkiLCJ2YWxpZGF0ZVRva2VuIiwidG9rZW4iLCJ1c2VyIiwiY3VycmVudFRpbWUiLCJEYXRlIiwiZ2V0VGltZSIsImlzRXhwaXJlZCIsImV4cGlyYXRpb24iLCJzdG9yZWRUb2tlbkZvclVzZXIiLCJwYXJzZSIsInNlc3Npb25TdG9yYWdlIiwiZ2V0SXRlbSIsInN0b3JlVG9rZW4iLCJzZXRJdGVtIiwiZGF0YUNsaWVudElkQXR0cmlidXRlSGFuZGxlciIsInNjcmlwdCIsIk1lc3NhZ2VSZW5kZXJlciIsIk1lc3NhZ2VzIiwicGxhY2VtZW50IiwibmV3V3JhcHBlciIsInNpYmxpbmciLCJuZXh0U2libGluZyIsInBhcmVudEVsZW1lbnQiLCJpbnNlcnRCZWZvcmUiLCJTcGlubmVyIiwidGFyZ2V0Iiwic2V0VGFyZ2V0Iiwib3ZlcmxheUNTUyIsImJhY2tncm91bmQiLCJvcGFjaXR5IiwiYm9vdHN0cmFwIiwibWVzc2FnZVJlbmRlcmVyIiwibWluaV9jYXJ0X2J1dHRvbnNfZW5hYmxlZCIsIm1pbmlDYXJ0Qm9vdHN0cmFwIiwic2luZ2xlX3Byb2R1Y3RfYnV0dG9uc19lbmFibGVkIiwic2luZ2xlUHJvZHVjdEJvb3RzdHJhcCIsImNhcnRCb290c3RyYXAiLCJjaGVja291dEJvb3RzdGFwIiwicGF5Tm93Qm9vdHN0cmFwIiwidXJsIiwiZW50cmllcyIsInNjcmlwdF9hdHRyaWJ1dGVzIiwia2V5VmFsdWUiLCJkYXRhX2NsaWVudF9pZCIsInNldF9hdHRyaWJ1dGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///94\n")}},__webpack_exports__={};__webpack_modules__[94]()})();
|
|
modules/ppcp-button/assets/js/button.js.map
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./resources/js/modules/ErrorHandler.js","webpack:///./resources/js/modules/OnApproveHandler/onApproveForContinue.js","webpack:///./resources/js/modules/Helper/PayerData.js","webpack:///./resources/js/modules/ActionHandler/CartActionHandler.js","webpack:///./resources/js/modules/ContextBootstrap/MiniCartBootstap.js","webpack:///./resources/js/modules/Entity/Product.js","webpack:///./resources/js/modules/Helper/UpdateCart.js","webpack:///./resources/js/modules/Helper/ButtonsToggleListener.js","webpack:///./resources/js/modules/ActionHandler/SingleProductActionHandler.js","webpack:///./resources/js/modules/ContextBootstrap/SingleProductBootstap.js","webpack:///./resources/js/modules/ContextBootstrap/CartBootstap.js","webpack:///./resources/js/modules/OnApproveHandler/onApproveForPayNow.js","webpack:///./resources/js/modules/ActionHandler/CheckoutActionHandler.js","webpack:///./resources/js/modules/ContextBootstrap/CheckoutBootstap.js","webpack:///./resources/js/modules/ContextBootstrap/PayNowBootstrap.js","webpack:///./resources/js/modules/Renderer/Renderer.js","webpack:///./resources/js/modules/Helper/DccInputFactory.js","webpack:///./resources/js/modules/Renderer/CreditCardRenderer.js","webpack:///./resources/js/modules/DataClientIdAttributeHandler.js","webpack:///./resources/js/modules/Renderer/MessageRenderer.js","webpack:///./resources/js/modules/Helper/Spinner.js","webpack:///./resources/js/button.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","ErrorHandler","constructor","genericErrorText","this","wrapper","document","querySelector","messagesList","genericError","classList","contains","clear","message","appendPreparedErrorMessageElement","errorMessageElement","prepareMessagesList","replaceWith","text","persist","length","Error","add","remove","messageNode","prepareMessagesListItem","appendChild","jQuery","scroll_to_notices","createElement","setAttribute","li","innerHTML","sanitize","textarea","replace","innerText","onApprove","context","errorHandler","data","actions","fetch","config","ajax","approve_order","endpoint","method","body","JSON","stringify","nonce","order_id","orderID","then","res","json","success","restart","catch","err","location","href","redirect","payerData","payer","PayPalCommerceGateway","phone","phone_type","phone_number","national_number","email_address","surname","given_name","address","country_code","address_line_1","address_line_2","admin_area_1","admin_area_2","postal_code","CartActionHandler","configuration","createOrder","bnCode","bn_codes","create_order","purchase_units","bn_code","console","error","id","onError","MiniCartBootstap","gateway","renderer","actionHandler","init","labels","generic","render","on","shouldRender","button","mini_cart_wrapper","hosted_fields","Product","quantity","variations","UpdateCart","update","onResolve","products","Promise","resolve","reject","result","resolved","ButtonsToggleListener","element","showCallback","hideCallback","observer","callback","MutationObserver","observe","attributes","disconnect","SingleProductActionHandler","updateCart","showButtonCallback","hideButtonCallback","formElement","hasVariations","getProducts","isGroupedProduct","querySelectorAll","forEach","elementName","getAttribute","match","parseInt","push","qty","map","SingleProductBootstap","messages","hideButtons","change_cart","showButtons","priceText","amount","renderWithAmount","CartBootstrap","spinner","block","unblock","code","click","CheckoutActionHandler","formSelector","formValues","serialize","createaccount","is","form","domParser","DOMParser","parseFromString","input","custom_id","append","onCancel","CheckoutBootstap","switchBetweenPayPalandOrderButton","displayPlaceOrderButtonForSavedCreditCards","cancel_wrapper","val","currentPaymentMethod","show","hide","PayNowBootstrap","URLSearchParams","window","search","has","Renderer","creditCardRenderer","defaultConfig","hostedFieldsWrapper","contextConfig","renderButtons","isAlreadyRendered","paypal","Buttons","style","mini_cart_style","hasChildNodes","domElement","display","dccInputFactory","original","styles","getComputedStyle","newElement","values","prop","isNaN","setProperty","CreditCardRenderer","cardValid","formValid","HostedFields","isEligible","wrapperElement","parentNode","removeChild","gateWayBox","oldDisplayStyle","hideDccGateway","cardNumberField","stylesRaw","cardNumber","replaceChild","cardExpiryField","cardExpiry","cardCodeField","cardCode","formWrapper","enforce_vault","checked","fields","number","selector","placeholder","credit_card_number","cvv","expirationDate","mm_yy","hostedFields","submitEvent","event","preventDefault","save_card","vault","getElementById","submit","contingencies","payload","orderId","fields_not_valid","card_not_supported","cards","validCards","valid_cards","indexOf","type","keys","every","isValid","addEventListener","validateToken","token","user","Date","getTime","expiration","dataClientIdAttributeHandler","script","sessionStorage","setItem","MessageRenderer","Messages","placement","newWrapper","sibling","nextSibling","parentElement","insertBefore","Spinner","target","setTarget","overlayCSS","background","opacity","messageRenderer","mini_cart_buttons_enabled","single_product_buttons_enabled","bootstrap","url","entries","script_attributes","keyValue","data_client_id","set_attribute"],"mappings":"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","file":"js/button.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1);\n","class ErrorHandler {\n\n constructor(genericErrorText)\n {\n this.genericErrorText = genericErrorText;\n this.wrapper = document.querySelector('.woocommerce-notices-wrapper');\n this.messagesList = document.querySelector('ul.woocommerce-error');\n }\n\n genericError() {\n if (this.wrapper.classList.contains('ppcp-persist')) {\n return;\n }\n this.clear();\n this.message(this.genericErrorText)\n }\n\n appendPreparedErrorMessageElement(errorMessageElement)\n {\n if(this.messagesList === null) {\n this.prepareMessagesList();\n }\n\n this.messagesList.replaceWith(errorMessageElement);\n }\n\n message(text, persist = false)\n {\n if(! typeof String || text.length === 0){\n throw new Error('A new message text must be a non-empty string.');\n }\n\n if(this.messagesList === null){\n this.prepareMessagesList();\n }\n\n if (persist) {\n this.wrapper.classList.add('ppcp-persist');\n } else {\n this.wrapper.classList.remove('ppcp-persist');\n }\n\n let messageNode = this.prepareMessagesListItem(text);\n this.messagesList.appendChild(messageNode);\n\n jQuery.scroll_to_notices(jQuery('.woocommerce-notices-wrapper'))\n }\n\n prepareMessagesList()\n {\n if(this.messagesList === null){\n this.messagesList = document.createElement('ul');\n this.messagesList.setAttribute('class', 'woocommerce-error');\n this.messagesList.setAttribute('role', 'alert');\n this.wrapper.appendChild(this.messagesList);\n }\n }\n\n prepareMessagesListItem(message)\n {\n const li = document.createElement('li');\n li.innerHTML = message;\n\n return li;\n }\n\n sanitize(text)\n {\n const textarea = document.createElement('textarea');\n textarea.innerHTML = text;\n return textarea.value.replace('Error: ', '');\n }\n\n clear()\n {\n if (! this.wrapper.classList.contains('woocommerce-error')) {\n return;\n }\n this.wrapper.classList.remove('woocommerce-error');\n this.wrapper.innerText = '';\n }\n}\n\nexport default ErrorHandler;\n","const onApprove = (context, errorHandler) => {\n return (data, actions) => {\n return fetch(context.config.ajax.approve_order.endpoint, {\n method: 'POST',\n body: JSON.stringify({\n nonce: context.config.ajax.approve_order.nonce,\n order_id:data.orderID\n })\n }).then((res)=>{\n return res.json();\n }).then((data)=>{\n if (!data.success) {\n errorHandler.genericError();\n return actions.restart().catch(err => {\n errorHandler.genericError();\n });;\n }\n location.href = context.config.redirect;\n });\n\n }\n}\n\nexport default onApprove;\n","export const payerData = () => {\n const payer = PayPalCommerceGateway.payer;\n if (! payer) {\n return null;\n }\n\n const phone = (document.querySelector('#billing_phone') || typeof payer.phone !== 'undefined') ?\n {\n phone_type:\"HOME\",\n phone_number:{\n national_number : (document.querySelector('#billing_phone')) ? document.querySelector('#billing_phone').value : payer.phone.phone_number.national_number\n }\n } : null;\n const payerData = {\n email_address:(document.querySelector('#billing_email')) ? document.querySelector('#billing_email').value : payer.email_address,\n name : {\n surname: (document.querySelector('#billing_last_name')) ? document.querySelector('#billing_last_name').value : payer.name.surname,\n given_name: (document.querySelector('#billing_first_name')) ? document.querySelector('#billing_first_name').value : payer.name.given_name\n },\n address : {\n country_code : (document.querySelector('#billing_country')) ? document.querySelector('#billing_country').value : payer.address.country_code,\n address_line_1 : (document.querySelector('#billing_address_1')) ? document.querySelector('#billing_address_1').value : payer.address.address_line_1,\n address_line_2 : (document.querySelector('#billing_address_2')) ? document.querySelector('#billing_address_2').value : payer.address.address_line_2,\n admin_area_1 : (document.querySelector('#billing_state')) ? document.querySelector('#billing_state').value : payer.address.admin_area_1,\n admin_area_2 : (document.querySelector('#billing_city')) ? document.querySelector('#billing_city').value : payer.address.admin_area_2,\n postal_code : (document.querySelector('#billing_postcode')) ? document.querySelector('#billing_postcode').value : payer.address.postal_code\n }\n };\n\n if (phone) {\n payerData.phone = phone;\n }\n return payerData;\n}\n","import onApprove from '../OnApproveHandler/onApproveForContinue.js';\nimport {payerData} from \"../Helper/PayerData\";\n\nclass CartActionHandler {\n\n constructor(config, errorHandler) {\n this.config = config;\n this.errorHandler = errorHandler;\n }\n\n configuration() {\n const createOrder = (data, actions) => {\n const payer = payerData();\n const bnCode = typeof this.config.bn_codes[this.config.context] !== 'undefined' ?\n this.config.bn_codes[this.config.context] : '';\n return fetch(this.config.ajax.create_order.endpoint, {\n method: 'POST',\n body: JSON.stringify({\n nonce: this.config.ajax.create_order.nonce,\n purchase_units: [],\n bn_code:bnCode,\n payer,\n context:this.config.context\n }),\n }).then(function(res) {\n return res.json();\n }).then(function(data) {\n if (!data.success) {\n console.error(data);\n throw Error(data.data.message);\n }\n return data.data.id;\n });\n };\n\n return {\n createOrder,\n onApprove: onApprove(this, this.errorHandler),\n onError: (error) => {\n this.errorHandler.genericError();\n }\n };\n }\n}\n\nexport default CartActionHandler;\n","import ErrorHandler from '../ErrorHandler';\nimport CartActionHandler from '../ActionHandler/CartActionHandler';\n\nclass MiniCartBootstap {\n constructor(gateway, renderer) {\n this.gateway = gateway;\n this.renderer = renderer;\n this.actionHandler = null;\n }\n\n init() {\n\n this.actionHandler = new CartActionHandler(\n PayPalCommerceGateway,\n new ErrorHandler(this.gateway.labels.error.generic),\n );\n this.render();\n\n jQuery(document.body).on('wc_fragments_loaded wc_fragments_refreshed', () => {\n this.render();\n });\n }\n\n shouldRender() {\n return document.querySelector(this.gateway.button.mini_cart_wrapper) !==\n null || document.querySelector(this.gateway.hosted_fields.mini_cart_wrapper) !==\n null;\n }\n\n render() {\n if (!this.shouldRender()) {\n return;\n }\n\n this.renderer.render(\n this.gateway.button.mini_cart_wrapper,\n this.gateway.hosted_fields.mini_cart_wrapper,\n this.actionHandler.configuration()\n );\n }\n}\n\nexport default MiniCartBootstap;","class Product {\n\n constructor(id, quantity, variations) {\n this.id = id;\n this.quantity = quantity;\n this.variations = variations;\n }\n\n data() {\n return {\n id:this.id,\n quantity:this.quantity,\n variations:this.variations\n }\n }\n}\n\nexport default Product;","import Product from \"../Entity/Product\";\nclass UpdateCart {\n\n constructor(endpoint, nonce)\n {\n this.endpoint = endpoint;\n this.nonce = nonce;\n }\n\n /**\n *\n * @param onResolve\n * @param {Product[]} products\n * @returns {Promise<unknown>}\n */\n update(onResolve, products)\n {\n return new Promise((resolve, reject) => {\n fetch(\n this.endpoint,\n {\n method: 'POST',\n body: JSON.stringify({\n nonce: this.nonce,\n products,\n })\n }\n ).then(\n (result) => {\n return result.json();\n }\n ).then((result) => {\n if (! result.success) {\n reject(result.data);\n return;\n }\n\n const resolved = onResolve(result.data);\n resolve(resolved);\n })\n });\n }\n}\n\nexport default UpdateCart;","/**\n * When you can't add something to the cart, the PayPal buttons should not show.\n * Therefore we listen for changes on the add to cart button and show/hide the buttons accordingly.\n */\n\nclass ButtonsToggleListener {\n constructor(element, showCallback, hideCallback)\n {\n this.element = element;\n this.showCallback = showCallback;\n this.hideCallback = hideCallback;\n this.observer = null;\n }\n\n init()\n {\n const config = { attributes : true };\n const callback = () => {\n if (this.element.classList.contains('disabled')) {\n this.hideCallback();\n return;\n }\n this.showCallback();\n }\n this.observer = new MutationObserver(callback);\n this.observer.observe(this.element, config);\n callback();\n }\n\n disconnect()\n {\n this.observer.disconnect();\n }\n}\n\nexport default ButtonsToggleListener;","import ButtonsToggleListener from '../Helper/ButtonsToggleListener';\nimport Product from '../Entity/Product';\nimport onApprove from '../OnApproveHandler/onApproveForContinue';\nimport {payerData} from \"../Helper/PayerData\";\n\nclass SingleProductActionHandler {\n\n constructor(\n config,\n updateCart,\n showButtonCallback,\n hideButtonCallback,\n formElement,\n errorHandler\n ) {\n this.config = config;\n this.updateCart = updateCart;\n this.showButtonCallback = showButtonCallback;\n this.hideButtonCallback = hideButtonCallback;\n this.formElement = formElement;\n this.errorHandler = errorHandler;\n }\n\n configuration()\n {\n\n if ( this.hasVariations() ) {\n const observer = new ButtonsToggleListener(\n this.formElement.querySelector('.single_add_to_cart_button'),\n this.showButtonCallback,\n this.hideButtonCallback\n );\n observer.init();\n }\n\n return {\n createOrder: this.createOrder(),\n onApprove: onApprove(this, this.errorHandler),\n onError: (error) => {\n this.errorHandler.genericError();\n }\n }\n }\n\n createOrder()\n {\n var getProducts = null;\n if (! this.isGroupedProduct() ) {\n getProducts = () => {\n const id = document.querySelector('[name=\"add-to-cart\"]').value;\n const qty = document.querySelector('[name=\"quantity\"]').value;\n const variations = this.variations();\n return [new Product(id, qty, variations)];\n }\n } else {\n getProducts = () => {\n const products = [];\n this.formElement.querySelectorAll('input[type=\"number\"]').forEach((element) => {\n if (! element.value) {\n return;\n }\n const elementName = element.getAttribute('name').match(/quantity\\[([\\d]*)\\]/);\n if (elementName.length !== 2) {\n return;\n }\n const id = parseInt(elementName[1]);\n const quantity = parseInt(element.value);\n products.push(new Product(id, quantity, null));\n })\n return products;\n }\n }\n const createOrder = (data, actions) => {\n this.errorHandler.clear();\n\n const onResolve = (purchase_units) => {\n const payer = payerData();\n const bnCode = typeof this.config.bn_codes[this.config.context] !== 'undefined' ?\n this.config.bn_codes[this.config.context] : '';\n return fetch(this.config.ajax.create_order.endpoint, {\n method: 'POST',\n body: JSON.stringify({\n nonce: this.config.ajax.create_order.nonce,\n purchase_units,\n payer,\n bn_code:bnCode,\n context:this.config.context\n })\n }).then(function (res) {\n return res.json();\n }).then(function (data) {\n if (!data.success) {\n console.error(data);\n throw Error(data.data.message);\n }\n return data.data.id;\n });\n };\n\n const promise = this.updateCart.update(onResolve, getProducts());\n return promise;\n };\n return createOrder;\n }\n\n variations()\n {\n\n if (! this.hasVariations()) {\n return null;\n }\n const attributes = [...this.formElement.querySelectorAll(\"[name^='attribute_']\")].map(\n (element) => {\n return {\n value:element.value,\n name:element.name\n }\n }\n );\n return attributes;\n }\n\n hasVariations()\n {\n return this.formElement.classList.contains('variations_form');\n }\n\n isGroupedProduct()\n {\n return this.formElement.classList.contains('grouped_form');\n }\n}\nexport default SingleProductActionHandler;\n","import ErrorHandler from '../ErrorHandler';\nimport UpdateCart from \"../Helper/UpdateCart\";\nimport SingleProductActionHandler from \"../ActionHandler/SingleProductActionHandler\";\n\nclass SingleProductBootstap {\n constructor(gateway, renderer, messages) {\n this.gateway = gateway;\n this.renderer = renderer;\n this.messages = messages;\n }\n\n init() {\n if (!this.shouldRender()) {\n this.renderer.hideButtons(this.gateway.hosted_fields.wrapper);\n return;\n }\n\n this.render();\n }\n\n shouldRender() {\n if (document.querySelector('form.cart') === null) {\n return false;\n }\n\n return true;\n }\n\n render() {\n const actionHandler = new SingleProductActionHandler(\n this.gateway,\n new UpdateCart(\n this.gateway.ajax.change_cart.endpoint,\n this.gateway.ajax.change_cart.nonce,\n ),\n () => {\n this.renderer.showButtons(this.gateway.button.wrapper);\n this.renderer.showButtons(this.gateway.hosted_fields.wrapper);\n let priceText = \"0\";\n if (document.querySelector('form.cart ins .woocommerce-Price-amount')) {\n priceText = document.querySelector('form.cart ins .woocommerce-Price-amount').innerText;\n }\n else if (document.querySelector('form.cart .woocommerce-Price-amount')) {\n priceText = document.querySelector('form.cart .woocommerce-Price-amount').innerText;\n }\n const amount = parseInt(priceText.replace(/([^\\d,\\.\\s]*)/g, ''));\n this.messages.renderWithAmount(amount)\n },\n () => {\n this.renderer.hideButtons(this.gateway.button.wrapper);\n this.renderer.hideButtons(this.gateway.hosted_fields.wrapper);\n },\n document.querySelector('form.cart'),\n new ErrorHandler(this.gateway.labels.error.generic),\n );\n\n this.renderer.render(\n this.gateway.button.wrapper,\n this.gateway.hosted_fields.wrapper,\n actionHandler.configuration(),\n );\n }\n}\n\nexport default SingleProductBootstap;","import CartActionHandler from '../ActionHandler/CartActionHandler';\nimport ErrorHandler from '../ErrorHandler';\n\nclass CartBootstrap {\n constructor(gateway, renderer) {\n this.gateway = gateway;\n this.renderer = renderer;\n }\n\n init() {\n if (!this.shouldRender()) {\n return;\n }\n\n this.render();\n\n jQuery(document.body).on('updated_cart_totals updated_checkout', () => {\n this.render();\n });\n }\n\n shouldRender() {\n return document.querySelector(this.gateway.button.wrapper) !==\n null || document.querySelector(this.gateway.hosted_fields.wrapper) !==\n null;\n }\n\n render() {\n const actionHandler = new CartActionHandler(\n PayPalCommerceGateway,\n new ErrorHandler(this.gateway.labels.error.generic),\n );\n\n this.renderer.render(\n this.gateway.button.wrapper,\n this.gateway.hosted_fields.wrapper,\n actionHandler.configuration(),\n );\n }\n}\n\nexport default CartBootstrap;\n","const onApprove = (context, errorHandler, spinner) => {\n return (data, actions) => {\n spinner.block();\n return fetch(context.config.ajax.approve_order.endpoint, {\n method: 'POST',\n body: JSON.stringify({\n nonce: context.config.ajax.approve_order.nonce,\n order_id:data.orderID\n })\n }).then((res)=>{\n return res.json();\n }).then((data)=>{\n spinner.unblock();\n if (!data.success) {\n if (data.data.code === 100) {\n errorHandler.message(data.data.message);\n } else {\n errorHandler.genericError();\n }\n if (typeof actions !== 'undefined' && typeof actions.restart !== 'undefined') {\n return actions.restart();\n }\n throw new Error(data.data.message);\n }\n document.querySelector('#place_order').click()\n });\n\n }\n}\n\nexport default onApprove;\n","import onApprove from '../OnApproveHandler/onApproveForPayNow.js';\nimport {payerData} from \"../Helper/PayerData\";\n\nclass CheckoutActionHandler {\n\n constructor(config, errorHandler, spinner) {\n this.config = config;\n this.errorHandler = errorHandler;\n this.spinner = spinner;\n }\n\n configuration() {\n const spinner = this.spinner;\n const createOrder = (data, actions) => {\n const payer = payerData();\n const bnCode = typeof this.config.bn_codes[this.config.context] !== 'undefined' ?\n this.config.bn_codes[this.config.context] : '';\n\n const errorHandler = this.errorHandler;\n\n const formSelector = this.config.context === 'checkout' ? 'form.checkout' : 'form#order_review';\n const formValues = jQuery(formSelector).serialize();\n\n const createaccount = jQuery('#createaccount').is(\":checked\") ? true : false;\n\n return fetch(this.config.ajax.create_order.endpoint, {\n method: 'POST',\n body: JSON.stringify({\n nonce: this.config.ajax.create_order.nonce,\n payer,\n bn_code:bnCode,\n context:this.config.context,\n order_id:this.config.order_id,\n form:formValues,\n createaccount: createaccount\n })\n }).then(function (res) {\n return res.json();\n }).then(function (data) {\n if (!data.success) {\n spinner.unblock();\n //handle both messages sent from Woocommerce (data.messages) and this plugin (data.data.message)\n if (typeof(data.messages) !== 'undefined' )\n {\n const domParser = new DOMParser();\n errorHandler.appendPreparedErrorMessageElement(\n domParser.parseFromString(data.messages, 'text/html')\n .querySelector('ul')\n );\n } else {\n errorHandler.message(data.data.message, true);\n }\n\n return;\n }\n const input = document.createElement('input');\n input.setAttribute('type', 'hidden');\n input.setAttribute('name', 'ppcp-resume-order');\n input.setAttribute('value', data.data.purchase_units[0].custom_id);\n document.querySelector(formSelector).append(input);\n return data.data.id;\n });\n }\n return {\n createOrder,\n onApprove:onApprove(this, this.errorHandler, this.spinner),\n onCancel: () => {\n spinner.unblock();\n },\n onError: () => {\n this.errorHandler.genericError();\n spinner.unblock();\n }\n }\n }\n}\n\nexport default CheckoutActionHandler;\n","import ErrorHandler from '../ErrorHandler';\nimport CheckoutActionHandler from '../ActionHandler/CheckoutActionHandler';\n\nclass CheckoutBootstap {\n constructor(gateway, renderer, messages, spinner) {\n this.gateway = gateway;\n this.renderer = renderer;\n this.messages = messages;\n this.spinner = spinner;\n }\n\n init() {\n\n this.render();\n\n jQuery(document.body).on('updated_checkout', () => {\n this.render()\n });\n\n jQuery(document.body).\n on('updated_checkout payment_method_selected', () => {\n this.switchBetweenPayPalandOrderButton()\n this.displayPlaceOrderButtonForSavedCreditCards()\n\n })\n\n jQuery('#saved-credit-card').on('change', () => {\n this.displayPlaceOrderButtonForSavedCreditCards()\n })\n\n this.switchBetweenPayPalandOrderButton()\n this.displayPlaceOrderButtonForSavedCreditCards()\n }\n\n shouldRender() {\n if (document.querySelector(this.gateway.button.cancel_wrapper)) {\n return false;\n }\n\n return document.querySelector(this.gateway.button.wrapper) !== null || document.querySelector(this.gateway.hosted_fields.wrapper) !== null;\n }\n\n render() {\n if (!this.shouldRender()) {\n return;\n }\n if (document.querySelector(this.gateway.hosted_fields.wrapper + '>div')) {\n document.querySelector(this.gateway.hosted_fields.wrapper + '>div').setAttribute('style', '');\n }\n const actionHandler = new CheckoutActionHandler(\n PayPalCommerceGateway,\n new ErrorHandler(this.gateway.labels.error.generic),\n this.spinner\n );\n\n this.renderer.render(\n this.gateway.button.wrapper,\n this.gateway.hosted_fields.wrapper,\n actionHandler.configuration(),\n );\n }\n\n switchBetweenPayPalandOrderButton() {\n jQuery('#saved-credit-card').val(jQuery('#saved-credit-card option:first').val());\n\n const currentPaymentMethod = jQuery(\n 'input[name=\"payment_method\"]:checked').val();\n\n if (currentPaymentMethod !== 'ppcp-gateway' && currentPaymentMethod !== 'ppcp-credit-card-gateway') {\n this.renderer.hideButtons(this.gateway.button.wrapper);\n this.renderer.hideButtons(this.gateway.messages.wrapper);\n this.renderer.hideButtons(this.gateway.hosted_fields.wrapper);\n jQuery('#place_order').show();\n }\n else {\n jQuery('#place_order').hide();\n if (currentPaymentMethod === 'ppcp-gateway') {\n this.renderer.showButtons(this.gateway.button.wrapper);\n this.renderer.showButtons(this.gateway.messages.wrapper);\n this.messages.render()\n this.renderer.hideButtons(this.gateway.hosted_fields.wrapper)\n }\n if (currentPaymentMethod === 'ppcp-credit-card-gateway') {\n this.renderer.hideButtons(this.gateway.button.wrapper)\n this.renderer.hideButtons(this.gateway.messages.wrapper)\n this.renderer.showButtons(this.gateway.hosted_fields.wrapper)\n }\n }\n }\n\n displayPlaceOrderButtonForSavedCreditCards() {\n const currentPaymentMethod = jQuery(\n 'input[name=\"payment_method\"]:checked').val();\n if (currentPaymentMethod !== 'ppcp-credit-card-gateway') {\n return;\n }\n\n if (jQuery('#saved-credit-card').length && jQuery('#saved-credit-card').val() !== '') {\n this.renderer.hideButtons(this.gateway.button.wrapper)\n this.renderer.hideButtons(this.gateway.messages.wrapper)\n this.renderer.hideButtons(this.gateway.hosted_fields.wrapper)\n jQuery('#place_order').show()\n } else {\n jQuery('#place_order').hide()\n this.renderer.hideButtons(this.gateway.button.wrapper)\n this.renderer.hideButtons(this.gateway.messages.wrapper)\n this.renderer.showButtons(this.gateway.hosted_fields.wrapper)\n }\n }\n}\n\nexport default CheckoutBootstap\n","import ErrorHandler from '../ErrorHandler';\nimport CheckoutActionHandler from '../ActionHandler/CheckoutActionHandler';\n\nclass PayNowBootstrap {\n constructor(gateway, renderer, messages, spinner) {\n this.gateway = gateway;\n this.renderer = renderer;\n this.messages = messages;\n this.spinner = spinner;\n }\n\n init() {\n\n this.render();\n\n jQuery(document.body).on('updated_checkout', () => {\n this.render();\n });\n\n jQuery(document.body).\n on('updated_checkout payment_method_selected', () => {\n this.switchBetweenPayPalandOrderButton();\n });\n this.switchBetweenPayPalandOrderButton();\n }\n\n shouldRender() {\n if (document.querySelector(this.gateway.button.cancel_wrapper)) {\n return false;\n }\n\n return document.querySelector(this.gateway.button.wrapper) !== null || document.querySelector(this.gateway.hosted_fields.wrapper) !== null;\n }\n\n render() {\n if (!this.shouldRender()) {\n return;\n }\n if (document.querySelector(this.gateway.hosted_fields.wrapper + '>div')) {\n document.querySelector(this.gateway.hosted_fields.wrapper + '>div').setAttribute('style', '');\n }\n const actionHandler = new CheckoutActionHandler(\n PayPalCommerceGateway,\n new ErrorHandler(this.gateway.labels.error.generic),\n this.spinner\n );\n\n this.renderer.render(\n this.gateway.button.wrapper,\n this.gateway.hosted_fields.wrapper,\n actionHandler.configuration(),\n );\n }\n\n switchBetweenPayPalandOrderButton() {\n const urlParams = new URLSearchParams(window.location.search)\n if (urlParams.has('change_payment_method')) {\n return\n }\n\n const currentPaymentMethod = jQuery(\n 'input[name=\"payment_method\"]:checked').val();\n\n if (currentPaymentMethod !== 'ppcp-gateway' && currentPaymentMethod !== 'ppcp-credit-card-gateway') {\n this.renderer.hideButtons(this.gateway.button.wrapper);\n this.renderer.hideButtons(this.gateway.messages.wrapper);\n this.renderer.hideButtons(this.gateway.hosted_fields.wrapper);\n jQuery('#place_order').show();\n }\n else {\n jQuery('#place_order').hide();\n if (currentPaymentMethod === 'ppcp-gateway') {\n this.renderer.showButtons(this.gateway.button.wrapper);\n this.renderer.showButtons(this.gateway.messages.wrapper);\n this.messages.render();\n this.renderer.hideButtons(this.gateway.hosted_fields.wrapper);\n }\n if (currentPaymentMethod === 'ppcp-credit-card-gateway') {\n this.renderer.hideButtons(this.gateway.button.wrapper);\n this.renderer.hideButtons(this.gateway.messages.wrapper);\n this.renderer.showButtons(this.gateway.hosted_fields.wrapper);\n }\n }\n }\n}\n\nexport default PayNowBootstrap;\n","class Renderer {\n constructor(creditCardRenderer, defaultConfig) {\n this.defaultConfig = defaultConfig;\n this.creditCardRenderer = creditCardRenderer;\n }\n\n render(wrapper, hostedFieldsWrapper, contextConfig) {\n\n this.renderButtons(wrapper, contextConfig);\n this.creditCardRenderer.render(hostedFieldsWrapper, contextConfig);\n }\n\n renderButtons(wrapper, contextConfig) {\n if (! document.querySelector(wrapper) || this.isAlreadyRendered(wrapper) || 'undefined' === typeof paypal.Buttons ) {\n return;\n }\n\n const style = wrapper === this.defaultConfig.button.wrapper ? this.defaultConfig.button.style : this.defaultConfig.button.mini_cart_style;\n paypal.Buttons({\n style,\n ...contextConfig,\n }).render(wrapper);\n }\n\n isAlreadyRendered(wrapper) {\n return document.querySelector(wrapper).hasChildNodes();\n }\n\n hideButtons(element) {\n const domElement = document.querySelector(element);\n if (! domElement ) {\n return false;\n }\n domElement.style.display = 'none';\n return true;\n }\n\n showButtons(element) {\n const domElement = document.querySelector(element);\n if (! domElement ) {\n return false;\n }\n domElement.style.display = 'block';\n return true;\n }\n}\n\nexport default Renderer;","const dccInputFactory = (original) => {\n const styles = window.getComputedStyle(original);\n const newElement = document.createElement('span');\n newElement.setAttribute('id', original.id);\n Object.values(styles).forEach( (prop) => {\n if (! styles[prop] || ! isNaN(prop) ) {\n return;\n }\n newElement.style.setProperty(prop,'' + styles[prop]);\n });\n return newElement;\n}\n\nexport default dccInputFactory;","import dccInputFactory from \"../Helper/DccInputFactory\";\n\nclass CreditCardRenderer {\n\n constructor(defaultConfig, errorHandler, spinner) {\n this.defaultConfig = defaultConfig;\n this.errorHandler = errorHandler;\n this.spinner = spinner;\n this.cardValid = false;\n this.formValid = false;\n }\n\n render(wrapper, contextConfig) {\n\n if (\n (\n this.defaultConfig.context !== 'checkout'\n && this.defaultConfig.context !== 'pay-now'\n )\n || wrapper === null\n || document.querySelector(wrapper) === null\n ) {\n return;\n }\n if (\n typeof paypal.HostedFields === 'undefined'\n || ! paypal.HostedFields.isEligible()\n ) {\n const wrapperElement = document.querySelector(wrapper);\n wrapperElement.parentNode.removeChild(wrapperElement);\n return;\n }\n\n const gateWayBox = document.querySelector('.payment_box.payment_method_ppcp-credit-card-gateway');\n const oldDisplayStyle = gateWayBox.style.display;\n gateWayBox.style.display = 'block';\n\n const hideDccGateway = document.querySelector('#ppcp-hide-dcc');\n if (hideDccGateway) {\n hideDccGateway.parentNode.removeChild(hideDccGateway);\n }\n\n const cardNumberField = document.querySelector('#ppcp-credit-card-gateway-card-number');\n\n const stylesRaw = window.getComputedStyle(cardNumberField);\n let styles = {};\n Object.values(stylesRaw).forEach( (prop) => {\n if (! stylesRaw[prop]) {\n return;\n }\n styles[prop] = '' + stylesRaw[prop];\n });\n\n const cardNumber = dccInputFactory(cardNumberField);\n cardNumberField.parentNode.replaceChild(cardNumber, cardNumberField);\n\n const cardExpiryField = document.querySelector('#ppcp-credit-card-gateway-card-expiry');\n const cardExpiry = dccInputFactory(cardExpiryField);\n cardExpiryField.parentNode.replaceChild(cardExpiry, cardExpiryField);\n\n const cardCodeField = document.querySelector('#ppcp-credit-card-gateway-card-cvc');\n const cardCode = dccInputFactory(cardCodeField);\n cardCodeField.parentNode.replaceChild(cardCode, cardCodeField);\n\n gateWayBox.style.display = oldDisplayStyle;\n\n const formWrapper = '.payment_box payment_method_ppcp-credit-card-gateway';\n if (\n this.defaultConfig.enforce_vault\n && document.querySelector(formWrapper + ' .ppcp-credit-card-vault')\n ) {\n document.querySelector(formWrapper + ' .ppcp-credit-card-vault').checked = true;\n document.querySelector(formWrapper + ' .ppcp-credit-card-vault').setAttribute('disabled', true);\n }\n paypal.HostedFields.render({\n createOrder: contextConfig.createOrder,\n styles: {\n 'input': styles\n },\n fields: {\n number: {\n selector: '#ppcp-credit-card-gateway-card-number',\n placeholder: this.defaultConfig.hosted_fields.labels.credit_card_number,\n },\n cvv: {\n selector: '#ppcp-credit-card-gateway-card-cvc',\n placeholder: this.defaultConfig.hosted_fields.labels.cvv,\n },\n expirationDate: {\n selector: '#ppcp-credit-card-gateway-card-expiry',\n placeholder: this.defaultConfig.hosted_fields.labels.mm_yy,\n }\n }\n }).then(hostedFields => {\n const submitEvent = (event) => {\n this.spinner.block();\n if (event) {\n event.preventDefault();\n }\n this.errorHandler.clear();\n\n if (this.formValid && this.cardValid) {\n const save_card = this.defaultConfig.save_card ? true : false;\n const vault = document.getElementById('ppcp-credit-card-vault') ?\n document.getElementById('ppcp-credit-card-vault').checked : save_card;\n hostedFields.submit({\n contingencies: ['SCA_WHEN_REQUIRED'],\n vault: vault\n }).then((payload) => {\n payload.orderID = payload.orderId;\n this.spinner.unblock();\n return contextConfig.onApprove(payload);\n }).catch(() => {\n this.errorHandler.genericError();\n this.spinner.unblock();\n });\n } else {\n this.spinner.unblock();\n const message = ! this.cardValid ? this.defaultConfig.hosted_fields.labels.card_not_supported : this.defaultConfig.hosted_fields.labels.fields_not_valid;\n this.errorHandler.message(message);\n }\n }\n hostedFields.on('inputSubmitRequest', function () {\n submitEvent(null);\n });\n hostedFields.on('cardTypeChange', (event) => {\n if ( ! event.cards.length ) {\n this.cardValid = false;\n return;\n }\n const validCards = this.defaultConfig.hosted_fields.valid_cards;\n this.cardValid = validCards.indexOf(event.cards[0].type) !== -1;\n })\n hostedFields.on('validityChange', (event) => {\n const formValid = Object.keys(event.fields).every(function (key) {\n return event.fields[key].isValid;\n });\n this.formValid = formValid;\n\n })\n document.querySelector(wrapper + ' button').addEventListener(\n 'click',\n submitEvent\n );\n });\n\n document.querySelector('#payment_method_ppcp-credit-card-gateway').addEventListener(\n 'click',\n () => {\n document.querySelector('label[for=ppcp-credit-card-gateway-card-number]').click();\n }\n )\n }\n}\nexport default CreditCardRenderer;\n","const storageKey = 'ppcp-data-client-id';\n\nconst validateToken = (token, user) => {\n if (! token) {\n return false;\n }\n if (token.user !== user) {\n return false;\n }\n const currentTime = new Date().getTime();\n const isExpired = currentTime >= token.expiration * 1000;\n return ! isExpired;\n}\n\nconst storedTokenForUser = (user) => {\n const token = JSON.parse(sessionStorage.getItem(storageKey));\n if (validateToken(token, user)) {\n return token.token;\n }\n return null;\n}\n\nconst storeToken = (token) => {\n sessionStorage.setItem(storageKey, JSON.stringify(token));\n}\n\nconst dataClientIdAttributeHandler = (script, config) => {\n fetch(config.endpoint, {\n method: 'POST',\n body: JSON.stringify({\n nonce: config.nonce\n })\n }).then((res)=>{\n return res.json();\n }).then((data)=>{\n const isValid = validateToken(data, config.user);\n if (!isValid) {\n return;\n }\n storeToken(data);\n script.setAttribute('data-client-token', data.token);\n document.body.append(script);\n });\n}\n\nexport default dataClientIdAttributeHandler;\n","class MessageRenderer {\n\n constructor(config) {\n this.config = config;\n }\n\n render() {\n if (! this.shouldRender()) {\n return;\n }\n\n paypal.Messages({\n amount: this.config.amount,\n placement: this.config.placement,\n style: this.config.style\n }).render(this.config.wrapper);\n }\n\n renderWithAmount(amount) {\n\n if (! this.shouldRender()) {\n return;\n }\n\n const newWrapper = document.createElement('div');\n newWrapper.setAttribute('id', this.config.wrapper.replace('#', ''));\n\n const sibling = document.querySelector(this.config.wrapper).nextSibling;\n document.querySelector(this.config.wrapper).parentElement.removeChild(document.querySelector(this.config.wrapper));\n sibling.parentElement.insertBefore(newWrapper, sibling);\n paypal.Messages({\n amount,\n placement: this.config.placement,\n style: this.config.style\n }).render(this.config.wrapper);\n }\n\n shouldRender() {\n\n if (typeof paypal.Messages === 'undefined' || typeof this.config.wrapper === 'undefined' ) {\n return false;\n }\n if (! document.querySelector(this.config.wrapper)) {\n return false;\n }\n return true;\n }\n}\nexport default MessageRenderer;","class Spinner {\n\n constructor() {\n this.target = 'form.woocommerce-checkout';\n }\n\n setTarget(target) {\n this.target = target;\n }\n\n block() {\n\n jQuery( this.target ).block({\n message: null,\n overlayCSS: {\n background: '#fff',\n opacity: 0.6\n }\n });\n }\n\n unblock() {\n\n jQuery( this.target ).unblock();\n }\n}\n\nexport default Spinner;\n","import MiniCartBootstap from './modules/ContextBootstrap/MiniCartBootstap';\nimport SingleProductBootstap from './modules/ContextBootstrap/SingleProductBootstap';\nimport CartBootstrap from './modules/ContextBootstrap/CartBootstap';\nimport CheckoutBootstap from './modules/ContextBootstrap/CheckoutBootstap';\nimport PayNowBootstrap from \"./modules/ContextBootstrap/PayNowBootstrap\";\nimport Renderer from './modules/Renderer/Renderer';\nimport ErrorHandler from './modules/ErrorHandler';\nimport CreditCardRenderer from \"./modules/Renderer/CreditCardRenderer\";\nimport dataClientIdAttributeHandler from \"./modules/DataClientIdAttributeHandler\";\nimport MessageRenderer from \"./modules/Renderer/MessageRenderer\";\nimport Spinner from \"./modules/Helper/Spinner\";\n\nconst bootstrap = () => {\n const errorHandler = new ErrorHandler(PayPalCommerceGateway.labels.error.generic);\n const spinner = new Spinner();\n const creditCardRenderer = new CreditCardRenderer(PayPalCommerceGateway, errorHandler, spinner);\n const renderer = new Renderer(creditCardRenderer, PayPalCommerceGateway);\n const messageRenderer = new MessageRenderer(PayPalCommerceGateway.messages);\n const context = PayPalCommerceGateway.context;\n if (context === 'mini-cart' || context === 'product') {\n if (PayPalCommerceGateway.mini_cart_buttons_enabled === '1') {\n const miniCartBootstrap = new MiniCartBootstap(\n PayPalCommerceGateway,\n renderer\n );\n\n miniCartBootstrap.init();\n }\n }\n\n if (context === 'product' && PayPalCommerceGateway.single_product_buttons_enabled === '1') {\n const singleProductBootstrap = new SingleProductBootstap(\n PayPalCommerceGateway,\n renderer,\n messageRenderer,\n );\n\n singleProductBootstrap.init();\n }\n\n if (context === 'cart') {\n const cartBootstrap = new CartBootstrap(\n PayPalCommerceGateway,\n renderer,\n );\n\n cartBootstrap.init();\n }\n\n if (context === 'checkout') {\n const checkoutBootstap = new CheckoutBootstap(\n PayPalCommerceGateway,\n renderer,\n messageRenderer,\n spinner\n );\n\n checkoutBootstap.init();\n }\n\n if (context === 'pay-now' ) {\n const payNowBootstrap = new PayNowBootstrap(\n PayPalCommerceGateway,\n renderer,\n messageRenderer,\n spinner\n );\n payNowBootstrap.init();\n }\n\n if (context !== 'checkout') {\n messageRenderer.render();\n }\n};\ndocument.addEventListener(\n 'DOMContentLoaded',\n () => {\n if (!typeof (PayPalCommerceGateway)) {\n console.error('PayPal button could not be configured.');\n return;\n }\n const script = document.createElement('script');\n\n script.addEventListener('load', (event) => {\n bootstrap();\n });\n script.setAttribute('src', PayPalCommerceGateway.button.url);\n Object.entries(PayPalCommerceGateway.script_attributes).forEach(\n (keyValue) => {\n script.setAttribute(keyValue[0], keyValue[1]);\n }\n );\n\n if (PayPalCommerceGateway.data_client_id.set_attribute) {\n dataClientIdAttributeHandler(script, PayPalCommerceGateway.data_client_id);\n return;\n }\n\n document.body.append(script);\n },\n);\n"],"sourceRoot":""}
|
|
modules/ppcp-button/assets/js/hosted-fields.js
CHANGED
@@ -1,2 +1 @@
|
|
1 |
-
|
2 |
-
//# sourceMappingURL=hosted-fields.js.map
|
1 |
+
(()=>{"use strict";var __webpack_modules__={555:(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__)=>{eval('/* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = (__webpack_require__.p + "css/hosted-fields.css");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTU1LmpzIiwibWFwcGluZ3MiOiJBQUFBLHNFQUFlLHFCQUF1QiwwQkFBMEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9wcGMtYnV0dG9uLy4vcmVzb3VyY2VzL2Nzcy9ob3N0ZWQtZmllbGRzLnNjc3M/NjRhYiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBfX3dlYnBhY2tfcHVibGljX3BhdGhfXyArIFwiY3NzL2hvc3RlZC1maWVsZHMuY3NzXCI7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///555\n')}},__webpack_require__={};__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),(()=>{var e;__webpack_require__.g.importScripts&&(e=__webpack_require__.g.location+"");var _=__webpack_require__.g.document;if(!e&&_&&(_.currentScript&&(e=_.currentScript.src),!e)){var r=_.getElementsByTagName("script");r.length&&(e=r[r.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),__webpack_require__.p=e+"../"})();var __webpack_exports__={};__webpack_modules__[555](0,__webpack_exports__,__webpack_require__)})();
|
|
modules/ppcp-button/assets/js/hosted-fields.js.map
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./resources/css/hosted-fields.scss"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s"],"mappings":"aACE,IAAIA,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QAKfF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEZ,EAAoBkB,EAAI,SAAShB,GACX,oBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAQvDrB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrB,EAAoBU,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRzB,EAAoB6B,EAAI,SAAS1B,GAChC,IAAIS,EAAST,GAAUA,EAAOqB,WAC7B,WAAwB,OAAOrB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRZ,EAAoBa,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG/B,EAAoBkC,EAAI,GAIjBlC,EAAoBA,EAAoBmC,EAAI,G,kBClFrDhC,EAAOD,QAAU,IAA0B","file":"js/hosted-fields.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","module.exports = __webpack_public_path__ + \"css/hosted-fields.css\";"],"sourceRoot":""}
|
|
modules/ppcp-button/resources/css/hosted-fields.scss
CHANGED
@@ -7,3 +7,7 @@
|
|
7 |
.payments-sdk-contingency-handler {
|
8 |
z-index: 1000 !important;
|
9 |
}
|
|
|
|
|
|
|
|
7 |
.payments-sdk-contingency-handler {
|
8 |
z-index: 1000 !important;
|
9 |
}
|
10 |
+
|
11 |
+
.ppcp-credit-card-gateway-form-field-disabled {
|
12 |
+
opacity: .5 !important;
|
13 |
+
}
|
modules/ppcp-button/resources/js/modules/ContextBootstrap/CheckoutBootstap.js
CHANGED
@@ -24,9 +24,11 @@ class CheckoutBootstap {
|
|
24 |
|
25 |
})
|
26 |
|
27 |
-
jQuery(
|
28 |
-
|
29 |
-
|
|
|
|
|
30 |
|
31 |
this.switchBetweenPayPalandOrderButton()
|
32 |
this.displayPlaceOrderButtonForSavedCreditCards()
|
@@ -100,13 +102,41 @@ class CheckoutBootstap {
|
|
100 |
this.renderer.hideButtons(this.gateway.messages.wrapper)
|
101 |
this.renderer.hideButtons(this.gateway.hosted_fields.wrapper)
|
102 |
jQuery('#place_order').show()
|
|
|
103 |
} else {
|
104 |
jQuery('#place_order').hide()
|
105 |
this.renderer.hideButtons(this.gateway.button.wrapper)
|
106 |
this.renderer.hideButtons(this.gateway.messages.wrapper)
|
107 |
this.renderer.showButtons(this.gateway.hosted_fields.wrapper)
|
|
|
108 |
}
|
109 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
110 |
}
|
111 |
|
112 |
export default CheckoutBootstap
|
24 |
|
25 |
})
|
26 |
|
27 |
+
jQuery(document).on('hosted_fields_loaded', () => {
|
28 |
+
jQuery('#saved-credit-card').on('change', () => {
|
29 |
+
this.displayPlaceOrderButtonForSavedCreditCards()
|
30 |
+
})
|
31 |
+
});
|
32 |
|
33 |
this.switchBetweenPayPalandOrderButton()
|
34 |
this.displayPlaceOrderButtonForSavedCreditCards()
|
102 |
this.renderer.hideButtons(this.gateway.messages.wrapper)
|
103 |
this.renderer.hideButtons(this.gateway.hosted_fields.wrapper)
|
104 |
jQuery('#place_order').show()
|
105 |
+
this.disableCreditCardFields()
|
106 |
} else {
|
107 |
jQuery('#place_order').hide()
|
108 |
this.renderer.hideButtons(this.gateway.button.wrapper)
|
109 |
this.renderer.hideButtons(this.gateway.messages.wrapper)
|
110 |
this.renderer.showButtons(this.gateway.hosted_fields.wrapper)
|
111 |
+
this.enableCreditCardFields()
|
112 |
}
|
113 |
}
|
114 |
+
|
115 |
+
disableCreditCardFields() {
|
116 |
+
jQuery('label[for="ppcp-credit-card-gateway-card-number"]').addClass('ppcp-credit-card-gateway-form-field-disabled')
|
117 |
+
jQuery('#ppcp-credit-card-gateway-card-number').addClass('ppcp-credit-card-gateway-form-field-disabled')
|
118 |
+
jQuery('label[for="ppcp-credit-card-gateway-card-expiry"]').addClass('ppcp-credit-card-gateway-form-field-disabled')
|
119 |
+
jQuery('#ppcp-credit-card-gateway-card-expiry').addClass('ppcp-credit-card-gateway-form-field-disabled')
|
120 |
+
jQuery('label[for="ppcp-credit-card-gateway-card-cvc"]').addClass('ppcp-credit-card-gateway-form-field-disabled')
|
121 |
+
jQuery('#ppcp-credit-card-gateway-card-cvc').addClass('ppcp-credit-card-gateway-form-field-disabled')
|
122 |
+
jQuery('label[for="vault"]').addClass('ppcp-credit-card-gateway-form-field-disabled')
|
123 |
+
jQuery('#ppcp-credit-card-vault').addClass('ppcp-credit-card-gateway-form-field-disabled')
|
124 |
+
jQuery('#ppcp-credit-card-vault').attr("disabled", true)
|
125 |
+
this.renderer.disableCreditCardFields()
|
126 |
+
}
|
127 |
+
|
128 |
+
enableCreditCardFields() {
|
129 |
+
jQuery('label[for="ppcp-credit-card-gateway-card-number"]').removeClass('ppcp-credit-card-gateway-form-field-disabled')
|
130 |
+
jQuery('#ppcp-credit-card-gateway-card-number').removeClass('ppcp-credit-card-gateway-form-field-disabled')
|
131 |
+
jQuery('label[for="ppcp-credit-card-gateway-card-expiry"]').removeClass('ppcp-credit-card-gateway-form-field-disabled')
|
132 |
+
jQuery('#ppcp-credit-card-gateway-card-expiry').removeClass('ppcp-credit-card-gateway-form-field-disabled')
|
133 |
+
jQuery('label[for="ppcp-credit-card-gateway-card-cvc"]').removeClass('ppcp-credit-card-gateway-form-field-disabled')
|
134 |
+
jQuery('#ppcp-credit-card-gateway-card-cvc').removeClass('ppcp-credit-card-gateway-form-field-disabled')
|
135 |
+
jQuery('label[for="vault"]').removeClass('ppcp-credit-card-gateway-form-field-disabled')
|
136 |
+
jQuery('#ppcp-credit-card-vault').removeClass('ppcp-credit-card-gateway-form-field-disabled')
|
137 |
+
jQuery('#ppcp-credit-card-vault').attr("disabled", false)
|
138 |
+
this.renderer.enableCreditCardFields()
|
139 |
+
}
|
140 |
}
|
141 |
|
142 |
export default CheckoutBootstap
|
modules/ppcp-button/resources/js/modules/Renderer/CreditCardRenderer.js
CHANGED
@@ -8,6 +8,8 @@ class CreditCardRenderer {
|
|
8 |
this.spinner = spinner;
|
9 |
this.cardValid = false;
|
10 |
this.formValid = false;
|
|
|
|
|
11 |
}
|
12 |
|
13 |
render(wrapper, contextConfig) {
|
@@ -31,6 +33,12 @@ class CreditCardRenderer {
|
|
31 |
return;
|
32 |
}
|
33 |
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
const gateWayBox = document.querySelector('.payment_box.payment_method_ppcp-credit-card-gateway');
|
35 |
const oldDisplayStyle = gateWayBox.style.display;
|
36 |
gateWayBox.style.display = 'block';
|
@@ -92,36 +100,11 @@ class CreditCardRenderer {
|
|
92 |
}
|
93 |
}
|
94 |
}).then(hostedFields => {
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
this.errorHandler.clear();
|
101 |
-
|
102 |
-
if (this.formValid && this.cardValid) {
|
103 |
-
const save_card = this.defaultConfig.save_card ? true : false;
|
104 |
-
const vault = document.getElementById('ppcp-credit-card-vault') ?
|
105 |
-
document.getElementById('ppcp-credit-card-vault').checked : save_card;
|
106 |
-
hostedFields.submit({
|
107 |
-
contingencies: ['SCA_WHEN_REQUIRED'],
|
108 |
-
vault: vault
|
109 |
-
}).then((payload) => {
|
110 |
-
payload.orderID = payload.orderId;
|
111 |
-
this.spinner.unblock();
|
112 |
-
return contextConfig.onApprove(payload);
|
113 |
-
}).catch(() => {
|
114 |
-
this.errorHandler.genericError();
|
115 |
-
this.spinner.unblock();
|
116 |
-
});
|
117 |
-
} else {
|
118 |
-
this.spinner.unblock();
|
119 |
-
const message = ! this.cardValid ? this.defaultConfig.hosted_fields.labels.card_not_supported : this.defaultConfig.hosted_fields.labels.fields_not_valid;
|
120 |
-
this.errorHandler.message(message);
|
121 |
-
}
|
122 |
-
}
|
123 |
-
hostedFields.on('inputSubmitRequest', function () {
|
124 |
-
submitEvent(null);
|
125 |
});
|
126 |
hostedFields.on('cardTypeChange', (event) => {
|
127 |
if ( ! event.cards.length ) {
|
@@ -137,11 +120,18 @@ class CreditCardRenderer {
|
|
137 |
});
|
138 |
this.formValid = formValid;
|
139 |
|
140 |
-
})
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
145 |
});
|
146 |
|
147 |
document.querySelector('#payment_method_ppcp-credit-card-gateway').addEventListener(
|
@@ -151,5 +141,69 @@ class CreditCardRenderer {
|
|
151 |
}
|
152 |
)
|
153 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
154 |
}
|
155 |
export default CreditCardRenderer;
|
8 |
this.spinner = spinner;
|
9 |
this.cardValid = false;
|
10 |
this.formValid = false;
|
11 |
+
this.currentHostedFieldsInstance = null;
|
12 |
+
this.formSubmissionSubscribed = false;
|
13 |
}
|
14 |
|
15 |
render(wrapper, contextConfig) {
|
33 |
return;
|
34 |
}
|
35 |
|
36 |
+
if (this.currentHostedFieldsInstance) {
|
37 |
+
this.currentHostedFieldsInstance.teardown()
|
38 |
+
.catch(err => console.error(`Hosted fields teardown error: ${err}`));
|
39 |
+
this.currentHostedFieldsInstance = null;
|
40 |
+
}
|
41 |
+
|
42 |
const gateWayBox = document.querySelector('.payment_box.payment_method_ppcp-credit-card-gateway');
|
43 |
const oldDisplayStyle = gateWayBox.style.display;
|
44 |
gateWayBox.style.display = 'block';
|
100 |
}
|
101 |
}
|
102 |
}).then(hostedFields => {
|
103 |
+
document.dispatchEvent(new CustomEvent("hosted_fields_loaded"));
|
104 |
+
this.currentHostedFieldsInstance = hostedFields;
|
105 |
+
|
106 |
+
hostedFields.on('inputSubmitRequest', () => {
|
107 |
+
this._submit(contextConfig);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
108 |
});
|
109 |
hostedFields.on('cardTypeChange', (event) => {
|
110 |
if ( ! event.cards.length ) {
|
120 |
});
|
121 |
this.formValid = formValid;
|
122 |
|
123 |
+
});
|
124 |
+
|
125 |
+
if (!this.formSubmissionSubscribed) {
|
126 |
+
document.querySelector(wrapper + ' button').addEventListener(
|
127 |
+
'click',
|
128 |
+
event => {
|
129 |
+
event.preventDefault();
|
130 |
+
this._submit(contextConfig);
|
131 |
+
}
|
132 |
+
);
|
133 |
+
this.formSubmissionSubscribed = true;
|
134 |
+
}
|
135 |
});
|
136 |
|
137 |
document.querySelector('#payment_method_ppcp-credit-card-gateway').addEventListener(
|
141 |
}
|
142 |
)
|
143 |
}
|
144 |
+
|
145 |
+
disableFields() {
|
146 |
+
if( this.currentHostedFieldsInstance) {
|
147 |
+
this.currentHostedFieldsInstance.setAttribute({
|
148 |
+
field: 'number',
|
149 |
+
attribute: 'disabled'
|
150 |
+
})
|
151 |
+
this.currentHostedFieldsInstance.setAttribute({
|
152 |
+
field: 'cvv',
|
153 |
+
attribute: 'disabled'
|
154 |
+
})
|
155 |
+
this.currentHostedFieldsInstance.setAttribute({
|
156 |
+
field: 'expirationDate',
|
157 |
+
attribute: 'disabled'
|
158 |
+
})
|
159 |
+
}
|
160 |
+
}
|
161 |
+
|
162 |
+
enableFields() {
|
163 |
+
if( this.currentHostedFieldsInstance) {
|
164 |
+
this.currentHostedFieldsInstance.removeAttribute({
|
165 |
+
field: 'number',
|
166 |
+
attribute: 'disabled'
|
167 |
+
})
|
168 |
+
this.currentHostedFieldsInstance.removeAttribute({
|
169 |
+
field: 'cvv',
|
170 |
+
attribute: 'disabled'
|
171 |
+
})
|
172 |
+
this.currentHostedFieldsInstance.removeAttribute({
|
173 |
+
field: 'expirationDate',
|
174 |
+
attribute: 'disabled'
|
175 |
+
})
|
176 |
+
}
|
177 |
+
}
|
178 |
+
|
179 |
+
_submit(contextConfig) {
|
180 |
+
this.spinner.block();
|
181 |
+
this.errorHandler.clear();
|
182 |
+
|
183 |
+
if (this.formValid && this.cardValid) {
|
184 |
+
const save_card = this.defaultConfig.save_card ? true : false;
|
185 |
+
const vault = document.getElementById('ppcp-credit-card-vault') ?
|
186 |
+
document.getElementById('ppcp-credit-card-vault').checked : save_card;
|
187 |
+
const contingency = this.defaultConfig.hosted_fields.contingency;
|
188 |
+
const hostedFieldsData = {
|
189 |
+
vault: vault
|
190 |
+
};
|
191 |
+
if (contingency !== 'NO_3D_SECURE') {
|
192 |
+
hostedFieldsData.contingencies = [contingency];
|
193 |
+
}
|
194 |
+
this.currentHostedFieldsInstance.submit(hostedFieldsData).then((payload) => {
|
195 |
+
payload.orderID = payload.orderId;
|
196 |
+
this.spinner.unblock();
|
197 |
+
return contextConfig.onApprove(payload);
|
198 |
+
}).catch(err => {
|
199 |
+
console.error(err);
|
200 |
+
this.spinner.unblock();
|
201 |
+
});
|
202 |
+
} else {
|
203 |
+
this.spinner.unblock();
|
204 |
+
const message = ! this.cardValid ? this.defaultConfig.hosted_fields.labels.card_not_supported : this.defaultConfig.hosted_fields.labels.fields_not_valid;
|
205 |
+
this.errorHandler.message(message);
|
206 |
+
}
|
207 |
+
}
|
208 |
}
|
209 |
export default CreditCardRenderer;
|
modules/ppcp-button/resources/js/modules/Renderer/Renderer.js
CHANGED
@@ -43,6 +43,14 @@ class Renderer {
|
|
43 |
domElement.style.display = 'block';
|
44 |
return true;
|
45 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
}
|
47 |
|
48 |
-
export default Renderer;
|
43 |
domElement.style.display = 'block';
|
44 |
return true;
|
45 |
}
|
46 |
+
|
47 |
+
disableCreditCardFields() {
|
48 |
+
this.creditCardRenderer.disableFields();
|
49 |
+
}
|
50 |
+
|
51 |
+
enableCreditCardFields() {
|
52 |
+
this.creditCardRenderer.enableFields();
|
53 |
+
}
|
54 |
}
|
55 |
|
56 |
+
export default Renderer;
|
modules/ppcp-button/services.php
CHANGED
@@ -67,7 +67,7 @@ return array(
|
|
67 |
$subscription_helper = $container->get( 'subscription.helper' );
|
68 |
$messages_apply = $container->get( 'button.helper.messages-apply' );
|
69 |
$environment = $container->get( 'onboarding.environment' );
|
70 |
-
$payment_token_repository = $container->get( '
|
71 |
$settings_status = $container->get( 'wcgateway.settings.status' );
|
72 |
return new SmartButton(
|
73 |
$container->get( 'button.url' ),
|
@@ -102,7 +102,8 @@ return array(
|
|
102 |
$request_data = $container->get( 'button.request-data' );
|
103 |
$repository = $container->get( 'api.repository.cart' );
|
104 |
$data_store = \WC_Data_Store::load( 'product' );
|
105 |
-
|
|
|
106 |
},
|
107 |
'button.endpoint.create-order' => static function ( $container ): CreateOrderEndpoint {
|
108 |
$request_data = $container->get( 'button.request-data' );
|
@@ -113,6 +114,7 @@ return array(
|
|
113 |
$session_handler = $container->get( 'session.handler' );
|
114 |
$settings = $container->get( 'wcgateway.settings' );
|
115 |
$early_order_handler = $container->get( 'button.helper.early-order-handler' );
|
|
|
116 |
return new CreateOrderEndpoint(
|
117 |
$request_data,
|
118 |
$cart_repository,
|
@@ -121,7 +123,8 @@ return array(
|
|
121 |
$payer_factory,
|
122 |
$session_handler,
|
123 |
$settings,
|
124 |
-
$early_order_handler
|
|
|
125 |
);
|
126 |
},
|
127 |
'button.helper.early-order-handler' => static function ( $container ) : EarlyOrderHandler {
|
@@ -153,13 +156,16 @@ return array(
|
|
153 |
'button.endpoint.data-client-id' => static function( $container ) : DataClientIdEndpoint {
|
154 |
$request_data = $container->get( 'button.request-data' );
|
155 |
$identity_token = $container->get( 'api.endpoint.identity-token' );
|
|
|
156 |
return new DataClientIdEndpoint(
|
157 |
$request_data,
|
158 |
-
$identity_token
|
|
|
159 |
);
|
160 |
},
|
161 |
'button.helper.three-d-secure' => static function ( $container ): ThreeDSecure {
|
162 |
-
|
|
|
163 |
},
|
164 |
'button.helper.messages-apply' => static function ( $container ): MessagesApply {
|
165 |
return new MessagesApply();
|
67 |
$subscription_helper = $container->get( 'subscription.helper' );
|
68 |
$messages_apply = $container->get( 'button.helper.messages-apply' );
|
69 |
$environment = $container->get( 'onboarding.environment' );
|
70 |
+
$payment_token_repository = $container->get( 'vaulting.repository.payment-token' );
|
71 |
$settings_status = $container->get( 'wcgateway.settings.status' );
|
72 |
return new SmartButton(
|
73 |
$container->get( 'button.url' ),
|
102 |
$request_data = $container->get( 'button.request-data' );
|
103 |
$repository = $container->get( 'api.repository.cart' );
|
104 |
$data_store = \WC_Data_Store::load( 'product' );
|
105 |
+
$logger = $container->get( 'woocommerce.logger.woocommerce' );
|
106 |
+
return new ChangeCartEndpoint( $cart, $shipping, $request_data, $repository, $data_store, $logger );
|
107 |
},
|
108 |
'button.endpoint.create-order' => static function ( $container ): CreateOrderEndpoint {
|
109 |
$request_data = $container->get( 'button.request-data' );
|
114 |
$session_handler = $container->get( 'session.handler' );
|
115 |
$settings = $container->get( 'wcgateway.settings' );
|
116 |
$early_order_handler = $container->get( 'button.helper.early-order-handler' );
|
117 |
+
$logger = $container->get( 'woocommerce.logger.woocommerce' );
|
118 |
return new CreateOrderEndpoint(
|
119 |
$request_data,
|
120 |
$cart_repository,
|
123 |
$payer_factory,
|
124 |
$session_handler,
|
125 |
$settings,
|
126 |
+
$early_order_handler,
|
127 |
+
$logger
|
128 |
);
|
129 |
},
|
130 |
'button.helper.early-order-handler' => static function ( $container ) : EarlyOrderHandler {
|
156 |
'button.endpoint.data-client-id' => static function( $container ) : DataClientIdEndpoint {
|
157 |
$request_data = $container->get( 'button.request-data' );
|
158 |
$identity_token = $container->get( 'api.endpoint.identity-token' );
|
159 |
+
$logger = $container->get( 'woocommerce.logger.woocommerce' );
|
160 |
return new DataClientIdEndpoint(
|
161 |
$request_data,
|
162 |
+
$identity_token,
|
163 |
+
$logger
|
164 |
);
|
165 |
},
|
166 |
'button.helper.three-d-secure' => static function ( $container ): ThreeDSecure {
|
167 |
+
$logger = $container->get( 'woocommerce.logger.woocommerce' );
|
168 |
+
return new ThreeDSecure( $logger );
|
169 |
},
|
170 |
'button.helper.messages-apply' => static function ( $container ): MessagesApply {
|
171 |
return new MessagesApply();
|
modules/ppcp-button/src/Assets/class-smartbutton.php
CHANGED
@@ -20,7 +20,7 @@ use WooCommerce\PayPalCommerce\Button\Helper\MessagesApply;
|
|
20 |
use WooCommerce\PayPalCommerce\Onboarding\Environment;
|
21 |
use WooCommerce\PayPalCommerce\Session\SessionHandler;
|
22 |
use WooCommerce\PayPalCommerce\Subscription\Helper\SubscriptionHelper;
|
23 |
-
use WooCommerce\PayPalCommerce\
|
24 |
use WooCommerce\PayPalCommerce\WcGateway\Gateway\CreditCardGateway;
|
25 |
use Woocommerce\PayPalCommerce\WcGateway\Helper\SettingsStatus;
|
26 |
use WooCommerce\PayPalCommerce\WcGateway\Settings\Settings;
|
@@ -601,6 +601,19 @@ class SmartButton implements SmartButtonInterface {
|
|
601 |
return $this->subscription_helper->cart_contains_subscription();
|
602 |
}
|
603 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
604 |
/**
|
605 |
* The localized data for the smart button.
|
606 |
*
|
@@ -677,6 +690,7 @@ class SmartButton implements SmartButtonInterface {
|
|
677 |
),
|
678 |
),
|
679 |
'valid_cards' => $this->dcc_applies->valid_cards(),
|
|
|
680 |
),
|
681 |
'messages' => $this->message_values(),
|
682 |
'labels' => array(
|
@@ -729,8 +743,7 @@ class SmartButton implements SmartButtonInterface {
|
|
729 |
'currency' => get_woocommerce_currency(),
|
730 |
'integration-date' => PAYPAL_INTEGRATION_DATE,
|
731 |
'components' => implode( ',', $this->components() ),
|
732 |
-
'vault' => $this->can_save_vault_token() ?
|
733 |
-
'true' : 'false',
|
734 |
'commit' => is_checkout() ? 'true' : 'false',
|
735 |
'intent' => ( $this->settings->has( 'intent' ) ) ?
|
736 |
$this->settings->get( 'intent' ) : 'capture',
|
@@ -743,11 +756,20 @@ class SmartButton implements SmartButtonInterface {
|
|
743 |
) {
|
744 |
$params['buyer-country'] = WC()->customer->get_billing_country();
|
745 |
}
|
746 |
-
|
747 |
-
|
|
|
|
|
|
|
748 |
if ( ! is_checkout() ) {
|
749 |
$disable_funding[] = 'card';
|
750 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
751 |
|
752 |
if ( count( $disable_funding ) > 0 ) {
|
753 |
$params['disable-funding'] = implode( ',', array_unique( $disable_funding ) );
|
20 |
use WooCommerce\PayPalCommerce\Onboarding\Environment;
|
21 |
use WooCommerce\PayPalCommerce\Session\SessionHandler;
|
22 |
use WooCommerce\PayPalCommerce\Subscription\Helper\SubscriptionHelper;
|
23 |
+
use WooCommerce\PayPalCommerce\Vaulting\PaymentTokenRepository;
|
24 |
use WooCommerce\PayPalCommerce\WcGateway\Gateway\CreditCardGateway;
|
25 |
use Woocommerce\PayPalCommerce\WcGateway\Helper\SettingsStatus;
|
26 |
use WooCommerce\PayPalCommerce\WcGateway\Settings\Settings;
|
601 |
return $this->subscription_helper->cart_contains_subscription();
|
602 |
}
|
603 |
|
604 |
+
/**
|
605 |
+
* Retrieves the 3D Secure contingency settings.
|
606 |
+
*
|
607 |
+
* @return string
|
608 |
+
*/
|
609 |
+
private function get_3ds_contingency(): string {
|
610 |
+
if ( $this->settings->has( '3d_secure_contingency' ) ) {
|
611 |
+
return $this->settings->get( '3d_secure_contingency' );
|
612 |
+
}
|
613 |
+
|
614 |
+
return 'SCA_WHEN_REQUIRED';
|
615 |
+
}
|
616 |
+
|
617 |
/**
|
618 |
* The localized data for the smart button.
|
619 |
*
|
690 |
),
|
691 |
),
|
692 |
'valid_cards' => $this->dcc_applies->valid_cards(),
|
693 |
+
'contingency' => $this->get_3ds_contingency(),
|
694 |
),
|
695 |
'messages' => $this->message_values(),
|
696 |
'labels' => array(
|
743 |
'currency' => get_woocommerce_currency(),
|
744 |
'integration-date' => PAYPAL_INTEGRATION_DATE,
|
745 |
'components' => implode( ',', $this->components() ),
|
746 |
+
'vault' => $this->can_save_vault_token() ? 'true' : 'false',
|
|
|
747 |
'commit' => is_checkout() ? 'true' : 'false',
|
748 |
'intent' => ( $this->settings->has( 'intent' ) ) ?
|
749 |
$this->settings->get( 'intent' ) : 'capture',
|
756 |
) {
|
757 |
$params['buyer-country'] = WC()->customer->get_billing_country();
|
758 |
}
|
759 |
+
|
760 |
+
$disable_funding = $this->settings->has( 'disable_funding' )
|
761 |
+
? $this->settings->get( 'disable_funding' )
|
762 |
+
: array();
|
763 |
+
|
764 |
if ( ! is_checkout() ) {
|
765 |
$disable_funding[] = 'card';
|
766 |
}
|
767 |
+
if ( is_checkout() && $this->settings->has( 'dcc_enabled' ) && $this->settings->get( 'dcc_enabled' ) ) {
|
768 |
+
$key = array_search( 'card', $disable_funding, true );
|
769 |
+
if ( false !== $key ) {
|
770 |
+
unset( $disable_funding[ $key ] );
|
771 |
+
}
|
772 |
+
}
|
773 |
|
774 |
if ( count( $disable_funding ) > 0 ) {
|
775 |
$params['disable-funding'] = implode( ',', array_unique( $disable_funding ) );
|
modules/ppcp-button/src/Endpoint/class-approveorderendpoint.php
CHANGED
@@ -10,6 +10,7 @@ declare(strict_types=1);
|
|
10 |
|
11 |
namespace WooCommerce\PayPalCommerce\Button\Endpoint;
|
12 |
|
|
|
13 |
use Psr\Log\LoggerInterface;
|
14 |
use WooCommerce\PayPalCommerce\ApiClient\Endpoint\OrderEndpoint;
|
15 |
use WooCommerce\PayPalCommerce\ApiClient\Entity\OrderStatus;
|
@@ -195,7 +196,9 @@ class ApproveOrderEndpoint implements EndpointInterface {
|
|
195 |
$this->session_handler->replace_order( $order );
|
196 |
wp_send_json_success( $order );
|
197 |
return true;
|
198 |
-
} catch (
|
|
|
|
|
199 |
wp_send_json_error(
|
200 |
array(
|
201 |
'name' => is_a( $error, PayPalApiException::class ) ? $error->name() : '',
|
10 |
|
11 |
namespace WooCommerce\PayPalCommerce\Button\Endpoint;
|
12 |
|
13 |
+
use Exception;
|
14 |
use Psr\Log\LoggerInterface;
|
15 |
use WooCommerce\PayPalCommerce\ApiClient\Endpoint\OrderEndpoint;
|
16 |
use WooCommerce\PayPalCommerce\ApiClient\Entity\OrderStatus;
|
196 |
$this->session_handler->replace_order( $order );
|
197 |
wp_send_json_success( $order );
|
198 |
return true;
|
199 |
+
} catch ( Exception $error ) {
|
200 |
+
$this->logger->error( 'Order approve failed: ' . $error->getMessage() );
|
201 |
+
|
202 |
wp_send_json_error(
|
203 |
array(
|
204 |
'name' => is_a( $error, PayPalApiException::class ) ? $error->name() : '',
|
modules/ppcp-button/src/Endpoint/class-changecartendpoint.php
CHANGED
@@ -9,6 +9,8 @@ declare(strict_types=1);
|
|
9 |
|
10 |
namespace WooCommerce\PayPalCommerce\Button\Endpoint;
|
11 |
|
|
|
|
|
12 |
use WooCommerce\PayPalCommerce\ApiClient\Entity\PurchaseUnit;
|
13 |
use WooCommerce\PayPalCommerce\ApiClient\Exception\PayPalApiException;
|
14 |
use WooCommerce\PayPalCommerce\ApiClient\Repository\CartRepository;
|
@@ -57,21 +59,30 @@ class ChangeCartEndpoint implements EndpointInterface {
|
|
57 |
*/
|
58 |
private $product_data_store;
|
59 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
60 |
/**
|
61 |
* ChangeCartEndpoint constructor.
|
62 |
*
|
63 |
-
* @param \WC_Cart
|
64 |
-
* @param \WC_Shipping
|
65 |
-
* @param RequestData
|
66 |
-
* @param CartRepository
|
67 |
-
* @param \WC_Data_Store
|
|
|
68 |
*/
|
69 |
public function __construct(
|
70 |
\WC_Cart $cart,
|
71 |
\WC_Shipping $shipping,
|
72 |
RequestData $request_data,
|
73 |
CartRepository $repository,
|
74 |
-
\WC_Data_Store $product_data_store
|
|
|
75 |
) {
|
76 |
|
77 |
$this->cart = $cart;
|
@@ -79,6 +90,7 @@ class ChangeCartEndpoint implements EndpointInterface {
|
|
79 |
$this->request_data = $request_data;
|
80 |
$this->repository = $repository;
|
81 |
$this->product_data_store = $product_data_store;
|
|
|
82 |
}
|
83 |
|
84 |
/**
|
@@ -94,12 +106,13 @@ class ChangeCartEndpoint implements EndpointInterface {
|
|
94 |
* Handles the request.
|
95 |
*
|
96 |
* @return bool
|
97 |
-
* @throws \Exception On error.
|
98 |
*/
|
99 |
public function handle_request(): bool {
|
100 |
try {
|
101 |
return $this->handle_data();
|
102 |
-
} catch (
|
|
|
|
|
103 |
wp_send_json_error(
|
104 |
array(
|
105 |
'name' => is_a( $error, PayPalApiException::class ) ? $error->name() : '',
|
@@ -116,7 +129,7 @@ class ChangeCartEndpoint implements EndpointInterface {
|
|
116 |
* Handles the request data.
|
117 |
*
|
118 |
* @return bool
|
119 |
-
* @throws
|
120 |
*/
|
121 |
private function handle_data(): bool {
|
122 |
$data = $this->request_data->read_request( $this->nonce() );
|
@@ -234,7 +247,7 @@ class ChangeCartEndpoint implements EndpointInterface {
|
|
234 |
* @param int $quantity The Quantity.
|
235 |
*
|
236 |
* @return bool
|
237 |
-
* @throws
|
238 |
*/
|
239 |
private function add_product( \WC_Product $product, int $quantity ): bool {
|
240 |
return false !== $this->cart->add_to_cart( $product->get_id(), $quantity );
|
@@ -249,7 +262,7 @@ class ChangeCartEndpoint implements EndpointInterface {
|
|
249 |
* @param array $post_variations The variations.
|
250 |
*
|
251 |
* @return bool
|
252 |
-
* @throws
|
253 |
*/
|
254 |
private function add_variable_product(
|
255 |
\WC_Product $product,
|
9 |
|
10 |
namespace WooCommerce\PayPalCommerce\Button\Endpoint;
|
11 |
|
12 |
+
use Exception;
|
13 |
+
use Psr\Log\LoggerInterface;
|
14 |
use WooCommerce\PayPalCommerce\ApiClient\Entity\PurchaseUnit;
|
15 |
use WooCommerce\PayPalCommerce\ApiClient\Exception\PayPalApiException;
|
16 |
use WooCommerce\PayPalCommerce\ApiClient\Repository\CartRepository;
|
59 |
*/
|
60 |
private $product_data_store;
|
61 |
|
62 |
+
/**
|
63 |
+
* The logger.
|
64 |
+
*
|
65 |
+
* @var LoggerInterface
|
66 |
+
*/
|
67 |
+
protected $logger;
|
68 |
+
|
69 |
/**
|
70 |
* ChangeCartEndpoint constructor.
|
71 |
*
|
72 |
+
* @param \WC_Cart $cart The current WC cart object.
|
73 |
+
* @param \WC_Shipping $shipping The current WC shipping object.
|
74 |
+
* @param RequestData $request_data The request data helper.
|
75 |
+
* @param CartRepository $repository The repository for the current purchase items.
|
76 |
+
* @param \WC_Data_Store $product_data_store The data store for products.
|
77 |
+
* @param LoggerInterface $logger The logger.
|
78 |
*/
|
79 |
public function __construct(
|
80 |
\WC_Cart $cart,
|
81 |
\WC_Shipping $shipping,
|
82 |
RequestData $request_data,
|
83 |
CartRepository $repository,
|
84 |
+
\WC_Data_Store $product_data_store,
|
85 |
+
LoggerInterface $logger
|
86 |
) {
|
87 |
|
88 |
$this->cart = $cart;
|
90 |
$this->request_data = $request_data;
|
91 |
$this->repository = $repository;
|
92 |
$this->product_data_store = $product_data_store;
|
93 |
+
$this->logger = $logger;
|
94 |
}
|
95 |
|
96 |
/**
|
106 |
* Handles the request.
|
107 |
*
|
108 |
* @return bool
|
|
|
109 |
*/
|
110 |
public function handle_request(): bool {
|
111 |
try {
|
112 |
return $this->handle_data();
|
113 |
+
} catch ( Exception $error ) {
|
114 |
+
$this->logger->error( 'Cart updating failed: ' . $error->getMessage() );
|
115 |
+
|
116 |
wp_send_json_error(
|
117 |
array(
|
118 |
'name' => is_a( $error, PayPalApiException::class ) ? $error->name() : '',
|
129 |
* Handles the request data.
|
130 |
*
|
131 |
* @return bool
|
132 |
+
* @throws Exception On error.
|
133 |
*/
|
134 |
private function handle_data(): bool {
|
135 |
$data = $this->request_data->read_request( $this->nonce() );
|
247 |
* @param int $quantity The Quantity.
|
248 |
*
|
249 |
* @return bool
|
250 |
+
* @throws Exception When product could not be added.
|
251 |
*/
|
252 |
private function add_product( \WC_Product $product, int $quantity ): bool {
|
253 |
return false !== $this->cart->add_to_cart( $product->get_id(), $quantity );
|
262 |
* @param array $post_variations The variations.
|
263 |
*
|
264 |
* @return bool
|
265 |
+
* @throws Exception When product could not be added.
|
266 |
*/
|
267 |
private function add_variable_product(
|
268 |
\WC_Product $product,
|
modules/ppcp-button/src/Endpoint/class-createorderendpoint.php
CHANGED
@@ -9,6 +9,8 @@ declare(strict_types=1);
|
|
9 |
|
10 |
namespace WooCommerce\PayPalCommerce\Button\Endpoint;
|
11 |
|
|
|
|
|
12 |
use WooCommerce\PayPalCommerce\ApiClient\Endpoint\OrderEndpoint;
|
13 |
use WooCommerce\PayPalCommerce\ApiClient\Entity\Order;
|
14 |
use WooCommerce\PayPalCommerce\ApiClient\Entity\Payer;
|
@@ -102,6 +104,13 @@ class CreateOrderEndpoint implements EndpointInterface {
|
|
102 |
*/
|
103 |
private $purchase_units;
|
104 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
105 |
/**
|
106 |
* CreateOrderEndpoint constructor.
|
107 |
*
|
@@ -113,6 +122,7 @@ class CreateOrderEndpoint implements EndpointInterface {
|
|
113 |
* @param SessionHandler $session_handler The SessionHandler object.
|
114 |
* @param Settings $settings The Settings object.
|
115 |
* @param EarlyOrderHandler $early_order_handler The EarlyOrderHandler object.
|
|
|
116 |
*/
|
117 |
public function __construct(
|
118 |
RequestData $request_data,
|
@@ -122,7 +132,8 @@ class CreateOrderEndpoint implements EndpointInterface {
|
|
122 |
PayerFactory $payer_factory,
|
123 |
SessionHandler $session_handler,
|
124 |
Settings $settings,
|
125 |
-
EarlyOrderHandler $early_order_handler
|
|
|
126 |
) {
|
127 |
|
128 |
$this->request_data = $request_data;
|
@@ -133,6 +144,7 @@ class CreateOrderEndpoint implements EndpointInterface {
|
|
133 |
$this->session_handler = $session_handler;
|
134 |
$this->settings = $settings;
|
135 |
$this->early_order_handler = $early_order_handler;
|
|
|
136 |
}
|
137 |
|
138 |
/**
|
@@ -190,6 +202,8 @@ class CreateOrderEndpoint implements EndpointInterface {
|
|
190 |
wp_send_json_success( $order->to_array() );
|
191 |
return true;
|
192 |
} catch ( \RuntimeException $error ) {
|
|
|
|
|
193 |
wp_send_json_error(
|
194 |
array(
|
195 |
'name' => is_a( $error, PayPalApiException::class ) ? $error->name() : '',
|
@@ -198,7 +212,9 @@ class CreateOrderEndpoint implements EndpointInterface {
|
|
198 |
'details' => is_a( $error, PayPalApiException::class ) ? $error->details() : array(),
|
199 |
)
|
200 |
);
|
201 |
-
} catch (
|
|
|
|
|
202 |
wc_add_notice( $exception->getMessage(), 'error' );
|
203 |
}
|
204 |
|
@@ -212,11 +228,16 @@ class CreateOrderEndpoint implements EndpointInterface {
|
|
212 |
* @param \WP_Error $errors The errors, which occurred.
|
213 |
*
|
214 |
* @return array
|
|
|
215 |
*/
|
216 |
public function after_checkout_validation( array $data, \WP_Error $errors ): array {
|
217 |
if ( ! $errors->errors ) {
|
218 |
-
|
219 |
-
|
|
|
|
|
|
|
|
|
220 |
|
221 |
/**
|
222 |
* In case we are onboarded and everything is fine with the \WC_Order
|
@@ -231,6 +252,8 @@ class CreateOrderEndpoint implements EndpointInterface {
|
|
231 |
return $data;
|
232 |
}
|
233 |
|
|
|
|
|
234 |
wp_send_json_error(
|
235 |
array(
|
236 |
'name' => '',
|
@@ -336,7 +359,7 @@ class CreateOrderEndpoint implements EndpointInterface {
|
|
336 |
*
|
337 |
* @param string $form_values The values of the form.
|
338 |
*
|
339 |
-
* @throws
|
340 |
*/
|
341 |
private function process_checkout_form( string $form_values ) {
|
342 |
$form_values = explode( '&', $form_values );
|
@@ -386,7 +409,7 @@ class CreateOrderEndpoint implements EndpointInterface {
|
|
386 |
*
|
387 |
* @param string $form_values The values of the form.
|
388 |
* @param \WC_Order|null $wc_order WC order to get data from.
|
389 |
-
* @throws
|
390 |
*/
|
391 |
private function process_checkout_form_when_creating_account( string $form_values, \WC_Order $wc_order = null ) {
|
392 |
$form_values = explode( '&', $form_values );
|
@@ -406,7 +429,12 @@ class CreateOrderEndpoint implements EndpointInterface {
|
|
406 |
'woocommerce_after_checkout_validation',
|
407 |
function ( array $data, \WP_Error $errors ) use ( $wc_order ) {
|
408 |
if ( ! $errors->errors ) {
|
409 |
-
|
|
|
|
|
|
|
|
|
|
|
410 |
wp_send_json_success( $order->to_array() );
|
411 |
return true;
|
412 |
}
|
9 |
|
10 |
namespace WooCommerce\PayPalCommerce\Button\Endpoint;
|
11 |
|
12 |
+
use Exception;
|
13 |
+
use Psr\Log\LoggerInterface;
|
14 |
use WooCommerce\PayPalCommerce\ApiClient\Endpoint\OrderEndpoint;
|
15 |
use WooCommerce\PayPalCommerce\ApiClient\Entity\Order;
|
16 |
use WooCommerce\PayPalCommerce\ApiClient\Entity\Payer;
|
104 |
*/
|
105 |
private $purchase_units;
|
106 |
|
107 |
+
/**
|
108 |
+
* The logger.
|
109 |
+
*
|
110 |
+
* @var LoggerInterface
|
111 |
+
*/
|
112 |
+
protected $logger;
|
113 |
+
|
114 |
/**
|
115 |
* CreateOrderEndpoint constructor.
|
116 |
*
|
122 |
* @param SessionHandler $session_handler The SessionHandler object.
|
123 |
* @param Settings $settings The Settings object.
|
124 |
* @param EarlyOrderHandler $early_order_handler The EarlyOrderHandler object.
|
125 |
+
* @param LoggerInterface $logger The logger.
|
126 |
*/
|
127 |
public function __construct(
|
128 |
RequestData $request_data,
|
132 |
PayerFactory $payer_factory,
|
133 |
SessionHandler $session_handler,
|
134 |
Settings $settings,
|
135 |
+
EarlyOrderHandler $early_order_handler,
|
136 |
+
LoggerInterface $logger
|
137 |
) {
|
138 |
|
139 |
$this->request_data = $request_data;
|
144 |
$this->session_handler = $session_handler;
|
145 |
$this->settings = $settings;
|
146 |
$this->early_order_handler = $early_order_handler;
|
147 |
+
$this->logger = $logger;
|
148 |
}
|
149 |
|
150 |
/**
|
202 |
wp_send_json_success( $order->to_array() );
|
203 |
return true;
|
204 |
} catch ( \RuntimeException $error ) {
|
205 |
+
$this->logger->error( 'Order creation failed: ' . $error->getMessage() );
|
206 |
+
|
207 |
wp_send_json_error(
|
208 |
array(
|
209 |
'name' => is_a( $error, PayPalApiException::class ) ? $error->name() : '',
|
212 |
'details' => is_a( $error, PayPalApiException::class ) ? $error->details() : array(),
|
213 |
)
|
214 |
);
|
215 |
+
} catch ( Exception $exception ) {
|
216 |
+
$this->logger->error( 'Order creation failed: ' . $exception->getMessage() );
|
217 |
+
|
218 |
wc_add_notice( $exception->getMessage(), 'error' );
|
219 |
}
|
220 |
|
228 |
* @param \WP_Error $errors The errors, which occurred.
|
229 |
*
|
230 |
* @return array
|
231 |
+
* @throws Exception On Error.
|
232 |
*/
|
233 |
public function after_checkout_validation( array $data, \WP_Error $errors ): array {
|
234 |
if ( ! $errors->errors ) {
|
235 |
+
try {
|
236 |
+
$order = $this->create_paypal_order();
|
237 |
+
} catch ( Exception $exception ) {
|
238 |
+
$this->logger->error( 'Order creation failed: ' . $exception->getMessage() );
|
239 |
+
throw $exception;
|
240 |
+
}
|
241 |
|
242 |
/**
|
243 |
* In case we are onboarded and everything is fine with the \WC_Order
|
252 |
return $data;
|
253 |
}
|
254 |
|
255 |
+
$this->logger->error( 'Checkout validation failed: ' . $errors->get_error_message() );
|
256 |
+
|
257 |
wp_send_json_error(
|
258 |
array(
|
259 |
'name' => '',
|
359 |
*
|
360 |
* @param string $form_values The values of the form.
|
361 |
*
|
362 |
+
* @throws Exception On Error.
|
363 |
*/
|
364 |
private function process_checkout_form( string $form_values ) {
|
365 |
$form_values = explode( '&', $form_values );
|
409 |
*
|
410 |
* @param string $form_values The values of the form.
|
411 |
* @param \WC_Order|null $wc_order WC order to get data from.
|
412 |
+
* @throws Exception On Error.
|
413 |
*/
|
414 |
private function process_checkout_form_when_creating_account( string $form_values, \WC_Order $wc_order = null ) {
|
415 |
$form_values = explode( '&', $form_values );
|
429 |
'woocommerce_after_checkout_validation',
|
430 |
function ( array $data, \WP_Error $errors ) use ( $wc_order ) {
|
431 |
if ( ! $errors->errors ) {
|
432 |
+
try {
|
433 |
+
$order = $this->create_paypal_order( $wc_order );
|
434 |
+
} catch ( Exception $exception ) {
|
435 |
+
$this->logger->error( 'Order creation failed: ' . $exception->getMessage() );
|
436 |
+
throw $exception;
|
437 |
+
}
|
438 |
wp_send_json_success( $order->to_array() );
|
439 |
return true;
|
440 |
}
|
modules/ppcp-button/src/Endpoint/class-dataclientidendpoint.php
CHANGED
@@ -9,6 +9,8 @@ declare(strict_types=1);
|
|
9 |
|
10 |
namespace WooCommerce\PayPalCommerce\Button\Endpoint;
|
11 |
|
|
|
|
|
12 |
use WooCommerce\PayPalCommerce\ApiClient\Endpoint\IdentityToken;
|
13 |
use WooCommerce\PayPalCommerce\ApiClient\Exception\PayPalApiException;
|
14 |
use WooCommerce\PayPalCommerce\ApiClient\Exception\RuntimeException;
|
@@ -35,19 +37,29 @@ class DataClientIdEndpoint implements EndpointInterface {
|
|
35 |
*/
|
36 |
private $identity_token;
|
37 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
/**
|
39 |
* DataClientIdEndpoint constructor.
|
40 |
*
|
41 |
-
* @param RequestData
|
42 |
-
* @param IdentityToken
|
|
|
43 |
*/
|
44 |
public function __construct(
|
45 |
RequestData $request_data,
|
46 |
-
IdentityToken $identity_token
|
|
|
47 |
) {
|
48 |
|
49 |
$this->request_data = $request_data;
|
50 |
$this->identity_token = $identity_token;
|
|
|
51 |
}
|
52 |
|
53 |
/**
|
@@ -77,7 +89,9 @@ class DataClientIdEndpoint implements EndpointInterface {
|
|
77 |
)
|
78 |
);
|
79 |
return true;
|
80 |
-
} catch (
|
|
|
|
|
81 |
wp_send_json_error(
|
82 |
array(
|
83 |
'name' => is_a( $error, PayPalApiException::class ) ? $error->name() : '',
|
9 |
|
10 |
namespace WooCommerce\PayPalCommerce\Button\Endpoint;
|
11 |
|
12 |
+
use Exception;
|
13 |
+
use Psr\Log\LoggerInterface;
|
14 |
use WooCommerce\PayPalCommerce\ApiClient\Endpoint\IdentityToken;
|
15 |
use WooCommerce\PayPalCommerce\ApiClient\Exception\PayPalApiException;
|
16 |
use WooCommerce\PayPalCommerce\ApiClient\Exception\RuntimeException;
|
37 |
*/
|
38 |
private $identity_token;
|
39 |
|
40 |
+
/**
|
41 |
+
* The logger.
|
42 |
+
*
|
43 |
+
* @var LoggerInterface
|
44 |
+
*/
|
45 |
+
protected $logger;
|
46 |
+
|
47 |
/**
|
48 |
* DataClientIdEndpoint constructor.
|
49 |
*
|
50 |
+
* @param RequestData $request_data The Request Data Helper.
|
51 |
+
* @param IdentityToken $identity_token The Identity Token.
|
52 |
+
* @param LoggerInterface $logger The logger.
|
53 |
*/
|
54 |
public function __construct(
|
55 |
RequestData $request_data,
|
56 |
+
IdentityToken $identity_token,
|
57 |
+
LoggerInterface $logger
|
58 |
) {
|
59 |
|
60 |
$this->request_data = $request_data;
|
61 |
$this->identity_token = $identity_token;
|
62 |
+
$this->logger = $logger;
|
63 |
}
|
64 |
|
65 |
/**
|
89 |
)
|
90 |
);
|
91 |
return true;
|
92 |
+
} catch ( Exception $error ) {
|
93 |
+
$this->logger->error( 'Client ID retrieval failed: ' . $error->getMessage() );
|
94 |
+
|
95 |
wp_send_json_error(
|
96 |
array(
|
97 |
'name' => is_a( $error, PayPalApiException::class ) ? $error->name() : '',
|
modules/ppcp-button/src/Helper/class-threedsecure.php
CHANGED
@@ -9,6 +9,7 @@ declare(strict_types=1);
|
|
9 |
|
10 |
namespace WooCommerce\PayPalCommerce\Button\Helper;
|
11 |
|
|
|
12 |
use WooCommerce\PayPalCommerce\ApiClient\Entity\CardAuthenticationResult as AuthResult;
|
13 |
use WooCommerce\PayPalCommerce\ApiClient\Entity\Order;
|
14 |
|
@@ -17,12 +18,27 @@ use WooCommerce\PayPalCommerce\ApiClient\Entity\Order;
|
|
17 |
*/
|
18 |
class ThreeDSecure {
|
19 |
|
20 |
-
|
21 |
const NO_DECISION = 0;
|
22 |
const PROCCEED = 1;
|
23 |
const REJECT = 2;
|
24 |
const RETRY = 3;
|
25 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
/**
|
27 |
* Determine, how we proceed with a given order.
|
28 |
*
|
@@ -42,7 +58,10 @@ class ThreeDSecure {
|
|
42 |
if ( ! $order->payment_source()->card()->authentication_result() ) {
|
43 |
return self::NO_DECISION;
|
44 |
}
|
|
|
45 |
$result = $order->payment_source()->card()->authentication_result();
|
|
|
|
|
46 |
if ( $result->liability_shift() === AuthResult::LIABILITY_SHIFT_POSSIBLE ) {
|
47 |
return self::PROCCEED;
|
48 |
}
|
9 |
|
10 |
namespace WooCommerce\PayPalCommerce\Button\Helper;
|
11 |
|
12 |
+
use Psr\Log\LoggerInterface;
|
13 |
use WooCommerce\PayPalCommerce\ApiClient\Entity\CardAuthenticationResult as AuthResult;
|
14 |
use WooCommerce\PayPalCommerce\ApiClient\Entity\Order;
|
15 |
|
18 |
*/
|
19 |
class ThreeDSecure {
|
20 |
|
|
|
21 |
const NO_DECISION = 0;
|
22 |
const PROCCEED = 1;
|
23 |
const REJECT = 2;
|
24 |
const RETRY = 3;
|
25 |
|
26 |
+
/**
|
27 |
+
* The logger.
|
28 |
+
*
|
29 |
+
* @var LoggerInterface
|
30 |
+
*/
|
31 |
+
protected $logger;
|
32 |
+
|
33 |
+
/**
|
34 |
+
* ThreeDSecure constructor.
|
35 |
+
*
|
36 |
+
* @param LoggerInterface $logger The logger.
|
37 |
+
*/
|
38 |
+
public function __construct( LoggerInterface $logger ) {
|
39 |
+
$this->logger = $logger;
|
40 |
+
}
|
41 |
+
|
42 |
/**
|
43 |
* Determine, how we proceed with a given order.
|
44 |
*
|
58 |
if ( ! $order->payment_source()->card()->authentication_result() ) {
|
59 |
return self::NO_DECISION;
|
60 |
}
|
61 |
+
|
62 |
$result = $order->payment_source()->card()->authentication_result();
|
63 |
+
$this->logger->info( '3DS authentication result: ' . wc_print_r( $result->to_array(), true ) );
|
64 |
+
|
65 |
if ( $result->liability_shift() === AuthResult::LIABILITY_SHIFT_POSSIBLE ) {
|
66 |
return self::PROCCEED;
|
67 |
}
|
modules/ppcp-onboarding/services.php
CHANGED
@@ -169,6 +169,7 @@ return array(
|
|
169 |
$login_seller_sandbox = $container->get( 'api.endpoint.login-seller-sandbox' );
|
170 |
$partner_referrals_data = $container->get( 'api.repository.partner-referrals-data' );
|
171 |
$settings = $container->get( 'wcgateway.settings' );
|
|
|
172 |
|
173 |
$cache = new Cache( 'ppcp-paypal-bearer' );
|
174 |
return new LoginSellerEndpoint(
|
@@ -177,7 +178,8 @@ return array(
|
|
177 |
$login_seller_sandbox,
|
178 |
$partner_referrals_data,
|
179 |
$settings,
|
180 |
-
$cache
|
|
|
181 |
);
|
182 |
},
|
183 |
'api.endpoint.partner-referrals-sandbox' => static function ( $container ) : PartnerReferrals {
|
169 |
$login_seller_sandbox = $container->get( 'api.endpoint.login-seller-sandbox' );
|
170 |
$partner_referrals_data = $container->get( 'api.repository.partner-referrals-data' );
|
171 |
$settings = $container->get( 'wcgateway.settings' );
|
172 |
+
$logger = $container->get( 'woocommerce.logger.woocommerce' );
|
173 |
|
174 |
$cache = new Cache( 'ppcp-paypal-bearer' );
|
175 |
return new LoginSellerEndpoint(
|
178 |
$login_seller_sandbox,
|
179 |
$partner_referrals_data,
|
180 |
$settings,
|
181 |
+
$cache,
|
182 |
+
$logger
|
183 |
);
|
184 |
},
|
185 |
'api.endpoint.partner-referrals-sandbox' => static function ( $container ) : PartnerReferrals {
|
modules/ppcp-onboarding/src/Endpoint/class-loginsellerendpoint.php
CHANGED
@@ -9,6 +9,8 @@ declare(strict_types=1);
|
|
9 |
|
10 |
namespace WooCommerce\PayPalCommerce\Onboarding\Endpoint;
|
11 |
|
|
|
|
|
12 |
use WooCommerce\PayPalCommerce\ApiClient\Authentication\PayPalBearer;
|
13 |
use WooCommerce\PayPalCommerce\ApiClient\Endpoint\LoginSeller;
|
14 |
use WooCommerce\PayPalCommerce\ApiClient\Helper\Cache;
|
@@ -67,6 +69,13 @@ class LoginSellerEndpoint implements EndpointInterface {
|
|
67 |
*/
|
68 |
private $cache;
|
69 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
70 |
/**
|
71 |
* LoginSellerEndpoint constructor.
|
72 |
*
|
@@ -76,6 +85,7 @@ class LoginSellerEndpoint implements EndpointInterface {
|
|
76 |
* @param PartnerReferralsData $partner_referrals_data The Partner Referrals Data.
|
77 |
* @param Settings $settings The Settings.
|
78 |
* @param Cache $cache The Cache.
|
|
|
79 |
*/
|
80 |
public function __construct(
|
81 |
RequestData $request_data,
|
@@ -83,7 +93,8 @@ class LoginSellerEndpoint implements EndpointInterface {
|
|
83 |
LoginSeller $login_seller_sandbox,
|
84 |
PartnerReferralsData $partner_referrals_data,
|
85 |
Settings $settings,
|
86 |
-
Cache $cache
|
|
|
87 |
) {
|
88 |
|
89 |
$this->request_data = $request_data;
|
@@ -92,6 +103,7 @@ class LoginSellerEndpoint implements EndpointInterface {
|
|
92 |
$this->partner_referrals_data = $partner_referrals_data;
|
93 |
$this->settings = $settings;
|
94 |
$this->cache = $cache;
|
|
|
95 |
}
|
96 |
|
97 |
/**
|
@@ -136,12 +148,13 @@ class LoginSellerEndpoint implements EndpointInterface {
|
|
136 |
$this->cache->delete( PayPalBearer::CACHE_KEY );
|
137 |
}
|
138 |
wp_schedule_single_event(
|
139 |
-
time()
|
140 |
WebhookRegistrar::EVENT_HOOK
|
141 |
);
|
142 |
wp_send_json_success();
|
143 |
return true;
|
144 |
-
} catch (
|
|
|
145 |
wp_send_json_error( $error->getMessage() );
|
146 |
return false;
|
147 |
}
|
9 |
|
10 |
namespace WooCommerce\PayPalCommerce\Onboarding\Endpoint;
|
11 |
|
12 |
+
use Exception;
|
13 |
+
use Psr\Log\LoggerInterface;
|
14 |
use WooCommerce\PayPalCommerce\ApiClient\Authentication\PayPalBearer;
|
15 |
use WooCommerce\PayPalCommerce\ApiClient\Endpoint\LoginSeller;
|
16 |
use WooCommerce\PayPalCommerce\ApiClient\Helper\Cache;
|
69 |
*/
|
70 |
private $cache;
|
71 |
|
72 |
+
/**
|
73 |
+
* The logger.
|
74 |
+
*
|
75 |
+
* @var LoggerInterface
|
76 |
+
*/
|
77 |
+
protected $logger;
|
78 |
+
|
79 |
/**
|
80 |
* LoginSellerEndpoint constructor.
|
81 |
*
|
85 |
* @param PartnerReferralsData $partner_referrals_data The Partner Referrals Data.
|
86 |
* @param Settings $settings The Settings.
|
87 |
* @param Cache $cache The Cache.
|
88 |
+
* @param LoggerInterface $logger The logger.
|
89 |
*/
|
90 |
public function __construct(
|
91 |
RequestData $request_data,
|
93 |
LoginSeller $login_seller_sandbox,
|
94 |
PartnerReferralsData $partner_referrals_data,
|
95 |
Settings $settings,
|
96 |
+
Cache $cache,
|
97 |
+
LoggerInterface $logger
|
98 |
) {
|
99 |
|
100 |
$this->request_data = $request_data;
|
103 |
$this->partner_referrals_data = $partner_referrals_data;
|
104 |
$this->settings = $settings;
|
105 |
$this->cache = $cache;
|
106 |
+
$this->logger = $logger;
|
107 |
}
|
108 |
|
109 |
/**
|
148 |
$this->cache->delete( PayPalBearer::CACHE_KEY );
|
149 |
}
|
150 |
wp_schedule_single_event(
|
151 |
+
time() + 5,
|
152 |
WebhookRegistrar::EVENT_HOOK
|
153 |
);
|
154 |
wp_send_json_success();
|
155 |
return true;
|
156 |
+
} catch ( Exception $error ) {
|
157 |
+
$this->logger->error( 'Onboarding completion handling error: ' . $error->getMessage() );
|
158 |
wp_send_json_error( $error->getMessage() );
|
159 |
return false;
|
160 |
}
|
modules/ppcp-subscription/services.php
CHANGED
@@ -10,16 +10,14 @@ declare(strict_types=1);
|
|
10 |
namespace WooCommerce\PayPalCommerce\Subscription;
|
11 |
|
12 |
use WooCommerce\PayPalCommerce\Subscription\Helper\SubscriptionHelper;
|
13 |
-
use WooCommerce\PayPalCommerce\Subscription\Repository\PaymentTokenRepository;
|
14 |
-
use Psr\Container\ContainerInterface;
|
15 |
|
16 |
return array(
|
17 |
-
'subscription.helper'
|
18 |
return new SubscriptionHelper();
|
19 |
},
|
20 |
-
'subscription.renewal-handler'
|
21 |
$logger = $container->get( 'woocommerce.logger.woocommerce' );
|
22 |
-
$repository = $container->get( '
|
23 |
$endpoint = $container->get( 'api.endpoint.order' );
|
24 |
$purchase_unit_factory = $container->get( 'api.factory.purchase-unit' );
|
25 |
$payer_factory = $container->get( 'api.factory.payer' );
|
@@ -31,9 +29,4 @@ return array(
|
|
31 |
$payer_factory
|
32 |
);
|
33 |
},
|
34 |
-
'subscription.repository.payment-token' => static function ( $container ): PaymentTokenRepository {
|
35 |
-
$factory = $container->get( 'api.factory.payment-token' );
|
36 |
-
$endpoint = $container->get( 'api.endpoint.payment-token' );
|
37 |
-
return new PaymentTokenRepository( $factory, $endpoint );
|
38 |
-
},
|
39 |
);
|
10 |
namespace WooCommerce\PayPalCommerce\Subscription;
|
11 |
|
12 |
use WooCommerce\PayPalCommerce\Subscription\Helper\SubscriptionHelper;
|
|
|
|
|
13 |
|
14 |
return array(
|
15 |
+
'subscription.helper' => static function ( $container ): SubscriptionHelper {
|
16 |
return new SubscriptionHelper();
|
17 |
},
|
18 |
+
'subscription.renewal-handler' => static function ( $container ): RenewalHandler {
|
19 |
$logger = $container->get( 'woocommerce.logger.woocommerce' );
|
20 |
+
$repository = $container->get( 'vaulting.repository.payment-token' );
|
21 |
$endpoint = $container->get( 'api.endpoint.order' );
|
22 |
$purchase_unit_factory = $container->get( 'api.factory.purchase-unit' );
|
23 |
$payer_factory = $container->get( 'api.factory.payer' );
|
29 |
$payer_factory
|
30 |
);
|
31 |
},
|
|
|
|
|
|
|
|
|
|
|
32 |
);
|
modules/ppcp-subscription/src/class-renewalhandler.php
CHANGED
@@ -15,7 +15,7 @@ use WooCommerce\PayPalCommerce\ApiClient\Entity\OrderStatus;
|
|
15 |
use WooCommerce\PayPalCommerce\ApiClient\Entity\PaymentToken;
|
16 |
use WooCommerce\PayPalCommerce\ApiClient\Factory\PayerFactory;
|
17 |
use WooCommerce\PayPalCommerce\ApiClient\Factory\PurchaseUnitFactory;
|
18 |
-
use WooCommerce\PayPalCommerce\
|
19 |
use WooCommerce\PayPalCommerce\WcGateway\Gateway\PayPalGateway;
|
20 |
use Psr\Log\LoggerInterface;
|
21 |
|
15 |
use WooCommerce\PayPalCommerce\ApiClient\Entity\PaymentToken;
|
16 |
use WooCommerce\PayPalCommerce\ApiClient\Factory\PayerFactory;
|
17 |
use WooCommerce\PayPalCommerce\ApiClient\Factory\PurchaseUnitFactory;
|
18 |
+
use WooCommerce\PayPalCommerce\Vaulting\PaymentTokenRepository;
|
19 |
use WooCommerce\PayPalCommerce\WcGateway\Gateway\PayPalGateway;
|
20 |
use Psr\Log\LoggerInterface;
|
21 |
|
modules/ppcp-subscription/src/class-subscriptionmodule.php
CHANGED
@@ -14,7 +14,7 @@ use Dhii\Modular\Module\ModuleInterface;
|
|
14 |
use Psr\Log\LoggerInterface;
|
15 |
use WooCommerce\PayPalCommerce\ApiClient\Exception\RuntimeException;
|
16 |
use WooCommerce\PayPalCommerce\Subscription\Helper\SubscriptionHelper;
|
17 |
-
use WooCommerce\PayPalCommerce\
|
18 |
use WooCommerce\PayPalCommerce\WcGateway\Gateway\PayPalGateway;
|
19 |
use WooCommerce\PayPalCommerce\WcGateway\Gateway\CreditCardGateway;
|
20 |
use Interop\Container\ServiceProviderInterface;
|
@@ -66,7 +66,7 @@ class SubscriptionModule implements ModuleInterface {
|
|
66 |
add_action(
|
67 |
'woocommerce_subscription_payment_complete',
|
68 |
function ( $subscription ) use ( $container ) {
|
69 |
-
$payment_token_repository = $container->get( '
|
70 |
$logger = $container->get( 'woocommerce.logger.woocommerce' );
|
71 |
|
72 |
$this->add_payment_token_id( $subscription, $payment_token_repository, $logger );
|
@@ -76,7 +76,7 @@ class SubscriptionModule implements ModuleInterface {
|
|
76 |
add_filter(
|
77 |
'woocommerce_gateway_description',
|
78 |
function ( $description, $id ) use ( $container ) {
|
79 |
-
$payment_token_repository = $container->get( '
|
80 |
$settings = $container->get( 'wcgateway.settings' );
|
81 |
$subscription_helper = $container->get( 'subscription.helper' );
|
82 |
|
@@ -89,7 +89,7 @@ class SubscriptionModule implements ModuleInterface {
|
|
89 |
add_filter(
|
90 |
'woocommerce_credit_card_form_fields',
|
91 |
function ( $default_fields, $id ) use ( $container ) {
|
92 |
-
$payment_token_repository = $container->get( '
|
93 |
$settings = $container->get( 'wcgateway.settings' );
|
94 |
$subscription_helper = $container->get( 'subscription.helper' );
|
95 |
|
14 |
use Psr\Log\LoggerInterface;
|
15 |
use WooCommerce\PayPalCommerce\ApiClient\Exception\RuntimeException;
|
16 |
use WooCommerce\PayPalCommerce\Subscription\Helper\SubscriptionHelper;
|
17 |
+
use WooCommerce\PayPalCommerce\Vaulting\PaymentTokenRepository;
|
18 |
use WooCommerce\PayPalCommerce\WcGateway\Gateway\PayPalGateway;
|
19 |
use WooCommerce\PayPalCommerce\WcGateway\Gateway\CreditCardGateway;
|
20 |
use Interop\Container\ServiceProviderInterface;
|
66 |
add_action(
|
67 |
'woocommerce_subscription_payment_complete',
|
68 |
function ( $subscription ) use ( $container ) {
|
69 |
+
$payment_token_repository = $container->get( 'vaulting.repository.payment-token' );
|
70 |
$logger = $container->get( 'woocommerce.logger.woocommerce' );
|
71 |
|
72 |
$this->add_payment_token_id( $subscription, $payment_token_repository, $logger );
|
76 |
add_filter(
|
77 |
'woocommerce_gateway_description',
|
78 |
function ( $description, $id ) use ( $container ) {
|
79 |
+
$payment_token_repository = $container->get( 'vaulting.repository.payment-token' );
|
80 |
$settings = $container->get( 'wcgateway.settings' );
|
81 |
$subscription_helper = $container->get( 'subscription.helper' );
|
82 |
|
89 |
add_filter(
|
90 |
'woocommerce_credit_card_form_fields',
|
91 |
function ( $default_fields, $id ) use ( $container ) {
|
92 |
+
$payment_token_repository = $container->get( 'vaulting.repository.payment-token' );
|
93 |
$settings = $container->get( 'wcgateway.settings' );
|
94 |
$subscription_helper = $container->get( 'subscription.helper' );
|
95 |
|
modules/ppcp-vaulting/assets/js/myaccount-payments.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
(()=>{var __webpack_modules__={864:function(){eval("document.addEventListener('DOMContentLoaded', () => {\n jQuery('.ppcp-delete-payment-button').click(async event => {\n event.preventDefault();\n jQuery(this).prop('disabled', true);\n const token = event.target.id;\n const response = await fetch(PayPalCommerceGatewayVaulting.delete.endpoint, {\n method: 'POST',\n headers: {\n 'content-type': 'application/json'\n },\n body: JSON.stringify({\n nonce: PayPalCommerceGatewayVaulting.delete.nonce,\n token\n })\n });\n\n const reportError = error => {\n alert(error);\n };\n\n if (!response.ok) {\n try {\n const result = await response.json();\n reportError(result.data);\n } catch (exc) {\n console.error(exc);\n reportError(response.status);\n }\n }\n\n window.location.reload();\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9wcGNwLXZhdWx0aW5nLy4vcmVzb3VyY2VzL2pzL215YWNjb3VudC1wYXltZW50cy5qcz9hMGIzIl0sIm5hbWVzIjpbImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsImpRdWVyeSIsImNsaWNrIiwiZXZlbnQiLCJwcmV2ZW50RGVmYXVsdCIsInByb3AiLCJ0b2tlbiIsInRhcmdldCIsImlkIiwicmVzcG9uc2UiLCJmZXRjaCIsIlBheVBhbENvbW1lcmNlR2F0ZXdheVZhdWx0aW5nIiwiZGVsZXRlIiwiZW5kcG9pbnQiLCJtZXRob2QiLCJoZWFkZXJzIiwiYm9keSIsIkpTT04iLCJzdHJpbmdpZnkiLCJub25jZSIsInJlcG9ydEVycm9yIiwiZXJyb3IiLCJhbGVydCIsIm9rIiwicmVzdWx0IiwianNvbiIsImRhdGEiLCJleGMiLCJjb25zb2xlIiwic3RhdHVzIiwid2luZG93IiwibG9jYXRpb24iLCJyZWxvYWQiXSwibWFwcGluZ3MiOiJBQUFBQSxRQUFRLENBQUNDLGdCQUFULENBQ0ksa0JBREosRUFFSSxNQUFNO0FBQ0ZDLEVBQUFBLE1BQU0sQ0FBQyw2QkFBRCxDQUFOLENBQXNDQyxLQUF0QyxDQUE0QyxNQUFPQyxLQUFQLElBQWlCO0FBQ3pEQSxJQUFBQSxLQUFLLENBQUNDLGNBQU47QUFDQUgsSUFBQUEsTUFBTSxDQUFDLElBQUQsQ0FBTixDQUFhSSxJQUFiLENBQWtCLFVBQWxCLEVBQThCLElBQTlCO0FBQ0EsVUFBTUMsS0FBSyxHQUFHSCxLQUFLLENBQUNJLE1BQU4sQ0FBYUMsRUFBM0I7QUFFQSxVQUFNQyxRQUFRLEdBQUcsTUFBTUMsS0FBSyxDQUN4QkMsNkJBQTZCLENBQUNDLE1BQTlCLENBQXFDQyxRQURiLEVBRXhCO0FBQ0lDLE1BQUFBLE1BQU0sRUFBRSxNQURaO0FBRUlDLE1BQUFBLE9BQU8sRUFBRTtBQUNMLHdCQUFnQjtBQURYLE9BRmI7QUFLSUMsTUFBQUEsSUFBSSxFQUFFQyxJQUFJLENBQUNDLFNBQUwsQ0FDRjtBQUNJQyxRQUFBQSxLQUFLLEVBQUVSLDZCQUE2QixDQUFDQyxNQUE5QixDQUFxQ08sS0FEaEQ7QUFFSWIsUUFBQUE7QUFGSixPQURFO0FBTFYsS0FGd0IsQ0FBNUI7O0FBZ0JBLFVBQU1jLFdBQVcsR0FBR0MsS0FBSyxJQUFJO0FBQ3pCQyxNQUFBQSxLQUFLLENBQUNELEtBQUQsQ0FBTDtBQUNILEtBRkQ7O0FBSUEsUUFBSSxDQUFDWixRQUFRLENBQUNjLEVBQWQsRUFBa0I7QUFDZCxVQUFJO0FBQ0EsY0FBTUMsTUFBTSxHQUFHLE1BQU1mLFFBQVEsQ0FBQ2dCLElBQVQsRUFBckI7QUFDQUwsUUFBQUEsV0FBVyxDQUFDSSxNQUFNLENBQUNFLElBQVIsQ0FBWDtBQUNILE9BSEQsQ0FHRSxPQUFPQyxHQUFQLEVBQVk7QUFDVkMsUUFBQUEsT0FBTyxDQUFDUCxLQUFSLENBQWNNLEdBQWQ7QUFDQVAsUUFBQUEsV0FBVyxDQUFDWCxRQUFRLENBQUNvQixNQUFWLENBQVg7QUFDSDtBQUNKOztBQUVEQyxJQUFBQSxNQUFNLENBQUNDLFFBQVAsQ0FBZ0JDLE1BQWhCO0FBQ0gsR0FwQ0Q7QUFxQ0gsQ0F4Q0wiLCJzb3VyY2VzQ29udGVudCI6WyJkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFxuICAgICdET01Db250ZW50TG9hZGVkJyxcbiAgICAoKSA9PiB7XG4gICAgICAgIGpRdWVyeSgnLnBwY3AtZGVsZXRlLXBheW1lbnQtYnV0dG9uJykuY2xpY2soYXN5bmMgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgalF1ZXJ5KHRoaXMpLnByb3AoJ2Rpc2FibGVkJywgdHJ1ZSk7XG4gICAgICAgICAgICBjb25zdCB0b2tlbiA9IGV2ZW50LnRhcmdldC5pZDtcblxuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChcbiAgICAgICAgICAgICAgICBQYXlQYWxDb21tZXJjZUdhdGV3YXlWYXVsdGluZy5kZWxldGUuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub25jZTogUGF5UGFsQ29tbWVyY2VHYXRld2F5VmF1bHRpbmcuZGVsZXRlLm5vbmNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgY29uc3QgcmVwb3J0RXJyb3IgPSBlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgYWxlcnQoZXJyb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgICAgICAgICAgICAgICAgICByZXBvcnRFcnJvcihyZXN1bHQuZGF0YSk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXhjKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXhjKTtcbiAgICAgICAgICAgICAgICAgICAgcmVwb3J0RXJyb3IocmVzcG9uc2Uuc3RhdHVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4iXSwiZmlsZSI6Ijg2NC5qcyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///864\n")}},__webpack_exports__={};__webpack_modules__[864]()})();
|
modules/ppcp-vaulting/extensions.php
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The vaulting module extensions.
|
4 |
+
*
|
5 |
+
* @package WooCommerce\PayPalCommerce\Vaulting
|
6 |
+
*/
|
7 |
+
|
8 |
+
declare(strict_types=1);
|
9 |
+
|
10 |
+
namespace WooCommerce\PayPalCommerce\Vaulting;
|
11 |
+
|
12 |
+
return array();
|
modules/ppcp-vaulting/module.php
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The vaulting module.
|
4 |
+
*
|
5 |
+
* @package WooCommerce\PayPalCommerce\Vaulting
|
6 |
+
*/
|
7 |
+
|
8 |
+
declare(strict_types=1);
|
9 |
+
|
10 |
+
namespace WooCommerce\PayPalCommerce\Vaulting;
|
11 |
+
|
12 |
+
use Dhii\Modular\Module\ModuleInterface;
|
13 |
+
|
14 |
+
return static function (): ModuleInterface {
|
15 |
+
return new VaultingModule();
|
16 |
+
};
|
modules/ppcp-vaulting/package.json
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "ppcp-vaulting",
|
3 |
+
"version": "1.0.0",
|
4 |
+
"license": "GPL-3.0-or-later",
|
5 |
+
"main": "resources/js/myaccount-payments.js",
|
6 |
+
"devDependencies": {
|
7 |
+
"@babel/core": "^7.9.0",
|
8 |
+
"@babel/preset-env": "^7.9.5",
|
9 |
+
"babel-loader": "^8.1.0",
|
10 |
+
"babel-plugin-transform-object-rest-spread": "^6.26.0",
|
11 |
+
"cross-env": "^7.0.3",
|
12 |
+
"file-loader": "^6.2.0",
|
13 |
+
"sass": "^1.42.1",
|
14 |
+
"sass-loader": "^12.1.0",
|
15 |
+
"webpack": "^5.55.1",
|
16 |
+
"webpack-cli": "^4.8.0"
|
17 |
+
},
|
18 |
+
"scripts": {
|
19 |
+
"build": "cross-env BABEL_ENV=default NODE_ENV=production webpack",
|
20 |
+
"watch": "cross-env BABEL_ENV=default NODE_ENV=production webpack --watch",
|
21 |
+
"dev": "cross-env BABEL_ENV=default webpack --watch"
|
22 |
+
}
|
23 |
+
}
|
modules/ppcp-vaulting/resources/js/myaccount-payments.js
ADDED
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
document.addEventListener(
|
2 |
+
'DOMContentLoaded',
|
3 |
+
() => {
|
4 |
+
jQuery('.ppcp-delete-payment-button').click(async (event) => {
|
5 |
+
event.preventDefault();
|
6 |
+
jQuery(this).prop('disabled', true);
|
7 |
+
const token = event.target.id;
|
8 |
+
|
9 |
+
const response = await fetch(
|
10 |
+
PayPalCommerceGatewayVaulting.delete.endpoint,
|
11 |
+
{
|
12 |
+
method: 'POST',
|
13 |
+
headers: {
|
14 |
+
'content-type': 'application/json'
|
15 |
+
},
|
16 |
+
body: JSON.stringify(
|
17 |
+
{
|
18 |
+
nonce: PayPalCommerceGatewayVaulting.delete.nonce,
|
19 |
+
token,
|
20 |
+
}
|
21 |
+
)
|
22 |
+
}
|
23 |
+
);
|
24 |
+
|
25 |
+
const reportError = error => {
|
26 |
+
alert(error);
|
27 |
+
}
|
28 |
+
|
29 |
+
if (!response.ok) {
|
30 |
+
try {
|
31 |
+
const result = await response.json();
|
32 |
+
reportError(result.data);
|
33 |
+
} catch (exc) {
|
34 |
+
console.error(exc);
|
35 |
+
reportError(response.status);
|
36 |
+
}
|
37 |
+
}
|
38 |
+
|
39 |
+
window.location.reload();
|
40 |
+
});
|
41 |
+
});
|
modules/ppcp-vaulting/services.php
ADDED
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The vaulting module services.
|
4 |
+
*
|
5 |
+
* @package WooCommerce\PayPalCommerce\Vaulting
|
6 |
+
*/
|
7 |
+
|
8 |
+
declare(strict_types=1);
|
9 |
+
|
10 |
+
namespace WooCommerce\PayPalCommerce\Vaulting;
|
11 |
+
|
12 |
+
use WooCommerce\PayPalCommerce\Vaulting\Assets\MyAccountPaymentsAssets;
|
13 |
+
use WooCommerce\PayPalCommerce\Vaulting\Endpoint\DeletePaymentTokenEndpoint;
|
14 |
+
|
15 |
+
return array(
|
16 |
+
'vaulting.module-url' => static function ( $container ): string {
|
17 |
+
return plugins_url(
|
18 |
+
'/modules/ppcp-vaulting/',
|
19 |
+
dirname( __FILE__, 3 ) . '/woocommerce-paypal-payments.php'
|
20 |
+
);
|
21 |
+
},
|
22 |
+
'vaulting.assets.myaccount-payments' => function( $container ) : MyAccountPaymentsAssets {
|
23 |
+
return new MyAccountPaymentsAssets(
|
24 |
+
$container->get( 'vaulting.module-url' )
|
25 |
+
);
|
26 |
+
},
|
27 |
+
'vaulting.payment-tokens-renderer' => static function (): PaymentTokensRenderer {
|
28 |
+
return new PaymentTokensRenderer();
|
29 |
+
},
|
30 |
+
'vaulting.repository.payment-token' => static function ( $container ): PaymentTokenRepository {
|
31 |
+
$factory = $container->get( 'api.factory.payment-token' );
|
32 |
+
$endpoint = $container->get( 'api.endpoint.payment-token' );
|
33 |
+
return new PaymentTokenRepository( $factory, $endpoint );
|
34 |
+
},
|
35 |
+
'vaulting.endpoint.delete' => function( $container ) : DeletePaymentTokenEndpoint {
|
36 |
+
return new DeletePaymentTokenEndpoint(
|
37 |
+
$container->get( 'vaulting.repository.payment-token' ),
|
38 |
+
$container->get( 'button.request-data' ),
|
39 |
+
$container->get( 'woocommerce.logger.woocommerce' )
|
40 |
+
);
|
41 |
+
},
|
42 |
+
);
|
modules/ppcp-vaulting/src/Assets/class-myaccountpaymentsassets.php
ADDED
@@ -0,0 +1,67 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Register and configure assets for My account PayPal payments page.
|
4 |
+
*
|
5 |
+
* @package WooCommerce\PayPalCommerce\Vaulting\Assets
|
6 |
+
*/
|
7 |
+
|
8 |
+
declare(strict_types=1);
|
9 |
+
|
10 |
+
namespace WooCommerce\PayPalCommerce\Vaulting\Assets;
|
11 |
+
|
12 |
+
use WooCommerce\PayPalCommerce\Vaulting\Endpoint\DeletePaymentTokenEndpoint;
|
13 |
+
|
14 |
+
/**
|
15 |
+
* Class MyAccountPaymentsAssets
|
16 |
+
*/
|
17 |
+
class MyAccountPaymentsAssets {
|
18 |
+
|
19 |
+
/**
|
20 |
+
* The URL to the module.
|
21 |
+
*
|
22 |
+
* @var string
|
23 |
+
*/
|
24 |
+
private $module_url;
|
25 |
+
|
26 |
+
/**
|
27 |
+
* WebhooksStatusPageAssets constructor.
|
28 |
+
*
|
29 |
+
* @param string $module_url The URL to the module.
|
30 |
+
*/
|
31 |
+
public function __construct(
|
32 |
+
string $module_url
|
33 |
+
) {
|
34 |
+
$this->module_url = untrailingslashit( $module_url );
|
35 |
+
}
|
36 |
+
|
37 |
+
/**
|
38 |
+
* Enqueues the necessary scripts.
|
39 |
+
*
|
40 |
+
* @return void
|
41 |
+
*/
|
42 |
+
public function enqueue(): void {
|
43 |
+
wp_enqueue_script(
|
44 |
+
'ppcp-vaulting-myaccount-payments',
|
45 |
+
$this->module_url . '/assets/js/myaccount-payments.js',
|
46 |
+
array( 'jquery' ),
|
47 |
+
'1',
|
48 |
+
true
|
49 |
+
);
|
50 |
+
}
|
51 |
+
|
52 |
+
/**
|
53 |
+
* Localize script.
|
54 |
+
*/
|
55 |
+
public function localize() {
|
56 |
+
wp_localize_script(
|
57 |
+
'ppcp-vaulting-myaccount-payments',
|
58 |
+
'PayPalCommerceGatewayVaulting',
|
59 |
+
array(
|
60 |
+
'delete' => array(
|
61 |
+
'endpoint' => home_url( \WC_AJAX::get_endpoint( DeletePaymentTokenEndpoint::ENDPOINT ) ),
|
62 |
+
'nonce' => wp_create_nonce( DeletePaymentTokenEndpoint::nonce() ),
|
63 |
+
),
|
64 |
+
)
|
65 |
+
);
|
66 |
+
}
|
67 |
+
}
|
modules/ppcp-vaulting/src/Endpoint/class-deletepaymenttokenendpoint.php
ADDED
@@ -0,0 +1,95 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The endpoint for deleting payment tokens.
|
4 |
+
*
|
5 |
+
* @package WooCommerce\PayPalCommerce\Vaulting\Endpoint
|
6 |
+
*/
|
7 |
+
|
8 |
+
declare(strict_types=1);
|
9 |
+
|
10 |
+
namespace WooCommerce\PayPalCommerce\Vaulting\Endpoint;
|
11 |
+
|
12 |
+
use Exception;
|
13 |
+
use Psr\Log\LoggerInterface;
|
14 |
+
use WooCommerce\PayPalCommerce\Button\Endpoint\RequestData;
|
15 |
+
use WooCommerce\PayPalCommerce\Vaulting\PaymentTokenRepository;
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Class DeletePayment
|
19 |
+
*/
|
20 |
+
class DeletePaymentTokenEndpoint {
|
21 |
+
|
22 |
+
const ENDPOINT = 'ppc-vaulting-delete';
|
23 |
+
|
24 |
+
/**
|
25 |
+
* The repository.
|
26 |
+
*
|
27 |
+
* @var PaymentTokenRepository
|
28 |
+
*/
|
29 |
+
protected $repository;
|
30 |
+
|
31 |
+
/**
|
32 |
+
* The request data.
|
33 |
+
*
|
34 |
+
* @var RequestData
|
35 |
+
*/
|
36 |
+
protected $request_data;
|
37 |
+
|
38 |
+
/**
|
39 |
+
* The logger.
|
40 |
+
*
|
41 |
+
* @var LoggerInterface
|
42 |
+
*/
|
43 |
+
protected $logger;
|
44 |
+
|
45 |
+
/**
|
46 |
+
* DeletePaymentTokenEndpoint constructor.
|
47 |
+
*
|
48 |
+
* @param PaymentTokenRepository $repository The repository.
|
49 |
+
* @param RequestData $request_data The request data.
|
50 |
+
* @param LoggerInterface $logger The logger.
|
51 |
+
*/
|
52 |
+
public function __construct( PaymentTokenRepository $repository, RequestData $request_data, LoggerInterface $logger ) {
|
53 |
+
$this->repository = $repository;
|
54 |
+
$this->request_data = $request_data;
|
55 |
+
$this->logger = $logger;
|
56 |
+
}
|
57 |
+
|
58 |
+
/**
|
59 |
+
* Returns the nonce for the endpoint.
|
60 |
+
*
|
61 |
+
* @return string
|
62 |
+
*/
|
63 |
+
public static function nonce(): string {
|
64 |
+
return self::ENDPOINT;
|
65 |
+
}
|
66 |
+
|
67 |
+
/**
|
68 |
+
* Handles the incoming request.
|
69 |
+
*/
|
70 |
+
public function handle_request() {
|
71 |
+
try {
|
72 |
+
$data = $this->request_data->read_request( $this->nonce() );
|
73 |
+
|
74 |
+
$tokens = $this->repository->all_for_user_id( get_current_user_id() );
|
75 |
+
if ( $tokens ) {
|
76 |
+
foreach ( $tokens as $token ) {
|
77 |
+
if ( isset( $data['token'] ) && $token->id() === $data['token'] ) {
|
78 |
+
if ( $this->repository->delete_token( get_current_user_id(), $token ) ) {
|
79 |
+
wp_send_json_success();
|
80 |
+
return true;
|
81 |
+
}
|
82 |
+
|
83 |
+
wp_send_json_error( 'Could not delete payment token.' );
|
84 |
+
return false;
|
85 |
+
}
|
86 |
+
}
|
87 |
+
}
|
88 |
+
} catch ( Exception $error ) {
|
89 |
+
$this->logger->error( 'Failed to delete payment: ' . $error->getMessage() );
|
90 |
+
wp_send_json_error( $error->getMessage(), 403 );
|
91 |
+
return false;
|
92 |
+
}
|
93 |
+
}
|
94 |
+
}
|
95 |
+
|
modules/{ppcp-subscription/src/Repository → ppcp-vaulting/src}/class-paymenttokenrepository.php
RENAMED
@@ -2,12 +2,12 @@
|
|
2 |
/**
|
3 |
* The payment token repository returns or deletes payment tokens for users.
|
4 |
*
|
5 |
-
* @package WooCommerce\PayPalCommerce\
|
6 |
*/
|
7 |
|
8 |
declare(strict_types=1);
|
9 |
|
10 |
-
namespace WooCommerce\PayPalCommerce\
|
11 |
|
12 |
use WooCommerce\PayPalCommerce\ApiClient\Endpoint\PaymentTokenEndpoint;
|
13 |
use WooCommerce\PayPalCommerce\ApiClient\Entity\PaymentToken;
|
@@ -107,13 +107,8 @@ class PaymentTokenRepository {
|
|
107 |
* @param PaymentToken[] $tokens The tokens.
|
108 |
* @return bool Whether tokens contains card or not.
|
109 |
*/
|
110 |
-
public function tokens_contains_card( $tokens ): bool {
|
111 |
-
|
112 |
-
if ( isset( $token->source()->card ) ) {
|
113 |
-
return true;
|
114 |
-
}
|
115 |
-
}
|
116 |
-
return false;
|
117 |
}
|
118 |
|
119 |
/**
|
@@ -122,13 +117,8 @@ class PaymentTokenRepository {
|
|
122 |
* @param PaymentToken[] $tokens The tokens.
|
123 |
* @return bool Whether tokens contains card or not.
|
124 |
*/
|
125 |
-
public function tokens_contains_paypal( $tokens ): bool {
|
126 |
-
|
127 |
-
if ( isset( $token->source()->paypal ) ) {
|
128 |
-
return true;
|
129 |
-
}
|
130 |
-
}
|
131 |
-
return false;
|
132 |
}
|
133 |
|
134 |
/**
|
@@ -145,4 +135,21 @@ class PaymentTokenRepository {
|
|
145 |
update_user_meta( $id, self::USER_META, $token_array );
|
146 |
return $token;
|
147 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
148 |
}
|
2 |
/**
|
3 |
* The payment token repository returns or deletes payment tokens for users.
|
4 |
*
|
5 |
+
* @package WooCommerce\PayPalCommerce\Vaulting
|
6 |
*/
|
7 |
|
8 |
declare(strict_types=1);
|
9 |
|
10 |
+
namespace WooCommerce\PayPalCommerce\Vaulting;
|
11 |
|
12 |
use WooCommerce\PayPalCommerce\ApiClient\Endpoint\PaymentTokenEndpoint;
|
13 |
use WooCommerce\PayPalCommerce\ApiClient\Entity\PaymentToken;
|
107 |
* @param PaymentToken[] $tokens The tokens.
|
108 |
* @return bool Whether tokens contains card or not.
|
109 |
*/
|
110 |
+
public function tokens_contains_card( array $tokens ): bool {
|
111 |
+
return $this->token_contains_source( $tokens, 'card' );
|
|
|
|
|
|
|
|
|
|
|
112 |
}
|
113 |
|
114 |
/**
|
117 |
* @param PaymentToken[] $tokens The tokens.
|
118 |
* @return bool Whether tokens contains card or not.
|
119 |
*/
|
120 |
+
public function tokens_contains_paypal( array $tokens ): bool {
|
121 |
+
return $this->token_contains_source( $tokens, 'paypal' );
|
|
|
|
|
|
|
|
|
|
|
122 |
}
|
123 |
|
124 |
/**
|
135 |
update_user_meta( $id, self::USER_META, $token_array );
|
136 |
return $token;
|
137 |
}
|
138 |
+
|
139 |
+
/**
|
140 |
+
* Checks if tokens has the given source.
|
141 |
+
*
|
142 |
+
* @param array $tokens Payment tokens.
|
143 |
+
* @param string $source_type Payment token source type.
|
144 |
+
* @return bool Whether tokens contains source or not.
|
145 |
+
*/
|
146 |
+
private function token_contains_source( array $tokens, string $source_type ): bool {
|
147 |
+
foreach ( $tokens as $token ) {
|
148 |
+
if ( isset( $token->source()->card ) && 'card' === $source_type || isset( $token->source()->paypal ) && 'paypal' === $source_type ) {
|
149 |
+
return true;
|
150 |
+
}
|
151 |
+
}
|
152 |
+
|
153 |
+
return false;
|
154 |
+
}
|
155 |
}
|
modules/ppcp-vaulting/src/class-paymenttokensrenderer.php
ADDED
@@ -0,0 +1,83 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The payment tokens renderer.
|
4 |
+
*
|
5 |
+
* @package WooCommerce\PayPalCommerce\Vaulting
|
6 |
+
*/
|
7 |
+
|
8 |
+
declare(strict_types=1);
|
9 |
+
|
10 |
+
namespace WooCommerce\PayPalCommerce\Vaulting;
|
11 |
+
|
12 |
+
use WooCommerce\PayPalCommerce\ApiClient\Entity\PaymentToken;
|
13 |
+
|
14 |
+
/**
|
15 |
+
* Class PaymentTokensRendered
|
16 |
+
*/
|
17 |
+
class PaymentTokensRenderer {
|
18 |
+
|
19 |
+
/**
|
20 |
+
* Render payment tokens.
|
21 |
+
*
|
22 |
+
* @param PaymentToken[] $tokens The tokens.
|
23 |
+
* @return false|string
|
24 |
+
*/
|
25 |
+
public function render( array $tokens ) {
|
26 |
+
ob_start();
|
27 |
+
?>
|
28 |
+
<table class="shop_table shop_table_responsive">
|
29 |
+
<thead>
|
30 |
+
<tr>
|
31 |
+
<th><?php echo esc_html__( 'Payment sources', 'woocommerce-paypal-payments' ); ?></th>
|
32 |
+
<th></th>
|
33 |
+
</tr>
|
34 |
+
</thead>
|
35 |
+
<tbody>
|
36 |
+
<?php
|
37 |
+
foreach ( $tokens as $token ) {
|
38 |
+
$source = $token->source() ?? null;
|
39 |
+
if ( $source && isset( $source->card ) ) {
|
40 |
+
?>
|
41 |
+
<tr>
|
42 |
+
<td><?php echo esc_attr( $source->card->brand ) . ' ...' . esc_attr( $source->card->last_digits ); ?></td>
|
43 |
+
<td>
|
44 |
+
<a class="ppcp-delete-payment-button" id="<?php echo esc_attr( $token->id() ); ?>" href=""><?php echo esc_html__( 'Delete', 'woocommerce-paypal-payments' ); ?></a>
|
45 |
+
</td>
|
46 |
+
</tr>
|
47 |
+
<?php
|
48 |
+
}
|
49 |
+
if ( $source && isset( $source->paypal ) ) {
|
50 |
+
?>
|
51 |
+
<tr>
|
52 |
+
<td><?php echo esc_attr( $source->paypal->payer->email_address ); ?></td>
|
53 |
+
<td>
|
54 |
+
<a class="ppcp-delete-payment-button" id="<?php echo esc_attr( $token->id() ); ?>" href=""><?php echo esc_html__( 'Delete', 'woocommerce-paypal-payments' ); ?></a>
|
55 |
+
</td>
|
56 |
+
</tr>
|
57 |
+
<?php
|
58 |
+
}
|
59 |
+
?>
|
60 |
+
<?php
|
61 |
+
}
|
62 |
+
?>
|
63 |
+
</tbody>
|
64 |
+
</table>
|
65 |
+
<?php
|
66 |
+
return ob_get_clean();
|
67 |
+
}
|
68 |
+
|
69 |
+
/**
|
70 |
+
* Render no payments message.
|
71 |
+
*
|
72 |
+
* @return false|string
|
73 |
+
*/
|
74 |
+
public function render_no_tokens() {
|
75 |
+
ob_start();
|
76 |
+
?>
|
77 |
+
<div class="woocommerce-Message woocommerce-Message--info woocommerce-info">
|
78 |
+
<?php echo esc_html__( 'No payments available yet.', 'woocommerce-paypal-payments' ); ?>
|
79 |
+
</div>
|
80 |
+
<?php
|
81 |
+
return ob_get_clean();
|
82 |
+
}
|
83 |
+
}
|
modules/ppcp-vaulting/src/class-vaultingmodule.php
ADDED
@@ -0,0 +1,116 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The vaulting module.
|
4 |
+
*
|
5 |
+
* @package WooCommerce\PayPalCommerce\Vaulting
|
6 |
+
*/
|
7 |
+
|
8 |
+
declare(strict_types=1);
|
9 |
+
|
10 |
+
namespace WooCommerce\PayPalCommerce\Vaulting;
|
11 |
+
|
12 |
+
use Dhii\Container\ServiceProvider;
|
13 |
+
use Dhii\Modular\Module\ModuleInterface;
|
14 |
+
use Interop\Container\ServiceProviderInterface;
|
15 |
+
use Psr\Container\ContainerInterface;
|
16 |
+
use WooCommerce\PayPalCommerce\Vaulting\Endpoint\DeletePaymentTokenEndpoint;
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Class StatusReportModule
|
20 |
+
*/
|
21 |
+
class VaultingModule implements ModuleInterface {
|
22 |
+
|
23 |
+
|
24 |
+
/**
|
25 |
+
* {@inheritDoc}
|
26 |
+
*/
|
27 |
+
public function setup(): ServiceProviderInterface {
|
28 |
+
return new ServiceProvider(
|
29 |
+
require __DIR__ . '/../services.php',
|
30 |
+
require __DIR__ . '/../extensions.php'
|
31 |
+
);
|
32 |
+
}
|
33 |
+
|
34 |
+
/**
|
35 |
+
* {@inheritDoc}
|
36 |
+
*
|
37 |
+
* @param ContainerInterface $container A services container instance.
|
38 |
+
*/
|
39 |
+
public function run( ContainerInterface $container ): void {
|
40 |
+
|
41 |
+
add_filter(
|
42 |
+
'woocommerce_account_menu_items',
|
43 |
+
function( $menu_links ) {
|
44 |
+
$menu_links = array_slice( $menu_links, 0, 5, true )
|
45 |
+
+ array( 'ppcp-paypal-payment-tokens' => 'PayPal payments' )
|
46 |
+
+ array_slice( $menu_links, 5, null, true );
|
47 |
+
|
48 |
+
return $menu_links;
|
49 |
+
},
|
50 |
+
40
|
51 |
+
);
|
52 |
+
|
53 |
+
add_action(
|
54 |
+
'init',
|
55 |
+
function () {
|
56 |
+
add_rewrite_endpoint( 'ppcp-paypal-payment-tokens', EP_PAGES );
|
57 |
+
}
|
58 |
+
);
|
59 |
+
|
60 |
+
add_action(
|
61 |
+
'woocommerce_account_ppcp-paypal-payment-tokens_endpoint',
|
62 |
+
function () use ( $container ) {
|
63 |
+
$payment_token_repository = $container->get( 'vaulting.repository.payment-token' );
|
64 |
+
$renderer = $container->get( 'vaulting.payment-tokens-renderer' );
|
65 |
+
|
66 |
+
$tokens = $payment_token_repository->all_for_user_id( get_current_user_id() );
|
67 |
+
if ( $tokens ) {
|
68 |
+
echo wp_kses_post( $renderer->render( $tokens ) );
|
69 |
+
} else {
|
70 |
+
echo wp_kses_post( $renderer->render_no_tokens() );
|
71 |
+
}
|
72 |
+
}
|
73 |
+
);
|
74 |
+
|
75 |
+
$asset_loader = $container->get( 'vaulting.assets.myaccount-payments' );
|
76 |
+
add_action(
|
77 |
+
'wp_enqueue_scripts',
|
78 |
+
function () use ( $asset_loader ) {
|
79 |
+
if ( is_account_page() && $this->is_payments_page() ) {
|
80 |
+
$asset_loader->enqueue();
|
81 |
+
$asset_loader->localize();
|
82 |
+
}
|
83 |
+
}
|
84 |
+
);
|
85 |
+
|
86 |
+
add_action(
|
87 |
+
'wc_ajax_' . DeletePaymentTokenEndpoint::ENDPOINT,
|
88 |
+
static function () use ( $container ) {
|
89 |
+
$endpoint = $container->get( 'vaulting.endpoint.delete' );
|
90 |
+
assert( $endpoint instanceof DeletePaymentTokenEndpoint );
|
91 |
+
|
92 |
+
$endpoint->handle_request();
|
93 |
+
}
|
94 |
+
);
|
95 |
+
}
|
96 |
+
|
97 |
+
/**
|
98 |
+
* {@inheritDoc}
|
99 |
+
*/
|
100 |
+
public function getKey() { }
|
101 |
+
|
102 |
+
/**
|
103 |
+
* Check if is payments page.
|
104 |
+
*
|
105 |
+
* @return bool Whethen page is payments or not.
|
106 |
+
*/
|
107 |
+
private function is_payments_page(): bool {
|
108 |
+
global $wp;
|
109 |
+
$request = explode( '/', wp_parse_url( $wp->request, PHP_URL_PATH ) );
|
110 |
+
if ( end( $request ) === 'ppcp-paypal-payment-tokens' ) {
|
111 |
+
return true;
|
112 |
+
}
|
113 |
+
|
114 |
+
return false;
|
115 |
+
}
|
116 |
+
}
|
modules/ppcp-vaulting/webpack.config.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
const path = require('path');
|
2 |
+
const isProduction = process.env.NODE_ENV === 'production';
|
3 |
+
|
4 |
+
module.exports = {
|
5 |
+
devtool: 'eval-source-map',
|
6 |
+
mode: isProduction ? 'production' : 'development',
|
7 |
+
target: 'web',
|
8 |
+
entry: {
|
9 |
+
'myaccount-payments': path.resolve('./resources/js/myaccount-payments.js'),
|
10 |
+
},
|
11 |
+
output: {
|
12 |
+
path: path.resolve(__dirname, 'assets/'),
|
13 |
+
filename: 'js/[name].js',
|
14 |
+
},
|
15 |
+
module: {
|
16 |
+
rules: [{
|
17 |
+
test: /\.js?$/,
|
18 |
+
exclude: /node_modules/,
|
19 |
+
loader: 'babel-loader',
|
20 |
+
}]
|
21 |
+
}
|
22 |
+
};
|
modules/ppcp-vaulting/yarn.lock
ADDED
@@ -0,0 +1,2219 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
2 |
+
# yarn lockfile v1
|
3 |
+
|
4 |
+
|
5 |
+
"@babel/code-frame@^7.14.5":
|
6 |
+
version "7.14.5"
|
7 |
+
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb"
|
8 |
+
integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==
|
9 |
+
dependencies:
|
10 |
+
"@babel/highlight" "^7.14.5"
|
11 |
+
|
12 |
+
"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.15.0":
|
13 |
+
version "7.15.0"
|
14 |
+
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.15.0.tgz#2dbaf8b85334796cafbb0f5793a90a2fc010b176"
|
15 |
+
integrity sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==
|
16 |
+
|
17 |
+
"@babel/core@^7.9.0":
|
18 |
+
version "7.15.5"
|
19 |
+
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.5.tgz#f8ed9ace730722544609f90c9bb49162dc3bf5b9"
|
20 |
+
integrity sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==
|
21 |
+
dependencies:
|
22 |
+
"@babel/code-frame" "^7.14.5"
|
23 |
+
"@babel/generator" "^7.15.4"
|
24 |
+
"@babel/helper-compilation-targets" "^7.15.4"
|
25 |
+
"@babel/helper-module-transforms" "^7.15.4"
|
26 |
+
"@babel/helpers" "^7.15.4"
|
27 |
+
"@babel/parser" "^7.15.5"
|
28 |
+
"@babel/template" "^7.15.4"
|
29 |
+
"@babel/traverse" "^7.15.4"
|
30 |
+
"@babel/types" "^7.15.4"
|
31 |
+
convert-source-map "^1.7.0"
|
32 |
+
debug "^4.1.0"
|
33 |
+
gensync "^1.0.0-beta.2"
|
34 |
+
json5 "^2.1.2"
|
35 |
+
semver "^6.3.0"
|
36 |
+
source-map "^0.5.0"
|
37 |
+
|
38 |
+
"@babel/generator@^7.15.4":
|
39 |
+
version "7.15.4"
|
40 |
+
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.4.tgz#85acb159a267ca6324f9793986991ee2022a05b0"
|
41 |
+
integrity sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==
|
42 |
+
dependencies:
|
43 |
+
"@babel/types" "^7.15.4"
|
44 |
+
jsesc "^2.5.1"
|
45 |
+
source-map "^0.5.0"
|
46 |
+
|
47 |
+
"@babel/helper-annotate-as-pure@^7.14.5", "@babel/helper-annotate-as-pure@^7.15.4":
|
48 |
+
version "7.15.4"
|
49 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz#3d0e43b00c5e49fdb6c57e421601a7a658d5f835"
|
50 |
+
integrity sha512-QwrtdNvUNsPCj2lfNQacsGSQvGX8ee1ttrBrcozUP2Sv/jylewBP/8QFe6ZkBsC8T/GYWonNAWJV4aRR9AL2DA==
|
51 |
+
dependencies:
|
52 |
+
"@babel/types" "^7.15.4"
|
53 |
+
|
54 |
+
"@babel/helper-builder-binary-assignment-operator-visitor@^7.14.5":
|
55 |
+
version "7.15.4"
|
56 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.15.4.tgz#21ad815f609b84ee0e3058676c33cf6d1670525f"
|
57 |
+
integrity sha512-P8o7JP2Mzi0SdC6eWr1zF+AEYvrsZa7GSY1lTayjF5XJhVH0kjLYUZPvTMflP7tBgZoe9gIhTa60QwFpqh/E0Q==
|
58 |
+
dependencies:
|
59 |
+
"@babel/helper-explode-assignable-expression" "^7.15.4"
|
60 |
+
"@babel/types" "^7.15.4"
|
61 |
+
|
62 |
+
"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.15.4":
|
63 |
+
version "7.15.4"
|
64 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz#cf6d94f30fbefc139123e27dd6b02f65aeedb7b9"
|
65 |
+
integrity sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==
|
66 |
+
dependencies:
|
67 |
+
"@babel/compat-data" "^7.15.0"
|
68 |
+
"@babel/helper-validator-option" "^7.14.5"
|
69 |
+
browserslist "^4.16.6"
|
70 |
+
semver "^6.3.0"
|
71 |
+
|
72 |
+
"@babel/helper-create-class-features-plugin@^7.14.5", "@babel/helper-create-class-features-plugin@^7.15.4":
|
73 |
+
version "7.15.4"
|
74 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.4.tgz#7f977c17bd12a5fba363cb19bea090394bf37d2e"
|
75 |
+
integrity sha512-7ZmzFi+DwJx6A7mHRwbuucEYpyBwmh2Ca0RvI6z2+WLZYCqV0JOaLb+u0zbtmDicebgKBZgqbYfLaKNqSgv5Pw==
|
76 |
+
dependencies:
|
77 |
+
"@babel/helper-annotate-as-pure" "^7.15.4"
|
78 |
+
"@babel/helper-function-name" "^7.15.4"
|
79 |
+
"@babel/helper-member-expression-to-functions" "^7.15.4"
|
80 |
+
"@babel/helper-optimise-call-expression" "^7.15.4"
|
81 |
+
"@babel/helper-replace-supers" "^7.15.4"
|
82 |
+
"@babel/helper-split-export-declaration" "^7.15.4"
|
83 |
+
|
84 |
+
"@babel/helper-create-regexp-features-plugin@^7.14.5":
|
85 |
+
version "7.14.5"
|
86 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz#c7d5ac5e9cf621c26057722fb7a8a4c5889358c4"
|
87 |
+
integrity sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A==
|
88 |
+
dependencies:
|
89 |
+
"@babel/helper-annotate-as-pure" "^7.14.5"
|
90 |
+
regexpu-core "^4.7.1"
|
91 |
+
|
92 |
+
"@babel/helper-define-polyfill-provider@^0.2.2":
|
93 |
+
version "0.2.3"
|
94 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz#0525edec5094653a282688d34d846e4c75e9c0b6"
|
95 |
+
integrity sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==
|
96 |
+
dependencies:
|
97 |
+
"@babel/helper-compilation-targets" "^7.13.0"
|
98 |
+
"@babel/helper-module-imports" "^7.12.13"
|
99 |
+
"@babel/helper-plugin-utils" "^7.13.0"
|
100 |
+
"@babel/traverse" "^7.13.0"
|
101 |
+
debug "^4.1.1"
|
102 |
+
lodash.debounce "^4.0.8"
|
103 |
+
resolve "^1.14.2"
|
104 |
+
semver "^6.1.2"
|
105 |
+
|
106 |
+
"@babel/helper-explode-assignable-expression@^7.15.4":
|
107 |
+
version "7.15.4"
|
108 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.15.4.tgz#f9aec9d219f271eaf92b9f561598ca6b2682600c"
|
109 |
+
integrity sha512-J14f/vq8+hdC2KoWLIQSsGrC9EFBKE4NFts8pfMpymfApds+fPqR30AOUWc4tyr56h9l/GA1Sxv2q3dLZWbQ/g==
|
110 |
+
dependencies:
|
111 |
+
"@babel/types" "^7.15.4"
|
112 |
+
|
113 |
+
"@babel/helper-function-name@^7.14.5", "@babel/helper-function-name@^7.15.4":
|
114 |
+
version "7.15.4"
|
115 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz#845744dafc4381a4a5fb6afa6c3d36f98a787ebc"
|
116 |
+
integrity sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==
|
117 |
+
dependencies:
|
118 |
+
"@babel/helper-get-function-arity" "^7.15.4"
|
119 |
+
"@babel/template" "^7.15.4"
|
120 |
+
"@babel/types" "^7.15.4"
|
121 |
+
|
122 |
+
"@babel/helper-get-function-arity@^7.15.4":
|
123 |
+
version "7.15.4"
|
124 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz#098818934a137fce78b536a3e015864be1e2879b"
|
125 |
+
integrity sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==
|
126 |
+
dependencies:
|
127 |
+
"@babel/types" "^7.15.4"
|
128 |
+
|
129 |
+
"@babel/helper-hoist-variables@^7.15.4":
|
130 |
+
version "7.15.4"
|
131 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz#09993a3259c0e918f99d104261dfdfc033f178df"
|
132 |
+
integrity sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==
|
133 |
+
dependencies:
|
134 |
+
"@babel/types" "^7.15.4"
|
135 |
+
|
136 |
+
"@babel/helper-member-expression-to-functions@^7.15.4":
|
137 |
+
version "7.15.4"
|
138 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz#bfd34dc9bba9824a4658b0317ec2fd571a51e6ef"
|
139 |
+
integrity sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==
|
140 |
+
dependencies:
|
141 |
+
"@babel/types" "^7.15.4"
|
142 |
+
|
143 |
+
"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.14.5", "@babel/helper-module-imports@^7.15.4":
|
144 |
+
version "7.15.4"
|
145 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz#e18007d230632dea19b47853b984476e7b4e103f"
|
146 |
+
integrity sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==
|
147 |
+
dependencies:
|
148 |
+
"@babel/types" "^7.15.4"
|
149 |
+
|
150 |
+
"@babel/helper-module-transforms@^7.14.5", "@babel/helper-module-transforms@^7.15.4":
|
151 |
+
version "7.15.7"
|
152 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.15.7.tgz#7da80c8cbc1f02655d83f8b79d25866afe50d226"
|
153 |
+
integrity sha512-ZNqjjQG/AuFfekFTY+7nY4RgBSklgTu970c7Rj3m/JOhIu5KPBUuTA9AY6zaKcUvk4g6EbDXdBnhi35FAssdSw==
|
154 |
+
dependencies:
|
155 |
+
"@babel/helper-module-imports" "^7.15.4"
|
156 |
+
"@babel/helper-replace-supers" "^7.15.4"
|
157 |
+
"@babel/helper-simple-access" "^7.15.4"
|
158 |
+
"@babel/helper-split-export-declaration" "^7.15.4"
|
159 |
+
"@babel/helper-validator-identifier" "^7.15.7"
|
160 |
+
"@babel/template" "^7.15.4"
|
161 |
+
"@babel/traverse" "^7.15.4"
|
162 |
+
"@babel/types" "^7.15.6"
|
163 |
+
|
164 |
+
"@babel/helper-optimise-call-expression@^7.15.4":
|
165 |
+
version "7.15.4"
|
166 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz#f310a5121a3b9cc52d9ab19122bd729822dee171"
|
167 |
+
integrity sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==
|
168 |
+
dependencies:
|
169 |
+
"@babel/types" "^7.15.4"
|
170 |
+
|
171 |
+
"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
|
172 |
+
version "7.14.5"
|
173 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9"
|
174 |
+
integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==
|
175 |
+
|
176 |
+
"@babel/helper-remap-async-to-generator@^7.14.5", "@babel/helper-remap-async-to-generator@^7.15.4":
|
177 |
+
version "7.15.4"
|
178 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.15.4.tgz#2637c0731e4c90fbf58ac58b50b2b5a192fc970f"
|
179 |
+
integrity sha512-v53MxgvMK/HCwckJ1bZrq6dNKlmwlyRNYM6ypaRTdXWGOE2c1/SCa6dL/HimhPulGhZKw9W0QhREM583F/t0vQ==
|
180 |
+
dependencies:
|
181 |
+
"@babel/helper-annotate-as-pure" "^7.15.4"
|
182 |
+
"@babel/helper-wrap-function" "^7.15.4"
|
183 |
+
"@babel/types" "^7.15.4"
|
184 |
+
|
185 |
+
"@babel/helper-replace-supers@^7.14.5", "@babel/helper-replace-supers@^7.15.4":
|
186 |
+
version "7.15.4"
|
187 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz#52a8ab26ba918c7f6dee28628b07071ac7b7347a"
|
188 |
+
integrity sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==
|
189 |
+
dependencies:
|
190 |
+
"@babel/helper-member-expression-to-functions" "^7.15.4"
|
191 |
+
"@babel/helper-optimise-call-expression" "^7.15.4"
|
192 |
+
"@babel/traverse" "^7.15.4"
|
193 |
+
"@babel/types" "^7.15.4"
|
194 |
+
|
195 |
+
"@babel/helper-simple-access@^7.15.4":
|
196 |
+
version "7.15.4"
|
197 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz#ac368905abf1de8e9781434b635d8f8674bcc13b"
|
198 |
+
integrity sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==
|
199 |
+
dependencies:
|
200 |
+
"@babel/types" "^7.15.4"
|
201 |
+
|
202 |
+
"@babel/helper-skip-transparent-expression-wrappers@^7.14.5", "@babel/helper-skip-transparent-expression-wrappers@^7.15.4":
|
203 |
+
version "7.15.4"
|
204 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.15.4.tgz#707dbdba1f4ad0fa34f9114fc8197aec7d5da2eb"
|
205 |
+
integrity sha512-BMRLsdh+D1/aap19TycS4eD1qELGrCBJwzaY9IE8LrpJtJb+H7rQkPIdsfgnMtLBA6DJls7X9z93Z4U8h7xw0A==
|
206 |
+
dependencies:
|
207 |
+
"@babel/types" "^7.15.4"
|
208 |
+
|
209 |
+
"@babel/helper-split-export-declaration@^7.15.4":
|
210 |
+
version "7.15.4"
|
211 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz#aecab92dcdbef6a10aa3b62ab204b085f776e257"
|
212 |
+
integrity sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==
|
213 |
+
dependencies:
|
214 |
+
"@babel/types" "^7.15.4"
|
215 |
+
|
216 |
+
"@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9", "@babel/helper-validator-identifier@^7.15.7":
|
217 |
+
version "7.15.7"
|
218 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389"
|
219 |
+
integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==
|
220 |
+
|
221 |
+
"@babel/helper-validator-option@^7.14.5":
|
222 |
+
version "7.14.5"
|
223 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3"
|
224 |
+
integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==
|
225 |
+
|
226 |
+
"@babel/helper-wrap-function@^7.15.4":
|
227 |
+
version "7.15.4"
|
228 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.15.4.tgz#6f754b2446cfaf3d612523e6ab8d79c27c3a3de7"
|
229 |
+
integrity sha512-Y2o+H/hRV5W8QhIfTpRIBwl57y8PrZt6JM3V8FOo5qarjshHItyH5lXlpMfBfmBefOqSCpKZs/6Dxqp0E/U+uw==
|
230 |
+
dependencies:
|
231 |
+
"@babel/helper-function-name" "^7.15.4"
|
232 |
+
"@babel/template" "^7.15.4"
|
233 |
+
"@babel/traverse" "^7.15.4"
|
234 |
+
"@babel/types" "^7.15.4"
|
235 |
+
|
236 |
+
"@babel/helpers@^7.15.4":
|
237 |
+
version "7.15.4"
|
238 |
+
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.15.4.tgz#5f40f02050a3027121a3cf48d497c05c555eaf43"
|
239 |
+
integrity sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==
|
240 |
+
dependencies:
|
241 |
+
"@babel/template" "^7.15.4"
|
242 |
+
"@babel/traverse" "^7.15.4"
|
243 |
+
"@babel/types" "^7.15.4"
|
244 |
+
|
245 |
+
"@babel/highlight@^7.14.5":
|
246 |
+
version "7.14.5"
|
247 |
+
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9"
|
248 |
+
integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==
|
249 |
+
dependencies:
|
250 |
+
"@babel/helper-validator-identifier" "^7.14.5"
|
251 |
+
chalk "^2.0.0"
|
252 |
+
js-tokens "^4.0.0"
|
253 |
+
|
254 |
+
"@babel/parser@^7.15.4", "@babel/parser@^7.15.5":
|
255 |
+
version "7.15.7"
|
256 |
+
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.7.tgz#0c3ed4a2eb07b165dfa85b3cc45c727334c4edae"
|
257 |
+
integrity sha512-rycZXvQ+xS9QyIcJ9HXeDWf1uxqlbVFAUq0Rq0dbc50Zb/+wUe/ehyfzGfm9KZZF0kBejYgxltBXocP+gKdL2g==
|
258 |
+
|
259 |
+
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.15.4":
|
260 |
+
version "7.15.4"
|
261 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.15.4.tgz#dbdeabb1e80f622d9f0b583efb2999605e0a567e"
|
262 |
+
integrity sha512-eBnpsl9tlhPhpI10kU06JHnrYXwg3+V6CaP2idsCXNef0aeslpqyITXQ74Vfk5uHgY7IG7XP0yIH8b42KSzHog==
|
263 |
+
dependencies:
|
264 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
265 |
+
"@babel/helper-skip-transparent-expression-wrappers" "^7.15.4"
|
266 |
+
"@babel/plugin-proposal-optional-chaining" "^7.14.5"
|
267 |
+
|
268 |
+
"@babel/plugin-proposal-async-generator-functions@^7.15.4":
|
269 |
+
version "7.15.4"
|
270 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.4.tgz#f82aabe96c135d2ceaa917feb9f5fca31635277e"
|
271 |
+
integrity sha512-2zt2g5vTXpMC3OmK6uyjvdXptbhBXfA77XGrd3gh93zwG8lZYBLOBImiGBEG0RANu3JqKEACCz5CGk73OJROBw==
|
272 |
+
dependencies:
|
273 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
274 |
+
"@babel/helper-remap-async-to-generator" "^7.15.4"
|
275 |
+
"@babel/plugin-syntax-async-generators" "^7.8.4"
|
276 |
+
|
277 |
+
"@babel/plugin-proposal-class-properties@^7.14.5":
|
278 |
+
version "7.14.5"
|
279 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz#40d1ee140c5b1e31a350f4f5eed945096559b42e"
|
280 |
+
integrity sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==
|
281 |
+
dependencies:
|
282 |
+
"@babel/helper-create-class-features-plugin" "^7.14.5"
|
283 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
284 |
+
|
285 |
+
"@babel/plugin-proposal-class-static-block@^7.15.4":
|
286 |
+
version "7.15.4"
|
287 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.15.4.tgz#3e7ca6128453c089e8b477a99f970c63fc1cb8d7"
|
288 |
+
integrity sha512-M682XWrrLNk3chXCjoPUQWOyYsB93B9z3mRyjtqqYJWDf2mfCdIYgDrA11cgNVhAQieaq6F2fn2f3wI0U4aTjA==
|
289 |
+
dependencies:
|
290 |
+
"@babel/helper-create-class-features-plugin" "^7.15.4"
|
291 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
292 |
+
"@babel/plugin-syntax-class-static-block" "^7.14.5"
|
293 |
+
|
294 |
+
"@babel/plugin-proposal-dynamic-import@^7.14.5":
|
295 |
+
version "7.14.5"
|
296 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz#0c6617df461c0c1f8fff3b47cd59772360101d2c"
|
297 |
+
integrity sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g==
|
298 |
+
dependencies:
|
299 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
300 |
+
"@babel/plugin-syntax-dynamic-import" "^7.8.3"
|
301 |
+
|
302 |
+
"@babel/plugin-proposal-export-namespace-from@^7.14.5":
|
303 |
+
version "7.14.5"
|
304 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz#dbad244310ce6ccd083072167d8cea83a52faf76"
|
305 |
+
integrity sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA==
|
306 |
+
dependencies:
|
307 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
308 |
+
"@babel/plugin-syntax-export-namespace-from" "^7.8.3"
|
309 |
+
|
310 |
+
"@babel/plugin-proposal-json-strings@^7.14.5":
|
311 |
+
version "7.14.5"
|
312 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz#38de60db362e83a3d8c944ac858ddf9f0c2239eb"
|
313 |
+
integrity sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ==
|
314 |
+
dependencies:
|
315 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
316 |
+
"@babel/plugin-syntax-json-strings" "^7.8.3"
|
317 |
+
|
318 |
+
"@babel/plugin-proposal-logical-assignment-operators@^7.14.5":
|
319 |
+
version "7.14.5"
|
320 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz#6e6229c2a99b02ab2915f82571e0cc646a40c738"
|
321 |
+
integrity sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw==
|
322 |
+
dependencies:
|
323 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
324 |
+
"@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
|
325 |
+
|
326 |
+
"@babel/plugin-proposal-nullish-coalescing-operator@^7.14.5":
|
327 |
+
version "7.14.5"
|
328 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz#ee38589ce00e2cc59b299ec3ea406fcd3a0fdaf6"
|
329 |
+
integrity sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==
|
330 |
+
dependencies:
|
331 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
332 |
+
"@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
|
333 |
+
|
334 |
+
"@babel/plugin-proposal-numeric-separator@^7.14.5":
|
335 |
+
version "7.14.5"
|
336 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz#83631bf33d9a51df184c2102a069ac0c58c05f18"
|
337 |
+
integrity sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg==
|
338 |
+
dependencies:
|
339 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
340 |
+
"@babel/plugin-syntax-numeric-separator" "^7.10.4"
|
341 |
+
|
342 |
+
"@babel/plugin-proposal-object-rest-spread@^7.15.6":
|
343 |
+
version "7.15.6"
|
344 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.15.6.tgz#ef68050c8703d07b25af402cb96cf7f34a68ed11"
|
345 |
+
integrity sha512-qtOHo7A1Vt+O23qEAX+GdBpqaIuD3i9VRrWgCJeq7WO6H2d14EK3q11urj5Te2MAeK97nMiIdRpwd/ST4JFbNg==
|
346 |
+
dependencies:
|
347 |
+
"@babel/compat-data" "^7.15.0"
|
348 |
+
"@babel/helper-compilation-targets" "^7.15.4"
|
349 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
350 |
+
"@babel/plugin-syntax-object-rest-spread" "^7.8.3"
|
351 |
+
"@babel/plugin-transform-parameters" "^7.15.4"
|
352 |
+
|
353 |
+
"@babel/plugin-proposal-optional-catch-binding@^7.14.5":
|
354 |
+
version "7.14.5"
|
355 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz#939dd6eddeff3a67fdf7b3f044b5347262598c3c"
|
356 |
+
integrity sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ==
|
357 |
+
dependencies:
|
358 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
359 |
+
"@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
|
360 |
+
|
361 |
+
"@babel/plugin-proposal-optional-chaining@^7.14.5":
|
362 |
+
version "7.14.5"
|
363 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz#fa83651e60a360e3f13797eef00b8d519695b603"
|
364 |
+
integrity sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==
|
365 |
+
dependencies:
|
366 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
367 |
+
"@babel/helper-skip-transparent-expression-wrappers" "^7.14.5"
|
368 |
+
"@babel/plugin-syntax-optional-chaining" "^7.8.3"
|
369 |
+
|
370 |
+
"@babel/plugin-proposal-private-methods@^7.14.5":
|
371 |
+
version "7.14.5"
|
372 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz#37446495996b2945f30f5be5b60d5e2aa4f5792d"
|
373 |
+
integrity sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g==
|
374 |
+
dependencies:
|
375 |
+
"@babel/helper-create-class-features-plugin" "^7.14.5"
|
376 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
377 |
+
|
378 |
+
"@babel/plugin-proposal-private-property-in-object@^7.15.4":
|
379 |
+
version "7.15.4"
|
380 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.15.4.tgz#55c5e3b4d0261fd44fe637e3f624cfb0f484e3e5"
|
381 |
+
integrity sha512-X0UTixkLf0PCCffxgu5/1RQyGGbgZuKoI+vXP4iSbJSYwPb7hu06omsFGBvQ9lJEvwgrxHdS8B5nbfcd8GyUNA==
|
382 |
+
dependencies:
|
383 |
+
"@babel/helper-annotate-as-pure" "^7.15.4"
|
384 |
+
"@babel/helper-create-class-features-plugin" "^7.15.4"
|
385 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
386 |
+
"@babel/plugin-syntax-private-property-in-object" "^7.14.5"
|
387 |
+
|
388 |
+
"@babel/plugin-proposal-unicode-property-regex@^7.14.5", "@babel/plugin-proposal-unicode-property-regex@^7.4.4":
|
389 |
+
version "7.14.5"
|
390 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz#0f95ee0e757a5d647f378daa0eca7e93faa8bbe8"
|
391 |
+
integrity sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q==
|
392 |
+
dependencies:
|
393 |
+
"@babel/helper-create-regexp-features-plugin" "^7.14.5"
|
394 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
395 |
+
|
396 |
+
"@babel/plugin-syntax-async-generators@^7.8.4":
|
397 |
+
version "7.8.4"
|
398 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
|
399 |
+
integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
|
400 |
+
dependencies:
|
401 |
+
"@babel/helper-plugin-utils" "^7.8.0"
|
402 |
+
|
403 |
+
"@babel/plugin-syntax-class-properties@^7.12.13":
|
404 |
+
version "7.12.13"
|
405 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10"
|
406 |
+
integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==
|
407 |
+
dependencies:
|
408 |
+
"@babel/helper-plugin-utils" "^7.12.13"
|
409 |
+
|
410 |
+
"@babel/plugin-syntax-class-static-block@^7.14.5":
|
411 |
+
version "7.14.5"
|
412 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406"
|
413 |
+
integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==
|
414 |
+
dependencies:
|
415 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
416 |
+
|
417 |
+
"@babel/plugin-syntax-dynamic-import@^7.8.3":
|
418 |
+
version "7.8.3"
|
419 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3"
|
420 |
+
integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==
|
421 |
+
dependencies:
|
422 |
+
"@babel/helper-plugin-utils" "^7.8.0"
|
423 |
+
|
424 |
+
"@babel/plugin-syntax-export-namespace-from@^7.8.3":
|
425 |
+
version "7.8.3"
|
426 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a"
|
427 |
+
integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==
|
428 |
+
dependencies:
|
429 |
+
"@babel/helper-plugin-utils" "^7.8.3"
|
430 |
+
|
431 |
+
"@babel/plugin-syntax-json-strings@^7.8.3":
|
432 |
+
version "7.8.3"
|
433 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
|
434 |
+
integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
|
435 |
+
dependencies:
|
436 |
+
"@babel/helper-plugin-utils" "^7.8.0"
|
437 |
+
|
438 |
+
"@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
|
439 |
+
version "7.10.4"
|
440 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
|
441 |
+
integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
|
442 |
+
dependencies:
|
443 |
+
"@babel/helper-plugin-utils" "^7.10.4"
|
444 |
+
|
445 |
+
"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
|
446 |
+
version "7.8.3"
|
447 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
|
448 |
+
integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
|
449 |
+
dependencies:
|
450 |
+
"@babel/helper-plugin-utils" "^7.8.0"
|
451 |
+
|
452 |
+
"@babel/plugin-syntax-numeric-separator@^7.10.4":
|
453 |
+
version "7.10.4"
|
454 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97"
|
455 |
+
integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
|
456 |
+
dependencies:
|
457 |
+
"@babel/helper-plugin-utils" "^7.10.4"
|
458 |
+
|
459 |
+
"@babel/plugin-syntax-object-rest-spread@^7.8.3":
|
460 |
+
version "7.8.3"
|
461 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
|
462 |
+
integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
|
463 |
+
dependencies:
|
464 |
+
"@babel/helper-plugin-utils" "^7.8.0"
|
465 |
+
|
466 |
+
"@babel/plugin-syntax-optional-catch-binding@^7.8.3":
|
467 |
+
version "7.8.3"
|
468 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"
|
469 |
+
integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
|
470 |
+
dependencies:
|
471 |
+
"@babel/helper-plugin-utils" "^7.8.0"
|
472 |
+
|
473 |
+
"@babel/plugin-syntax-optional-chaining@^7.8.3":
|
474 |
+
version "7.8.3"
|
475 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a"
|
476 |
+
integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
|
477 |
+
dependencies:
|
478 |
+
"@babel/helper-plugin-utils" "^7.8.0"
|
479 |
+
|
480 |
+
"@babel/plugin-syntax-private-property-in-object@^7.14.5":
|
481 |
+
version "7.14.5"
|
482 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad"
|
483 |
+
integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==
|
484 |
+
dependencies:
|
485 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
486 |
+
|
487 |
+
"@babel/plugin-syntax-top-level-await@^7.14.5":
|
488 |
+
version "7.14.5"
|
489 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c"
|
490 |
+
integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==
|
491 |
+
dependencies:
|
492 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
493 |
+
|
494 |
+
"@babel/plugin-transform-arrow-functions@^7.14.5":
|
495 |
+
version "7.14.5"
|
496 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz#f7187d9588a768dd080bf4c9ffe117ea62f7862a"
|
497 |
+
integrity sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A==
|
498 |
+
dependencies:
|
499 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
500 |
+
|
501 |
+
"@babel/plugin-transform-async-to-generator@^7.14.5":
|
502 |
+
version "7.14.5"
|
503 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz#72c789084d8f2094acb945633943ef8443d39e67"
|
504 |
+
integrity sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==
|
505 |
+
dependencies:
|
506 |
+
"@babel/helper-module-imports" "^7.14.5"
|
507 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
508 |
+
"@babel/helper-remap-async-to-generator" "^7.14.5"
|
509 |
+
|
510 |
+
"@babel/plugin-transform-block-scoped-functions@^7.14.5":
|
511 |
+
version "7.14.5"
|
512 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz#e48641d999d4bc157a67ef336aeb54bc44fd3ad4"
|
513 |
+
integrity sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ==
|
514 |
+
dependencies:
|
515 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
516 |
+
|
517 |
+
"@babel/plugin-transform-block-scoping@^7.15.3":
|
518 |
+
version "7.15.3"
|
519 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz#94c81a6e2fc230bcce6ef537ac96a1e4d2b3afaf"
|
520 |
+
integrity sha512-nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q==
|
521 |
+
dependencies:
|
522 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
523 |
+
|
524 |
+
"@babel/plugin-transform-classes@^7.15.4":
|
525 |
+
version "7.15.4"
|
526 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.15.4.tgz#50aee17aaf7f332ae44e3bce4c2e10534d5d3bf1"
|
527 |
+
integrity sha512-Yjvhex8GzBmmPQUvpXRPWQ9WnxXgAFuZSrqOK/eJlOGIXwvv8H3UEdUigl1gb/bnjTrln+e8bkZUYCBt/xYlBg==
|
528 |
+
dependencies:
|
529 |
+
"@babel/helper-annotate-as-pure" "^7.15.4"
|
530 |
+
"@babel/helper-function-name" "^7.15.4"
|
531 |
+
"@babel/helper-optimise-call-expression" "^7.15.4"
|
532 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
533 |
+
"@babel/helper-replace-supers" "^7.15.4"
|
534 |
+
"@babel/helper-split-export-declaration" "^7.15.4"
|
535 |
+
globals "^11.1.0"
|
536 |
+
|
537 |
+
"@babel/plugin-transform-computed-properties@^7.14.5":
|
538 |
+
version "7.14.5"
|
539 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz#1b9d78987420d11223d41195461cc43b974b204f"
|
540 |
+
integrity sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg==
|
541 |
+
dependencies:
|
542 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
543 |
+
|
544 |
+
"@babel/plugin-transform-destructuring@^7.14.7":
|
545 |
+
version "7.14.7"
|
546 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz#0ad58ed37e23e22084d109f185260835e5557576"
|
547 |
+
integrity sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw==
|
548 |
+
dependencies:
|
549 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
550 |
+
|
551 |
+
"@babel/plugin-transform-dotall-regex@^7.14.5", "@babel/plugin-transform-dotall-regex@^7.4.4":
|
552 |
+
version "7.14.5"
|
553 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz#2f6bf76e46bdf8043b4e7e16cf24532629ba0c7a"
|
554 |
+
integrity sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw==
|
555 |
+
dependencies:
|
556 |
+
"@babel/helper-create-regexp-features-plugin" "^7.14.5"
|
557 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
558 |
+
|
559 |
+
"@babel/plugin-transform-duplicate-keys@^7.14.5":
|
560 |
+
version "7.14.5"
|
561 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz#365a4844881bdf1501e3a9f0270e7f0f91177954"
|
562 |
+
integrity sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A==
|
563 |
+
dependencies:
|
564 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
565 |
+
|
566 |
+
"@babel/plugin-transform-exponentiation-operator@^7.14.5":
|
567 |
+
version "7.14.5"
|
568 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz#5154b8dd6a3dfe6d90923d61724bd3deeb90b493"
|
569 |
+
integrity sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==
|
570 |
+
dependencies:
|
571 |
+
"@babel/helper-builder-binary-assignment-operator-visitor" "^7.14.5"
|
572 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
573 |
+
|
574 |
+
"@babel/plugin-transform-for-of@^7.15.4":
|
575 |
+
version "7.15.4"
|
576 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.15.4.tgz#25c62cce2718cfb29715f416e75d5263fb36a8c2"
|
577 |
+
integrity sha512-DRTY9fA751AFBDh2oxydvVm4SYevs5ILTWLs6xKXps4Re/KG5nfUkr+TdHCrRWB8C69TlzVgA9b3RmGWmgN9LA==
|
578 |
+
dependencies:
|
579 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
580 |
+
|
581 |
+
"@babel/plugin-transform-function-name@^7.14.5":
|
582 |
+
version "7.14.5"
|
583 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz#e81c65ecb900746d7f31802f6bed1f52d915d6f2"
|
584 |
+
integrity sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ==
|
585 |
+
dependencies:
|
586 |
+
"@babel/helper-function-name" "^7.14.5"
|
587 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
588 |
+
|
589 |
+
"@babel/plugin-transform-literals@^7.14.5":
|
590 |
+
version "7.14.5"
|
591 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz#41d06c7ff5d4d09e3cf4587bd3ecf3930c730f78"
|
592 |
+
integrity sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A==
|
593 |
+
dependencies:
|
594 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
595 |
+
|
596 |
+
"@babel/plugin-transform-member-expression-literals@^7.14.5":
|
597 |
+
version "7.14.5"
|
598 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz#b39cd5212a2bf235a617d320ec2b48bcc091b8a7"
|
599 |
+
integrity sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q==
|
600 |
+
dependencies:
|
601 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
602 |
+
|
603 |
+
"@babel/plugin-transform-modules-amd@^7.14.5":
|
604 |
+
version "7.14.5"
|
605 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz#4fd9ce7e3411cb8b83848480b7041d83004858f7"
|
606 |
+
integrity sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g==
|
607 |
+
dependencies:
|
608 |
+
"@babel/helper-module-transforms" "^7.14.5"
|
609 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
610 |
+
babel-plugin-dynamic-import-node "^2.3.3"
|
611 |
+
|
612 |
+
"@babel/plugin-transform-modules-commonjs@^7.15.4":
|
613 |
+
version "7.15.4"
|
614 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.4.tgz#8201101240eabb5a76c08ef61b2954f767b6b4c1"
|
615 |
+
integrity sha512-qg4DPhwG8hKp4BbVDvX1s8cohM8a6Bvptu4l6Iingq5rW+yRUAhe/YRup/YcW2zCOlrysEWVhftIcKzrEZv3sA==
|
616 |
+
dependencies:
|
617 |
+
"@babel/helper-module-transforms" "^7.15.4"
|
618 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
619 |
+
"@babel/helper-simple-access" "^7.15.4"
|
620 |
+
babel-plugin-dynamic-import-node "^2.3.3"
|
621 |
+
|
622 |
+
"@babel/plugin-transform-modules-systemjs@^7.15.4":
|
623 |
+
version "7.15.4"
|
624 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.15.4.tgz#b42890c7349a78c827719f1d2d0cd38c7d268132"
|
625 |
+
integrity sha512-fJUnlQrl/mezMneR72CKCgtOoahqGJNVKpompKwzv3BrEXdlPspTcyxrZ1XmDTIr9PpULrgEQo3qNKp6dW7ssw==
|
626 |
+
dependencies:
|
627 |
+
"@babel/helper-hoist-variables" "^7.15.4"
|
628 |
+
"@babel/helper-module-transforms" "^7.15.4"
|
629 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
630 |
+
"@babel/helper-validator-identifier" "^7.14.9"
|
631 |
+
babel-plugin-dynamic-import-node "^2.3.3"
|
632 |
+
|
633 |
+
"@babel/plugin-transform-modules-umd@^7.14.5":
|
634 |
+
version "7.14.5"
|
635 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz#fb662dfee697cce274a7cda525190a79096aa6e0"
|
636 |
+
integrity sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA==
|
637 |
+
dependencies:
|
638 |
+
"@babel/helper-module-transforms" "^7.14.5"
|
639 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
640 |
+
|
641 |
+
"@babel/plugin-transform-named-capturing-groups-regex@^7.14.9":
|
642 |
+
version "7.14.9"
|
643 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.9.tgz#c68f5c5d12d2ebaba3762e57c2c4f6347a46e7b2"
|
644 |
+
integrity sha512-l666wCVYO75mlAtGFfyFwnWmIXQm3kSH0C3IRnJqWcZbWkoihyAdDhFm2ZWaxWTqvBvhVFfJjMRQ0ez4oN1yYA==
|
645 |
+
dependencies:
|
646 |
+
"@babel/helper-create-regexp-features-plugin" "^7.14.5"
|
647 |
+
|
648 |
+
"@babel/plugin-transform-new-target@^7.14.5":
|
649 |
+
version "7.14.5"
|
650 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz#31bdae8b925dc84076ebfcd2a9940143aed7dbf8"
|
651 |
+
integrity sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ==
|
652 |
+
dependencies:
|
653 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
654 |
+
|
655 |
+
"@babel/plugin-transform-object-super@^7.14.5":
|
656 |
+
version "7.14.5"
|
657 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz#d0b5faeac9e98597a161a9cf78c527ed934cdc45"
|
658 |
+
integrity sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg==
|
659 |
+
dependencies:
|
660 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
661 |
+
"@babel/helper-replace-supers" "^7.14.5"
|
662 |
+
|
663 |
+
"@babel/plugin-transform-parameters@^7.15.4":
|
664 |
+
version "7.15.4"
|
665 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.15.4.tgz#5f2285cc3160bf48c8502432716b48504d29ed62"
|
666 |
+
integrity sha512-9WB/GUTO6lvJU3XQsSr6J/WKvBC2hcs4Pew8YxZagi6GkTdniyqp8On5kqdK8MN0LMeu0mGbhPN+O049NV/9FQ==
|
667 |
+
dependencies:
|
668 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
669 |
+
|
670 |
+
"@babel/plugin-transform-property-literals@^7.14.5":
|
671 |
+
version "7.14.5"
|
672 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz#0ddbaa1f83db3606f1cdf4846fa1dfb473458b34"
|
673 |
+
integrity sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw==
|
674 |
+
dependencies:
|
675 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
676 |
+
|
677 |
+
"@babel/plugin-transform-regenerator@^7.14.5":
|
678 |
+
version "7.14.5"
|
679 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz#9676fd5707ed28f522727c5b3c0aa8544440b04f"
|
680 |
+
integrity sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg==
|
681 |
+
dependencies:
|
682 |
+
regenerator-transform "^0.14.2"
|
683 |
+
|
684 |
+
"@babel/plugin-transform-reserved-words@^7.14.5":
|
685 |
+
version "7.14.5"
|
686 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz#c44589b661cfdbef8d4300dcc7469dffa92f8304"
|
687 |
+
integrity sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg==
|
688 |
+
dependencies:
|
689 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
690 |
+
|
691 |
+
"@babel/plugin-transform-shorthand-properties@^7.14.5":
|
692 |
+
version "7.14.5"
|
693 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz#97f13855f1409338d8cadcbaca670ad79e091a58"
|
694 |
+
integrity sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g==
|
695 |
+
dependencies:
|
696 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
697 |
+
|
698 |
+
"@babel/plugin-transform-spread@^7.14.6":
|
699 |
+
version "7.14.6"
|
700 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz#6bd40e57fe7de94aa904851963b5616652f73144"
|
701 |
+
integrity sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==
|
702 |
+
dependencies:
|
703 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
704 |
+
"@babel/helper-skip-transparent-expression-wrappers" "^7.14.5"
|
705 |
+
|
706 |
+
"@babel/plugin-transform-sticky-regex@^7.14.5":
|
707 |
+
version "7.14.5"
|
708 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz#5b617542675e8b7761294381f3c28c633f40aeb9"
|
709 |
+
integrity sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A==
|
710 |
+
dependencies:
|
711 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
712 |
+
|
713 |
+
"@babel/plugin-transform-template-literals@^7.14.5":
|
714 |
+
version "7.14.5"
|
715 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz#a5f2bc233937d8453885dc736bdd8d9ffabf3d93"
|
716 |
+
integrity sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg==
|
717 |
+
dependencies:
|
718 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
719 |
+
|
720 |
+
"@babel/plugin-transform-typeof-symbol@^7.14.5":
|
721 |
+
version "7.14.5"
|
722 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz#39af2739e989a2bd291bf6b53f16981423d457d4"
|
723 |
+
integrity sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw==
|
724 |
+
dependencies:
|
725 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
726 |
+
|
727 |
+
"@babel/plugin-transform-unicode-escapes@^7.14.5":
|
728 |
+
version "7.14.5"
|
729 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz#9d4bd2a681e3c5d7acf4f57fa9e51175d91d0c6b"
|
730 |
+
integrity sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA==
|
731 |
+
dependencies:
|
732 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
733 |
+
|
734 |
+
"@babel/plugin-transform-unicode-regex@^7.14.5":
|
735 |
+
version "7.14.5"
|
736 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz#4cd09b6c8425dd81255c7ceb3fb1836e7414382e"
|
737 |
+
integrity sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw==
|
738 |
+
dependencies:
|
739 |
+
"@babel/helper-create-regexp-features-plugin" "^7.14.5"
|
740 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
741 |
+
|
742 |
+
"@babel/preset-env@^7.9.5":
|
743 |
+
version "7.15.6"
|
744 |
+
resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.15.6.tgz#0f3898db9d63d320f21b17380d8462779de57659"
|
745 |
+
integrity sha512-L+6jcGn7EWu7zqaO2uoTDjjMBW+88FXzV8KvrBl2z6MtRNxlsmUNRlZPaNNPUTgqhyC5DHNFk/2Jmra+ublZWw==
|
746 |
+
dependencies:
|
747 |
+
"@babel/compat-data" "^7.15.0"
|
748 |
+
"@babel/helper-compilation-targets" "^7.15.4"
|
749 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
750 |
+
"@babel/helper-validator-option" "^7.14.5"
|
751 |
+
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.15.4"
|
752 |
+
"@babel/plugin-proposal-async-generator-functions" "^7.15.4"
|
753 |
+
"@babel/plugin-proposal-class-properties" "^7.14.5"
|
754 |
+
"@babel/plugin-proposal-class-static-block" "^7.15.4"
|
755 |
+
"@babel/plugin-proposal-dynamic-import" "^7.14.5"
|
756 |
+
"@babel/plugin-proposal-export-namespace-from" "^7.14.5"
|
757 |
+
"@babel/plugin-proposal-json-strings" "^7.14.5"
|
758 |
+
"@babel/plugin-proposal-logical-assignment-operators" "^7.14.5"
|
759 |
+
"@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.5"
|
760 |
+
"@babel/plugin-proposal-numeric-separator" "^7.14.5"
|
761 |
+
"@babel/plugin-proposal-object-rest-spread" "^7.15.6"
|
762 |
+
"@babel/plugin-proposal-optional-catch-binding" "^7.14.5"
|
763 |
+
"@babel/plugin-proposal-optional-chaining" "^7.14.5"
|
764 |
+
"@babel/plugin-proposal-private-methods" "^7.14.5"
|
765 |
+
"@babel/plugin-proposal-private-property-in-object" "^7.15.4"
|
766 |
+
"@babel/plugin-proposal-unicode-property-regex" "^7.14.5"
|
767 |
+
"@babel/plugin-syntax-async-generators" "^7.8.4"
|
768 |
+
"@babel/plugin-syntax-class-properties" "^7.12.13"
|
769 |
+
"@babel/plugin-syntax-class-static-block" "^7.14.5"
|
770 |
+
"@babel/plugin-syntax-dynamic-import" "^7.8.3"
|
771 |
+
"@babel/plugin-syntax-export-namespace-from" "^7.8.3"
|
772 |
+
"@babel/plugin-syntax-json-strings" "^7.8.3"
|
773 |
+
"@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
|
774 |
+
"@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
|
775 |
+
"@babel/plugin-syntax-numeric-separator" "^7.10.4"
|
776 |
+
"@babel/plugin-syntax-object-rest-spread" "^7.8.3"
|
777 |
+
"@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
|
778 |
+
"@babel/plugin-syntax-optional-chaining" "^7.8.3"
|
779 |
+
"@babel/plugin-syntax-private-property-in-object" "^7.14.5"
|
780 |
+
"@babel/plugin-syntax-top-level-await" "^7.14.5"
|
781 |
+
"@babel/plugin-transform-arrow-functions" "^7.14.5"
|
782 |
+
"@babel/plugin-transform-async-to-generator" "^7.14.5"
|
783 |
+
"@babel/plugin-transform-block-scoped-functions" "^7.14.5"
|
784 |
+
"@babel/plugin-transform-block-scoping" "^7.15.3"
|
785 |
+
"@babel/plugin-transform-classes" "^7.15.4"
|
786 |
+
"@babel/plugin-transform-computed-properties" "^7.14.5"
|
787 |
+
"@babel/plugin-transform-destructuring" "^7.14.7"
|
788 |
+
"@babel/plugin-transform-dotall-regex" "^7.14.5"
|
789 |
+
"@babel/plugin-transform-duplicate-keys" "^7.14.5"
|
790 |
+
"@babel/plugin-transform-exponentiation-operator" "^7.14.5"
|
791 |
+
"@babel/plugin-transform-for-of" "^7.15.4"
|
792 |
+
"@babel/plugin-transform-function-name" "^7.14.5"
|
793 |
+
"@babel/plugin-transform-literals" "^7.14.5"
|
794 |
+
"@babel/plugin-transform-member-expression-literals" "^7.14.5"
|
795 |
+
"@babel/plugin-transform-modules-amd" "^7.14.5"
|
796 |
+
"@babel/plugin-transform-modules-commonjs" "^7.15.4"
|
797 |
+
"@babel/plugin-transform-modules-systemjs" "^7.15.4"
|
798 |
+
"@babel/plugin-transform-modules-umd" "^7.14.5"
|
799 |
+
"@babel/plugin-transform-named-capturing-groups-regex" "^7.14.9"
|
800 |
+
"@babel/plugin-transform-new-target" "^7.14.5"
|
801 |
+
"@babel/plugin-transform-object-super" "^7.14.5"
|
802 |
+
"@babel/plugin-transform-parameters" "^7.15.4"
|
803 |
+
"@babel/plugin-transform-property-literals" "^7.14.5"
|
804 |
+
"@babel/plugin-transform-regenerator" "^7.14.5"
|
805 |
+
"@babel/plugin-transform-reserved-words" "^7.14.5"
|
806 |
+
"@babel/plugin-transform-shorthand-properties" "^7.14.5"
|
807 |
+
"@babel/plugin-transform-spread" "^7.14.6"
|
808 |
+
"@babel/plugin-transform-sticky-regex" "^7.14.5"
|
809 |
+
"@babel/plugin-transform-template-literals" "^7.14.5"
|
810 |
+
"@babel/plugin-transform-typeof-symbol" "^7.14.5"
|
811 |
+
"@babel/plugin-transform-unicode-escapes" "^7.14.5"
|
812 |
+
"@babel/plugin-transform-unicode-regex" "^7.14.5"
|
813 |
+
"@babel/preset-modules" "^0.1.4"
|
814 |
+
"@babel/types" "^7.15.6"
|
815 |
+
babel-plugin-polyfill-corejs2 "^0.2.2"
|
816 |
+
babel-plugin-polyfill-corejs3 "^0.2.2"
|
817 |
+
babel-plugin-polyfill-regenerator "^0.2.2"
|
818 |
+
core-js-compat "^3.16.0"
|
819 |
+
semver "^6.3.0"
|
820 |
+
|
821 |
+
"@babel/preset-modules@^0.1.4":
|
822 |
+
version "0.1.4"
|
823 |
+
resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e"
|
824 |
+
integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==
|
825 |
+
dependencies:
|
826 |
+
"@babel/helper-plugin-utils" "^7.0.0"
|
827 |
+
"@babel/plugin-proposal-unicode-property-regex" "^7.4.4"
|
828 |
+
"@babel/plugin-transform-dotall-regex" "^7.4.4"
|
829 |
+
"@babel/types" "^7.4.4"
|
830 |
+
esutils "^2.0.2"
|
831 |
+
|
832 |
+
"@babel/runtime@^7.8.4":
|
833 |
+
version "7.15.4"
|
834 |
+
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.4.tgz#fd17d16bfdf878e6dd02d19753a39fa8a8d9c84a"
|
835 |
+
integrity sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==
|
836 |
+
dependencies:
|
837 |
+
regenerator-runtime "^0.13.4"
|
838 |
+
|
839 |
+
"@babel/template@^7.15.4":
|
840 |
+
version "7.15.4"
|
841 |
+
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.15.4.tgz#51898d35dcf3faa670c4ee6afcfd517ee139f194"
|
842 |
+
integrity sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==
|
843 |
+
dependencies:
|
844 |
+
"@babel/code-frame" "^7.14.5"
|
845 |
+
"@babel/parser" "^7.15.4"
|
846 |
+
"@babel/types" "^7.15.4"
|
847 |
+
|
848 |
+
"@babel/traverse@^7.13.0", "@babel/traverse@^7.15.4":
|
849 |
+
version "7.15.4"
|
850 |
+
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.4.tgz#ff8510367a144bfbff552d9e18e28f3e2889c22d"
|
851 |
+
integrity sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==
|
852 |
+
dependencies:
|
853 |
+
"@babel/code-frame" "^7.14.5"
|
854 |
+
"@babel/generator" "^7.15.4"
|
855 |
+
"@babel/helper-function-name" "^7.15.4"
|
856 |
+
"@babel/helper-hoist-variables" "^7.15.4"
|
857 |
+
"@babel/helper-split-export-declaration" "^7.15.4"
|
858 |
+
"@babel/parser" "^7.15.4"
|
859 |
+
"@babel/types" "^7.15.4"
|
860 |
+
debug "^4.1.0"
|
861 |
+
globals "^11.1.0"
|
862 |
+
|
863 |
+
"@babel/types@^7.15.4", "@babel/types@^7.15.6", "@babel/types@^7.4.4":
|
864 |
+
version "7.15.6"
|
865 |
+
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.6.tgz#99abdc48218b2881c058dd0a7ab05b99c9be758f"
|
866 |
+
integrity sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==
|
867 |
+
dependencies:
|
868 |
+
"@babel/helper-validator-identifier" "^7.14.9"
|
869 |
+
to-fast-properties "^2.0.0"
|
870 |
+
|
871 |
+
"@discoveryjs/json-ext@^0.5.0":
|
872 |
+
version "0.5.5"
|
873 |
+
resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.5.tgz#9283c9ce5b289a3c4f61c12757469e59377f81f3"
|
874 |
+
integrity sha512-6nFkfkmSeV/rqSaS4oWHgmpnYw194f6hmWF5is6b0J1naJZoiD0NTc9AiUwPHvWsowkjuHErCZT1wa0jg+BLIA==
|
875 |
+
|
876 |
+
"@types/eslint-scope@^3.7.0":
|
877 |
+
version "3.7.1"
|
878 |
+
resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.1.tgz#8dc390a7b4f9dd9f1284629efce982e41612116e"
|
879 |
+
integrity sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g==
|
880 |
+
dependencies:
|
881 |
+
"@types/eslint" "*"
|
882 |
+
"@types/estree" "*"
|
883 |
+
|
884 |
+
"@types/eslint@*":
|
885 |
+
version "7.28.0"
|
886 |
+
resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.28.0.tgz#7e41f2481d301c68e14f483fe10b017753ce8d5a"
|
887 |
+
integrity sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A==
|
888 |
+
dependencies:
|
889 |
+
"@types/estree" "*"
|
890 |
+
"@types/json-schema" "*"
|
891 |
+
|
892 |
+
"@types/estree@*", "@types/estree@^0.0.50":
|
893 |
+
version "0.0.50"
|
894 |
+
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83"
|
895 |
+
integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==
|
896 |
+
|
897 |
+
"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8":
|
898 |
+
version "7.0.9"
|
899 |
+
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d"
|
900 |
+
integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==
|
901 |
+
|
902 |
+
"@types/node@*":
|
903 |
+
version "16.10.1"
|
904 |
+
resolved "https://registry.yarnpkg.com/@types/node/-/node-16.10.1.tgz#f3647623199ca920960006b3dccf633ea905f243"
|
905 |
+
integrity sha512-4/Z9DMPKFexZj/Gn3LylFgamNKHm4K3QDi0gz9B26Uk0c8izYf97B5fxfpspMNkWlFupblKM/nV8+NA9Ffvr+w==
|
906 |
+
|
907 |
+
"@webassemblyjs/ast@1.11.1":
|
908 |
+
version "1.11.1"
|
909 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7"
|
910 |
+
integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==
|
911 |
+
dependencies:
|
912 |
+
"@webassemblyjs/helper-numbers" "1.11.1"
|
913 |
+
"@webassemblyjs/helper-wasm-bytecode" "1.11.1"
|
914 |
+
|
915 |
+
"@webassemblyjs/floating-point-hex-parser@1.11.1":
|
916 |
+
version "1.11.1"
|
917 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f"
|
918 |
+
integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==
|
919 |
+
|
920 |
+
"@webassemblyjs/helper-api-error@1.11.1":
|
921 |
+
version "1.11.1"
|
922 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16"
|
923 |
+
integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==
|
924 |
+
|
925 |
+
"@webassemblyjs/helper-buffer@1.11.1":
|
926 |
+
version "1.11.1"
|
927 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5"
|
928 |
+
integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==
|
929 |
+
|
930 |
+
"@webassemblyjs/helper-numbers@1.11.1":
|
931 |
+
version "1.11.1"
|
932 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae"
|
933 |
+
integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==
|
934 |
+
dependencies:
|
935 |
+
"@webassemblyjs/floating-point-hex-parser" "1.11.1"
|
936 |
+
"@webassemblyjs/helper-api-error" "1.11.1"
|
937 |
+
"@xtuc/long" "4.2.2"
|
938 |
+
|
939 |
+
"@webassemblyjs/helper-wasm-bytecode@1.11.1":
|
940 |
+
version "1.11.1"
|
941 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1"
|
942 |
+
integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==
|
943 |
+
|
944 |
+
"@webassemblyjs/helper-wasm-section@1.11.1":
|
945 |
+
version "1.11.1"
|
946 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a"
|
947 |
+
integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==
|
948 |
+
dependencies:
|
949 |
+
"@webassemblyjs/ast" "1.11.1"
|
950 |
+
"@webassemblyjs/helper-buffer" "1.11.1"
|
951 |
+
"@webassemblyjs/helper-wasm-bytecode" "1.11.1"
|
952 |
+
"@webassemblyjs/wasm-gen" "1.11.1"
|
953 |
+
|
954 |
+
"@webassemblyjs/ieee754@1.11.1":
|
955 |
+
version "1.11.1"
|
956 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614"
|
957 |
+
integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==
|
958 |
+
dependencies:
|
959 |
+
"@xtuc/ieee754" "^1.2.0"
|
960 |
+
|
961 |
+
"@webassemblyjs/leb128@1.11.1":
|
962 |
+
version "1.11.1"
|
963 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5"
|
964 |
+
integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==
|
965 |
+
dependencies:
|
966 |
+
"@xtuc/long" "4.2.2"
|
967 |
+
|
968 |
+
"@webassemblyjs/utf8@1.11.1":
|
969 |
+
version "1.11.1"
|
970 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff"
|
971 |
+
integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==
|
972 |
+
|
973 |
+
"@webassemblyjs/wasm-edit@1.11.1":
|
974 |
+
version "1.11.1"
|
975 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6"
|
976 |
+
integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==
|
977 |
+
dependencies:
|
978 |
+
"@webassemblyjs/ast" "1.11.1"
|
979 |
+
"@webassemblyjs/helper-buffer" "1.11.1"
|
980 |
+
"@webassemblyjs/helper-wasm-bytecode" "1.11.1"
|
981 |
+
"@webassemblyjs/helper-wasm-section" "1.11.1"
|
982 |
+
"@webassemblyjs/wasm-gen" "1.11.1"
|
983 |
+
"@webassemblyjs/wasm-opt" "1.11.1"
|
984 |
+
"@webassemblyjs/wasm-parser" "1.11.1"
|
985 |
+
"@webassemblyjs/wast-printer" "1.11.1"
|
986 |
+
|
987 |
+
"@webassemblyjs/wasm-gen@1.11.1":
|
988 |
+
version "1.11.1"
|
989 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76"
|
990 |
+
integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==
|
991 |
+
dependencies:
|
992 |
+
"@webassemblyjs/ast" "1.11.1"
|
993 |
+
"@webassemblyjs/helper-wasm-bytecode" "1.11.1"
|
994 |
+
"@webassemblyjs/ieee754" "1.11.1"
|
995 |
+
"@webassemblyjs/leb128" "1.11.1"
|
996 |
+
"@webassemblyjs/utf8" "1.11.1"
|
997 |
+
|
998 |
+
"@webassemblyjs/wasm-opt@1.11.1":
|
999 |
+
version "1.11.1"
|
1000 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2"
|
1001 |
+
integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==
|
1002 |
+
dependencies:
|
1003 |
+
"@webassemblyjs/ast" "1.11.1"
|
1004 |
+
"@webassemblyjs/helper-buffer" "1.11.1"
|
1005 |
+
"@webassemblyjs/wasm-gen" "1.11.1"
|
1006 |
+
"@webassemblyjs/wasm-parser" "1.11.1"
|
1007 |
+
|
1008 |
+
"@webassemblyjs/wasm-parser@1.11.1":
|
1009 |
+
version "1.11.1"
|
1010 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199"
|
1011 |
+
integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==
|
1012 |
+
dependencies:
|
1013 |
+
"@webassemblyjs/ast" "1.11.1"
|
1014 |
+
"@webassemblyjs/helper-api-error" "1.11.1"
|
1015 |
+
"@webassemblyjs/helper-wasm-bytecode" "1.11.1"
|
1016 |
+
"@webassemblyjs/ieee754" "1.11.1"
|
1017 |
+
"@webassemblyjs/leb128" "1.11.1"
|
1018 |
+
"@webassemblyjs/utf8" "1.11.1"
|
1019 |
+
|
1020 |
+
"@webassemblyjs/wast-printer@1.11.1":
|
1021 |
+
version "1.11.1"
|
1022 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0"
|
1023 |
+
integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==
|
1024 |
+
dependencies:
|
1025 |
+
"@webassemblyjs/ast" "1.11.1"
|
1026 |
+
"@xtuc/long" "4.2.2"
|
1027 |
+
|
1028 |
+
"@webpack-cli/configtest@^1.0.4":
|
1029 |
+
version "1.0.4"
|
1030 |
+
resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.0.4.tgz#f03ce6311c0883a83d04569e2c03c6238316d2aa"
|
1031 |
+
integrity sha512-cs3XLy+UcxiP6bj0A6u7MLLuwdXJ1c3Dtc0RkKg+wiI1g/Ti1om8+/2hc2A2B60NbBNAbMgyBMHvyymWm/j4wQ==
|
1032 |
+
|
1033 |
+
"@webpack-cli/info@^1.3.0":
|
1034 |
+
version "1.3.0"
|
1035 |
+
resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.3.0.tgz#9d78a31101a960997a4acd41ffd9b9300627fe2b"
|
1036 |
+
integrity sha512-ASiVB3t9LOKHs5DyVUcxpraBXDOKubYu/ihHhU+t1UPpxsivg6Od2E2qU4gJCekfEddzRBzHhzA/Acyw/mlK/w==
|
1037 |
+
dependencies:
|
1038 |
+
envinfo "^7.7.3"
|
1039 |
+
|
1040 |
+
"@webpack-cli/serve@^1.5.2":
|
1041 |
+
version "1.5.2"
|
1042 |
+
resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.5.2.tgz#ea584b637ff63c5a477f6f21604b5a205b72c9ec"
|
1043 |
+
integrity sha512-vgJ5OLWadI8aKjDlOH3rb+dYyPd2GTZuQC/Tihjct6F9GpXGZINo3Y/IVuZVTM1eDQB+/AOsjPUWH/WySDaXvw==
|
1044 |
+
|
1045 |
+
"@xtuc/ieee754@^1.2.0":
|
1046 |
+
version "1.2.0"
|
1047 |
+
resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790"
|
1048 |
+
integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==
|
1049 |
+
|
1050 |
+
"@xtuc/long@4.2.2":
|
1051 |
+
version "4.2.2"
|
1052 |
+
resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
|
1053 |
+
integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
|
1054 |
+
|
1055 |
+
acorn-import-assertions@^1.7.6:
|
1056 |
+
version "1.7.6"
|
1057 |
+
resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.7.6.tgz#580e3ffcae6770eebeec76c3b9723201e9d01f78"
|
1058 |
+
integrity sha512-FlVvVFA1TX6l3lp8VjDnYYq7R1nyW6x3svAt4nDgrWQ9SBaSh9CnbwgSUTasgfNfOG5HlM1ehugCvM+hjo56LA==
|
1059 |
+
|
1060 |
+
acorn@^8.4.1:
|
1061 |
+
version "8.5.0"
|
1062 |
+
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.5.0.tgz#4512ccb99b3698c752591e9bb4472e38ad43cee2"
|
1063 |
+
integrity sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==
|
1064 |
+
|
1065 |
+
ajv-keywords@^3.5.2:
|
1066 |
+
version "3.5.2"
|
1067 |
+
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
|
1068 |
+
integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
|
1069 |
+
|
1070 |
+
ajv@^6.12.4, ajv@^6.12.5:
|
1071 |
+
version "6.12.6"
|
1072 |
+
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
|
1073 |
+
integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
|
1074 |
+
dependencies:
|
1075 |
+
fast-deep-equal "^3.1.1"
|
1076 |
+
fast-json-stable-stringify "^2.0.0"
|
1077 |
+
json-schema-traverse "^0.4.1"
|
1078 |
+
uri-js "^4.2.2"
|
1079 |
+
|
1080 |
+
ansi-styles@^3.2.1:
|
1081 |
+
version "3.2.1"
|
1082 |
+
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
|
1083 |
+
integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
|
1084 |
+
dependencies:
|
1085 |
+
color-convert "^1.9.0"
|
1086 |
+
|
1087 |
+
anymatch@~3.1.2:
|
1088 |
+
version "3.1.2"
|
1089 |
+
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
|
1090 |
+
integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
|
1091 |
+
dependencies:
|
1092 |
+
normalize-path "^3.0.0"
|
1093 |
+
picomatch "^2.0.4"
|
1094 |
+
|
1095 |
+
babel-loader@^8.1.0:
|
1096 |
+
version "8.2.2"
|
1097 |
+
resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81"
|
1098 |
+
integrity sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==
|
1099 |
+
dependencies:
|
1100 |
+
find-cache-dir "^3.3.1"
|
1101 |
+
loader-utils "^1.4.0"
|
1102 |
+
make-dir "^3.1.0"
|
1103 |
+
schema-utils "^2.6.5"
|
1104 |
+
|
1105 |
+
babel-plugin-dynamic-import-node@^2.3.3:
|
1106 |
+
version "2.3.3"
|
1107 |
+
resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3"
|
1108 |
+
integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==
|
1109 |
+
dependencies:
|
1110 |
+
object.assign "^4.1.0"
|
1111 |
+
|
1112 |
+
babel-plugin-polyfill-corejs2@^0.2.2:
|
1113 |
+
version "0.2.2"
|
1114 |
+
resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz#e9124785e6fd94f94b618a7954e5693053bf5327"
|
1115 |
+
integrity sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ==
|
1116 |
+
dependencies:
|
1117 |
+
"@babel/compat-data" "^7.13.11"
|
1118 |
+
"@babel/helper-define-polyfill-provider" "^0.2.2"
|
1119 |
+
semver "^6.1.1"
|
1120 |
+
|
1121 |
+
babel-plugin-polyfill-corejs3@^0.2.2:
|
1122 |
+
version "0.2.5"
|
1123 |
+
resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.5.tgz#2779846a16a1652244ae268b1e906ada107faf92"
|
1124 |
+
integrity sha512-ninF5MQNwAX9Z7c9ED+H2pGt1mXdP4TqzlHKyPIYmJIYz0N+++uwdM7RnJukklhzJ54Q84vA4ZJkgs7lu5vqcw==
|
1125 |
+
dependencies:
|
1126 |
+
"@babel/helper-define-polyfill-provider" "^0.2.2"
|
1127 |
+
core-js-compat "^3.16.2"
|
1128 |
+
|
1129 |
+
babel-plugin-polyfill-regenerator@^0.2.2:
|
1130 |
+
version "0.2.2"
|
1131 |
+
resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz#b310c8d642acada348c1fa3b3e6ce0e851bee077"
|
1132 |
+
integrity sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg==
|
1133 |
+
dependencies:
|
1134 |
+
"@babel/helper-define-polyfill-provider" "^0.2.2"
|
1135 |
+
|
1136 |
+
babel-plugin-syntax-object-rest-spread@^6.8.0:
|
1137 |
+
version "6.13.0"
|
1138 |
+
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5"
|
1139 |
+
integrity sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=
|
1140 |
+
|
1141 |
+
babel-plugin-transform-object-rest-spread@^6.26.0:
|
1142 |
+
version "6.26.0"
|
1143 |
+
resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06"
|
1144 |
+
integrity sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=
|
1145 |
+
dependencies:
|
1146 |
+
babel-plugin-syntax-object-rest-spread "^6.8.0"
|
1147 |
+
babel-runtime "^6.26.0"
|
1148 |
+
|
1149 |
+
babel-runtime@^6.26.0:
|
1150 |
+
version "6.26.0"
|
1151 |
+
resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
|
1152 |
+
integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4=
|
1153 |
+
dependencies:
|
1154 |
+
core-js "^2.4.0"
|
1155 |
+
regenerator-runtime "^0.11.0"
|
1156 |
+
|
1157 |
+
big.js@^5.2.2:
|
1158 |
+
version "5.2.2"
|
1159 |
+
resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
|
1160 |
+
integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
|
1161 |
+
|
1162 |
+
binary-extensions@^2.0.0:
|
1163 |
+
version "2.2.0"
|
1164 |
+
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
|
1165 |
+
integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
|
1166 |
+
|
1167 |
+
braces@~3.0.2:
|
1168 |
+
version "3.0.2"
|
1169 |
+
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
|
1170 |
+
integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
|
1171 |
+
dependencies:
|
1172 |
+
fill-range "^7.0.1"
|
1173 |
+
|
1174 |
+
browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4.17.1:
|
1175 |
+
version "4.17.1"
|
1176 |
+
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.1.tgz#a98d104f54af441290b7d592626dd541fa642eb9"
|
1177 |
+
integrity sha512-aLD0ZMDSnF4lUt4ZDNgqi5BUn9BZ7YdQdI/cYlILrhdSSZJLU9aNZoD5/NBmM4SK34APB2e83MOsRt1EnkuyaQ==
|
1178 |
+
dependencies:
|
1179 |
+
caniuse-lite "^1.0.30001259"
|
1180 |
+
electron-to-chromium "^1.3.846"
|
1181 |
+
escalade "^3.1.1"
|
1182 |
+
nanocolors "^0.1.5"
|
1183 |
+
node-releases "^1.1.76"
|
1184 |
+
|
1185 |
+
buffer-from@^1.0.0:
|
1186 |
+
version "1.1.2"
|
1187 |
+
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
|
1188 |
+
integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
|
1189 |
+
|
1190 |
+
call-bind@^1.0.0:
|
1191 |
+
version "1.0.2"
|
1192 |
+
resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
|
1193 |
+
integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
|
1194 |
+
dependencies:
|
1195 |
+
function-bind "^1.1.1"
|
1196 |
+
get-intrinsic "^1.0.2"
|
1197 |
+
|
1198 |
+
caniuse-lite@^1.0.30001259:
|
1199 |
+
version "1.0.30001261"
|
1200 |
+
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001261.tgz#96d89813c076ea061209a4e040d8dcf0c66a1d01"
|
1201 |
+
integrity sha512-vM8D9Uvp7bHIN0fZ2KQ4wnmYFpJo/Etb4Vwsuc+ka0tfGDHvOPrFm6S/7CCNLSOkAUjenT2HnUPESdOIL91FaA==
|
1202 |
+
|
1203 |
+
chalk@^2.0.0:
|
1204 |
+
version "2.4.2"
|
1205 |
+
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
|
1206 |
+
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
|
1207 |
+
dependencies:
|
1208 |
+
ansi-styles "^3.2.1"
|
1209 |
+
escape-string-regexp "^1.0.5"
|
1210 |
+
supports-color "^5.3.0"
|
1211 |
+
|
1212 |
+
"chokidar@>=3.0.0 <4.0.0":
|
1213 |
+
version "3.5.2"
|
1214 |
+
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75"
|
1215 |
+
integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==
|
1216 |
+
dependencies:
|
1217 |
+
anymatch "~3.1.2"
|
1218 |
+
braces "~3.0.2"
|
1219 |
+
glob-parent "~5.1.2"
|
1220 |
+
is-binary-path "~2.1.0"
|
1221 |
+
is-glob "~4.0.1"
|
1222 |
+
normalize-path "~3.0.0"
|
1223 |
+
readdirp "~3.6.0"
|
1224 |
+
optionalDependencies:
|
1225 |
+
fsevents "~2.3.2"
|
1226 |
+
|
1227 |
+
chrome-trace-event@^1.0.2:
|
1228 |
+
version "1.0.3"
|
1229 |
+
resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac"
|
1230 |
+
integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==
|
1231 |
+
|
1232 |
+
clone-deep@^4.0.1:
|
1233 |
+
version "4.0.1"
|
1234 |
+
resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387"
|
1235 |
+
integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==
|
1236 |
+
dependencies:
|
1237 |
+
is-plain-object "^2.0.4"
|
1238 |
+
kind-of "^6.0.2"
|
1239 |
+
shallow-clone "^3.0.0"
|
1240 |
+
|
1241 |
+
color-convert@^1.9.0:
|
1242 |
+
version "1.9.3"
|
1243 |
+
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
|
1244 |
+
integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
|
1245 |
+
dependencies:
|
1246 |
+
color-name "1.1.3"
|
1247 |
+
|
1248 |
+
color-name@1.1.3:
|
1249 |
+
version "1.1.3"
|
1250 |
+
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
|
1251 |
+
integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
|
1252 |
+
|
1253 |
+
colorette@^1.2.1:
|
1254 |
+
version "1.4.0"
|
1255 |
+
resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40"
|
1256 |
+
integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==
|
1257 |
+
|
1258 |
+
commander@^2.20.0:
|
1259 |
+
version "2.20.3"
|
1260 |
+
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
|
1261 |
+
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
|
1262 |
+
|
1263 |
+
commander@^7.0.0:
|
1264 |
+
version "7.2.0"
|
1265 |
+
resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
|
1266 |
+
integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
|
1267 |
+
|
1268 |
+
commondir@^1.0.1:
|
1269 |
+
version "1.0.1"
|
1270 |
+
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
|
1271 |
+
integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
|
1272 |
+
|
1273 |
+
convert-source-map@^1.7.0:
|
1274 |
+
version "1.8.0"
|
1275 |
+
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369"
|
1276 |
+
integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==
|
1277 |
+
dependencies:
|
1278 |
+
safe-buffer "~5.1.1"
|
1279 |
+
|
1280 |
+
core-js-compat@^3.16.0, core-js-compat@^3.16.2:
|
1281 |
+
version "3.18.1"
|
1282 |
+
resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.18.1.tgz#01942a0877caf9c6e5007c027183cf0bdae6a191"
|
1283 |
+
integrity sha512-XJMYx58zo4W0kLPmIingVZA10+7TuKrMLPt83+EzDmxFJQUMcTVVmQ+n5JP4r6Z14qSzhQBRi3NSWoeVyKKXUg==
|
1284 |
+
dependencies:
|
1285 |
+
browserslist "^4.17.1"
|
1286 |
+
semver "7.0.0"
|
1287 |
+
|
1288 |
+
core-js@^2.4.0:
|
1289 |
+
version "2.6.12"
|
1290 |
+
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec"
|
1291 |
+
integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
|
1292 |
+
|
1293 |
+
cross-env@^7.0.3:
|
1294 |
+
version "7.0.3"
|
1295 |
+
resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf"
|
1296 |
+
integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==
|
1297 |
+
dependencies:
|
1298 |
+
cross-spawn "^7.0.1"
|
1299 |
+
|
1300 |
+
cross-spawn@^7.0.1, cross-spawn@^7.0.3:
|
1301 |
+
version "7.0.3"
|
1302 |
+
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
|
1303 |
+
integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
|
1304 |
+
dependencies:
|
1305 |
+
path-key "^3.1.0"
|
1306 |
+
shebang-command "^2.0.0"
|
1307 |
+
which "^2.0.1"
|
1308 |
+
|
1309 |
+
debug@^4.1.0, debug@^4.1.1:
|
1310 |
+
version "4.3.2"
|
1311 |
+
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
|
1312 |
+
integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==
|
1313 |
+
dependencies:
|
1314 |
+
ms "2.1.2"
|
1315 |
+
|
1316 |
+
define-properties@^1.1.3:
|
1317 |
+
version "1.1.3"
|
1318 |
+
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
|
1319 |
+
integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
|
1320 |
+
dependencies:
|
1321 |
+
object-keys "^1.0.12"
|
1322 |
+
|
1323 |
+
electron-to-chromium@^1.3.846:
|
1324 |
+
version "1.3.853"
|
1325 |
+
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.853.tgz#f3ed1d31f092cb3a17af188bca6c6a3ec91c3e82"
|
1326 |
+
integrity sha512-W4U8n+U8I5/SUaFcqZgbKRmYZwcyEIQVBDf+j5QQK6xChjXnQD+wj248eGR9X4u+dDmDR//8vIfbu4PrdBBIoQ==
|
1327 |
+
|
1328 |
+
emojis-list@^3.0.0:
|
1329 |
+
version "3.0.0"
|
1330 |
+
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
|
1331 |
+
integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
|
1332 |
+
|
1333 |
+
enhanced-resolve@^5.8.3:
|
1334 |
+
version "5.8.3"
|
1335 |
+
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz#6d552d465cce0423f5b3d718511ea53826a7b2f0"
|
1336 |
+
integrity sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==
|
1337 |
+
dependencies:
|
1338 |
+
graceful-fs "^4.2.4"
|
1339 |
+
tapable "^2.2.0"
|
1340 |
+
|
1341 |
+
envinfo@^7.7.3:
|
1342 |
+
version "7.8.1"
|
1343 |
+
resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475"
|
1344 |
+
integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==
|
1345 |
+
|
1346 |
+
es-module-lexer@^0.9.0:
|
1347 |
+
version "0.9.1"
|
1348 |
+
resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.1.tgz#f203bf394a630a552d381acf01a17ef08843b140"
|
1349 |
+
integrity sha512-17Ed9misDnpyNBJh63g1OhW3qUFecDgGOivI85JeZY/LGhDum8e+cltukbkSK8pcJnXXEkya56sp4vSS1nzoUw==
|
1350 |
+
|
1351 |
+
escalade@^3.1.1:
|
1352 |
+
version "3.1.1"
|
1353 |
+
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
|
1354 |
+
integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
|
1355 |
+
|
1356 |
+
escape-string-regexp@^1.0.5:
|
1357 |
+
version "1.0.5"
|
1358 |
+
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
|
1359 |
+
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
|
1360 |
+
|
1361 |
+
eslint-scope@5.1.1:
|
1362 |
+
version "5.1.1"
|
1363 |
+
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
|
1364 |
+
integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
|
1365 |
+
dependencies:
|
1366 |
+
esrecurse "^4.3.0"
|
1367 |
+
estraverse "^4.1.1"
|
1368 |
+
|
1369 |
+
esrecurse@^4.3.0:
|
1370 |
+
version "4.3.0"
|
1371 |
+
resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
|
1372 |
+
integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
|
1373 |
+
dependencies:
|
1374 |
+
estraverse "^5.2.0"
|
1375 |
+
|
1376 |
+
estraverse@^4.1.1:
|
1377 |
+
version "4.3.0"
|
1378 |
+
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
|
1379 |
+
integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
|
1380 |
+
|
1381 |
+
estraverse@^5.2.0:
|
1382 |
+
version "5.2.0"
|
1383 |
+
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880"
|
1384 |
+
integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==
|
1385 |
+
|
1386 |
+
esutils@^2.0.2:
|
1387 |
+
version "2.0.3"
|
1388 |
+
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
|
1389 |
+
integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
|
1390 |
+
|
1391 |
+
events@^3.2.0:
|
1392 |
+
version "3.3.0"
|
1393 |
+
resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
|
1394 |
+
integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
|
1395 |
+
|
1396 |
+
execa@^5.0.0:
|
1397 |
+
version "5.1.1"
|
1398 |
+
resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
|
1399 |
+
integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
|
1400 |
+
dependencies:
|
1401 |
+
cross-spawn "^7.0.3"
|
1402 |
+
get-stream "^6.0.0"
|
1403 |
+
human-signals "^2.1.0"
|
1404 |
+
is-stream "^2.0.0"
|
1405 |
+
merge-stream "^2.0.0"
|
1406 |
+
npm-run-path "^4.0.1"
|
1407 |
+
onetime "^5.1.2"
|
1408 |
+
signal-exit "^3.0.3"
|
1409 |
+
strip-final-newline "^2.0.0"
|
1410 |
+
|
1411 |
+
fast-deep-equal@^3.1.1:
|
1412 |
+
version "3.1.3"
|
1413 |
+
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
|
1414 |
+
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
|
1415 |
+
|
1416 |
+
fast-json-stable-stringify@^2.0.0:
|
1417 |
+
version "2.1.0"
|
1418 |
+
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
|
1419 |
+
integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
|
1420 |
+
|
1421 |
+
fastest-levenshtein@^1.0.12:
|
1422 |
+
version "1.0.12"
|
1423 |
+
resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2"
|
1424 |
+
integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==
|
1425 |
+
|
1426 |
+
file-loader@^6.2.0:
|
1427 |
+
version "6.2.0"
|
1428 |
+
resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d"
|
1429 |
+
integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==
|
1430 |
+
dependencies:
|
1431 |
+
loader-utils "^2.0.0"
|
1432 |
+
schema-utils "^3.0.0"
|
1433 |
+
|
1434 |
+
fill-range@^7.0.1:
|
1435 |
+
version "7.0.1"
|
1436 |
+
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
|
1437 |
+
integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
|
1438 |
+
dependencies:
|
1439 |
+
to-regex-range "^5.0.1"
|
1440 |
+
|
1441 |
+
find-cache-dir@^3.3.1:
|
1442 |
+
version "3.3.2"
|
1443 |
+
resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b"
|
1444 |
+
integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==
|
1445 |
+
dependencies:
|
1446 |
+
commondir "^1.0.1"
|
1447 |
+
make-dir "^3.0.2"
|
1448 |
+
pkg-dir "^4.1.0"
|
1449 |
+
|
1450 |
+
find-up@^4.0.0:
|
1451 |
+
version "4.1.0"
|
1452 |
+
resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
|
1453 |
+
integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
|
1454 |
+
dependencies:
|
1455 |
+
locate-path "^5.0.0"
|
1456 |
+
path-exists "^4.0.0"
|
1457 |
+
|
1458 |
+
fsevents@~2.3.2:
|
1459 |
+
version "2.3.2"
|
1460 |
+
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
|
1461 |
+
integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
|
1462 |
+
|
1463 |
+
function-bind@^1.1.1:
|
1464 |
+
version "1.1.1"
|
1465 |
+
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
|
1466 |
+
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
|
1467 |
+
|
1468 |
+
gensync@^1.0.0-beta.2:
|
1469 |
+
version "1.0.0-beta.2"
|
1470 |
+
resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
|
1471 |
+
integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
|
1472 |
+
|
1473 |
+
get-intrinsic@^1.0.2:
|
1474 |
+
version "1.1.1"
|
1475 |
+
resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6"
|
1476 |
+
integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==
|
1477 |
+
dependencies:
|
1478 |
+
function-bind "^1.1.1"
|
1479 |
+
has "^1.0.3"
|
1480 |
+
has-symbols "^1.0.1"
|
1481 |
+
|
1482 |
+
get-stream@^6.0.0:
|
1483 |
+
version "6.0.1"
|
1484 |
+
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
|
1485 |
+
integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
|
1486 |
+
|
1487 |
+
glob-parent@~5.1.2:
|
1488 |
+
version "5.1.2"
|
1489 |
+
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
|
1490 |
+
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
|
1491 |
+
dependencies:
|
1492 |
+
is-glob "^4.0.1"
|
1493 |
+
|
1494 |
+
glob-to-regexp@^0.4.1:
|
1495 |
+
version "0.4.1"
|
1496 |
+
resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
|
1497 |
+
integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
|
1498 |
+
|
1499 |
+
globals@^11.1.0:
|
1500 |
+
version "11.12.0"
|
1501 |
+
resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
|
1502 |
+
integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
|
1503 |
+
|
1504 |
+
graceful-fs@^4.1.2, graceful-fs@^4.2.4:
|
1505 |
+
version "4.2.8"
|
1506 |
+
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a"
|
1507 |
+
integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==
|
1508 |
+
|
1509 |
+
has-flag@^3.0.0:
|
1510 |
+
version "3.0.0"
|
1511 |
+
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
|
1512 |
+
integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
|
1513 |
+
|
1514 |
+
has-flag@^4.0.0:
|
1515 |
+
version "4.0.0"
|
1516 |
+
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
|
1517 |
+
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
|
1518 |
+
|
1519 |
+
has-symbols@^1.0.1:
|
1520 |
+
version "1.0.2"
|
1521 |
+
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423"
|
1522 |
+
integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==
|
1523 |
+
|
1524 |
+
has@^1.0.3:
|
1525 |
+
version "1.0.3"
|
1526 |
+
resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
|
1527 |
+
integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
|
1528 |
+
dependencies:
|
1529 |
+
function-bind "^1.1.1"
|
1530 |
+
|
1531 |
+
human-signals@^2.1.0:
|
1532 |
+
version "2.1.0"
|
1533 |
+
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
|
1534 |
+
integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
|
1535 |
+
|
1536 |
+
import-local@^3.0.2:
|
1537 |
+
version "3.0.2"
|
1538 |
+
resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6"
|
1539 |
+
integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==
|
1540 |
+
dependencies:
|
1541 |
+
pkg-dir "^4.2.0"
|
1542 |
+
resolve-cwd "^3.0.0"
|
1543 |
+
|
1544 |
+
interpret@^2.2.0:
|
1545 |
+
version "2.2.0"
|
1546 |
+
resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9"
|
1547 |
+
integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==
|
1548 |
+
|
1549 |
+
is-binary-path@~2.1.0:
|
1550 |
+
version "2.1.0"
|
1551 |
+
resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
|
1552 |
+
integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
|
1553 |
+
dependencies:
|
1554 |
+
binary-extensions "^2.0.0"
|
1555 |
+
|
1556 |
+
is-core-module@^2.2.0:
|
1557 |
+
version "2.7.0"
|
1558 |
+
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.7.0.tgz#3c0ef7d31b4acfc574f80c58409d568a836848e3"
|
1559 |
+
integrity sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==
|
1560 |
+
dependencies:
|
1561 |
+
has "^1.0.3"
|
1562 |
+
|
1563 |
+
is-extglob@^2.1.1:
|
1564 |
+
version "2.1.1"
|
1565 |
+
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
|
1566 |
+
integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
|
1567 |
+
|
1568 |
+
is-glob@^4.0.1, is-glob@~4.0.1:
|
1569 |
+
version "4.0.2"
|
1570 |
+
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.2.tgz#859fc2e731e58c902f99fcabccb75a7dd07d29d8"
|
1571 |
+
integrity sha512-ZZTOjRcDjuAAAv2cTBQP/lL59ZTArx77+7UzHdWW/XB1mrfp7DEaVpKmZ0XIzx+M7AxfhKcqV+nMetUQmFifwg==
|
1572 |
+
dependencies:
|
1573 |
+
is-extglob "^2.1.1"
|
1574 |
+
|
1575 |
+
is-number@^7.0.0:
|
1576 |
+
version "7.0.0"
|
1577 |
+
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
|
1578 |
+
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
|
1579 |
+
|
1580 |
+
is-plain-object@^2.0.4:
|
1581 |
+
version "2.0.4"
|
1582 |
+
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
|
1583 |
+
integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
|
1584 |
+
dependencies:
|
1585 |
+
isobject "^3.0.1"
|
1586 |
+
|
1587 |
+
is-stream@^2.0.0:
|
1588 |
+
version "2.0.1"
|
1589 |
+
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
|
1590 |
+
integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
|
1591 |
+
|
1592 |
+
isexe@^2.0.0:
|
1593 |
+
version "2.0.0"
|
1594 |
+
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
|
1595 |
+
integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
|
1596 |
+
|
1597 |
+
isobject@^3.0.1:
|
1598 |
+
version "3.0.1"
|
1599 |
+
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
|
1600 |
+
integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
|
1601 |
+
|
1602 |
+
jest-worker@^27.0.6:
|
1603 |
+
version "27.2.3"
|
1604 |
+
resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.2.3.tgz#396e83d04ca575230a9bcb255c2b66aec07cb931"
|
1605 |
+
integrity sha512-ZwOvv4GCIPviL+Ie4pVguz4N5w/6IGbTaHBYOl3ZcsZZktaL7d8JOU0rmovoED7AJZKA8fvmLbBg8yg80u/tGA==
|
1606 |
+
dependencies:
|
1607 |
+
"@types/node" "*"
|
1608 |
+
merge-stream "^2.0.0"
|
1609 |
+
supports-color "^8.0.0"
|
1610 |
+
|
1611 |
+
js-tokens@^4.0.0:
|
1612 |
+
version "4.0.0"
|
1613 |
+
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
|
1614 |
+
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
|
1615 |
+
|
1616 |
+
jsesc@^2.5.1:
|
1617 |
+
version "2.5.2"
|
1618 |
+
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
|
1619 |
+
integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
|
1620 |
+
|
1621 |
+
jsesc@~0.5.0:
|
1622 |
+
version "0.5.0"
|
1623 |
+
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
|
1624 |
+
integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=
|
1625 |
+
|
1626 |
+
json-parse-better-errors@^1.0.2:
|
1627 |
+
version "1.0.2"
|
1628 |
+
resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
|
1629 |
+
integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
|
1630 |
+
|
1631 |
+
json-schema-traverse@^0.4.1:
|
1632 |
+
version "0.4.1"
|
1633 |
+
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
|
1634 |
+
integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
|
1635 |
+
|
1636 |
+
json5@^1.0.1:
|
1637 |
+
version "1.0.1"
|
1638 |
+
resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe"
|
1639 |
+
integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==
|
1640 |
+
dependencies:
|
1641 |
+
minimist "^1.2.0"
|
1642 |
+
|
1643 |
+
json5@^2.1.2:
|
1644 |
+
version "2.2.0"
|
1645 |
+
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3"
|
1646 |
+
integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==
|
1647 |
+
dependencies:
|
1648 |
+
minimist "^1.2.5"
|
1649 |
+
|
1650 |
+
kind-of@^6.0.2:
|
1651 |
+
version "6.0.3"
|
1652 |
+
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
|
1653 |
+
integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
|
1654 |
+
|
1655 |
+
klona@^2.0.4:
|
1656 |
+
version "2.0.4"
|
1657 |
+
resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0"
|
1658 |
+
integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==
|
1659 |
+
|
1660 |
+
loader-runner@^4.2.0:
|
1661 |
+
version "4.2.0"
|
1662 |
+
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384"
|
1663 |
+
integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==
|
1664 |
+
|
1665 |
+
loader-utils@^1.4.0:
|
1666 |
+
version "1.4.0"
|
1667 |
+
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613"
|
1668 |
+
integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==
|
1669 |
+
dependencies:
|
1670 |
+
big.js "^5.2.2"
|
1671 |
+
emojis-list "^3.0.0"
|
1672 |
+
json5 "^1.0.1"
|
1673 |
+
|
1674 |
+
loader-utils@^2.0.0:
|
1675 |
+
version "2.0.0"
|
1676 |
+
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0"
|
1677 |
+
integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==
|
1678 |
+
dependencies:
|
1679 |
+
big.js "^5.2.2"
|
1680 |
+
emojis-list "^3.0.0"
|
1681 |
+
json5 "^2.1.2"
|
1682 |
+
|
1683 |
+
locate-path@^5.0.0:
|
1684 |
+
version "5.0.0"
|
1685 |
+
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
|
1686 |
+
integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
|
1687 |
+
dependencies:
|
1688 |
+
p-locate "^4.1.0"
|
1689 |
+
|
1690 |
+
lodash.debounce@^4.0.8:
|
1691 |
+
version "4.0.8"
|
1692 |
+
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
|
1693 |
+
integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168=
|
1694 |
+
|
1695 |
+
make-dir@^3.0.2, make-dir@^3.1.0:
|
1696 |
+
version "3.1.0"
|
1697 |
+
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
|
1698 |
+
integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
|
1699 |
+
dependencies:
|
1700 |
+
semver "^6.0.0"
|
1701 |
+
|
1702 |
+
merge-stream@^2.0.0:
|
1703 |
+
version "2.0.0"
|
1704 |
+
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
|
1705 |
+
integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
|
1706 |
+
|
1707 |
+
mime-db@1.49.0:
|
1708 |
+
version "1.49.0"
|
1709 |
+
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.49.0.tgz#f3dfde60c99e9cf3bc9701d687778f537001cbed"
|
1710 |
+
integrity sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==
|
1711 |
+
|
1712 |
+
mime-types@^2.1.27:
|
1713 |
+
version "2.1.32"
|
1714 |
+
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.32.tgz#1d00e89e7de7fe02008db61001d9e02852670fd5"
|
1715 |
+
integrity sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==
|
1716 |
+
dependencies:
|
1717 |
+
mime-db "1.49.0"
|
1718 |
+
|
1719 |
+
mimic-fn@^2.1.0:
|
1720 |
+
version "2.1.0"
|
1721 |
+
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
|
1722 |
+
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
|
1723 |
+
|
1724 |
+
minimist@^1.2.0, minimist@^1.2.5:
|
1725 |
+
version "1.2.5"
|
1726 |
+
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
|
1727 |
+
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
|
1728 |
+
|
1729 |
+
ms@2.1.2:
|
1730 |
+
version "2.1.2"
|
1731 |
+
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
|
1732 |
+
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
|
1733 |
+
|
1734 |
+
nanocolors@^0.1.5:
|
1735 |
+
version "0.1.12"
|
1736 |
+
resolved "https://registry.yarnpkg.com/nanocolors/-/nanocolors-0.1.12.tgz#8577482c58cbd7b5bb1681db4cf48f11a87fd5f6"
|
1737 |
+
integrity sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ==
|
1738 |
+
|
1739 |
+
neo-async@^2.6.2:
|
1740 |
+
version "2.6.2"
|
1741 |
+
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
|
1742 |
+
integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
|
1743 |
+
|
1744 |
+
node-releases@^1.1.76:
|
1745 |
+
version "1.1.76"
|
1746 |
+
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.76.tgz#df245b062b0cafbd5282ab6792f7dccc2d97f36e"
|
1747 |
+
integrity sha512-9/IECtNr8dXNmPWmFXepT0/7o5eolGesHUa3mtr0KlgnCvnZxwh2qensKL42JJY2vQKC3nIBXetFAqR+PW1CmA==
|
1748 |
+
|
1749 |
+
normalize-path@^3.0.0, normalize-path@~3.0.0:
|
1750 |
+
version "3.0.0"
|
1751 |
+
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
|
1752 |
+
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
|
1753 |
+
|
1754 |
+
npm-run-path@^4.0.1:
|
1755 |
+
version "4.0.1"
|
1756 |
+
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
|
1757 |
+
integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
|
1758 |
+
dependencies:
|
1759 |
+
path-key "^3.0.0"
|
1760 |
+
|
1761 |
+
object-keys@^1.0.12, object-keys@^1.1.1:
|
1762 |
+
version "1.1.1"
|
1763 |
+
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
|
1764 |
+
integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
|
1765 |
+
|
1766 |
+
object.assign@^4.1.0:
|
1767 |
+
version "4.1.2"
|
1768 |
+
resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940"
|
1769 |
+
integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==
|
1770 |
+
dependencies:
|
1771 |
+
call-bind "^1.0.0"
|
1772 |
+
define-properties "^1.1.3"
|
1773 |
+
has-symbols "^1.0.1"
|
1774 |
+
object-keys "^1.1.1"
|
1775 |
+
|
1776 |
+
onetime@^5.1.2:
|
1777 |
+
version "5.1.2"
|
1778 |
+
resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
|
1779 |
+
integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
|
1780 |
+
dependencies:
|
1781 |
+
mimic-fn "^2.1.0"
|
1782 |
+
|
1783 |
+
p-limit@^2.2.0:
|
1784 |
+
version "2.3.0"
|
1785 |
+
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
|
1786 |
+
integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
|
1787 |
+
dependencies:
|
1788 |
+
p-try "^2.0.0"
|
1789 |
+
|
1790 |
+
p-limit@^3.1.0:
|
1791 |
+
version "3.1.0"
|
1792 |
+
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
|
1793 |
+
integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
|
1794 |
+
dependencies:
|
1795 |
+
yocto-queue "^0.1.0"
|
1796 |
+
|
1797 |
+
p-locate@^4.1.0:
|
1798 |
+
version "4.1.0"
|
1799 |
+
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
|
1800 |
+
integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
|
1801 |
+
dependencies:
|
1802 |
+
p-limit "^2.2.0"
|
1803 |
+
|
1804 |
+
p-try@^2.0.0:
|
1805 |
+
version "2.2.0"
|
1806 |
+
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
|
1807 |
+
integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
|
1808 |
+
|
1809 |
+
path-exists@^4.0.0:
|
1810 |
+
version "4.0.0"
|
1811 |
+
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
|
1812 |
+
integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
|
1813 |
+
|
1814 |
+
path-key@^3.0.0, path-key@^3.1.0:
|
1815 |
+
version "3.1.1"
|
1816 |
+
resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
|
1817 |
+
integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
|
1818 |
+
|
1819 |
+
path-parse@^1.0.6:
|
1820 |
+
version "1.0.7"
|
1821 |
+
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
|
1822 |
+
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
|
1823 |
+
|
1824 |
+
picomatch@^2.0.4, picomatch@^2.2.1:
|
1825 |
+
version "2.3.0"
|
1826 |
+
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972"
|
1827 |
+
integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==
|
1828 |
+
|
1829 |
+
pkg-dir@^4.1.0, pkg-dir@^4.2.0:
|
1830 |
+
version "4.2.0"
|
1831 |
+
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
|
1832 |
+
integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
|
1833 |
+
dependencies:
|
1834 |
+
find-up "^4.0.0"
|
1835 |
+
|
1836 |
+
punycode@^2.1.0:
|
1837 |
+
version "2.1.1"
|
1838 |
+
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
|
1839 |
+
integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
|
1840 |
+
|
1841 |
+
randombytes@^2.1.0:
|
1842 |
+
version "2.1.0"
|
1843 |
+
resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
|
1844 |
+
integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
|
1845 |
+
dependencies:
|
1846 |
+
safe-buffer "^5.1.0"
|
1847 |
+
|
1848 |
+
readdirp@~3.6.0:
|
1849 |
+
version "3.6.0"
|
1850 |
+
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
|
1851 |
+
integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
|
1852 |
+
dependencies:
|
1853 |
+
picomatch "^2.2.1"
|
1854 |
+
|
1855 |
+
rechoir@^0.7.0:
|
1856 |
+
version "0.7.1"
|
1857 |
+
resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.1.tgz#9478a96a1ca135b5e88fc027f03ee92d6c645686"
|
1858 |
+
integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==
|
1859 |
+
dependencies:
|
1860 |
+
resolve "^1.9.0"
|
1861 |
+
|
1862 |
+
regenerate-unicode-properties@^9.0.0:
|
1863 |
+
version "9.0.0"
|
1864 |
+
resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz#54d09c7115e1f53dc2314a974b32c1c344efe326"
|
1865 |
+
integrity sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA==
|
1866 |
+
dependencies:
|
1867 |
+
regenerate "^1.4.2"
|
1868 |
+
|
1869 |
+
regenerate@^1.4.2:
|
1870 |
+
version "1.4.2"
|
1871 |
+
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
|
1872 |
+
integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
|
1873 |
+
|
1874 |
+
regenerator-runtime@^0.11.0:
|
1875 |
+
version "0.11.1"
|
1876 |
+
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
|
1877 |
+
integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==
|
1878 |
+
|
1879 |
+
regenerator-runtime@^0.13.4:
|
1880 |
+
version "0.13.9"
|
1881 |
+
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52"
|
1882 |
+
integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==
|
1883 |
+
|
1884 |
+
regenerator-transform@^0.14.2:
|
1885 |
+
version "0.14.5"
|
1886 |
+
resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4"
|
1887 |
+
integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==
|
1888 |
+
dependencies:
|
1889 |
+
"@babel/runtime" "^7.8.4"
|
1890 |
+
|
1891 |
+
regexpu-core@^4.7.1:
|
1892 |
+
version "4.8.0"
|
1893 |
+
resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.8.0.tgz#e5605ba361b67b1718478501327502f4479a98f0"
|
1894 |
+
integrity sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg==
|
1895 |
+
dependencies:
|
1896 |
+
regenerate "^1.4.2"
|
1897 |
+
regenerate-unicode-properties "^9.0.0"
|
1898 |
+
regjsgen "^0.5.2"
|
1899 |
+
regjsparser "^0.7.0"
|
1900 |
+
unicode-match-property-ecmascript "^2.0.0"
|
1901 |
+
unicode-match-property-value-ecmascript "^2.0.0"
|
1902 |
+
|
1903 |
+
regjsgen@^0.5.2:
|
1904 |
+
version "0.5.2"
|
1905 |
+
resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733"
|
1906 |
+
integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==
|
1907 |
+
|
1908 |
+
regjsparser@^0.7.0:
|
1909 |
+
version "0.7.0"
|
1910 |
+
resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.7.0.tgz#a6b667b54c885e18b52554cb4960ef71187e9968"
|
1911 |
+
integrity sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ==
|
1912 |
+
dependencies:
|
1913 |
+
jsesc "~0.5.0"
|
1914 |
+
|
1915 |
+
resolve-cwd@^3.0.0:
|
1916 |
+
version "3.0.0"
|
1917 |
+
resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d"
|
1918 |
+
integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==
|
1919 |
+
dependencies:
|
1920 |
+
resolve-from "^5.0.0"
|
1921 |
+
|
1922 |
+
resolve-from@^5.0.0:
|
1923 |
+
version "5.0.0"
|
1924 |
+
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
|
1925 |
+
integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
|
1926 |
+
|
1927 |
+
resolve@^1.14.2, resolve@^1.9.0:
|
1928 |
+
version "1.20.0"
|
1929 |
+
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
|
1930 |
+
integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==
|
1931 |
+
dependencies:
|
1932 |
+
is-core-module "^2.2.0"
|
1933 |
+
path-parse "^1.0.6"
|
1934 |
+
|
1935 |
+
safe-buffer@^5.1.0:
|
1936 |
+
version "5.2.1"
|
1937 |
+
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
|
1938 |
+
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
|
1939 |
+
|
1940 |
+
safe-buffer@~5.1.1:
|
1941 |
+
version "5.1.2"
|
1942 |
+
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
|
1943 |
+
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
|
1944 |
+
|
1945 |
+
sass-loader@^12.1.0:
|
1946 |
+
version "12.1.0"
|
1947 |
+
resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-12.1.0.tgz#b73324622231009da6fba61ab76013256380d201"
|
1948 |
+
integrity sha512-FVJZ9kxVRYNZTIe2xhw93n3xJNYZADr+q69/s98l9nTCrWASo+DR2Ot0s5xTKQDDEosUkatsGeHxcH4QBp5bSg==
|
1949 |
+
dependencies:
|
1950 |
+
klona "^2.0.4"
|
1951 |
+
neo-async "^2.6.2"
|
1952 |
+
|
1953 |
+
sass@^1.42.1:
|
1954 |
+
version "1.42.1"
|
1955 |
+
resolved "https://registry.yarnpkg.com/sass/-/sass-1.42.1.tgz#5ab17bebc1cb1881ad2e0c9a932c66ad64e441e2"
|
1956 |
+
integrity sha512-/zvGoN8B7dspKc5mC6HlaygyCBRvnyzzgD5khiaCfglWztY99cYoiTUksVx11NlnemrcfH5CEaCpsUKoW0cQqg==
|
1957 |
+
dependencies:
|
1958 |
+
chokidar ">=3.0.0 <4.0.0"
|
1959 |
+
|
1960 |
+
schema-utils@^2.6.5:
|
1961 |
+
version "2.7.1"
|
1962 |
+
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7"
|
1963 |
+
integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==
|
1964 |
+
dependencies:
|
1965 |
+
"@types/json-schema" "^7.0.5"
|
1966 |
+
ajv "^6.12.4"
|
1967 |
+
ajv-keywords "^3.5.2"
|
1968 |
+
|
1969 |
+
schema-utils@^3.0.0, schema-utils@^3.1.0, schema-utils@^3.1.1:
|
1970 |
+
version "3.1.1"
|
1971 |
+
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281"
|
1972 |
+
integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==
|
1973 |
+
dependencies:
|
1974 |
+
"@types/json-schema" "^7.0.8"
|
1975 |
+
ajv "^6.12.5"
|
1976 |
+
ajv-keywords "^3.5.2"
|
1977 |
+
|
1978 |
+
semver@7.0.0:
|
1979 |
+
version "7.0.0"
|
1980 |
+
resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
|
1981 |
+
integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
|
1982 |
+
|
1983 |
+
semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0:
|
1984 |
+
version "6.3.0"
|
1985 |
+
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
|
1986 |
+
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
|
1987 |
+
|
1988 |
+
serialize-javascript@^6.0.0:
|
1989 |
+
version "6.0.0"
|
1990 |
+
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8"
|
1991 |
+
integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==
|
1992 |
+
dependencies:
|
1993 |
+
randombytes "^2.1.0"
|
1994 |
+
|
1995 |
+
shallow-clone@^3.0.0:
|
1996 |
+
version "3.0.1"
|
1997 |
+
resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3"
|
1998 |
+
integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==
|
1999 |
+
dependencies:
|
2000 |
+
kind-of "^6.0.2"
|
2001 |
+
|
2002 |
+
shebang-command@^2.0.0:
|
2003 |
+
version "2.0.0"
|
2004 |
+
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
|
2005 |
+
integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
|
2006 |
+
dependencies:
|
2007 |
+
shebang-regex "^3.0.0"
|
2008 |
+
|
2009 |
+
shebang-regex@^3.0.0:
|
2010 |
+
version "3.0.0"
|
2011 |
+
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
|
2012 |
+
integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
|
2013 |
+
|
2014 |
+
signal-exit@^3.0.3:
|
2015 |
+
version "3.0.4"
|
2016 |
+
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.4.tgz#366a4684d175b9cab2081e3681fda3747b6c51d7"
|
2017 |
+
integrity sha512-rqYhcAnZ6d/vTPGghdrw7iumdcbXpsk1b8IG/rz+VWV51DM0p7XCtMoJ3qhPLIbp3tvyt3pKRbaaEMZYpHto8Q==
|
2018 |
+
|
2019 |
+
source-map-support@~0.5.20:
|
2020 |
+
version "0.5.20"
|
2021 |
+
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.20.tgz#12166089f8f5e5e8c56926b377633392dd2cb6c9"
|
2022 |
+
integrity sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==
|
2023 |
+
dependencies:
|
2024 |
+
buffer-from "^1.0.0"
|
2025 |
+
source-map "^0.6.0"
|
2026 |
+
|
2027 |
+
source-map@^0.5.0:
|
2028 |
+
version "0.5.7"
|
2029 |
+
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
|
2030 |
+
integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
|
2031 |
+
|
2032 |
+
source-map@^0.6.0, source-map@^0.6.1:
|
2033 |
+
version "0.6.1"
|
2034 |
+
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
|
2035 |
+
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
|
2036 |
+
|
2037 |
+
source-map@~0.7.2:
|
2038 |
+
version "0.7.3"
|
2039 |
+
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
|
2040 |
+
integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
|
2041 |
+
|
2042 |
+
strip-final-newline@^2.0.0:
|
2043 |
+
version "2.0.0"
|
2044 |
+
resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
|
2045 |
+
integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
|
2046 |
+
|
2047 |
+
supports-color@^5.3.0:
|
2048 |
+
version "5.5.0"
|
2049 |
+
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
|
2050 |
+
integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
|
2051 |
+
dependencies:
|
2052 |
+
has-flag "^3.0.0"
|
2053 |
+
|
2054 |
+
supports-color@^8.0.0:
|
2055 |
+
version "8.1.1"
|
2056 |
+
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
|
2057 |
+
integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
|
2058 |
+
dependencies:
|
2059 |
+
has-flag "^4.0.0"
|
2060 |
+
|
2061 |
+
tapable@^2.1.1, tapable@^2.2.0:
|
2062 |
+
version "2.2.1"
|
2063 |
+
resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0"
|
2064 |
+
integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==
|
2065 |
+
|
2066 |
+
terser-webpack-plugin@^5.1.3:
|
2067 |
+
version "5.2.4"
|
2068 |
+
resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.2.4.tgz#ad1be7639b1cbe3ea49fab995cbe7224b31747a1"
|
2069 |
+
integrity sha512-E2CkNMN+1cho04YpdANyRrn8CyN4yMy+WdFKZIySFZrGXZxJwJP6PMNGGc/Mcr6qygQHUUqRxnAPmi0M9f00XA==
|
2070 |
+
dependencies:
|
2071 |
+
jest-worker "^27.0.6"
|
2072 |
+
p-limit "^3.1.0"
|
2073 |
+
schema-utils "^3.1.1"
|
2074 |
+
serialize-javascript "^6.0.0"
|
2075 |
+
source-map "^0.6.1"
|
2076 |
+
terser "^5.7.2"
|
2077 |
+
|
2078 |
+
terser@^5.7.2:
|
2079 |
+
version "5.9.0"
|
2080 |
+
resolved "https://registry.yarnpkg.com/terser/-/terser-5.9.0.tgz#47d6e629a522963240f2b55fcaa3c99083d2c351"
|
2081 |
+
integrity sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ==
|
2082 |
+
dependencies:
|
2083 |
+
commander "^2.20.0"
|
2084 |
+
source-map "~0.7.2"
|
2085 |
+
source-map-support "~0.5.20"
|
2086 |
+
|
2087 |
+
to-fast-properties@^2.0.0:
|
2088 |
+
version "2.0.0"
|
2089 |
+
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
|
2090 |
+
integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
|
2091 |
+
|
2092 |
+
to-regex-range@^5.0.1:
|
2093 |
+
version "5.0.1"
|
2094 |
+
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
|
2095 |
+
integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
|
2096 |
+
dependencies:
|
2097 |
+
is-number "^7.0.0"
|
2098 |
+
|
2099 |
+
unicode-canonical-property-names-ecmascript@^2.0.0:
|
2100 |
+
version "2.0.0"
|
2101 |
+
resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc"
|
2102 |
+
integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==
|
2103 |
+
|
2104 |
+
unicode-match-property-ecmascript@^2.0.0:
|
2105 |
+
version "2.0.0"
|
2106 |
+
resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3"
|
2107 |
+
integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==
|
2108 |
+
dependencies:
|
2109 |
+
unicode-canonical-property-names-ecmascript "^2.0.0"
|
2110 |
+
unicode-property-aliases-ecmascript "^2.0.0"
|
2111 |
+
|
2112 |
+
unicode-match-property-value-ecmascript@^2.0.0:
|
2113 |
+
version "2.0.0"
|
2114 |
+
resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714"
|
2115 |
+
integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==
|
2116 |
+
|
2117 |
+
unicode-property-aliases-ecmascript@^2.0.0:
|
2118 |
+
version "2.0.0"
|
2119 |
+
resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8"
|
2120 |
+
integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==
|
2121 |
+
|
2122 |
+
uri-js@^4.2.2:
|
2123 |
+
version "4.4.1"
|
2124 |
+
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
|
2125 |
+
integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
|
2126 |
+
dependencies:
|
2127 |
+
punycode "^2.1.0"
|
2128 |
+
|
2129 |
+
v8-compile-cache@^2.2.0:
|
2130 |
+
version "2.3.0"
|
2131 |
+
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
|
2132 |
+
integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
|
2133 |
+
|
2134 |
+
watchpack@^2.2.0:
|
2135 |
+
version "2.2.0"
|
2136 |
+
resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.2.0.tgz#47d78f5415fe550ecd740f99fe2882323a58b1ce"
|
2137 |
+
integrity sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA==
|
2138 |
+
dependencies:
|
2139 |
+
glob-to-regexp "^0.4.1"
|
2140 |
+
graceful-fs "^4.1.2"
|
2141 |
+
|
2142 |
+
webpack-cli@^4.8.0:
|
2143 |
+
version "4.8.0"
|
2144 |
+
resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.8.0.tgz#5fc3c8b9401d3c8a43e2afceacfa8261962338d1"
|
2145 |
+
integrity sha512-+iBSWsX16uVna5aAYN6/wjhJy1q/GKk4KjKvfg90/6hykCTSgozbfz5iRgDTSJt/LgSbYxdBX3KBHeobIs+ZEw==
|
2146 |
+
dependencies:
|
2147 |
+
"@discoveryjs/json-ext" "^0.5.0"
|
2148 |
+
"@webpack-cli/configtest" "^1.0.4"
|
2149 |
+
"@webpack-cli/info" "^1.3.0"
|
2150 |
+
"@webpack-cli/serve" "^1.5.2"
|
2151 |
+
colorette "^1.2.1"
|
2152 |
+
commander "^7.0.0"
|
2153 |
+
execa "^5.0.0"
|
2154 |
+
fastest-levenshtein "^1.0.12"
|
2155 |
+
import-local "^3.0.2"
|
2156 |
+
interpret "^2.2.0"
|
2157 |
+
rechoir "^0.7.0"
|
2158 |
+
v8-compile-cache "^2.2.0"
|
2159 |
+
webpack-merge "^5.7.3"
|
2160 |
+
|
2161 |
+
webpack-merge@^5.7.3:
|
2162 |
+
version "5.8.0"
|
2163 |
+
resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.8.0.tgz#2b39dbf22af87776ad744c390223731d30a68f61"
|
2164 |
+
integrity sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==
|
2165 |
+
dependencies:
|
2166 |
+
clone-deep "^4.0.1"
|
2167 |
+
wildcard "^2.0.0"
|
2168 |
+
|
2169 |
+
webpack-sources@^3.2.0:
|
2170 |
+
version "3.2.1"
|
2171 |
+
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.1.tgz#251a7d9720d75ada1469ca07dbb62f3641a05b6d"
|
2172 |
+
integrity sha512-t6BMVLQ0AkjBOoRTZgqrWm7xbXMBzD+XDq2EZ96+vMfn3qKgsvdXZhbPZ4ElUOpdv4u+iiGe+w3+J75iy/bYGA==
|
2173 |
+
|
2174 |
+
webpack@^5.55.1:
|
2175 |
+
version "5.55.1"
|
2176 |
+
resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.55.1.tgz#426ebe54c15fa57f7b242590f65fd182382b5998"
|
2177 |
+
integrity sha512-EYp9lwaOOAs+AA/KviNZ7bQiITHm4bXQvyTPewD2+f5YGjv6sfiClm40yeX5FgBMxh5bxcB6LryiFoP09B97Ug==
|
2178 |
+
dependencies:
|
2179 |
+
"@types/eslint-scope" "^3.7.0"
|
2180 |
+
"@types/estree" "^0.0.50"
|
2181 |
+
"@webassemblyjs/ast" "1.11.1"
|
2182 |
+
"@webassemblyjs/wasm-edit" "1.11.1"
|
2183 |
+
"@webassemblyjs/wasm-parser" "1.11.1"
|
2184 |
+
acorn "^8.4.1"
|
2185 |
+
acorn-import-assertions "^1.7.6"
|
2186 |
+
browserslist "^4.14.5"
|
2187 |
+
chrome-trace-event "^1.0.2"
|
2188 |
+
enhanced-resolve "^5.8.3"
|
2189 |
+
es-module-lexer "^0.9.0"
|
2190 |
+
eslint-scope "5.1.1"
|
2191 |
+
events "^3.2.0"
|
2192 |
+
glob-to-regexp "^0.4.1"
|
2193 |
+
graceful-fs "^4.2.4"
|
2194 |
+
json-parse-better-errors "^1.0.2"
|
2195 |
+
loader-runner "^4.2.0"
|
2196 |
+
mime-types "^2.1.27"
|
2197 |
+
neo-async "^2.6.2"
|
2198 |
+
schema-utils "^3.1.0"
|
2199 |
+
tapable "^2.1.1"
|
2200 |
+
terser-webpack-plugin "^5.1.3"
|
2201 |
+
watchpack "^2.2.0"
|
2202 |
+
webpack-sources "^3.2.0"
|
2203 |
+
|
2204 |
+
which@^2.0.1:
|
2205 |
+
version "2.0.2"
|
2206 |
+
resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
|
2207 |
+
integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
|
2208 |
+
dependencies:
|
2209 |
+
isexe "^2.0.0"
|
2210 |
+
|
2211 |
+
wildcard@^2.0.0:
|
2212 |
+
version "2.0.0"
|
2213 |
+
resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec"
|
2214 |
+
integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==
|
2215 |
+
|
2216 |
+
yocto-queue@^0.1.0:
|
2217 |
+
version "0.1.0"
|
2218 |
+
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
|
2219 |
+
integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
|
modules/ppcp-wc-gateway/assets/js/gateway-settings.js
CHANGED
@@ -1,2 +1 @@
|
|
1 |
-
|
2 |
-
//# sourceMappingURL=gateway-settings.js.map
|
1 |
+
(()=>{var __webpack_modules__={795:()=>{eval(";\ndocument.addEventListener('DOMContentLoaded', () => {\n const payLaterMessagingCheckboxes = document.querySelectorAll(\"#ppcp-message_enabled, #ppcp-message_cart_enabled, #ppcp-message_product_enabled\");\n const vaultingCheckboxes = document.querySelectorAll(\"#ppcp-vault_enabled\");\n\n function atLeastOneChecked(checkboxesNodeList) {\n return Array.prototype.slice.call(checkboxesNodeList).filter(node => !node.disabled && node.checked).length > 0;\n }\n\n function disableAll(nodeList) {\n nodeList.forEach(node => node.setAttribute('disabled', 'true'));\n }\n\n function enableAll(nodeList) {\n nodeList.forEach(node => node.removeAttribute('disabled'));\n }\n\n function updateCheckboxes() {\n atLeastOneChecked(payLaterMessagingCheckboxes) ? disableAll(vaultingCheckboxes) : enableAll(vaultingCheckboxes);\n atLeastOneChecked(vaultingCheckboxes) ? disableAll(payLaterMessagingCheckboxes) : enableAll(payLaterMessagingCheckboxes);\n\n if (typeof PayPalCommerceGatewaySettings === 'undefined' || PayPalCommerceGatewaySettings.vaulting_features_available !== '1') {\n disableAll(vaultingCheckboxes);\n }\n }\n\n updateCheckboxes();\n payLaterMessagingCheckboxes.forEach(node => node.addEventListener('change', updateCheckboxes));\n vaultingCheckboxes.forEach(node => node.addEventListener('change', updateCheckboxes));\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9wcGNwLXdjLWdhdGV3YXkvLi9yZXNvdXJjZXMvanMvZ2F0ZXdheS1zZXR0aW5ncy5qcz8xODEzIl0sIm5hbWVzIjpbImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInBheUxhdGVyTWVzc2FnaW5nQ2hlY2tib3hlcyIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJ2YXVsdGluZ0NoZWNrYm94ZXMiLCJhdExlYXN0T25lQ2hlY2tlZCIsImNoZWNrYm94ZXNOb2RlTGlzdCIsIkFycmF5IiwicHJvdG90eXBlIiwic2xpY2UiLCJjYWxsIiwiZmlsdGVyIiwibm9kZSIsImRpc2FibGVkIiwiY2hlY2tlZCIsImxlbmd0aCIsImRpc2FibGVBbGwiLCJub2RlTGlzdCIsImZvckVhY2giLCJzZXRBdHRyaWJ1dGUiLCJlbmFibGVBbGwiLCJyZW1vdmVBdHRyaWJ1dGUiLCJ1cGRhdGVDaGVja2JveGVzIiwiUGF5UGFsQ29tbWVyY2VHYXRld2F5U2V0dGluZ3MiLCJ2YXVsdGluZ19mZWF0dXJlc19hdmFpbGFibGUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUNBLFFBQVEsQ0FBQ0MsZ0JBQVQsQ0FDRyxrQkFESCxFQUVHLE1BQU07QUFDRixRQUFNQywyQkFBMkIsR0FBR0YsUUFBUSxDQUFDRyxnQkFBVCxDQUNoQyxrRkFEZ0MsQ0FBcEM7QUFJQSxRQUFNQyxrQkFBa0IsR0FBR0osUUFBUSxDQUFDRyxnQkFBVCxDQUN2QixxQkFEdUIsQ0FBM0I7O0FBSUEsV0FBU0UsaUJBQVQsQ0FBMkJDLGtCQUEzQixFQUErQztBQUMzQyxXQUFPQyxLQUFLLENBQUNDLFNBQU4sQ0FBZ0JDLEtBQWhCLENBQXNCQyxJQUF0QixDQUEyQkosa0JBQTNCLEVBQStDSyxNQUEvQyxDQUFzREMsSUFBSSxJQUFJLENBQUNBLElBQUksQ0FBQ0MsUUFBTixJQUFrQkQsSUFBSSxDQUFDRSxPQUFyRixFQUE4RkMsTUFBOUYsR0FBdUcsQ0FBOUc7QUFDSDs7QUFFRCxXQUFTQyxVQUFULENBQW9CQyxRQUFwQixFQUE2QjtBQUN6QkEsSUFBQUEsUUFBUSxDQUFDQyxPQUFULENBQWlCTixJQUFJLElBQUlBLElBQUksQ0FBQ08sWUFBTCxDQUFrQixVQUFsQixFQUE4QixNQUE5QixDQUF6QjtBQUNIOztBQUVELFdBQVNDLFNBQVQsQ0FBbUJILFFBQW5CLEVBQTRCO0FBQ3hCQSxJQUFBQSxRQUFRLENBQUNDLE9BQVQsQ0FBaUJOLElBQUksSUFBSUEsSUFBSSxDQUFDUyxlQUFMLENBQXFCLFVBQXJCLENBQXpCO0FBQ0g7O0FBRUQsV0FBU0MsZ0JBQVQsR0FBNEI7QUFDeEJqQixJQUFBQSxpQkFBaUIsQ0FBQ0gsMkJBQUQsQ0FBakIsR0FBaURjLFVBQVUsQ0FBQ1osa0JBQUQsQ0FBM0QsR0FBa0ZnQixTQUFTLENBQUNoQixrQkFBRCxDQUEzRjtBQUNBQyxJQUFBQSxpQkFBaUIsQ0FBQ0Qsa0JBQUQsQ0FBakIsR0FBd0NZLFVBQVUsQ0FBQ2QsMkJBQUQsQ0FBbEQsR0FBa0ZrQixTQUFTLENBQUNsQiwyQkFBRCxDQUEzRjs7QUFFQSxRQUFHLE9BQU9xQiw2QkFBUCxLQUF5QyxXQUF6QyxJQUF3REEsNkJBQTZCLENBQUNDLDJCQUE5QixLQUE4RCxHQUF6SCxFQUErSDtBQUMzSFIsTUFBQUEsVUFBVSxDQUFDWixrQkFBRCxDQUFWO0FBQ0g7QUFDSjs7QUFFRGtCLEVBQUFBLGdCQUFnQjtBQUVoQnBCLEVBQUFBLDJCQUEyQixDQUFDZ0IsT0FBNUIsQ0FBb0NOLElBQUksSUFBSUEsSUFBSSxDQUFDWCxnQkFBTCxDQUFzQixRQUF0QixFQUFnQ3FCLGdCQUFoQyxDQUE1QztBQUNBbEIsRUFBQUEsa0JBQWtCLENBQUNjLE9BQW5CLENBQTJCTixJQUFJLElBQUlBLElBQUksQ0FBQ1gsZ0JBQUwsQ0FBc0IsUUFBdEIsRUFBZ0NxQixnQkFBaEMsQ0FBbkM7QUFDSCxDQXBDSiIsInNvdXJjZXNDb250ZW50IjpbIjtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFxuICAgICdET01Db250ZW50TG9hZGVkJyxcbiAgICAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHBheUxhdGVyTWVzc2FnaW5nQ2hlY2tib3hlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICAgICBcIiNwcGNwLW1lc3NhZ2VfZW5hYmxlZCwgI3BwY3AtbWVzc2FnZV9jYXJ0X2VuYWJsZWQsICNwcGNwLW1lc3NhZ2VfcHJvZHVjdF9lbmFibGVkXCJcbiAgICAgICAgKVxuXG4gICAgICAgIGNvbnN0IHZhdWx0aW5nQ2hlY2tib3hlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICAgICBcIiNwcGNwLXZhdWx0X2VuYWJsZWRcIlxuICAgICAgICApXG5cbiAgICAgICAgZnVuY3Rpb24gYXRMZWFzdE9uZUNoZWNrZWQoY2hlY2tib3hlc05vZGVMaXN0KSB7XG4gICAgICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoY2hlY2tib3hlc05vZGVMaXN0KS5maWx0ZXIobm9kZSA9PiAhbm9kZS5kaXNhYmxlZCAmJiBub2RlLmNoZWNrZWQpLmxlbmd0aCA+IDBcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGRpc2FibGVBbGwobm9kZUxpc3Qpe1xuICAgICAgICAgICAgbm9kZUxpc3QuZm9yRWFjaChub2RlID0+IG5vZGUuc2V0QXR0cmlidXRlKCdkaXNhYmxlZCcsICd0cnVlJykpXG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBlbmFibGVBbGwobm9kZUxpc3Qpe1xuICAgICAgICAgICAgbm9kZUxpc3QuZm9yRWFjaChub2RlID0+IG5vZGUucmVtb3ZlQXR0cmlidXRlKCdkaXNhYmxlZCcpKVxuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gdXBkYXRlQ2hlY2tib3hlcygpIHtcbiAgICAgICAgICAgIGF0TGVhc3RPbmVDaGVja2VkKHBheUxhdGVyTWVzc2FnaW5nQ2hlY2tib3hlcykgPyBkaXNhYmxlQWxsKHZhdWx0aW5nQ2hlY2tib3hlcykgOiBlbmFibGVBbGwodmF1bHRpbmdDaGVja2JveGVzKVxuICAgICAgICAgICAgYXRMZWFzdE9uZUNoZWNrZWQodmF1bHRpbmdDaGVja2JveGVzKSA/IGRpc2FibGVBbGwocGF5TGF0ZXJNZXNzYWdpbmdDaGVja2JveGVzKSA6IGVuYWJsZUFsbChwYXlMYXRlck1lc3NhZ2luZ0NoZWNrYm94ZXMpXG5cbiAgICAgICAgICAgIGlmKHR5cGVvZiBQYXlQYWxDb21tZXJjZUdhdGV3YXlTZXR0aW5ncyA9PT0gJ3VuZGVmaW5lZCcgfHwgUGF5UGFsQ29tbWVyY2VHYXRld2F5U2V0dGluZ3MudmF1bHRpbmdfZmVhdHVyZXNfYXZhaWxhYmxlICE9PSAnMScgKSB7XG4gICAgICAgICAgICAgICAgZGlzYWJsZUFsbCh2YXVsdGluZ0NoZWNrYm94ZXMpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB1cGRhdGVDaGVja2JveGVzKClcblxuICAgICAgICBwYXlMYXRlck1lc3NhZ2luZ0NoZWNrYm94ZXMuZm9yRWFjaChub2RlID0+IG5vZGUuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdXBkYXRlQ2hlY2tib3hlcykpXG4gICAgICAgIHZhdWx0aW5nQ2hlY2tib3hlcy5mb3JFYWNoKG5vZGUgPT4gbm9kZS5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB1cGRhdGVDaGVja2JveGVzKSk7XG4gICAgfVxuKTtcbiJdLCJmaWxlIjoiNzk1LmpzIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///795\n")}},__webpack_exports__={};__webpack_modules__[795]()})();
|
|
modules/ppcp-wc-gateway/assets/js/gateway-settings.js.map
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./resources/js/gateway-settings.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","document","addEventListener","payLaterMessagingCheckboxes","querySelectorAll","vaultingCheckboxes","atLeastOneChecked","checkboxesNodeList","Array","slice","filter","node","disabled","checked","length","disableAll","nodeList","forEach","setAttribute","enableAll","removeAttribute","updateCheckboxes","PayPalCommerceGatewaySettings","vaulting_features_available"],"mappings":"aACE,IAAIA,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QAKfF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEZ,EAAoBkB,EAAI,SAAShB,GACX,oBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAQvDrB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrB,EAAoBU,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRzB,EAAoB6B,EAAI,SAAS1B,GAChC,IAAIS,EAAST,GAAUA,EAAOqB,WAC7B,WAAwB,OAAOrB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRZ,EAAoBa,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG/B,EAAoBkC,EAAI,GAIjBlC,EAAoBA,EAAoBmC,EAAI,G,gBClFpDC,SAASC,iBACN,mBACA,KACI,MAAMC,EAA8BF,SAASG,iBACzC,oFAGEC,EAAqBJ,SAASG,iBAChC,uBAGJ,SAASE,EAAkBC,GACvB,OAAOC,MAAMX,UAAUY,MAAMrC,KAAKmC,GAAoBG,OAAOC,IAASA,EAAKC,UAAYD,EAAKE,SAASC,OAAS,EAGlH,SAASC,EAAWC,GAChBA,EAASC,QAAQN,GAAQA,EAAKO,aAAa,WAAY,SAG3D,SAASC,EAAUH,GACfA,EAASC,QAAQN,GAAQA,EAAKS,gBAAgB,aAGlD,SAASC,IACLf,EAAkBH,GAA+BY,EAAWV,GAAsBc,EAAUd,GAC5FC,EAAkBD,GAAsBU,EAAWZ,GAA+BgB,EAAUhB,GAEhD,oBAAlCmB,+BAA+G,MAA9DA,8BAA8BC,6BACrFR,EAAWV,GAInBgB,IAEAlB,EAA4Bc,QAAQN,GAAQA,EAAKT,iBAAiB,SAAUmB,IAC5EhB,EAAmBY,QAAQN,GAAQA,EAAKT,iBAAiB,SAAUmB","file":"js/gateway-settings.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n",";document.addEventListener(\n 'DOMContentLoaded',\n () => {\n const payLaterMessagingCheckboxes = document.querySelectorAll(\n \"#ppcp-message_enabled, #ppcp-message_cart_enabled, #ppcp-message_product_enabled\"\n )\n\n const vaultingCheckboxes = document.querySelectorAll(\n \"#ppcp-vault_enabled\"\n )\n\n function atLeastOneChecked(checkboxesNodeList) {\n return Array.prototype.slice.call(checkboxesNodeList).filter(node => !node.disabled && node.checked).length > 0\n }\n\n function disableAll(nodeList){\n nodeList.forEach(node => node.setAttribute('disabled', 'true'))\n }\n\n function enableAll(nodeList){\n nodeList.forEach(node => node.removeAttribute('disabled'))\n }\n\n function updateCheckboxes() {\n atLeastOneChecked(payLaterMessagingCheckboxes) ? disableAll(vaultingCheckboxes) : enableAll(vaultingCheckboxes)\n atLeastOneChecked(vaultingCheckboxes) ? disableAll(payLaterMessagingCheckboxes) : enableAll(payLaterMessagingCheckboxes)\n\n if(typeof PayPalCommerceGatewaySettings === 'undefined' || PayPalCommerceGatewaySettings.vaulting_features_available !== '1' ) {\n disableAll(vaultingCheckboxes)\n }\n }\n\n updateCheckboxes()\n\n payLaterMessagingCheckboxes.forEach(node => node.addEventListener('change', updateCheckboxes))\n vaultingCheckboxes.forEach(node => node.addEventListener('change', updateCheckboxes));\n }\n);\n"],"sourceRoot":""}
|
|
modules/ppcp-wc-gateway/package.json
CHANGED
@@ -7,11 +7,11 @@
|
|
7 |
"@babel/core": "^7.9.0",
|
8 |
"@babel/preset-env": "^7.9.5",
|
9 |
"babel-loader": "^8.1.0",
|
10 |
-
"
|
11 |
-
"
|
12 |
-
"
|
13 |
-
"webpack
|
14 |
-
"
|
15 |
},
|
16 |
"scripts": {
|
17 |
"build": "cross-env BABEL_ENV=default NODE_ENV=production webpack",
|
7 |
"@babel/core": "^7.9.0",
|
8 |
"@babel/preset-env": "^7.9.5",
|
9 |
"babel-loader": "^8.1.0",
|
10 |
+
"babel-plugin-transform-object-rest-spread": "^6.26.0",
|
11 |
+
"cross-env": "^7.0.3",
|
12 |
+
"file-loader": "^6.2.0",
|
13 |
+
"webpack": "^5.55.0",
|
14 |
+
"webpack-cli": "^4.8.0"
|
15 |
},
|
16 |
"scripts": {
|
17 |
"build": "cross-env BABEL_ENV=default NODE_ENV=production webpack",
|
modules/ppcp-wc-gateway/services.php
CHANGED
@@ -5,6 +5,8 @@
|
|
5 |
* @package WooCommerce\PayPalCommerce\WcGateway
|
6 |
*/
|
7 |
|
|
|
|
|
8 |
declare(strict_types=1);
|
9 |
|
10 |
namespace WooCommerce\PayPalCommerce\WcGateway;
|
@@ -28,6 +30,7 @@ use Woocommerce\PayPalCommerce\WcGateway\Helper\DccProductStatus;
|
|
28 |
use Woocommerce\PayPalCommerce\WcGateway\Helper\SettingsStatus;
|
29 |
use WooCommerce\PayPalCommerce\WcGateway\Notice\AuthorizeOrderActionNotice;
|
30 |
use WooCommerce\PayPalCommerce\WcGateway\Notice\ConnectAdminNotice;
|
|
|
31 |
use WooCommerce\PayPalCommerce\WcGateway\Processor\AuthorizedPaymentsProcessor;
|
32 |
use WooCommerce\PayPalCommerce\WcGateway\Processor\OrderProcessor;
|
33 |
use WooCommerce\PayPalCommerce\WcGateway\Processor\RefundProcessor;
|
@@ -35,6 +38,7 @@ use WooCommerce\PayPalCommerce\WcGateway\Settings\SectionsRenderer;
|
|
35 |
use WooCommerce\PayPalCommerce\WcGateway\Settings\Settings;
|
36 |
use WooCommerce\PayPalCommerce\WcGateway\Settings\SettingsListener;
|
37 |
use WooCommerce\PayPalCommerce\WcGateway\Settings\SettingsRenderer;
|
|
|
38 |
|
39 |
return array(
|
40 |
'wcgateway.paypal-gateway' => static function ( $container ): PayPalGateway {
|
@@ -48,6 +52,7 @@ return array(
|
|
48 |
$state = $container->get( 'onboarding.state' );
|
49 |
$transaction_url_provider = $container->get( 'wcgateway.transaction-url-provider' );
|
50 |
$subscription_helper = $container->get( 'subscription.helper' );
|
|
|
51 |
return new PayPalGateway(
|
52 |
$settings_renderer,
|
53 |
$order_processor,
|
@@ -58,7 +63,8 @@ return array(
|
|
58 |
$refund_processor,
|
59 |
$state,
|
60 |
$transaction_url_provider,
|
61 |
-
$subscription_helper
|
|
|
62 |
);
|
63 |
},
|
64 |
'wcgateway.credit-card-gateway' => static function ( $container ): CreditCardGateway {
|
@@ -72,11 +78,12 @@ return array(
|
|
72 |
$refund_processor = $container->get( 'wcgateway.processor.refunds' );
|
73 |
$state = $container->get( 'onboarding.state' );
|
74 |
$transaction_url_provider = $container->get( 'wcgateway.transaction-url-provider' );
|
75 |
-
$payment_token_repository = $container->get( '
|
76 |
$purchase_unit_factory = $container->get( 'api.factory.purchase-unit' );
|
77 |
$payer_factory = $container->get( 'api.factory.payer' );
|
78 |
$order_endpoint = $container->get( 'api.endpoint.order' );
|
79 |
$subscription_helper = $container->get( 'subscription.helper' );
|
|
|
80 |
return new CreditCardGateway(
|
81 |
$settings_renderer,
|
82 |
$order_processor,
|
@@ -92,7 +99,8 @@ return array(
|
|
92 |
$purchase_unit_factory,
|
93 |
$payer_factory,
|
94 |
$order_endpoint,
|
95 |
-
$subscription_helper
|
|
|
96 |
);
|
97 |
},
|
98 |
'wcgateway.disabler' => static function ( $container ): DisableGateways {
|
@@ -100,6 +108,33 @@ return array(
|
|
100 |
$settings = $container->get( 'wcgateway.settings' );
|
101 |
return new DisableGateways( $session_handler, $settings );
|
102 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
103 |
'wcgateway.settings' => static function ( $container ): Settings {
|
104 |
return new Settings();
|
105 |
},
|
@@ -108,12 +143,19 @@ return array(
|
|
108 |
$settings = $container->get( 'wcgateway.settings' );
|
109 |
return new ConnectAdminNotice( $state, $settings );
|
110 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
111 |
'wcgateway.notice.authorize-order-action' =>
|
112 |
static function ( $container ): AuthorizeOrderActionNotice {
|
113 |
return new AuthorizeOrderActionNotice();
|
114 |
},
|
115 |
'wcgateway.settings.sections-renderer' => static function ( $container ): SectionsRenderer {
|
116 |
-
return new SectionsRenderer();
|
117 |
},
|
118 |
'wcgateway.settings.status' => static function ( $container ): SettingsStatus {
|
119 |
$settings = $container->get( 'wcgateway.settings' );
|
@@ -127,6 +169,7 @@ return array(
|
|
127 |
$messages_apply = $container->get( 'button.helper.messages-apply' );
|
128 |
$dcc_product_status = $container->get( 'wcgateway.helper.dcc-product-status' );
|
129 |
$settings_status = $container->get( 'wcgateway.settings.status' );
|
|
|
130 |
return new SettingsRenderer(
|
131 |
$settings,
|
132 |
$state,
|
@@ -134,7 +177,8 @@ return array(
|
|
134 |
$dcc_applies,
|
135 |
$messages_apply,
|
136 |
$dcc_product_status,
|
137 |
-
$settings_status
|
|
|
138 |
);
|
139 |
},
|
140 |
'wcgateway.settings.listener' => static function ( $container ): SettingsListener {
|
@@ -144,7 +188,8 @@ return array(
|
|
144 |
$state = $container->get( 'onboarding.state' );
|
145 |
$cache = new Cache( 'ppcp-paypal-bearer' );
|
146 |
$bearer = $container->get( 'api.bearer' );
|
147 |
-
|
|
|
148 |
},
|
149 |
'wcgateway.order-processor' => static function ( $container ): OrderProcessor {
|
150 |
|
@@ -646,7 +691,7 @@ return array(
|
|
646 |
'label' => sprintf(
|
647 |
// translators: %1$s and %2$s are the opening and closing of HTML <a> tag.
|
648 |
__( 'Enable saved cards and subscription features on your store. To use vaulting features, you must %1$senable vaulting on your account%2$s.', 'woocommerce-paypal-payments' ),
|
649 |
-
'<a
|
650 |
href="https://docs.woocommerce.com/document/woocommerce-paypal-payments/#enable-vaulting-on-your-live-account"
|
651 |
target="_blank"
|
652 |
>',
|
@@ -658,7 +703,7 @@ return array(
|
|
658 |
State::STATE_ONBOARDED,
|
659 |
),
|
660 |
'requirements' => array(),
|
661 |
-
'gateway' => '
|
662 |
),
|
663 |
'logging_enabled' => array(
|
664 |
'title' => __( 'Logging', 'woocommerce-paypal-payments' ),
|
@@ -1804,6 +1849,62 @@ return array(
|
|
1804 |
),
|
1805 |
'gateway' => 'dcc',
|
1806 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1807 |
);
|
1808 |
if ( ! defined( 'PPCP_FLAG_SUBSCRIPTION' ) || ! PPCP_FLAG_SUBSCRIPTION ) {
|
1809 |
unset( $fields['vault_enabled'] );
|
@@ -1820,15 +1921,6 @@ return array(
|
|
1820 |
unset( $fields['ppcp_disconnect_sandbox'] );
|
1821 |
}
|
1822 |
|
1823 |
-
/**
|
1824 |
-
* Disable card for UK.
|
1825 |
-
*/
|
1826 |
-
$region = wc_get_base_location();
|
1827 |
-
$country = $region['country'];
|
1828 |
-
if ( 'GB' === $country ) {
|
1829 |
-
unset( $fields['disable_funding']['options']['card'] );
|
1830 |
-
}
|
1831 |
-
|
1832 |
/**
|
1833 |
* Depending on your store location, some credit cards can't be used.
|
1834 |
* Here, we filter them out.
|
5 |
* @package WooCommerce\PayPalCommerce\WcGateway
|
6 |
*/
|
7 |
|
8 |
+
// phpcs:disable WordPress.Security.NonceVerification.Recommended
|
9 |
+
|
10 |
declare(strict_types=1);
|
11 |
|
12 |
namespace WooCommerce\PayPalCommerce\WcGateway;
|
30 |
use Woocommerce\PayPalCommerce\WcGateway\Helper\SettingsStatus;
|
31 |
use WooCommerce\PayPalCommerce\WcGateway\Notice\AuthorizeOrderActionNotice;
|
32 |
use WooCommerce\PayPalCommerce\WcGateway\Notice\ConnectAdminNotice;
|
33 |
+
use WooCommerce\PayPalCommerce\WcGateway\Notice\DccWithoutPayPalAdminNotice;
|
34 |
use WooCommerce\PayPalCommerce\WcGateway\Processor\AuthorizedPaymentsProcessor;
|
35 |
use WooCommerce\PayPalCommerce\WcGateway\Processor\OrderProcessor;
|
36 |
use WooCommerce\PayPalCommerce\WcGateway\Processor\RefundProcessor;
|
38 |
use WooCommerce\PayPalCommerce\WcGateway\Settings\Settings;
|
39 |
use WooCommerce\PayPalCommerce\WcGateway\Settings\SettingsListener;
|
40 |
use WooCommerce\PayPalCommerce\WcGateway\Settings\SettingsRenderer;
|
41 |
+
use WooCommerce\PayPalCommerce\Webhooks\Status\WebhooksStatusPage;
|
42 |
|
43 |
return array(
|
44 |
'wcgateway.paypal-gateway' => static function ( $container ): PayPalGateway {
|
52 |
$state = $container->get( 'onboarding.state' );
|
53 |
$transaction_url_provider = $container->get( 'wcgateway.transaction-url-provider' );
|
54 |
$subscription_helper = $container->get( 'subscription.helper' );
|
55 |
+
$page_id = $container->get( 'wcgateway.current-ppcp-settings-page-id' );
|
56 |
return new PayPalGateway(
|
57 |
$settings_renderer,
|
58 |
$order_processor,
|
63 |
$refund_processor,
|
64 |
$state,
|
65 |
$transaction_url_provider,
|
66 |
+
$subscription_helper,
|
67 |
+
$page_id
|
68 |
);
|
69 |
},
|
70 |
'wcgateway.credit-card-gateway' => static function ( $container ): CreditCardGateway {
|
78 |
$refund_processor = $container->get( 'wcgateway.processor.refunds' );
|
79 |
$state = $container->get( 'onboarding.state' );
|
80 |
$transaction_url_provider = $container->get( 'wcgateway.transaction-url-provider' );
|
81 |
+
$payment_token_repository = $container->get( 'vaulting.repository.payment-token' );
|
82 |
$purchase_unit_factory = $container->get( 'api.factory.purchase-unit' );
|
83 |
$payer_factory = $container->get( 'api.factory.payer' );
|
84 |
$order_endpoint = $container->get( 'api.endpoint.order' );
|
85 |
$subscription_helper = $container->get( 'subscription.helper' );
|
86 |
+
$logger = $container->get( 'woocommerce.logger.woocommerce' );
|
87 |
return new CreditCardGateway(
|
88 |
$settings_renderer,
|
89 |
$order_processor,
|
99 |
$purchase_unit_factory,
|
100 |
$payer_factory,
|
101 |
$order_endpoint,
|
102 |
+
$subscription_helper,
|
103 |
+
$logger
|
104 |
);
|
105 |
},
|
106 |
'wcgateway.disabler' => static function ( $container ): DisableGateways {
|
108 |
$settings = $container->get( 'wcgateway.settings' );
|
109 |
return new DisableGateways( $session_handler, $settings );
|
110 |
},
|
111 |
+
|
112 |
+
'wcgateway.is-wc-payments-page' => static function ( $container ): bool {
|
113 |
+
$page = isset( $_GET['page'] ) ? sanitize_text_field( wp_unslash( $_GET['page'] ) ) : '';
|
114 |
+
$tab = isset( $_GET['tab'] ) ? sanitize_text_field( wp_unslash( $_GET['tab'] ) ) : '';
|
115 |
+
return 'wc-settings' === $page && 'checkout' === $tab;
|
116 |
+
},
|
117 |
+
|
118 |
+
'wcgateway.is-ppcp-settings-page' => static function ( $container ): bool {
|
119 |
+
if ( ! $container->get( 'wcgateway.is-wc-payments-page' ) ) {
|
120 |
+
return false;
|
121 |
+
}
|
122 |
+
|
123 |
+
$section = isset( $_GET['section'] ) ? sanitize_text_field( wp_unslash( $_GET['section'] ) ) : '';
|
124 |
+
return in_array( $section, array( PayPalGateway::ID, CreditCardGateway::ID, WebhooksStatusPage::ID ), true );
|
125 |
+
},
|
126 |
+
|
127 |
+
'wcgateway.current-ppcp-settings-page-id' => static function ( $container ): string {
|
128 |
+
if ( ! $container->get( 'wcgateway.is-ppcp-settings-page' ) ) {
|
129 |
+
return '';
|
130 |
+
}
|
131 |
+
|
132 |
+
$section = isset( $_GET['section'] ) ? sanitize_text_field( wp_unslash( $_GET['section'] ) ) : '';
|
133 |
+
$ppcp_tab = isset( $_GET[ SectionsRenderer::KEY ] ) ? sanitize_text_field( wp_unslash( $_GET[ SectionsRenderer::KEY ] ) ) : '';
|
134 |
+
|
135 |
+
return $ppcp_tab ? $ppcp_tab : $section;
|
136 |
+
},
|
137 |
+
|
138 |
'wcgateway.settings' => static function ( $container ): Settings {
|
139 |
return new Settings();
|
140 |
},
|
143 |
$settings = $container->get( 'wcgateway.settings' );
|
144 |
return new ConnectAdminNotice( $state, $settings );
|
145 |
},
|
146 |
+
'wcgateway.notice.dcc-without-paypal' => static function ( $container ): DccWithoutPayPalAdminNotice {
|
147 |
+
$state = $container->get( 'onboarding.state' );
|
148 |
+
$settings = $container->get( 'wcgateway.settings' );
|
149 |
+
$is_payments_page = $container->get( 'wcgateway.is-wc-payments-page' );
|
150 |
+
$is_ppcp_settings_page = $container->get( 'wcgateway.is-ppcp-settings-page' );
|
151 |
+
return new DccWithoutPayPalAdminNotice( $state, $settings, $is_payments_page, $is_ppcp_settings_page );
|
152 |
+
},
|
153 |
'wcgateway.notice.authorize-order-action' =>
|
154 |
static function ( $container ): AuthorizeOrderActionNotice {
|
155 |
return new AuthorizeOrderActionNotice();
|
156 |
},
|
157 |
'wcgateway.settings.sections-renderer' => static function ( $container ): SectionsRenderer {
|
158 |
+
return new SectionsRenderer( $container->get( 'wcgateway.current-ppcp-settings-page-id' ) );
|
159 |
},
|
160 |
'wcgateway.settings.status' => static function ( $container ): SettingsStatus {
|
161 |
$settings = $container->get( 'wcgateway.settings' );
|
169 |
$messages_apply = $container->get( 'button.helper.messages-apply' );
|
170 |
$dcc_product_status = $container->get( 'wcgateway.helper.dcc-product-status' );
|
171 |
$settings_status = $container->get( 'wcgateway.settings.status' );
|
172 |
+
$page_id = $container->get( 'wcgateway.current-ppcp-settings-page-id' );
|
173 |
return new SettingsRenderer(
|
174 |
$settings,
|
175 |
$state,
|
177 |
$dcc_applies,
|
178 |
$messages_apply,
|
179 |
$dcc_product_status,
|
180 |
+
$settings_status,
|
181 |
+
$page_id
|
182 |
);
|
183 |
},
|
184 |
'wcgateway.settings.listener' => static function ( $container ): SettingsListener {
|
188 |
$state = $container->get( 'onboarding.state' );
|
189 |
$cache = new Cache( 'ppcp-paypal-bearer' );
|
190 |
$bearer = $container->get( 'api.bearer' );
|
191 |
+
$page_id = $container->get( 'wcgateway.current-ppcp-settings-page-id' );
|
192 |
+
return new SettingsListener( $settings, $fields, $webhook_registrar, $cache, $state, $bearer, $page_id );
|
193 |
},
|
194 |
'wcgateway.order-processor' => static function ( $container ): OrderProcessor {
|
195 |
|
691 |
'label' => sprintf(
|
692 |
// translators: %1$s and %2$s are the opening and closing of HTML <a> tag.
|
693 |
__( 'Enable saved cards and subscription features on your store. To use vaulting features, you must %1$senable vaulting on your account%2$s.', 'woocommerce-paypal-payments' ),
|
694 |
+
'<a
|
695 |
href="https://docs.woocommerce.com/document/woocommerce-paypal-payments/#enable-vaulting-on-your-live-account"
|
696 |
target="_blank"
|
697 |
>',
|
703 |
State::STATE_ONBOARDED,
|
704 |
),
|
705 |
'requirements' => array(),
|
706 |
+
'gateway' => array( 'paypal', 'dcc' ),
|
707 |
),
|
708 |
'logging_enabled' => array(
|
709 |
'title' => __( 'Logging', 'woocommerce-paypal-payments' ),
|
1849 |
),
|
1850 |
'gateway' => 'dcc',
|
1851 |
),
|
1852 |
+
'3d_secure_heading' => array(
|
1853 |
+
'heading' => __( '3D Secure', 'woocommerce-paypal-payments' ),
|
1854 |
+
'type' => 'ppcp-heading',
|
1855 |
+
'description' => wp_kses_post(
|
1856 |
+
sprintf(
|
1857 |
+
// translators: %1$s and %2$s is a link tag.
|
1858 |
+
__(
|
1859 |
+
'3D Secure benefits cardholders and merchants by providing
|
1860 |
+
an additional layer of verification using Verified by Visa,
|
1861 |
+
MasterCard SecureCode and American Express SafeKey.
|
1862 |
+
%1$sLearn more about 3D Secure.%2$s',
|
1863 |
+
'woocommerce-paypal-payments'
|
1864 |
+
),
|
1865 |
+
'<a
|
1866 |
+
rel="noreferrer noopener"
|
1867 |
+
href="https://woocommerce.com/posts/introducing-strong-customer-authentication-sca/"
|
1868 |
+
>',
|
1869 |
+
'</a>'
|
1870 |
+
)
|
1871 |
+
),
|
1872 |
+
'screens' => array(
|
1873 |
+
State::STATE_ONBOARDED,
|
1874 |
+
),
|
1875 |
+
'requirements' => array(
|
1876 |
+
'dcc',
|
1877 |
+
),
|
1878 |
+
'gateway' => 'dcc',
|
1879 |
+
),
|
1880 |
+
'3d_secure_contingency' => array(
|
1881 |
+
'title' => __( 'Contingency for 3D Secure', 'woocommerce-paypal-payments' ),
|
1882 |
+
'type' => 'select',
|
1883 |
+
'description' => sprintf(
|
1884 |
+
// translators: %1$s and %2$s opening and closing ul tag, %3$s and %4$s opening and closing li tag.
|
1885 |
+
__( '%1$s%3$sNo 3D Secure will cause transactions to be denied if 3D Secure is required by the bank of the cardholder.%4$s%3$sSCA_WHEN_REQUIRED returns a 3D Secure contingency when it is a mandate in the region where you operate.%4$s%3$sSCA_ALWAYS triggers 3D Secure for every transaction, regardless of SCA requirements.%4$s%2$s', 'woocommerce-paypal-payments' ),
|
1886 |
+
'<ul>',
|
1887 |
+
'</ul>',
|
1888 |
+
'<li>',
|
1889 |
+
'</li>'
|
1890 |
+
),
|
1891 |
+
'class' => array(),
|
1892 |
+
'input_class' => array( 'wc-enhanced-select' ),
|
1893 |
+
'default' => 'SCA_WHEN_REQUIRED',
|
1894 |
+
'desc_tip' => true,
|
1895 |
+
'options' => array(
|
1896 |
+
'NO_3D_SECURE' => __( 'No 3D Secure (transaction will be denied if 3D Secure is required)', 'woocommerce-paypal-payments' ),
|
1897 |
+
'SCA_WHEN_REQUIRED' => __( '3D Secure when required', 'woocommerce-paypal-payments' ),
|
1898 |
+
'3D_SECURE' => __( 'Always trigger 3D Secure', 'woocommerce-paypal-payments' ),
|
1899 |
+
),
|
1900 |
+
'screens' => array(
|
1901 |
+
State::STATE_ONBOARDED,
|
1902 |
+
),
|
1903 |
+
'requirements' => array(
|
1904 |
+
'dcc',
|
1905 |
+
),
|
1906 |
+
'gateway' => 'dcc',
|
1907 |
+
),
|
1908 |
);
|
1909 |
if ( ! defined( 'PPCP_FLAG_SUBSCRIPTION' ) || ! PPCP_FLAG_SUBSCRIPTION ) {
|
1910 |
unset( $fields['vault_enabled'] );
|
1921 |
unset( $fields['ppcp_disconnect_sandbox'] );
|
1922 |
}
|
1923 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1924 |
/**
|
1925 |
* Depending on your store location, some credit cards can't be used.
|
1926 |
* Here, we filter them out.
|
modules/ppcp-wc-gateway/src/Gateway/class-creditcardgateway.php
CHANGED
@@ -9,13 +9,14 @@ declare(strict_types=1);
|
|
9 |
|
10 |
namespace WooCommerce\PayPalCommerce\WcGateway\Gateway;
|
11 |
|
|
|
12 |
use WooCommerce\PayPalCommerce\ApiClient\Endpoint\OrderEndpoint;
|
13 |
use WooCommerce\PayPalCommerce\ApiClient\Factory\PayerFactory;
|
14 |
use WooCommerce\PayPalCommerce\ApiClient\Factory\PurchaseUnitFactory;
|
15 |
use WooCommerce\PayPalCommerce\Onboarding\State;
|
16 |
use WooCommerce\PayPalCommerce\Session\SessionHandler;
|
17 |
use WooCommerce\PayPalCommerce\Subscription\Helper\SubscriptionHelper;
|
18 |
-
use WooCommerce\PayPalCommerce\
|
19 |
use WooCommerce\PayPalCommerce\WcGateway\Notice\AuthorizeOrderActionNotice;
|
20 |
use WooCommerce\PayPalCommerce\WcGateway\Processor\AuthorizedPaymentsProcessor;
|
21 |
use WooCommerce\PayPalCommerce\WcGateway\Processor\OrderProcessor;
|
@@ -46,6 +47,13 @@ class CreditCardGateway extends \WC_Payment_Gateway_CC {
|
|
46 |
*/
|
47 |
protected $subscription_helper;
|
48 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
/**
|
50 |
* The URL to the module.
|
51 |
*
|
@@ -104,8 +112,9 @@ class CreditCardGateway extends \WC_Payment_Gateway_CC {
|
|
104 |
* @param PaymentTokenRepository $payment_token_repository The payment token repository.
|
105 |
* @param PurchaseUnitFactory $purchase_unit_factory The purchase unit factory.
|
106 |
* @param PayerFactory $payer_factory The payer factory.
|
107 |
-
* @param
|
108 |
* @param SubscriptionHelper $subscription_helper The subscription helper.
|
|
|
109 |
*/
|
110 |
public function __construct(
|
111 |
SettingsRenderer $settings_renderer,
|
@@ -122,7 +131,8 @@ class CreditCardGateway extends \WC_Payment_Gateway_CC {
|
|
122 |
PurchaseUnitFactory $purchase_unit_factory,
|
123 |
PayerFactory $payer_factory,
|
124 |
OrderEndpoint $order_endpoint,
|
125 |
-
SubscriptionHelper $subscription_helper
|
|
|
126 |
) {
|
127 |
|
128 |
$this->id = self::ID;
|
@@ -190,6 +200,7 @@ class CreditCardGateway extends \WC_Payment_Gateway_CC {
|
|
190 |
$this->order_endpoint = $order_endpoint;
|
191 |
$this->transaction_url_provider = $transaction_url_provider;
|
192 |
$this->subscription_helper = $subscription_helper;
|
|
|
193 |
}
|
194 |
|
195 |
/**
|
@@ -197,13 +208,7 @@ class CreditCardGateway extends \WC_Payment_Gateway_CC {
|
|
197 |
*/
|
198 |
public function init_form_fields() {
|
199 |
$this->form_fields = array(
|
200 |
-
'
|
201 |
-
'title' => __( 'Enable/Disable', 'woocommerce-paypal-payments' ),
|
202 |
-
'type' => 'checkbox',
|
203 |
-
'label' => __( 'Enable Credit Card Payments', 'woocommerce-paypal-payments' ),
|
204 |
-
'default' => 'no',
|
205 |
-
),
|
206 |
-
'ppcp' => array(
|
207 |
'type' => 'ppcp',
|
208 |
),
|
209 |
);
|
@@ -218,6 +223,20 @@ class CreditCardGateway extends \WC_Payment_Gateway_CC {
|
|
218 |
remove_action( 'gettext', 'replace_credit_card_cvv_label' );
|
219 |
}
|
220 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
221 |
/**
|
222 |
* Replace WooCommerce credit card field label.
|
223 |
*
|
@@ -314,7 +333,7 @@ class CreditCardGateway extends \WC_Payment_Gateway_CC {
|
|
314 |
* @return bool
|
315 |
*/
|
316 |
public function is_available() : bool {
|
317 |
-
return $this->
|
318 |
}
|
319 |
|
320 |
|
@@ -349,4 +368,60 @@ class CreditCardGateway extends \WC_Payment_Gateway_CC {
|
|
349 |
|
350 |
return parent::get_transaction_url( $order );
|
351 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
352 |
}
|
9 |
|
10 |
namespace WooCommerce\PayPalCommerce\WcGateway\Gateway;
|
11 |
|
12 |
+
use Psr\Log\LoggerInterface;
|
13 |
use WooCommerce\PayPalCommerce\ApiClient\Endpoint\OrderEndpoint;
|
14 |
use WooCommerce\PayPalCommerce\ApiClient\Factory\PayerFactory;
|
15 |
use WooCommerce\PayPalCommerce\ApiClient\Factory\PurchaseUnitFactory;
|
16 |
use WooCommerce\PayPalCommerce\Onboarding\State;
|
17 |
use WooCommerce\PayPalCommerce\Session\SessionHandler;
|
18 |
use WooCommerce\PayPalCommerce\Subscription\Helper\SubscriptionHelper;
|
19 |
+
use WooCommerce\PayPalCommerce\Vaulting\PaymentTokenRepository;
|
20 |
use WooCommerce\PayPalCommerce\WcGateway\Notice\AuthorizeOrderActionNotice;
|
21 |
use WooCommerce\PayPalCommerce\WcGateway\Processor\AuthorizedPaymentsProcessor;
|
22 |
use WooCommerce\PayPalCommerce\WcGateway\Processor\OrderProcessor;
|
47 |
*/
|
48 |
protected $subscription_helper;
|
49 |
|
50 |
+
/**
|
51 |
+
* The logger.
|
52 |
+
*
|
53 |
+
* @var LoggerInterface
|
54 |
+
*/
|
55 |
+
protected $logger;
|
56 |
+
|
57 |
/**
|
58 |
* The URL to the module.
|
59 |
*
|
112 |
* @param PaymentTokenRepository $payment_token_repository The payment token repository.
|
113 |
* @param PurchaseUnitFactory $purchase_unit_factory The purchase unit factory.
|
114 |
* @param PayerFactory $payer_factory The payer factory.
|
115 |
+
* @param OrderEndpoint $order_endpoint The order endpoint.
|
116 |
* @param SubscriptionHelper $subscription_helper The subscription helper.
|
117 |
+
* @param LoggerInterface $logger The logger.
|
118 |
*/
|
119 |
public function __construct(
|
120 |
SettingsRenderer $settings_renderer,
|
131 |
PurchaseUnitFactory $purchase_unit_factory,
|
132 |
PayerFactory $payer_factory,
|
133 |
OrderEndpoint $order_endpoint,
|
134 |
+
SubscriptionHelper $subscription_helper,
|
135 |
+
LoggerInterface $logger
|
136 |
) {
|
137 |
|
138 |
$this->id = self::ID;
|
200 |
$this->order_endpoint = $order_endpoint;
|
201 |
$this->transaction_url_provider = $transaction_url_provider;
|
202 |
$this->subscription_helper = $subscription_helper;
|
203 |
+
$this->logger = $logger;
|
204 |
}
|
205 |
|
206 |
/**
|
208 |
*/
|
209 |
public function init_form_fields() {
|
210 |
$this->form_fields = array(
|
211 |
+
'ppcp' => array(
|
|
|
|
|
|
|
|
|
|
|
|
|
212 |
'type' => 'ppcp',
|
213 |
),
|
214 |
);
|
223 |
remove_action( 'gettext', 'replace_credit_card_cvv_label' );
|
224 |
}
|
225 |
|
226 |
+
/**
|
227 |
+
* Renders the settings.
|
228 |
+
*
|
229 |
+
* @return string
|
230 |
+
*/
|
231 |
+
public function generate_ppcp_html(): string {
|
232 |
+
|
233 |
+
ob_start();
|
234 |
+
$this->settings_renderer->render();
|
235 |
+
$content = ob_get_contents();
|
236 |
+
ob_end_clean();
|
237 |
+
return $content;
|
238 |
+
}
|
239 |
+
|
240 |
/**
|
241 |
* Replace WooCommerce credit card field label.
|
242 |
*
|
333 |
* @return bool
|
334 |
*/
|
335 |
public function is_available() : bool {
|
336 |
+
return $this->is_enabled();
|
337 |
}
|
338 |
|
339 |
|
368 |
|
369 |
return parent::get_transaction_url( $order );
|
370 |
}
|
371 |
+
|
372 |
+
/**
|
373 |
+
* Initialize settings for WC.
|
374 |
+
*
|
375 |
+
* @return void
|
376 |
+
*/
|
377 |
+
public function init_settings() {
|
378 |
+
parent::init_settings();
|
379 |
+
|
380 |
+
// looks like in some cases WC uses this field instead of get_option.
|
381 |
+
$this->enabled = $this->is_enabled();
|
382 |
+
}
|
383 |
+
|
384 |
+
/**
|
385 |
+
* Get the option value for WC.
|
386 |
+
*
|
387 |
+
* @param string $key The option key.
|
388 |
+
* @param mixed $empty_value Value when empty.
|
389 |
+
* @return mixed
|
390 |
+
*/
|
391 |
+
public function get_option( $key, $empty_value = null ) {
|
392 |
+
if ( 'enabled' === $key ) {
|
393 |
+
return $this->is_enabled();
|
394 |
+
}
|
395 |
+
|
396 |
+
return parent::get_option( $key, $empty_value );
|
397 |
+
}
|
398 |
+
|
399 |
+
/**
|
400 |
+
* Handle update of WC settings.
|
401 |
+
*
|
402 |
+
* @param string $key The option key.
|
403 |
+
* @param string $value The option value.
|
404 |
+
* @return bool was anything saved?
|
405 |
+
*/
|
406 |
+
public function update_option( $key, $value = '' ) {
|
407 |
+
$ret = parent::update_option( $key, $value );
|
408 |
+
|
409 |
+
if ( 'enabled' === $key ) {
|
410 |
+
$this->config->set( 'dcc_enabled', 'yes' === $value );
|
411 |
+
$this->config->persist();
|
412 |
+
|
413 |
+
return true;
|
414 |
+
}
|
415 |
+
|
416 |
+
return $ret;
|
417 |
+
}
|
418 |
+
|
419 |
+
/**
|
420 |
+
* Returns if the gateway is enabled.
|
421 |
+
*
|
422 |
+
* @return bool
|
423 |
+
*/
|
424 |
+
private function is_enabled(): bool {
|
425 |
+
return $this->config->has( 'dcc_enabled' ) && $this->config->get( 'dcc_enabled' );
|
426 |
+
}
|
427 |
}
|
modules/ppcp-wc-gateway/src/Gateway/class-paypalgateway.php
CHANGED
@@ -19,6 +19,7 @@ use WooCommerce\PayPalCommerce\WcGateway\Processor\RefundProcessor;
|
|
19 |
use WooCommerce\PayPalCommerce\WcGateway\Settings\SectionsRenderer;
|
20 |
use WooCommerce\PayPalCommerce\WcGateway\Settings\SettingsRenderer;
|
21 |
use Psr\Container\ContainerInterface;
|
|
|
22 |
|
23 |
/**
|
24 |
* Class PayPalGateway
|
@@ -103,6 +104,13 @@ class PayPalGateway extends \WC_Payment_Gateway {
|
|
103 |
*/
|
104 |
private $onboarded;
|
105 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
106 |
/**
|
107 |
* PayPalGateway constructor.
|
108 |
*
|
@@ -116,6 +124,7 @@ class PayPalGateway extends \WC_Payment_Gateway {
|
|
116 |
* @param State $state The state.
|
117 |
* @param TransactionUrlProvider $transaction_url_provider Service providing transaction view URL based on order.
|
118 |
* @param SubscriptionHelper $subscription_helper The subscription helper.
|
|
|
119 |
*/
|
120 |
public function __construct(
|
121 |
SettingsRenderer $settings_renderer,
|
@@ -127,7 +136,8 @@ class PayPalGateway extends \WC_Payment_Gateway {
|
|
127 |
RefundProcessor $refund_processor,
|
128 |
State $state,
|
129 |
TransactionUrlProvider $transaction_url_provider,
|
130 |
-
SubscriptionHelper $subscription_helper
|
|
|
131 |
) {
|
132 |
|
133 |
$this->id = self::ID;
|
@@ -139,6 +149,7 @@ class PayPalGateway extends \WC_Payment_Gateway {
|
|
139 |
$this->session_handler = $session_handler;
|
140 |
$this->refund_processor = $refund_processor;
|
141 |
$this->transaction_url_provider = $transaction_url_provider;
|
|
|
142 |
$this->onboarded = $state->current_state() === State::STATE_ONBOARDED;
|
143 |
|
144 |
if ( $this->onboarded ) {
|
@@ -214,7 +225,7 @@ class PayPalGateway extends \WC_Payment_Gateway {
|
|
214 |
),
|
215 |
);
|
216 |
|
217 |
-
$should_show_enabled_checkbox =
|
218 |
if ( ! $should_show_enabled_checkbox ) {
|
219 |
unset( $this->form_fields['enabled'] );
|
220 |
}
|
@@ -298,6 +309,9 @@ class PayPalGateway extends \WC_Payment_Gateway {
|
|
298 |
if ( $this->is_credit_card_tab() ) {
|
299 |
return __( 'PayPal Card Processing', 'woocommerce-paypal-payments' );
|
300 |
}
|
|
|
|
|
|
|
301 |
if ( $this->is_paypal_tab() ) {
|
302 |
return __( 'PayPal Checkout', 'woocommerce-paypal-payments' );
|
303 |
}
|
@@ -316,6 +330,12 @@ class PayPalGateway extends \WC_Payment_Gateway {
|
|
316 |
'woocommerce-paypal-payments'
|
317 |
);
|
318 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
319 |
|
320 |
return __(
|
321 |
'Accept PayPal, Pay Later and alternative payment types.',
|
@@ -332,11 +352,20 @@ class PayPalGateway extends \WC_Payment_Gateway {
|
|
332 |
*/
|
333 |
private function is_credit_card_tab() : bool {
|
334 |
return is_admin()
|
335 |
-
&&
|
336 |
-
&& CreditCardGateway::ID === sanitize_text_field( wp_unslash( $_GET[ SectionsRenderer::KEY ] ) );
|
337 |
|
338 |
}
|
339 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
340 |
/**
|
341 |
* Whether we are on the PayPal settings tab.
|
342 |
*
|
@@ -345,8 +374,7 @@ class PayPalGateway extends \WC_Payment_Gateway {
|
|
345 |
private function is_paypal_tab() : bool {
|
346 |
return ! $this->is_credit_card_tab()
|
347 |
&& is_admin()
|
348 |
-
&&
|
349 |
-
&& self::ID === sanitize_text_field( wp_unslash( $_GET['section'] ) );
|
350 |
}
|
351 |
// phpcs:enable WordPress.Security.NonceVerification.Recommended
|
352 |
|
@@ -387,14 +415,18 @@ class PayPalGateway extends \WC_Payment_Gateway {
|
|
387 |
*
|
388 |
* @param string $key The option key.
|
389 |
* @param string $value The option value.
|
390 |
-
* @return bool
|
391 |
*/
|
392 |
public function update_option( $key, $value = '' ) {
|
393 |
-
parent::update_option( $key, $value );
|
394 |
|
395 |
if ( 'enabled' === $key ) {
|
396 |
$this->config->set( 'enabled', 'yes' === $value );
|
397 |
$this->config->persist();
|
|
|
|
|
398 |
}
|
|
|
|
|
399 |
}
|
400 |
}
|
19 |
use WooCommerce\PayPalCommerce\WcGateway\Settings\SectionsRenderer;
|
20 |
use WooCommerce\PayPalCommerce\WcGateway\Settings\SettingsRenderer;
|
21 |
use Psr\Container\ContainerInterface;
|
22 |
+
use WooCommerce\PayPalCommerce\Webhooks\Status\WebhooksStatusPage;
|
23 |
|
24 |
/**
|
25 |
* Class PayPalGateway
|
104 |
*/
|
105 |
private $onboarded;
|
106 |
|
107 |
+
/**
|
108 |
+
* ID of the current PPCP gateway settings page, or empty if it is not such page.
|
109 |
+
*
|
110 |
+
* @var string
|
111 |
+
*/
|
112 |
+
protected $page_id;
|
113 |
+
|
114 |
/**
|
115 |
* PayPalGateway constructor.
|
116 |
*
|
124 |
* @param State $state The state.
|
125 |
* @param TransactionUrlProvider $transaction_url_provider Service providing transaction view URL based on order.
|
126 |
* @param SubscriptionHelper $subscription_helper The subscription helper.
|
127 |
+
* @param string $page_id ID of the current PPCP gateway settings page, or empty if it is not such page.
|
128 |
*/
|
129 |
public function __construct(
|
130 |
SettingsRenderer $settings_renderer,
|
136 |
RefundProcessor $refund_processor,
|
137 |
State $state,
|
138 |
TransactionUrlProvider $transaction_url_provider,
|
139 |
+
SubscriptionHelper $subscription_helper,
|
140 |
+
string $page_id
|
141 |
) {
|
142 |
|
143 |
$this->id = self::ID;
|
149 |
$this->session_handler = $session_handler;
|
150 |
$this->refund_processor = $refund_processor;
|
151 |
$this->transaction_url_provider = $transaction_url_provider;
|
152 |
+
$this->page_id = $page_id;
|
153 |
$this->onboarded = $state->current_state() === State::STATE_ONBOARDED;
|
154 |
|
155 |
if ( $this->onboarded ) {
|
225 |
),
|
226 |
);
|
227 |
|
228 |
+
$should_show_enabled_checkbox = $this->is_paypal_tab() && ( $this->config->has( 'merchant_email' ) && $this->config->get( 'merchant_email' ) );
|
229 |
if ( ! $should_show_enabled_checkbox ) {
|
230 |
unset( $this->form_fields['enabled'] );
|
231 |
}
|
309 |
if ( $this->is_credit_card_tab() ) {
|
310 |
return __( 'PayPal Card Processing', 'woocommerce-paypal-payments' );
|
311 |
}
|
312 |
+
if ( $this->is_webhooks_tab() ) {
|
313 |
+
return __( 'Webhooks Status', 'woocommerce-paypal-payments' );
|
314 |
+
}
|
315 |
if ( $this->is_paypal_tab() ) {
|
316 |
return __( 'PayPal Checkout', 'woocommerce-paypal-payments' );
|
317 |
}
|
330 |
'woocommerce-paypal-payments'
|
331 |
);
|
332 |
}
|
333 |
+
if ( $this->is_webhooks_tab() ) {
|
334 |
+
return __(
|
335 |
+
'Status of the webhooks subscription.',
|
336 |
+
'woocommerce-paypal-payments'
|
337 |
+
);
|
338 |
+
}
|
339 |
|
340 |
return __(
|
341 |
'Accept PayPal, Pay Later and alternative payment types.',
|
352 |
*/
|
353 |
private function is_credit_card_tab() : bool {
|
354 |
return is_admin()
|
355 |
+
&& CreditCardGateway::ID === $this->page_id;
|
|
|
356 |
|
357 |
}
|
358 |
|
359 |
+
/**
|
360 |
+
* Whether we are on the Webhooks Status tab.
|
361 |
+
*
|
362 |
+
* @return bool
|
363 |
+
*/
|
364 |
+
private function is_webhooks_tab() : bool {
|
365 |
+
return is_admin()
|
366 |
+
&& WebhooksStatusPage::ID === $this->page_id;
|
367 |
+
}
|
368 |
+
|
369 |
/**
|
370 |
* Whether we are on the PayPal settings tab.
|
371 |
*
|
374 |
private function is_paypal_tab() : bool {
|
375 |
return ! $this->is_credit_card_tab()
|
376 |
&& is_admin()
|
377 |
+
&& self::ID === $this->page_id;
|
|
|
378 |
}
|
379 |
// phpcs:enable WordPress.Security.NonceVerification.Recommended
|
380 |
|
415 |
*
|
416 |
* @param string $key The option key.
|
417 |
* @param string $value The option value.
|
418 |
+
* @return bool was anything saved?
|
419 |
*/
|
420 |
public function update_option( $key, $value = '' ) {
|
421 |
+
$ret = parent::update_option( $key, $value );
|
422 |
|
423 |
if ( 'enabled' === $key ) {
|
424 |
$this->config->set( 'enabled', 'yes' === $value );
|
425 |
$this->config->persist();
|
426 |
+
|
427 |
+
return true;
|
428 |
}
|
429 |
+
|
430 |
+
return $ret;
|
431 |
}
|
432 |
}
|
modules/ppcp-wc-gateway/src/Gateway/class-processpaymenttrait.php
CHANGED
@@ -85,7 +85,27 @@ trait ProcessPaymentTrait {
|
|
85 |
'redirect' => $this->get_return_url( $wc_order ),
|
86 |
);
|
87 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
88 |
} catch ( RuntimeException $error ) {
|
|
|
89 |
$this->session_handler->destroy_session_data();
|
90 |
wc_add_notice( $error->getMessage(), 'error' );
|
91 |
return null;
|
85 |
'redirect' => $this->get_return_url( $wc_order ),
|
86 |
);
|
87 |
}
|
88 |
+
|
89 |
+
if ( $order->status()->is( OrderStatus::COMPLETED ) && $order->intent() === 'AUTHORIZE' ) {
|
90 |
+
$this->order_endpoint->authorize( $order );
|
91 |
+
$wc_order->update_meta_data( PayPalGateway::CAPTURED_META_KEY, 'false' );
|
92 |
+
$wc_order->update_meta_data( PayPalGateway::ORDER_ID_META_KEY, $order->id() );
|
93 |
+
$wc_order->update_status(
|
94 |
+
'on-hold',
|
95 |
+
__( 'Awaiting payment.', 'woocommerce-paypal-payments' )
|
96 |
+
);
|
97 |
+
|
98 |
+
$this->session_handler->destroy_session_data();
|
99 |
+
return array(
|
100 |
+
'result' => 'success',
|
101 |
+
'redirect' => $this->get_return_url( $wc_order ),
|
102 |
+
);
|
103 |
+
}
|
104 |
+
|
105 |
+
$this->logger->warning( "Could neither capture nor authorize order {$order->id()} using a saved credit card:" . 'Status: ' . $order->status()->name() . ' Intent: ' . $order->intent() );
|
106 |
+
|
107 |
} catch ( RuntimeException $error ) {
|
108 |
+
$this->logger->error( $error->getMessage() );
|
109 |
$this->session_handler->destroy_session_data();
|
110 |
wc_add_notice( $error->getMessage(), 'error' );
|
111 |
return null;
|
modules/ppcp-wc-gateway/src/Notice/class-dccwithoutpaypaladminnotice.php
ADDED
@@ -0,0 +1,101 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Creates the admin message about the DCC gateway being enabled without the PayPal gateway.
|
4 |
+
*
|
5 |
+
* @package WooCommerce\PayPalCommerce\WcGateway\Notice
|
6 |
+
*/
|
7 |
+
|
8 |
+
declare(strict_types=1);
|
9 |
+
|
10 |
+
namespace WooCommerce\PayPalCommerce\WcGateway\Notice;
|
11 |
+
|
12 |
+
use WooCommerce\PayPalCommerce\AdminNotices\Entity\Message;
|
13 |
+
use WooCommerce\PayPalCommerce\Onboarding\State;
|
14 |
+
use Psr\Container\ContainerInterface;
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Creates the admin message about the DCC gateway being enabled without the PayPal gateway.
|
18 |
+
*/
|
19 |
+
class DccWithoutPayPalAdminNotice {
|
20 |
+
|
21 |
+
/**
|
22 |
+
* The state.
|
23 |
+
*
|
24 |
+
* @var State
|
25 |
+
*/
|
26 |
+
private $state;
|
27 |
+
|
28 |
+
/**
|
29 |
+
* The settings.
|
30 |
+
*
|
31 |
+
* @var ContainerInterface
|
32 |
+
*/
|
33 |
+
private $settings;
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Whether the current page is the WC payment page.
|
37 |
+
*
|
38 |
+
* @var bool
|
39 |
+
*/
|
40 |
+
private $is_payments_page;
|
41 |
+
|
42 |
+
/**
|
43 |
+
* Whether the current page is the PPCP settings page.
|
44 |
+
*
|
45 |
+
* @var bool
|
46 |
+
*/
|
47 |
+
private $is_ppcp_settings_page;
|
48 |
+
|
49 |
+
/**
|
50 |
+
* ConnectAdminNotice constructor.
|
51 |
+
*
|
52 |
+
* @param State $state The state.
|
53 |
+
* @param ContainerInterface $settings The settings.
|
54 |
+
* @param bool $is_payments_page Whether the current page is the WC payment page.
|
55 |
+
* @param bool $is_ppcp_settings_page Whether the current page is the PPCP settings page.
|
56 |
+
*/
|
57 |
+
public function __construct(
|
58 |
+
State $state,
|
59 |
+
ContainerInterface $settings,
|
60 |
+
bool $is_payments_page,
|
61 |
+
bool $is_ppcp_settings_page
|
62 |
+
) {
|
63 |
+
$this->state = $state;
|
64 |
+
$this->settings = $settings;
|
65 |
+
$this->is_payments_page = $is_payments_page;
|
66 |
+
$this->is_ppcp_settings_page = $is_ppcp_settings_page;
|
67 |
+
}
|
68 |
+
|
69 |
+
/**
|
70 |
+
* Returns the message.
|
71 |
+
*
|
72 |
+
* @return Message|null
|
73 |
+
*/
|
74 |
+
public function message(): ?Message {
|
75 |
+
if ( ! $this->should_display() ) {
|
76 |
+
return null;
|
77 |
+
}
|
78 |
+
|
79 |
+
$message = sprintf(
|
80 |
+
/* translators: %1$s the gateway name. */
|
81 |
+
__(
|
82 |
+
'PayPal Card Processing cannot be used without the PayPal gateway. <a href="%1$s">Enable the PayPal Gateway</a>.',
|
83 |
+
'woocommerce-paypal-payments'
|
84 |
+
),
|
85 |
+
admin_url( 'admin.php?page=wc-settings&tab=checkout§ion=ppcp-gateway' )
|
86 |
+
);
|
87 |
+
return new Message( $message, 'warning' );
|
88 |
+
}
|
89 |
+
|
90 |
+
/**
|
91 |
+
* Whether the message should be displayed.
|
92 |
+
*
|
93 |
+
* @return bool
|
94 |
+
*/
|
95 |
+
protected function should_display(): bool {
|
96 |
+
return State::STATE_ONBOARDED === $this->state->current_state()
|
97 |
+
&& ( $this->is_payments_page || $this->is_ppcp_settings_page )
|
98 |
+
&& ( $this->settings->has( 'dcc_enabled' ) && $this->settings->get( 'dcc_enabled' ) )
|
99 |
+
&& ( ! $this->settings->has( 'enabled' ) || ! $this->settings->get( 'enabled' ) );
|
100 |
+
}
|
101 |
+
}
|
modules/ppcp-wc-gateway/src/Processor/class-orderprocessor.php
CHANGED
@@ -16,7 +16,7 @@ use WooCommerce\PayPalCommerce\ApiClient\Entity\OrderStatus;
|
|
16 |
use WooCommerce\PayPalCommerce\ApiClient\Factory\OrderFactory;
|
17 |
use WooCommerce\PayPalCommerce\Button\Helper\ThreeDSecure;
|
18 |
use WooCommerce\PayPalCommerce\Session\SessionHandler;
|
19 |
-
use WooCommerce\PayPalCommerce\
|
20 |
use WooCommerce\PayPalCommerce\WcGateway\Gateway\PayPalGateway;
|
21 |
use WooCommerce\PayPalCommerce\WcGateway\Settings\Settings;
|
22 |
|
16 |
use WooCommerce\PayPalCommerce\ApiClient\Factory\OrderFactory;
|
17 |
use WooCommerce\PayPalCommerce\Button\Helper\ThreeDSecure;
|
18 |
use WooCommerce\PayPalCommerce\Session\SessionHandler;
|
19 |
+
use WooCommerce\PayPalCommerce\Vaulting\PaymentTokenRepository;
|
20 |
use WooCommerce\PayPalCommerce\WcGateway\Gateway\PayPalGateway;
|
21 |
use WooCommerce\PayPalCommerce\WcGateway\Settings\Settings;
|
22 |
|
modules/ppcp-wc-gateway/src/Processor/class-refundprocessor.php
CHANGED
@@ -88,7 +88,7 @@ class RefundProcessor {
|
|
88 |
$capture->invoice_id(),
|
89 |
$reason,
|
90 |
new Amount(
|
91 |
-
new Money( $amount,
|
92 |
)
|
93 |
);
|
94 |
return $this->payments_endpoint->refund( $refund );
|
88 |
$capture->invoice_id(),
|
89 |
$reason,
|
90 |
new Amount(
|
91 |
+
new Money( $amount, $wc_order->get_currency() )
|
92 |
)
|
93 |
);
|
94 |
return $this->payments_endpoint->refund( $refund );
|
modules/ppcp-wc-gateway/src/Settings/class-pagematchertrait.php
ADDED
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* PageMatcherTrait.
|
4 |
+
*
|
5 |
+
* @package WooCommerce\PayPalCommerce\WcGateway\Settings
|
6 |
+
*/
|
7 |
+
|
8 |
+
declare(strict_types=1);
|
9 |
+
|
10 |
+
namespace WooCommerce\PayPalCommerce\WcGateway\Settings;
|
11 |
+
|
12 |
+
use WooCommerce\PayPalCommerce\AdminNotices\Entity\Message;
|
13 |
+
use WooCommerce\PayPalCommerce\ApiClient\Helper\DccApplies;
|
14 |
+
use WooCommerce\PayPalCommerce\Button\Helper\MessagesApply;
|
15 |
+
use WooCommerce\PayPalCommerce\Onboarding\State;
|
16 |
+
use WooCommerce\PayPalCommerce\WcGateway\Gateway\CreditCardGateway;
|
17 |
+
use Psr\Container\ContainerInterface;
|
18 |
+
use WooCommerce\PayPalCommerce\WcGateway\Gateway\PayPalGateway;
|
19 |
+
use Woocommerce\PayPalCommerce\WcGateway\Helper\DccProductStatus;
|
20 |
+
use Woocommerce\PayPalCommerce\WcGateway\Helper\SettingsStatus;
|
21 |
+
use WooCommerce\PayPalCommerce\Webhooks\Status\WebhooksStatusPage;
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Class PageMatcherTrait.
|
25 |
+
*/
|
26 |
+
trait PageMatcherTrait {
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Checks whether the field config matches the current page (can be rendered here).
|
30 |
+
*
|
31 |
+
* @param array $field_config The field config (from wcgateway.settings.fields).
|
32 |
+
* @param string $current_page_id ID of the current PPCP gateway settings page.
|
33 |
+
* @return bool
|
34 |
+
*/
|
35 |
+
protected function field_matches_page( array $field_config, string $current_page_id ): bool {
|
36 |
+
$allowed_gateways = $field_config['gateway'];
|
37 |
+
if ( ! is_array( $allowed_gateways ) ) {
|
38 |
+
$allowed_gateways = array( $allowed_gateways );
|
39 |
+
}
|
40 |
+
|
41 |
+
$gateway_page_id_map = array(
|
42 |
+
PayPalGateway::ID => 'paypal',
|
43 |
+
CreditCardGateway::ID => 'dcc', // TODO: consider using just the gateway ID for PayPal and DCC too.
|
44 |
+
WebhooksStatusPage::ID => WebhooksStatusPage::ID,
|
45 |
+
);
|
46 |
+
return array_key_exists( $current_page_id, $gateway_page_id_map )
|
47 |
+
&& in_array( $gateway_page_id_map[ $current_page_id ], $allowed_gateways, true );
|
48 |
+
}
|
49 |
+
}
|
modules/ppcp-wc-gateway/src/Settings/class-sectionsrenderer.php
CHANGED
@@ -11,6 +11,7 @@ namespace WooCommerce\PayPalCommerce\WcGateway\Settings;
|
|
11 |
|
12 |
use WooCommerce\PayPalCommerce\WcGateway\Gateway\CreditCardGateway;
|
13 |
use WooCommerce\PayPalCommerce\WcGateway\Gateway\PayPalGateway;
|
|
|
14 |
|
15 |
/**
|
16 |
* Class SectionsRenderer
|
@@ -19,15 +20,29 @@ class SectionsRenderer {
|
|
19 |
|
20 |
const KEY = 'ppcp-tab';
|
21 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
/**
|
23 |
* Whether the sections tab should be rendered.
|
24 |
*
|
25 |
* @return bool
|
26 |
*/
|
27 |
public function should_render() : bool {
|
28 |
-
|
29 |
-
global $current_section;
|
30 |
-
return PayPalGateway::ID === $current_section;
|
31 |
}
|
32 |
|
33 |
/**
|
@@ -38,11 +53,10 @@ class SectionsRenderer {
|
|
38 |
return;
|
39 |
}
|
40 |
|
41 |
-
//phpcs:ignore WordPress.Security.NonceVerification.Recommended
|
42 |
-
$current = ! isset( $_GET[ self::KEY ] ) ? PayPalGateway::ID : sanitize_text_field( wp_unslash( $_GET[ self::KEY ] ) );
|
43 |
$sections = array(
|
44 |
-
PayPalGateway::ID
|
45 |
-
CreditCardGateway::ID
|
|
|
46 |
);
|
47 |
|
48 |
echo '<ul class="subsubsub">';
|
@@ -51,7 +65,7 @@ class SectionsRenderer {
|
|
51 |
|
52 |
foreach ( $sections as $id => $label ) {
|
53 |
$url = admin_url( 'admin.php?page=wc-settings&tab=checkout§ion=ppcp-gateway&' . self::KEY . '=' . $id );
|
54 |
-
echo '<li><a href="' . esc_url( $url ) . '" class="' . ( $
|
55 |
}
|
56 |
|
57 |
echo '</ul><br class="clear" />';
|
11 |
|
12 |
use WooCommerce\PayPalCommerce\WcGateway\Gateway\CreditCardGateway;
|
13 |
use WooCommerce\PayPalCommerce\WcGateway\Gateway\PayPalGateway;
|
14 |
+
use WooCommerce\PayPalCommerce\Webhooks\Status\WebhooksStatusPage;
|
15 |
|
16 |
/**
|
17 |
* Class SectionsRenderer
|
20 |
|
21 |
const KEY = 'ppcp-tab';
|
22 |
|
23 |
+
/**
|
24 |
+
* ID of the current PPCP gateway settings page, or empty if it is not such page.
|
25 |
+
*
|
26 |
+
* @var string
|
27 |
+
*/
|
28 |
+
protected $page_id;
|
29 |
+
|
30 |
+
/**
|
31 |
+
* SectionsRenderer constructor.
|
32 |
+
*
|
33 |
+
* @param string $page_id ID of the current PPCP gateway settings page, or empty if it is not such page.
|
34 |
+
*/
|
35 |
+
public function __construct( string $page_id ) {
|
36 |
+
$this->page_id = $page_id;
|
37 |
+
}
|
38 |
+
|
39 |
/**
|
40 |
* Whether the sections tab should be rendered.
|
41 |
*
|
42 |
* @return bool
|
43 |
*/
|
44 |
public function should_render() : bool {
|
45 |
+
return ! empty( $this->page_id );
|
|
|
|
|
46 |
}
|
47 |
|
48 |
/**
|
53 |
return;
|
54 |
}
|
55 |
|
|
|
|
|
56 |
$sections = array(
|
57 |
+
PayPalGateway::ID => __( 'PayPal Checkout', 'woocommerce-paypal-payments' ),
|
58 |
+
CreditCardGateway::ID => __( 'PayPal Card Processing', 'woocommerce-paypal-payments' ),
|
59 |
+
WebhooksStatusPage::ID => __( 'Webhooks Status', 'woocommerce-paypal-payments' ),
|
60 |
);
|
61 |
|
62 |
echo '<ul class="subsubsub">';
|
65 |
|
66 |
foreach ( $sections as $id => $label ) {
|
67 |
$url = admin_url( 'admin.php?page=wc-settings&tab=checkout§ion=ppcp-gateway&' . self::KEY . '=' . $id );
|
68 |
+
echo '<li><a href="' . esc_url( $url ) . '" class="' . ( $this->page_id === $id ? 'current' : '' ) . '">' . esc_html( $label ) . '</a> ' . ( end( $array_keys ) === $id ? '' : '|' ) . ' </li>';
|
69 |
}
|
70 |
|
71 |
echo '</ul><br class="clear" />';
|
modules/ppcp-wc-gateway/src/Settings/class-settingslistener.php
CHANGED
@@ -23,8 +23,15 @@ use WooCommerce\PayPalCommerce\Webhooks\WebhookRegistrar;
|
|
23 |
*/
|
24 |
class SettingsListener {
|
25 |
|
|
|
|
|
26 |
const NONCE = 'ppcp-settings';
|
27 |
|
|
|
|
|
|
|
|
|
|
|
28 |
/**
|
29 |
* The Settings.
|
30 |
*
|
@@ -67,6 +74,13 @@ class SettingsListener {
|
|
67 |
*/
|
68 |
private $bearer;
|
69 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
70 |
/**
|
71 |
* SettingsListener constructor.
|
72 |
*
|
@@ -76,6 +90,7 @@ class SettingsListener {
|
|
76 |
* @param Cache $cache The Cache.
|
77 |
* @param State $state The state.
|
78 |
* @param Bearer $bearer The bearer.
|
|
|
79 |
*/
|
80 |
public function __construct(
|
81 |
Settings $settings,
|
@@ -83,7 +98,8 @@ class SettingsListener {
|
|
83 |
WebhookRegistrar $webhook_registrar,
|
84 |
Cache $cache,
|
85 |
State $state,
|
86 |
-
Bearer $bearer
|
|
|
87 |
) {
|
88 |
|
89 |
$this->settings = $settings;
|
@@ -92,6 +108,7 @@ class SettingsListener {
|
|
92 |
$this->cache = $cache;
|
93 |
$this->state = $state;
|
94 |
$this->bearer = $bearer;
|
|
|
95 |
}
|
96 |
|
97 |
/**
|
@@ -218,18 +235,46 @@ class SettingsListener {
|
|
218 |
|
219 |
$settings = $this->read_active_credentials_from_settings( $settings );
|
220 |
|
221 |
-
|
|
|
|
|
222 |
$settings['enabled'] = isset( $_POST['woocommerce_ppcp-gateway_enabled'] )
|
223 |
&& 1 === absint( $_POST['woocommerce_ppcp-gateway_enabled'] );
|
224 |
-
|
|
|
225 |
}
|
226 |
// phpcs:enable phpcs:disable WordPress.Security.NonceVerification.Missing
|
227 |
// phpcs:enable phpcs:disable WordPress.Security.NonceVerification.Missing
|
228 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
229 |
foreach ( $settings as $id => $value ) {
|
230 |
$this->settings->set( $id, $value );
|
231 |
}
|
232 |
$this->settings->persist();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
233 |
if ( $this->cache->has( PayPalBearer::CACHE_KEY ) ) {
|
234 |
$this->cache->delete( PayPalBearer::CACHE_KEY );
|
235 |
}
|
@@ -265,30 +310,36 @@ class SettingsListener {
|
|
265 |
}
|
266 |
|
267 |
/**
|
268 |
-
*
|
269 |
-
*
|
270 |
-
* @param array $settings The settings.
|
271 |
*
|
272 |
-
* @
|
|
|
273 |
*/
|
274 |
-
private function
|
|
|
|
|
|
|
|
|
275 |
|
276 |
-
|
277 |
-
|
278 |
-
|
|
|
|
|
279 |
}
|
280 |
-
if ( $
|
281 |
-
|
282 |
-
|
|
|
|
|
283 |
if (
|
284 |
-
$
|
285 |
-
|| $
|
286 |
) {
|
287 |
-
|
288 |
-
$this->webhook_registrar->unregister();
|
289 |
-
$this->webhook_registrar->register();
|
290 |
}
|
291 |
}
|
|
|
292 |
}
|
293 |
|
294 |
/**
|
@@ -311,20 +362,7 @@ class SettingsListener {
|
|
311 |
if ( ! in_array( $this->state->current_state(), $config['screens'], true ) ) {
|
312 |
continue;
|
313 |
}
|
314 |
-
if (
|
315 |
-
'dcc' === $config['gateway']
|
316 |
-
&& (
|
317 |
-
! isset( $_GET[ SectionsRenderer::KEY ] )
|
318 |
-
|| sanitize_text_field( wp_unslash( $_GET[ SectionsRenderer::KEY ] ) ) !== CreditCardGateway::ID
|
319 |
-
)
|
320 |
-
) {
|
321 |
-
continue;
|
322 |
-
}
|
323 |
-
if (
|
324 |
-
'paypal' === $config['gateway']
|
325 |
-
&& isset( $_GET[ SectionsRenderer::KEY ] )
|
326 |
-
&& sanitize_text_field( wp_unslash( $_GET[ SectionsRenderer::KEY ] ) ) !== PayPalGateway::ID
|
327 |
-
) {
|
328 |
continue;
|
329 |
}
|
330 |
switch ( $config['type'] ) {
|
@@ -406,14 +444,7 @@ class SettingsListener {
|
|
406 |
* phpcs:disable WordPress.Security.NonceVerification.Missing
|
407 |
* phpcs:disable WordPress.Security.NonceVerification.Recommended
|
408 |
*/
|
409 |
-
if (
|
410 |
-
! isset( $_REQUEST['section'] )
|
411 |
-
|| ! in_array(
|
412 |
-
sanitize_text_field( wp_unslash( $_REQUEST['section'] ) ),
|
413 |
-
array( 'ppcp-gateway', 'ppcp-credit-card-gateway' ),
|
414 |
-
true
|
415 |
-
)
|
416 |
-
) {
|
417 |
return false;
|
418 |
}
|
419 |
|
23 |
*/
|
24 |
class SettingsListener {
|
25 |
|
26 |
+
use PageMatcherTrait;
|
27 |
+
|
28 |
const NONCE = 'ppcp-settings';
|
29 |
|
30 |
+
private const CREDENTIALS_ADDED = 'credentials_added';
|
31 |
+
private const CREDENTIALS_REMOVED = 'credentials_removed';
|
32 |
+
private const CREDENTIALS_CHANGED = 'credentials_changed';
|
33 |
+
private const CREDENTIALS_UNCHANGED = 'credentials_unchanged';
|
34 |
+
|
35 |
/**
|
36 |
* The Settings.
|
37 |
*
|
74 |
*/
|
75 |
private $bearer;
|
76 |
|
77 |
+
/**
|
78 |
+
* ID of the current PPCP gateway settings page, or empty if it is not such page.
|
79 |
+
*
|
80 |
+
* @var string
|
81 |
+
*/
|
82 |
+
protected $page_id;
|
83 |
+
|
84 |
/**
|
85 |
* SettingsListener constructor.
|
86 |
*
|
90 |
* @param Cache $cache The Cache.
|
91 |
* @param State $state The state.
|
92 |
* @param Bearer $bearer The bearer.
|
93 |
+
* @param string $page_id ID of the current PPCP gateway settings page, or empty if it is not such page.
|
94 |
*/
|
95 |
public function __construct(
|
96 |
Settings $settings,
|
98 |
WebhookRegistrar $webhook_registrar,
|
99 |
Cache $cache,
|
100 |
State $state,
|
101 |
+
Bearer $bearer,
|
102 |
+
string $page_id
|
103 |
) {
|
104 |
|
105 |
$this->settings = $settings;
|
108 |
$this->cache = $cache;
|
109 |
$this->state = $state;
|
110 |
$this->bearer = $bearer;
|
111 |
+
$this->page_id = $page_id;
|
112 |
}
|
113 |
|
114 |
/**
|
235 |
|
236 |
$settings = $this->read_active_credentials_from_settings( $settings );
|
237 |
|
238 |
+
$credentials_change_status = null; // Cannot detect on Card Processing page.
|
239 |
+
|
240 |
+
if ( PayPalGateway::ID === $this->page_id ) {
|
241 |
$settings['enabled'] = isset( $_POST['woocommerce_ppcp-gateway_enabled'] )
|
242 |
&& 1 === absint( $_POST['woocommerce_ppcp-gateway_enabled'] );
|
243 |
+
|
244 |
+
$credentials_change_status = $this->determine_credentials_change_status( $settings );
|
245 |
}
|
246 |
// phpcs:enable phpcs:disable WordPress.Security.NonceVerification.Missing
|
247 |
// phpcs:enable phpcs:disable WordPress.Security.NonceVerification.Missing
|
248 |
|
249 |
+
if ( $credentials_change_status ) {
|
250 |
+
if ( self::CREDENTIALS_UNCHANGED !== $credentials_change_status ) {
|
251 |
+
$this->settings->set( 'products_dcc_enabled', null );
|
252 |
+
}
|
253 |
+
|
254 |
+
if ( in_array(
|
255 |
+
$credentials_change_status,
|
256 |
+
array( self::CREDENTIALS_REMOVED, self::CREDENTIALS_CHANGED ),
|
257 |
+
true
|
258 |
+
) ) {
|
259 |
+
$this->webhook_registrar->unregister();
|
260 |
+
}
|
261 |
+
}
|
262 |
+
|
263 |
foreach ( $settings as $id => $value ) {
|
264 |
$this->settings->set( $id, $value );
|
265 |
}
|
266 |
$this->settings->persist();
|
267 |
+
|
268 |
+
if ( $credentials_change_status ) {
|
269 |
+
if ( in_array(
|
270 |
+
$credentials_change_status,
|
271 |
+
array( self::CREDENTIALS_ADDED, self::CREDENTIALS_CHANGED ),
|
272 |
+
true
|
273 |
+
) ) {
|
274 |
+
$this->webhook_registrar->register();
|
275 |
+
}
|
276 |
+
}
|
277 |
+
|
278 |
if ( $this->cache->has( PayPalBearer::CACHE_KEY ) ) {
|
279 |
$this->cache->delete( PayPalBearer::CACHE_KEY );
|
280 |
}
|
310 |
}
|
311 |
|
312 |
/**
|
313 |
+
* Checks whether on the credentials changed.
|
|
|
|
|
314 |
*
|
315 |
+
* @param array $new_settings New settings.
|
316 |
+
* @return string One of the CREDENTIALS_ constants.
|
317 |
*/
|
318 |
+
private function determine_credentials_change_status( array $new_settings ): string {
|
319 |
+
$current_id = $this->settings->has( 'client_id' ) ? $this->settings->get( 'client_id' ) : '';
|
320 |
+
$current_secret = $this->settings->has( 'client_secret' ) ? $this->settings->get( 'client_secret' ) : '';
|
321 |
+
$new_id = $new_settings['client_id'] ?? '';
|
322 |
+
$new_secret = $new_settings['client_secret'] ?? '';
|
323 |
|
324 |
+
$had_credentials = $current_id && $current_secret;
|
325 |
+
$submitted_credentials = $new_id && $new_secret;
|
326 |
+
|
327 |
+
if ( ! $had_credentials && $submitted_credentials ) {
|
328 |
+
return self::CREDENTIALS_ADDED;
|
329 |
}
|
330 |
+
if ( $had_credentials ) {
|
331 |
+
if ( ! $submitted_credentials ) {
|
332 |
+
return self::CREDENTIALS_REMOVED;
|
333 |
+
}
|
334 |
+
|
335 |
if (
|
336 |
+
$current_id !== $new_id
|
337 |
+
|| $current_secret !== $new_secret
|
338 |
) {
|
339 |
+
return self::CREDENTIALS_CHANGED;
|
|
|
|
|
340 |
}
|
341 |
}
|
342 |
+
return self::CREDENTIALS_UNCHANGED;
|
343 |
}
|
344 |
|
345 |
/**
|
362 |
if ( ! in_array( $this->state->current_state(), $config['screens'], true ) ) {
|
363 |
continue;
|
364 |
}
|
365 |
+
if ( ! $this->field_matches_page( $config, $this->page_id ) ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
366 |
continue;
|
367 |
}
|
368 |
switch ( $config['type'] ) {
|
444 |
* phpcs:disable WordPress.Security.NonceVerification.Missing
|
445 |
* phpcs:disable WordPress.Security.NonceVerification.Recommended
|
446 |
*/
|
447 |
+
if ( empty( $this->page_id ) ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
448 |
return false;
|
449 |
}
|
450 |
|
modules/ppcp-wc-gateway/src/Settings/class-settingsrenderer.php
CHANGED
@@ -15,6 +15,7 @@ use WooCommerce\PayPalCommerce\Button\Helper\MessagesApply;
|
|
15 |
use WooCommerce\PayPalCommerce\Onboarding\State;
|
16 |
use WooCommerce\PayPalCommerce\WcGateway\Gateway\CreditCardGateway;
|
17 |
use Psr\Container\ContainerInterface;
|
|
|
18 |
use Woocommerce\PayPalCommerce\WcGateway\Helper\DccProductStatus;
|
19 |
use Woocommerce\PayPalCommerce\WcGateway\Helper\SettingsStatus;
|
20 |
|
@@ -23,6 +24,8 @@ use Woocommerce\PayPalCommerce\WcGateway\Helper\SettingsStatus;
|
|
23 |
*/
|
24 |
class SettingsRenderer {
|
25 |
|
|
|
|
|
26 |
/**
|
27 |
* The Settings status helper.
|
28 |
*
|
@@ -72,6 +75,13 @@ class SettingsRenderer {
|
|
72 |
*/
|
73 |
private $dcc_product_status;
|
74 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
75 |
/**
|
76 |
* SettingsRenderer constructor.
|
77 |
*
|
@@ -82,6 +92,7 @@ class SettingsRenderer {
|
|
82 |
* @param MessagesApply $messages_apply Whether messages can be shown.
|
83 |
* @param DccProductStatus $dcc_product_status The product status.
|
84 |
* @param SettingsStatus $settings_status The Settings status helper.
|
|
|
85 |
*/
|
86 |
public function __construct(
|
87 |
ContainerInterface $settings,
|
@@ -90,7 +101,8 @@ class SettingsRenderer {
|
|
90 |
DccApplies $dcc_applies,
|
91 |
MessagesApply $messages_apply,
|
92 |
DccProductStatus $dcc_product_status,
|
93 |
-
SettingsStatus $settings_status
|
|
|
94 |
) {
|
95 |
|
96 |
$this->settings = $settings;
|
@@ -100,6 +112,7 @@ class SettingsRenderer {
|
|
100 |
$this->messages_apply = $messages_apply;
|
101 |
$this->dcc_product_status = $dcc_product_status;
|
102 |
$this->settings_status = $settings_status;
|
|
|
103 |
}
|
104 |
|
105 |
/**
|
@@ -166,21 +179,7 @@ class SettingsRenderer {
|
|
166 |
* @return bool Whether is PayPal checkout screen or not.
|
167 |
*/
|
168 |
private function is_paypal_checkout_screen(): bool {
|
169 |
-
|
170 |
-
//phpcs:disable WordPress.Security.NonceVerification.Recommended
|
171 |
-
//phpcs:disable WordPress.Security.NonceVerification.Missing
|
172 |
-
if ( isset( $current_screen->id ) && 'woocommerce_page_wc-settings' === $current_screen->id
|
173 |
-
&& isset( $_GET['section'] ) && 'ppcp-gateway' === $_GET['section'] ) {
|
174 |
-
|
175 |
-
if ( isset( $_GET['ppcp-tab'] ) && 'ppcp-gateway' !== $_GET['ppcp-tab'] ) {
|
176 |
-
return false;
|
177 |
-
}
|
178 |
-
|
179 |
-
return true;
|
180 |
-
}
|
181 |
-
//phpcs:enable
|
182 |
-
|
183 |
-
return false;
|
184 |
}
|
185 |
|
186 |
/**
|
@@ -312,14 +311,66 @@ class SettingsRenderer {
|
|
312 |
return $html;
|
313 |
}
|
314 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
315 |
/**
|
316 |
* Renders the settings.
|
317 |
*/
|
318 |
public function render() {
|
319 |
|
320 |
-
|
321 |
-
//phpcs:disable WordPress.Security.NonceVerification.Missing
|
322 |
-
$is_dcc = isset( $_GET[ SectionsRenderer::KEY ] ) && CreditCardGateway::ID === sanitize_text_field( wp_unslash( $_GET[ SectionsRenderer::KEY ] ) );
|
323 |
//phpcs:enable WordPress.Security.NonceVerification.Recommended
|
324 |
//phpcs:enable WordPress.Security.NonceVerification.Missing
|
325 |
$nonce = wp_create_nonce( SettingsListener::NONCE );
|
@@ -330,10 +381,7 @@ class SettingsRenderer {
|
|
330 |
if ( ! in_array( $this->state->current_state(), $config['screens'], true ) ) {
|
331 |
continue;
|
332 |
}
|
333 |
-
if (
|
334 |
-
continue;
|
335 |
-
}
|
336 |
-
if ( ! $is_dcc && ! in_array( $config['gateway'], array( 'all', 'paypal' ), true ) ) {
|
337 |
continue;
|
338 |
}
|
339 |
if (
|
@@ -354,7 +402,7 @@ class SettingsRenderer {
|
|
354 |
) {
|
355 |
continue;
|
356 |
}
|
357 |
-
$value = $this->settings->has( $field ) ? $this->settings->get( $field ) : null;
|
358 |
$key = 'ppcp[' . $field . ']';
|
359 |
$id = 'ppcp-' . $field;
|
360 |
$config['id'] = $id;
|
@@ -399,8 +447,6 @@ class SettingsRenderer {
|
|
399 |
if ( $this->dcc_applies->for_country_currency() ) {
|
400 |
if ( State::STATE_ONBOARDED > $this->state->current_state() ) {
|
401 |
$this->render_dcc_onboarding_info();
|
402 |
-
} elseif ( State::STATE_ONBOARDED === $this->state->current_state() && $this->dcc_product_status->dcc_is_active() ) {
|
403 |
-
$this->render_3d_secure_info();
|
404 |
} elseif ( ! $this->dcc_product_status->dcc_is_active() ) {
|
405 |
$this->render_dcc_not_active_yet();
|
406 |
}
|
@@ -450,45 +496,6 @@ class SettingsRenderer {
|
|
450 |
<?php
|
451 |
}
|
452 |
|
453 |
-
/**
|
454 |
-
* Renders the 3d secure info text.
|
455 |
-
*/
|
456 |
-
private function render_3d_secure_info() {
|
457 |
-
?>
|
458 |
-
<tr>
|
459 |
-
<th><?php esc_html_e( '3D Secure', 'woocommerce-paypal-payments' ); ?></th>
|
460 |
-
<td>
|
461 |
-
<p>
|
462 |
-
<?php
|
463 |
-
/**
|
464 |
-
* We still need to provide a docs link.
|
465 |
-
*
|
466 |
-
* @todo: Provide link to documentation.
|
467 |
-
*/
|
468 |
-
echo wp_kses_post(
|
469 |
-
sprintf(
|
470 |
-
// translators: %1$s and %2$s is a link tag.
|
471 |
-
__(
|
472 |
-
'3D Secure benefits cardholders and merchants by providing
|
473 |
-
an additional layer of verification using Verified by Visa,
|
474 |
-
MasterCard SecureCode and American Express SafeKey.
|
475 |
-
%1$sLearn more about 3D Secure.%2$s',
|
476 |
-
'woocommerce-paypal-payments'
|
477 |
-
),
|
478 |
-
'<a
|
479 |
-
rel="noreferrer noopener"
|
480 |
-
href="https://woocommerce.com/posts/introducing-strong-customer-authentication-sca/"
|
481 |
-
>',
|
482 |
-
'</a>'
|
483 |
-
)
|
484 |
-
);
|
485 |
-
?>
|
486 |
-
</p>
|
487 |
-
</td>
|
488 |
-
</tr>
|
489 |
-
<?php
|
490 |
-
}
|
491 |
-
|
492 |
/**
|
493 |
* Renders the DCC onboarding info.
|
494 |
*/
|
@@ -547,8 +554,8 @@ class SettingsRenderer {
|
|
547 |
return false;
|
548 |
}
|
549 |
|
550 |
-
return $this->is_paypal_checkout_screen()
|
551 |
-
|
552 |
}
|
553 |
}
|
554 |
|
15 |
use WooCommerce\PayPalCommerce\Onboarding\State;
|
16 |
use WooCommerce\PayPalCommerce\WcGateway\Gateway\CreditCardGateway;
|
17 |
use Psr\Container\ContainerInterface;
|
18 |
+
use WooCommerce\PayPalCommerce\WcGateway\Gateway\PayPalGateway;
|
19 |
use Woocommerce\PayPalCommerce\WcGateway\Helper\DccProductStatus;
|
20 |
use Woocommerce\PayPalCommerce\WcGateway\Helper\SettingsStatus;
|
21 |
|
24 |
*/
|
25 |
class SettingsRenderer {
|
26 |
|
27 |
+
use PageMatcherTrait;
|
28 |
+
|
29 |
/**
|
30 |
* The Settings status helper.
|
31 |
*
|
75 |
*/
|
76 |
private $dcc_product_status;
|
77 |
|
78 |
+
/**
|
79 |
+
* ID of the current PPCP gateway settings page, or empty if it is not such page.
|
80 |
+
*
|
81 |
+
* @var string
|
82 |
+
*/
|
83 |
+
protected $page_id;
|
84 |
+
|
85 |
/**
|
86 |
* SettingsRenderer constructor.
|
87 |
*
|
92 |
* @param MessagesApply $messages_apply Whether messages can be shown.
|
93 |
* @param DccProductStatus $dcc_product_status The product status.
|
94 |
* @param SettingsStatus $settings_status The Settings status helper.
|
95 |
+
* @param string $page_id ID of the current PPCP gateway settings page, or empty if it is not such page.
|
96 |
*/
|
97 |
public function __construct(
|
98 |
ContainerInterface $settings,
|
101 |
DccApplies $dcc_applies,
|
102 |
MessagesApply $messages_apply,
|
103 |
DccProductStatus $dcc_product_status,
|
104 |
+
SettingsStatus $settings_status,
|
105 |
+
string $page_id
|
106 |
) {
|
107 |
|
108 |
$this->settings = $settings;
|
112 |
$this->messages_apply = $messages_apply;
|
113 |
$this->dcc_product_status = $dcc_product_status;
|
114 |
$this->settings_status = $settings_status;
|
115 |
+
$this->page_id = $page_id;
|
116 |
}
|
117 |
|
118 |
/**
|
179 |
* @return bool Whether is PayPal checkout screen or not.
|
180 |
*/
|
181 |
private function is_paypal_checkout_screen(): bool {
|
182 |
+
return PayPalGateway::ID === $this->page_id;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
183 |
}
|
184 |
|
185 |
/**
|
311 |
return $html;
|
312 |
}
|
313 |
|
314 |
+
/**
|
315 |
+
* Renders the table row.
|
316 |
+
*
|
317 |
+
* @param array $data Values of the row cells.
|
318 |
+
* @param string $tag HTML tag ('td', 'th').
|
319 |
+
* @return string
|
320 |
+
*/
|
321 |
+
public function render_table_row( array $data, string $tag = 'td' ): string {
|
322 |
+
$cells = array_map(
|
323 |
+
function ( $value ) use ( $tag ): string {
|
324 |
+
return "<$tag>" . (string) $value . "</$tag>";
|
325 |
+
},
|
326 |
+
$data
|
327 |
+
);
|
328 |
+
return '<tr>' . implode( $cells ) . '</tr>';
|
329 |
+
}
|
330 |
+
|
331 |
+
/**
|
332 |
+
* Renders the table field.
|
333 |
+
*
|
334 |
+
* @param string $field The current field HTML.
|
335 |
+
* @param string $key The key.
|
336 |
+
* @param array $config The configuration of the field.
|
337 |
+
* @param array $value The current value.
|
338 |
+
*
|
339 |
+
* @return string HTML.
|
340 |
+
*/
|
341 |
+
public function render_table( $field, $key, $config, $value ): string {
|
342 |
+
if ( 'ppcp-table' !== $config['type'] ) {
|
343 |
+
return $field;
|
344 |
+
}
|
345 |
+
|
346 |
+
$data = $value['data'];
|
347 |
+
if ( empty( $data ) ) {
|
348 |
+
$empty_placeholder = $value['empty_placeholder'] ?? ( $config['empty_placeholder'] ?? null );
|
349 |
+
if ( $empty_placeholder ) {
|
350 |
+
return $empty_placeholder;
|
351 |
+
}
|
352 |
+
}
|
353 |
+
|
354 |
+
$header_row_html = $this->render_table_row( $value['headers'], 'th' );
|
355 |
+
$data_rows_html = implode(
|
356 |
+
array_map(
|
357 |
+
array( $this, 'render_table_row' ),
|
358 |
+
$data
|
359 |
+
)
|
360 |
+
);
|
361 |
+
|
362 |
+
return "<table>
|
363 |
+
$header_row_html
|
364 |
+
$data_rows_html
|
365 |
+
</table>";
|
366 |
+
}
|
367 |
+
|
368 |
/**
|
369 |
* Renders the settings.
|
370 |
*/
|
371 |
public function render() {
|
372 |
|
373 |
+
$is_dcc = CreditCardGateway::ID === $this->page_id;
|
|
|
|
|
374 |
//phpcs:enable WordPress.Security.NonceVerification.Recommended
|
375 |
//phpcs:enable WordPress.Security.NonceVerification.Missing
|
376 |
$nonce = wp_create_nonce( SettingsListener::NONCE );
|
381 |
if ( ! in_array( $this->state->current_state(), $config['screens'], true ) ) {
|
382 |
continue;
|
383 |
}
|
384 |
+
if ( ! $this->field_matches_page( $config, $this->page_id ) ) {
|
|
|
|
|
|
|
385 |
continue;
|
386 |
}
|
387 |
if (
|
402 |
) {
|
403 |
continue;
|
404 |
}
|
405 |
+
$value = $this->settings->has( $field ) ? $this->settings->get( $field ) : ( isset( $config['value'] ) ? $config['value']() : null );
|
406 |
$key = 'ppcp[' . $field . ']';
|
407 |
$id = 'ppcp-' . $field;
|
408 |
$config['id'] = $id;
|
447 |
if ( $this->dcc_applies->for_country_currency() ) {
|
448 |
if ( State::STATE_ONBOARDED > $this->state->current_state() ) {
|
449 |
$this->render_dcc_onboarding_info();
|
|
|
|
|
450 |
} elseif ( ! $this->dcc_product_status->dcc_is_active() ) {
|
451 |
$this->render_dcc_not_active_yet();
|
452 |
}
|
496 |
<?php
|
497 |
}
|
498 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
499 |
/**
|
500 |
* Renders the DCC onboarding info.
|
501 |
*/
|
554 |
return false;
|
555 |
}
|
556 |
|
557 |
+
return $this->is_paypal_checkout_screen()
|
558 |
+
&& ( $this->paypal_vaulting_is_enabled() || $this->settings_status->pay_later_messaging_is_enabled() );
|
559 |
}
|
560 |
}
|
561 |
|
modules/ppcp-wc-gateway/src/class-wcgatewaymodule.php
CHANGED
@@ -24,6 +24,7 @@ use WooCommerce\PayPalCommerce\WcGateway\Endpoint\ReturnUrlEndpoint;
|
|
24 |
use WooCommerce\PayPalCommerce\WcGateway\Gateway\CreditCardGateway;
|
25 |
use WooCommerce\PayPalCommerce\WcGateway\Gateway\PayPalGateway;
|
26 |
use WooCommerce\PayPalCommerce\WcGateway\Notice\ConnectAdminNotice;
|
|
|
27 |
use WooCommerce\PayPalCommerce\WcGateway\Settings\SectionsRenderer;
|
28 |
use WooCommerce\PayPalCommerce\WcGateway\Settings\Settings;
|
29 |
use WooCommerce\PayPalCommerce\WcGateway\Settings\SettingsListener;
|
@@ -58,7 +59,6 @@ class WcGatewayModule implements ModuleInterface {
|
|
58 |
$this->register_order_functionality( $container );
|
59 |
$this->register_columns( $container );
|
60 |
$this->register_checkout_paypal_address_preset( $container );
|
61 |
-
$this->ajax_gateway_enabler( $container );
|
62 |
|
63 |
add_action(
|
64 |
'woocommerce_sections_checkout',
|
@@ -86,15 +86,19 @@ class WcGatewayModule implements ModuleInterface {
|
|
86 |
Repository::NOTICES_FILTER,
|
87 |
static function ( $notices ) use ( $container ): array {
|
88 |
$notice = $container->get( 'wcgateway.notice.connect' );
|
89 |
-
|
90 |
-
* The Connect Admin Notice object.
|
91 |
-
*
|
92 |
-
* @var ConnectAdminNotice $notice
|
93 |
-
*/
|
94 |
$connect_message = $notice->connect_message();
|
95 |
if ( $connect_message ) {
|
96 |
$notices[] = $connect_message;
|
97 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
98 |
$authorize_order_action = $container->get( 'wcgateway.notice.authorize-order-action' );
|
99 |
$authorized_message = $authorize_order_action->message();
|
100 |
if ( $authorized_message ) {
|
@@ -102,11 +106,7 @@ class WcGatewayModule implements ModuleInterface {
|
|
102 |
}
|
103 |
|
104 |
$settings_renderer = $container->get( 'wcgateway.settings.render' );
|
105 |
-
|
106 |
-
* The settings renderer.
|
107 |
-
*
|
108 |
-
* @var SettingsRenderer $settings_renderer
|
109 |
-
*/
|
110 |
$messages = $settings_renderer->messages();
|
111 |
$notices = array_merge( $notices, $messages );
|
112 |
|
@@ -149,50 +149,6 @@ class WcGatewayModule implements ModuleInterface {
|
|
149 |
);
|
150 |
}
|
151 |
|
152 |
-
/**
|
153 |
-
* Adds the functionality to listen to the ajax enable gateway switch.
|
154 |
-
*
|
155 |
-
* @param ContainerInterface $container The container.
|
156 |
-
*/
|
157 |
-
private function ajax_gateway_enabler( ContainerInterface $container ) {
|
158 |
-
add_action(
|
159 |
-
'wp_ajax_woocommerce_toggle_gateway_enabled',
|
160 |
-
static function () use ( $container ) {
|
161 |
-
if (
|
162 |
-
! current_user_can( 'manage_woocommerce' )
|
163 |
-
|| ! check_ajax_referer(
|
164 |
-
'woocommerce-toggle-payment-gateway-enabled',
|
165 |
-
'security'
|
166 |
-
)
|
167 |
-
|| ! isset( $_POST['gateway_id'] )
|
168 |
-
) {
|
169 |
-
return;
|
170 |
-
}
|
171 |
-
|
172 |
-
/**
|
173 |
-
* The settings.
|
174 |
-
*
|
175 |
-
* @var Settings $settings
|
176 |
-
*/
|
177 |
-
$settings = $container->get( 'wcgateway.settings' );
|
178 |
-
$key = PayPalGateway::ID === $_POST['gateway_id'] ? 'enabled' : '';
|
179 |
-
if ( CreditCardGateway::ID === $_POST['gateway_id'] ) {
|
180 |
-
$key = 'dcc_enabled';
|
181 |
-
}
|
182 |
-
if ( ! $key ) {
|
183 |
-
return;
|
184 |
-
}
|
185 |
-
$enabled = $settings->has( $key ) ? $settings->get( $key ) : false;
|
186 |
-
if ( ! $enabled ) {
|
187 |
-
return;
|
188 |
-
}
|
189 |
-
$settings->set( $key, false );
|
190 |
-
$settings->persist();
|
191 |
-
},
|
192 |
-
9
|
193 |
-
);
|
194 |
-
}
|
195 |
-
|
196 |
/**
|
197 |
* Registers the payment gateways.
|
198 |
*
|
@@ -206,16 +162,12 @@ class WcGatewayModule implements ModuleInterface {
|
|
206 |
$methods[] = $container->get( 'wcgateway.paypal-gateway' );
|
207 |
$dcc_applies = $container->get( 'api.helpers.dccapplies' );
|
208 |
|
209 |
-
$screen = ! function_exists( 'get_current_screen' ) ? (object) array( 'id' => 'front' ) : get_current_screen();
|
210 |
-
if ( ! $screen ) {
|
211 |
-
$screen = (object) array( 'id' => 'front' );
|
212 |
-
}
|
213 |
/**
|
214 |
* The DCC Applies object.
|
215 |
*
|
216 |
* @var DccApplies $dcc_applies
|
217 |
*/
|
218 |
-
if (
|
219 |
$methods[] = $container->get( 'wcgateway.credit-card-gateway' );
|
220 |
}
|
221 |
return (array) $methods;
|
@@ -262,6 +214,7 @@ class WcGatewayModule implements ModuleInterface {
|
|
262 |
$field = $renderer->render_password( $field, $key, $args, $value );
|
263 |
$field = $renderer->render_text_input( $field, $key, $args, $value );
|
264 |
$field = $renderer->render_heading( $field, $key, $args, $value );
|
|
|
265 |
return $field;
|
266 |
},
|
267 |
10,
|
24 |
use WooCommerce\PayPalCommerce\WcGateway\Gateway\CreditCardGateway;
|
25 |
use WooCommerce\PayPalCommerce\WcGateway\Gateway\PayPalGateway;
|
26 |
use WooCommerce\PayPalCommerce\WcGateway\Notice\ConnectAdminNotice;
|
27 |
+
use WooCommerce\PayPalCommerce\WcGateway\Notice\DccWithoutPayPalAdminNotice;
|
28 |
use WooCommerce\PayPalCommerce\WcGateway\Settings\SectionsRenderer;
|
29 |
use WooCommerce\PayPalCommerce\WcGateway\Settings\Settings;
|
30 |
use WooCommerce\PayPalCommerce\WcGateway\Settings\SettingsListener;
|
59 |
$this->register_order_functionality( $container );
|
60 |
$this->register_columns( $container );
|
61 |
$this->register_checkout_paypal_address_preset( $container );
|
|
|
62 |
|
63 |
add_action(
|
64 |
'woocommerce_sections_checkout',
|
86 |
Repository::NOTICES_FILTER,
|
87 |
static function ( $notices ) use ( $container ): array {
|
88 |
$notice = $container->get( 'wcgateway.notice.connect' );
|
89 |
+
assert( $notice instanceof ConnectAdminNotice );
|
|
|
|
|
|
|
|
|
90 |
$connect_message = $notice->connect_message();
|
91 |
if ( $connect_message ) {
|
92 |
$notices[] = $connect_message;
|
93 |
}
|
94 |
+
|
95 |
+
$dcc_without_paypal_notice = $container->get( 'wcgateway.notice.dcc-without-paypal' );
|
96 |
+
assert( $dcc_without_paypal_notice instanceof DccWithoutPayPalAdminNotice );
|
97 |
+
$dcc_without_paypal_message = $dcc_without_paypal_notice->message();
|
98 |
+
if ( $dcc_without_paypal_message ) {
|
99 |
+
$notices[] = $dcc_without_paypal_message;
|
100 |
+
}
|
101 |
+
|
102 |
$authorize_order_action = $container->get( 'wcgateway.notice.authorize-order-action' );
|
103 |
$authorized_message = $authorize_order_action->message();
|
104 |
if ( $authorized_message ) {
|
106 |
}
|
107 |
|
108 |
$settings_renderer = $container->get( 'wcgateway.settings.render' );
|
109 |
+
assert( $settings_renderer instanceof SettingsRenderer );
|
|
|
|
|
|
|
|
|
110 |
$messages = $settings_renderer->messages();
|
111 |
$notices = array_merge( $notices, $messages );
|
112 |
|
149 |
);
|
150 |
}
|
151 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
152 |
/**
|
153 |
* Registers the payment gateways.
|
154 |
*
|
162 |
$methods[] = $container->get( 'wcgateway.paypal-gateway' );
|
163 |
$dcc_applies = $container->get( 'api.helpers.dccapplies' );
|
164 |
|
|
|
|
|
|
|
|
|
165 |
/**
|
166 |
* The DCC Applies object.
|
167 |
*
|
168 |
* @var DccApplies $dcc_applies
|
169 |
*/
|
170 |
+
if ( $dcc_applies->for_country_currency() ) {
|
171 |
$methods[] = $container->get( 'wcgateway.credit-card-gateway' );
|
172 |
}
|
173 |
return (array) $methods;
|
214 |
$field = $renderer->render_password( $field, $key, $args, $value );
|
215 |
$field = $renderer->render_text_input( $field, $key, $args, $value );
|
216 |
$field = $renderer->render_heading( $field, $key, $args, $value );
|
217 |
+
$field = $renderer->render_table( $field, $key, $args, $value );
|
218 |
return $field;
|
219 |
},
|
220 |
10,
|
modules/ppcp-wc-gateway/webpack.config.js
CHANGED
@@ -2,7 +2,7 @@ const path = require('path');
|
|
2 |
const isProduction = process.env.NODE_ENV === 'production';
|
3 |
|
4 |
module.exports = {
|
5 |
-
devtool: '
|
6 |
mode: isProduction ? 'production' : 'development',
|
7 |
target: 'web',
|
8 |
entry: {
|
2 |
const isProduction = process.env.NODE_ENV === 'production';
|
3 |
|
4 |
module.exports = {
|
5 |
+
devtool: 'eval-source-map',
|
6 |
mode: isProduction ? 'production' : 'development',
|
7 |
target: 'web',
|
8 |
entry: {
|
modules/ppcp-wc-gateway/yarn.lock
CHANGED
@@ -2,97 +2,97 @@
|
|
2 |
# yarn lockfile v1
|
3 |
|
4 |
|
5 |
-
"@babel/code-frame@^7.
|
6 |
-
version "7.
|
7 |
-
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.
|
8 |
-
integrity sha512-
|
9 |
dependencies:
|
10 |
-
"@babel/highlight" "^7.
|
11 |
|
12 |
-
"@babel/compat-data@^7.13.
|
13 |
-
version "7.
|
14 |
-
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.
|
15 |
-
integrity sha512-
|
16 |
|
17 |
"@babel/core@^7.9.0":
|
18 |
-
version "7.
|
19 |
-
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.
|
20 |
-
integrity sha512-
|
21 |
-
dependencies:
|
22 |
-
"@babel/code-frame" "^7.
|
23 |
-
"@babel/generator" "^7.
|
24 |
-
"@babel/helper-compilation-targets" "^7.
|
25 |
-
"@babel/helper-module-transforms" "^7.
|
26 |
-
"@babel/helpers" "^7.
|
27 |
-
"@babel/parser" "^7.
|
28 |
-
"@babel/template" "^7.
|
29 |
-
"@babel/traverse" "^7.
|
30 |
-
"@babel/types" "^7.
|
31 |
convert-source-map "^1.7.0"
|
32 |
debug "^4.1.0"
|
33 |
gensync "^1.0.0-beta.2"
|
34 |
json5 "^2.1.2"
|
35 |
-
lodash "^4.17.19"
|
36 |
semver "^6.3.0"
|
37 |
source-map "^0.5.0"
|
38 |
|
39 |
-
"@babel/generator@^7.
|
40 |
-
version "7.
|
41 |
-
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.
|
42 |
-
integrity sha512-
|
43 |
dependencies:
|
44 |
-
"@babel/types" "^7.
|
45 |
jsesc "^2.5.1"
|
46 |
source-map "^0.5.0"
|
47 |
|
48 |
-
"@babel/helper-annotate-as-pure@^7.
|
49 |
-
version "7.
|
50 |
-
resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.
|
51 |
-
integrity sha512-
|
52 |
dependencies:
|
53 |
-
"@babel/types" "^7.
|
54 |
|
55 |
-
"@babel/helper-builder-binary-assignment-operator-visitor@^7.
|
56 |
-
version "7.
|
57 |
-
resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.
|
58 |
-
integrity sha512-
|
59 |
dependencies:
|
60 |
-
"@babel/helper-explode-assignable-expression" "^7.
|
61 |
-
"@babel/types" "^7.
|
62 |
|
63 |
-
"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.
|
64 |
-
version "7.
|
65 |
-
resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.
|
66 |
-
integrity sha512-
|
67 |
dependencies:
|
68 |
-
"@babel/compat-data" "^7.
|
69 |
-
"@babel/helper-validator-option" "^7.
|
70 |
-
browserslist "^4.
|
71 |
semver "^6.3.0"
|
72 |
|
73 |
-
"@babel/helper-create-class-features-plugin@^7.
|
74 |
-
version "7.
|
75 |
-
resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.
|
76 |
-
integrity sha512-
|
77 |
dependencies:
|
78 |
-
"@babel/helper-
|
79 |
-
"@babel/helper-
|
80 |
-
"@babel/helper-
|
81 |
-
"@babel/helper-
|
82 |
-
"@babel/helper-
|
|
|
83 |
|
84 |
-
"@babel/helper-create-regexp-features-plugin@^7.
|
85 |
-
version "7.
|
86 |
-
resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.
|
87 |
-
integrity sha512-
|
88 |
dependencies:
|
89 |
-
"@babel/helper-annotate-as-pure" "^7.
|
90 |
regexpu-core "^4.7.1"
|
91 |
|
92 |
-
"@babel/helper-define-polyfill-provider@^0.
|
93 |
-
version "0.
|
94 |
-
resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.
|
95 |
-
integrity sha512-
|
96 |
dependencies:
|
97 |
"@babel/helper-compilation-targets" "^7.13.0"
|
98 |
"@babel/helper-module-imports" "^7.12.13"
|
@@ -103,277 +103,295 @@
|
|
103 |
resolve "^1.14.2"
|
104 |
semver "^6.1.2"
|
105 |
|
106 |
-
"@babel/helper-explode-assignable-expression@^7.
|
107 |
-
version "7.
|
108 |
-
resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.
|
109 |
-
integrity sha512-
|
110 |
-
dependencies:
|
111 |
-
"@babel/types" "^7.13.0"
|
112 |
-
|
113 |
-
"@babel/helper-function-name@^7.12.13":
|
114 |
-
version "7.12.13"
|
115 |
-
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz#93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a"
|
116 |
-
integrity sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==
|
117 |
-
dependencies:
|
118 |
-
"@babel/helper-get-function-arity" "^7.12.13"
|
119 |
-
"@babel/template" "^7.12.13"
|
120 |
-
"@babel/types" "^7.12.13"
|
121 |
-
|
122 |
-
"@babel/helper-get-function-arity@^7.12.13":
|
123 |
-
version "7.12.13"
|
124 |
-
resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583"
|
125 |
-
integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==
|
126 |
-
dependencies:
|
127 |
-
"@babel/types" "^7.12.13"
|
128 |
-
|
129 |
-
"@babel/helper-hoist-variables@^7.13.0":
|
130 |
-
version "7.13.0"
|
131 |
-
resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.0.tgz#5d5882e855b5c5eda91e0cadc26c6e7a2c8593d8"
|
132 |
-
integrity sha512-0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g==
|
133 |
-
dependencies:
|
134 |
-
"@babel/traverse" "^7.13.0"
|
135 |
-
"@babel/types" "^7.13.0"
|
136 |
-
|
137 |
-
"@babel/helper-member-expression-to-functions@^7.13.0", "@babel/helper-member-expression-to-functions@^7.13.12":
|
138 |
-
version "7.13.12"
|
139 |
-
resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz#dfe368f26d426a07299d8d6513821768216e6d72"
|
140 |
-
integrity sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==
|
141 |
-
dependencies:
|
142 |
-
"@babel/types" "^7.13.12"
|
143 |
-
|
144 |
-
"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.13.12":
|
145 |
-
version "7.13.12"
|
146 |
-
resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz#c6a369a6f3621cb25da014078684da9196b61977"
|
147 |
-
integrity sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==
|
148 |
-
dependencies:
|
149 |
-
"@babel/types" "^7.13.12"
|
150 |
-
|
151 |
-
"@babel/helper-module-transforms@^7.13.0", "@babel/helper-module-transforms@^7.13.12":
|
152 |
-
version "7.13.12"
|
153 |
-
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.13.12.tgz#600e58350490828d82282631a1422268e982ba96"
|
154 |
-
integrity sha512-7zVQqMO3V+K4JOOj40kxiCrMf6xlQAkewBB0eu2b03OO/Q21ZutOzjpfD79A5gtE/2OWi1nv625MrDlGlkbknQ==
|
155 |
-
dependencies:
|
156 |
-
"@babel/helper-module-imports" "^7.13.12"
|
157 |
-
"@babel/helper-replace-supers" "^7.13.12"
|
158 |
-
"@babel/helper-simple-access" "^7.13.12"
|
159 |
-
"@babel/helper-split-export-declaration" "^7.12.13"
|
160 |
-
"@babel/helper-validator-identifier" "^7.12.11"
|
161 |
-
"@babel/template" "^7.12.13"
|
162 |
-
"@babel/traverse" "^7.13.0"
|
163 |
-
"@babel/types" "^7.13.12"
|
164 |
-
|
165 |
-
"@babel/helper-optimise-call-expression@^7.12.13":
|
166 |
-
version "7.12.13"
|
167 |
-
resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea"
|
168 |
-
integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==
|
169 |
-
dependencies:
|
170 |
-
"@babel/types" "^7.12.13"
|
171 |
-
|
172 |
-
"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
|
173 |
-
version "7.13.0"
|
174 |
-
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af"
|
175 |
-
integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==
|
176 |
-
|
177 |
-
"@babel/helper-remap-async-to-generator@^7.13.0":
|
178 |
-
version "7.13.0"
|
179 |
-
resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz#376a760d9f7b4b2077a9dd05aa9c3927cadb2209"
|
180 |
-
integrity sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg==
|
181 |
-
dependencies:
|
182 |
-
"@babel/helper-annotate-as-pure" "^7.12.13"
|
183 |
-
"@babel/helper-wrap-function" "^7.13.0"
|
184 |
-
"@babel/types" "^7.13.0"
|
185 |
-
|
186 |
-
"@babel/helper-replace-supers@^7.12.13", "@babel/helper-replace-supers@^7.13.0", "@babel/helper-replace-supers@^7.13.12":
|
187 |
-
version "7.13.12"
|
188 |
-
resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz#6442f4c1ad912502481a564a7386de0c77ff3804"
|
189 |
-
integrity sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw==
|
190 |
-
dependencies:
|
191 |
-
"@babel/helper-member-expression-to-functions" "^7.13.12"
|
192 |
-
"@babel/helper-optimise-call-expression" "^7.12.13"
|
193 |
-
"@babel/traverse" "^7.13.0"
|
194 |
-
"@babel/types" "^7.13.12"
|
195 |
-
|
196 |
-
"@babel/helper-simple-access@^7.12.13", "@babel/helper-simple-access@^7.13.12":
|
197 |
-
version "7.13.12"
|
198 |
-
resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz#dd6c538afb61819d205a012c31792a39c7a5eaf6"
|
199 |
-
integrity sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==
|
200 |
-
dependencies:
|
201 |
-
"@babel/types" "^7.13.12"
|
202 |
-
|
203 |
-
"@babel/helper-skip-transparent-expression-wrappers@^7.12.1":
|
204 |
-
version "7.12.1"
|
205 |
-
resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf"
|
206 |
-
integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==
|
207 |
-
dependencies:
|
208 |
-
"@babel/types" "^7.12.1"
|
209 |
-
|
210 |
-
"@babel/helper-split-export-declaration@^7.12.13":
|
211 |
-
version "7.12.13"
|
212 |
-
resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05"
|
213 |
-
integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==
|
214 |
dependencies:
|
215 |
-
"@babel/types" "^7.
|
216 |
-
|
217 |
-
"@babel/helper-
|
218 |
-
version "7.
|
219 |
-
resolved "https://registry.yarnpkg.com/@babel/helper-
|
220 |
-
integrity sha512-
|
221 |
-
|
222 |
-
"@babel/helper-validator-option@^7.12.17":
|
223 |
-
version "7.12.17"
|
224 |
-
resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831"
|
225 |
-
integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==
|
226 |
-
|
227 |
-
"@babel/helper-wrap-function@^7.13.0":
|
228 |
-
version "7.13.0"
|
229 |
-
resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz#bdb5c66fda8526ec235ab894ad53a1235c79fcc4"
|
230 |
-
integrity sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA==
|
231 |
dependencies:
|
232 |
-
"@babel/helper-function-
|
233 |
-
"@babel/template" "^7.
|
234 |
-
"@babel/
|
235 |
-
"@babel/types" "^7.13.0"
|
236 |
|
237 |
-
"@babel/
|
238 |
-
version "7.
|
239 |
-
resolved "https://registry.yarnpkg.com/@babel/
|
240 |
-
integrity sha512-
|
241 |
dependencies:
|
242 |
-
"@babel/
|
243 |
-
|
244 |
-
|
|
|
|
|
|
|
|
|
|
|
245 |
|
246 |
-
"@babel/
|
247 |
-
version "7.
|
248 |
-
resolved "https://registry.yarnpkg.com/@babel/
|
249 |
-
integrity sha512-
|
250 |
-
dependencies:
|
251 |
-
"@babel/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
252 |
chalk "^2.0.0"
|
253 |
js-tokens "^4.0.0"
|
254 |
|
255 |
-
"@babel/parser@^7.
|
256 |
-
version "7.
|
257 |
-
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.
|
258 |
-
integrity sha512-
|
259 |
|
260 |
-
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.
|
261 |
-
version "7.
|
262 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.
|
263 |
-
integrity sha512-
|
264 |
dependencies:
|
265 |
-
"@babel/helper-plugin-utils" "^7.
|
266 |
-
"@babel/helper-skip-transparent-expression-wrappers" "^7.
|
267 |
-
"@babel/plugin-proposal-optional-chaining" "^7.
|
268 |
|
269 |
-
"@babel/plugin-proposal-async-generator-functions@^7.
|
270 |
-
version "7.
|
271 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.
|
272 |
-
integrity sha512-
|
273 |
dependencies:
|
274 |
-
"@babel/helper-plugin-utils" "^7.
|
275 |
-
"@babel/helper-remap-async-to-generator" "^7.
|
276 |
"@babel/plugin-syntax-async-generators" "^7.8.4"
|
277 |
|
278 |
-
"@babel/plugin-proposal-class-properties@^7.
|
279 |
-
version "7.
|
280 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.
|
281 |
-
integrity sha512-
|
282 |
dependencies:
|
283 |
-
"@babel/helper-create-class-features-plugin" "^7.
|
284 |
-
"@babel/helper-plugin-utils" "^7.
|
285 |
|
286 |
-
"@babel/plugin-proposal-
|
287 |
-
version "7.
|
288 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-
|
289 |
-
integrity sha512-
|
290 |
dependencies:
|
291 |
-
"@babel/helper-plugin
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
292 |
"@babel/plugin-syntax-dynamic-import" "^7.8.3"
|
293 |
|
294 |
-
"@babel/plugin-proposal-export-namespace-from@^7.
|
295 |
-
version "7.
|
296 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.
|
297 |
-
integrity sha512-
|
298 |
dependencies:
|
299 |
-
"@babel/helper-plugin-utils" "^7.
|
300 |
"@babel/plugin-syntax-export-namespace-from" "^7.8.3"
|
301 |
|
302 |
-
"@babel/plugin-proposal-json-strings@^7.
|
303 |
-
version "7.
|
304 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.
|
305 |
-
integrity sha512-
|
306 |
dependencies:
|
307 |
-
"@babel/helper-plugin-utils" "^7.
|
308 |
"@babel/plugin-syntax-json-strings" "^7.8.3"
|
309 |
|
310 |
-
"@babel/plugin-proposal-logical-assignment-operators@^7.
|
311 |
-
version "7.
|
312 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.
|
313 |
-
integrity sha512-
|
314 |
dependencies:
|
315 |
-
"@babel/helper-plugin-utils" "^7.
|
316 |
"@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
|
317 |
|
318 |
-
"@babel/plugin-proposal-nullish-coalescing-operator@^7.
|
319 |
-
version "7.
|
320 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.
|
321 |
-
integrity sha512-
|
322 |
dependencies:
|
323 |
-
"@babel/helper-plugin-utils" "^7.
|
324 |
"@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
|
325 |
|
326 |
-
"@babel/plugin-proposal-numeric-separator@^7.
|
327 |
-
version "7.
|
328 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.
|
329 |
-
integrity sha512-
|
330 |
dependencies:
|
331 |
-
"@babel/helper-plugin-utils" "^7.
|
332 |
"@babel/plugin-syntax-numeric-separator" "^7.10.4"
|
333 |
|
334 |
-
"@babel/plugin-proposal-object-rest-spread@^7.
|
335 |
-
version "7.
|
336 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.
|
337 |
-
integrity sha512-
|
338 |
dependencies:
|
339 |
-
"@babel/compat-data" "^7.
|
340 |
-
"@babel/helper-compilation-targets" "^7.
|
341 |
-
"@babel/helper-plugin-utils" "^7.
|
342 |
"@babel/plugin-syntax-object-rest-spread" "^7.8.3"
|
343 |
-
"@babel/plugin-transform-parameters" "^7.
|
344 |
|
345 |
-
"@babel/plugin-proposal-optional-catch-binding@^7.
|
346 |
-
version "7.
|
347 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.
|
348 |
-
integrity sha512-
|
349 |
dependencies:
|
350 |
-
"@babel/helper-plugin-utils" "^7.
|
351 |
"@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
|
352 |
|
353 |
-
"@babel/plugin-proposal-optional-chaining@^7.
|
354 |
-
version "7.
|
355 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.
|
356 |
-
integrity sha512-
|
357 |
dependencies:
|
358 |
-
"@babel/helper-plugin-utils" "^7.
|
359 |
-
"@babel/helper-skip-transparent-expression-wrappers" "^7.
|
360 |
"@babel/plugin-syntax-optional-chaining" "^7.8.3"
|
361 |
|
362 |
-
"@babel/plugin-proposal-private-methods@^7.
|
363 |
-
version "7.
|
364 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.
|
365 |
-
integrity sha512-
|
366 |
dependencies:
|
367 |
-
"@babel/helper-create-class-features-plugin" "^7.
|
368 |
-
"@babel/helper-plugin-utils" "^7.
|
369 |
|
370 |
-
"@babel/plugin-proposal-
|
371 |
-
version "7.
|
372 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-
|
373 |
-
integrity sha512-
|
374 |
dependencies:
|
375 |
-
"@babel/helper-
|
376 |
-
"@babel/helper-plugin
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
377 |
|
378 |
"@babel/plugin-syntax-async-generators@^7.8.4":
|
379 |
version "7.8.4"
|
@@ -389,6 +407,13 @@
|
|
389 |
dependencies:
|
390 |
"@babel/helper-plugin-utils" "^7.12.13"
|
391 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
392 |
"@babel/plugin-syntax-dynamic-import@^7.8.3":
|
393 |
version "7.8.3"
|
394 |
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3"
|
@@ -452,286 +477,296 @@
|
|
452 |
dependencies:
|
453 |
"@babel/helper-plugin-utils" "^7.8.0"
|
454 |
|
455 |
-
"@babel/plugin-syntax-
|
456 |
-
version "7.
|
457 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-
|
458 |
-
integrity sha512-
|
459 |
dependencies:
|
460 |
-
"@babel/helper-plugin-utils" "^7.
|
461 |
|
462 |
-
"@babel/plugin-
|
463 |
-
version "7.
|
464 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-
|
465 |
-
integrity sha512-
|
466 |
dependencies:
|
467 |
-
"@babel/helper-plugin-utils" "^7.
|
468 |
|
469 |
-
"@babel/plugin-transform-
|
470 |
-
version "7.
|
471 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-
|
472 |
-
integrity sha512-
|
473 |
dependencies:
|
474 |
-
"@babel/helper-
|
475 |
-
"@babel/helper-plugin-utils" "^7.13.0"
|
476 |
-
"@babel/helper-remap-async-to-generator" "^7.13.0"
|
477 |
|
478 |
-
"@babel/plugin-transform-
|
479 |
-
version "7.
|
480 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-
|
481 |
-
integrity sha512-
|
482 |
dependencies:
|
483 |
-
"@babel/helper-
|
|
|
|
|
484 |
|
485 |
-
"@babel/plugin-transform-block-
|
486 |
-
version "7.
|
487 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-
|
488 |
-
integrity sha512-
|
489 |
dependencies:
|
490 |
-
"@babel/helper-plugin-utils" "^7.
|
491 |
|
492 |
-
"@babel/plugin-transform-
|
493 |
-
version "7.
|
494 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-
|
495 |
-
integrity sha512-
|
496 |
dependencies:
|
497 |
-
"@babel/helper-
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
503 |
globals "^11.1.0"
|
504 |
|
505 |
-
"@babel/plugin-transform-computed-properties@^7.
|
506 |
-
version "7.
|
507 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.
|
508 |
-
integrity sha512-
|
509 |
dependencies:
|
510 |
-
"@babel/helper-plugin-utils" "^7.
|
511 |
|
512 |
-
"@babel/plugin-transform-destructuring@^7.
|
513 |
-
version "7.
|
514 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.
|
515 |
-
integrity sha512-
|
516 |
dependencies:
|
517 |
-
"@babel/helper-plugin-utils" "^7.
|
518 |
|
519 |
-
"@babel/plugin-transform-dotall-regex@^7.
|
520 |
-
version "7.
|
521 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.
|
522 |
-
integrity sha512-
|
523 |
dependencies:
|
524 |
-
"@babel/helper-create-regexp-features-plugin" "^7.
|
525 |
-
"@babel/helper-plugin-utils" "^7.
|
526 |
|
527 |
-
"@babel/plugin-transform-duplicate-keys@^7.
|
528 |
-
version "7.
|
529 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.
|
530 |
-
integrity sha512-
|
531 |
dependencies:
|
532 |
-
"@babel/helper-plugin-utils" "^7.
|
533 |
|
534 |
-
"@babel/plugin-transform-exponentiation-operator@^7.
|
535 |
-
version "7.
|
536 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.
|
537 |
-
integrity sha512-
|
538 |
dependencies:
|
539 |
-
"@babel/helper-builder-binary-assignment-operator-visitor" "^7.
|
540 |
-
"@babel/helper-plugin-utils" "^7.
|
541 |
|
542 |
-
"@babel/plugin-transform-for-of@^7.
|
543 |
-
version "7.
|
544 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.
|
545 |
-
integrity sha512-
|
546 |
dependencies:
|
547 |
-
"@babel/helper-plugin-utils" "^7.
|
548 |
|
549 |
-
"@babel/plugin-transform-function-name@^7.
|
550 |
-
version "7.
|
551 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.
|
552 |
-
integrity sha512-
|
553 |
dependencies:
|
554 |
-
"@babel/helper-function-name" "^7.
|
555 |
-
"@babel/helper-plugin-utils" "^7.
|
556 |
|
557 |
-
"@babel/plugin-transform-literals@^7.
|
558 |
-
version "7.
|
559 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.
|
560 |
-
integrity sha512-
|
561 |
dependencies:
|
562 |
-
"@babel/helper-plugin-utils" "^7.
|
563 |
|
564 |
-
"@babel/plugin-transform-member-expression-literals@^7.
|
565 |
-
version "7.
|
566 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.
|
567 |
-
integrity sha512-
|
568 |
dependencies:
|
569 |
-
"@babel/helper-plugin-utils" "^7.
|
570 |
|
571 |
-
"@babel/plugin-transform-modules-amd@^7.
|
572 |
-
version "7.
|
573 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.
|
574 |
-
integrity sha512-
|
575 |
dependencies:
|
576 |
-
"@babel/helper-module-transforms" "^7.
|
577 |
-
"@babel/helper-plugin-utils" "^7.
|
578 |
babel-plugin-dynamic-import-node "^2.3.3"
|
579 |
|
580 |
-
"@babel/plugin-transform-modules-commonjs@^7.
|
581 |
-
version "7.
|
582 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.
|
583 |
-
integrity sha512-
|
584 |
dependencies:
|
585 |
-
"@babel/helper-module-transforms" "^7.
|
586 |
-
"@babel/helper-plugin-utils" "^7.
|
587 |
-
"@babel/helper-simple-access" "^7.
|
588 |
babel-plugin-dynamic-import-node "^2.3.3"
|
589 |
|
590 |
-
"@babel/plugin-transform-modules-systemjs@^7.
|
591 |
-
version "7.
|
592 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.
|
593 |
-
integrity sha512-
|
594 |
dependencies:
|
595 |
-
"@babel/helper-hoist-variables" "^7.
|
596 |
-
"@babel/helper-module-transforms" "^7.
|
597 |
-
"@babel/helper-plugin-utils" "^7.
|
598 |
-
"@babel/helper-validator-identifier" "^7.
|
599 |
babel-plugin-dynamic-import-node "^2.3.3"
|
600 |
|
601 |
-
"@babel/plugin-transform-modules-umd@^7.
|
602 |
-
version "7.
|
603 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.
|
604 |
-
integrity sha512-
|
605 |
dependencies:
|
606 |
-
"@babel/helper-module-transforms" "^7.
|
607 |
-
"@babel/helper-plugin-utils" "^7.
|
608 |
|
609 |
-
"@babel/plugin-transform-named-capturing-groups-regex@^7.
|
610 |
-
version "7.
|
611 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.
|
612 |
-
integrity sha512-
|
613 |
dependencies:
|
614 |
-
"@babel/helper-create-regexp-features-plugin" "^7.
|
615 |
|
616 |
-
"@babel/plugin-transform-new-target@^7.
|
617 |
-
version "7.
|
618 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.
|
619 |
-
integrity sha512
|
620 |
dependencies:
|
621 |
-
"@babel/helper-plugin-utils" "^7.
|
622 |
|
623 |
-
"@babel/plugin-transform-object-super@^7.
|
624 |
-
version "7.
|
625 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.
|
626 |
-
integrity sha512-
|
627 |
dependencies:
|
628 |
-
"@babel/helper-plugin-utils" "^7.
|
629 |
-
"@babel/helper-replace-supers" "^7.
|
630 |
|
631 |
-
"@babel/plugin-transform-parameters@^7.
|
632 |
-
version "7.
|
633 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.
|
634 |
-
integrity sha512-
|
635 |
dependencies:
|
636 |
-
"@babel/helper-plugin-utils" "^7.
|
637 |
|
638 |
-
"@babel/plugin-transform-property-literals@^7.
|
639 |
-
version "7.
|
640 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.
|
641 |
-
integrity sha512-
|
642 |
dependencies:
|
643 |
-
"@babel/helper-plugin-utils" "^7.
|
644 |
|
645 |
-
"@babel/plugin-transform-regenerator@^7.
|
646 |
-
version "7.
|
647 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.
|
648 |
-
integrity sha512-
|
649 |
dependencies:
|
650 |
regenerator-transform "^0.14.2"
|
651 |
|
652 |
-
"@babel/plugin-transform-reserved-words@^7.
|
653 |
-
version "7.
|
654 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.
|
655 |
-
integrity sha512-
|
656 |
dependencies:
|
657 |
-
"@babel/helper-plugin-utils" "^7.
|
658 |
|
659 |
-
"@babel/plugin-transform-shorthand-properties@^7.
|
660 |
-
version "7.
|
661 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.
|
662 |
-
integrity sha512-
|
663 |
dependencies:
|
664 |
-
"@babel/helper-plugin-utils" "^7.
|
665 |
|
666 |
-
"@babel/plugin-transform-spread@^7.
|
667 |
-
version "7.
|
668 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.
|
669 |
-
integrity sha512-
|
670 |
dependencies:
|
671 |
-
"@babel/helper-plugin-utils" "^7.
|
672 |
-
"@babel/helper-skip-transparent-expression-wrappers" "^7.
|
673 |
|
674 |
-
"@babel/plugin-transform-sticky-regex@^7.
|
675 |
-
version "7.
|
676 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.
|
677 |
-
integrity sha512-
|
678 |
dependencies:
|
679 |
-
"@babel/helper-plugin-utils" "^7.
|
680 |
|
681 |
-
"@babel/plugin-transform-template-literals@^7.
|
682 |
-
version "7.
|
683 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.
|
684 |
-
integrity sha512-
|
685 |
dependencies:
|
686 |
-
"@babel/helper-plugin-utils" "^7.
|
687 |
|
688 |
-
"@babel/plugin-transform-typeof-symbol@^7.
|
689 |
-
version "7.
|
690 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.
|
691 |
-
integrity sha512-
|
692 |
dependencies:
|
693 |
-
"@babel/helper-plugin-utils" "^7.
|
694 |
|
695 |
-
"@babel/plugin-transform-unicode-escapes@^7.
|
696 |
-
version "7.
|
697 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.
|
698 |
-
integrity sha512-
|
699 |
dependencies:
|
700 |
-
"@babel/helper-plugin-utils" "^7.
|
701 |
|
702 |
-
"@babel/plugin-transform-unicode-regex@^7.
|
703 |
-
version "7.
|
704 |
-
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.
|
705 |
-
integrity sha512-
|
706 |
dependencies:
|
707 |
-
"@babel/helper-create-regexp-features-plugin" "^7.
|
708 |
-
"@babel/helper-plugin-utils" "^7.
|
709 |
|
710 |
"@babel/preset-env@^7.9.5":
|
711 |
-
version "7.
|
712 |
-
resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.
|
713 |
-
integrity sha512-
|
714 |
-
dependencies:
|
715 |
-
"@babel/compat-data" "^7.
|
716 |
-
"@babel/helper-compilation-targets" "^7.
|
717 |
-
"@babel/helper-plugin-utils" "^7.
|
718 |
-
"@babel/helper-validator-option" "^7.
|
719 |
-
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.
|
720 |
-
"@babel/plugin-proposal-async-generator-functions" "^7.
|
721 |
-
"@babel/plugin-proposal-class-properties" "^7.
|
722 |
-
"@babel/plugin-proposal-
|
723 |
-
"@babel/plugin-proposal-
|
724 |
-
"@babel/plugin-proposal-
|
725 |
-
"@babel/plugin-proposal-
|
726 |
-
"@babel/plugin-proposal-
|
727 |
-
"@babel/plugin-proposal-
|
728 |
-
"@babel/plugin-proposal-
|
729 |
-
"@babel/plugin-proposal-
|
730 |
-
"@babel/plugin-proposal-optional-
|
731 |
-
"@babel/plugin-proposal-
|
732 |
-
"@babel/plugin-proposal-
|
|
|
|
|
733 |
"@babel/plugin-syntax-async-generators" "^7.8.4"
|
734 |
"@babel/plugin-syntax-class-properties" "^7.12.13"
|
|
|
735 |
"@babel/plugin-syntax-dynamic-import" "^7.8.3"
|
736 |
"@babel/plugin-syntax-export-namespace-from" "^7.8.3"
|
737 |
"@babel/plugin-syntax-json-strings" "^7.8.3"
|
@@ -741,45 +776,46 @@
|
|
741 |
"@babel/plugin-syntax-object-rest-spread" "^7.8.3"
|
742 |
"@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
|
743 |
"@babel/plugin-syntax-optional-chaining" "^7.8.3"
|
744 |
-
"@babel/plugin-syntax-
|
745 |
-
"@babel/plugin-
|
746 |
-
"@babel/plugin-transform-
|
747 |
-
"@babel/plugin-transform-
|
748 |
-
"@babel/plugin-transform-block-
|
749 |
-
"@babel/plugin-transform-
|
750 |
-
"@babel/plugin-transform-
|
751 |
-
"@babel/plugin-transform-
|
752 |
-
"@babel/plugin-transform-
|
753 |
-
"@babel/plugin-transform-
|
754 |
-
"@babel/plugin-transform-
|
755 |
-
"@babel/plugin-transform-
|
756 |
-
"@babel/plugin-transform-
|
757 |
-
"@babel/plugin-transform-
|
758 |
-
"@babel/plugin-transform-
|
759 |
-
"@babel/plugin-transform-
|
760 |
-
"@babel/plugin-transform-modules-
|
761 |
-
"@babel/plugin-transform-modules-
|
762 |
-
"@babel/plugin-transform-modules-
|
763 |
-
"@babel/plugin-transform-
|
764 |
-
"@babel/plugin-transform-
|
765 |
-
"@babel/plugin-transform-
|
766 |
-
"@babel/plugin-transform-
|
767 |
-
"@babel/plugin-transform-
|
768 |
-
"@babel/plugin-transform-
|
769 |
-
"@babel/plugin-transform-
|
770 |
-
"@babel/plugin-transform-
|
771 |
-
"@babel/plugin-transform-
|
772 |
-
"@babel/plugin-transform-
|
773 |
-
"@babel/plugin-transform-
|
774 |
-
"@babel/plugin-transform-
|
775 |
-
"@babel/plugin-transform-
|
776 |
-
"@babel/plugin-transform-unicode-
|
|
|
777 |
"@babel/preset-modules" "^0.1.4"
|
778 |
-
"@babel/types" "^7.
|
779 |
-
babel-plugin-polyfill-corejs2 "^0.
|
780 |
-
babel-plugin-polyfill-corejs3 "^0.
|
781 |
-
babel-plugin-polyfill-regenerator "^0.
|
782 |
-
core-js-compat "^3.
|
783 |
semver "^6.3.0"
|
784 |
|
785 |
"@babel/preset-modules@^0.1.4":
|
@@ -794,193 +830,217 @@
|
|
794 |
esutils "^2.0.2"
|
795 |
|
796 |
"@babel/runtime@^7.8.4":
|
797 |
-
version "7.
|
798 |
-
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.
|
799 |
-
integrity sha512-
|
800 |
dependencies:
|
801 |
regenerator-runtime "^0.13.4"
|
802 |
|
803 |
-
"@babel/template@^7.
|
804 |
-
version "7.
|
805 |
-
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.
|
806 |
-
integrity sha512
|
807 |
-
dependencies:
|
808 |
-
"@babel/code-frame" "^7.
|
809 |
-
"@babel/parser" "^7.
|
810 |
-
"@babel/types" "^7.
|
811 |
-
|
812 |
-
"@babel/traverse@^7.13.0", "@babel/traverse@^7.
|
813 |
-
version "7.
|
814 |
-
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.
|
815 |
-
integrity sha512-
|
816 |
-
dependencies:
|
817 |
-
"@babel/code-frame" "^7.
|
818 |
-
"@babel/generator" "^7.
|
819 |
-
"@babel/helper-function-name" "^7.
|
820 |
-
"@babel/helper-
|
821 |
-
"@babel/
|
822 |
-
"@babel/
|
|
|
823 |
debug "^4.1.0"
|
824 |
globals "^11.1.0"
|
825 |
|
826 |
-
"@babel/types@^7.
|
827 |
-
version "7.
|
828 |
-
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.
|
829 |
-
integrity sha512-
|
830 |
dependencies:
|
831 |
-
"@babel/helper-validator-identifier" "^7.
|
832 |
-
lodash "^4.17.19"
|
833 |
to-fast-properties "^2.0.0"
|
834 |
|
835 |
-
"@
|
836 |
-
version "
|
837 |
-
resolved "https://registry.yarnpkg.com/@
|
838 |
-
integrity sha512-
|
839 |
-
|
840 |
-
"@
|
841 |
-
version "
|
842 |
-
resolved "https://registry.yarnpkg.com/@
|
843 |
-
integrity sha512-
|
844 |
-
dependencies:
|
845 |
-
"@
|
846 |
-
"@
|
847 |
-
|
848 |
-
|
849 |
-
"
|
850 |
-
|
851 |
-
|
852 |
-
|
853 |
-
|
854 |
-
"@
|
855 |
-
|
856 |
-
|
857 |
-
|
858 |
-
|
859 |
-
|
860 |
-
|
861 |
-
|
862 |
-
|
863 |
-
|
864 |
-
|
865 |
-
|
866 |
-
|
867 |
-
|
868 |
-
|
869 |
-
|
870 |
-
|
871 |
-
"@webassemblyjs/
|
872 |
-
version "1.
|
873 |
-
resolved "https://registry.yarnpkg.com/@webassemblyjs/
|
874 |
-
integrity sha512-
|
875 |
-
|
876 |
-
"@webassemblyjs/helper-
|
877 |
-
|
878 |
-
|
879 |
-
|
880 |
-
|
881 |
-
|
882 |
-
|
883 |
-
|
884 |
-
|
885 |
-
|
886 |
-
|
887 |
-
|
888 |
-
|
889 |
-
|
890 |
-
|
891 |
-
|
892 |
-
|
893 |
-
|
894 |
-
|
895 |
-
|
896 |
-
|
897 |
-
|
898 |
-
|
899 |
-
|
900 |
-
|
901 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
902 |
dependencies:
|
903 |
"@xtuc/ieee754" "^1.2.0"
|
904 |
|
905 |
-
"@webassemblyjs/leb128@1.
|
906 |
-
version "1.
|
907 |
-
resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.
|
908 |
-
integrity sha512-
|
909 |
dependencies:
|
910 |
"@xtuc/long" "4.2.2"
|
911 |
|
912 |
-
"@webassemblyjs/utf8@1.
|
913 |
-
version "1.
|
914 |
-
resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.
|
915 |
-
integrity sha512-
|
916 |
-
|
917 |
-
"@webassemblyjs/wasm-edit@1.
|
918 |
-
version "1.
|
919 |
-
resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.
|
920 |
-
integrity sha512-
|
921 |
-
dependencies:
|
922 |
-
"@webassemblyjs/ast" "1.
|
923 |
-
"@webassemblyjs/helper-buffer" "1.
|
924 |
-
"@webassemblyjs/helper-wasm-bytecode" "1.
|
925 |
-
"@webassemblyjs/helper-wasm-section" "1.
|
926 |
-
"@webassemblyjs/wasm-gen" "1.
|
927 |
-
"@webassemblyjs/wasm-opt" "1.
|
928 |
-
"@webassemblyjs/wasm-parser" "1.
|
929 |
-
"@webassemblyjs/wast-printer" "1.
|
930 |
-
|
931 |
-
"@webassemblyjs/wasm-gen@1.
|
932 |
-
version "1.
|
933 |
-
resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.
|
934 |
-
integrity sha512-
|
935 |
-
dependencies:
|
936 |
-
"@webassemblyjs/ast" "1.
|
937 |
-
"@webassemblyjs/helper-wasm-bytecode" "1.
|
938 |
-
"@webassemblyjs/ieee754" "1.
|
939 |
-
"@webassemblyjs/leb128" "1.
|
940 |
-
"@webassemblyjs/utf8" "1.
|
941 |
-
|
942 |
-
"@webassemblyjs/wasm-opt@1.
|
943 |
-
version "1.
|
944 |
-
resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.
|
945 |
-
integrity sha512-
|
946 |
-
dependencies:
|
947 |
-
"@webassemblyjs/ast" "1.
|
948 |
-
"@webassemblyjs/helper-buffer" "1.
|
949 |
-
"@webassemblyjs/wasm-gen" "1.
|
950 |
-
"@webassemblyjs/wasm-parser" "1.
|
951 |
-
|
952 |
-
"@webassemblyjs/wasm-parser@1.
|
953 |
-
version "1.
|
954 |
-
resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.
|
955 |
-
integrity sha512-
|
956 |
-
dependencies:
|
957 |
-
"@webassemblyjs/ast" "1.
|
958 |
-
"@webassemblyjs/helper-api-error" "1.
|
959 |
-
"@webassemblyjs/helper-wasm-bytecode" "1.
|
960 |
-
"@webassemblyjs/ieee754" "1.
|
961 |
-
"@webassemblyjs/leb128" "1.
|
962 |
-
"@webassemblyjs/utf8" "1.
|
963 |
-
|
964 |
-
"@webassemblyjs/wast-
|
965 |
-
version "1.
|
966 |
-
resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-
|
967 |
-
integrity sha512-
|
968 |
-
dependencies:
|
969 |
-
"@webassemblyjs/ast" "1.
|
970 |
-
"@webassemblyjs/floating-point-hex-parser" "1.9.0"
|
971 |
-
"@webassemblyjs/helper-api-error" "1.9.0"
|
972 |
-
"@webassemblyjs/helper-code-frame" "1.9.0"
|
973 |
-
"@webassemblyjs/helper-fsm" "1.9.0"
|
974 |
"@xtuc/long" "4.2.2"
|
975 |
|
976 |
-
"@
|
977 |
-
version "1.
|
978 |
-
resolved "https://registry.yarnpkg.com/@
|
979 |
-
integrity sha512-
|
|
|
|
|
|
|
|
|
|
|
980 |
dependencies:
|
981 |
-
|
982 |
-
|
983 |
-
|
|
|
|
|
|
|
984 |
|
985 |
"@xtuc/ieee754@^1.2.0":
|
986 |
version "1.2.0"
|
@@ -992,22 +1052,22 @@
|
|
992 |
resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
|
993 |
integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
|
994 |
|
995 |
-
acorn@^
|
996 |
-
version "
|
997 |
-
resolved "https://registry.yarnpkg.com/acorn/-/acorn-
|
998 |
-
integrity sha512-
|
999 |
|
1000 |
-
|
1001 |
-
version "
|
1002 |
-
resolved "https://registry.yarnpkg.com/
|
1003 |
-
integrity sha512-
|
1004 |
|
1005 |
-
ajv-keywords@^3.
|
1006 |
version "3.5.2"
|
1007 |
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
|
1008 |
integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
|
1009 |
|
1010 |
-
ajv@^6.
|
1011 |
version "6.12.6"
|
1012 |
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
|
1013 |
integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
|
@@ -1017,92 +1077,13 @@ ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.4:
|
|
1017 |
json-schema-traverse "^0.4.1"
|
1018 |
uri-js "^4.2.2"
|
1019 |
|
1020 |
-
ansi-
|
1021 |
-
version "4.1.0"
|
1022 |
-
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
|
1023 |
-
integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
|
1024 |
-
|
1025 |
-
ansi-styles@^3.2.0, ansi-styles@^3.2.1:
|
1026 |
version "3.2.1"
|
1027 |
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
|
1028 |
integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
|
1029 |
dependencies:
|
1030 |
color-convert "^1.9.0"
|
1031 |
|
1032 |
-
anymatch@^2.0.0:
|
1033 |
-
version "2.0.0"
|
1034 |
-
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"
|
1035 |
-
integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==
|
1036 |
-
dependencies:
|
1037 |
-
micromatch "^3.1.4"
|
1038 |
-
normalize-path "^2.1.1"
|
1039 |
-
|
1040 |
-
anymatch@~3.1.1:
|
1041 |
-
version "3.1.1"
|
1042 |
-
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142"
|
1043 |
-
integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==
|
1044 |
-
dependencies:
|
1045 |
-
normalize-path "^3.0.0"
|
1046 |
-
picomatch "^2.0.4"
|
1047 |
-
|
1048 |
-
aproba@^1.1.1:
|
1049 |
-
version "1.2.0"
|
1050 |
-
resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
|
1051 |
-
integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
|
1052 |
-
|
1053 |
-
arr-diff@^4.0.0:
|
1054 |
-
version "4.0.0"
|
1055 |
-
resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
|
1056 |
-
integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=
|
1057 |
-
|
1058 |
-
arr-flatten@^1.1.0:
|
1059 |
-
version "1.1.0"
|
1060 |
-
resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
|
1061 |
-
integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
|
1062 |
-
|
1063 |
-
arr-union@^3.1.0:
|
1064 |
-
version "3.1.0"
|
1065 |
-
resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
|
1066 |
-
integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
|
1067 |
-
|
1068 |
-
array-unique@^0.3.2:
|
1069 |
-
version "0.3.2"
|
1070 |
-
resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
|
1071 |
-
integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
|
1072 |
-
|
1073 |
-
asn1.js@^5.2.0:
|
1074 |
-
version "5.4.1"
|
1075 |
-
resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07"
|
1076 |
-
integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==
|
1077 |
-
dependencies:
|
1078 |
-
bn.js "^4.0.0"
|
1079 |
-
inherits "^2.0.1"
|
1080 |
-
minimalistic-assert "^1.0.0"
|
1081 |
-
safer-buffer "^2.1.0"
|
1082 |
-
|
1083 |
-
assert@^1.1.1:
|
1084 |
-
version "1.5.0"
|
1085 |
-
resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb"
|
1086 |
-
integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==
|
1087 |
-
dependencies:
|
1088 |
-
object-assign "^4.1.1"
|
1089 |
-
util "0.10.3"
|
1090 |
-
|
1091 |
-
assign-symbols@^1.0.0:
|
1092 |
-
version "1.0.0"
|
1093 |
-
resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
|
1094 |
-
integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
|
1095 |
-
|
1096 |
-
async-each@^1.0.1:
|
1097 |
-
version "1.0.3"
|
1098 |
-
resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf"
|
1099 |
-
integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==
|
1100 |
-
|
1101 |
-
atob@^2.1.2:
|
1102 |
-
version "2.1.2"
|
1103 |
-
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
|
1104 |
-
integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
|
1105 |
-
|
1106 |
babel-loader@^8.1.0:
|
1107 |
version "8.2.2"
|
1108 |
resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81"
|
@@ -1120,29 +1101,29 @@ babel-plugin-dynamic-import-node@^2.3.3:
|
|
1120 |
dependencies:
|
1121 |
object.assign "^4.1.0"
|
1122 |
|
1123 |
-
babel-plugin-polyfill-corejs2@^0.
|
1124 |
-
version "0.
|
1125 |
-
resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.
|
1126 |
-
integrity sha512-
|
1127 |
dependencies:
|
1128 |
-
"@babel/compat-data" "^7.13.
|
1129 |
-
"@babel/helper-define-polyfill-provider" "^0.
|
1130 |
semver "^6.1.1"
|
1131 |
|
1132 |
-
babel-plugin-polyfill-corejs3@^0.
|
1133 |
-
version "0.
|
1134 |
-
resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.
|
1135 |
-
integrity sha512-
|
1136 |
dependencies:
|
1137 |
-
"@babel/helper-define-polyfill-provider" "^0.
|
1138 |
-
core-js-compat "^3.
|
1139 |
|
1140 |
-
babel-plugin-polyfill-regenerator@^0.
|
1141 |
-
version "0.
|
1142 |
-
resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.
|
1143 |
-
integrity sha512-
|
1144 |
dependencies:
|
1145 |
-
"@babel/helper-define-polyfill-provider" "^0.
|
1146 |
|
1147 |
babel-plugin-syntax-object-rest-spread@^6.8.0:
|
1148 |
version "6.13.0"
|
@@ -1165,233 +1146,26 @@ babel-runtime@^6.26.0:
|
|
1165 |
core-js "^2.4.0"
|
1166 |
regenerator-runtime "^0.11.0"
|
1167 |
|
1168 |
-
balanced-match@^1.0.0:
|
1169 |
-
version "1.0.0"
|
1170 |
-
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
|
1171 |
-
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
|
1172 |
-
|
1173 |
-
base64-js@^1.0.2:
|
1174 |
-
version "1.5.1"
|
1175 |
-
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
|
1176 |
-
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
|
1177 |
-
|
1178 |
-
base@^0.11.1:
|
1179 |
-
version "0.11.2"
|
1180 |
-
resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
|
1181 |
-
integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==
|
1182 |
-
dependencies:
|
1183 |
-
cache-base "^1.0.1"
|
1184 |
-
class-utils "^0.3.5"
|
1185 |
-
component-emitter "^1.2.1"
|
1186 |
-
define-property "^1.0.0"
|
1187 |
-
isobject "^3.0.1"
|
1188 |
-
mixin-deep "^1.2.0"
|
1189 |
-
pascalcase "^0.1.1"
|
1190 |
-
|
1191 |
big.js@^5.2.2:
|
1192 |
version "5.2.2"
|
1193 |
resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
|
1194 |
integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
|
1195 |
|
1196 |
-
|
1197 |
-
version "
|
1198 |
-
resolved "https://registry.yarnpkg.com/
|
1199 |
-
integrity sha512-
|
1200 |
-
|
1201 |
-
binary-extensions@^2.0.0:
|
1202 |
-
version "2.2.0"
|
1203 |
-
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
|
1204 |
-
integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
|
1205 |
-
|
1206 |
-
bindings@^1.5.0:
|
1207 |
-
version "1.5.0"
|
1208 |
-
resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df"
|
1209 |
-
integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==
|
1210 |
-
dependencies:
|
1211 |
-
file-uri-to-path "1.0.0"
|
1212 |
-
|
1213 |
-
bluebird@^3.5.5:
|
1214 |
-
version "3.7.2"
|
1215 |
-
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
|
1216 |
-
integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
|
1217 |
-
|
1218 |
-
bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9:
|
1219 |
-
version "4.12.0"
|
1220 |
-
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
|
1221 |
-
integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
|
1222 |
-
|
1223 |
-
bn.js@^5.0.0, bn.js@^5.1.1:
|
1224 |
-
version "5.2.0"
|
1225 |
-
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002"
|
1226 |
-
integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==
|
1227 |
-
|
1228 |
-
brace-expansion@^1.1.7:
|
1229 |
-
version "1.1.11"
|
1230 |
-
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
|
1231 |
-
integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
|
1232 |
-
dependencies:
|
1233 |
-
balanced-match "^1.0.0"
|
1234 |
-
concat-map "0.0.1"
|
1235 |
-
|
1236 |
-
braces@^2.3.1, braces@^2.3.2:
|
1237 |
-
version "2.3.2"
|
1238 |
-
resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
|
1239 |
-
integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==
|
1240 |
-
dependencies:
|
1241 |
-
arr-flatten "^1.1.0"
|
1242 |
-
array-unique "^0.3.2"
|
1243 |
-
extend-shallow "^2.0.1"
|
1244 |
-
fill-range "^4.0.0"
|
1245 |
-
isobject "^3.0.1"
|
1246 |
-
repeat-element "^1.1.2"
|
1247 |
-
snapdragon "^0.8.1"
|
1248 |
-
snapdragon-node "^2.0.1"
|
1249 |
-
split-string "^3.0.2"
|
1250 |
-
to-regex "^3.0.1"
|
1251 |
-
|
1252 |
-
braces@~3.0.2:
|
1253 |
-
version "3.0.2"
|
1254 |
-
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
|
1255 |
-
integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
|
1256 |
-
dependencies:
|
1257 |
-
fill-range "^7.0.1"
|
1258 |
-
|
1259 |
-
brorand@^1.0.1, brorand@^1.1.0:
|
1260 |
-
version "1.1.0"
|
1261 |
-
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
|
1262 |
-
integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
|
1263 |
-
|
1264 |
-
browserify-aes@^1.0.0, browserify-aes@^1.0.4:
|
1265 |
-
version "1.2.0"
|
1266 |
-
resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48"
|
1267 |
-
integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==
|
1268 |
-
dependencies:
|
1269 |
-
buffer-xor "^1.0.3"
|
1270 |
-
cipher-base "^1.0.0"
|
1271 |
-
create-hash "^1.1.0"
|
1272 |
-
evp_bytestokey "^1.0.3"
|
1273 |
-
inherits "^2.0.1"
|
1274 |
-
safe-buffer "^5.0.1"
|
1275 |
-
|
1276 |
-
browserify-cipher@^1.0.0:
|
1277 |
-
version "1.0.1"
|
1278 |
-
resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0"
|
1279 |
-
integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==
|
1280 |
-
dependencies:
|
1281 |
-
browserify-aes "^1.0.4"
|
1282 |
-
browserify-des "^1.0.0"
|
1283 |
-
evp_bytestokey "^1.0.0"
|
1284 |
-
|
1285 |
-
browserify-des@^1.0.0:
|
1286 |
-
version "1.0.2"
|
1287 |
-
resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c"
|
1288 |
-
integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==
|
1289 |
dependencies:
|
1290 |
-
|
1291 |
-
|
1292 |
-
inherits "^2.0.1"
|
1293 |
-
safe-buffer "^5.1.2"
|
1294 |
-
|
1295 |
-
browserify-rsa@^4.0.0, browserify-rsa@^4.0.1:
|
1296 |
-
version "4.1.0"
|
1297 |
-
resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d"
|
1298 |
-
integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==
|
1299 |
-
dependencies:
|
1300 |
-
bn.js "^5.0.0"
|
1301 |
-
randombytes "^2.0.1"
|
1302 |
-
|
1303 |
-
browserify-sign@^4.0.0:
|
1304 |
-
version "4.2.1"
|
1305 |
-
resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3"
|
1306 |
-
integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==
|
1307 |
-
dependencies:
|
1308 |
-
bn.js "^5.1.1"
|
1309 |
-
browserify-rsa "^4.0.1"
|
1310 |
-
create-hash "^1.2.0"
|
1311 |
-
create-hmac "^1.1.7"
|
1312 |
-
elliptic "^6.5.3"
|
1313 |
-
inherits "^2.0.4"
|
1314 |
-
parse-asn1 "^5.1.5"
|
1315 |
-
readable-stream "^3.6.0"
|
1316 |
-
safe-buffer "^5.2.0"
|
1317 |
-
|
1318 |
-
browserify-zlib@^0.2.0:
|
1319 |
-
version "0.2.0"
|
1320 |
-
resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f"
|
1321 |
-
integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==
|
1322 |
-
dependencies:
|
1323 |
-
pako "~1.0.5"
|
1324 |
-
|
1325 |
-
browserslist@^4.14.5, browserslist@^4.16.3:
|
1326 |
-
version "4.16.3"
|
1327 |
-
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.3.tgz#340aa46940d7db878748567c5dea24a48ddf3717"
|
1328 |
-
integrity sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==
|
1329 |
-
dependencies:
|
1330 |
-
caniuse-lite "^1.0.30001181"
|
1331 |
-
colorette "^1.2.1"
|
1332 |
-
electron-to-chromium "^1.3.649"
|
1333 |
escalade "^3.1.1"
|
1334 |
-
|
|
|
1335 |
|
1336 |
buffer-from@^1.0.0:
|
1337 |
-
version "1.1.
|
1338 |
-
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.
|
1339 |
-
integrity sha512-
|
1340 |
-
|
1341 |
-
buffer-xor@^1.0.3:
|
1342 |
-
version "1.0.3"
|
1343 |
-
resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
|
1344 |
-
integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=
|
1345 |
-
|
1346 |
-
buffer@^4.3.0:
|
1347 |
-
version "4.9.2"
|
1348 |
-
resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8"
|
1349 |
-
integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==
|
1350 |
-
dependencies:
|
1351 |
-
base64-js "^1.0.2"
|
1352 |
-
ieee754 "^1.1.4"
|
1353 |
-
isarray "^1.0.0"
|
1354 |
-
|
1355 |
-
builtin-status-codes@^3.0.0:
|
1356 |
-
version "3.0.0"
|
1357 |
-
resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
|
1358 |
-
integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=
|
1359 |
-
|
1360 |
-
cacache@^12.0.2:
|
1361 |
-
version "12.0.4"
|
1362 |
-
resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c"
|
1363 |
-
integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==
|
1364 |
-
dependencies:
|
1365 |
-
bluebird "^3.5.5"
|
1366 |
-
chownr "^1.1.1"
|
1367 |
-
figgy-pudding "^3.5.1"
|
1368 |
-
glob "^7.1.4"
|
1369 |
-
graceful-fs "^4.1.15"
|
1370 |
-
infer-owner "^1.0.3"
|
1371 |
-
lru-cache "^5.1.1"
|
1372 |
-
mississippi "^3.0.0"
|
1373 |
-
mkdirp "^0.5.1"
|
1374 |
-
move-concurrently "^1.0.1"
|
1375 |
-
promise-inflight "^1.0.1"
|
1376 |
-
rimraf "^2.6.3"
|
1377 |
-
ssri "^6.0.1"
|
1378 |
-
unique-filename "^1.1.1"
|
1379 |
-
y18n "^4.0.0"
|
1380 |
-
|
1381 |
-
cache-base@^1.0.1:
|
1382 |
-
version "1.0.1"
|
1383 |
-
resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
|
1384 |
-
integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==
|
1385 |
-
dependencies:
|
1386 |
-
collection-visit "^1.0.0"
|
1387 |
-
component-emitter "^1.2.1"
|
1388 |
-
get-value "^2.0.6"
|
1389 |
-
has-value "^1.0.0"
|
1390 |
-
isobject "^3.0.1"
|
1391 |
-
set-value "^2.0.0"
|
1392 |
-
to-object-path "^0.3.0"
|
1393 |
-
union-value "^1.0.0"
|
1394 |
-
unset-value "^1.0.0"
|
1395 |
|
1396 |
call-bind@^1.0.0:
|
1397 |
version "1.0.2"
|
@@ -1401,17 +1175,12 @@ call-bind@^1.0.0:
|
|
1401 |
function-bind "^1.1.1"
|
1402 |
get-intrinsic "^1.0.2"
|
1403 |
|
1404 |
-
|
1405 |
-
version "
|
1406 |
-
resolved "https://registry.yarnpkg.com/
|
1407 |
-
integrity sha512-
|
1408 |
|
1409 |
-
|
1410 |
-
version "1.0.30001204"
|
1411 |
-
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001204.tgz#256c85709a348ec4d175e847a3b515c66e79f2aa"
|
1412 |
-
integrity sha512-JUdjWpcxfJ9IPamy2f5JaRDCaqJOxDzOSKtbdx4rH9VivMd1vIzoPumsJa9LoMIi4Fx2BV2KZOxWhNkBjaYivQ==
|
1413 |
-
|
1414 |
-
chalk@^2.0.0, chalk@^2.4.2:
|
1415 |
version "2.4.2"
|
1416 |
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
|
1417 |
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
|
@@ -1420,86 +1189,19 @@ chalk@^2.0.0, chalk@^2.4.2:
|
|
1420 |
escape-string-regexp "^1.0.5"
|
1421 |
supports-color "^5.3.0"
|
1422 |
|
1423 |
-
chokidar@^2.1.8:
|
1424 |
-
version "2.1.8"
|
1425 |
-
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917"
|
1426 |
-
integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==
|
1427 |
-
dependencies:
|
1428 |
-
anymatch "^2.0.0"
|
1429 |
-
async-each "^1.0.1"
|
1430 |
-
braces "^2.3.2"
|
1431 |
-
glob-parent "^3.1.0"
|
1432 |
-
inherits "^2.0.3"
|
1433 |
-
is-binary-path "^1.0.0"
|
1434 |
-
is-glob "^4.0.0"
|
1435 |
-
normalize-path "^3.0.0"
|
1436 |
-
path-is-absolute "^1.0.0"
|
1437 |
-
readdirp "^2.2.1"
|
1438 |
-
upath "^1.1.1"
|
1439 |
-
optionalDependencies:
|
1440 |
-
fsevents "^1.2.7"
|
1441 |
-
|
1442 |
-
chokidar@^3.4.1:
|
1443 |
-
version "3.5.1"
|
1444 |
-
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a"
|
1445 |
-
integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==
|
1446 |
-
dependencies:
|
1447 |
-
anymatch "~3.1.1"
|
1448 |
-
braces "~3.0.2"
|
1449 |
-
glob-parent "~5.1.0"
|
1450 |
-
is-binary-path "~2.1.0"
|
1451 |
-
is-glob "~4.0.1"
|
1452 |
-
normalize-path "~3.0.0"
|
1453 |
-
readdirp "~3.5.0"
|
1454 |
-
optionalDependencies:
|
1455 |
-
fsevents "~2.3.1"
|
1456 |
-
|
1457 |
-
chownr@^1.1.1:
|
1458 |
-
version "1.1.4"
|
1459 |
-
resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
|
1460 |
-
integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
|
1461 |
-
|
1462 |
chrome-trace-event@^1.0.2:
|
1463 |
-
version "1.0.
|
1464 |
-
resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.
|
1465 |
-
integrity sha512-
|
1466 |
-
dependencies:
|
1467 |
-
tslib "^1.9.0"
|
1468 |
-
|
1469 |
-
cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
|
1470 |
-
version "1.0.4"
|
1471 |
-
resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de"
|
1472 |
-
integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==
|
1473 |
-
dependencies:
|
1474 |
-
inherits "^2.0.1"
|
1475 |
-
safe-buffer "^5.0.1"
|
1476 |
-
|
1477 |
-
class-utils@^0.3.5:
|
1478 |
-
version "0.3.6"
|
1479 |
-
resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
|
1480 |
-
integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==
|
1481 |
-
dependencies:
|
1482 |
-
arr-union "^3.1.0"
|
1483 |
-
define-property "^0.2.5"
|
1484 |
-
isobject "^3.0.0"
|
1485 |
-
static-extend "^0.1.1"
|
1486 |
-
|
1487 |
-
cliui@^5.0.0:
|
1488 |
-
version "5.0.0"
|
1489 |
-
resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5"
|
1490 |
-
integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==
|
1491 |
-
dependencies:
|
1492 |
-
string-width "^3.1.0"
|
1493 |
-
strip-ansi "^5.2.0"
|
1494 |
-
wrap-ansi "^5.1.0"
|
1495 |
|
1496 |
-
|
1497 |
-
version "
|
1498 |
-
resolved "https://registry.yarnpkg.com/
|
1499 |
-
integrity
|
1500 |
dependencies:
|
1501 |
-
|
1502 |
-
|
|
|
1503 |
|
1504 |
color-convert@^1.9.0:
|
1505 |
version "1.9.3"
|
@@ -1514,80 +1216,38 @@ color-name@1.1.3:
|
|
1514 |
integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
|
1515 |
|
1516 |
colorette@^1.2.1:
|
1517 |
-
version "1.
|
1518 |
-
resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.
|
1519 |
-
integrity sha512-
|
1520 |
|
1521 |
commander@^2.20.0:
|
1522 |
version "2.20.3"
|
1523 |
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
|
1524 |
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
|
1525 |
|
|
|
|
|
|
|
|
|
|
|
1526 |
commondir@^1.0.1:
|
1527 |
version "1.0.1"
|
1528 |
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
|
1529 |
integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
|
1530 |
|
1531 |
-
component-emitter@^1.2.1:
|
1532 |
-
version "1.3.0"
|
1533 |
-
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
|
1534 |
-
integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
|
1535 |
-
|
1536 |
-
concat-map@0.0.1:
|
1537 |
-
version "0.0.1"
|
1538 |
-
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
1539 |
-
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
|
1540 |
-
|
1541 |
-
concat-stream@^1.5.0:
|
1542 |
-
version "1.6.2"
|
1543 |
-
resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
|
1544 |
-
integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
|
1545 |
-
dependencies:
|
1546 |
-
buffer-from "^1.0.0"
|
1547 |
-
inherits "^2.0.3"
|
1548 |
-
readable-stream "^2.2.2"
|
1549 |
-
typedarray "^0.0.6"
|
1550 |
-
|
1551 |
-
console-browserify@^1.1.0:
|
1552 |
-
version "1.2.0"
|
1553 |
-
resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336"
|
1554 |
-
integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==
|
1555 |
-
|
1556 |
-
constants-browserify@^1.0.0:
|
1557 |
-
version "1.0.0"
|
1558 |
-
resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
|
1559 |
-
integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=
|
1560 |
-
|
1561 |
convert-source-map@^1.7.0:
|
1562 |
-
version "1.
|
1563 |
-
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.
|
1564 |
-
integrity sha512
|
1565 |
dependencies:
|
1566 |
safe-buffer "~5.1.1"
|
1567 |
|
1568 |
-
|
1569 |
-
version "
|
1570 |
-
resolved "https://registry.yarnpkg.com/
|
1571 |
-
integrity sha512-
|
1572 |
-
dependencies:
|
1573 |
-
|
1574 |
-
fs-write-stream-atomic "^1.0.8"
|
1575 |
-
iferr "^0.1.5"
|
1576 |
-
mkdirp "^0.5.1"
|
1577 |
-
rimraf "^2.5.4"
|
1578 |
-
run-queue "^1.0.0"
|
1579 |
-
|
1580 |
-
copy-descriptor@^0.1.0:
|
1581 |
-
version "0.1.1"
|
1582 |
-
resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
|
1583 |
-
integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
|
1584 |
-
|
1585 |
-
core-js-compat@^3.8.1, core-js-compat@^3.9.0:
|
1586 |
-
version "3.9.1"
|
1587 |
-
resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.9.1.tgz#4e572acfe90aff69d76d8c37759d21a5c59bb455"
|
1588 |
-
integrity sha512-jXAirMQxrkbiiLsCx9bQPJFA6llDadKMpYrBJQJ3/c4/vsPP/fAf29h24tviRlvwUL6AmY5CHLu2GvjuYviQqA==
|
1589 |
-
dependencies:
|
1590 |
-
browserslist "^4.16.3"
|
1591 |
semver "7.0.0"
|
1592 |
|
1593 |
core-js@^2.4.0:
|
@@ -1595,106 +1255,29 @@ core-js@^2.4.0:
|
|
1595 |
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec"
|
1596 |
integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
|
1597 |
|
1598 |
-
|
1599 |
-
version "
|
1600 |
-
resolved "https://registry.yarnpkg.com/
|
1601 |
-
integrity
|
1602 |
-
|
1603 |
-
create-ecdh@^4.0.0:
|
1604 |
-
version "4.0.4"
|
1605 |
-
resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e"
|
1606 |
-
integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==
|
1607 |
dependencies:
|
1608 |
-
|
1609 |
-
elliptic "^6.5.3"
|
1610 |
-
|
1611 |
-
create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0:
|
1612 |
-
version "1.2.0"
|
1613 |
-
resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196"
|
1614 |
-
integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==
|
1615 |
-
dependencies:
|
1616 |
-
cipher-base "^1.0.1"
|
1617 |
-
inherits "^2.0.1"
|
1618 |
-
md5.js "^1.3.4"
|
1619 |
-
ripemd160 "^2.0.1"
|
1620 |
-
sha.js "^2.4.0"
|
1621 |
-
|
1622 |
-
create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7:
|
1623 |
-
version "1.1.7"
|
1624 |
-
resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff"
|
1625 |
-
integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==
|
1626 |
-
dependencies:
|
1627 |
-
cipher-base "^1.0.3"
|
1628 |
-
create-hash "^1.1.0"
|
1629 |
-
inherits "^2.0.1"
|
1630 |
-
ripemd160 "^2.0.0"
|
1631 |
-
safe-buffer "^5.0.1"
|
1632 |
-
sha.js "^2.4.8"
|
1633 |
-
|
1634 |
-
cross-env@^5.0.1:
|
1635 |
-
version "5.2.1"
|
1636 |
-
resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.2.1.tgz#b2c76c1ca7add66dc874d11798466094f551b34d"
|
1637 |
-
integrity sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ==
|
1638 |
-
dependencies:
|
1639 |
-
cross-spawn "^6.0.5"
|
1640 |
-
|
1641 |
-
cross-spawn@^6.0.5:
|
1642 |
-
version "6.0.5"
|
1643 |
-
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
|
1644 |
-
integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
|
1645 |
-
dependencies:
|
1646 |
-
nice-try "^1.0.4"
|
1647 |
-
path-key "^2.0.1"
|
1648 |
-
semver "^5.5.0"
|
1649 |
-
shebang-command "^1.2.0"
|
1650 |
-
which "^1.2.9"
|
1651 |
-
|
1652 |
-
crypto-browserify@^3.11.0:
|
1653 |
-
version "3.12.0"
|
1654 |
-
resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"
|
1655 |
-
integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==
|
1656 |
-
dependencies:
|
1657 |
-
browserify-cipher "^1.0.0"
|
1658 |
-
browserify-sign "^4.0.0"
|
1659 |
-
create-ecdh "^4.0.0"
|
1660 |
-
create-hash "^1.1.0"
|
1661 |
-
create-hmac "^1.1.0"
|
1662 |
-
diffie-hellman "^5.0.0"
|
1663 |
-
inherits "^2.0.1"
|
1664 |
-
pbkdf2 "^3.0.3"
|
1665 |
-
public-encrypt "^4.0.0"
|
1666 |
-
randombytes "^2.0.0"
|
1667 |
-
randomfill "^1.0.3"
|
1668 |
-
|
1669 |
-
cyclist@^1.0.1:
|
1670 |
-
version "1.0.1"
|
1671 |
-
resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9"
|
1672 |
-
integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=
|
1673 |
|
1674 |
-
|
1675 |
-
version "
|
1676 |
-
resolved "https://registry.yarnpkg.com/
|
1677 |
-
integrity sha512-
|
1678 |
dependencies:
|
1679 |
-
|
|
|
|
|
1680 |
|
1681 |
debug@^4.1.0, debug@^4.1.1:
|
1682 |
-
version "4.3.
|
1683 |
-
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.
|
1684 |
-
integrity sha512-
|
1685 |
dependencies:
|
1686 |
ms "2.1.2"
|
1687 |
|
1688 |
-
decamelize@^1.2.0:
|
1689 |
-
version "1.2.0"
|
1690 |
-
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
|
1691 |
-
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
|
1692 |
-
|
1693 |
-
decode-uri-component@^0.2.0:
|
1694 |
-
version "0.2.0"
|
1695 |
-
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
|
1696 |
-
integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
|
1697 |
-
|
1698 |
define-properties@^1.1.3:
|
1699 |
version "1.1.3"
|
1700 |
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
|
@@ -1702,115 +1285,33 @@ define-properties@^1.1.3:
|
|
1702 |
dependencies:
|
1703 |
object-keys "^1.0.12"
|
1704 |
|
1705 |
-
|
1706 |
-
version "
|
1707 |
-
resolved "https://registry.yarnpkg.com/
|
1708 |
-
integrity
|
1709 |
-
dependencies:
|
1710 |
-
is-descriptor "^0.1.0"
|
1711 |
-
|
1712 |
-
define-property@^1.0.0:
|
1713 |
-
version "1.0.0"
|
1714 |
-
resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"
|
1715 |
-
integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY=
|
1716 |
-
dependencies:
|
1717 |
-
is-descriptor "^1.0.0"
|
1718 |
-
|
1719 |
-
define-property@^2.0.2:
|
1720 |
-
version "2.0.2"
|
1721 |
-
resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d"
|
1722 |
-
integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==
|
1723 |
-
dependencies:
|
1724 |
-
is-descriptor "^1.0.2"
|
1725 |
-
isobject "^3.0.1"
|
1726 |
-
|
1727 |
-
des.js@^1.0.0:
|
1728 |
-
version "1.0.1"
|
1729 |
-
resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843"
|
1730 |
-
integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==
|
1731 |
-
dependencies:
|
1732 |
-
inherits "^2.0.1"
|
1733 |
-
minimalistic-assert "^1.0.0"
|
1734 |
-
|
1735 |
-
detect-file@^1.0.0:
|
1736 |
-
version "1.0.0"
|
1737 |
-
resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7"
|
1738 |
-
integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=
|
1739 |
-
|
1740 |
-
diffie-hellman@^5.0.0:
|
1741 |
-
version "5.0.3"
|
1742 |
-
resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
|
1743 |
-
integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==
|
1744 |
-
dependencies:
|
1745 |
-
bn.js "^4.1.0"
|
1746 |
-
miller-rabin "^4.0.0"
|
1747 |
-
randombytes "^2.0.0"
|
1748 |
-
|
1749 |
-
domain-browser@^1.1.1:
|
1750 |
-
version "1.2.0"
|
1751 |
-
resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
|
1752 |
-
integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==
|
1753 |
-
|
1754 |
-
duplexify@^3.4.2, duplexify@^3.6.0:
|
1755 |
-
version "3.7.1"
|
1756 |
-
resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309"
|
1757 |
-
integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==
|
1758 |
-
dependencies:
|
1759 |
-
end-of-stream "^1.0.0"
|
1760 |
-
inherits "^2.0.1"
|
1761 |
-
readable-stream "^2.0.0"
|
1762 |
-
stream-shift "^1.0.0"
|
1763 |
-
|
1764 |
-
electron-to-chromium@^1.3.649:
|
1765 |
-
version "1.3.701"
|
1766 |
-
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.701.tgz#5e796ed7ce88cd77bc7bf831cf311ef6b067c389"
|
1767 |
-
integrity sha512-Zd9ofdIMYHYhG1gvnejQDvC/kqSeXQvtXF0yRURGxgwGqDZm9F9Fm3dYFnm5gyuA7xpXfBlzVLN1sz0FjxpKfw==
|
1768 |
-
|
1769 |
-
elliptic@^6.5.3:
|
1770 |
-
version "6.5.4"
|
1771 |
-
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
|
1772 |
-
integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==
|
1773 |
-
dependencies:
|
1774 |
-
bn.js "^4.11.9"
|
1775 |
-
brorand "^1.1.0"
|
1776 |
-
hash.js "^1.0.0"
|
1777 |
-
hmac-drbg "^1.0.1"
|
1778 |
-
inherits "^2.0.4"
|
1779 |
-
minimalistic-assert "^1.0.1"
|
1780 |
-
minimalistic-crypto-utils "^1.0.1"
|
1781 |
-
|
1782 |
-
emoji-regex@^7.0.1:
|
1783 |
-
version "7.0.3"
|
1784 |
-
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
|
1785 |
-
integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
|
1786 |
|
1787 |
emojis-list@^3.0.0:
|
1788 |
version "3.0.0"
|
1789 |
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
|
1790 |
integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
|
1791 |
|
1792 |
-
|
1793 |
-
version "
|
1794 |
-
resolved "https://registry.yarnpkg.com/
|
1795 |
-
integrity sha512
|
1796 |
dependencies:
|
1797 |
-
|
|
|
1798 |
|
1799 |
-
|
1800 |
-
version "
|
1801 |
-
resolved "https://registry.yarnpkg.com/
|
1802 |
-
integrity sha512
|
1803 |
-
dependencies:
|
1804 |
-
graceful-fs "^4.1.2"
|
1805 |
-
memory-fs "^0.5.0"
|
1806 |
-
tapable "^1.0.0"
|
1807 |
|
1808 |
-
|
1809 |
-
version "0.1
|
1810 |
-
resolved "https://registry.yarnpkg.com/
|
1811 |
-
integrity sha512-
|
1812 |
-
dependencies:
|
1813 |
-
prr "~1.0.1"
|
1814 |
|
1815 |
escalade@^3.1.1:
|
1816 |
version "3.1.1"
|
@@ -1822,15 +1323,15 @@ escape-string-regexp@^1.0.5:
|
|
1822 |
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
|
1823 |
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
|
1824 |
|
1825 |
-
eslint-scope
|
1826 |
-
version "
|
1827 |
-
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-
|
1828 |
-
integrity sha512-
|
1829 |
dependencies:
|
1830 |
-
esrecurse "^4.
|
1831 |
estraverse "^4.1.1"
|
1832 |
|
1833 |
-
esrecurse@^4.
|
1834 |
version "4.3.0"
|
1835 |
resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
|
1836 |
integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
|
@@ -1852,67 +1353,25 @@ esutils@^2.0.2:
|
|
1852 |
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
|
1853 |
integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
|
1854 |
|
1855 |
-
events@^3.
|
1856 |
version "3.3.0"
|
1857 |
resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
|
1858 |
integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
|
1859 |
|
1860 |
-
|
1861 |
-
version "1.
|
1862 |
-
resolved "https://registry.yarnpkg.com/
|
1863 |
-
integrity sha512
|
1864 |
-
dependencies:
|
1865 |
-
|
1866 |
-
|
1867 |
-
|
1868 |
-
|
1869 |
-
|
1870 |
-
|
1871 |
-
|
1872 |
-
|
1873 |
-
|
1874 |
-
define-property "^0.2.5"
|
1875 |
-
extend-shallow "^2.0.1"
|
1876 |
-
posix-character-classes "^0.1.0"
|
1877 |
-
regex-not "^1.0.0"
|
1878 |
-
snapdragon "^0.8.1"
|
1879 |
-
to-regex "^3.0.1"
|
1880 |
-
|
1881 |
-
expand-tilde@^2.0.0, expand-tilde@^2.0.2:
|
1882 |
-
version "2.0.2"
|
1883 |
-
resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502"
|
1884 |
-
integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=
|
1885 |
-
dependencies:
|
1886 |
-
homedir-polyfill "^1.0.1"
|
1887 |
-
|
1888 |
-
extend-shallow@^2.0.1:
|
1889 |
-
version "2.0.1"
|
1890 |
-
resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
|
1891 |
-
integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=
|
1892 |
-
dependencies:
|
1893 |
-
is-extendable "^0.1.0"
|
1894 |
-
|
1895 |
-
extend-shallow@^3.0.0, extend-shallow@^3.0.2:
|
1896 |
-
version "3.0.2"
|
1897 |
-
resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
|
1898 |
-
integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=
|
1899 |
-
dependencies:
|
1900 |
-
assign-symbols "^1.0.0"
|
1901 |
-
is-extendable "^1.0.1"
|
1902 |
-
|
1903 |
-
extglob@^2.0.4:
|
1904 |
-
version "2.0.4"
|
1905 |
-
resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
|
1906 |
-
integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==
|
1907 |
-
dependencies:
|
1908 |
-
array-unique "^0.3.2"
|
1909 |
-
define-property "^1.0.0"
|
1910 |
-
expand-brackets "^2.1.4"
|
1911 |
-
extend-shallow "^2.0.1"
|
1912 |
-
fragment-cache "^0.2.1"
|
1913 |
-
regex-not "^1.0.0"
|
1914 |
-
snapdragon "^0.8.1"
|
1915 |
-
to-regex "^3.0.1"
|
1916 |
|
1917 |
fast-deep-equal@^3.1.1:
|
1918 |
version "3.1.3"
|
@@ -1924,66 +1383,28 @@ fast-json-stable-stringify@^2.0.0:
|
|
1924 |
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
|
1925 |
integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
|
1926 |
|
1927 |
-
|
1928 |
-
version "
|
1929 |
-
resolved "https://registry.yarnpkg.com/
|
1930 |
-
integrity sha512-
|
1931 |
|
1932 |
-
file-loader@^
|
1933 |
-
version "
|
1934 |
-
resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-
|
1935 |
-
integrity sha512-
|
1936 |
dependencies:
|
1937 |
-
loader-utils "^
|
1938 |
-
schema-utils "^
|
1939 |
-
|
1940 |
-
file-uri-to-path@1.0.0:
|
1941 |
-
version "1.0.0"
|
1942 |
-
resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
|
1943 |
-
integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
|
1944 |
-
|
1945 |
-
fill-range@^4.0.0:
|
1946 |
-
version "4.0.0"
|
1947 |
-
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
|
1948 |
-
integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=
|
1949 |
-
dependencies:
|
1950 |
-
extend-shallow "^2.0.1"
|
1951 |
-
is-number "^3.0.0"
|
1952 |
-
repeat-string "^1.6.1"
|
1953 |
-
to-regex-range "^2.1.0"
|
1954 |
-
|
1955 |
-
fill-range@^7.0.1:
|
1956 |
-
version "7.0.1"
|
1957 |
-
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
|
1958 |
-
integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
|
1959 |
-
dependencies:
|
1960 |
-
to-regex-range "^5.0.1"
|
1961 |
-
|
1962 |
-
find-cache-dir@^2.1.0:
|
1963 |
-
version "2.1.0"
|
1964 |
-
resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7"
|
1965 |
-
integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==
|
1966 |
-
dependencies:
|
1967 |
-
commondir "^1.0.1"
|
1968 |
-
make-dir "^2.0.0"
|
1969 |
-
pkg-dir "^3.0.0"
|
1970 |
|
1971 |
find-cache-dir@^3.3.1:
|
1972 |
-
version "3.3.
|
1973 |
-
resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.
|
1974 |
-
integrity sha512-
|
1975 |
dependencies:
|
1976 |
commondir "^1.0.1"
|
1977 |
make-dir "^3.0.2"
|
1978 |
pkg-dir "^4.1.0"
|
1979 |
|
1980 |
-
find-up@^3.0.0:
|
1981 |
-
version "3.0.0"
|
1982 |
-
resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
|
1983 |
-
integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==
|
1984 |
-
dependencies:
|
1985 |
-
locate-path "^3.0.0"
|
1986 |
-
|
1987 |
find-up@^4.0.0:
|
1988 |
version "4.1.0"
|
1989 |
resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
|
@@ -1992,72 +1413,6 @@ find-up@^4.0.0:
|
|
1992 |
locate-path "^5.0.0"
|
1993 |
path-exists "^4.0.0"
|
1994 |
|
1995 |
-
findup-sync@^3.0.0:
|
1996 |
-
version "3.0.0"
|
1997 |
-
resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1"
|
1998 |
-
integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==
|
1999 |
-
dependencies:
|
2000 |
-
detect-file "^1.0.0"
|
2001 |
-
is-glob "^4.0.0"
|
2002 |
-
micromatch "^3.0.4"
|
2003 |
-
resolve-dir "^1.0.1"
|
2004 |
-
|
2005 |
-
flush-write-stream@^1.0.0:
|
2006 |
-
version "1.1.1"
|
2007 |
-
resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8"
|
2008 |
-
integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==
|
2009 |
-
dependencies:
|
2010 |
-
inherits "^2.0.3"
|
2011 |
-
readable-stream "^2.3.6"
|
2012 |
-
|
2013 |
-
for-in@^1.0.2:
|
2014 |
-
version "1.0.2"
|
2015 |
-
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
|
2016 |
-
integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
|
2017 |
-
|
2018 |
-
fragment-cache@^0.2.1:
|
2019 |
-
version "0.2.1"
|
2020 |
-
resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
|
2021 |
-
integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=
|
2022 |
-
dependencies:
|
2023 |
-
map-cache "^0.2.2"
|
2024 |
-
|
2025 |
-
from2@^2.1.0:
|
2026 |
-
version "2.3.0"
|
2027 |
-
resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af"
|
2028 |
-
integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=
|
2029 |
-
dependencies:
|
2030 |
-
inherits "^2.0.1"
|
2031 |
-
readable-stream "^2.0.0"
|
2032 |
-
|
2033 |
-
fs-write-stream-atomic@^1.0.8:
|
2034 |
-
version "1.0.10"
|
2035 |
-
resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9"
|
2036 |
-
integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=
|
2037 |
-
dependencies:
|
2038 |
-
graceful-fs "^4.1.2"
|
2039 |
-
iferr "^0.1.5"
|
2040 |
-
imurmurhash "^0.1.4"
|
2041 |
-
readable-stream "1 || 2"
|
2042 |
-
|
2043 |
-
fs.realpath@^1.0.0:
|
2044 |
-
version "1.0.0"
|
2045 |
-
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
|
2046 |
-
integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
|
2047 |
-
|
2048 |
-
fsevents@^1.2.7:
|
2049 |
-
version "1.2.13"
|
2050 |
-
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38"
|
2051 |
-
integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==
|
2052 |
-
dependencies:
|
2053 |
-
bindings "^1.5.0"
|
2054 |
-
nan "^2.12.1"
|
2055 |
-
|
2056 |
-
fsevents@~2.3.1:
|
2057 |
-
version "2.3.2"
|
2058 |
-
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
|
2059 |
-
integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
|
2060 |
-
|
2061 |
function-bind@^1.1.1:
|
2062 |
version "1.1.1"
|
2063 |
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
|
@@ -2068,11 +1423,6 @@ gensync@^1.0.0-beta.2:
|
|
2068 |
resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
|
2069 |
integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
|
2070 |
|
2071 |
-
get-caller-file@^2.0.1:
|
2072 |
-
version "2.0.5"
|
2073 |
-
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
|
2074 |
-
integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
|
2075 |
-
|
2076 |
get-intrinsic@^1.0.2:
|
2077 |
version "1.1.1"
|
2078 |
resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6"
|
@@ -2082,125 +1432,41 @@ get-intrinsic@^1.0.2:
|
|
2082 |
has "^1.0.3"
|
2083 |
has-symbols "^1.0.1"
|
2084 |
|
2085 |
-
get-
|
2086 |
-
version "
|
2087 |
-
resolved "https://registry.yarnpkg.com/get-
|
2088 |
-
integrity
|
2089 |
-
|
2090 |
-
glob-parent@^3.1.0:
|
2091 |
-
version "3.1.0"
|
2092 |
-
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
|
2093 |
-
integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=
|
2094 |
-
dependencies:
|
2095 |
-
is-glob "^3.1.0"
|
2096 |
-
path-dirname "^1.0.0"
|
2097 |
-
|
2098 |
-
glob-parent@~5.1.0:
|
2099 |
-
version "5.1.2"
|
2100 |
-
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
|
2101 |
-
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
|
2102 |
-
dependencies:
|
2103 |
-
is-glob "^4.0.1"
|
2104 |
-
|
2105 |
-
glob@^7.1.3, glob@^7.1.4:
|
2106 |
-
version "7.1.6"
|
2107 |
-
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
|
2108 |
-
integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
|
2109 |
-
dependencies:
|
2110 |
-
fs.realpath "^1.0.0"
|
2111 |
-
inflight "^1.0.4"
|
2112 |
-
inherits "2"
|
2113 |
-
minimatch "^3.0.4"
|
2114 |
-
once "^1.3.0"
|
2115 |
-
path-is-absolute "^1.0.0"
|
2116 |
-
|
2117 |
-
global-modules@^1.0.0:
|
2118 |
-
version "1.0.0"
|
2119 |
-
resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea"
|
2120 |
-
integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==
|
2121 |
-
dependencies:
|
2122 |
-
global-prefix "^1.0.1"
|
2123 |
-
is-windows "^1.0.1"
|
2124 |
-
resolve-dir "^1.0.0"
|
2125 |
-
|
2126 |
-
global-modules@^2.0.0:
|
2127 |
-
version "2.0.0"
|
2128 |
-
resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780"
|
2129 |
-
integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==
|
2130 |
-
dependencies:
|
2131 |
-
global-prefix "^3.0.0"
|
2132 |
-
|
2133 |
-
global-prefix@^1.0.1:
|
2134 |
-
version "1.0.2"
|
2135 |
-
resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe"
|
2136 |
-
integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=
|
2137 |
-
dependencies:
|
2138 |
-
expand-tilde "^2.0.2"
|
2139 |
-
homedir-polyfill "^1.0.1"
|
2140 |
-
ini "^1.3.4"
|
2141 |
-
is-windows "^1.0.1"
|
2142 |
-
which "^1.2.14"
|
2143 |
|
2144 |
-
|
2145 |
-
version "
|
2146 |
-
resolved "https://registry.yarnpkg.com/
|
2147 |
-
integrity sha512-
|
2148 |
-
dependencies:
|
2149 |
-
ini "^1.3.5"
|
2150 |
-
kind-of "^6.0.2"
|
2151 |
-
which "^1.3.1"
|
2152 |
|
2153 |
globals@^11.1.0:
|
2154 |
version "11.12.0"
|
2155 |
resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
|
2156 |
integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
|
2157 |
|
2158 |
-
graceful-fs@^4.1.
|
2159 |
-
version "4.2.
|
2160 |
-
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.
|
2161 |
-
integrity sha512-
|
2162 |
|
2163 |
has-flag@^3.0.0:
|
2164 |
version "3.0.0"
|
2165 |
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
|
2166 |
integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
|
2167 |
|
|
|
|
|
|
|
|
|
|
|
2168 |
has-symbols@^1.0.1:
|
2169 |
version "1.0.2"
|
2170 |
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423"
|
2171 |
integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==
|
2172 |
|
2173 |
-
has-value@^0.3.1:
|
2174 |
-
version "0.3.1"
|
2175 |
-
resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
|
2176 |
-
integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=
|
2177 |
-
dependencies:
|
2178 |
-
get-value "^2.0.3"
|
2179 |
-
has-values "^0.1.4"
|
2180 |
-
isobject "^2.0.0"
|
2181 |
-
|
2182 |
-
has-value@^1.0.0:
|
2183 |
-
version "1.0.0"
|
2184 |
-
resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177"
|
2185 |
-
integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=
|
2186 |
-
dependencies:
|
2187 |
-
get-value "^2.0.6"
|
2188 |
-
has-values "^1.0.0"
|
2189 |
-
isobject "^3.0.0"
|
2190 |
-
|
2191 |
-
has-values@^0.1.4:
|
2192 |
-
version "0.1.4"
|
2193 |
-
resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
|
2194 |
-
integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E=
|
2195 |
-
|
2196 |
-
has-values@^1.0.0:
|
2197 |
-
version "1.0.0"
|
2198 |
-
resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f"
|
2199 |
-
integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=
|
2200 |
-
dependencies:
|
2201 |
-
is-number "^3.0.0"
|
2202 |
-
kind-of "^4.0.0"
|
2203 |
-
|
2204 |
has@^1.0.3:
|
2205 |
version "1.0.3"
|
2206 |
resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
|
@@ -2208,264 +1474,62 @@ has@^1.0.3:
|
|
2208 |
dependencies:
|
2209 |
function-bind "^1.1.1"
|
2210 |
|
2211 |
-
|
2212 |
-
version "3.1.0"
|
2213 |
-
resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33"
|
2214 |
-
integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==
|
2215 |
-
dependencies:
|
2216 |
-
inherits "^2.0.4"
|
2217 |
-
readable-stream "^3.6.0"
|
2218 |
-
safe-buffer "^5.2.0"
|
2219 |
-
|
2220 |
-
hash.js@^1.0.0, hash.js@^1.0.3:
|
2221 |
-
version "1.1.7"
|
2222 |
-
resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"
|
2223 |
-
integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==
|
2224 |
-
dependencies:
|
2225 |
-
inherits "^2.0.3"
|
2226 |
-
minimalistic-assert "^1.0.1"
|
2227 |
-
|
2228 |
-
hmac-drbg@^1.0.1:
|
2229 |
-
version "1.0.1"
|
2230 |
-
resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
|
2231 |
-
integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=
|
2232 |
-
dependencies:
|
2233 |
-
hash.js "^1.0.3"
|
2234 |
-
minimalistic-assert "^1.0.0"
|
2235 |
-
minimalistic-crypto-utils "^1.0.1"
|
2236 |
-
|
2237 |
-
homedir-polyfill@^1.0.1:
|
2238 |
-
version "1.0.3"
|
2239 |
-
resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8"
|
2240 |
-
integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==
|
2241 |
-
dependencies:
|
2242 |
-
parse-passwd "^1.0.0"
|
2243 |
-
|
2244 |
-
https-browserify@^1.0.0:
|
2245 |
-
version "1.0.0"
|
2246 |
-
resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
|
2247 |
-
integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
|
2248 |
-
|
2249 |
-
ieee754@^1.1.4:
|
2250 |
-
version "1.2.1"
|
2251 |
-
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
|
2252 |
-
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
|
2253 |
-
|
2254 |
-
iferr@^0.1.5:
|
2255 |
-
version "0.1.5"
|
2256 |
-
resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
|
2257 |
-
integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE=
|
2258 |
-
|
2259 |
-
import-local@^2.0.0:
|
2260 |
-
version "2.0.0"
|
2261 |
-
resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d"
|
2262 |
-
integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==
|
2263 |
-
dependencies:
|
2264 |
-
pkg-dir "^3.0.0"
|
2265 |
-
resolve-cwd "^2.0.0"
|
2266 |
-
|
2267 |
-
imurmurhash@^0.1.4:
|
2268 |
-
version "0.1.4"
|
2269 |
-
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
|
2270 |
-
integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
|
2271 |
-
|
2272 |
-
infer-owner@^1.0.3:
|
2273 |
-
version "1.0.4"
|
2274 |
-
resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467"
|
2275 |
-
integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==
|
2276 |
-
|
2277 |
-
inflight@^1.0.4:
|
2278 |
-
version "1.0.6"
|
2279 |
-
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
|
2280 |
-
integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
|
2281 |
-
dependencies:
|
2282 |
-
once "^1.3.0"
|
2283 |
-
wrappy "1"
|
2284 |
-
|
2285 |
-
inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3:
|
2286 |
-
version "2.0.4"
|
2287 |
-
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
|
2288 |
-
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
|
2289 |
-
|
2290 |
-
inherits@2.0.1:
|
2291 |
-
version "2.0.1"
|
2292 |
-
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
|
2293 |
-
integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=
|
2294 |
-
|
2295 |
-
inherits@2.0.3:
|
2296 |
-
version "2.0.3"
|
2297 |
-
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
|
2298 |
-
integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
|
2299 |
-
|
2300 |
-
ini@^1.3.4, ini@^1.3.5:
|
2301 |
-
version "1.3.8"
|
2302 |
-
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
|
2303 |
-
integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
|
2304 |
-
|
2305 |
-
interpret@^1.4.0:
|
2306 |
-
version "1.4.0"
|
2307 |
-
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e"
|
2308 |
-
integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==
|
2309 |
-
|
2310 |
-
is-accessor-descriptor@^0.1.6:
|
2311 |
-
version "0.1.6"
|
2312 |
-
resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
|
2313 |
-
integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=
|
2314 |
-
dependencies:
|
2315 |
-
kind-of "^3.0.2"
|
2316 |
-
|
2317 |
-
is-accessor-descriptor@^1.0.0:
|
2318 |
-
version "1.0.0"
|
2319 |
-
resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656"
|
2320 |
-
integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==
|
2321 |
-
dependencies:
|
2322 |
-
kind-of "^6.0.0"
|
2323 |
-
|
2324 |
-
is-binary-path@^1.0.0:
|
2325 |
-
version "1.0.1"
|
2326 |
-
resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
|
2327 |
-
integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=
|
2328 |
-
dependencies:
|
2329 |
-
binary-extensions "^1.0.0"
|
2330 |
-
|
2331 |
-
is-binary-path@~2.1.0:
|
2332 |
version "2.1.0"
|
2333 |
-
resolved "https://registry.yarnpkg.com/
|
2334 |
-
integrity sha512-
|
|
|
|
|
|
|
|
|
|
|
2335 |
dependencies:
|
2336 |
-
|
|
|
2337 |
|
2338 |
-
|
2339 |
-
version "
|
2340 |
-
resolved "https://registry.yarnpkg.com/
|
2341 |
-
integrity sha512-
|
2342 |
|
2343 |
is-core-module@^2.2.0:
|
2344 |
-
version "2.
|
2345 |
-
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.
|
2346 |
-
integrity sha512-
|
2347 |
dependencies:
|
2348 |
has "^1.0.3"
|
2349 |
|
2350 |
-
is-
|
2351 |
-
version "0.1.4"
|
2352 |
-
resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
|
2353 |
-
integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=
|
2354 |
-
dependencies:
|
2355 |
-
kind-of "^3.0.2"
|
2356 |
-
|
2357 |
-
is-data-descriptor@^1.0.0:
|
2358 |
-
version "1.0.0"
|
2359 |
-
resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7"
|
2360 |
-
integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==
|
2361 |
-
dependencies:
|
2362 |
-
kind-of "^6.0.0"
|
2363 |
-
|
2364 |
-
is-descriptor@^0.1.0:
|
2365 |
-
version "0.1.6"
|
2366 |
-
resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
|
2367 |
-
integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==
|
2368 |
-
dependencies:
|
2369 |
-
is-accessor-descriptor "^0.1.6"
|
2370 |
-
is-data-descriptor "^0.1.4"
|
2371 |
-
kind-of "^5.0.0"
|
2372 |
-
|
2373 |
-
is-descriptor@^1.0.0, is-descriptor@^1.0.2:
|
2374 |
-
version "1.0.2"
|
2375 |
-
resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec"
|
2376 |
-
integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==
|
2377 |
-
dependencies:
|
2378 |
-
is-accessor-descriptor "^1.0.0"
|
2379 |
-
is-data-descriptor "^1.0.0"
|
2380 |
-
kind-of "^6.0.2"
|
2381 |
-
|
2382 |
-
is-extendable@^0.1.0, is-extendable@^0.1.1:
|
2383 |
-
version "0.1.1"
|
2384 |
-
resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
|
2385 |
-
integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=
|
2386 |
-
|
2387 |
-
is-extendable@^1.0.1:
|
2388 |
-
version "1.0.1"
|
2389 |
-
resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
|
2390 |
-
integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==
|
2391 |
-
dependencies:
|
2392 |
-
is-plain-object "^2.0.4"
|
2393 |
-
|
2394 |
-
is-extglob@^2.1.0, is-extglob@^2.1.1:
|
2395 |
-
version "2.1.1"
|
2396 |
-
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
|
2397 |
-
integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
|
2398 |
-
|
2399 |
-
is-fullwidth-code-point@^2.0.0:
|
2400 |
-
version "2.0.0"
|
2401 |
-
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
|
2402 |
-
integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
|
2403 |
-
|
2404 |
-
is-glob@^3.1.0:
|
2405 |
-
version "3.1.0"
|
2406 |
-
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a"
|
2407 |
-
integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=
|
2408 |
-
dependencies:
|
2409 |
-
is-extglob "^2.1.0"
|
2410 |
-
|
2411 |
-
is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1:
|
2412 |
-
version "4.0.1"
|
2413 |
-
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
|
2414 |
-
integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
|
2415 |
-
dependencies:
|
2416 |
-
is-extglob "^2.1.1"
|
2417 |
-
|
2418 |
-
is-number@^3.0.0:
|
2419 |
-
version "3.0.0"
|
2420 |
-
resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
|
2421 |
-
integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=
|
2422 |
-
dependencies:
|
2423 |
-
kind-of "^3.0.2"
|
2424 |
-
|
2425 |
-
is-number@^7.0.0:
|
2426 |
-
version "7.0.0"
|
2427 |
-
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
|
2428 |
-
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
|
2429 |
-
|
2430 |
-
is-plain-object@^2.0.3, is-plain-object@^2.0.4:
|
2431 |
version "2.0.4"
|
2432 |
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
|
2433 |
integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
|
2434 |
dependencies:
|
2435 |
isobject "^3.0.1"
|
2436 |
|
2437 |
-
is-
|
2438 |
-
version "
|
2439 |
-
resolved "https://registry.yarnpkg.com/is-
|
2440 |
-
integrity sha512-
|
2441 |
-
|
2442 |
-
is-wsl@^1.1.0:
|
2443 |
-
version "1.1.0"
|
2444 |
-
resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d"
|
2445 |
-
integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=
|
2446 |
-
|
2447 |
-
isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
|
2448 |
-
version "1.0.0"
|
2449 |
-
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
|
2450 |
-
integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
|
2451 |
|
2452 |
isexe@^2.0.0:
|
2453 |
version "2.0.0"
|
2454 |
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
|
2455 |
integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
|
2456 |
|
2457 |
-
isobject@^
|
2458 |
-
version "2.1.0"
|
2459 |
-
resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
|
2460 |
-
integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=
|
2461 |
-
dependencies:
|
2462 |
-
isarray "1.0.0"
|
2463 |
-
|
2464 |
-
isobject@^3.0.0, isobject@^3.0.1:
|
2465 |
version "3.0.1"
|
2466 |
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
|
2467 |
integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
|
2468 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2469 |
js-tokens@^4.0.0:
|
2470 |
version "4.0.0"
|
2471 |
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
|
@@ -2505,36 +1569,17 @@ json5@^2.1.2:
|
|
2505 |
dependencies:
|
2506 |
minimist "^1.2.5"
|
2507 |
|
2508 |
-
kind-of@^
|
2509 |
-
version "3.2.2"
|
2510 |
-
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
|
2511 |
-
integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
|
2512 |
-
dependencies:
|
2513 |
-
is-buffer "^1.1.5"
|
2514 |
-
|
2515 |
-
kind-of@^4.0.0:
|
2516 |
-
version "4.0.0"
|
2517 |
-
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
|
2518 |
-
integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc=
|
2519 |
-
dependencies:
|
2520 |
-
is-buffer "^1.1.5"
|
2521 |
-
|
2522 |
-
kind-of@^5.0.0:
|
2523 |
-
version "5.1.0"
|
2524 |
-
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
|
2525 |
-
integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
|
2526 |
-
|
2527 |
-
kind-of@^6.0.0, kind-of@^6.0.2:
|
2528 |
version "6.0.3"
|
2529 |
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
|
2530 |
integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
|
2531 |
|
2532 |
-
loader-runner@^2.
|
2533 |
-
version "2.
|
2534 |
-
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.
|
2535 |
-
integrity sha512-
|
2536 |
|
2537 |
-
loader-utils@^1.
|
2538 |
version "1.4.0"
|
2539 |
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613"
|
2540 |
integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==
|
@@ -2543,13 +1588,14 @@ loader-utils@^1.2.3, loader-utils@^1.4.0:
|
|
2543 |
emojis-list "^3.0.0"
|
2544 |
json5 "^1.0.1"
|
2545 |
|
2546 |
-
|
2547 |
-
version "
|
2548 |
-
resolved "https://registry.yarnpkg.com/
|
2549 |
-
integrity sha512-
|
2550 |
dependencies:
|
2551 |
-
|
2552 |
-
|
|
|
2553 |
|
2554 |
locate-path@^5.0.0:
|
2555 |
version "5.0.0"
|
@@ -2563,26 +1609,6 @@ lodash.debounce@^4.0.8:
|
|
2563 |
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
|
2564 |
integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168=
|
2565 |
|
2566 |
-
lodash@^4.17.19:
|
2567 |
-
version "4.17.21"
|
2568 |
-
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
|
2569 |
-
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
|
2570 |
-
|
2571 |
-
lru-cache@^5.1.1:
|
2572 |
-
version "5.1.1"
|
2573 |
-
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
|
2574 |
-
integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
|
2575 |
-
dependencies:
|
2576 |
-
yallist "^3.0.2"
|
2577 |
-
|
2578 |
-
make-dir@^2.0.0:
|
2579 |
-
version "2.1.0"
|
2580 |
-
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
|
2581 |
-
integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==
|
2582 |
-
dependencies:
|
2583 |
-
pify "^4.0.1"
|
2584 |
-
semver "^5.6.0"
|
2585 |
-
|
2586 |
make-dir@^3.0.2, make-dir@^3.1.0:
|
2587 |
version "3.1.0"
|
2588 |
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
|
@@ -2590,249 +1616,65 @@ make-dir@^3.0.2, make-dir@^3.1.0:
|
|
2590 |
dependencies:
|
2591 |
semver "^6.0.0"
|
2592 |
|
2593 |
-
|
2594 |
-
version "0.
|
2595 |
-
resolved "https://registry.yarnpkg.com/
|
2596 |
-
integrity
|
2597 |
-
|
2598 |
-
map-visit@^1.0.0:
|
2599 |
-
version "1.0.0"
|
2600 |
-
resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
|
2601 |
-
integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=
|
2602 |
-
dependencies:
|
2603 |
-
object-visit "^1.0.0"
|
2604 |
-
|
2605 |
-
md5.js@^1.3.4:
|
2606 |
-
version "1.3.5"
|
2607 |
-
resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f"
|
2608 |
-
integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==
|
2609 |
-
dependencies:
|
2610 |
-
hash-base "^3.0.0"
|
2611 |
-
inherits "^2.0.1"
|
2612 |
-
safe-buffer "^5.1.2"
|
2613 |
-
|
2614 |
-
memory-fs@^0.4.1:
|
2615 |
-
version "0.4.1"
|
2616 |
-
resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
|
2617 |
-
integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=
|
2618 |
-
dependencies:
|
2619 |
-
errno "^0.1.3"
|
2620 |
-
readable-stream "^2.0.1"
|
2621 |
|
2622 |
-
|
2623 |
-
version "
|
2624 |
-
resolved "https://registry.yarnpkg.com/
|
2625 |
-
integrity sha512-
|
2626 |
-
dependencies:
|
2627 |
-
errno "^0.1.3"
|
2628 |
-
readable-stream "^2.0.1"
|
2629 |
-
|
2630 |
-
micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4:
|
2631 |
-
version "3.1.10"
|
2632 |
-
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
|
2633 |
-
integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
|
2634 |
-
dependencies:
|
2635 |
-
arr-diff "^4.0.0"
|
2636 |
-
array-unique "^0.3.2"
|
2637 |
-
braces "^2.3.1"
|
2638 |
-
define-property "^2.0.2"
|
2639 |
-
extend-shallow "^3.0.2"
|
2640 |
-
extglob "^2.0.4"
|
2641 |
-
fragment-cache "^0.2.1"
|
2642 |
-
kind-of "^6.0.2"
|
2643 |
-
nanomatch "^1.2.9"
|
2644 |
-
object.pick "^1.3.0"
|
2645 |
-
regex-not "^1.0.0"
|
2646 |
-
snapdragon "^0.8.1"
|
2647 |
-
to-regex "^3.0.2"
|
2648 |
|
2649 |
-
|
2650 |
-
version "
|
2651 |
-
resolved "https://registry.yarnpkg.com/
|
2652 |
-
integrity sha512-
|
2653 |
dependencies:
|
2654 |
-
|
2655 |
-
brorand "^1.0.1"
|
2656 |
-
|
2657 |
-
minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
|
2658 |
-
version "1.0.1"
|
2659 |
-
resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
|
2660 |
-
integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
|
2661 |
-
|
2662 |
-
minimalistic-crypto-utils@^1.0.1:
|
2663 |
-
version "1.0.1"
|
2664 |
-
resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
|
2665 |
-
integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=
|
2666 |
|
2667 |
-
|
2668 |
-
version "
|
2669 |
-
resolved "https://registry.yarnpkg.com/
|
2670 |
-
integrity sha512-
|
2671 |
-
dependencies:
|
2672 |
-
brace-expansion "^1.1.7"
|
2673 |
|
2674 |
minimist@^1.2.0, minimist@^1.2.5:
|
2675 |
version "1.2.5"
|
2676 |
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
|
2677 |
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
|
2678 |
|
2679 |
-
mississippi@^3.0.0:
|
2680 |
-
version "3.0.0"
|
2681 |
-
resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022"
|
2682 |
-
integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==
|
2683 |
-
dependencies:
|
2684 |
-
concat-stream "^1.5.0"
|
2685 |
-
duplexify "^3.4.2"
|
2686 |
-
end-of-stream "^1.1.0"
|
2687 |
-
flush-write-stream "^1.0.0"
|
2688 |
-
from2 "^2.1.0"
|
2689 |
-
parallel-transform "^1.1.0"
|
2690 |
-
pump "^3.0.0"
|
2691 |
-
pumpify "^1.3.3"
|
2692 |
-
stream-each "^1.1.0"
|
2693 |
-
through2 "^2.0.0"
|
2694 |
-
|
2695 |
-
mixin-deep@^1.2.0:
|
2696 |
-
version "1.3.2"
|
2697 |
-
resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
|
2698 |
-
integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==
|
2699 |
-
dependencies:
|
2700 |
-
for-in "^1.0.2"
|
2701 |
-
is-extendable "^1.0.1"
|
2702 |
-
|
2703 |
-
mkdirp@^0.5.1, mkdirp@^0.5.3:
|
2704 |
-
version "0.5.5"
|
2705 |
-
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
|
2706 |
-
integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
|
2707 |
-
dependencies:
|
2708 |
-
minimist "^1.2.5"
|
2709 |
-
|
2710 |
-
move-concurrently@^1.0.1:
|
2711 |
-
version "1.0.1"
|
2712 |
-
resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
|
2713 |
-
integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=
|
2714 |
-
dependencies:
|
2715 |
-
aproba "^1.1.1"
|
2716 |
-
copy-concurrently "^1.0.0"
|
2717 |
-
fs-write-stream-atomic "^1.0.8"
|
2718 |
-
mkdirp "^0.5.1"
|
2719 |
-
rimraf "^2.5.4"
|
2720 |
-
run-queue "^1.0.3"
|
2721 |
-
|
2722 |
-
ms@2.0.0:
|
2723 |
-
version "2.0.0"
|
2724 |
-
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
|
2725 |
-
integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
|
2726 |
-
|
2727 |
ms@2.1.2:
|
2728 |
version "2.1.2"
|
2729 |
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
|
2730 |
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
|
2731 |
|
2732 |
-
|
2733 |
-
version "
|
2734 |
-
resolved "https://registry.yarnpkg.com/
|
2735 |
-
integrity sha512-
|
2736 |
-
|
2737 |
-
nanomatch@^1.2.9:
|
2738 |
-
version "1.2.13"
|
2739 |
-
resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
|
2740 |
-
integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==
|
2741 |
-
dependencies:
|
2742 |
-
arr-diff "^4.0.0"
|
2743 |
-
array-unique "^0.3.2"
|
2744 |
-
define-property "^2.0.2"
|
2745 |
-
extend-shallow "^3.0.2"
|
2746 |
-
fragment-cache "^0.2.1"
|
2747 |
-
is-windows "^1.0.2"
|
2748 |
-
kind-of "^6.0.2"
|
2749 |
-
object.pick "^1.3.0"
|
2750 |
-
regex-not "^1.0.0"
|
2751 |
-
snapdragon "^0.8.1"
|
2752 |
-
to-regex "^3.0.1"
|
2753 |
|
2754 |
-
neo-async@^2.
|
2755 |
version "2.6.2"
|
2756 |
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
|
2757 |
integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
|
2758 |
|
2759 |
-
|
2760 |
-
version "1.
|
2761 |
-
resolved "https://registry.yarnpkg.com/
|
2762 |
-
integrity sha512-
|
2763 |
-
|
2764 |
-
node-libs-browser@^2.2.1:
|
2765 |
-
version "2.2.1"
|
2766 |
-
resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425"
|
2767 |
-
integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==
|
2768 |
-
dependencies:
|
2769 |
-
assert "^1.1.1"
|
2770 |
-
browserify-zlib "^0.2.0"
|
2771 |
-
buffer "^4.3.0"
|
2772 |
-
console-browserify "^1.1.0"
|
2773 |
-
constants-browserify "^1.0.0"
|
2774 |
-
crypto-browserify "^3.11.0"
|
2775 |
-
domain-browser "^1.1.1"
|
2776 |
-
events "^3.0.0"
|
2777 |
-
https-browserify "^1.0.0"
|
2778 |
-
os-browserify "^0.3.0"
|
2779 |
-
path-browserify "0.0.1"
|
2780 |
-
process "^0.11.10"
|
2781 |
-
punycode "^1.2.4"
|
2782 |
-
querystring-es3 "^0.2.0"
|
2783 |
-
readable-stream "^2.3.3"
|
2784 |
-
stream-browserify "^2.0.1"
|
2785 |
-
stream-http "^2.7.2"
|
2786 |
-
string_decoder "^1.0.0"
|
2787 |
-
timers-browserify "^2.0.4"
|
2788 |
-
tty-browserify "0.0.0"
|
2789 |
-
url "^0.11.0"
|
2790 |
-
util "^0.11.0"
|
2791 |
-
vm-browserify "^1.0.1"
|
2792 |
-
|
2793 |
-
node-releases@^1.1.70:
|
2794 |
-
version "1.1.71"
|
2795 |
-
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb"
|
2796 |
-
integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==
|
2797 |
-
|
2798 |
-
normalize-path@^2.1.1:
|
2799 |
-
version "2.1.1"
|
2800 |
-
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
|
2801 |
-
integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=
|
2802 |
-
dependencies:
|
2803 |
-
remove-trailing-separator "^1.0.1"
|
2804 |
-
|
2805 |
-
normalize-path@^3.0.0, normalize-path@~3.0.0:
|
2806 |
-
version "3.0.0"
|
2807 |
-
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
|
2808 |
-
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
|
2809 |
|
2810 |
-
|
2811 |
-
version "4.
|
2812 |
-
resolved "https://registry.yarnpkg.com/
|
2813 |
-
integrity
|
2814 |
-
|
2815 |
-
object-copy@^0.1.0:
|
2816 |
-
version "0.1.0"
|
2817 |
-
resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
|
2818 |
-
integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw=
|
2819 |
dependencies:
|
2820 |
-
|
2821 |
-
define-property "^0.2.5"
|
2822 |
-
kind-of "^3.0.3"
|
2823 |
|
2824 |
object-keys@^1.0.12, object-keys@^1.1.1:
|
2825 |
version "1.1.1"
|
2826 |
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
|
2827 |
integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
|
2828 |
|
2829 |
-
object-visit@^1.0.0:
|
2830 |
-
version "1.0.1"
|
2831 |
-
resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
|
2832 |
-
integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=
|
2833 |
-
dependencies:
|
2834 |
-
isobject "^3.0.0"
|
2835 |
-
|
2836 |
object.assign@^4.1.0:
|
2837 |
version "4.1.2"
|
2838 |
resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940"
|
@@ -2843,38 +1685,26 @@ object.assign@^4.1.0:
|
|
2843 |
has-symbols "^1.0.1"
|
2844 |
object-keys "^1.1.1"
|
2845 |
|
2846 |
-
|
2847 |
-
version "1.
|
2848 |
-
resolved "https://registry.yarnpkg.com/
|
2849 |
-
integrity
|
2850 |
-
dependencies:
|
2851 |
-
isobject "^3.0.1"
|
2852 |
-
|
2853 |
-
once@^1.3.0, once@^1.3.1, once@^1.4.0:
|
2854 |
-
version "1.4.0"
|
2855 |
-
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
|
2856 |
-
integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
|
2857 |
dependencies:
|
2858 |
-
|
2859 |
-
|
2860 |
-
os-browserify@^0.3.0:
|
2861 |
-
version "0.3.0"
|
2862 |
-
resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
|
2863 |
-
integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=
|
2864 |
|
2865 |
-
p-limit@^2.
|
2866 |
version "2.3.0"
|
2867 |
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
|
2868 |
integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
|
2869 |
dependencies:
|
2870 |
p-try "^2.0.0"
|
2871 |
|
2872 |
-
p-
|
2873 |
-
version "3.
|
2874 |
-
resolved "https://registry.yarnpkg.com/p-
|
2875 |
-
integrity sha512-
|
2876 |
dependencies:
|
2877 |
-
|
2878 |
|
2879 |
p-locate@^4.1.0:
|
2880 |
version "4.1.0"
|
@@ -2888,259 +1718,55 @@ p-try@^2.0.0:
|
|
2888 |
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
|
2889 |
integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
|
2890 |
|
2891 |
-
pako@~1.0.5:
|
2892 |
-
version "1.0.11"
|
2893 |
-
resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
|
2894 |
-
integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
|
2895 |
-
|
2896 |
-
parallel-transform@^1.1.0:
|
2897 |
-
version "1.2.0"
|
2898 |
-
resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc"
|
2899 |
-
integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==
|
2900 |
-
dependencies:
|
2901 |
-
cyclist "^1.0.1"
|
2902 |
-
inherits "^2.0.3"
|
2903 |
-
readable-stream "^2.1.5"
|
2904 |
-
|
2905 |
-
parse-asn1@^5.0.0, parse-asn1@^5.1.5:
|
2906 |
-
version "5.1.6"
|
2907 |
-
resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4"
|
2908 |
-
integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==
|
2909 |
-
dependencies:
|
2910 |
-
asn1.js "^5.2.0"
|
2911 |
-
browserify-aes "^1.0.0"
|
2912 |
-
evp_bytestokey "^1.0.0"
|
2913 |
-
pbkdf2 "^3.0.3"
|
2914 |
-
safe-buffer "^5.1.1"
|
2915 |
-
|
2916 |
-
parse-passwd@^1.0.0:
|
2917 |
-
version "1.0.0"
|
2918 |
-
resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
|
2919 |
-
integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=
|
2920 |
-
|
2921 |
-
pascalcase@^0.1.1:
|
2922 |
-
version "0.1.1"
|
2923 |
-
resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
|
2924 |
-
integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
|
2925 |
-
|
2926 |
-
path-browserify@0.0.1:
|
2927 |
-
version "0.0.1"
|
2928 |
-
resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a"
|
2929 |
-
integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==
|
2930 |
-
|
2931 |
-
path-dirname@^1.0.0:
|
2932 |
-
version "1.0.2"
|
2933 |
-
resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0"
|
2934 |
-
integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=
|
2935 |
-
|
2936 |
-
path-exists@^3.0.0:
|
2937 |
-
version "3.0.0"
|
2938 |
-
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
|
2939 |
-
integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
|
2940 |
-
|
2941 |
path-exists@^4.0.0:
|
2942 |
version "4.0.0"
|
2943 |
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
|
2944 |
integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
|
2945 |
|
2946 |
-
path-
|
2947 |
-
version "1.0.1"
|
2948 |
-
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
|
2949 |
-
integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
|
2950 |
-
|
2951 |
-
path-key@^2.0.1:
|
2952 |
-
version "2.0.1"
|
2953 |
-
resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
|
2954 |
-
integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
|
2955 |
-
|
2956 |
-
path-parse@^1.0.6:
|
2957 |
-
version "1.0.6"
|
2958 |
-
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
|
2959 |
-
integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
|
2960 |
-
|
2961 |
-
pbkdf2@^3.0.3:
|
2962 |
version "3.1.1"
|
2963 |
-
resolved "https://registry.yarnpkg.com/
|
2964 |
-
integrity sha512-
|
2965 |
-
dependencies:
|
2966 |
-
create-hash "^1.1.2"
|
2967 |
-
create-hmac "^1.1.4"
|
2968 |
-
ripemd160 "^2.0.1"
|
2969 |
-
safe-buffer "^5.0.1"
|
2970 |
-
sha.js "^2.4.8"
|
2971 |
-
|
2972 |
-
picomatch@^2.0.4, picomatch@^2.2.1:
|
2973 |
-
version "2.2.2"
|
2974 |
-
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
|
2975 |
-
integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
|
2976 |
|
2977 |
-
|
2978 |
-
version "
|
2979 |
-
resolved "https://registry.yarnpkg.com/
|
2980 |
-
integrity sha512-
|
2981 |
-
|
2982 |
-
pkg-dir@^3.0.0:
|
2983 |
-
version "3.0.0"
|
2984 |
-
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3"
|
2985 |
-
integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==
|
2986 |
-
dependencies:
|
2987 |
-
find-up "^3.0.0"
|
2988 |
|
2989 |
-
pkg-dir@^4.1.0:
|
2990 |
version "4.2.0"
|
2991 |
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
|
2992 |
integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
|
2993 |
dependencies:
|
2994 |
find-up "^4.0.0"
|
2995 |
|
2996 |
-
posix-character-classes@^0.1.0:
|
2997 |
-
version "0.1.1"
|
2998 |
-
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
|
2999 |
-
integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
|
3000 |
-
|
3001 |
-
process-nextick-args@~2.0.0:
|
3002 |
-
version "2.0.1"
|
3003 |
-
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
|
3004 |
-
integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
|
3005 |
-
|
3006 |
-
process@^0.11.10:
|
3007 |
-
version "0.11.10"
|
3008 |
-
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
|
3009 |
-
integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
|
3010 |
-
|
3011 |
-
promise-inflight@^1.0.1:
|
3012 |
-
version "1.0.1"
|
3013 |
-
resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
|
3014 |
-
integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM=
|
3015 |
-
|
3016 |
-
prr@~1.0.1:
|
3017 |
-
version "1.0.1"
|
3018 |
-
resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
|
3019 |
-
integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY=
|
3020 |
-
|
3021 |
-
public-encrypt@^4.0.0:
|
3022 |
-
version "4.0.3"
|
3023 |
-
resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0"
|
3024 |
-
integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==
|
3025 |
-
dependencies:
|
3026 |
-
bn.js "^4.1.0"
|
3027 |
-
browserify-rsa "^4.0.0"
|
3028 |
-
create-hash "^1.1.0"
|
3029 |
-
parse-asn1 "^5.0.0"
|
3030 |
-
randombytes "^2.0.1"
|
3031 |
-
safe-buffer "^5.1.2"
|
3032 |
-
|
3033 |
-
pump@^2.0.0:
|
3034 |
-
version "2.0.1"
|
3035 |
-
resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909"
|
3036 |
-
integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==
|
3037 |
-
dependencies:
|
3038 |
-
end-of-stream "^1.1.0"
|
3039 |
-
once "^1.3.1"
|
3040 |
-
|
3041 |
-
pump@^3.0.0:
|
3042 |
-
version "3.0.0"
|
3043 |
-
resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
|
3044 |
-
integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
|
3045 |
-
dependencies:
|
3046 |
-
end-of-stream "^1.1.0"
|
3047 |
-
once "^1.3.1"
|
3048 |
-
|
3049 |
-
pumpify@^1.3.3:
|
3050 |
-
version "1.5.1"
|
3051 |
-
resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce"
|
3052 |
-
integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==
|
3053 |
-
dependencies:
|
3054 |
-
duplexify "^3.6.0"
|
3055 |
-
inherits "^2.0.3"
|
3056 |
-
pump "^2.0.0"
|
3057 |
-
|
3058 |
-
punycode@1.3.2:
|
3059 |
-
version "1.3.2"
|
3060 |
-
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
|
3061 |
-
integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=
|
3062 |
-
|
3063 |
-
punycode@^1.2.4:
|
3064 |
-
version "1.4.1"
|
3065 |
-
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
|
3066 |
-
integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=
|
3067 |
-
|
3068 |
punycode@^2.1.0:
|
3069 |
version "2.1.1"
|
3070 |
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
|
3071 |
integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
|
3072 |
|
3073 |
-
|
3074 |
-
version "0.2.1"
|
3075 |
-
resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
|
3076 |
-
integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=
|
3077 |
-
|
3078 |
-
querystring@0.2.0:
|
3079 |
-
version "0.2.0"
|
3080 |
-
resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
|
3081 |
-
integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=
|
3082 |
-
|
3083 |
-
randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0:
|
3084 |
version "2.1.0"
|
3085 |
resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
|
3086 |
integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
|
3087 |
dependencies:
|
3088 |
safe-buffer "^5.1.0"
|
3089 |
|
3090 |
-
|
3091 |
-
version "
|
3092 |
-
resolved "https://registry.yarnpkg.com/
|
3093 |
-
integrity sha512
|
3094 |
-
dependencies:
|
3095 |
-
randombytes "^2.0.5"
|
3096 |
-
safe-buffer "^5.1.0"
|
3097 |
-
|
3098 |
-
"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6:
|
3099 |
-
version "2.3.7"
|
3100 |
-
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
|
3101 |
-
integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
|
3102 |
dependencies:
|
3103 |
-
|
3104 |
-
inherits "~2.0.3"
|
3105 |
-
isarray "~1.0.0"
|
3106 |
-
process-nextick-args "~2.0.0"
|
3107 |
-
safe-buffer "~5.1.1"
|
3108 |
-
string_decoder "~1.1.1"
|
3109 |
-
util-deprecate "~1.0.1"
|
3110 |
-
|
3111 |
-
readable-stream@^3.6.0:
|
3112 |
-
version "3.6.0"
|
3113 |
-
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
|
3114 |
-
integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
|
3115 |
-
dependencies:
|
3116 |
-
inherits "^2.0.3"
|
3117 |
-
string_decoder "^1.1.1"
|
3118 |
-
util-deprecate "^1.0.1"
|
3119 |
|
3120 |
-
|
3121 |
-
version "
|
3122 |
-
resolved "https://registry.yarnpkg.com/
|
3123 |
-
integrity sha512-
|
3124 |
dependencies:
|
3125 |
-
|
3126 |
-
micromatch "^3.1.10"
|
3127 |
-
readable-stream "^2.0.2"
|
3128 |
|
3129 |
-
|
3130 |
-
version "3.5.0"
|
3131 |
-
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e"
|
3132 |
-
integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==
|
3133 |
-
dependencies:
|
3134 |
-
picomatch "^2.2.1"
|
3135 |
-
|
3136 |
-
regenerate-unicode-properties@^8.2.0:
|
3137 |
-
version "8.2.0"
|
3138 |
-
resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec"
|
3139 |
-
integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==
|
3140 |
-
dependencies:
|
3141 |
-
regenerate "^1.4.0"
|
3142 |
-
|
3143 |
-
regenerate@^1.4.0:
|
3144 |
version "1.4.2"
|
3145 |
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
|
3146 |
integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
|
@@ -3151,9 +1777,9 @@ regenerator-runtime@^0.11.0:
|
|
3151 |
integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==
|
3152 |
|
3153 |
regenerator-runtime@^0.13.4:
|
3154 |
-
version "0.13.
|
3155 |
-
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.
|
3156 |
-
integrity sha512-
|
3157 |
|
3158 |
regenerator-transform@^0.14.2:
|
3159 |
version "0.14.5"
|
@@ -3162,89 +1788,43 @@ regenerator-transform@^0.14.2:
|
|
3162 |
dependencies:
|
3163 |
"@babel/runtime" "^7.8.4"
|
3164 |
|
3165 |
-
|
3166 |
-
version "
|
3167 |
-
resolved "https://registry.yarnpkg.com/
|
3168 |
-
integrity sha512-
|
3169 |
dependencies:
|
3170 |
-
|
3171 |
-
|
|
|
|
|
|
|
|
|
3172 |
|
3173 |
-
|
3174 |
-
version "4.7.1"
|
3175 |
-
resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6"
|
3176 |
-
integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==
|
3177 |
-
dependencies:
|
3178 |
-
regenerate "^1.4.0"
|
3179 |
-
regenerate-unicode-properties "^8.2.0"
|
3180 |
-
regjsgen "^0.5.1"
|
3181 |
-
regjsparser "^0.6.4"
|
3182 |
-
unicode-match-property-ecmascript "^1.0.4"
|
3183 |
-
unicode-match-property-value-ecmascript "^1.2.0"
|
3184 |
-
|
3185 |
-
regjsgen@^0.5.1:
|
3186 |
version "0.5.2"
|
3187 |
resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733"
|
3188 |
integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==
|
3189 |
|
3190 |
-
regjsparser@^0.
|
3191 |
-
version "0.
|
3192 |
-
resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.
|
3193 |
-
integrity sha512-
|
3194 |
dependencies:
|
3195 |
jsesc "~0.5.0"
|
3196 |
|
3197 |
-
|
3198 |
-
version "1.1.0"
|
3199 |
-
resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
|
3200 |
-
integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8=
|
3201 |
-
|
3202 |
-
repeat-element@^1.1.2:
|
3203 |
-
version "1.1.3"
|
3204 |
-
resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce"
|
3205 |
-
integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==
|
3206 |
-
|
3207 |
-
repeat-string@^1.6.1:
|
3208 |
-
version "1.6.1"
|
3209 |
-
resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
|
3210 |
-
integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
|
3211 |
-
|
3212 |
-
require-directory@^2.1.1:
|
3213 |
-
version "2.1.1"
|
3214 |
-
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
|
3215 |
-
integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
|
3216 |
-
|
3217 |
-
require-main-filename@^2.0.0:
|
3218 |
-
version "2.0.0"
|
3219 |
-
resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
|
3220 |
-
integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==
|
3221 |
-
|
3222 |
-
resolve-cwd@^2.0.0:
|
3223 |
-
version "2.0.0"
|
3224 |
-
resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a"
|
3225 |
-
integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=
|
3226 |
-
dependencies:
|
3227 |
-
resolve-from "^3.0.0"
|
3228 |
-
|
3229 |
-
resolve-dir@^1.0.0, resolve-dir@^1.0.1:
|
3230 |
-
version "1.0.1"
|
3231 |
-
resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43"
|
3232 |
-
integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=
|
3233 |
-
dependencies:
|
3234 |
-
expand-tilde "^2.0.0"
|
3235 |
-
global-modules "^1.0.0"
|
3236 |
-
|
3237 |
-
resolve-from@^3.0.0:
|
3238 |
version "3.0.0"
|
3239 |
-
resolved "https://registry.yarnpkg.com/resolve-
|
3240 |
-
integrity
|
|
|
|
|
3241 |
|
3242 |
-
resolve-
|
3243 |
-
version "0.
|
3244 |
-
resolved "https://registry.yarnpkg.com/resolve-
|
3245 |
-
integrity
|
3246 |
|
3247 |
-
resolve@^1.14.2:
|
3248 |
version "1.20.0"
|
3249 |
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
|
3250 |
integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==
|
@@ -3252,65 +1832,17 @@ resolve@^1.14.2:
|
|
3252 |
is-core-module "^2.2.0"
|
3253 |
path-parse "^1.0.6"
|
3254 |
|
3255 |
-
|
3256 |
-
version "0.1.15"
|
3257 |
-
resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
|
3258 |
-
integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
|
3259 |
-
|
3260 |
-
rimraf@^2.5.4, rimraf@^2.6.3:
|
3261 |
-
version "2.7.1"
|
3262 |
-
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
|
3263 |
-
integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
|
3264 |
-
dependencies:
|
3265 |
-
glob "^7.1.3"
|
3266 |
-
|
3267 |
-
ripemd160@^2.0.0, ripemd160@^2.0.1:
|
3268 |
-
version "2.0.2"
|
3269 |
-
resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c"
|
3270 |
-
integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==
|
3271 |
-
dependencies:
|
3272 |
-
hash-base "^3.0.0"
|
3273 |
-
inherits "^2.0.1"
|
3274 |
-
|
3275 |
-
run-queue@^1.0.0, run-queue@^1.0.3:
|
3276 |
-
version "1.0.3"
|
3277 |
-
resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47"
|
3278 |
-
integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=
|
3279 |
-
dependencies:
|
3280 |
-
aproba "^1.1.1"
|
3281 |
-
|
3282 |
-
safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0:
|
3283 |
version "5.2.1"
|
3284 |
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
|
3285 |
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
|
3286 |
|
3287 |
-
safe-buffer@~5.1.
|
3288 |
version "5.1.2"
|
3289 |
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
|
3290 |
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
|
3291 |
|
3292 |
-
|
3293 |
-
version "1.1.0"
|
3294 |
-
resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
|
3295 |
-
integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4=
|
3296 |
-
dependencies:
|
3297 |
-
ret "~0.1.10"
|
3298 |
-
|
3299 |
-
safer-buffer@^2.1.0:
|
3300 |
-
version "2.1.2"
|
3301 |
-
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
|
3302 |
-
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
|
3303 |
-
|
3304 |
-
schema-utils@^1.0.0:
|
3305 |
-
version "1.0.0"
|
3306 |
-
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770"
|
3307 |
-
integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==
|
3308 |
-
dependencies:
|
3309 |
-
ajv "^6.1.0"
|
3310 |
-
ajv-errors "^1.0.0"
|
3311 |
-
ajv-keywords "^3.1.0"
|
3312 |
-
|
3313 |
-
schema-utils@^2.5.0, schema-utils@^2.6.5:
|
3314 |
version "2.7.1"
|
3315 |
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7"
|
3316 |
integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==
|
@@ -3319,220 +1851,83 @@ schema-utils@^2.5.0, schema-utils@^2.6.5:
|
|
3319 |
ajv "^6.12.4"
|
3320 |
ajv-keywords "^3.5.2"
|
3321 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3322 |
semver@7.0.0:
|
3323 |
version "7.0.0"
|
3324 |
resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
|
3325 |
integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
|
3326 |
|
3327 |
-
semver@^5.5.0, semver@^5.6.0:
|
3328 |
-
version "5.7.1"
|
3329 |
-
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
|
3330 |
-
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
|
3331 |
-
|
3332 |
semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0:
|
3333 |
version "6.3.0"
|
3334 |
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
|
3335 |
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
|
3336 |
|
3337 |
-
serialize-javascript@^
|
3338 |
-
version "
|
3339 |
-
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-
|
3340 |
-
integrity sha512-
|
3341 |
dependencies:
|
3342 |
randombytes "^2.1.0"
|
3343 |
|
3344 |
-
|
3345 |
-
version "
|
3346 |
-
resolved "https://registry.yarnpkg.com/
|
3347 |
-
integrity
|
3348 |
-
|
3349 |
-
set-value@^2.0.0, set-value@^2.0.1:
|
3350 |
-
version "2.0.1"
|
3351 |
-
resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
|
3352 |
-
integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==
|
3353 |
-
dependencies:
|
3354 |
-
extend-shallow "^2.0.1"
|
3355 |
-
is-extendable "^0.1.1"
|
3356 |
-
is-plain-object "^2.0.3"
|
3357 |
-
split-string "^3.0.1"
|
3358 |
-
|
3359 |
-
setimmediate@^1.0.4:
|
3360 |
-
version "1.0.5"
|
3361 |
-
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
|
3362 |
-
integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=
|
3363 |
-
|
3364 |
-
sha.js@^2.4.0, sha.js@^2.4.8:
|
3365 |
-
version "2.4.11"
|
3366 |
-
resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7"
|
3367 |
-
integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==
|
3368 |
-
dependencies:
|
3369 |
-
inherits "^2.0.1"
|
3370 |
-
safe-buffer "^5.0.1"
|
3371 |
-
|
3372 |
-
shebang-command@^1.2.0:
|
3373 |
-
version "1.2.0"
|
3374 |
-
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
|
3375 |
-
integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
|
3376 |
dependencies:
|
3377 |
-
|
3378 |
-
|
3379 |
-
shebang-regex@^1.0.0:
|
3380 |
-
version "1.0.0"
|
3381 |
-
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
|
3382 |
-
integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
|
3383 |
|
3384 |
-
|
3385 |
-
version "2.
|
3386 |
-
resolved "https://registry.yarnpkg.com/
|
3387 |
-
integrity sha512-
|
3388 |
dependencies:
|
3389 |
-
|
3390 |
-
isobject "^3.0.0"
|
3391 |
-
snapdragon-util "^3.0.1"
|
3392 |
|
3393 |
-
|
3394 |
-
version "3.0.
|
3395 |
-
resolved "https://registry.yarnpkg.com/
|
3396 |
-
integrity sha512-
|
3397 |
-
dependencies:
|
3398 |
-
kind-of "^3.2.0"
|
3399 |
-
|
3400 |
-
snapdragon@^0.8.1:
|
3401 |
-
version "0.8.2"
|
3402 |
-
resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d"
|
3403 |
-
integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==
|
3404 |
-
dependencies:
|
3405 |
-
base "^0.11.1"
|
3406 |
-
debug "^2.2.0"
|
3407 |
-
define-property "^0.2.5"
|
3408 |
-
extend-shallow "^2.0.1"
|
3409 |
-
map-cache "^0.2.2"
|
3410 |
-
source-map "^0.5.6"
|
3411 |
-
source-map-resolve "^0.5.0"
|
3412 |
-
use "^3.1.0"
|
3413 |
-
|
3414 |
-
source-list-map@^2.0.0:
|
3415 |
-
version "2.0.1"
|
3416 |
-
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
|
3417 |
-
integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
|
3418 |
|
3419 |
-
|
3420 |
-
version "0.
|
3421 |
-
resolved "https://registry.yarnpkg.com/
|
3422 |
-
integrity sha512-
|
3423 |
-
dependencies:
|
3424 |
-
atob "^2.1.2"
|
3425 |
-
decode-uri-component "^0.2.0"
|
3426 |
-
resolve-url "^0.2.1"
|
3427 |
-
source-map-url "^0.4.0"
|
3428 |
-
urix "^0.1.0"
|
3429 |
|
3430 |
-
source-map-support@~0.5.
|
3431 |
-
version "0.5.
|
3432 |
-
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.
|
3433 |
-
integrity sha512-
|
3434 |
dependencies:
|
3435 |
buffer-from "^1.0.0"
|
3436 |
source-map "^0.6.0"
|
3437 |
|
3438 |
-
source-map
|
3439 |
-
version "0.4.1"
|
3440 |
-
resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56"
|
3441 |
-
integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==
|
3442 |
-
|
3443 |
-
source-map@^0.5.0, source-map@^0.5.6:
|
3444 |
version "0.5.7"
|
3445 |
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
|
3446 |
integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
|
3447 |
|
3448 |
-
source-map@^0.6.0, source-map@^0.6.1
|
3449 |
version "0.6.1"
|
3450 |
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
|
3451 |
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
|
3452 |
|
3453 |
-
|
3454 |
-
version "
|
3455 |
-
resolved "https://registry.yarnpkg.com/
|
3456 |
-
integrity sha512-
|
3457 |
-
dependencies:
|
3458 |
-
extend-shallow "^3.0.0"
|
3459 |
|
3460 |
-
|
3461 |
-
version "
|
3462 |
-
resolved "https://registry.yarnpkg.com/
|
3463 |
-
integrity sha512-
|
3464 |
-
dependencies:
|
3465 |
-
figgy-pudding "^3.5.1"
|
3466 |
-
|
3467 |
-
static-extend@^0.1.1:
|
3468 |
-
version "0.1.2"
|
3469 |
-
resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
|
3470 |
-
integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=
|
3471 |
-
dependencies:
|
3472 |
-
define-property "^0.2.5"
|
3473 |
-
object-copy "^0.1.0"
|
3474 |
-
|
3475 |
-
stream-browserify@^2.0.1:
|
3476 |
-
version "2.0.2"
|
3477 |
-
resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b"
|
3478 |
-
integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==
|
3479 |
-
dependencies:
|
3480 |
-
inherits "~2.0.1"
|
3481 |
-
readable-stream "^2.0.2"
|
3482 |
-
|
3483 |
-
stream-each@^1.1.0:
|
3484 |
-
version "1.2.3"
|
3485 |
-
resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae"
|
3486 |
-
integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==
|
3487 |
-
dependencies:
|
3488 |
-
end-of-stream "^1.1.0"
|
3489 |
-
stream-shift "^1.0.0"
|
3490 |
-
|
3491 |
-
stream-http@^2.7.2:
|
3492 |
-
version "2.8.3"
|
3493 |
-
resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc"
|
3494 |
-
integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==
|
3495 |
-
dependencies:
|
3496 |
-
builtin-status-codes "^3.0.0"
|
3497 |
-
inherits "^2.0.1"
|
3498 |
-
readable-stream "^2.3.6"
|
3499 |
-
to-arraybuffer "^1.0.0"
|
3500 |
-
xtend "^4.0.0"
|
3501 |
-
|
3502 |
-
stream-shift@^1.0.0:
|
3503 |
-
version "1.0.1"
|
3504 |
-
resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d"
|
3505 |
-
integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==
|
3506 |
-
|
3507 |
-
string-width@^3.0.0, string-width@^3.1.0:
|
3508 |
-
version "3.1.0"
|
3509 |
-
resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
|
3510 |
-
integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==
|
3511 |
-
dependencies:
|
3512 |
-
emoji-regex "^7.0.1"
|
3513 |
-
is-fullwidth-code-point "^2.0.0"
|
3514 |
-
strip-ansi "^5.1.0"
|
3515 |
-
|
3516 |
-
string_decoder@^1.0.0, string_decoder@^1.1.1:
|
3517 |
-
version "1.3.0"
|
3518 |
-
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
|
3519 |
-
integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
|
3520 |
-
dependencies:
|
3521 |
-
safe-buffer "~5.2.0"
|
3522 |
-
|
3523 |
-
string_decoder@~1.1.1:
|
3524 |
-
version "1.1.1"
|
3525 |
-
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
|
3526 |
-
integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
|
3527 |
-
dependencies:
|
3528 |
-
safe-buffer "~5.1.0"
|
3529 |
-
|
3530 |
-
strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0:
|
3531 |
-
version "5.2.0"
|
3532 |
-
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
|
3533 |
-
integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
|
3534 |
-
dependencies:
|
3535 |
-
ansi-regex "^4.1.0"
|
3536 |
|
3537 |
supports-color@^5.3.0:
|
3538 |
version "5.5.0"
|
@@ -3541,173 +1936,66 @@ supports-color@^5.3.0:
|
|
3541 |
dependencies:
|
3542 |
has-flag "^3.0.0"
|
3543 |
|
3544 |
-
supports-color@^
|
3545 |
-
version "
|
3546 |
-
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-
|
3547 |
-
integrity sha512-
|
3548 |
dependencies:
|
3549 |
-
has-flag "^
|
3550 |
|
3551 |
-
tapable@^1.
|
3552 |
-
version "
|
3553 |
-
resolved "https://registry.yarnpkg.com/tapable/-/tapable-
|
3554 |
-
integrity sha512-
|
3555 |
-
|
3556 |
-
terser-webpack-plugin@^1.
|
3557 |
-
version "
|
3558 |
-
resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-
|
3559 |
-
integrity sha512-
|
3560 |
-
dependencies:
|
3561 |
-
|
3562 |
-
|
3563 |
-
|
3564 |
-
|
3565 |
-
serialize-javascript "^4.0.0"
|
3566 |
source-map "^0.6.1"
|
3567 |
-
terser "^
|
3568 |
-
webpack-sources "^1.4.0"
|
3569 |
-
worker-farm "^1.7.0"
|
3570 |
|
3571 |
-
terser@^
|
3572 |
-
version "
|
3573 |
-
resolved "https://registry.yarnpkg.com/terser/-/terser-
|
3574 |
-
integrity sha512-
|
3575 |
dependencies:
|
3576 |
commander "^2.20.0"
|
3577 |
-
source-map "~0.
|
3578 |
-
source-map-support "~0.5.
|
3579 |
-
|
3580 |
-
through2@^2.0.0:
|
3581 |
-
version "2.0.5"
|
3582 |
-
resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
|
3583 |
-
integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
|
3584 |
-
dependencies:
|
3585 |
-
readable-stream "~2.3.6"
|
3586 |
-
xtend "~4.0.1"
|
3587 |
-
|
3588 |
-
timers-browserify@^2.0.4:
|
3589 |
-
version "2.0.12"
|
3590 |
-
resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee"
|
3591 |
-
integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==
|
3592 |
-
dependencies:
|
3593 |
-
setimmediate "^1.0.4"
|
3594 |
-
|
3595 |
-
to-arraybuffer@^1.0.0:
|
3596 |
-
version "1.0.1"
|
3597 |
-
resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
|
3598 |
-
integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=
|
3599 |
|
3600 |
to-fast-properties@^2.0.0:
|
3601 |
version "2.0.0"
|
3602 |
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
|
3603 |
integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
|
3604 |
|
3605 |
-
|
3606 |
-
version "0.
|
3607 |
-
resolved "https://registry.yarnpkg.com/
|
3608 |
-
integrity
|
3609 |
-
dependencies:
|
3610 |
-
kind-of "^3.0.2"
|
3611 |
-
|
3612 |
-
to-regex-range@^2.1.0:
|
3613 |
-
version "2.1.1"
|
3614 |
-
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38"
|
3615 |
-
integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=
|
3616 |
-
dependencies:
|
3617 |
-
is-number "^3.0.0"
|
3618 |
-
repeat-string "^1.6.1"
|
3619 |
-
|
3620 |
-
to-regex-range@^5.0.1:
|
3621 |
-
version "5.0.1"
|
3622 |
-
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
|
3623 |
-
integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
|
3624 |
-
dependencies:
|
3625 |
-
is-number "^7.0.0"
|
3626 |
-
|
3627 |
-
to-regex@^3.0.1, to-regex@^3.0.2:
|
3628 |
-
version "3.0.2"
|
3629 |
-
resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
|
3630 |
-
integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==
|
3631 |
-
dependencies:
|
3632 |
-
define-property "^2.0.2"
|
3633 |
-
extend-shallow "^3.0.2"
|
3634 |
-
regex-not "^1.0.2"
|
3635 |
-
safe-regex "^1.1.0"
|
3636 |
-
|
3637 |
-
tslib@^1.9.0:
|
3638 |
-
version "1.14.1"
|
3639 |
-
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
|
3640 |
-
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
|
3641 |
-
|
3642 |
-
tty-browserify@0.0.0:
|
3643 |
-
version "0.0.0"
|
3644 |
-
resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
|
3645 |
-
integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=
|
3646 |
-
|
3647 |
-
typedarray@^0.0.6:
|
3648 |
-
version "0.0.6"
|
3649 |
-
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
|
3650 |
-
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
|
3651 |
-
|
3652 |
-
unicode-canonical-property-names-ecmascript@^1.0.4:
|
3653 |
-
version "1.0.4"
|
3654 |
-
resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818"
|
3655 |
-
integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==
|
3656 |
-
|
3657 |
-
unicode-match-property-ecmascript@^1.0.4:
|
3658 |
-
version "1.0.4"
|
3659 |
-
resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c"
|
3660 |
-
integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==
|
3661 |
-
dependencies:
|
3662 |
-
unicode-canonical-property-names-ecmascript "^1.0.4"
|
3663 |
-
unicode-property-aliases-ecmascript "^1.0.4"
|
3664 |
-
|
3665 |
-
unicode-match-property-value-ecmascript@^1.2.0:
|
3666 |
-
version "1.2.0"
|
3667 |
-
resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531"
|
3668 |
-
integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==
|
3669 |
-
|
3670 |
-
unicode-property-aliases-ecmascript@^1.0.4:
|
3671 |
-
version "1.1.0"
|
3672 |
-
resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4"
|
3673 |
-
integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==
|
3674 |
-
|
3675 |
-
union-value@^1.0.0:
|
3676 |
-
version "1.0.1"
|
3677 |
-
resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847"
|
3678 |
-
integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==
|
3679 |
-
dependencies:
|
3680 |
-
arr-union "^3.1.0"
|
3681 |
-
get-value "^2.0.6"
|
3682 |
-
is-extendable "^0.1.1"
|
3683 |
-
set-value "^2.0.1"
|
3684 |
-
|
3685 |
-
unique-filename@^1.1.1:
|
3686 |
-
version "1.1.1"
|
3687 |
-
resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230"
|
3688 |
-
integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==
|
3689 |
-
dependencies:
|
3690 |
-
unique-slug "^2.0.0"
|
3691 |
|
3692 |
-
|
3693 |
-
version "2.0.
|
3694 |
-
resolved "https://registry.yarnpkg.com/
|
3695 |
-
integrity sha512-
|
3696 |
dependencies:
|
3697 |
-
|
|
|
3698 |
|
3699 |
-
|
3700 |
-
version "
|
3701 |
-
resolved "https://registry.yarnpkg.com/
|
3702 |
-
integrity
|
3703 |
-
dependencies:
|
3704 |
-
has-value "^0.3.1"
|
3705 |
-
isobject "^3.0.0"
|
3706 |
|
3707 |
-
|
3708 |
-
version "
|
3709 |
-
resolved "https://registry.yarnpkg.com/
|
3710 |
-
integrity sha512-
|
3711 |
|
3712 |
uri-js@^4.2.2:
|
3713 |
version "4.4.1"
|
@@ -3716,193 +2004,94 @@ uri-js@^4.2.2:
|
|
3716 |
dependencies:
|
3717 |
punycode "^2.1.0"
|
3718 |
|
3719 |
-
|
3720 |
-
version "0.1.0"
|
3721 |
-
resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
|
3722 |
-
integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=
|
3723 |
-
|
3724 |
-
url@^0.11.0:
|
3725 |
-
version "0.11.0"
|
3726 |
-
resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
|
3727 |
-
integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=
|
3728 |
-
dependencies:
|
3729 |
-
punycode "1.3.2"
|
3730 |
-
querystring "0.2.0"
|
3731 |
-
|
3732 |
-
use@^3.1.0:
|
3733 |
-
version "3.1.1"
|
3734 |
-
resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
|
3735 |
-
integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
|
3736 |
-
|
3737 |
-
util-deprecate@^1.0.1, util-deprecate@~1.0.1:
|
3738 |
-
version "1.0.2"
|
3739 |
-
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
|
3740 |
-
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
|
3741 |
-
|
3742 |
-
util@0.10.3:
|
3743 |
-
version "0.10.3"
|
3744 |
-
resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
|
3745 |
-
integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk=
|
3746 |
-
dependencies:
|
3747 |
-
inherits "2.0.1"
|
3748 |
-
|
3749 |
-
util@^0.11.0:
|
3750 |
-
version "0.11.1"
|
3751 |
-
resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61"
|
3752 |
-
integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==
|
3753 |
-
dependencies:
|
3754 |
-
inherits "2.0.3"
|
3755 |
-
|
3756 |
-
v8-compile-cache@^2.1.1:
|
3757 |
version "2.3.0"
|
3758 |
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
|
3759 |
integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
|
3760 |
|
3761 |
-
|
3762 |
-
version "
|
3763 |
-
resolved "https://registry.yarnpkg.com/
|
3764 |
-
integrity sha512-
|
3765 |
-
|
3766 |
-
watchpack-chokidar2@^2.0.1:
|
3767 |
-
version "2.0.1"
|
3768 |
-
resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957"
|
3769 |
-
integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==
|
3770 |
dependencies:
|
3771 |
-
|
|
|
3772 |
|
3773 |
-
|
3774 |
-
version "
|
3775 |
-
resolved "https://registry.yarnpkg.com/
|
3776 |
-
integrity sha512
|
3777 |
dependencies:
|
3778 |
-
|
3779 |
-
|
3780 |
-
|
3781 |
-
|
3782 |
-
|
3783 |
-
|
3784 |
-
|
3785 |
-
|
3786 |
-
|
3787 |
-
|
3788 |
-
|
3789 |
-
|
3790 |
-
|
3791 |
-
|
3792 |
-
|
3793 |
-
|
3794 |
-
|
3795 |
-
|
3796 |
-
|
3797 |
-
|
3798 |
-
|
3799 |
-
|
3800 |
-
|
3801 |
-
|
3802 |
-
|
3803 |
-
|
3804 |
-
|
3805 |
-
|
3806 |
-
|
3807 |
-
|
3808 |
-
|
3809 |
-
|
3810 |
-
|
3811 |
-
|
3812 |
-
|
3813 |
-
|
3814 |
-
"@webassemblyjs/
|
3815 |
-
|
3816 |
-
|
3817 |
-
|
3818 |
-
acorn "^6.4.1"
|
3819 |
-
ajv "^6.10.2"
|
3820 |
-
ajv-keywords "^3.4.1"
|
3821 |
chrome-trace-event "^1.0.2"
|
3822 |
-
enhanced-resolve "^
|
3823 |
-
|
|
|
|
|
|
|
|
|
3824 |
json-parse-better-errors "^1.0.2"
|
3825 |
-
loader-runner "^2.
|
3826 |
-
|
3827 |
-
|
3828 |
-
|
3829 |
-
|
3830 |
-
|
3831 |
-
|
3832 |
-
|
3833 |
-
|
3834 |
-
|
3835 |
-
|
3836 |
-
|
3837 |
-
|
3838 |
-
which-module@^2.0.0:
|
3839 |
-
version "2.0.0"
|
3840 |
-
resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
|
3841 |
-
integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
|
3842 |
-
|
3843 |
-
which@^1.2.14, which@^1.2.9, which@^1.3.1:
|
3844 |
-
version "1.3.1"
|
3845 |
-
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
|
3846 |
-
integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
|
3847 |
dependencies:
|
3848 |
isexe "^2.0.0"
|
3849 |
|
3850 |
-
|
3851 |
-
version "
|
3852 |
-
resolved "https://registry.yarnpkg.com/
|
3853 |
-
integrity sha512-
|
3854 |
-
dependencies:
|
3855 |
-
errno "~0.1.7"
|
3856 |
-
|
3857 |
-
wrap-ansi@^5.1.0:
|
3858 |
-
version "5.1.0"
|
3859 |
-
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09"
|
3860 |
-
integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==
|
3861 |
-
dependencies:
|
3862 |
-
ansi-styles "^3.2.0"
|
3863 |
-
string-width "^3.0.0"
|
3864 |
-
strip-ansi "^5.0.0"
|
3865 |
-
|
3866 |
-
wrappy@1:
|
3867 |
-
version "1.0.2"
|
3868 |
-
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|
3869 |
-
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
|
3870 |
-
|
3871 |
-
xtend@^4.0.0, xtend@~4.0.1:
|
3872 |
-
version "4.0.2"
|
3873 |
-
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
|
3874 |
-
integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
|
3875 |
-
|
3876 |
-
y18n@^4.0.0:
|
3877 |
-
version "4.0.1"
|
3878 |
-
resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4"
|
3879 |
-
integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==
|
3880 |
|
3881 |
-
|
3882 |
-
version "
|
3883 |
-
resolved "https://registry.yarnpkg.com/
|
3884 |
-
integrity sha512-
|
3885 |
-
|
3886 |
-
yargs-parser@^13.1.2:
|
3887 |
-
version "13.1.2"
|
3888 |
-
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38"
|
3889 |
-
integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==
|
3890 |
-
dependencies:
|
3891 |
-
camelcase "^5.0.0"
|
3892 |
-
decamelize "^1.2.0"
|
3893 |
-
|
3894 |
-
yargs@^13.3.2:
|
3895 |
-
version "13.3.2"
|
3896 |
-
resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd"
|
3897 |
-
integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==
|
3898 |
-
dependencies:
|
3899 |
-
cliui "^5.0.0"
|
3900 |
-
find-up "^3.0.0"
|
3901 |
-
get-caller-file "^2.0.1"
|
3902 |
-
require-directory "^2.1.1"
|
3903 |
-
require-main-filename "^2.0.0"
|
3904 |
-
set-blocking "^2.0.0"
|
3905 |
-
string-width "^3.0.0"
|
3906 |
-
which-module "^2.0.0"
|
3907 |
-
y18n "^4.0.0"
|
3908 |
-
yargs-parser "^13.1.2"
|
2 |
# yarn lockfile v1
|
3 |
|
4 |
|
5 |
+
"@babel/code-frame@^7.14.5":
|
6 |
+
version "7.14.5"
|
7 |
+
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb"
|
8 |
+
integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==
|
9 |
dependencies:
|
10 |
+
"@babel/highlight" "^7.14.5"
|
11 |
|
12 |
+
"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.15.0":
|
13 |
+
version "7.15.0"
|
14 |
+
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.15.0.tgz#2dbaf8b85334796cafbb0f5793a90a2fc010b176"
|
15 |
+
integrity sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==
|
16 |
|
17 |
"@babel/core@^7.9.0":
|
18 |
+
version "7.15.5"
|
19 |
+
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.5.tgz#f8ed9ace730722544609f90c9bb49162dc3bf5b9"
|
20 |
+
integrity sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==
|
21 |
+
dependencies:
|
22 |
+
"@babel/code-frame" "^7.14.5"
|
23 |
+
"@babel/generator" "^7.15.4"
|
24 |
+
"@babel/helper-compilation-targets" "^7.15.4"
|
25 |
+
"@babel/helper-module-transforms" "^7.15.4"
|
26 |
+
"@babel/helpers" "^7.15.4"
|
27 |
+
"@babel/parser" "^7.15.5"
|
28 |
+
"@babel/template" "^7.15.4"
|
29 |
+
"@babel/traverse" "^7.15.4"
|
30 |
+
"@babel/types" "^7.15.4"
|
31 |
convert-source-map "^1.7.0"
|
32 |
debug "^4.1.0"
|
33 |
gensync "^1.0.0-beta.2"
|
34 |
json5 "^2.1.2"
|
|
|
35 |
semver "^6.3.0"
|
36 |
source-map "^0.5.0"
|
37 |
|
38 |
+
"@babel/generator@^7.15.4":
|
39 |
+
version "7.15.4"
|
40 |
+
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.4.tgz#85acb159a267ca6324f9793986991ee2022a05b0"
|
41 |
+
integrity sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==
|
42 |
dependencies:
|
43 |
+
"@babel/types" "^7.15.4"
|
44 |
jsesc "^2.5.1"
|
45 |
source-map "^0.5.0"
|
46 |
|
47 |
+
"@babel/helper-annotate-as-pure@^7.14.5", "@babel/helper-annotate-as-pure@^7.15.4":
|
48 |
+
version "7.15.4"
|
49 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz#3d0e43b00c5e49fdb6c57e421601a7a658d5f835"
|
50 |
+
integrity sha512-QwrtdNvUNsPCj2lfNQacsGSQvGX8ee1ttrBrcozUP2Sv/jylewBP/8QFe6ZkBsC8T/GYWonNAWJV4aRR9AL2DA==
|
51 |
dependencies:
|
52 |
+
"@babel/types" "^7.15.4"
|
53 |
|
54 |
+
"@babel/helper-builder-binary-assignment-operator-visitor@^7.14.5":
|
55 |
+
version "7.15.4"
|
56 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.15.4.tgz#21ad815f609b84ee0e3058676c33cf6d1670525f"
|
57 |
+
integrity sha512-P8o7JP2Mzi0SdC6eWr1zF+AEYvrsZa7GSY1lTayjF5XJhVH0kjLYUZPvTMflP7tBgZoe9gIhTa60QwFpqh/E0Q==
|
58 |
dependencies:
|
59 |
+
"@babel/helper-explode-assignable-expression" "^7.15.4"
|
60 |
+
"@babel/types" "^7.15.4"
|
61 |
|
62 |
+
"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.15.4":
|
63 |
+
version "7.15.4"
|
64 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz#cf6d94f30fbefc139123e27dd6b02f65aeedb7b9"
|
65 |
+
integrity sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==
|
66 |
dependencies:
|
67 |
+
"@babel/compat-data" "^7.15.0"
|
68 |
+
"@babel/helper-validator-option" "^7.14.5"
|
69 |
+
browserslist "^4.16.6"
|
70 |
semver "^6.3.0"
|
71 |
|
72 |
+
"@babel/helper-create-class-features-plugin@^7.14.5", "@babel/helper-create-class-features-plugin@^7.15.4":
|
73 |
+
version "7.15.4"
|
74 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.4.tgz#7f977c17bd12a5fba363cb19bea090394bf37d2e"
|
75 |
+
integrity sha512-7ZmzFi+DwJx6A7mHRwbuucEYpyBwmh2Ca0RvI6z2+WLZYCqV0JOaLb+u0zbtmDicebgKBZgqbYfLaKNqSgv5Pw==
|
76 |
dependencies:
|
77 |
+
"@babel/helper-annotate-as-pure" "^7.15.4"
|
78 |
+
"@babel/helper-function-name" "^7.15.4"
|
79 |
+
"@babel/helper-member-expression-to-functions" "^7.15.4"
|
80 |
+
"@babel/helper-optimise-call-expression" "^7.15.4"
|
81 |
+
"@babel/helper-replace-supers" "^7.15.4"
|
82 |
+
"@babel/helper-split-export-declaration" "^7.15.4"
|
83 |
|
84 |
+
"@babel/helper-create-regexp-features-plugin@^7.14.5":
|
85 |
+
version "7.14.5"
|
86 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz#c7d5ac5e9cf621c26057722fb7a8a4c5889358c4"
|
87 |
+
integrity sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A==
|
88 |
dependencies:
|
89 |
+
"@babel/helper-annotate-as-pure" "^7.14.5"
|
90 |
regexpu-core "^4.7.1"
|
91 |
|
92 |
+
"@babel/helper-define-polyfill-provider@^0.2.2":
|
93 |
+
version "0.2.3"
|
94 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz#0525edec5094653a282688d34d846e4c75e9c0b6"
|
95 |
+
integrity sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==
|
96 |
dependencies:
|
97 |
"@babel/helper-compilation-targets" "^7.13.0"
|
98 |
"@babel/helper-module-imports" "^7.12.13"
|
103 |
resolve "^1.14.2"
|
104 |
semver "^6.1.2"
|
105 |
|
106 |
+
"@babel/helper-explode-assignable-expression@^7.15.4":
|
107 |
+
version "7.15.4"
|
108 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.15.4.tgz#f9aec9d219f271eaf92b9f561598ca6b2682600c"
|
109 |
+
integrity sha512-J14f/vq8+hdC2KoWLIQSsGrC9EFBKE4NFts8pfMpymfApds+fPqR30AOUWc4tyr56h9l/GA1Sxv2q3dLZWbQ/g==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
110 |
dependencies:
|
111 |
+
"@babel/types" "^7.15.4"
|
112 |
+
|
113 |
+
"@babel/helper-function-name@^7.14.5", "@babel/helper-function-name@^7.15.4":
|
114 |
+
version "7.15.4"
|
115 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz#845744dafc4381a4a5fb6afa6c3d36f98a787ebc"
|
116 |
+
integrity sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
117 |
dependencies:
|
118 |
+
"@babel/helper-get-function-arity" "^7.15.4"
|
119 |
+
"@babel/template" "^7.15.4"
|
120 |
+
"@babel/types" "^7.15.4"
|
|
|
121 |
|
122 |
+
"@babel/helper-get-function-arity@^7.15.4":
|
123 |
+
version "7.15.4"
|
124 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz#098818934a137fce78b536a3e015864be1e2879b"
|
125 |
+
integrity sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==
|
126 |
dependencies:
|
127 |
+
"@babel/types" "^7.15.4"
|
128 |
+
|
129 |
+
"@babel/helper-hoist-variables@^7.15.4":
|
130 |
+
version "7.15.4"
|
131 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz#09993a3259c0e918f99d104261dfdfc033f178df"
|
132 |
+
integrity sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==
|
133 |
+
dependencies:
|
134 |
+
"@babel/types" "^7.15.4"
|
135 |
|
136 |
+
"@babel/helper-member-expression-to-functions@^7.15.4":
|
137 |
+
version "7.15.4"
|
138 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz#bfd34dc9bba9824a4658b0317ec2fd571a51e6ef"
|
139 |
+
integrity sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==
|
140 |
+
dependencies:
|
141 |
+
"@babel/types" "^7.15.4"
|
142 |
+
|
143 |
+
"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.14.5", "@babel/helper-module-imports@^7.15.4":
|
144 |
+
version "7.15.4"
|
145 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz#e18007d230632dea19b47853b984476e7b4e103f"
|
146 |
+
integrity sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==
|
147 |
+
dependencies:
|
148 |
+
"@babel/types" "^7.15.4"
|
149 |
+
|
150 |
+
"@babel/helper-module-transforms@^7.14.5", "@babel/helper-module-transforms@^7.15.4":
|
151 |
+
version "7.15.7"
|
152 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.15.7.tgz#7da80c8cbc1f02655d83f8b79d25866afe50d226"
|
153 |
+
integrity sha512-ZNqjjQG/AuFfekFTY+7nY4RgBSklgTu970c7Rj3m/JOhIu5KPBUuTA9AY6zaKcUvk4g6EbDXdBnhi35FAssdSw==
|
154 |
+
dependencies:
|
155 |
+
"@babel/helper-module-imports" "^7.15.4"
|
156 |
+
"@babel/helper-replace-supers" "^7.15.4"
|
157 |
+
"@babel/helper-simple-access" "^7.15.4"
|
158 |
+
"@babel/helper-split-export-declaration" "^7.15.4"
|
159 |
+
"@babel/helper-validator-identifier" "^7.15.7"
|
160 |
+
"@babel/template" "^7.15.4"
|
161 |
+
"@babel/traverse" "^7.15.4"
|
162 |
+
"@babel/types" "^7.15.6"
|
163 |
+
|
164 |
+
"@babel/helper-optimise-call-expression@^7.15.4":
|
165 |
+
version "7.15.4"
|
166 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz#f310a5121a3b9cc52d9ab19122bd729822dee171"
|
167 |
+
integrity sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==
|
168 |
+
dependencies:
|
169 |
+
"@babel/types" "^7.15.4"
|
170 |
+
|
171 |
+
"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
|
172 |
+
version "7.14.5"
|
173 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9"
|
174 |
+
integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==
|
175 |
+
|
176 |
+
"@babel/helper-remap-async-to-generator@^7.14.5", "@babel/helper-remap-async-to-generator@^7.15.4":
|
177 |
+
version "7.15.4"
|
178 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.15.4.tgz#2637c0731e4c90fbf58ac58b50b2b5a192fc970f"
|
179 |
+
integrity sha512-v53MxgvMK/HCwckJ1bZrq6dNKlmwlyRNYM6ypaRTdXWGOE2c1/SCa6dL/HimhPulGhZKw9W0QhREM583F/t0vQ==
|
180 |
+
dependencies:
|
181 |
+
"@babel/helper-annotate-as-pure" "^7.15.4"
|
182 |
+
"@babel/helper-wrap-function" "^7.15.4"
|
183 |
+
"@babel/types" "^7.15.4"
|
184 |
+
|
185 |
+
"@babel/helper-replace-supers@^7.14.5", "@babel/helper-replace-supers@^7.15.4":
|
186 |
+
version "7.15.4"
|
187 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz#52a8ab26ba918c7f6dee28628b07071ac7b7347a"
|
188 |
+
integrity sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==
|
189 |
+
dependencies:
|
190 |
+
"@babel/helper-member-expression-to-functions" "^7.15.4"
|
191 |
+
"@babel/helper-optimise-call-expression" "^7.15.4"
|
192 |
+
"@babel/traverse" "^7.15.4"
|
193 |
+
"@babel/types" "^7.15.4"
|
194 |
+
|
195 |
+
"@babel/helper-simple-access@^7.15.4":
|
196 |
+
version "7.15.4"
|
197 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz#ac368905abf1de8e9781434b635d8f8674bcc13b"
|
198 |
+
integrity sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==
|
199 |
+
dependencies:
|
200 |
+
"@babel/types" "^7.15.4"
|
201 |
+
|
202 |
+
"@babel/helper-skip-transparent-expression-wrappers@^7.14.5", "@babel/helper-skip-transparent-expression-wrappers@^7.15.4":
|
203 |
+
version "7.15.4"
|
204 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.15.4.tgz#707dbdba1f4ad0fa34f9114fc8197aec7d5da2eb"
|
205 |
+
integrity sha512-BMRLsdh+D1/aap19TycS4eD1qELGrCBJwzaY9IE8LrpJtJb+H7rQkPIdsfgnMtLBA6DJls7X9z93Z4U8h7xw0A==
|
206 |
+
dependencies:
|
207 |
+
"@babel/types" "^7.15.4"
|
208 |
+
|
209 |
+
"@babel/helper-split-export-declaration@^7.15.4":
|
210 |
+
version "7.15.4"
|
211 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz#aecab92dcdbef6a10aa3b62ab204b085f776e257"
|
212 |
+
integrity sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==
|
213 |
+
dependencies:
|
214 |
+
"@babel/types" "^7.15.4"
|
215 |
+
|
216 |
+
"@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9", "@babel/helper-validator-identifier@^7.15.7":
|
217 |
+
version "7.15.7"
|
218 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389"
|
219 |
+
integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==
|
220 |
+
|
221 |
+
"@babel/helper-validator-option@^7.14.5":
|
222 |
+
version "7.14.5"
|
223 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3"
|
224 |
+
integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==
|
225 |
+
|
226 |
+
"@babel/helper-wrap-function@^7.15.4":
|
227 |
+
version "7.15.4"
|
228 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.15.4.tgz#6f754b2446cfaf3d612523e6ab8d79c27c3a3de7"
|
229 |
+
integrity sha512-Y2o+H/hRV5W8QhIfTpRIBwl57y8PrZt6JM3V8FOo5qarjshHItyH5lXlpMfBfmBefOqSCpKZs/6Dxqp0E/U+uw==
|
230 |
+
dependencies:
|
231 |
+
"@babel/helper-function-name" "^7.15.4"
|
232 |
+
"@babel/template" "^7.15.4"
|
233 |
+
"@babel/traverse" "^7.15.4"
|
234 |
+
"@babel/types" "^7.15.4"
|
235 |
+
|
236 |
+
"@babel/helpers@^7.15.4":
|
237 |
+
version "7.15.4"
|
238 |
+
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.15.4.tgz#5f40f02050a3027121a3cf48d497c05c555eaf43"
|
239 |
+
integrity sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==
|
240 |
+
dependencies:
|
241 |
+
"@babel/template" "^7.15.4"
|
242 |
+
"@babel/traverse" "^7.15.4"
|
243 |
+
"@babel/types" "^7.15.4"
|
244 |
+
|
245 |
+
"@babel/highlight@^7.14.5":
|
246 |
+
version "7.14.5"
|
247 |
+
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9"
|
248 |
+
integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==
|
249 |
+
dependencies:
|
250 |
+
"@babel/helper-validator-identifier" "^7.14.5"
|
251 |
chalk "^2.0.0"
|
252 |
js-tokens "^4.0.0"
|
253 |
|
254 |
+
"@babel/parser@^7.15.4", "@babel/parser@^7.15.5":
|
255 |
+
version "7.15.7"
|
256 |
+
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.7.tgz#0c3ed4a2eb07b165dfa85b3cc45c727334c4edae"
|
257 |
+
integrity sha512-rycZXvQ+xS9QyIcJ9HXeDWf1uxqlbVFAUq0Rq0dbc50Zb/+wUe/ehyfzGfm9KZZF0kBejYgxltBXocP+gKdL2g==
|
258 |
|
259 |
+
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.15.4":
|
260 |
+
version "7.15.4"
|
261 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.15.4.tgz#dbdeabb1e80f622d9f0b583efb2999605e0a567e"
|
262 |
+
integrity sha512-eBnpsl9tlhPhpI10kU06JHnrYXwg3+V6CaP2idsCXNef0aeslpqyITXQ74Vfk5uHgY7IG7XP0yIH8b42KSzHog==
|
263 |
dependencies:
|
264 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
265 |
+
"@babel/helper-skip-transparent-expression-wrappers" "^7.15.4"
|
266 |
+
"@babel/plugin-proposal-optional-chaining" "^7.14.5"
|
267 |
|
268 |
+
"@babel/plugin-proposal-async-generator-functions@^7.15.4":
|
269 |
+
version "7.15.4"
|
270 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.4.tgz#f82aabe96c135d2ceaa917feb9f5fca31635277e"
|
271 |
+
integrity sha512-2zt2g5vTXpMC3OmK6uyjvdXptbhBXfA77XGrd3gh93zwG8lZYBLOBImiGBEG0RANu3JqKEACCz5CGk73OJROBw==
|
272 |
dependencies:
|
273 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
274 |
+
"@babel/helper-remap-async-to-generator" "^7.15.4"
|
275 |
"@babel/plugin-syntax-async-generators" "^7.8.4"
|
276 |
|
277 |
+
"@babel/plugin-proposal-class-properties@^7.14.5":
|
278 |
+
version "7.14.5"
|
279 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz#40d1ee140c5b1e31a350f4f5eed945096559b42e"
|
280 |
+
integrity sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==
|
281 |
dependencies:
|
282 |
+
"@babel/helper-create-class-features-plugin" "^7.14.5"
|
283 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
284 |
|
285 |
+
"@babel/plugin-proposal-class-static-block@^7.15.4":
|
286 |
+
version "7.15.4"
|
287 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.15.4.tgz#3e7ca6128453c089e8b477a99f970c63fc1cb8d7"
|
288 |
+
integrity sha512-M682XWrrLNk3chXCjoPUQWOyYsB93B9z3mRyjtqqYJWDf2mfCdIYgDrA11cgNVhAQieaq6F2fn2f3wI0U4aTjA==
|
289 |
dependencies:
|
290 |
+
"@babel/helper-create-class-features-plugin" "^7.15.4"
|
291 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
292 |
+
"@babel/plugin-syntax-class-static-block" "^7.14.5"
|
293 |
+
|
294 |
+
"@babel/plugin-proposal-dynamic-import@^7.14.5":
|
295 |
+
version "7.14.5"
|
296 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz#0c6617df461c0c1f8fff3b47cd59772360101d2c"
|
297 |
+
integrity sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g==
|
298 |
+
dependencies:
|
299 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
300 |
"@babel/plugin-syntax-dynamic-import" "^7.8.3"
|
301 |
|
302 |
+
"@babel/plugin-proposal-export-namespace-from@^7.14.5":
|
303 |
+
version "7.14.5"
|
304 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz#dbad244310ce6ccd083072167d8cea83a52faf76"
|
305 |
+
integrity sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA==
|
306 |
dependencies:
|
307 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
308 |
"@babel/plugin-syntax-export-namespace-from" "^7.8.3"
|
309 |
|
310 |
+
"@babel/plugin-proposal-json-strings@^7.14.5":
|
311 |
+
version "7.14.5"
|
312 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz#38de60db362e83a3d8c944ac858ddf9f0c2239eb"
|
313 |
+
integrity sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ==
|
314 |
dependencies:
|
315 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
316 |
"@babel/plugin-syntax-json-strings" "^7.8.3"
|
317 |
|
318 |
+
"@babel/plugin-proposal-logical-assignment-operators@^7.14.5":
|
319 |
+
version "7.14.5"
|
320 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz#6e6229c2a99b02ab2915f82571e0cc646a40c738"
|
321 |
+
integrity sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw==
|
322 |
dependencies:
|
323 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
324 |
"@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
|
325 |
|
326 |
+
"@babel/plugin-proposal-nullish-coalescing-operator@^7.14.5":
|
327 |
+
version "7.14.5"
|
328 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz#ee38589ce00e2cc59b299ec3ea406fcd3a0fdaf6"
|
329 |
+
integrity sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==
|
330 |
dependencies:
|
331 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
332 |
"@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
|
333 |
|
334 |
+
"@babel/plugin-proposal-numeric-separator@^7.14.5":
|
335 |
+
version "7.14.5"
|
336 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz#83631bf33d9a51df184c2102a069ac0c58c05f18"
|
337 |
+
integrity sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg==
|
338 |
dependencies:
|
339 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
340 |
"@babel/plugin-syntax-numeric-separator" "^7.10.4"
|
341 |
|
342 |
+
"@babel/plugin-proposal-object-rest-spread@^7.15.6":
|
343 |
+
version "7.15.6"
|
344 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.15.6.tgz#ef68050c8703d07b25af402cb96cf7f34a68ed11"
|
345 |
+
integrity sha512-qtOHo7A1Vt+O23qEAX+GdBpqaIuD3i9VRrWgCJeq7WO6H2d14EK3q11urj5Te2MAeK97nMiIdRpwd/ST4JFbNg==
|
346 |
dependencies:
|
347 |
+
"@babel/compat-data" "^7.15.0"
|
348 |
+
"@babel/helper-compilation-targets" "^7.15.4"
|
349 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
350 |
"@babel/plugin-syntax-object-rest-spread" "^7.8.3"
|
351 |
+
"@babel/plugin-transform-parameters" "^7.15.4"
|
352 |
|
353 |
+
"@babel/plugin-proposal-optional-catch-binding@^7.14.5":
|
354 |
+
version "7.14.5"
|
355 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz#939dd6eddeff3a67fdf7b3f044b5347262598c3c"
|
356 |
+
integrity sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ==
|
357 |
dependencies:
|
358 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
359 |
"@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
|
360 |
|
361 |
+
"@babel/plugin-proposal-optional-chaining@^7.14.5":
|
362 |
+
version "7.14.5"
|
363 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz#fa83651e60a360e3f13797eef00b8d519695b603"
|
364 |
+
integrity sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==
|
365 |
dependencies:
|
366 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
367 |
+
"@babel/helper-skip-transparent-expression-wrappers" "^7.14.5"
|
368 |
"@babel/plugin-syntax-optional-chaining" "^7.8.3"
|
369 |
|
370 |
+
"@babel/plugin-proposal-private-methods@^7.14.5":
|
371 |
+
version "7.14.5"
|
372 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz#37446495996b2945f30f5be5b60d5e2aa4f5792d"
|
373 |
+
integrity sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g==
|
374 |
dependencies:
|
375 |
+
"@babel/helper-create-class-features-plugin" "^7.14.5"
|
376 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
377 |
|
378 |
+
"@babel/plugin-proposal-private-property-in-object@^7.15.4":
|
379 |
+
version "7.15.4"
|
380 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.15.4.tgz#55c5e3b4d0261fd44fe637e3f624cfb0f484e3e5"
|
381 |
+
integrity sha512-X0UTixkLf0PCCffxgu5/1RQyGGbgZuKoI+vXP4iSbJSYwPb7hu06omsFGBvQ9lJEvwgrxHdS8B5nbfcd8GyUNA==
|
382 |
dependencies:
|
383 |
+
"@babel/helper-annotate-as-pure" "^7.15.4"
|
384 |
+
"@babel/helper-create-class-features-plugin" "^7.15.4"
|
385 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
386 |
+
"@babel/plugin-syntax-private-property-in-object" "^7.14.5"
|
387 |
+
|
388 |
+
"@babel/plugin-proposal-unicode-property-regex@^7.14.5", "@babel/plugin-proposal-unicode-property-regex@^7.4.4":
|
389 |
+
version "7.14.5"
|
390 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz#0f95ee0e757a5d647f378daa0eca7e93faa8bbe8"
|
391 |
+
integrity sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q==
|
392 |
+
dependencies:
|
393 |
+
"@babel/helper-create-regexp-features-plugin" "^7.14.5"
|
394 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
395 |
|
396 |
"@babel/plugin-syntax-async-generators@^7.8.4":
|
397 |
version "7.8.4"
|
407 |
dependencies:
|
408 |
"@babel/helper-plugin-utils" "^7.12.13"
|
409 |
|
410 |
+
"@babel/plugin-syntax-class-static-block@^7.14.5":
|
411 |
+
version "7.14.5"
|
412 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406"
|
413 |
+
integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==
|
414 |
+
dependencies:
|
415 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
416 |
+
|
417 |
"@babel/plugin-syntax-dynamic-import@^7.8.3":
|
418 |
version "7.8.3"
|
419 |
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3"
|
477 |
dependencies:
|
478 |
"@babel/helper-plugin-utils" "^7.8.0"
|
479 |
|
480 |
+
"@babel/plugin-syntax-private-property-in-object@^7.14.5":
|
481 |
+
version "7.14.5"
|
482 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad"
|
483 |
+
integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==
|
484 |
dependencies:
|
485 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
486 |
|
487 |
+
"@babel/plugin-syntax-top-level-await@^7.14.5":
|
488 |
+
version "7.14.5"
|
489 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c"
|
490 |
+
integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==
|
491 |
dependencies:
|
492 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
493 |
|
494 |
+
"@babel/plugin-transform-arrow-functions@^7.14.5":
|
495 |
+
version "7.14.5"
|
496 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz#f7187d9588a768dd080bf4c9ffe117ea62f7862a"
|
497 |
+
integrity sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A==
|
498 |
dependencies:
|
499 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
|
|
|
|
500 |
|
501 |
+
"@babel/plugin-transform-async-to-generator@^7.14.5":
|
502 |
+
version "7.14.5"
|
503 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz#72c789084d8f2094acb945633943ef8443d39e67"
|
504 |
+
integrity sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==
|
505 |
dependencies:
|
506 |
+
"@babel/helper-module-imports" "^7.14.5"
|
507 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
508 |
+
"@babel/helper-remap-async-to-generator" "^7.14.5"
|
509 |
|
510 |
+
"@babel/plugin-transform-block-scoped-functions@^7.14.5":
|
511 |
+
version "7.14.5"
|
512 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz#e48641d999d4bc157a67ef336aeb54bc44fd3ad4"
|
513 |
+
integrity sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ==
|
514 |
dependencies:
|
515 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
516 |
|
517 |
+
"@babel/plugin-transform-block-scoping@^7.15.3":
|
518 |
+
version "7.15.3"
|
519 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz#94c81a6e2fc230bcce6ef537ac96a1e4d2b3afaf"
|
520 |
+
integrity sha512-nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q==
|
521 |
dependencies:
|
522 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
523 |
+
|
524 |
+
"@babel/plugin-transform-classes@^7.15.4":
|
525 |
+
version "7.15.4"
|
526 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.15.4.tgz#50aee17aaf7f332ae44e3bce4c2e10534d5d3bf1"
|
527 |
+
integrity sha512-Yjvhex8GzBmmPQUvpXRPWQ9WnxXgAFuZSrqOK/eJlOGIXwvv8H3UEdUigl1gb/bnjTrln+e8bkZUYCBt/xYlBg==
|
528 |
+
dependencies:
|
529 |
+
"@babel/helper-annotate-as-pure" "^7.15.4"
|
530 |
+
"@babel/helper-function-name" "^7.15.4"
|
531 |
+
"@babel/helper-optimise-call-expression" "^7.15.4"
|
532 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
533 |
+
"@babel/helper-replace-supers" "^7.15.4"
|
534 |
+
"@babel/helper-split-export-declaration" "^7.15.4"
|
535 |
globals "^11.1.0"
|
536 |
|
537 |
+
"@babel/plugin-transform-computed-properties@^7.14.5":
|
538 |
+
version "7.14.5"
|
539 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz#1b9d78987420d11223d41195461cc43b974b204f"
|
540 |
+
integrity sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg==
|
541 |
dependencies:
|
542 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
543 |
|
544 |
+
"@babel/plugin-transform-destructuring@^7.14.7":
|
545 |
+
version "7.14.7"
|
546 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz#0ad58ed37e23e22084d109f185260835e5557576"
|
547 |
+
integrity sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw==
|
548 |
dependencies:
|
549 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
550 |
|
551 |
+
"@babel/plugin-transform-dotall-regex@^7.14.5", "@babel/plugin-transform-dotall-regex@^7.4.4":
|
552 |
+
version "7.14.5"
|
553 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz#2f6bf76e46bdf8043b4e7e16cf24532629ba0c7a"
|
554 |
+
integrity sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw==
|
555 |
dependencies:
|
556 |
+
"@babel/helper-create-regexp-features-plugin" "^7.14.5"
|
557 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
558 |
|
559 |
+
"@babel/plugin-transform-duplicate-keys@^7.14.5":
|
560 |
+
version "7.14.5"
|
561 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz#365a4844881bdf1501e3a9f0270e7f0f91177954"
|
562 |
+
integrity sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A==
|
563 |
dependencies:
|
564 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
565 |
|
566 |
+
"@babel/plugin-transform-exponentiation-operator@^7.14.5":
|
567 |
+
version "7.14.5"
|
568 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz#5154b8dd6a3dfe6d90923d61724bd3deeb90b493"
|
569 |
+
integrity sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==
|
570 |
dependencies:
|
571 |
+
"@babel/helper-builder-binary-assignment-operator-visitor" "^7.14.5"
|
572 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
573 |
|
574 |
+
"@babel/plugin-transform-for-of@^7.15.4":
|
575 |
+
version "7.15.4"
|
576 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.15.4.tgz#25c62cce2718cfb29715f416e75d5263fb36a8c2"
|
577 |
+
integrity sha512-DRTY9fA751AFBDh2oxydvVm4SYevs5ILTWLs6xKXps4Re/KG5nfUkr+TdHCrRWB8C69TlzVgA9b3RmGWmgN9LA==
|
578 |
dependencies:
|
579 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
580 |
|
581 |
+
"@babel/plugin-transform-function-name@^7.14.5":
|
582 |
+
version "7.14.5"
|
583 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz#e81c65ecb900746d7f31802f6bed1f52d915d6f2"
|
584 |
+
integrity sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ==
|
585 |
dependencies:
|
586 |
+
"@babel/helper-function-name" "^7.14.5"
|
587 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
588 |
|
589 |
+
"@babel/plugin-transform-literals@^7.14.5":
|
590 |
+
version "7.14.5"
|
591 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz#41d06c7ff5d4d09e3cf4587bd3ecf3930c730f78"
|
592 |
+
integrity sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A==
|
593 |
dependencies:
|
594 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
595 |
|
596 |
+
"@babel/plugin-transform-member-expression-literals@^7.14.5":
|
597 |
+
version "7.14.5"
|
598 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz#b39cd5212a2bf235a617d320ec2b48bcc091b8a7"
|
599 |
+
integrity sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q==
|
600 |
dependencies:
|
601 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
602 |
|
603 |
+
"@babel/plugin-transform-modules-amd@^7.14.5":
|
604 |
+
version "7.14.5"
|
605 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz#4fd9ce7e3411cb8b83848480b7041d83004858f7"
|
606 |
+
integrity sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g==
|
607 |
dependencies:
|
608 |
+
"@babel/helper-module-transforms" "^7.14.5"
|
609 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
610 |
babel-plugin-dynamic-import-node "^2.3.3"
|
611 |
|
612 |
+
"@babel/plugin-transform-modules-commonjs@^7.15.4":
|
613 |
+
version "7.15.4"
|
614 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.4.tgz#8201101240eabb5a76c08ef61b2954f767b6b4c1"
|
615 |
+
integrity sha512-qg4DPhwG8hKp4BbVDvX1s8cohM8a6Bvptu4l6Iingq5rW+yRUAhe/YRup/YcW2zCOlrysEWVhftIcKzrEZv3sA==
|
616 |
dependencies:
|
617 |
+
"@babel/helper-module-transforms" "^7.15.4"
|
618 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
619 |
+
"@babel/helper-simple-access" "^7.15.4"
|
620 |
babel-plugin-dynamic-import-node "^2.3.3"
|
621 |
|
622 |
+
"@babel/plugin-transform-modules-systemjs@^7.15.4":
|
623 |
+
version "7.15.4"
|
624 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.15.4.tgz#b42890c7349a78c827719f1d2d0cd38c7d268132"
|
625 |
+
integrity sha512-fJUnlQrl/mezMneR72CKCgtOoahqGJNVKpompKwzv3BrEXdlPspTcyxrZ1XmDTIr9PpULrgEQo3qNKp6dW7ssw==
|
626 |
dependencies:
|
627 |
+
"@babel/helper-hoist-variables" "^7.15.4"
|
628 |
+
"@babel/helper-module-transforms" "^7.15.4"
|
629 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
630 |
+
"@babel/helper-validator-identifier" "^7.14.9"
|
631 |
babel-plugin-dynamic-import-node "^2.3.3"
|
632 |
|
633 |
+
"@babel/plugin-transform-modules-umd@^7.14.5":
|
634 |
+
version "7.14.5"
|
635 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz#fb662dfee697cce274a7cda525190a79096aa6e0"
|
636 |
+
integrity sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA==
|
637 |
dependencies:
|
638 |
+
"@babel/helper-module-transforms" "^7.14.5"
|
639 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
640 |
|
641 |
+
"@babel/plugin-transform-named-capturing-groups-regex@^7.14.9":
|
642 |
+
version "7.14.9"
|
643 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.9.tgz#c68f5c5d12d2ebaba3762e57c2c4f6347a46e7b2"
|
644 |
+
integrity sha512-l666wCVYO75mlAtGFfyFwnWmIXQm3kSH0C3IRnJqWcZbWkoihyAdDhFm2ZWaxWTqvBvhVFfJjMRQ0ez4oN1yYA==
|
645 |
dependencies:
|
646 |
+
"@babel/helper-create-regexp-features-plugin" "^7.14.5"
|
647 |
|
648 |
+
"@babel/plugin-transform-new-target@^7.14.5":
|
649 |
+
version "7.14.5"
|
650 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz#31bdae8b925dc84076ebfcd2a9940143aed7dbf8"
|
651 |
+
integrity sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ==
|
652 |
dependencies:
|
653 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
654 |
|
655 |
+
"@babel/plugin-transform-object-super@^7.14.5":
|
656 |
+
version "7.14.5"
|
657 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz#d0b5faeac9e98597a161a9cf78c527ed934cdc45"
|
658 |
+
integrity sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg==
|
659 |
dependencies:
|
660 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
661 |
+
"@babel/helper-replace-supers" "^7.14.5"
|
662 |
|
663 |
+
"@babel/plugin-transform-parameters@^7.15.4":
|
664 |
+
version "7.15.4"
|
665 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.15.4.tgz#5f2285cc3160bf48c8502432716b48504d29ed62"
|
666 |
+
integrity sha512-9WB/GUTO6lvJU3XQsSr6J/WKvBC2hcs4Pew8YxZagi6GkTdniyqp8On5kqdK8MN0LMeu0mGbhPN+O049NV/9FQ==
|
667 |
dependencies:
|
668 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
669 |
|
670 |
+
"@babel/plugin-transform-property-literals@^7.14.5":
|
671 |
+
version "7.14.5"
|
672 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz#0ddbaa1f83db3606f1cdf4846fa1dfb473458b34"
|
673 |
+
integrity sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw==
|
674 |
dependencies:
|
675 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
676 |
|
677 |
+
"@babel/plugin-transform-regenerator@^7.14.5":
|
678 |
+
version "7.14.5"
|
679 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz#9676fd5707ed28f522727c5b3c0aa8544440b04f"
|
680 |
+
integrity sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg==
|
681 |
dependencies:
|
682 |
regenerator-transform "^0.14.2"
|
683 |
|
684 |
+
"@babel/plugin-transform-reserved-words@^7.14.5":
|
685 |
+
version "7.14.5"
|
686 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz#c44589b661cfdbef8d4300dcc7469dffa92f8304"
|
687 |
+
integrity sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg==
|
688 |
dependencies:
|
689 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
690 |
|
691 |
+
"@babel/plugin-transform-shorthand-properties@^7.14.5":
|
692 |
+
version "7.14.5"
|
693 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz#97f13855f1409338d8cadcbaca670ad79e091a58"
|
694 |
+
integrity sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g==
|
695 |
dependencies:
|
696 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
697 |
|
698 |
+
"@babel/plugin-transform-spread@^7.14.6":
|
699 |
+
version "7.14.6"
|
700 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz#6bd40e57fe7de94aa904851963b5616652f73144"
|
701 |
+
integrity sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==
|
702 |
dependencies:
|
703 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
704 |
+
"@babel/helper-skip-transparent-expression-wrappers" "^7.14.5"
|
705 |
|
706 |
+
"@babel/plugin-transform-sticky-regex@^7.14.5":
|
707 |
+
version "7.14.5"
|
708 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz#5b617542675e8b7761294381f3c28c633f40aeb9"
|
709 |
+
integrity sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A==
|
710 |
dependencies:
|
711 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
712 |
|
713 |
+
"@babel/plugin-transform-template-literals@^7.14.5":
|
714 |
+
version "7.14.5"
|
715 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz#a5f2bc233937d8453885dc736bdd8d9ffabf3d93"
|
716 |
+
integrity sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg==
|
717 |
dependencies:
|
718 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
719 |
|
720 |
+
"@babel/plugin-transform-typeof-symbol@^7.14.5":
|
721 |
+
version "7.14.5"
|
722 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz#39af2739e989a2bd291bf6b53f16981423d457d4"
|
723 |
+
integrity sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw==
|
724 |
dependencies:
|
725 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
726 |
|
727 |
+
"@babel/plugin-transform-unicode-escapes@^7.14.5":
|
728 |
+
version "7.14.5"
|
729 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz#9d4bd2a681e3c5d7acf4f57fa9e51175d91d0c6b"
|
730 |
+
integrity sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA==
|
731 |
dependencies:
|
732 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
733 |
|
734 |
+
"@babel/plugin-transform-unicode-regex@^7.14.5":
|
735 |
+
version "7.14.5"
|
736 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz#4cd09b6c8425dd81255c7ceb3fb1836e7414382e"
|
737 |
+
integrity sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw==
|
738 |
dependencies:
|
739 |
+
"@babel/helper-create-regexp-features-plugin" "^7.14.5"
|
740 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
741 |
|
742 |
"@babel/preset-env@^7.9.5":
|
743 |
+
version "7.15.6"
|
744 |
+
resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.15.6.tgz#0f3898db9d63d320f21b17380d8462779de57659"
|
745 |
+
integrity sha512-L+6jcGn7EWu7zqaO2uoTDjjMBW+88FXzV8KvrBl2z6MtRNxlsmUNRlZPaNNPUTgqhyC5DHNFk/2Jmra+ublZWw==
|
746 |
+
dependencies:
|
747 |
+
"@babel/compat-data" "^7.15.0"
|
748 |
+
"@babel/helper-compilation-targets" "^7.15.4"
|
749 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
750 |
+
"@babel/helper-validator-option" "^7.14.5"
|
751 |
+
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.15.4"
|
752 |
+
"@babel/plugin-proposal-async-generator-functions" "^7.15.4"
|
753 |
+
"@babel/plugin-proposal-class-properties" "^7.14.5"
|
754 |
+
"@babel/plugin-proposal-class-static-block" "^7.15.4"
|
755 |
+
"@babel/plugin-proposal-dynamic-import" "^7.14.5"
|
756 |
+
"@babel/plugin-proposal-export-namespace-from" "^7.14.5"
|
757 |
+
"@babel/plugin-proposal-json-strings" "^7.14.5"
|
758 |
+
"@babel/plugin-proposal-logical-assignment-operators" "^7.14.5"
|
759 |
+
"@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.5"
|
760 |
+
"@babel/plugin-proposal-numeric-separator" "^7.14.5"
|
761 |
+
"@babel/plugin-proposal-object-rest-spread" "^7.15.6"
|
762 |
+
"@babel/plugin-proposal-optional-catch-binding" "^7.14.5"
|
763 |
+
"@babel/plugin-proposal-optional-chaining" "^7.14.5"
|
764 |
+
"@babel/plugin-proposal-private-methods" "^7.14.5"
|
765 |
+
"@babel/plugin-proposal-private-property-in-object" "^7.15.4"
|
766 |
+
"@babel/plugin-proposal-unicode-property-regex" "^7.14.5"
|
767 |
"@babel/plugin-syntax-async-generators" "^7.8.4"
|
768 |
"@babel/plugin-syntax-class-properties" "^7.12.13"
|
769 |
+
"@babel/plugin-syntax-class-static-block" "^7.14.5"
|
770 |
"@babel/plugin-syntax-dynamic-import" "^7.8.3"
|
771 |
"@babel/plugin-syntax-export-namespace-from" "^7.8.3"
|
772 |
"@babel/plugin-syntax-json-strings" "^7.8.3"
|
776 |
"@babel/plugin-syntax-object-rest-spread" "^7.8.3"
|
777 |
"@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
|
778 |
"@babel/plugin-syntax-optional-chaining" "^7.8.3"
|
779 |
+
"@babel/plugin-syntax-private-property-in-object" "^7.14.5"
|
780 |
+
"@babel/plugin-syntax-top-level-await" "^7.14.5"
|
781 |
+
"@babel/plugin-transform-arrow-functions" "^7.14.5"
|
782 |
+
"@babel/plugin-transform-async-to-generator" "^7.14.5"
|
783 |
+
"@babel/plugin-transform-block-scoped-functions" "^7.14.5"
|
784 |
+
"@babel/plugin-transform-block-scoping" "^7.15.3"
|
785 |
+
"@babel/plugin-transform-classes" "^7.15.4"
|
786 |
+
"@babel/plugin-transform-computed-properties" "^7.14.5"
|
787 |
+
"@babel/plugin-transform-destructuring" "^7.14.7"
|
788 |
+
"@babel/plugin-transform-dotall-regex" "^7.14.5"
|
789 |
+
"@babel/plugin-transform-duplicate-keys" "^7.14.5"
|
790 |
+
"@babel/plugin-transform-exponentiation-operator" "^7.14.5"
|
791 |
+
"@babel/plugin-transform-for-of" "^7.15.4"
|
792 |
+
"@babel/plugin-transform-function-name" "^7.14.5"
|
793 |
+
"@babel/plugin-transform-literals" "^7.14.5"
|
794 |
+
"@babel/plugin-transform-member-expression-literals" "^7.14.5"
|
795 |
+
"@babel/plugin-transform-modules-amd" "^7.14.5"
|
796 |
+
"@babel/plugin-transform-modules-commonjs" "^7.15.4"
|
797 |
+
"@babel/plugin-transform-modules-systemjs" "^7.15.4"
|
798 |
+
"@babel/plugin-transform-modules-umd" "^7.14.5"
|
799 |
+
"@babel/plugin-transform-named-capturing-groups-regex" "^7.14.9"
|
800 |
+
"@babel/plugin-transform-new-target" "^7.14.5"
|
801 |
+
"@babel/plugin-transform-object-super" "^7.14.5"
|
802 |
+
"@babel/plugin-transform-parameters" "^7.15.4"
|
803 |
+
"@babel/plugin-transform-property-literals" "^7.14.5"
|
804 |
+
"@babel/plugin-transform-regenerator" "^7.14.5"
|
805 |
+
"@babel/plugin-transform-reserved-words" "^7.14.5"
|
806 |
+
"@babel/plugin-transform-shorthand-properties" "^7.14.5"
|
807 |
+
"@babel/plugin-transform-spread" "^7.14.6"
|
808 |
+
"@babel/plugin-transform-sticky-regex" "^7.14.5"
|
809 |
+
"@babel/plugin-transform-template-literals" "^7.14.5"
|
810 |
+
"@babel/plugin-transform-typeof-symbol" "^7.14.5"
|
811 |
+
"@babel/plugin-transform-unicode-escapes" "^7.14.5"
|
812 |
+
"@babel/plugin-transform-unicode-regex" "^7.14.5"
|
813 |
"@babel/preset-modules" "^0.1.4"
|
814 |
+
"@babel/types" "^7.15.6"
|
815 |
+
babel-plugin-polyfill-corejs2 "^0.2.2"
|
816 |
+
babel-plugin-polyfill-corejs3 "^0.2.2"
|
817 |
+
babel-plugin-polyfill-regenerator "^0.2.2"
|
818 |
+
core-js-compat "^3.16.0"
|
819 |
semver "^6.3.0"
|
820 |
|
821 |
"@babel/preset-modules@^0.1.4":
|
830 |
esutils "^2.0.2"
|
831 |
|
832 |
"@babel/runtime@^7.8.4":
|
833 |
+
version "7.15.4"
|
834 |
+
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.4.tgz#fd17d16bfdf878e6dd02d19753a39fa8a8d9c84a"
|
835 |
+
integrity sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==
|
836 |
dependencies:
|
837 |
regenerator-runtime "^0.13.4"
|
838 |
|
839 |
+
"@babel/template@^7.15.4":
|
840 |
+
version "7.15.4"
|
841 |
+
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.15.4.tgz#51898d35dcf3faa670c4ee6afcfd517ee139f194"
|
842 |
+
integrity sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==
|
843 |
+
dependencies:
|
844 |
+
"@babel/code-frame" "^7.14.5"
|
845 |
+
"@babel/parser" "^7.15.4"
|
846 |
+
"@babel/types" "^7.15.4"
|
847 |
+
|
848 |
+
"@babel/traverse@^7.13.0", "@babel/traverse@^7.15.4":
|
849 |
+
version "7.15.4"
|
850 |
+
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.4.tgz#ff8510367a144bfbff552d9e18e28f3e2889c22d"
|
851 |
+
integrity sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==
|
852 |
+
dependencies:
|
853 |
+
"@babel/code-frame" "^7.14.5"
|
854 |
+
"@babel/generator" "^7.15.4"
|
855 |
+
"@babel/helper-function-name" "^7.15.4"
|
856 |
+
"@babel/helper-hoist-variables" "^7.15.4"
|
857 |
+
"@babel/helper-split-export-declaration" "^7.15.4"
|
858 |
+
"@babel/parser" "^7.15.4"
|
859 |
+
"@babel/types" "^7.15.4"
|
860 |
debug "^4.1.0"
|
861 |
globals "^11.1.0"
|
862 |
|
863 |
+
"@babel/types@^7.15.4", "@babel/types@^7.15.6", "@babel/types@^7.4.4":
|
864 |
+
version "7.15.6"
|
865 |
+
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.6.tgz#99abdc48218b2881c058dd0a7ab05b99c9be758f"
|
866 |
+
integrity sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==
|
867 |
dependencies:
|
868 |
+
"@babel/helper-validator-identifier" "^7.14.9"
|
|
|
869 |
to-fast-properties "^2.0.0"
|
870 |
|
871 |
+
"@discoveryjs/json-ext@^0.5.0":
|
872 |
+
version "0.5.5"
|
873 |
+
resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.5.tgz#9283c9ce5b289a3c4f61c12757469e59377f81f3"
|
874 |
+
integrity sha512-6nFkfkmSeV/rqSaS4oWHgmpnYw194f6hmWF5is6b0J1naJZoiD0NTc9AiUwPHvWsowkjuHErCZT1wa0jg+BLIA==
|
875 |
+
|
876 |
+
"@types/eslint-scope@^3.7.0":
|
877 |
+
version "3.7.1"
|
878 |
+
resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.1.tgz#8dc390a7b4f9dd9f1284629efce982e41612116e"
|
879 |
+
integrity sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g==
|
880 |
+
dependencies:
|
881 |
+
"@types/eslint" "*"
|
882 |
+
"@types/estree" "*"
|
883 |
+
|
884 |
+
"@types/eslint@*":
|
885 |
+
version "7.28.0"
|
886 |
+
resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.28.0.tgz#7e41f2481d301c68e14f483fe10b017753ce8d5a"
|
887 |
+
integrity sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A==
|
888 |
+
dependencies:
|
889 |
+
"@types/estree" "*"
|
890 |
+
"@types/json-schema" "*"
|
891 |
+
|
892 |
+
"@types/estree@*", "@types/estree@^0.0.50":
|
893 |
+
version "0.0.50"
|
894 |
+
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83"
|
895 |
+
integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==
|
896 |
+
|
897 |
+
"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8":
|
898 |
+
version "7.0.9"
|
899 |
+
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d"
|
900 |
+
integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==
|
901 |
+
|
902 |
+
"@types/node@*":
|
903 |
+
version "16.10.1"
|
904 |
+
resolved "https://registry.yarnpkg.com/@types/node/-/node-16.10.1.tgz#f3647623199ca920960006b3dccf633ea905f243"
|
905 |
+
integrity sha512-4/Z9DMPKFexZj/Gn3LylFgamNKHm4K3QDi0gz9B26Uk0c8izYf97B5fxfpspMNkWlFupblKM/nV8+NA9Ffvr+w==
|
906 |
+
|
907 |
+
"@webassemblyjs/ast@1.11.1":
|
908 |
+
version "1.11.1"
|
909 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7"
|
910 |
+
integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==
|
911 |
+
dependencies:
|
912 |
+
"@webassemblyjs/helper-numbers" "1.11.1"
|
913 |
+
"@webassemblyjs/helper-wasm-bytecode" "1.11.1"
|
914 |
+
|
915 |
+
"@webassemblyjs/floating-point-hex-parser@1.11.1":
|
916 |
+
version "1.11.1"
|
917 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f"
|
918 |
+
integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==
|
919 |
+
|
920 |
+
"@webassemblyjs/helper-api-error@1.11.1":
|
921 |
+
version "1.11.1"
|
922 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16"
|
923 |
+
integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==
|
924 |
+
|
925 |
+
"@webassemblyjs/helper-buffer@1.11.1":
|
926 |
+
version "1.11.1"
|
927 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5"
|
928 |
+
integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==
|
929 |
+
|
930 |
+
"@webassemblyjs/helper-numbers@1.11.1":
|
931 |
+
version "1.11.1"
|
932 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae"
|
933 |
+
integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==
|
934 |
+
dependencies:
|
935 |
+
"@webassemblyjs/floating-point-hex-parser" "1.11.1"
|
936 |
+
"@webassemblyjs/helper-api-error" "1.11.1"
|
937 |
+
"@xtuc/long" "4.2.2"
|
938 |
+
|
939 |
+
"@webassemblyjs/helper-wasm-bytecode@1.11.1":
|
940 |
+
version "1.11.1"
|
941 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1"
|
942 |
+
integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==
|
943 |
+
|
944 |
+
"@webassemblyjs/helper-wasm-section@1.11.1":
|
945 |
+
version "1.11.1"
|
946 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a"
|
947 |
+
integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==
|
948 |
+
dependencies:
|
949 |
+
"@webassemblyjs/ast" "1.11.1"
|
950 |
+
"@webassemblyjs/helper-buffer" "1.11.1"
|
951 |
+
"@webassemblyjs/helper-wasm-bytecode" "1.11.1"
|
952 |
+
"@webassemblyjs/wasm-gen" "1.11.1"
|
953 |
+
|
954 |
+
"@webassemblyjs/ieee754@1.11.1":
|
955 |
+
version "1.11.1"
|
956 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614"
|
957 |
+
integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==
|
958 |
dependencies:
|
959 |
"@xtuc/ieee754" "^1.2.0"
|
960 |
|
961 |
+
"@webassemblyjs/leb128@1.11.1":
|
962 |
+
version "1.11.1"
|
963 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5"
|
964 |
+
integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==
|
965 |
dependencies:
|
966 |
"@xtuc/long" "4.2.2"
|
967 |
|
968 |
+
"@webassemblyjs/utf8@1.11.1":
|
969 |
+
version "1.11.1"
|
970 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff"
|
971 |
+
integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==
|
972 |
+
|
973 |
+
"@webassemblyjs/wasm-edit@1.11.1":
|
974 |
+
version "1.11.1"
|
975 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6"
|
976 |
+
integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==
|
977 |
+
dependencies:
|
978 |
+
"@webassemblyjs/ast" "1.11.1"
|
979 |
+
"@webassemblyjs/helper-buffer" "1.11.1"
|
980 |
+
"@webassemblyjs/helper-wasm-bytecode" "1.11.1"
|
981 |
+
"@webassemblyjs/helper-wasm-section" "1.11.1"
|
982 |
+
"@webassemblyjs/wasm-gen" "1.11.1"
|
983 |
+
"@webassemblyjs/wasm-opt" "1.11.1"
|
984 |
+
"@webassemblyjs/wasm-parser" "1.11.1"
|
985 |
+
"@webassemblyjs/wast-printer" "1.11.1"
|
986 |
+
|
987 |
+
"@webassemblyjs/wasm-gen@1.11.1":
|
988 |
+
version "1.11.1"
|
989 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76"
|
990 |
+
integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==
|
991 |
+
dependencies:
|
992 |
+
"@webassemblyjs/ast" "1.11.1"
|
993 |
+
"@webassemblyjs/helper-wasm-bytecode" "1.11.1"
|
994 |
+
"@webassemblyjs/ieee754" "1.11.1"
|
995 |
+
"@webassemblyjs/leb128" "1.11.1"
|
996 |
+
"@webassemblyjs/utf8" "1.11.1"
|
997 |
+
|
998 |
+
"@webassemblyjs/wasm-opt@1.11.1":
|
999 |
+
version "1.11.1"
|
1000 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2"
|
1001 |
+
integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==
|
1002 |
+
dependencies:
|
1003 |
+
"@webassemblyjs/ast" "1.11.1"
|
1004 |
+
"@webassemblyjs/helper-buffer" "1.11.1"
|
1005 |
+
"@webassemblyjs/wasm-gen" "1.11.1"
|
1006 |
+
"@webassemblyjs/wasm-parser" "1.11.1"
|
1007 |
+
|
1008 |
+
"@webassemblyjs/wasm-parser@1.11.1":
|
1009 |
+
version "1.11.1"
|
1010 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199"
|
1011 |
+
integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==
|
1012 |
+
dependencies:
|
1013 |
+
"@webassemblyjs/ast" "1.11.1"
|
1014 |
+
"@webassemblyjs/helper-api-error" "1.11.1"
|
1015 |
+
"@webassemblyjs/helper-wasm-bytecode" "1.11.1"
|
1016 |
+
"@webassemblyjs/ieee754" "1.11.1"
|
1017 |
+
"@webassemblyjs/leb128" "1.11.1"
|
1018 |
+
"@webassemblyjs/utf8" "1.11.1"
|
1019 |
+
|
1020 |
+
"@webassemblyjs/wast-printer@1.11.1":
|
1021 |
+
version "1.11.1"
|
1022 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0"
|
1023 |
+
integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==
|
1024 |
+
dependencies:
|
1025 |
+
"@webassemblyjs/ast" "1.11.1"
|
|
|
|
|
|
|
|
|
1026 |
"@xtuc/long" "4.2.2"
|
1027 |
|
1028 |
+
"@webpack-cli/configtest@^1.0.4":
|
1029 |
+
version "1.0.4"
|
1030 |
+
resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.0.4.tgz#f03ce6311c0883a83d04569e2c03c6238316d2aa"
|
1031 |
+
integrity sha512-cs3XLy+UcxiP6bj0A6u7MLLuwdXJ1c3Dtc0RkKg+wiI1g/Ti1om8+/2hc2A2B60NbBNAbMgyBMHvyymWm/j4wQ==
|
1032 |
+
|
1033 |
+
"@webpack-cli/info@^1.3.0":
|
1034 |
+
version "1.3.0"
|
1035 |
+
resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.3.0.tgz#9d78a31101a960997a4acd41ffd9b9300627fe2b"
|
1036 |
+
integrity sha512-ASiVB3t9LOKHs5DyVUcxpraBXDOKubYu/ihHhU+t1UPpxsivg6Od2E2qU4gJCekfEddzRBzHhzA/Acyw/mlK/w==
|
1037 |
dependencies:
|
1038 |
+
envinfo "^7.7.3"
|
1039 |
+
|
1040 |
+
"@webpack-cli/serve@^1.5.2":
|
1041 |
+
version "1.5.2"
|
1042 |
+
resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.5.2.tgz#ea584b637ff63c5a477f6f21604b5a205b72c9ec"
|
1043 |
+
integrity sha512-vgJ5OLWadI8aKjDlOH3rb+dYyPd2GTZuQC/Tihjct6F9GpXGZINo3Y/IVuZVTM1eDQB+/AOsjPUWH/WySDaXvw==
|
1044 |
|
1045 |
"@xtuc/ieee754@^1.2.0":
|
1046 |
version "1.2.0"
|
1052 |
resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
|
1053 |
integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
|
1054 |
|
1055 |
+
acorn-import-assertions@^1.7.6:
|
1056 |
+
version "1.7.6"
|
1057 |
+
resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.7.6.tgz#580e3ffcae6770eebeec76c3b9723201e9d01f78"
|
1058 |
+
integrity sha512-FlVvVFA1TX6l3lp8VjDnYYq7R1nyW6x3svAt4nDgrWQ9SBaSh9CnbwgSUTasgfNfOG5HlM1ehugCvM+hjo56LA==
|
1059 |
|
1060 |
+
acorn@^8.4.1:
|
1061 |
+
version "8.5.0"
|
1062 |
+
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.5.0.tgz#4512ccb99b3698c752591e9bb4472e38ad43cee2"
|
1063 |
+
integrity sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==
|
1064 |
|
1065 |
+
ajv-keywords@^3.5.2:
|
1066 |
version "3.5.2"
|
1067 |
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
|
1068 |
integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
|
1069 |
|
1070 |
+
ajv@^6.12.4, ajv@^6.12.5:
|
1071 |
version "6.12.6"
|
1072 |
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
|
1073 |
integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
|
1077 |
json-schema-traverse "^0.4.1"
|
1078 |
uri-js "^4.2.2"
|
1079 |
|
1080 |
+
ansi-styles@^3.2.1:
|
|
|
|
|
|
|
|
|
|
|
1081 |
version "3.2.1"
|
1082 |
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
|
1083 |
integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
|
1084 |
dependencies:
|
1085 |
color-convert "^1.9.0"
|
1086 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1087 |
babel-loader@^8.1.0:
|
1088 |
version "8.2.2"
|
1089 |
resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81"
|
1101 |
dependencies:
|
1102 |
object.assign "^4.1.0"
|
1103 |
|
1104 |
+
babel-plugin-polyfill-corejs2@^0.2.2:
|
1105 |
+
version "0.2.2"
|
1106 |
+
resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz#e9124785e6fd94f94b618a7954e5693053bf5327"
|
1107 |
+
integrity sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ==
|
1108 |
dependencies:
|
1109 |
+
"@babel/compat-data" "^7.13.11"
|
1110 |
+
"@babel/helper-define-polyfill-provider" "^0.2.2"
|
1111 |
semver "^6.1.1"
|
1112 |
|
1113 |
+
babel-plugin-polyfill-corejs3@^0.2.2:
|
1114 |
+
version "0.2.5"
|
1115 |
+
resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.5.tgz#2779846a16a1652244ae268b1e906ada107faf92"
|
1116 |
+
integrity sha512-ninF5MQNwAX9Z7c9ED+H2pGt1mXdP4TqzlHKyPIYmJIYz0N+++uwdM7RnJukklhzJ54Q84vA4ZJkgs7lu5vqcw==
|
1117 |
dependencies:
|
1118 |
+
"@babel/helper-define-polyfill-provider" "^0.2.2"
|
1119 |
+
core-js-compat "^3.16.2"
|
1120 |
|
1121 |
+
babel-plugin-polyfill-regenerator@^0.2.2:
|
1122 |
+
version "0.2.2"
|
1123 |
+
resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz#b310c8d642acada348c1fa3b3e6ce0e851bee077"
|
1124 |
+
integrity sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg==
|
1125 |
dependencies:
|
1126 |
+
"@babel/helper-define-polyfill-provider" "^0.2.2"
|
1127 |
|
1128 |
babel-plugin-syntax-object-rest-spread@^6.8.0:
|
1129 |
version "6.13.0"
|
1146 |
core-js "^2.4.0"
|
1147 |
regenerator-runtime "^0.11.0"
|
1148 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1149 |
big.js@^5.2.2:
|
1150 |
version "5.2.2"
|
1151 |
resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
|
1152 |
integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
|
1153 |
|
1154 |
+
browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4.17.1:
|
1155 |
+
version "4.17.1"
|
1156 |
+
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.1.tgz#a98d104f54af441290b7d592626dd541fa642eb9"
|
1157 |
+
integrity sha512-aLD0ZMDSnF4lUt4ZDNgqi5BUn9BZ7YdQdI/cYlILrhdSSZJLU9aNZoD5/NBmM4SK34APB2e83MOsRt1EnkuyaQ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1158 |
dependencies:
|
1159 |
+
caniuse-lite "^1.0.30001259"
|
1160 |
+
electron-to-chromium "^1.3.846"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1161 |
escalade "^3.1.1"
|
1162 |
+
nanocolors "^0.1.5"
|
1163 |
+
node-releases "^1.1.76"
|
1164 |
|
1165 |
buffer-from@^1.0.0:
|
1166 |
+
version "1.1.2"
|
1167 |
+
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
|
1168 |
+
integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1169 |
|
1170 |
call-bind@^1.0.0:
|
1171 |
version "1.0.2"
|
1175 |
function-bind "^1.1.1"
|
1176 |
get-intrinsic "^1.0.2"
|
1177 |
|
1178 |
+
caniuse-lite@^1.0.30001259:
|
1179 |
+
version "1.0.30001261"
|
1180 |
+
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001261.tgz#96d89813c076ea061209a4e040d8dcf0c66a1d01"
|
1181 |
+
integrity sha512-vM8D9Uvp7bHIN0fZ2KQ4wnmYFpJo/Etb4Vwsuc+ka0tfGDHvOPrFm6S/7CCNLSOkAUjenT2HnUPESdOIL91FaA==
|
1182 |
|
1183 |
+
chalk@^2.0.0:
|
|
|
|
|
|
|
|
|
|
|
1184 |
version "2.4.2"
|
1185 |
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
|
1186 |
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
|
1189 |
escape-string-regexp "^1.0.5"
|
1190 |
supports-color "^5.3.0"
|
1191 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1192 |
chrome-trace-event@^1.0.2:
|
1193 |
+
version "1.0.3"
|
1194 |
+
resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac"
|
1195 |
+
integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1196 |
|
1197 |
+
clone-deep@^4.0.1:
|
1198 |
+
version "4.0.1"
|
1199 |
+
resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387"
|
1200 |
+
integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==
|
1201 |
dependencies:
|
1202 |
+
is-plain-object "^2.0.4"
|
1203 |
+
kind-of "^6.0.2"
|
1204 |
+
shallow-clone "^3.0.0"
|
1205 |
|
1206 |
color-convert@^1.9.0:
|
1207 |
version "1.9.3"
|
1216 |
integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
|
1217 |
|
1218 |
colorette@^1.2.1:
|
1219 |
+
version "1.4.0"
|
1220 |
+
resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40"
|
1221 |
+
integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==
|
1222 |
|
1223 |
commander@^2.20.0:
|
1224 |
version "2.20.3"
|
1225 |
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
|
1226 |
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
|
1227 |
|
1228 |
+
commander@^7.0.0:
|
1229 |
+
version "7.2.0"
|
1230 |
+
resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
|
1231 |
+
integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
|
1232 |
+
|
1233 |
commondir@^1.0.1:
|
1234 |
version "1.0.1"
|
1235 |
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
|
1236 |
integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
|
1237 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1238 |
convert-source-map@^1.7.0:
|
1239 |
+
version "1.8.0"
|
1240 |
+
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369"
|
1241 |
+
integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==
|
1242 |
dependencies:
|
1243 |
safe-buffer "~5.1.1"
|
1244 |
|
1245 |
+
core-js-compat@^3.16.0, core-js-compat@^3.16.2:
|
1246 |
+
version "3.18.1"
|
1247 |
+
resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.18.1.tgz#01942a0877caf9c6e5007c027183cf0bdae6a191"
|
1248 |
+
integrity sha512-XJMYx58zo4W0kLPmIingVZA10+7TuKrMLPt83+EzDmxFJQUMcTVVmQ+n5JP4r6Z14qSzhQBRi3NSWoeVyKKXUg==
|
1249 |
+
dependencies:
|
1250 |
+
browserslist "^4.17.1"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1251 |
semver "7.0.0"
|
1252 |
|
1253 |
core-js@^2.4.0:
|
1255 |
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec"
|
1256 |
integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
|
1257 |
|
1258 |
+
cross-env@^7.0.3:
|
1259 |
+
version "7.0.3"
|
1260 |
+
resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf"
|
1261 |
+
integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==
|
|
|
|
|
|
|
|
|
|
|
1262 |
dependencies:
|
1263 |
+
cross-spawn "^7.0.1"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1264 |
|
1265 |
+
cross-spawn@^7.0.1, cross-spawn@^7.0.3:
|
1266 |
+
version "7.0.3"
|
1267 |
+
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
|
1268 |
+
integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
|
1269 |
dependencies:
|
1270 |
+
path-key "^3.1.0"
|
1271 |
+
shebang-command "^2.0.0"
|
1272 |
+
which "^2.0.1"
|
1273 |
|
1274 |
debug@^4.1.0, debug@^4.1.1:
|
1275 |
+
version "4.3.2"
|
1276 |
+
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
|
1277 |
+
integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==
|
1278 |
dependencies:
|
1279 |
ms "2.1.2"
|
1280 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1281 |
define-properties@^1.1.3:
|
1282 |
version "1.1.3"
|
1283 |
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
|
1285 |
dependencies:
|
1286 |
object-keys "^1.0.12"
|
1287 |
|
1288 |
+
electron-to-chromium@^1.3.846:
|
1289 |
+
version "1.3.853"
|
1290 |
+
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.853.tgz#f3ed1d31f092cb3a17af188bca6c6a3ec91c3e82"
|
1291 |
+
integrity sha512-W4U8n+U8I5/SUaFcqZgbKRmYZwcyEIQVBDf+j5QQK6xChjXnQD+wj248eGR9X4u+dDmDR//8vIfbu4PrdBBIoQ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1292 |
|
1293 |
emojis-list@^3.0.0:
|
1294 |
version "3.0.0"
|
1295 |
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
|
1296 |
integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
|
1297 |
|
1298 |
+
enhanced-resolve@^5.8.3:
|
1299 |
+
version "5.8.3"
|
1300 |
+
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz#6d552d465cce0423f5b3d718511ea53826a7b2f0"
|
1301 |
+
integrity sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==
|
1302 |
dependencies:
|
1303 |
+
graceful-fs "^4.2.4"
|
1304 |
+
tapable "^2.2.0"
|
1305 |
|
1306 |
+
envinfo@^7.7.3:
|
1307 |
+
version "7.8.1"
|
1308 |
+
resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475"
|
1309 |
+
integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==
|
|
|
|
|
|
|
|
|
1310 |
|
1311 |
+
es-module-lexer@^0.9.0:
|
1312 |
+
version "0.9.1"
|
1313 |
+
resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.1.tgz#f203bf394a630a552d381acf01a17ef08843b140"
|
1314 |
+
integrity sha512-17Ed9misDnpyNBJh63g1OhW3qUFecDgGOivI85JeZY/LGhDum8e+cltukbkSK8pcJnXXEkya56sp4vSS1nzoUw==
|
|
|
|
|
1315 |
|
1316 |
escalade@^3.1.1:
|
1317 |
version "3.1.1"
|
1323 |
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
|
1324 |
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
|
1325 |
|
1326 |
+
eslint-scope@5.1.1:
|
1327 |
+
version "5.1.1"
|
1328 |
+
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
|
1329 |
+
integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
|
1330 |
dependencies:
|
1331 |
+
esrecurse "^4.3.0"
|
1332 |
estraverse "^4.1.1"
|
1333 |
|
1334 |
+
esrecurse@^4.3.0:
|
1335 |
version "4.3.0"
|
1336 |
resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
|
1337 |
integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
|
1353 |
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
|
1354 |
integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
|
1355 |
|
1356 |
+
events@^3.2.0:
|
1357 |
version "3.3.0"
|
1358 |
resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
|
1359 |
integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
|
1360 |
|
1361 |
+
execa@^5.0.0:
|
1362 |
+
version "5.1.1"
|
1363 |
+
resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
|
1364 |
+
integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
|
1365 |
+
dependencies:
|
1366 |
+
cross-spawn "^7.0.3"
|
1367 |
+
get-stream "^6.0.0"
|
1368 |
+
human-signals "^2.1.0"
|
1369 |
+
is-stream "^2.0.0"
|
1370 |
+
merge-stream "^2.0.0"
|
1371 |
+
npm-run-path "^4.0.1"
|
1372 |
+
onetime "^5.1.2"
|
1373 |
+
signal-exit "^3.0.3"
|
1374 |
+
strip-final-newline "^2.0.0"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1375 |
|
1376 |
fast-deep-equal@^3.1.1:
|
1377 |
version "3.1.3"
|
1383 |
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
|
1384 |
integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
|
1385 |
|
1386 |
+
fastest-levenshtein@^1.0.12:
|
1387 |
+
version "1.0.12"
|
1388 |
+
resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2"
|
1389 |
+
integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==
|
1390 |
|
1391 |
+
file-loader@^6.2.0:
|
1392 |
+
version "6.2.0"
|
1393 |
+
resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d"
|
1394 |
+
integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==
|
1395 |
dependencies:
|
1396 |
+
loader-utils "^2.0.0"
|
1397 |
+
schema-utils "^3.0.0"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1398 |
|
1399 |
find-cache-dir@^3.3.1:
|
1400 |
+
version "3.3.2"
|
1401 |
+
resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b"
|
1402 |
+
integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==
|
1403 |
dependencies:
|
1404 |
commondir "^1.0.1"
|
1405 |
make-dir "^3.0.2"
|
1406 |
pkg-dir "^4.1.0"
|
1407 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1408 |
find-up@^4.0.0:
|
1409 |
version "4.1.0"
|
1410 |
resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
|
1413 |
locate-path "^5.0.0"
|
1414 |
path-exists "^4.0.0"
|
1415 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1416 |
function-bind@^1.1.1:
|
1417 |
version "1.1.1"
|
1418 |
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
|
1423 |
resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
|
1424 |
integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
|
1425 |
|
|
|
|
|
|
|
|
|
|
|
1426 |
get-intrinsic@^1.0.2:
|
1427 |
version "1.1.1"
|
1428 |
resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6"
|
1432 |
has "^1.0.3"
|
1433 |
has-symbols "^1.0.1"
|
1434 |
|
1435 |
+
get-stream@^6.0.0:
|
1436 |
+
version "6.0.1"
|
1437 |
+
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
|
1438 |
+
integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1439 |
|
1440 |
+
glob-to-regexp@^0.4.1:
|
1441 |
+
version "0.4.1"
|
1442 |
+
resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
|
1443 |
+
integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
|
|
|
|
|
|
|
|
|
1444 |
|
1445 |
globals@^11.1.0:
|
1446 |
version "11.12.0"
|
1447 |
resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
|
1448 |
integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
|
1449 |
|
1450 |
+
graceful-fs@^4.1.2, graceful-fs@^4.2.4:
|
1451 |
+
version "4.2.8"
|
1452 |
+
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a"
|
1453 |
+
integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==
|
1454 |
|
1455 |
has-flag@^3.0.0:
|
1456 |
version "3.0.0"
|
1457 |
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
|
1458 |
integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
|
1459 |
|
1460 |
+
has-flag@^4.0.0:
|
1461 |
+
version "4.0.0"
|
1462 |
+
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
|
1463 |
+
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
|
1464 |
+
|
1465 |
has-symbols@^1.0.1:
|
1466 |
version "1.0.2"
|
1467 |
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423"
|
1468 |
integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==
|
1469 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1470 |
has@^1.0.3:
|
1471 |
version "1.0.3"
|
1472 |
resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
|
1474 |
dependencies:
|
1475 |
function-bind "^1.1.1"
|
1476 |
|
1477 |
+
human-signals@^2.1.0:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1478 |
version "2.1.0"
|
1479 |
+
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
|
1480 |
+
integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
|
1481 |
+
|
1482 |
+
import-local@^3.0.2:
|
1483 |
+
version "3.0.2"
|
1484 |
+
resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6"
|
1485 |
+
integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==
|
1486 |
dependencies:
|
1487 |
+
pkg-dir "^4.2.0"
|
1488 |
+
resolve-cwd "^3.0.0"
|
1489 |
|
1490 |
+
interpret@^2.2.0:
|
1491 |
+
version "2.2.0"
|
1492 |
+
resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9"
|
1493 |
+
integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==
|
1494 |
|
1495 |
is-core-module@^2.2.0:
|
1496 |
+
version "2.7.0"
|
1497 |
+
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.7.0.tgz#3c0ef7d31b4acfc574f80c58409d568a836848e3"
|
1498 |
+
integrity sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==
|
1499 |
dependencies:
|
1500 |
has "^1.0.3"
|
1501 |
|
1502 |
+
is-plain-object@^2.0.4:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1503 |
version "2.0.4"
|
1504 |
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
|
1505 |
integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
|
1506 |
dependencies:
|
1507 |
isobject "^3.0.1"
|
1508 |
|
1509 |
+
is-stream@^2.0.0:
|
1510 |
+
version "2.0.1"
|
1511 |
+
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
|
1512 |
+
integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1513 |
|
1514 |
isexe@^2.0.0:
|
1515 |
version "2.0.0"
|
1516 |
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
|
1517 |
integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
|
1518 |
|
1519 |
+
isobject@^3.0.1:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1520 |
version "3.0.1"
|
1521 |
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
|
1522 |
integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
|
1523 |
|
1524 |
+
jest-worker@^27.0.6:
|
1525 |
+
version "27.2.3"
|
1526 |
+
resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.2.3.tgz#396e83d04ca575230a9bcb255c2b66aec07cb931"
|
1527 |
+
integrity sha512-ZwOvv4GCIPviL+Ie4pVguz4N5w/6IGbTaHBYOl3ZcsZZktaL7d8JOU0rmovoED7AJZKA8fvmLbBg8yg80u/tGA==
|
1528 |
+
dependencies:
|
1529 |
+
"@types/node" "*"
|
1530 |
+
merge-stream "^2.0.0"
|
1531 |
+
supports-color "^8.0.0"
|
1532 |
+
|
1533 |
js-tokens@^4.0.0:
|
1534 |
version "4.0.0"
|
1535 |
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
|
1569 |
dependencies:
|
1570 |
minimist "^1.2.5"
|
1571 |
|
1572 |
+
kind-of@^6.0.2:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1573 |
version "6.0.3"
|
1574 |
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
|
1575 |
integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
|
1576 |
|
1577 |
+
loader-runner@^4.2.0:
|
1578 |
+
version "4.2.0"
|
1579 |
+
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384"
|
1580 |
+
integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==
|
1581 |
|
1582 |
+
loader-utils@^1.4.0:
|
1583 |
version "1.4.0"
|
1584 |
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613"
|
1585 |
integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==
|
1588 |
emojis-list "^3.0.0"
|
1589 |
json5 "^1.0.1"
|
1590 |
|
1591 |
+
loader-utils@^2.0.0:
|
1592 |
+
version "2.0.0"
|
1593 |
+
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0"
|
1594 |
+
integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==
|
1595 |
dependencies:
|
1596 |
+
big.js "^5.2.2"
|
1597 |
+
emojis-list "^3.0.0"
|
1598 |
+
json5 "^2.1.2"
|
1599 |
|
1600 |
locate-path@^5.0.0:
|
1601 |
version "5.0.0"
|
1609 |
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
|
1610 |
integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168=
|
1611 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1612 |
make-dir@^3.0.2, make-dir@^3.1.0:
|
1613 |
version "3.1.0"
|
1614 |
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
|
1616 |
dependencies:
|
1617 |
semver "^6.0.0"
|
1618 |
|
1619 |
+
merge-stream@^2.0.0:
|
1620 |
+
version "2.0.0"
|
1621 |
+
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
|
1622 |
+
integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1623 |
|
1624 |
+
mime-db@1.49.0:
|
1625 |
+
version "1.49.0"
|
1626 |
+
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.49.0.tgz#f3dfde60c99e9cf3bc9701d687778f537001cbed"
|
1627 |
+
integrity sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1628 |
|
1629 |
+
mime-types@^2.1.27:
|
1630 |
+
version "2.1.32"
|
1631 |
+
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.32.tgz#1d00e89e7de7fe02008db61001d9e02852670fd5"
|
1632 |
+
integrity sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==
|
1633 |
dependencies:
|
1634 |
+
mime-db "1.49.0"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1635 |
|
1636 |
+
mimic-fn@^2.1.0:
|
1637 |
+
version "2.1.0"
|
1638 |
+
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
|
1639 |
+
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
|
|
|
|
|
1640 |
|
1641 |
minimist@^1.2.0, minimist@^1.2.5:
|
1642 |
version "1.2.5"
|
1643 |
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
|
1644 |
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
|
1645 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1646 |
ms@2.1.2:
|
1647 |
version "2.1.2"
|
1648 |
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
|
1649 |
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
|
1650 |
|
1651 |
+
nanocolors@^0.1.5:
|
1652 |
+
version "0.1.12"
|
1653 |
+
resolved "https://registry.yarnpkg.com/nanocolors/-/nanocolors-0.1.12.tgz#8577482c58cbd7b5bb1681db4cf48f11a87fd5f6"
|
1654 |
+
integrity sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1655 |
|
1656 |
+
neo-async@^2.6.2:
|
1657 |
version "2.6.2"
|
1658 |
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
|
1659 |
integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
|
1660 |
|
1661 |
+
node-releases@^1.1.76:
|
1662 |
+
version "1.1.76"
|
1663 |
+
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.76.tgz#df245b062b0cafbd5282ab6792f7dccc2d97f36e"
|
1664 |
+
integrity sha512-9/IECtNr8dXNmPWmFXepT0/7o5eolGesHUa3mtr0KlgnCvnZxwh2qensKL42JJY2vQKC3nIBXetFAqR+PW1CmA==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1665 |
|
1666 |
+
npm-run-path@^4.0.1:
|
1667 |
+
version "4.0.1"
|
1668 |
+
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
|
1669 |
+
integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
|
|
|
|
|
|
|
|
|
|
|
1670 |
dependencies:
|
1671 |
+
path-key "^3.0.0"
|
|
|
|
|
1672 |
|
1673 |
object-keys@^1.0.12, object-keys@^1.1.1:
|
1674 |
version "1.1.1"
|
1675 |
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
|
1676 |
integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
|
1677 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1678 |
object.assign@^4.1.0:
|
1679 |
version "4.1.2"
|
1680 |
resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940"
|
1685 |
has-symbols "^1.0.1"
|
1686 |
object-keys "^1.1.1"
|
1687 |
|
1688 |
+
onetime@^5.1.2:
|
1689 |
+
version "5.1.2"
|
1690 |
+
resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
|
1691 |
+
integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1692 |
dependencies:
|
1693 |
+
mimic-fn "^2.1.0"
|
|
|
|
|
|
|
|
|
|
|
1694 |
|
1695 |
+
p-limit@^2.2.0:
|
1696 |
version "2.3.0"
|
1697 |
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
|
1698 |
integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
|
1699 |
dependencies:
|
1700 |
p-try "^2.0.0"
|
1701 |
|
1702 |
+
p-limit@^3.1.0:
|
1703 |
+
version "3.1.0"
|
1704 |
+
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
|
1705 |
+
integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
|
1706 |
dependencies:
|
1707 |
+
yocto-queue "^0.1.0"
|
1708 |
|
1709 |
p-locate@^4.1.0:
|
1710 |
version "4.1.0"
|
1718 |
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
|
1719 |
integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
|
1720 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1721 |
path-exists@^4.0.0:
|
1722 |
version "4.0.0"
|
1723 |
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
|
1724 |
integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
|
1725 |
|
1726 |
+
path-key@^3.0.0, path-key@^3.1.0:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1727 |
version "3.1.1"
|
1728 |
+
resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
|
1729 |
+
integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1730 |
|
1731 |
+
path-parse@^1.0.6:
|
1732 |
+
version "1.0.7"
|
1733 |
+
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
|
1734 |
+
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1735 |
|
1736 |
+
pkg-dir@^4.1.0, pkg-dir@^4.2.0:
|
1737 |
version "4.2.0"
|
1738 |
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
|
1739 |
integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
|
1740 |
dependencies:
|
1741 |
find-up "^4.0.0"
|
1742 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1743 |
punycode@^2.1.0:
|
1744 |
version "2.1.1"
|
1745 |
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
|
1746 |
integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
|
1747 |
|
1748 |
+
randombytes@^2.1.0:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1749 |
version "2.1.0"
|
1750 |
resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
|
1751 |
integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
|
1752 |
dependencies:
|
1753 |
safe-buffer "^5.1.0"
|
1754 |
|
1755 |
+
rechoir@^0.7.0:
|
1756 |
+
version "0.7.1"
|
1757 |
+
resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.1.tgz#9478a96a1ca135b5e88fc027f03ee92d6c645686"
|
1758 |
+
integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1759 |
dependencies:
|
1760 |
+
resolve "^1.9.0"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1761 |
|
1762 |
+
regenerate-unicode-properties@^9.0.0:
|
1763 |
+
version "9.0.0"
|
1764 |
+
resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz#54d09c7115e1f53dc2314a974b32c1c344efe326"
|
1765 |
+
integrity sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA==
|
1766 |
dependencies:
|
1767 |
+
regenerate "^1.4.2"
|
|
|
|
|
1768 |
|
1769 |
+
regenerate@^1.4.2:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1770 |
version "1.4.2"
|
1771 |
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
|
1772 |
integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
|
1777 |
integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==
|
1778 |
|
1779 |
regenerator-runtime@^0.13.4:
|
1780 |
+
version "0.13.9"
|
1781 |
+
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52"
|
1782 |
+
integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==
|
1783 |
|
1784 |
regenerator-transform@^0.14.2:
|
1785 |
version "0.14.5"
|
1788 |
dependencies:
|
1789 |
"@babel/runtime" "^7.8.4"
|
1790 |
|
1791 |
+
regexpu-core@^4.7.1:
|
1792 |
+
version "4.8.0"
|
1793 |
+
resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.8.0.tgz#e5605ba361b67b1718478501327502f4479a98f0"
|
1794 |
+
integrity sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg==
|
1795 |
dependencies:
|
1796 |
+
regenerate "^1.4.2"
|
1797 |
+
regenerate-unicode-properties "^9.0.0"
|
1798 |
+
regjsgen "^0.5.2"
|
1799 |
+
regjsparser "^0.7.0"
|
1800 |
+
unicode-match-property-ecmascript "^2.0.0"
|
1801 |
+
unicode-match-property-value-ecmascript "^2.0.0"
|
1802 |
|
1803 |
+
regjsgen@^0.5.2:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1804 |
version "0.5.2"
|
1805 |
resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733"
|
1806 |
integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==
|
1807 |
|
1808 |
+
regjsparser@^0.7.0:
|
1809 |
+
version "0.7.0"
|
1810 |
+
resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.7.0.tgz#a6b667b54c885e18b52554cb4960ef71187e9968"
|
1811 |
+
integrity sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ==
|
1812 |
dependencies:
|
1813 |
jsesc "~0.5.0"
|
1814 |
|
1815 |
+
resolve-cwd@^3.0.0:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1816 |
version "3.0.0"
|
1817 |
+
resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d"
|
1818 |
+
integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==
|
1819 |
+
dependencies:
|
1820 |
+
resolve-from "^5.0.0"
|
1821 |
|
1822 |
+
resolve-from@^5.0.0:
|
1823 |
+
version "5.0.0"
|
1824 |
+
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
|
1825 |
+
integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
|
1826 |
|
1827 |
+
resolve@^1.14.2, resolve@^1.9.0:
|
1828 |
version "1.20.0"
|
1829 |
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
|
1830 |
integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==
|
1832 |
is-core-module "^2.2.0"
|
1833 |
path-parse "^1.0.6"
|
1834 |
|
1835 |
+
safe-buffer@^5.1.0:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1836 |
version "5.2.1"
|
1837 |
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
|
1838 |
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
|
1839 |
|
1840 |
+
safe-buffer@~5.1.1:
|
1841 |
version "5.1.2"
|
1842 |
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
|
1843 |
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
|
1844 |
|
1845 |
+
schema-utils@^2.6.5:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1846 |
version "2.7.1"
|
1847 |
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7"
|
1848 |
integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==
|
1851 |
ajv "^6.12.4"
|
1852 |
ajv-keywords "^3.5.2"
|
1853 |
|
1854 |
+
schema-utils@^3.0.0, schema-utils@^3.1.0, schema-utils@^3.1.1:
|
1855 |
+
version "3.1.1"
|
1856 |
+
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281"
|
1857 |
+
integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==
|
1858 |
+
dependencies:
|
1859 |
+
"@types/json-schema" "^7.0.8"
|
1860 |
+
ajv "^6.12.5"
|
1861 |
+
ajv-keywords "^3.5.2"
|
1862 |
+
|
1863 |
semver@7.0.0:
|
1864 |
version "7.0.0"
|
1865 |
resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
|
1866 |
integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
|
1867 |
|
|
|
|
|
|
|
|
|
|
|
1868 |
semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0:
|
1869 |
version "6.3.0"
|
1870 |
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
|
1871 |
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
|
1872 |
|
1873 |
+
serialize-javascript@^6.0.0:
|
1874 |
+
version "6.0.0"
|
1875 |
+
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8"
|
1876 |
+
integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==
|
1877 |
dependencies:
|
1878 |
randombytes "^2.1.0"
|
1879 |
|
1880 |
+
shallow-clone@^3.0.0:
|
1881 |
+
version "3.0.1"
|
1882 |
+
resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3"
|
1883 |
+
integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1884 |
dependencies:
|
1885 |
+
kind-of "^6.0.2"
|
|
|
|
|
|
|
|
|
|
|
1886 |
|
1887 |
+
shebang-command@^2.0.0:
|
1888 |
+
version "2.0.0"
|
1889 |
+
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
|
1890 |
+
integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
|
1891 |
dependencies:
|
1892 |
+
shebang-regex "^3.0.0"
|
|
|
|
|
1893 |
|
1894 |
+
shebang-regex@^3.0.0:
|
1895 |
+
version "3.0.0"
|
1896 |
+
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
|
1897 |
+
integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1898 |
|
1899 |
+
signal-exit@^3.0.3:
|
1900 |
+
version "3.0.4"
|
1901 |
+
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.4.tgz#366a4684d175b9cab2081e3681fda3747b6c51d7"
|
1902 |
+
integrity sha512-rqYhcAnZ6d/vTPGghdrw7iumdcbXpsk1b8IG/rz+VWV51DM0p7XCtMoJ3qhPLIbp3tvyt3pKRbaaEMZYpHto8Q==
|
|
|
|
|
|
|
|
|
|
|
|
|
1903 |
|
1904 |
+
source-map-support@~0.5.20:
|
1905 |
+
version "0.5.20"
|
1906 |
+
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.20.tgz#12166089f8f5e5e8c56926b377633392dd2cb6c9"
|
1907 |
+
integrity sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==
|
1908 |
dependencies:
|
1909 |
buffer-from "^1.0.0"
|
1910 |
source-map "^0.6.0"
|
1911 |
|
1912 |
+
source-map@^0.5.0:
|
|
|
|
|
|
|
|
|
|
|
1913 |
version "0.5.7"
|
1914 |
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
|
1915 |
integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
|
1916 |
|
1917 |
+
source-map@^0.6.0, source-map@^0.6.1:
|
1918 |
version "0.6.1"
|
1919 |
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
|
1920 |
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
|
1921 |
|
1922 |
+
source-map@~0.7.2:
|
1923 |
+
version "0.7.3"
|
1924 |
+
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
|
1925 |
+
integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
|
|
|
|
|
1926 |
|
1927 |
+
strip-final-newline@^2.0.0:
|
1928 |
+
version "2.0.0"
|
1929 |
+
resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
|
1930 |
+
integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1931 |
|
1932 |
supports-color@^5.3.0:
|
1933 |
version "5.5.0"
|
1936 |
dependencies:
|
1937 |
has-flag "^3.0.0"
|
1938 |
|
1939 |
+
supports-color@^8.0.0:
|
1940 |
+
version "8.1.1"
|
1941 |
+
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
|
1942 |
+
integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
|
1943 |
dependencies:
|
1944 |
+
has-flag "^4.0.0"
|
1945 |
|
1946 |
+
tapable@^2.1.1, tapable@^2.2.0:
|
1947 |
+
version "2.2.1"
|
1948 |
+
resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0"
|
1949 |
+
integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==
|
1950 |
+
|
1951 |
+
terser-webpack-plugin@^5.1.3:
|
1952 |
+
version "5.2.4"
|
1953 |
+
resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.2.4.tgz#ad1be7639b1cbe3ea49fab995cbe7224b31747a1"
|
1954 |
+
integrity sha512-E2CkNMN+1cho04YpdANyRrn8CyN4yMy+WdFKZIySFZrGXZxJwJP6PMNGGc/Mcr6qygQHUUqRxnAPmi0M9f00XA==
|
1955 |
+
dependencies:
|
1956 |
+
jest-worker "^27.0.6"
|
1957 |
+
p-limit "^3.1.0"
|
1958 |
+
schema-utils "^3.1.1"
|
1959 |
+
serialize-javascript "^6.0.0"
|
|
|
1960 |
source-map "^0.6.1"
|
1961 |
+
terser "^5.7.2"
|
|
|
|
|
1962 |
|
1963 |
+
terser@^5.7.2:
|
1964 |
+
version "5.9.0"
|
1965 |
+
resolved "https://registry.yarnpkg.com/terser/-/terser-5.9.0.tgz#47d6e629a522963240f2b55fcaa3c99083d2c351"
|
1966 |
+
integrity sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ==
|
1967 |
dependencies:
|
1968 |
commander "^2.20.0"
|
1969 |
+
source-map "~0.7.2"
|
1970 |
+
source-map-support "~0.5.20"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1971 |
|
1972 |
to-fast-properties@^2.0.0:
|
1973 |
version "2.0.0"
|
1974 |
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
|
1975 |
integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
|
1976 |
|
1977 |
+
unicode-canonical-property-names-ecmascript@^2.0.0:
|
1978 |
+
version "2.0.0"
|
1979 |
+
resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc"
|
1980 |
+
integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1981 |
|
1982 |
+
unicode-match-property-ecmascript@^2.0.0:
|
1983 |
+
version "2.0.0"
|
1984 |
+
resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3"
|
1985 |
+
integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==
|
1986 |
dependencies:
|
1987 |
+
unicode-canonical-property-names-ecmascript "^2.0.0"
|
1988 |
+
unicode-property-aliases-ecmascript "^2.0.0"
|
1989 |
|
1990 |
+
unicode-match-property-value-ecmascript@^2.0.0:
|
1991 |
+
version "2.0.0"
|
1992 |
+
resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714"
|
1993 |
+
integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==
|
|
|
|
|
|
|
1994 |
|
1995 |
+
unicode-property-aliases-ecmascript@^2.0.0:
|
1996 |
+
version "2.0.0"
|
1997 |
+
resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8"
|
1998 |
+
integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==
|
1999 |
|
2000 |
uri-js@^4.2.2:
|
2001 |
version "4.4.1"
|
2004 |
dependencies:
|
2005 |
punycode "^2.1.0"
|
2006 |
|
2007 |
+
v8-compile-cache@^2.2.0:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008 |
version "2.3.0"
|
2009 |
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
|
2010 |
integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
|
2011 |
|
2012 |
+
watchpack@^2.2.0:
|
2013 |
+
version "2.2.0"
|
2014 |
+
resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.2.0.tgz#47d78f5415fe550ecd740f99fe2882323a58b1ce"
|
2015 |
+
integrity sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA==
|
|
|
|
|
|
|
|
|
|
|
2016 |
dependencies:
|
2017 |
+
glob-to-regexp "^0.4.1"
|
2018 |
+
graceful-fs "^4.1.2"
|
2019 |
|
2020 |
+
webpack-cli@^4.8.0:
|
2021 |
+
version "4.8.0"
|
2022 |
+
resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.8.0.tgz#5fc3c8b9401d3c8a43e2afceacfa8261962338d1"
|
2023 |
+
integrity sha512-+iBSWsX16uVna5aAYN6/wjhJy1q/GKk4KjKvfg90/6hykCTSgozbfz5iRgDTSJt/LgSbYxdBX3KBHeobIs+ZEw==
|
2024 |
dependencies:
|
2025 |
+
"@discoveryjs/json-ext" "^0.5.0"
|
2026 |
+
"@webpack-cli/configtest" "^1.0.4"
|
2027 |
+
"@webpack-cli/info" "^1.3.0"
|
2028 |
+
"@webpack-cli/serve" "^1.5.2"
|
2029 |
+
colorette "^1.2.1"
|
2030 |
+
commander "^7.0.0"
|
2031 |
+
execa "^5.0.0"
|
2032 |
+
fastest-levenshtein "^1.0.12"
|
2033 |
+
import-local "^3.0.2"
|
2034 |
+
interpret "^2.2.0"
|
2035 |
+
rechoir "^0.7.0"
|
2036 |
+
v8-compile-cache "^2.2.0"
|
2037 |
+
webpack-merge "^5.7.3"
|
2038 |
+
|
2039 |
+
webpack-merge@^5.7.3:
|
2040 |
+
version "5.8.0"
|
2041 |
+
resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.8.0.tgz#2b39dbf22af87776ad744c390223731d30a68f61"
|
2042 |
+
integrity sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==
|
2043 |
+
dependencies:
|
2044 |
+
clone-deep "^4.0.1"
|
2045 |
+
wildcard "^2.0.0"
|
2046 |
+
|
2047 |
+
webpack-sources@^3.2.0:
|
2048 |
+
version "3.2.1"
|
2049 |
+
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.1.tgz#251a7d9720d75ada1469ca07dbb62f3641a05b6d"
|
2050 |
+
integrity sha512-t6BMVLQ0AkjBOoRTZgqrWm7xbXMBzD+XDq2EZ96+vMfn3qKgsvdXZhbPZ4ElUOpdv4u+iiGe+w3+J75iy/bYGA==
|
2051 |
+
|
2052 |
+
webpack@^5.55.0:
|
2053 |
+
version "5.55.0"
|
2054 |
+
resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.55.0.tgz#77e4d90c6db6764623f91cb1549cdcda9b9f8a84"
|
2055 |
+
integrity sha512-/1LyoAG+4+YRt+RLN3H2cz4dcw8+iO/GwKhL54GQDmqONCi0ZISXZF6aCCrCRDJFK685h+RGLCZd61Y+SEqdWQ==
|
2056 |
+
dependencies:
|
2057 |
+
"@types/eslint-scope" "^3.7.0"
|
2058 |
+
"@types/estree" "^0.0.50"
|
2059 |
+
"@webassemblyjs/ast" "1.11.1"
|
2060 |
+
"@webassemblyjs/wasm-edit" "1.11.1"
|
2061 |
+
"@webassemblyjs/wasm-parser" "1.11.1"
|
2062 |
+
acorn "^8.4.1"
|
2063 |
+
acorn-import-assertions "^1.7.6"
|
2064 |
+
browserslist "^4.14.5"
|
|
|
|
|
|
|
2065 |
chrome-trace-event "^1.0.2"
|
2066 |
+
enhanced-resolve "^5.8.3"
|
2067 |
+
es-module-lexer "^0.9.0"
|
2068 |
+
eslint-scope "5.1.1"
|
2069 |
+
events "^3.2.0"
|
2070 |
+
glob-to-regexp "^0.4.1"
|
2071 |
+
graceful-fs "^4.2.4"
|
2072 |
json-parse-better-errors "^1.0.2"
|
2073 |
+
loader-runner "^4.2.0"
|
2074 |
+
mime-types "^2.1.27"
|
2075 |
+
neo-async "^2.6.2"
|
2076 |
+
schema-utils "^3.1.0"
|
2077 |
+
tapable "^2.1.1"
|
2078 |
+
terser-webpack-plugin "^5.1.3"
|
2079 |
+
watchpack "^2.2.0"
|
2080 |
+
webpack-sources "^3.2.0"
|
2081 |
+
|
2082 |
+
which@^2.0.1:
|
2083 |
+
version "2.0.2"
|
2084 |
+
resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
|
2085 |
+
integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2086 |
dependencies:
|
2087 |
isexe "^2.0.0"
|
2088 |
|
2089 |
+
wildcard@^2.0.0:
|
2090 |
+
version "2.0.0"
|
2091 |
+
resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec"
|
2092 |
+
integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2093 |
|
2094 |
+
yocto-queue@^0.1.0:
|
2095 |
+
version "0.1.0"
|
2096 |
+
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
|
2097 |
+
integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
modules/ppcp-webhooks/assets/css/status-page.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.ppcp-webhooks-table .error,.ppcp-webhooks-status-text .error{color:red;font-weight:bold}.ppcp-webhooks-table .success,.ppcp-webhooks-status-text .success{color:green;font-weight:bold}.ppcp-webhooks-table table{border-collapse:collapse}.ppcp-webhooks-table table th{border-bottom:1px solid #000}.ppcp-webhooks-table table td,.ppcp-webhooks-table table th{padding:10px 15px}.ppcp-webhooks-table table td:first-child{vertical-align:top;width:450px}.ppcp-webhooks-status-text{padding-top:4px}
|
modules/ppcp-webhooks/assets/js/status-page-style.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
(()=>{"use strict";var __webpack_modules__={249:(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__)=>{eval('/* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = (__webpack_require__.p + "css/status-page.css");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjQ5LmpzIiwibWFwcGluZ3MiOiJBQUFBLHNFQUFlLHFCQUF1Qix3QkFBd0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9wcGNwLXdlYmhvb2tzLy4vcmVzb3VyY2VzL2Nzcy9zdGF0dXMtcGFnZS5zY3NzPzdjOGEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgX193ZWJwYWNrX3B1YmxpY19wYXRoX18gKyBcImNzcy9zdGF0dXMtcGFnZS5jc3NcIjsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///249\n')}},__webpack_require__={};__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),(()=>{var e;__webpack_require__.g.importScripts&&(e=__webpack_require__.g.location+"");var _=__webpack_require__.g.document;if(!e&&_&&(_.currentScript&&(e=_.currentScript.src),!e)){var r=_.getElementsByTagName("script");r.length&&(e=r[r.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),__webpack_require__.p=e+"../"})();var __webpack_exports__={};__webpack_modules__[249](0,__webpack_exports__,__webpack_require__)})();
|
modules/ppcp-webhooks/assets/js/status-page.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
(()=>{var __webpack_modules__={281:()=>{eval("document.addEventListener('DOMContentLoaded', () => {\n const resubscribeBtn = jQuery(PayPalCommerceGatewayWebhooksStatus.resubscribe.button);\n resubscribeBtn.click(async () => {\n resubscribeBtn.prop('disabled', true);\n const response = await fetch(PayPalCommerceGatewayWebhooksStatus.resubscribe.endpoint, {\n method: 'POST',\n headers: {\n 'content-type': 'application/json'\n },\n body: JSON.stringify({\n nonce: PayPalCommerceGatewayWebhooksStatus.resubscribe.nonce\n })\n });\n\n const reportError = error => {\n const msg = PayPalCommerceGatewayWebhooksStatus.resubscribe.failureMessage + ' ' + error;\n alert(msg);\n };\n\n if (!response.ok) {\n try {\n const result = await response.json();\n reportError(result.data);\n } catch (exc) {\n console.error(exc);\n reportError(response.status);\n }\n }\n\n window.location.reload();\n });\n\n function sleep(ms) {\n return new Promise(resolve => setTimeout(resolve, ms));\n }\n\n const simulateBtn = jQuery(PayPalCommerceGatewayWebhooksStatus.simulation.start.button);\n simulateBtn.click(async () => {\n simulateBtn.prop('disabled', true);\n\n try {\n const response = await fetch(PayPalCommerceGatewayWebhooksStatus.simulation.start.endpoint, {\n method: 'POST',\n headers: {\n 'content-type': 'application/json'\n },\n body: JSON.stringify({\n nonce: PayPalCommerceGatewayWebhooksStatus.simulation.start.nonce\n })\n });\n\n const reportError = error => {\n const msg = PayPalCommerceGatewayWebhooksStatus.simulation.start.failureMessage + ' ' + error;\n alert(msg);\n };\n\n if (!response.ok) {\n try {\n const result = await response.json();\n reportError(result.data);\n } catch (exc) {\n console.error(exc);\n reportError(response.status);\n }\n\n return;\n }\n\n const showStatus = html => {\n let statusBlock = simulateBtn.siblings('.ppcp-webhooks-status-text');\n\n if (!statusBlock.length) {\n statusBlock = jQuery('<div class=\"ppcp-webhooks-status-text\"></div>').insertAfter(simulateBtn);\n }\n\n statusBlock.html(html);\n };\n\n simulateBtn.siblings('.description').hide();\n showStatus(PayPalCommerceGatewayWebhooksStatus.simulation.state.waitingMessage + '<span class=\"spinner is-active\" style=\"float: none;\"></span>');\n const delay = 2000;\n const retriesBeforeErrorMessage = 15;\n const maxRetries = 30;\n\n for (let i = 0; i < maxRetries; i++) {\n await sleep(delay);\n const stateResponse = await fetch(PayPalCommerceGatewayWebhooksStatus.simulation.state.endpoint, {\n method: 'GET'\n });\n\n try {\n const result = await stateResponse.json();\n\n if (!stateResponse.ok || !result.success) {\n console.error('Simulation state query failed: ' + result.data);\n continue;\n }\n\n const state = result.data.state;\n\n if (state === PayPalCommerceGatewayWebhooksStatus.simulation.state.successState) {\n showStatus('<span class=\"success\">' + '✔️ ' + PayPalCommerceGatewayWebhooksStatus.simulation.state.successMessage + '</span>');\n return;\n }\n } catch (exc) {\n console.error(exc);\n }\n\n if (i === retriesBeforeErrorMessage) {\n showStatus('<span class=\"error\">' + PayPalCommerceGatewayWebhooksStatus.simulation.state.tooLongDelayMessage + '</span>');\n }\n }\n } finally {\n simulateBtn.prop('disabled', false);\n }\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9wcGNwLXdlYmhvb2tzLy4vcmVzb3VyY2VzL2pzL3N0YXR1cy1wYWdlLmpzP2VhZTQiXSwibmFtZXMiOlsiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVzdWJzY3JpYmVCdG4iLCJqUXVlcnkiLCJQYXlQYWxDb21tZXJjZUdhdGV3YXlXZWJob29rc1N0YXR1cyIsInJlc3Vic2NyaWJlIiwiYnV0dG9uIiwiY2xpY2siLCJwcm9wIiwicmVzcG9uc2UiLCJmZXRjaCIsImVuZHBvaW50IiwibWV0aG9kIiwiaGVhZGVycyIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5Iiwibm9uY2UiLCJyZXBvcnRFcnJvciIsImVycm9yIiwibXNnIiwiZmFpbHVyZU1lc3NhZ2UiLCJhbGVydCIsIm9rIiwicmVzdWx0IiwianNvbiIsImRhdGEiLCJleGMiLCJjb25zb2xlIiwic3RhdHVzIiwid2luZG93IiwibG9jYXRpb24iLCJyZWxvYWQiLCJzbGVlcCIsIm1zIiwiUHJvbWlzZSIsInJlc29sdmUiLCJzZXRUaW1lb3V0Iiwic2ltdWxhdGVCdG4iLCJzaW11bGF0aW9uIiwic3RhcnQiLCJzaG93U3RhdHVzIiwiaHRtbCIsInN0YXR1c0Jsb2NrIiwic2libGluZ3MiLCJsZW5ndGgiLCJpbnNlcnRBZnRlciIsImhpZGUiLCJzdGF0ZSIsIndhaXRpbmdNZXNzYWdlIiwiZGVsYXkiLCJyZXRyaWVzQmVmb3JlRXJyb3JNZXNzYWdlIiwibWF4UmV0cmllcyIsImkiLCJzdGF0ZVJlc3BvbnNlIiwic3VjY2VzcyIsInN1Y2Nlc3NTdGF0ZSIsInN1Y2Nlc3NNZXNzYWdlIiwidG9vTG9uZ0RlbGF5TWVzc2FnZSJdLCJtYXBwaW5ncyI6IkFBQUFBLFFBQVEsQ0FBQ0MsZ0JBQVQsQ0FDSSxrQkFESixFQUVJLE1BQU07QUFDRixRQUFNQyxjQUFjLEdBQUdDLE1BQU0sQ0FBQ0MsbUNBQW1DLENBQUNDLFdBQXBDLENBQWdEQyxNQUFqRCxDQUE3QjtBQUVBSixFQUFBQSxj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YUFBYSxDQUFDL0IsRUFBZixJQUFxQixDQUFDQyxNQUFNLENBQUMrQixPQUFqQyxFQUEwQztBQUN0QzNCLFlBQUFBLE9BQU8sQ0FBQ1QsS0FBUixDQUFjLG9DQUFvQ0ssTUFBTSxDQUFDRSxJQUF6RDtBQUNBO0FBQ0g7O0FBRUQsZ0JBQU1zQixLQUFLLEdBQUd4QixNQUFNLENBQUNFLElBQVAsQ0FBWXNCLEtBQTFCOztBQUNBLGNBQUlBLEtBQUssS0FBSzVDLG1DQUFtQyxDQUFDbUMsVUFBcEMsQ0FBK0NTLEtBQS9DLENBQXFEUSxZQUFuRSxFQUFpRjtBQUM3RWYsWUFBQUEsVUFBVSxDQUNOLDJCQUNBLEtBREEsR0FFQXJDLG1DQUFtQyxDQUFDbUMsVUFBcEMsQ0FBK0NTLEtBQS9DLENBQXFEUyxjQUZyRCxHQUdBLFNBSk0sQ0FBVjtBQU1BO0FBQ0g7QUFDSixTQWxCRCxDQWtCRSxPQUFPOUIsR0FBUCxFQUFZO0FBQ1ZDLFVBQUFBLE9BQU8sQ0FBQ1QsS0FBUixDQUFjUSxHQUFkO0FBQ0g7O0FBRUQsWUFBSTBCLENBQUMsS0FBS0YseUJBQVYsRUFBcUM7QUFDakNWLFVBQUFBLFVBQVUsQ0FDTix5QkFDQXJDLG1DQUFtQyxDQUFDbUMsVUFBcEMsQ0FBK0NTLEtBQS9DLENBQXFEVSxtQkFEckQsR0FFQSxTQUhNLENBQVY7QUFLSDtBQUNKO0FBRUosS0E3RkQsU0E2RlU7QUFDTnBCLE1BQUFBLFdBQVcsQ0FBQzlCLElBQVosQ0FBaUIsVUFBakIsRUFBNkIsS0FBN0I7QUFDSDtBQUNKLEdBbkdEO0FBb0dILENBbEpMIiwic291cmNlc0NvbnRlbnQiOlsiZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAnRE9NQ29udGVudExvYWRlZCcsXG4gICAgKCkgPT4ge1xuICAgICAgICBjb25zdCByZXN1YnNjcmliZUJ0biA9IGpRdWVyeShQYXlQYWxDb21tZXJjZUdhdGV3YXlXZWJob29rc1N0YXR1cy5yZXN1YnNjcmliZS5idXR0b24pO1xuXG4gICAgICAgIHJlc3Vic2NyaWJlQnRuLmNsaWNrKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIHJlc3Vic2NyaWJlQnRuLnByb3AoJ2Rpc2FibGVkJywgdHJ1ZSk7XG5cbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goXG4gICAgICAgICAgICAgICAgUGF5UGFsQ29tbWVyY2VHYXRld2F5V2ViaG9va3NTdGF0dXMucmVzdWJzY3JpYmUuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub25jZTogUGF5UGFsQ29tbWVyY2VHYXRld2F5V2ViaG9va3NTdGF0dXMucmVzdWJzY3JpYmUubm9uY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBjb25zdCByZXBvcnRFcnJvciA9IGVycm9yID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBtc2cgPSBQYXlQYWxDb21tZXJjZUdhdGV3YXlXZWJob29rc1N0YXR1cy5yZXN1YnNjcmliZS5mYWlsdXJlTWVzc2FnZSArICcgJyArIGVycm9yO1xuICAgICAgICAgICAgICAgIGFsZXJ0KG1zZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yKHJlc3VsdC5kYXRhKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChleGMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihleGMpO1xuICAgICAgICAgICAgICAgICAgICByZXBvcnRFcnJvcihyZXNwb25zZS5zdGF0dXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBmdW5jdGlvbiBzbGVlcChtcykge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCBtcykpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2ltdWxhdGVCdG4gPSBqUXVlcnkoUGF5UGFsQ29tbWVyY2VHYXRld2F5V2ViaG9va3NTdGF0dXMuc2ltdWxhdGlvbi5zdGFydC5idXR0b24pO1xuICAgICAgICBzaW11bGF0ZUJ0bi5jbGljayhhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBzaW11bGF0ZUJ0bi5wcm9wKCdkaXNhYmxlZCcsIHRydWUpO1xuXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goXG4gICAgICAgICAgICAgICAgICAgIFBheVBhbENvbW1lcmNlR2F0ZXdheVdlYmhvb2tzU3RhdHVzLnNpbXVsYXRpb24uc3RhcnQuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbmNlOiBQYXlQYWxDb21tZXJjZUdhdGV3YXlXZWJob29rc1N0YXR1cy5zaW11bGF0aW9uLnN0YXJ0Lm5vbmNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCByZXBvcnRFcnJvciA9IGVycm9yID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbXNnID0gUGF5UGFsQ29tbWVyY2VHYXRld2F5V2ViaG9va3NTdGF0dXMuc2ltdWxhdGlvbi5zdGFydC5mYWlsdXJlTWVzc2FnZSArICcgJyArIGVycm9yO1xuICAgICAgICAgICAgICAgICAgICBhbGVydChtc2cpO1xuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXBvcnRFcnJvcihyZXN1bHQuZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGV4Yykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihleGMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0RXJyb3IocmVzcG9uc2Uuc3RhdHVzKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBzaG93U3RhdHVzID0gaHRtbCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBzdGF0dXNCbG9jayA9IHNpbXVsYXRlQnRuLnNpYmxpbmdzKCcucHBjcC13ZWJob29rcy1zdGF0dXMtdGV4dCcpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXN0YXR1c0Jsb2NrLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzQmxvY2sgPSBqUXVlcnkoJzxkaXYgY2xhc3M9XCJwcGNwLXdlYmhvb2tzLXN0YXR1cy10ZXh0XCI+PC9kaXY+JykuaW5zZXJ0QWZ0ZXIoc2ltdWxhdGVCdG4pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1c0Jsb2NrLmh0bWwoaHRtbCk7XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHNpbXVsYXRlQnRuLnNpYmxpbmdzKCcuZGVzY3JpcHRpb24nKS5oaWRlKCk7XG5cbiAgICAgICAgICAgICAgICBzaG93U3RhdHVzKFxuICAgICAgICAgICAgICAgICAgICBQYXlQYWxDb21tZXJjZUdhdGV3YXlXZWJob29rc1N0YXR1cy5zaW11bGF0aW9uLnN0YXRlLndhaXRpbmdNZXNzYWdlICtcbiAgICAgICAgICAgICAgICAgICAgJzxzcGFuIGNsYXNzPVwic3Bpbm5lciBpcy1hY3RpdmVcIiBzdHlsZT1cImZsb2F0OiBub25lO1wiPjwvc3Bhbj4nXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGRlbGF5ID0gMjAwMDtcbiAgICAgICAgICAgICAgICBjb25zdCByZXRyaWVzQmVmb3JlRXJyb3JNZXNzYWdlID0gMTU7XG4gICAgICAgICAgICAgICAgY29uc3QgbWF4UmV0cmllcyA9IDMwO1xuXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXhSZXRyaWVzOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgc2xlZXAoZGVsYXkpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0YXRlUmVzcG9uc2UgPSBhd2FpdCBmZXRjaChcbiAgICAgICAgICAgICAgICAgICAgICAgIFBheVBhbENvbW1lcmNlR2F0ZXdheVdlYmhvb2tzU3RhdHVzLnNpbXVsYXRpb24uc3RhdGUuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc3RhdGVSZXNwb25zZS5qc29uKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc3RhdGVSZXNwb25zZS5vayB8fCAhcmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdTaW11bGF0aW9uIHN0YXRlIHF1ZXJ5IGZhaWxlZDogJyArIHJlc3VsdC5kYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhdGUgPSByZXN1bHQuZGF0YS5zdGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZSA9PT0gUGF5UGFsQ29tbWVyY2VHYXRld2F5V2ViaG9va3NTdGF0dXMuc2ltdWxhdGlvbi5zdGF0ZS5zdWNjZXNzU3RhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93U3RhdHVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPHNwYW4gY2xhc3M9XCJzdWNjZXNzXCI+JyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICfinJTvuI8gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBheVBhbENvbW1lcmNlR2F0ZXdheVdlYmhvb2tzU3RhdHVzLnNpbXVsYXRpb24uc3RhdGUuc3VjY2Vzc01lc3NhZ2UgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9zcGFuPidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXhjKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGV4Yyk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoaSA9PT0gcmV0cmllc0JlZm9yZUVycm9yTWVzc2FnZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1N0YXR1cyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPHNwYW4gY2xhc3M9XCJlcnJvclwiPicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBheVBhbENvbW1lcmNlR2F0ZXdheVdlYmhvb2tzU3RhdHVzLnNpbXVsYXRpb24uc3RhdGUudG9vTG9uZ0RlbGF5TWVzc2FnZSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvc3Bhbj4nXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICAgIHNpbXVsYXRlQnRuLnByb3AoJ2Rpc2FibGVkJywgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4pO1xuIl0sImZpbGUiOiIyODEuanMiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///281\n")}},__webpack_exports__={};__webpack_modules__[281]()})();
|
modules/ppcp-webhooks/extensions.php
CHANGED
@@ -9,4 +9,61 @@ declare(strict_types=1);
|
|
9 |
|
10 |
namespace WooCommerce\PayPalCommerce\Webhooks;
|
11 |
|
12 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
|
10 |
namespace WooCommerce\PayPalCommerce\Webhooks;
|
11 |
|
12 |
+
use WooCommerce\PayPalCommerce\Onboarding\State;
|
13 |
+
use WooCommerce\PayPalCommerce\Webhooks\Status\WebhooksStatusPage;
|
14 |
+
|
15 |
+
return array(
|
16 |
+
'wcgateway.settings.fields' => static function ( $container, array $fields ): array {
|
17 |
+
$status_page_fields = array(
|
18 |
+
'webhooks_list' => array(
|
19 |
+
'title' => __( 'Subscribed webhooks', 'woocommerce-paypal-payments' ),
|
20 |
+
'type' => 'ppcp-table',
|
21 |
+
'screens' => array(
|
22 |
+
State::STATE_PROGRESSIVE,
|
23 |
+
State::STATE_ONBOARDED,
|
24 |
+
),
|
25 |
+
'requirements' => array(),
|
26 |
+
'gateway' => WebhooksStatusPage::ID,
|
27 |
+
'classes' => array( 'ppcp-webhooks-table' ),
|
28 |
+
'value' => function () use ( $container ) : array {
|
29 |
+
return $container->get( 'webhook.status.registered-webhooks-data' );
|
30 |
+
},
|
31 |
+
),
|
32 |
+
'webhooks_resubscribe' => array(
|
33 |
+
'title' => __( 'Resubscribe webhooks', 'woocommerce-paypal-payments' ),
|
34 |
+
'type' => 'ppcp-text',
|
35 |
+
'text' => '<button type="button" class="button ppcp-webhooks-resubscribe">' . esc_html__( 'Resubscribe', 'woocommerce-paypal-payments' ) . '</button>',
|
36 |
+
'screens' => array(
|
37 |
+
State::STATE_PROGRESSIVE,
|
38 |
+
State::STATE_ONBOARDED,
|
39 |
+
),
|
40 |
+
'requirements' => array(),
|
41 |
+
'gateway' => WebhooksStatusPage::ID,
|
42 |
+
'description' => __( 'Click to remove the current webhook subscription and subscribe again, for example, if the website domain or URL structure changed.', 'woocommerce-paypal-payments' ),
|
43 |
+
),
|
44 |
+
);
|
45 |
+
|
46 |
+
$is_registered = $container->get( 'webhook.is-registered' );
|
47 |
+
if ( $is_registered ) {
|
48 |
+
$status_page_fields = array_merge(
|
49 |
+
$status_page_fields,
|
50 |
+
array(
|
51 |
+
'webhooks_simulate' => array(
|
52 |
+
'title' => __( 'Webhook simulation', 'woocommerce-paypal-payments' ),
|
53 |
+
'type' => 'ppcp-text',
|
54 |
+
'text' => '<button type="button" class="button ppcp-webhooks-simulate">' . esc_html__( 'Simulate', 'woocommerce-paypal-payments' ) . '</button>',
|
55 |
+
'screens' => array(
|
56 |
+
State::STATE_PROGRESSIVE,
|
57 |
+
State::STATE_ONBOARDED,
|
58 |
+
),
|
59 |
+
'requirements' => array(),
|
60 |
+
'gateway' => WebhooksStatusPage::ID,
|
61 |
+
'description' => __( 'Click to request a sample webhook payload from PayPal, allowing to check that your server can successfully receive webhooks.', 'woocommerce-paypal-payments' ),
|
62 |
+
),
|
63 |
+
)
|
64 |
+
);
|
65 |
+
}
|
66 |
+
|
67 |
+
return array_merge( $fields, $status_page_fields );
|
68 |
+
},
|
69 |
+
);
|
modules/ppcp-webhooks/package.json
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "ppcp-webhooks",
|
3 |
+
"version": "1.0.0",
|
4 |
+
"license": "GPL-3.0-or-later",
|
5 |
+
"main": "resources/js/status-page.js",
|
6 |
+
"devDependencies": {
|
7 |
+
"@babel/core": "^7.9.0",
|
8 |
+
"@babel/preset-env": "^7.9.5",
|
9 |
+
"babel-loader": "^8.1.0",
|
10 |
+
"babel-plugin-transform-object-rest-spread": "^6.26.0",
|
11 |
+
"cross-env": "^7.0.3",
|
12 |
+
"file-loader": "^6.2.0",
|
13 |
+
"sass": "^1.42.1",
|
14 |
+
"sass-loader": "^12.1.0",
|
15 |
+
"webpack": "^5.55.0",
|
16 |
+
"webpack-cli": "^4.8.0"
|
17 |
+
},
|
18 |
+
"scripts": {
|
19 |
+
"build": "cross-env BABEL_ENV=default NODE_ENV=production webpack",
|
20 |
+
"watch": "cross-env BABEL_ENV=default NODE_ENV=production webpack --watch",
|
21 |
+
"dev": "cross-env BABEL_ENV=default webpack --watch"
|
22 |
+
}
|
23 |
+
}
|
modules/ppcp-webhooks/resources/css/status-page.scss
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.ppcp-webhooks-table, .ppcp-webhooks-status-text {
|
2 |
+
.error {
|
3 |
+
color: red;
|
4 |
+
font-weight: bold;
|
5 |
+
}
|
6 |
+
|
7 |
+
.success {
|
8 |
+
color: green;
|
9 |
+
font-weight: bold;
|
10 |
+
}
|
11 |
+
}
|
12 |
+
|
13 |
+
.ppcp-webhooks-table {
|
14 |
+
table {
|
15 |
+
border-collapse: collapse;
|
16 |
+
|
17 |
+
th {
|
18 |
+
border-bottom: 1px solid black;
|
19 |
+
}
|
20 |
+
|
21 |
+
td, th {
|
22 |
+
padding: 10px 15px;
|
23 |
+
}
|
24 |
+
|
25 |
+
td:first-child {
|
26 |
+
vertical-align: top;
|
27 |
+
width: 450px;
|
28 |
+
}
|
29 |
+
}
|
30 |
+
}
|
31 |
+
|
32 |
+
.ppcp-webhooks-status-text {
|
33 |
+
padding-top: 4px;
|
34 |
+
}
|
modules/ppcp-webhooks/resources/js/status-page.js
ADDED
@@ -0,0 +1,148 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
document.addEventListener(
|
2 |
+
'DOMContentLoaded',
|
3 |
+
() => {
|
4 |
+
const resubscribeBtn = jQuery(PayPalCommerceGatewayWebhooksStatus.resubscribe.button);
|
5 |
+
|
6 |
+
resubscribeBtn.click(async () => {
|
7 |
+
resubscribeBtn.prop('disabled', true);
|
8 |
+
|
9 |
+
const response = await fetch(
|
10 |
+
PayPalCommerceGatewayWebhooksStatus.resubscribe.endpoint,
|
11 |
+
{
|
12 |
+
method: 'POST',
|
13 |
+
headers: {
|
14 |
+
'content-type': 'application/json'
|
15 |
+
},
|
16 |
+
body: JSON.stringify(
|
17 |
+
{
|
18 |
+
nonce: PayPalCommerceGatewayWebhooksStatus.resubscribe.nonce,
|
19 |
+
}
|
20 |
+
)
|
21 |
+
}
|
22 |
+
);
|
23 |
+
|
24 |
+
const reportError = error => {
|
25 |
+
const msg = PayPalCommerceGatewayWebhooksStatus.resubscribe.failureMessage + ' ' + error;
|
26 |
+
alert(msg);
|
27 |
+
}
|
28 |
+
|
29 |
+
if (!response.ok) {
|
30 |
+
try {
|
31 |
+
const result = await response.json();
|
32 |
+
reportError(result.data);
|
33 |
+
} catch (exc) {
|
34 |
+
console.error(exc);
|
35 |
+
reportError(response.status);
|
36 |
+
}
|
37 |
+
}
|
38 |
+
|
39 |
+
window.location.reload();
|
40 |
+
});
|
41 |
+
|
42 |
+
function sleep(ms) {
|
43 |
+
return new Promise(resolve => setTimeout(resolve, ms));
|
44 |
+
}
|
45 |
+
|
46 |
+
const simulateBtn = jQuery(PayPalCommerceGatewayWebhooksStatus.simulation.start.button);
|
47 |
+
simulateBtn.click(async () => {
|
48 |
+
simulateBtn.prop('disabled', true);
|
49 |
+
|
50 |
+
try {
|
51 |
+
const response = await fetch(
|
52 |
+
PayPalCommerceGatewayWebhooksStatus.simulation.start.endpoint,
|
53 |
+
{
|
54 |
+
method: 'POST',
|
55 |
+
headers: {
|
56 |
+
'content-type': 'application/json'
|
57 |
+
},
|
58 |
+
body: JSON.stringify(
|
59 |
+
{
|
60 |
+
nonce: PayPalCommerceGatewayWebhooksStatus.simulation.start.nonce,
|
61 |
+
}
|
62 |
+
)
|
63 |
+
}
|
64 |
+
);
|
65 |
+
|
66 |
+
const reportError = error => {
|
67 |
+
const msg = PayPalCommerceGatewayWebhooksStatus.simulation.start.failureMessage + ' ' + error;
|
68 |
+
alert(msg);
|
69 |
+
};
|
70 |
+
|
71 |
+
if (!response.ok) {
|
72 |
+
try {
|
73 |
+
const result = await response.json();
|
74 |
+
reportError(result.data);
|
75 |
+
} catch (exc) {
|
76 |
+
console.error(exc);
|
77 |
+
reportError(response.status);
|
78 |
+
}
|
79 |
+
|
80 |
+
return;
|
81 |
+
}
|
82 |
+
|
83 |
+
const showStatus = html => {
|
84 |
+
let statusBlock = simulateBtn.siblings('.ppcp-webhooks-status-text');
|
85 |
+
if (!statusBlock.length) {
|
86 |
+
statusBlock = jQuery('<div class="ppcp-webhooks-status-text"></div>').insertAfter(simulateBtn);
|
87 |
+
}
|
88 |
+
statusBlock.html(html);
|
89 |
+
};
|
90 |
+
|
91 |
+
simulateBtn.siblings('.description').hide();
|
92 |
+
|
93 |
+
showStatus(
|
94 |
+
PayPalCommerceGatewayWebhooksStatus.simulation.state.waitingMessage +
|
95 |
+
'<span class="spinner is-active" style="float: none;"></span>'
|
96 |
+
);
|
97 |
+
|
98 |
+
const delay = 2000;
|
99 |
+
const retriesBeforeErrorMessage = 15;
|
100 |
+
const maxRetries = 30;
|
101 |
+
|
102 |
+
for (let i = 0; i < maxRetries; i++) {
|
103 |
+
await sleep(delay);
|
104 |
+
|
105 |
+
const stateResponse = await fetch(
|
106 |
+
PayPalCommerceGatewayWebhooksStatus.simulation.state.endpoint,
|
107 |
+
{
|
108 |
+
method: 'GET',
|
109 |
+
}
|
110 |
+
);
|
111 |
+
|
112 |
+
try {
|
113 |
+
const result = await stateResponse.json();
|
114 |
+
|
115 |
+
if (!stateResponse.ok || !result.success) {
|
116 |
+
console.error('Simulation state query failed: ' + result.data);
|
117 |
+
continue;
|
118 |
+
}
|
119 |
+
|
120 |
+
const state = result.data.state;
|
121 |
+
if (state === PayPalCommerceGatewayWebhooksStatus.simulation.state.successState) {
|
122 |
+
showStatus(
|
123 |
+
'<span class="success">' +
|
124 |
+
'✔️ ' +
|
125 |
+
PayPalCommerceGatewayWebhooksStatus.simulation.state.successMessage +
|
126 |
+
'</span>'
|
127 |
+
);
|
128 |
+
return;
|
129 |
+
}
|
130 |
+
} catch (exc) {
|
131 |
+
console.error(exc);
|
132 |
+
}
|
133 |
+
|
134 |
+
if (i === retriesBeforeErrorMessage) {
|
135 |
+
showStatus(
|
136 |
+
'<span class="error">' +
|
137 |
+
PayPalCommerceGatewayWebhooksStatus.simulation.state.tooLongDelayMessage +
|
138 |
+
'</span>'
|
139 |
+
);
|
140 |
+
}
|
141 |
+
}
|
142 |
+
|
143 |
+
} finally {
|
144 |
+
simulateBtn.prop('disabled', false);
|
145 |
+
}
|
146 |
+
});
|
147 |
+
}
|
148 |
+
);
|
modules/ppcp-webhooks/services.php
CHANGED
@@ -9,41 +9,57 @@ declare(strict_types=1);
|
|
9 |
|
10 |
namespace WooCommerce\PayPalCommerce\Webhooks;
|
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
use WooCommerce\PayPalCommerce\Webhooks\Handler\CheckoutOrderApproved;
|
13 |
use WooCommerce\PayPalCommerce\Webhooks\Handler\CheckoutOrderCompleted;
|
14 |
use WooCommerce\PayPalCommerce\Webhooks\Handler\PaymentCaptureCompleted;
|
15 |
use WooCommerce\PayPalCommerce\Webhooks\Handler\PaymentCaptureRefunded;
|
16 |
use WooCommerce\PayPalCommerce\Webhooks\Handler\PaymentCaptureReversed;
|
17 |
use Psr\Container\ContainerInterface;
|
|
|
18 |
|
19 |
return array(
|
20 |
|
21 |
-
'webhook.registrar'
|
22 |
$factory = $container->get( 'api.factory.webhook' );
|
23 |
$endpoint = $container->get( 'api.endpoint.webhook' );
|
24 |
$rest_endpoint = $container->get( 'webhook.endpoint.controller' );
|
|
|
25 |
return new WebhookRegistrar(
|
26 |
$factory,
|
27 |
$endpoint,
|
28 |
-
$rest_endpoint
|
|
|
29 |
);
|
30 |
},
|
31 |
-
'webhook.endpoint.controller'
|
32 |
$webhook_endpoint = $container->get( 'api.endpoint.webhook' );
|
33 |
-
$
|
34 |
$handler = $container->get( 'webhook.endpoint.handler' );
|
35 |
$logger = $container->get( 'woocommerce.logger.woocommerce' );
|
36 |
$verify_request = ! defined( 'PAYPAL_WEBHOOK_REQUEST_VERIFICATION' ) || PAYPAL_WEBHOOK_REQUEST_VERIFICATION;
|
|
|
|
|
37 |
|
38 |
return new IncomingWebhookEndpoint(
|
39 |
$webhook_endpoint,
|
40 |
-
$
|
41 |
$logger,
|
42 |
$verify_request,
|
|
|
|
|
43 |
... $handler
|
44 |
);
|
45 |
},
|
46 |
-
'webhook.endpoint.handler'
|
47 |
$logger = $container->get( 'woocommerce.logger.woocommerce' );
|
48 |
$prefix = $container->get( 'api.prefix' );
|
49 |
$order_endpoint = $container->get( 'api.endpoint.order' );
|
@@ -55,4 +71,122 @@ return array(
|
|
55 |
new PaymentCaptureCompleted( $logger, $prefix ),
|
56 |
);
|
57 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
58 |
);
|
9 |
|
10 |
namespace WooCommerce\PayPalCommerce\Webhooks;
|
11 |
|
12 |
+
use Exception;
|
13 |
+
use Psr\Log\LoggerInterface;
|
14 |
+
use WooCommerce\PayPalCommerce\ApiClient\Endpoint\WebhookEndpoint;
|
15 |
+
use WooCommerce\PayPalCommerce\ApiClient\Entity\Webhook;
|
16 |
+
use WooCommerce\PayPalCommerce\ApiClient\Factory\WebhookFactory;
|
17 |
+
use WooCommerce\PayPalCommerce\WcGateway\Assets\WebhooksStatusPageAssets;
|
18 |
+
use WooCommerce\PayPalCommerce\Webhooks\Endpoint\ResubscribeEndpoint;
|
19 |
+
use WooCommerce\PayPalCommerce\Webhooks\Endpoint\SimulateEndpoint;
|
20 |
+
use WooCommerce\PayPalCommerce\Webhooks\Endpoint\SimulationStateEndpoint;
|
21 |
use WooCommerce\PayPalCommerce\Webhooks\Handler\CheckoutOrderApproved;
|
22 |
use WooCommerce\PayPalCommerce\Webhooks\Handler\CheckoutOrderCompleted;
|
23 |
use WooCommerce\PayPalCommerce\Webhooks\Handler\PaymentCaptureCompleted;
|
24 |
use WooCommerce\PayPalCommerce\Webhooks\Handler\PaymentCaptureRefunded;
|
25 |
use WooCommerce\PayPalCommerce\Webhooks\Handler\PaymentCaptureReversed;
|
26 |
use Psr\Container\ContainerInterface;
|
27 |
+
use WooCommerce\PayPalCommerce\Webhooks\Status\WebhookSimulation;
|
28 |
|
29 |
return array(
|
30 |
|
31 |
+
'webhook.registrar' => function( $container ) : WebhookRegistrar {
|
32 |
$factory = $container->get( 'api.factory.webhook' );
|
33 |
$endpoint = $container->get( 'api.endpoint.webhook' );
|
34 |
$rest_endpoint = $container->get( 'webhook.endpoint.controller' );
|
35 |
+
$logger = $container->get( 'woocommerce.logger.woocommerce' );
|
36 |
return new WebhookRegistrar(
|
37 |
$factory,
|
38 |
$endpoint,
|
39 |
+
$rest_endpoint,
|
40 |
+
$logger
|
41 |
);
|
42 |
},
|
43 |
+
'webhook.endpoint.controller' => function( $container ) : IncomingWebhookEndpoint {
|
44 |
$webhook_endpoint = $container->get( 'api.endpoint.webhook' );
|
45 |
+
$webhook = $container->get( 'webhook.current' );
|
46 |
$handler = $container->get( 'webhook.endpoint.handler' );
|
47 |
$logger = $container->get( 'woocommerce.logger.woocommerce' );
|
48 |
$verify_request = ! defined( 'PAYPAL_WEBHOOK_REQUEST_VERIFICATION' ) || PAYPAL_WEBHOOK_REQUEST_VERIFICATION;
|
49 |
+
$webhook_event_factory = $container->get( 'api.factory.webhook-event' );
|
50 |
+
$simulation = $container->get( 'webhook.status.simulation' );
|
51 |
|
52 |
return new IncomingWebhookEndpoint(
|
53 |
$webhook_endpoint,
|
54 |
+
$webhook,
|
55 |
$logger,
|
56 |
$verify_request,
|
57 |
+
$webhook_event_factory,
|
58 |
+
$simulation,
|
59 |
... $handler
|
60 |
);
|
61 |
},
|
62 |
+
'webhook.endpoint.handler' => function( $container ) : array {
|
63 |
$logger = $container->get( 'woocommerce.logger.woocommerce' );
|
64 |
$prefix = $container->get( 'api.prefix' );
|
65 |
$order_endpoint = $container->get( 'api.endpoint.order' );
|
71 |
new PaymentCaptureCompleted( $logger, $prefix ),
|
72 |
);
|
73 |
},
|
74 |
+
|
75 |
+
'webhook.current' => function( $container ) : ?Webhook {
|
76 |
+
$data = (array) get_option( WebhookRegistrar::KEY, array() );
|
77 |
+
if ( empty( $data ) ) {
|
78 |
+
return null;
|
79 |
+
}
|
80 |
+
|
81 |
+
$factory = $container->get( 'api.factory.webhook' );
|
82 |
+
assert( $factory instanceof WebhookFactory );
|
83 |
+
|
84 |
+
try {
|
85 |
+
return $factory->from_array( $data );
|
86 |
+
} catch ( Exception $exception ) {
|
87 |
+
$logger = $container->get( 'woocommerce.logger.woocommerce' );
|
88 |
+
assert( $logger instanceof LoggerInterface );
|
89 |
+
$logger->error( 'Failed to parse the stored webhook data: ' . $exception->getMessage() );
|
90 |
+
return null;
|
91 |
+
}
|
92 |
+
},
|
93 |
+
|
94 |
+
'webhook.is-registered' => function( $container ) : bool {
|
95 |
+
return $container->get( 'webhook.current' ) !== null;
|
96 |
+
},
|
97 |
+
|
98 |
+
'webhook.status.registered-webhooks' => function( $container ) : array {
|
99 |
+
$endpoint = $container->get( 'api.endpoint.webhook' );
|
100 |
+
assert( $endpoint instanceof WebhookEndpoint );
|
101 |
+
|
102 |
+
return $endpoint->list();
|
103 |
+
},
|
104 |
+
|
105 |
+
'webhook.status.registered-webhooks-data' => function( $container ) : array {
|
106 |
+
$empty_placeholder = __( 'No webhooks found.', 'woocommerce-paypal-payments' );
|
107 |
+
|
108 |
+
$webhooks = array();
|
109 |
+
try {
|
110 |
+
$webhooks = $container->get( 'webhook.status.registered-webhooks' );
|
111 |
+
} catch ( Exception $exception ) {
|
112 |
+
$empty_placeholder = sprintf(
|
113 |
+
'<span class="error">%s</span>',
|
114 |
+
__( 'Failed to load webhooks.', 'woocommerce-paypal-payments' )
|
115 |
+
);
|
116 |
+
}
|
117 |
+
|
118 |
+
return array(
|
119 |
+
'headers' => array(
|
120 |
+
__( 'URL', 'woocommerce-paypal-payments' ),
|
121 |
+
__( 'Tracked events', 'woocommerce-paypal-payments' ),
|
122 |
+
),
|
123 |
+
'data' => array_map(
|
124 |
+
function ( Webhook $webhook ): array {
|
125 |
+
return array(
|
126 |
+
esc_html( $webhook->url() ),
|
127 |
+
implode(
|
128 |
+
',<br/>',
|
129 |
+
array_map(
|
130 |
+
'esc_html',
|
131 |
+
$webhook->humanfriendly_event_names()
|
132 |
+
)
|
133 |
+
),
|
134 |
+
);
|
135 |
+
},
|
136 |
+
$webhooks
|
137 |
+
),
|
138 |
+
'empty_placeholder' => $empty_placeholder,
|
139 |
+
);
|
140 |
+
},
|
141 |
+
|
142 |
+
'webhook.status.simulation' => function( $container ) : WebhookSimulation {
|
143 |
+
$webhook_endpoint = $container->get( 'api.endpoint.webhook' );
|
144 |
+
$webhook = $container->get( 'webhook.current' );
|
145 |
+
return new WebhookSimulation(
|
146 |
+
$webhook_endpoint,
|
147 |
+
$webhook,
|
148 |
+
'CHECKOUT.ORDER.APPROVED',
|
149 |
+
'2.0'
|
150 |
+
);
|
151 |
+
},
|
152 |
+
|
153 |
+
'webhook.status.assets' => function( $container ) : WebhooksStatusPageAssets {
|
154 |
+
return new WebhooksStatusPageAssets(
|
155 |
+
$container->get( 'webhook.module-url' )
|
156 |
+
);
|
157 |
+
},
|
158 |
+
|
159 |
+
'webhook.endpoint.resubscribe' => static function ( $container ) : ResubscribeEndpoint {
|
160 |
+
$registrar = $container->get( 'webhook.registrar' );
|
161 |
+
$request_data = $container->get( 'button.request-data' );
|
162 |
+
|
163 |
+
return new ResubscribeEndpoint(
|
164 |
+
$registrar,
|
165 |
+
$request_data
|
166 |
+
);
|
167 |
+
},
|
168 |
+
|
169 |
+
'webhook.endpoint.simulate' => static function ( $container ) : SimulateEndpoint {
|
170 |
+
$simulation = $container->get( 'webhook.status.simulation' );
|
171 |
+
$request_data = $container->get( 'button.request-data' );
|
172 |
+
|
173 |
+
return new SimulateEndpoint(
|
174 |
+
$simulation,
|
175 |
+
$request_data
|
176 |
+
);
|
177 |
+
},
|
178 |
+
'webhook.endpoint.simulation-state' => static function ( $container ) : SimulationStateEndpoint {
|
179 |
+
$simulation = $container->get( 'webhook.status.simulation' );
|
180 |
+
|
181 |
+
return new SimulationStateEndpoint(
|
182 |
+
$simulation
|
183 |
+
);
|
184 |
+
},
|
185 |
+
|
186 |
+
'webhook.module-url' => static function ( $container ): string {
|
187 |
+
return plugins_url(
|
188 |
+
'/modules/ppcp-webhooks/',
|
189 |
+
dirname( __FILE__, 3 ) . '/woocommerce-paypal-payments.php'
|
190 |
+
);
|
191 |
+
},
|
192 |
);
|
modules/ppcp-webhooks/src/Endpoint/class-resubscribeendpoint.php
ADDED
@@ -0,0 +1,79 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The endpoint for resubscribing webhooks.
|
4 |
+
*
|
5 |
+
* @package WooCommerce\PayPalCommerce\Webhooks\Endpoint
|
6 |
+
*/
|
7 |
+
|
8 |
+
declare(strict_types=1);
|
9 |
+
|
10 |
+
namespace WooCommerce\PayPalCommerce\Webhooks\Endpoint;
|
11 |
+
|
12 |
+
use Exception;
|
13 |
+
use WooCommerce\PayPalCommerce\Button\Endpoint\RequestData;
|
14 |
+
use WooCommerce\PayPalCommerce\Webhooks\WebhookRegistrar;
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Class ResubscribeEndpoint
|
18 |
+
*/
|
19 |
+
class ResubscribeEndpoint {
|
20 |
+
|
21 |
+
const ENDPOINT = 'ppc-webhooks-resubscribe';
|
22 |
+
|
23 |
+
/**
|
24 |
+
* The webhooks registrar.
|
25 |
+
*
|
26 |
+
* @var WebhookRegistrar
|
27 |
+
*/
|
28 |
+
private $registrar;
|
29 |
+
|
30 |
+
/**
|
31 |
+
* The Request Data helper object.
|
32 |
+
*
|
33 |
+
* @var RequestData
|
34 |
+
*/
|
35 |
+
private $request_data;
|
36 |
+
|
37 |
+
/**
|
38 |
+
* ResubscribeEndpoint constructor.
|
39 |
+
*
|
40 |
+
* @param WebhookRegistrar $registrar The webhooks registrar.
|
41 |
+
* @param RequestData $request_data The Request Data helper object.
|
42 |
+
*/
|
43 |
+
public function __construct( WebhookRegistrar $registrar, RequestData $request_data ) {
|
44 |
+
$this->registrar = $registrar;
|
45 |
+
$this->request_data = $request_data;
|
46 |
+
}
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Returns the nonce for the endpoint.
|
50 |
+
*
|
51 |
+
* @return string
|
52 |
+
*/
|
53 |
+
public static function nonce(): string {
|
54 |
+
return self::ENDPOINT;
|
55 |
+
}
|
56 |
+
|
57 |
+
/**
|
58 |
+
* Handles the incoming request.
|
59 |
+
*/
|
60 |
+
public function handle_request() {
|
61 |
+
try {
|
62 |
+
// Validate nonce.
|
63 |
+
$this->request_data->read_request( $this->nonce() );
|
64 |
+
|
65 |
+
$this->registrar->unregister();
|
66 |
+
|
67 |
+
if ( ! $this->registrar->register() ) {
|
68 |
+
wp_send_json_error( 'Webhook subscription failed.', 500 );
|
69 |
+
return false;
|
70 |
+
}
|
71 |
+
|
72 |
+
wp_send_json_success();
|
73 |
+
return true;
|
74 |
+
} catch ( Exception $error ) {
|
75 |
+
wp_send_json_error( $error->getMessage(), 403 );
|
76 |
+
return false;
|
77 |
+
}
|
78 |
+
}
|
79 |
+
}
|
modules/ppcp-webhooks/src/Endpoint/class-simulateendpoint.php
ADDED
@@ -0,0 +1,77 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The endpoint for starting webhooks simulation.
|
4 |
+
*
|
5 |
+
* @package WooCommerce\PayPalCommerce\Webhooks\Endpoint
|
6 |
+
*/
|
7 |
+
|
8 |
+
declare(strict_types=1);
|
9 |
+
|
10 |
+
namespace WooCommerce\PayPalCommerce\Webhooks\Endpoint;
|
11 |
+
|
12 |
+
use Exception;
|
13 |
+
use WooCommerce\PayPalCommerce\Button\Endpoint\RequestData;
|
14 |
+
use WooCommerce\PayPalCommerce\Webhooks\Status\WebhookSimulation;
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Class SimulateEndpoint
|
18 |
+
*/
|
19 |
+
class SimulateEndpoint {
|
20 |
+
|
21 |
+
const ENDPOINT = 'ppc-webhooks-simulate';
|
22 |
+
|
23 |
+
/**
|
24 |
+
* The simulation handler.
|
25 |
+
*
|
26 |
+
* @var WebhookSimulation
|
27 |
+
*/
|
28 |
+
private $simulation;
|
29 |
+
|
30 |
+
/**
|
31 |
+
* The Request Data helper object.
|
32 |
+
*
|
33 |
+
* @var RequestData
|
34 |
+
*/
|
35 |
+
private $request_data;
|
36 |
+
|
37 |
+
/**
|
38 |
+
* SimulateEndpoint constructor.
|
39 |
+
*
|
40 |
+
* @param WebhookSimulation $simulation The simulation handler.
|
41 |
+
* @param RequestData $request_data The Request Data helper object.
|
42 |
+
*/
|
43 |
+
public function __construct(
|
44 |
+
WebhookSimulation $simulation,
|
45 |
+
RequestData $request_data
|
46 |
+
) {
|
47 |
+
$this->simulation = $simulation;
|
48 |
+
$this->request_data = $request_data;
|
49 |
+
}
|
50 |
+
|
51 |
+
/**
|
52 |
+
* Returns the nonce for the endpoint.
|
53 |
+
*
|
54 |
+
* @return string
|
55 |
+
*/
|
56 |
+
public static function nonce(): string {
|
57 |
+
return self::ENDPOINT;
|
58 |
+
}
|
59 |
+
|
60 |
+
/**
|
61 |
+
* Handles the incoming request.
|
62 |
+
*/
|
63 |
+
public function handle_request() {
|
64 |
+
try {
|
65 |
+
// Validate nonce.
|
66 |
+
$this->request_data->read_request( $this->nonce() );
|
67 |
+
|
68 |
+
$this->simulation->start();
|
69 |
+
|
70 |
+
wp_send_json_success();
|
71 |
+
return true;
|
72 |
+
} catch ( Exception $error ) {
|
73 |
+
wp_send_json_error( $error->getMessage(), 500 );
|
74 |
+
return false;
|
75 |
+
}
|
76 |
+
}
|
77 |
+
}
|
modules/ppcp-webhooks/src/Endpoint/class-simulationstateendpoint.php
ADDED
@@ -0,0 +1,68 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The endpoint for getting the current webhooks simulation state.
|
4 |
+
*
|
5 |
+
* @package WooCommerce\PayPalCommerce\Webhooks\Endpoint
|
6 |
+
*/
|
7 |
+
|
8 |
+
declare(strict_types=1);
|
9 |
+
|
10 |
+
namespace WooCommerce\PayPalCommerce\Webhooks\Endpoint;
|
11 |
+
|
12 |
+
use Exception;
|
13 |
+
use WooCommerce\PayPalCommerce\Button\Endpoint\RequestData;
|
14 |
+
use WooCommerce\PayPalCommerce\Webhooks\Status\WebhookSimulation;
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Class SimulationStateEndpoint
|
18 |
+
*/
|
19 |
+
class SimulationStateEndpoint {
|
20 |
+
|
21 |
+
const ENDPOINT = 'ppc-webhooks-simulation-state';
|
22 |
+
|
23 |
+
/**
|
24 |
+
* The simulation handler.
|
25 |
+
*
|
26 |
+
* @var WebhookSimulation
|
27 |
+
*/
|
28 |
+
private $simulation;
|
29 |
+
|
30 |
+
/**
|
31 |
+
* SimulationStateEndpoint constructor.
|
32 |
+
*
|
33 |
+
* @param WebhookSimulation $simulation The simulation handler.
|
34 |
+
*/
|
35 |
+
public function __construct(
|
36 |
+
WebhookSimulation $simulation
|
37 |
+
) {
|
38 |
+
$this->simulation = $simulation;
|
39 |
+
}
|
40 |
+
|
41 |
+
/**
|
42 |
+
* Returns the nonce for the endpoint.
|
43 |
+
*
|
44 |
+
* @return string
|
45 |
+
*/
|
46 |
+
public static function nonce(): string {
|
47 |
+
return self::ENDPOINT;
|
48 |
+
}
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Handles the incoming request.
|
52 |
+
*/
|
53 |
+
public function handle_request() {
|
54 |
+
try {
|
55 |
+
$state = $this->simulation->get_state();
|
56 |
+
|
57 |
+
wp_send_json_success(
|
58 |
+
array(
|
59 |
+
'state' => $state,
|
60 |
+
)
|
61 |
+
);
|
62 |
+
return true;
|
63 |
+
} catch ( Exception $error ) {
|
64 |
+
wp_send_json_error( $error->getMessage(), 500 );
|
65 |
+
return false;
|
66 |
+
}
|
67 |
+
}
|
68 |
+
}
|
modules/ppcp-webhooks/src/Status/Assets/class-webhooksstatuspageassets.php
ADDED
@@ -0,0 +1,110 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Register and configure assets for webhooks status page.
|
4 |
+
*
|
5 |
+
* @package WooCommerce\PayPalCommerce\Webhooks\Status\Assets
|
6 |
+
*/
|
7 |
+
|
8 |
+
declare(strict_types=1);
|
9 |
+
|
10 |
+
namespace WooCommerce\PayPalCommerce\WcGateway\Assets;
|
11 |
+
|
12 |
+
use WooCommerce\PayPalCommerce\ApiClient\Authentication\Bearer;
|
13 |
+
use WooCommerce\PayPalCommerce\ApiClient\Exception\RuntimeException;
|
14 |
+
use WooCommerce\PayPalCommerce\Webhooks\Endpoint\ResubscribeEndpoint;
|
15 |
+
use WooCommerce\PayPalCommerce\Webhooks\Endpoint\SimulateEndpoint;
|
16 |
+
use WooCommerce\PayPalCommerce\Webhooks\Endpoint\SimulationStateEndpoint;
|
17 |
+
use WooCommerce\PayPalCommerce\Webhooks\Status\WebhookSimulation;
|
18 |
+
|
19 |
+
/**
|
20 |
+
* Class WebhooksStatusPageAssets
|
21 |
+
*/
|
22 |
+
class WebhooksStatusPageAssets {
|
23 |
+
|
24 |
+
/**
|
25 |
+
* The URL to the module.
|
26 |
+
*
|
27 |
+
* @var string
|
28 |
+
*/
|
29 |
+
private $module_url;
|
30 |
+
|
31 |
+
/**
|
32 |
+
* WebhooksStatusPageAssets constructor.
|
33 |
+
*
|
34 |
+
* @param string $module_url The URL to the module.
|
35 |
+
*/
|
36 |
+
public function __construct(
|
37 |
+
string $module_url
|
38 |
+
) {
|
39 |
+
$this->module_url = untrailingslashit( $module_url );
|
40 |
+
}
|
41 |
+
|
42 |
+
/**
|
43 |
+
* Registers the scripts and styles.
|
44 |
+
*
|
45 |
+
* @return void
|
46 |
+
*/
|
47 |
+
public function register(): void {
|
48 |
+
wp_register_style(
|
49 |
+
'ppcp-webhooks-status-page-style',
|
50 |
+
$this->module_url . '/assets/css/status-page.css',
|
51 |
+
array(),
|
52 |
+
1
|
53 |
+
);
|
54 |
+
|
55 |
+
wp_register_script(
|
56 |
+
'ppcp-webhooks-status-page',
|
57 |
+
$this->module_url . '/assets/js/status-page.js',
|
58 |
+
array(),
|
59 |
+
1,
|
60 |
+
true
|
61 |
+
);
|
62 |
+
|
63 |
+
wp_localize_script(
|
64 |
+
'ppcp-webhooks-status-page',
|
65 |
+
'PayPalCommerceGatewayWebhooksStatus',
|
66 |
+
$this->get_script_data()
|
67 |
+
);
|
68 |
+
}
|
69 |
+
|
70 |
+
/**
|
71 |
+
* Returns the data for the script.
|
72 |
+
*
|
73 |
+
* @return array
|
74 |
+
*/
|
75 |
+
public function get_script_data() {
|
76 |
+
return array(
|
77 |
+
'resubscribe' => array(
|
78 |
+
'endpoint' => home_url( \WC_AJAX::get_endpoint( ResubscribeEndpoint::ENDPOINT ) ),
|
79 |
+
'nonce' => wp_create_nonce( ResubscribeEndpoint::nonce() ),
|
80 |
+
'button' => '.ppcp-webhooks-resubscribe',
|
81 |
+
'failureMessage' => __( 'Operation failed. Check WooCommerce logs for more details.', 'woocommerce-paypal-payments' ),
|
82 |
+
),
|
83 |
+
'simulation' => array(
|
84 |
+
'start' => array(
|
85 |
+
'endpoint' => home_url( \WC_AJAX::get_endpoint( SimulateEndpoint::ENDPOINT ) ),
|
86 |
+
'nonce' => wp_create_nonce( SimulateEndpoint::nonce() ),
|
87 |
+
'button' => '.ppcp-webhooks-simulate',
|
88 |
+
'failureMessage' => __( 'Operation failed. Check WooCommerce logs for more details.', 'woocommerce-paypal-payments' ),
|
89 |
+
),
|
90 |
+
'state' => array(
|
91 |
+
'endpoint' => home_url( \WC_AJAX::get_endpoint( SimulationStateEndpoint::ENDPOINT ) ),
|
92 |
+
'successState' => WebhookSimulation::STATE_RECEIVED,
|
93 |
+
'waitingMessage' => __( 'Waiting for the webhook to arrive...', 'woocommerce-paypal-payments' ),
|
94 |
+
'successMessage' => __( 'The webhook was received successfully.', 'woocommerce-paypal-payments' ),
|
95 |
+
'tooLongDelayMessage' => __( 'Looks like the webhook cannot be received. Check that your website is accessible from the internet.', 'woocommerce-paypal-payments' ),
|
96 |
+
),
|
97 |
+
),
|
98 |
+
);
|
99 |
+
}
|
100 |
+
|
101 |
+
/**
|
102 |
+
* Enqueues the necessary scripts.
|
103 |
+
*
|
104 |
+
* @return void
|
105 |
+
*/
|
106 |
+
public function enqueue(): void {
|
107 |
+
wp_enqueue_style( 'ppcp-webhooks-status-page-style' );
|
108 |
+
wp_enqueue_script( 'ppcp-webhooks-status-page' );
|
109 |
+
}
|
110 |
+
}
|
modules/ppcp-webhooks/src/Status/class-webhooksimulation.php
ADDED
@@ -0,0 +1,180 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Handles the webhook simulation.
|
4 |
+
*
|
5 |
+
* @package WooCommerce\PayPalCommerce\Webhooks\Status
|
6 |
+
*/
|
7 |
+
|
8 |
+
declare(strict_types=1);
|
9 |
+
|
10 |
+
namespace WooCommerce\PayPalCommerce\Webhooks\Status;
|
11 |
+
|
12 |
+
use Exception;
|
13 |
+
use UnexpectedValueException;
|
14 |
+
use WooCommerce\PayPalCommerce\ApiClient\Endpoint\WebhookEndpoint;
|
15 |
+
use WooCommerce\PayPalCommerce\ApiClient\Entity\Webhook;
|
16 |
+
use WooCommerce\PayPalCommerce\ApiClient\Entity\WebhookEvent;
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Class WebhookSimulation
|
20 |
+
*/
|
21 |
+
class WebhookSimulation {
|
22 |
+
|
23 |
+
public const STATE_WAITING = 'waiting';
|
24 |
+
public const STATE_RECEIVED = 'received';
|
25 |
+
|
26 |
+
private const OPTION_ID = 'ppcp-webhook-simulation';
|
27 |
+
|
28 |
+
/**
|
29 |
+
* The webhooks endpoint.
|
30 |
+
*
|
31 |
+
* @var WebhookEndpoint
|
32 |
+
*/
|
33 |
+
private $webhook_endpoint;
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Our registered webhook.
|
37 |
+
*
|
38 |
+
* @var Webhook|null
|
39 |
+
*/
|
40 |
+
private $webhook;
|
41 |
+
|
42 |
+
/**
|
43 |
+
* The event type that will be simulated, such as CHECKOUT.ORDER.APPROVED.
|
44 |
+
*
|
45 |
+
* @var string
|
46 |
+
*/
|
47 |
+
private $event_type;
|
48 |
+
|
49 |
+
/**
|
50 |
+
* The event resource version, such as 2.0.
|
51 |
+
*
|
52 |
+
* @var string|null
|
53 |
+
*/
|
54 |
+
private $resource_version;
|
55 |
+
|
56 |
+
/**
|
57 |
+
* WebhookSimulation constructor.
|
58 |
+
*
|
59 |
+
* @param WebhookEndpoint $webhook_endpoint The webhooks endpoint.
|
60 |
+
* @param Webhook|null $webhook Our registered webhook.
|
61 |
+
* @param string $event_type The event type that will be simulated, such as CHECKOUT.ORDER.APPROVED.
|
62 |
+
* @param string|null $resource_version The event resource version, such as 2.0.
|
63 |
+
*/
|
64 |
+
public function __construct(
|
65 |
+
WebhookEndpoint $webhook_endpoint,
|
66 |
+
?Webhook $webhook,
|
67 |
+
string $event_type,
|
68 |
+
?string $resource_version
|
69 |
+
) {
|
70 |
+
$this->webhook_endpoint = $webhook_endpoint;
|
71 |
+
$this->webhook = $webhook;
|
72 |
+
$this->event_type = $event_type;
|
73 |
+
$this->resource_version = $resource_version;
|
74 |
+
}
|
75 |
+
|
76 |
+
/**
|
77 |
+
* Starts the simulation by sending request to PayPal and saving the simulation data with STATE_WAITING.
|
78 |
+
*
|
79 |
+
* @throws Exception If failed to start simulation.
|
80 |
+
*/
|
81 |
+
public function start() {
|
82 |
+
if ( ! $this->webhook ) {
|
83 |
+
throw new Exception( 'Webhooks not registered' );
|
84 |
+
}
|
85 |
+
|
86 |
+
$event = $this->webhook_endpoint->simulate( $this->webhook, $this->event_type, $this->resource_version );
|
87 |
+
|
88 |
+
$this->save(
|
89 |
+
array(
|
90 |
+
'id' => $event->id(),
|
91 |
+
'state' => self::STATE_WAITING,
|
92 |
+
)
|
93 |
+
);
|
94 |
+
}
|
95 |
+
|
96 |
+
/**
|
97 |
+
* Returns true if the given event matches the expected simulation event.
|
98 |
+
*
|
99 |
+
* @param WebhookEvent $event The webhook event.
|
100 |
+
* @return bool
|
101 |
+
*/
|
102 |
+
public function is_simulation_event( WebhookEvent $event ): bool {
|
103 |
+
try {
|
104 |
+
$data = $this->load();
|
105 |
+
|
106 |
+
return isset( $data['id'] ) && $event->id() === $data['id'];
|
107 |
+
} catch ( Exception $exception ) {
|
108 |
+
return false;
|
109 |
+
}
|
110 |
+
}
|
111 |
+
|
112 |
+
/**
|
113 |
+
* Sets the simulation state to STATE_RECEIVED if the given event matches the expected simulation event.
|
114 |
+
*
|
115 |
+
* @param WebhookEvent $event The webhook event.
|
116 |
+
*
|
117 |
+
* @return bool
|
118 |
+
* @throws Exception If failed to save new state.
|
119 |
+
*/
|
120 |
+
public function receive( WebhookEvent $event ): bool {
|
121 |
+
if ( ! $this->is_simulation_event( $event ) ) {
|
122 |
+
return false;
|
123 |
+
}
|
124 |
+
|
125 |
+
$this->set_state( self::STATE_RECEIVED );
|
126 |
+
|
127 |
+
return true;
|
128 |
+
}
|
129 |
+
|
130 |
+
/**
|
131 |
+
* Returns the current simulation state, one of the STATE_ constants.
|
132 |
+
*
|
133 |
+
* @return string
|
134 |
+
* @throws Exception If failed to load state.
|
135 |
+
*/
|
136 |
+
public function get_state(): string {
|
137 |
+
$data = $this->load();
|
138 |
+
|
139 |
+
return $data['state'];
|
140 |
+
}
|
141 |
+
|
142 |
+
/**
|
143 |
+
* Saves the new state.
|
144 |
+
*
|
145 |
+
* @param string $state One of the STATE_ constants.
|
146 |
+
*
|
147 |
+
* @throws Exception If failed to load state.
|
148 |
+
*/
|
149 |
+
private function set_state( string $state ): void {
|
150 |
+
$data = $this->load();
|
151 |
+
|
152 |
+
$data['state'] = $state;
|
153 |
+
|
154 |
+
$this->save( $data );
|
155 |
+
}
|
156 |
+
|
157 |
+
/**
|
158 |
+
* Saves the simulation data.
|
159 |
+
*
|
160 |
+
* @param array $data The simulation data.
|
161 |
+
*/
|
162 |
+
private function save( array $data ): void {
|
163 |
+
update_option( self::OPTION_ID, $data );
|
164 |
+
}
|
165 |
+
|
166 |
+
/**
|
167 |
+
* Returns the current simulation data.
|
168 |
+
*
|
169 |
+
* @return array
|
170 |
+
* @throws UnexpectedValueException If failed to load.
|
171 |
+
*/
|
172 |
+
private function load(): array {
|
173 |
+
$data = get_option( self::OPTION_ID );
|
174 |
+
if ( ! $data ) {
|
175 |
+
throw new UnexpectedValueException( 'Webhook simulation data not found.' );
|
176 |
+
}
|
177 |
+
|
178 |
+
return $data;
|
179 |
+
}
|
180 |
+
}
|
modules/ppcp-webhooks/src/Status/class-webhooksstatuspage.php
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Status page.
|
4 |
+
*
|
5 |
+
* @package WooCommerce\PayPalCommerce\Webhooks\Status
|
6 |
+
*/
|
7 |
+
|
8 |
+
declare(strict_types=1);
|
9 |
+
|
10 |
+
namespace WooCommerce\PayPalCommerce\Webhooks\Status;
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Class WebhooksStatusPage
|
14 |
+
*/
|
15 |
+
class WebhooksStatusPage {
|
16 |
+
|
17 |
+
const ID = 'ppcp-webhooks-status-page';
|
18 |
+
}
|
modules/ppcp-webhooks/src/class-incomingwebhookendpoint.php
CHANGED
@@ -9,11 +9,15 @@ declare(strict_types=1);
|
|
9 |
|
10 |
namespace WooCommerce\PayPalCommerce\Webhooks;
|
11 |
|
|
|
12 |
use WooCommerce\PayPalCommerce\ApiClient\Endpoint\WebhookEndpoint;
|
|
|
|
|
13 |
use WooCommerce\PayPalCommerce\ApiClient\Exception\RuntimeException;
|
14 |
-
use WooCommerce\PayPalCommerce\ApiClient\Factory\
|
15 |
use WooCommerce\PayPalCommerce\Webhooks\Handler\RequestHandler;
|
16 |
use Psr\Log\LoggerInterface;
|
|
|
17 |
|
18 |
/**
|
19 |
* Class IncomingWebhookEndpoint
|
@@ -31,11 +35,11 @@ class IncomingWebhookEndpoint {
|
|
31 |
private $webhook_endpoint;
|
32 |
|
33 |
/**
|
34 |
-
*
|
35 |
*
|
36 |
-
* @var
|
37 |
*/
|
38 |
-
private $
|
39 |
|
40 |
/**
|
41 |
* The Request handlers.
|
@@ -58,28 +62,48 @@ class IncomingWebhookEndpoint {
|
|
58 |
*/
|
59 |
private $verify_request;
|
60 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
/**
|
62 |
* IncomingWebhookEndpoint constructor.
|
63 |
*
|
64 |
-
* @param WebhookEndpoint
|
65 |
-
* @param
|
66 |
-
* @param LoggerInterface
|
67 |
-
* @param bool
|
68 |
-
* @param
|
|
|
|
|
69 |
*/
|
70 |
public function __construct(
|
71 |
WebhookEndpoint $webhook_endpoint,
|
72 |
-
|
73 |
LoggerInterface $logger,
|
74 |
bool $verify_request,
|
|
|
|
|
75 |
RequestHandler ...$handlers
|
76 |
) {
|
77 |
|
78 |
-
$this->webhook_endpoint
|
79 |
-
$this->
|
80 |
-
$this->handlers
|
81 |
-
$this->logger
|
82 |
-
$this->verify_request
|
|
|
|
|
83 |
}
|
84 |
|
85 |
/**
|
@@ -110,35 +134,34 @@ class IncomingWebhookEndpoint {
|
|
110 |
/**
|
111 |
* Verifies the current request.
|
112 |
*
|
|
|
|
|
113 |
* @return bool
|
114 |
*/
|
115 |
-
public function verify_request(): bool {
|
116 |
if ( ! $this->verify_request ) {
|
117 |
return true;
|
118 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
try {
|
120 |
-
$
|
121 |
-
|
122 |
-
|
|
|
|
|
|
|
|
|
123 |
if ( ! $result ) {
|
124 |
-
$this->logger->
|
125 |
-
'error',
|
126 |
-
__( 'Illegit Webhook request detected.', 'woocommerce-paypal-payments' )
|
127 |
-
);
|
128 |
}
|
129 |
return $result;
|
130 |
} catch ( RuntimeException $exception ) {
|
131 |
-
$this->logger->
|
132 |
-
'error',
|
133 |
-
sprintf(
|
134 |
-
// translators: %s is the error message.
|
135 |
-
__(
|
136 |
-
'Illegit Webhook request detected: %s',
|
137 |
-
'woocommerce-paypal-payments'
|
138 |
-
),
|
139 |
-
$exception->getMessage()
|
140 |
-
)
|
141 |
-
);
|
142 |
return false;
|
143 |
}
|
144 |
}
|
@@ -151,6 +174,17 @@ class IncomingWebhookEndpoint {
|
|
151 |
* @return \WP_REST_Response
|
152 |
*/
|
153 |
public function handle_request( \WP_REST_Request $request ): \WP_REST_Response {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
154 |
|
155 |
foreach ( $this->handlers as $handler ) {
|
156 |
if ( $handler->responsible_for_request( $request ) ) {
|
@@ -211,4 +245,16 @@ class IncomingWebhookEndpoint {
|
|
211 |
}
|
212 |
return array_unique( $event_types );
|
213 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
214 |
}
|
9 |
|
10 |
namespace WooCommerce\PayPalCommerce\Webhooks;
|
11 |
|
12 |
+
use phpDocumentor\Reflection\Types\This;
|
13 |
use WooCommerce\PayPalCommerce\ApiClient\Endpoint\WebhookEndpoint;
|
14 |
+
use WooCommerce\PayPalCommerce\ApiClient\Entity\Webhook;
|
15 |
+
use WooCommerce\PayPalCommerce\ApiClient\Entity\WebhookEvent;
|
16 |
use WooCommerce\PayPalCommerce\ApiClient\Exception\RuntimeException;
|
17 |
+
use WooCommerce\PayPalCommerce\ApiClient\Factory\WebhookEventFactory;
|
18 |
use WooCommerce\PayPalCommerce\Webhooks\Handler\RequestHandler;
|
19 |
use Psr\Log\LoggerInterface;
|
20 |
+
use WooCommerce\PayPalCommerce\Webhooks\Status\WebhookSimulation;
|
21 |
|
22 |
/**
|
23 |
* Class IncomingWebhookEndpoint
|
35 |
private $webhook_endpoint;
|
36 |
|
37 |
/**
|
38 |
+
* Our registered webhook.
|
39 |
*
|
40 |
+
* @var Webhook|null
|
41 |
*/
|
42 |
+
private $webhook;
|
43 |
|
44 |
/**
|
45 |
* The Request handlers.
|
62 |
*/
|
63 |
private $verify_request;
|
64 |
|
65 |
+
/**
|
66 |
+
* The webhook event factory.
|
67 |
+
*
|
68 |
+
* @var WebhookEventFactory
|
69 |
+
*/
|
70 |
+
private $webhook_event_factory;
|
71 |
+
|
72 |
+
/**
|
73 |
+
* The simulation handler.
|
74 |
+
*
|
75 |
+
* @var WebhookSimulation
|
76 |
+
*/
|
77 |
+
private $simulation;
|
78 |
+
|
79 |
/**
|
80 |
* IncomingWebhookEndpoint constructor.
|
81 |
*
|
82 |
+
* @param WebhookEndpoint $webhook_endpoint The webhook endpoint.
|
83 |
+
* @param Webhook|null $webhook Our registered webhook.
|
84 |
+
* @param LoggerInterface $logger The logger.
|
85 |
+
* @param bool $verify_request Whether requests need to be verified or not.
|
86 |
+
* @param WebhookEventFactory $webhook_event_factory The webhook event factory.
|
87 |
+
* @param WebhookSimulation $simulation The simulation handler.
|
88 |
+
* @param RequestHandler ...$handlers The handlers, which process a request in the end.
|
89 |
*/
|
90 |
public function __construct(
|
91 |
WebhookEndpoint $webhook_endpoint,
|
92 |
+
?Webhook $webhook,
|
93 |
LoggerInterface $logger,
|
94 |
bool $verify_request,
|
95 |
+
WebhookEventFactory $webhook_event_factory,
|
96 |
+
WebhookSimulation $simulation,
|
97 |
RequestHandler ...$handlers
|
98 |
) {
|
99 |
|
100 |
+
$this->webhook_endpoint = $webhook_endpoint;
|
101 |
+
$this->webhook = $webhook;
|
102 |
+
$this->handlers = $handlers;
|
103 |
+
$this->logger = $logger;
|
104 |
+
$this->verify_request = $verify_request;
|
105 |
+
$this->webhook_event_factory = $webhook_event_factory;
|
106 |
+
$this->simulation = $simulation;
|
107 |
}
|
108 |
|
109 |
/**
|
134 |
/**
|
135 |
* Verifies the current request.
|
136 |
*
|
137 |
+
* @param \WP_REST_Request $request The request.
|
138 |
+
*
|
139 |
* @return bool
|
140 |
*/
|
141 |
+
public function verify_request( \WP_REST_Request $request ): bool {
|
142 |
if ( ! $this->verify_request ) {
|
143 |
return true;
|
144 |
}
|
145 |
+
|
146 |
+
if ( ! $this->webhook ) {
|
147 |
+
$this->logger->error( 'Failed to retrieve stored webhook data.' );
|
148 |
+
return false;
|
149 |
+
}
|
150 |
+
|
151 |
try {
|
152 |
+
$event = $this->event_from_request( $request );
|
153 |
+
|
154 |
+
if ( $this->simulation->is_simulation_event( $event ) ) {
|
155 |
+
return true;
|
156 |
+
}
|
157 |
+
|
158 |
+
$result = $this->webhook_endpoint->verify_current_request_for_webhook( $this->webhook );
|
159 |
if ( ! $result ) {
|
160 |
+
$this->logger->error( 'Webhook verification failed.' );
|
|
|
|
|
|
|
161 |
}
|
162 |
return $result;
|
163 |
} catch ( RuntimeException $exception ) {
|
164 |
+
$this->logger->error( 'Webhook verification failed: ' . $exception->getMessage() );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
165 |
return false;
|
166 |
}
|
167 |
}
|
174 |
* @return \WP_REST_Response
|
175 |
*/
|
176 |
public function handle_request( \WP_REST_Request $request ): \WP_REST_Response {
|
177 |
+
$event = $this->event_from_request( $request );
|
178 |
+
|
179 |
+
if ( $this->simulation->is_simulation_event( $event ) ) {
|
180 |
+
$this->logger->info( 'Received simulated webhook.' );
|
181 |
+
$this->simulation->receive( $event );
|
182 |
+
return rest_ensure_response(
|
183 |
+
array(
|
184 |
+
'success' => true,
|
185 |
+
)
|
186 |
+
);
|
187 |
+
}
|
188 |
|
189 |
foreach ( $this->handlers as $handler ) {
|
190 |
if ( $handler->responsible_for_request( $request ) ) {
|
245 |
}
|
246 |
return array_unique( $event_types );
|
247 |
}
|
248 |
+
|
249 |
+
/**
|
250 |
+
* Creates WebhookEvent from request data.
|
251 |
+
*
|
252 |
+
* @param \WP_REST_Request $request The request with event data.
|
253 |
+
*
|
254 |
+
* @return WebhookEvent
|
255 |
+
* @throws RuntimeException When failed to create.
|
256 |
+
*/
|
257 |
+
private function event_from_request( \WP_REST_Request $request ): WebhookEvent {
|
258 |
+
return $this->webhook_event_factory->from_array( $request->get_params() );
|
259 |
+
}
|
260 |
}
|
modules/ppcp-webhooks/src/class-webhookmodule.php
CHANGED
@@ -11,8 +11,15 @@ namespace WooCommerce\PayPalCommerce\Webhooks;
|
|
11 |
|
12 |
use Dhii\Container\ServiceProvider;
|
13 |
use Dhii\Modular\Module\ModuleInterface;
|
|
|
14 |
use Interop\Container\ServiceProviderInterface;
|
15 |
use Psr\Container\ContainerInterface;
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
|
17 |
/**
|
18 |
* Class WebhookModule
|
@@ -37,6 +44,9 @@ class WebhookModule implements ModuleInterface {
|
|
37 |
* @param ContainerInterface|null $container The Container.
|
38 |
*/
|
39 |
public function run( ContainerInterface $container ): void {
|
|
|
|
|
|
|
40 |
add_action(
|
41 |
'rest_api_init',
|
42 |
static function () use ( $container ) {
|
@@ -75,6 +85,69 @@ class WebhookModule implements ModuleInterface {
|
|
75 |
$registrar->unregister();
|
76 |
}
|
77 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
}
|
79 |
|
80 |
/**
|
11 |
|
12 |
use Dhii\Container\ServiceProvider;
|
13 |
use Dhii\Modular\Module\ModuleInterface;
|
14 |
+
use Exception;
|
15 |
use Interop\Container\ServiceProviderInterface;
|
16 |
use Psr\Container\ContainerInterface;
|
17 |
+
use Psr\Log\LoggerInterface;
|
18 |
+
use WooCommerce\PayPalCommerce\WcGateway\Assets\WebhooksStatusPageAssets;
|
19 |
+
use WooCommerce\PayPalCommerce\Webhooks\Endpoint\ResubscribeEndpoint;
|
20 |
+
use WooCommerce\PayPalCommerce\Webhooks\Endpoint\SimulateEndpoint;
|
21 |
+
use WooCommerce\PayPalCommerce\Webhooks\Endpoint\SimulationStateEndpoint;
|
22 |
+
use WooCommerce\PayPalCommerce\Webhooks\Status\WebhooksStatusPage;
|
23 |
|
24 |
/**
|
25 |
* Class WebhookModule
|
44 |
* @param ContainerInterface|null $container The Container.
|
45 |
*/
|
46 |
public function run( ContainerInterface $container ): void {
|
47 |
+
$logger = $container->get( 'woocommerce.logger.woocommerce' );
|
48 |
+
assert( $logger instanceof LoggerInterface );
|
49 |
+
|
50 |
add_action(
|
51 |
'rest_api_init',
|
52 |
static function () use ( $container ) {
|
85 |
$registrar->unregister();
|
86 |
}
|
87 |
);
|
88 |
+
|
89 |
+
add_action(
|
90 |
+
'wc_ajax_' . ResubscribeEndpoint::ENDPOINT,
|
91 |
+
static function () use ( $container ) {
|
92 |
+
$endpoint = $container->get( 'webhook.endpoint.resubscribe' );
|
93 |
+
assert( $endpoint instanceof ResubscribeEndpoint );
|
94 |
+
|
95 |
+
$endpoint->handle_request();
|
96 |
+
}
|
97 |
+
);
|
98 |
+
|
99 |
+
add_action(
|
100 |
+
'wc_ajax_' . SimulateEndpoint::ENDPOINT,
|
101 |
+
static function () use ( $container ) {
|
102 |
+
$endpoint = $container->get( 'webhook.endpoint.simulate' );
|
103 |
+
assert( $endpoint instanceof SimulateEndpoint );
|
104 |
+
|
105 |
+
$endpoint->handle_request();
|
106 |
+
}
|
107 |
+
);
|
108 |
+
add_action(
|
109 |
+
'wc_ajax_' . SimulationStateEndpoint::ENDPOINT,
|
110 |
+
static function () use ( $container ) {
|
111 |
+
$endpoint = $container->get( 'webhook.endpoint.simulation-state' );
|
112 |
+
assert( $endpoint instanceof SimulationStateEndpoint );
|
113 |
+
|
114 |
+
$endpoint->handle_request();
|
115 |
+
}
|
116 |
+
);
|
117 |
+
|
118 |
+
$page_id = $container->get( 'wcgateway.current-ppcp-settings-page-id' );
|
119 |
+
if ( WebhooksStatusPage::ID === $page_id ) {
|
120 |
+
$GLOBALS['hide_save_button'] = true;
|
121 |
+
$asset_loader = $container->get( 'webhook.status.assets' );
|
122 |
+
assert( $asset_loader instanceof WebhooksStatusPageAssets );
|
123 |
+
add_action(
|
124 |
+
'init',
|
125 |
+
array( $asset_loader, 'register' )
|
126 |
+
);
|
127 |
+
add_action(
|
128 |
+
'admin_enqueue_scripts',
|
129 |
+
array( $asset_loader, 'enqueue' )
|
130 |
+
);
|
131 |
+
|
132 |
+
try {
|
133 |
+
$webhooks = $container->get( 'webhook.status.registered-webhooks' );
|
134 |
+
|
135 |
+
if ( empty( $webhooks ) ) {
|
136 |
+
$registrar = $container->get( 'webhook.registrar' );
|
137 |
+
assert( $registrar instanceof WebhookRegistrar );
|
138 |
+
|
139 |
+
// Looks like we cannot call rest_url too early.
|
140 |
+
add_action(
|
141 |
+
'init',
|
142 |
+
function () use ( $registrar ) {
|
143 |
+
$registrar->register();
|
144 |
+
}
|
145 |
+
);
|
146 |
+
}
|
147 |
+
} catch ( Exception $exception ) {
|
148 |
+
$logger->error( 'Failed to load webhooks list: ' . $exception->getMessage() );
|
149 |
+
}
|
150 |
+
}
|
151 |
}
|
152 |
|
153 |
/**
|
modules/ppcp-webhooks/src/class-webhookregistrar.php
CHANGED
@@ -9,6 +9,7 @@ declare(strict_types=1);
|
|
9 |
|
10 |
namespace WooCommerce\PayPalCommerce\Webhooks;
|
11 |
|
|
|
12 |
use WooCommerce\PayPalCommerce\ApiClient\Endpoint\WebhookEndpoint;
|
13 |
use WooCommerce\PayPalCommerce\ApiClient\Exception\RuntimeException;
|
14 |
use WooCommerce\PayPalCommerce\ApiClient\Factory\WebhookFactory;
|
@@ -43,22 +44,32 @@ class WebhookRegistrar {
|
|
43 |
*/
|
44 |
private $rest_endpoint;
|
45 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
/**
|
47 |
* WebhookRegistrar constructor.
|
48 |
*
|
49 |
* @param WebhookFactory $webhook_factory The Webhook factory.
|
50 |
* @param WebhookEndpoint $endpoint The Webhook endpoint.
|
51 |
* @param IncomingWebhookEndpoint $rest_endpoint The WordPress Rest API endpoint.
|
|
|
52 |
*/
|
53 |
public function __construct(
|
54 |
WebhookFactory $webhook_factory,
|
55 |
WebhookEndpoint $endpoint,
|
56 |
-
IncomingWebhookEndpoint $rest_endpoint
|
|
|
57 |
) {
|
58 |
|
59 |
$this->webhook_factory = $webhook_factory;
|
60 |
$this->endpoint = $endpoint;
|
61 |
$this->rest_endpoint = $rest_endpoint;
|
|
|
62 |
}
|
63 |
|
64 |
/**
|
@@ -81,8 +92,10 @@ class WebhookRegistrar {
|
|
81 |
self::KEY,
|
82 |
$created->to_array()
|
83 |
);
|
|
|
84 |
return true;
|
85 |
} catch ( RuntimeException $error ) {
|
|
|
86 |
return false;
|
87 |
}
|
88 |
}
|
@@ -101,11 +114,13 @@ class WebhookRegistrar {
|
|
101 |
$webhook = $this->webhook_factory->from_array( $data );
|
102 |
$success = $this->endpoint->delete( $webhook );
|
103 |
} catch ( RuntimeException $error ) {
|
|
|
104 |
return false;
|
105 |
}
|
106 |
|
107 |
if ( $success ) {
|
108 |
delete_option( self::KEY );
|
|
|
109 |
}
|
110 |
return $success;
|
111 |
}
|
9 |
|
10 |
namespace WooCommerce\PayPalCommerce\Webhooks;
|
11 |
|
12 |
+
use Psr\Log\LoggerInterface;
|
13 |
use WooCommerce\PayPalCommerce\ApiClient\Endpoint\WebhookEndpoint;
|
14 |
use WooCommerce\PayPalCommerce\ApiClient\Exception\RuntimeException;
|
15 |
use WooCommerce\PayPalCommerce\ApiClient\Factory\WebhookFactory;
|
44 |
*/
|
45 |
private $rest_endpoint;
|
46 |
|
47 |
+
/**
|
48 |
+
* The logger.
|
49 |
+
*
|
50 |
+
* @var LoggerInterface
|
51 |
+
*/
|
52 |
+
private $logger;
|
53 |
+
|
54 |
/**
|
55 |
* WebhookRegistrar constructor.
|
56 |
*
|
57 |
* @param WebhookFactory $webhook_factory The Webhook factory.
|
58 |
* @param WebhookEndpoint $endpoint The Webhook endpoint.
|
59 |
* @param IncomingWebhookEndpoint $rest_endpoint The WordPress Rest API endpoint.
|
60 |
+
* @param LoggerInterface $logger The logger.
|
61 |
*/
|
62 |
public function __construct(
|
63 |
WebhookFactory $webhook_factory,
|
64 |
WebhookEndpoint $endpoint,
|
65 |
+
IncomingWebhookEndpoint $rest_endpoint,
|
66 |
+
LoggerInterface $logger
|
67 |
) {
|
68 |
|
69 |
$this->webhook_factory = $webhook_factory;
|
70 |
$this->endpoint = $endpoint;
|
71 |
$this->rest_endpoint = $rest_endpoint;
|
72 |
+
$this->logger = $logger;
|
73 |
}
|
74 |
|
75 |
/**
|
92 |
self::KEY,
|
93 |
$created->to_array()
|
94 |
);
|
95 |
+
$this->logger->info( 'Webhooks subscribed.' );
|
96 |
return true;
|
97 |
} catch ( RuntimeException $error ) {
|
98 |
+
$this->logger->error( 'Failed to subscribe webhooks: ' . $error->getMessage() );
|
99 |
return false;
|
100 |
}
|
101 |
}
|
114 |
$webhook = $this->webhook_factory->from_array( $data );
|
115 |
$success = $this->endpoint->delete( $webhook );
|
116 |
} catch ( RuntimeException $error ) {
|
117 |
+
$this->logger->error( 'Failed to delete webhooks: ' . $error->getMessage() );
|
118 |
return false;
|
119 |
}
|
120 |
|
121 |
if ( $success ) {
|
122 |
delete_option( self::KEY );
|
123 |
+
$this->logger->info( 'Webhooks deleted.' );
|
124 |
}
|
125 |
return $success;
|
126 |
}
|
modules/ppcp-webhooks/webpack.config.js
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
const path = require('path');
|
2 |
+
const isProduction = process.env.NODE_ENV === 'production';
|
3 |
+
|
4 |
+
module.exports = {
|
5 |
+
devtool: 'eval-source-map',
|
6 |
+
mode: isProduction ? 'production' : 'development',
|
7 |
+
target: 'web',
|
8 |
+
entry: {
|
9 |
+
'status-page': path.resolve('./resources/js/status-page.js'),
|
10 |
+
'status-page-style': path.resolve('./resources/css/status-page.scss'),
|
11 |
+
},
|
12 |
+
output: {
|
13 |
+
path: path.resolve(__dirname, 'assets/'),
|
14 |
+
filename: 'js/[name].js',
|
15 |
+
},
|
16 |
+
module: {
|
17 |
+
rules: [{
|
18 |
+
test: /\.js?$/,
|
19 |
+
exclude: /node_modules/,
|
20 |
+
loader: 'babel-loader',
|
21 |
+
},
|
22 |
+
{
|
23 |
+
test: /\.scss$/,
|
24 |
+
exclude: /node_modules/,
|
25 |
+
use: [
|
26 |
+
{
|
27 |
+
loader: 'file-loader',
|
28 |
+
options: {
|
29 |
+
name: 'css/[name].css',
|
30 |
+
}
|
31 |
+
},
|
32 |
+
{loader:'sass-loader'}
|
33 |
+
]
|
34 |
+
}]
|
35 |
+
}
|
36 |
+
};
|
modules/ppcp-webhooks/yarn.lock
ADDED
@@ -0,0 +1,2219 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
2 |
+
# yarn lockfile v1
|
3 |
+
|
4 |
+
|
5 |
+
"@babel/code-frame@^7.14.5":
|
6 |
+
version "7.14.5"
|
7 |
+
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb"
|
8 |
+
integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==
|
9 |
+
dependencies:
|
10 |
+
"@babel/highlight" "^7.14.5"
|
11 |
+
|
12 |
+
"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.15.0":
|
13 |
+
version "7.15.0"
|
14 |
+
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.15.0.tgz#2dbaf8b85334796cafbb0f5793a90a2fc010b176"
|
15 |
+
integrity sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==
|
16 |
+
|
17 |
+
"@babel/core@^7.9.0":
|
18 |
+
version "7.15.5"
|
19 |
+
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.5.tgz#f8ed9ace730722544609f90c9bb49162dc3bf5b9"
|
20 |
+
integrity sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==
|
21 |
+
dependencies:
|
22 |
+
"@babel/code-frame" "^7.14.5"
|
23 |
+
"@babel/generator" "^7.15.4"
|
24 |
+
"@babel/helper-compilation-targets" "^7.15.4"
|
25 |
+
"@babel/helper-module-transforms" "^7.15.4"
|
26 |
+
"@babel/helpers" "^7.15.4"
|
27 |
+
"@babel/parser" "^7.15.5"
|
28 |
+
"@babel/template" "^7.15.4"
|
29 |
+
"@babel/traverse" "^7.15.4"
|
30 |
+
"@babel/types" "^7.15.4"
|
31 |
+
convert-source-map "^1.7.0"
|
32 |
+
debug "^4.1.0"
|
33 |
+
gensync "^1.0.0-beta.2"
|
34 |
+
json5 "^2.1.2"
|
35 |
+
semver "^6.3.0"
|
36 |
+
source-map "^0.5.0"
|
37 |
+
|
38 |
+
"@babel/generator@^7.15.4":
|
39 |
+
version "7.15.4"
|
40 |
+
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.4.tgz#85acb159a267ca6324f9793986991ee2022a05b0"
|
41 |
+
integrity sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==
|
42 |
+
dependencies:
|
43 |
+
"@babel/types" "^7.15.4"
|
44 |
+
jsesc "^2.5.1"
|
45 |
+
source-map "^0.5.0"
|
46 |
+
|
47 |
+
"@babel/helper-annotate-as-pure@^7.14.5", "@babel/helper-annotate-as-pure@^7.15.4":
|
48 |
+
version "7.15.4"
|
49 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz#3d0e43b00c5e49fdb6c57e421601a7a658d5f835"
|
50 |
+
integrity sha512-QwrtdNvUNsPCj2lfNQacsGSQvGX8ee1ttrBrcozUP2Sv/jylewBP/8QFe6ZkBsC8T/GYWonNAWJV4aRR9AL2DA==
|
51 |
+
dependencies:
|
52 |
+
"@babel/types" "^7.15.4"
|
53 |
+
|
54 |
+
"@babel/helper-builder-binary-assignment-operator-visitor@^7.14.5":
|
55 |
+
version "7.15.4"
|
56 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.15.4.tgz#21ad815f609b84ee0e3058676c33cf6d1670525f"
|
57 |
+
integrity sha512-P8o7JP2Mzi0SdC6eWr1zF+AEYvrsZa7GSY1lTayjF5XJhVH0kjLYUZPvTMflP7tBgZoe9gIhTa60QwFpqh/E0Q==
|
58 |
+
dependencies:
|
59 |
+
"@babel/helper-explode-assignable-expression" "^7.15.4"
|
60 |
+
"@babel/types" "^7.15.4"
|
61 |
+
|
62 |
+
"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.15.4":
|
63 |
+
version "7.15.4"
|
64 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz#cf6d94f30fbefc139123e27dd6b02f65aeedb7b9"
|
65 |
+
integrity sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==
|
66 |
+
dependencies:
|
67 |
+
"@babel/compat-data" "^7.15.0"
|
68 |
+
"@babel/helper-validator-option" "^7.14.5"
|
69 |
+
browserslist "^4.16.6"
|
70 |
+
semver "^6.3.0"
|
71 |
+
|
72 |
+
"@babel/helper-create-class-features-plugin@^7.14.5", "@babel/helper-create-class-features-plugin@^7.15.4":
|
73 |
+
version "7.15.4"
|
74 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.4.tgz#7f977c17bd12a5fba363cb19bea090394bf37d2e"
|
75 |
+
integrity sha512-7ZmzFi+DwJx6A7mHRwbuucEYpyBwmh2Ca0RvI6z2+WLZYCqV0JOaLb+u0zbtmDicebgKBZgqbYfLaKNqSgv5Pw==
|
76 |
+
dependencies:
|
77 |
+
"@babel/helper-annotate-as-pure" "^7.15.4"
|
78 |
+
"@babel/helper-function-name" "^7.15.4"
|
79 |
+
"@babel/helper-member-expression-to-functions" "^7.15.4"
|
80 |
+
"@babel/helper-optimise-call-expression" "^7.15.4"
|
81 |
+
"@babel/helper-replace-supers" "^7.15.4"
|
82 |
+
"@babel/helper-split-export-declaration" "^7.15.4"
|
83 |
+
|
84 |
+
"@babel/helper-create-regexp-features-plugin@^7.14.5":
|
85 |
+
version "7.14.5"
|
86 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz#c7d5ac5e9cf621c26057722fb7a8a4c5889358c4"
|
87 |
+
integrity sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A==
|
88 |
+
dependencies:
|
89 |
+
"@babel/helper-annotate-as-pure" "^7.14.5"
|
90 |
+
regexpu-core "^4.7.1"
|
91 |
+
|
92 |
+
"@babel/helper-define-polyfill-provider@^0.2.2":
|
93 |
+
version "0.2.3"
|
94 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz#0525edec5094653a282688d34d846e4c75e9c0b6"
|
95 |
+
integrity sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==
|
96 |
+
dependencies:
|
97 |
+
"@babel/helper-compilation-targets" "^7.13.0"
|
98 |
+
"@babel/helper-module-imports" "^7.12.13"
|
99 |
+
"@babel/helper-plugin-utils" "^7.13.0"
|
100 |
+
"@babel/traverse" "^7.13.0"
|
101 |
+
debug "^4.1.1"
|
102 |
+
lodash.debounce "^4.0.8"
|
103 |
+
resolve "^1.14.2"
|
104 |
+
semver "^6.1.2"
|
105 |
+
|
106 |
+
"@babel/helper-explode-assignable-expression@^7.15.4":
|
107 |
+
version "7.15.4"
|
108 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.15.4.tgz#f9aec9d219f271eaf92b9f561598ca6b2682600c"
|
109 |
+
integrity sha512-J14f/vq8+hdC2KoWLIQSsGrC9EFBKE4NFts8pfMpymfApds+fPqR30AOUWc4tyr56h9l/GA1Sxv2q3dLZWbQ/g==
|
110 |
+
dependencies:
|
111 |
+
"@babel/types" "^7.15.4"
|
112 |
+
|
113 |
+
"@babel/helper-function-name@^7.14.5", "@babel/helper-function-name@^7.15.4":
|
114 |
+
version "7.15.4"
|
115 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz#845744dafc4381a4a5fb6afa6c3d36f98a787ebc"
|
116 |
+
integrity sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==
|
117 |
+
dependencies:
|
118 |
+
"@babel/helper-get-function-arity" "^7.15.4"
|
119 |
+
"@babel/template" "^7.15.4"
|
120 |
+
"@babel/types" "^7.15.4"
|
121 |
+
|
122 |
+
"@babel/helper-get-function-arity@^7.15.4":
|
123 |
+
version "7.15.4"
|
124 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz#098818934a137fce78b536a3e015864be1e2879b"
|
125 |
+
integrity sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==
|
126 |
+
dependencies:
|
127 |
+
"@babel/types" "^7.15.4"
|
128 |
+
|
129 |
+
"@babel/helper-hoist-variables@^7.15.4":
|
130 |
+
version "7.15.4"
|
131 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz#09993a3259c0e918f99d104261dfdfc033f178df"
|
132 |
+
integrity sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==
|
133 |
+
dependencies:
|
134 |
+
"@babel/types" "^7.15.4"
|
135 |
+
|
136 |
+
"@babel/helper-member-expression-to-functions@^7.15.4":
|
137 |
+
version "7.15.4"
|
138 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz#bfd34dc9bba9824a4658b0317ec2fd571a51e6ef"
|
139 |
+
integrity sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==
|
140 |
+
dependencies:
|
141 |
+
"@babel/types" "^7.15.4"
|
142 |
+
|
143 |
+
"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.14.5", "@babel/helper-module-imports@^7.15.4":
|
144 |
+
version "7.15.4"
|
145 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz#e18007d230632dea19b47853b984476e7b4e103f"
|
146 |
+
integrity sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==
|
147 |
+
dependencies:
|
148 |
+
"@babel/types" "^7.15.4"
|
149 |
+
|
150 |
+
"@babel/helper-module-transforms@^7.14.5", "@babel/helper-module-transforms@^7.15.4":
|
151 |
+
version "7.15.7"
|
152 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.15.7.tgz#7da80c8cbc1f02655d83f8b79d25866afe50d226"
|
153 |
+
integrity sha512-ZNqjjQG/AuFfekFTY+7nY4RgBSklgTu970c7Rj3m/JOhIu5KPBUuTA9AY6zaKcUvk4g6EbDXdBnhi35FAssdSw==
|
154 |
+
dependencies:
|
155 |
+
"@babel/helper-module-imports" "^7.15.4"
|
156 |
+
"@babel/helper-replace-supers" "^7.15.4"
|
157 |
+
"@babel/helper-simple-access" "^7.15.4"
|
158 |
+
"@babel/helper-split-export-declaration" "^7.15.4"
|
159 |
+
"@babel/helper-validator-identifier" "^7.15.7"
|
160 |
+
"@babel/template" "^7.15.4"
|
161 |
+
"@babel/traverse" "^7.15.4"
|
162 |
+
"@babel/types" "^7.15.6"
|
163 |
+
|
164 |
+
"@babel/helper-optimise-call-expression@^7.15.4":
|
165 |
+
version "7.15.4"
|
166 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz#f310a5121a3b9cc52d9ab19122bd729822dee171"
|
167 |
+
integrity sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==
|
168 |
+
dependencies:
|
169 |
+
"@babel/types" "^7.15.4"
|
170 |
+
|
171 |
+
"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
|
172 |
+
version "7.14.5"
|
173 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9"
|
174 |
+
integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==
|
175 |
+
|
176 |
+
"@babel/helper-remap-async-to-generator@^7.14.5", "@babel/helper-remap-async-to-generator@^7.15.4":
|
177 |
+
version "7.15.4"
|
178 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.15.4.tgz#2637c0731e4c90fbf58ac58b50b2b5a192fc970f"
|
179 |
+
integrity sha512-v53MxgvMK/HCwckJ1bZrq6dNKlmwlyRNYM6ypaRTdXWGOE2c1/SCa6dL/HimhPulGhZKw9W0QhREM583F/t0vQ==
|
180 |
+
dependencies:
|
181 |
+
"@babel/helper-annotate-as-pure" "^7.15.4"
|
182 |
+
"@babel/helper-wrap-function" "^7.15.4"
|
183 |
+
"@babel/types" "^7.15.4"
|
184 |
+
|
185 |
+
"@babel/helper-replace-supers@^7.14.5", "@babel/helper-replace-supers@^7.15.4":
|
186 |
+
version "7.15.4"
|
187 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz#52a8ab26ba918c7f6dee28628b07071ac7b7347a"
|
188 |
+
integrity sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==
|
189 |
+
dependencies:
|
190 |
+
"@babel/helper-member-expression-to-functions" "^7.15.4"
|
191 |
+
"@babel/helper-optimise-call-expression" "^7.15.4"
|
192 |
+
"@babel/traverse" "^7.15.4"
|
193 |
+
"@babel/types" "^7.15.4"
|
194 |
+
|
195 |
+
"@babel/helper-simple-access@^7.15.4":
|
196 |
+
version "7.15.4"
|
197 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz#ac368905abf1de8e9781434b635d8f8674bcc13b"
|
198 |
+
integrity sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==
|
199 |
+
dependencies:
|
200 |
+
"@babel/types" "^7.15.4"
|
201 |
+
|
202 |
+
"@babel/helper-skip-transparent-expression-wrappers@^7.14.5", "@babel/helper-skip-transparent-expression-wrappers@^7.15.4":
|
203 |
+
version "7.15.4"
|
204 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.15.4.tgz#707dbdba1f4ad0fa34f9114fc8197aec7d5da2eb"
|
205 |
+
integrity sha512-BMRLsdh+D1/aap19TycS4eD1qELGrCBJwzaY9IE8LrpJtJb+H7rQkPIdsfgnMtLBA6DJls7X9z93Z4U8h7xw0A==
|
206 |
+
dependencies:
|
207 |
+
"@babel/types" "^7.15.4"
|
208 |
+
|
209 |
+
"@babel/helper-split-export-declaration@^7.15.4":
|
210 |
+
version "7.15.4"
|
211 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz#aecab92dcdbef6a10aa3b62ab204b085f776e257"
|
212 |
+
integrity sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==
|
213 |
+
dependencies:
|
214 |
+
"@babel/types" "^7.15.4"
|
215 |
+
|
216 |
+
"@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9", "@babel/helper-validator-identifier@^7.15.7":
|
217 |
+
version "7.15.7"
|
218 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389"
|
219 |
+
integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==
|
220 |
+
|
221 |
+
"@babel/helper-validator-option@^7.14.5":
|
222 |
+
version "7.14.5"
|
223 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3"
|
224 |
+
integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==
|
225 |
+
|
226 |
+
"@babel/helper-wrap-function@^7.15.4":
|
227 |
+
version "7.15.4"
|
228 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.15.4.tgz#6f754b2446cfaf3d612523e6ab8d79c27c3a3de7"
|
229 |
+
integrity sha512-Y2o+H/hRV5W8QhIfTpRIBwl57y8PrZt6JM3V8FOo5qarjshHItyH5lXlpMfBfmBefOqSCpKZs/6Dxqp0E/U+uw==
|
230 |
+
dependencies:
|
231 |
+
"@babel/helper-function-name" "^7.15.4"
|
232 |
+
"@babel/template" "^7.15.4"
|
233 |
+
"@babel/traverse" "^7.15.4"
|
234 |
+
"@babel/types" "^7.15.4"
|
235 |
+
|
236 |
+
"@babel/helpers@^7.15.4":
|
237 |
+
version "7.15.4"
|
238 |
+
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.15.4.tgz#5f40f02050a3027121a3cf48d497c05c555eaf43"
|
239 |
+
integrity sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==
|
240 |
+
dependencies:
|
241 |
+
"@babel/template" "^7.15.4"
|
242 |
+
"@babel/traverse" "^7.15.4"
|
243 |
+
"@babel/types" "^7.15.4"
|
244 |
+
|
245 |
+
"@babel/highlight@^7.14.5":
|
246 |
+
version "7.14.5"
|
247 |
+
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9"
|
248 |
+
integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==
|
249 |
+
dependencies:
|
250 |
+
"@babel/helper-validator-identifier" "^7.14.5"
|
251 |
+
chalk "^2.0.0"
|
252 |
+
js-tokens "^4.0.0"
|
253 |
+
|
254 |
+
"@babel/parser@^7.15.4", "@babel/parser@^7.15.5":
|
255 |
+
version "7.15.7"
|
256 |
+
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.7.tgz#0c3ed4a2eb07b165dfa85b3cc45c727334c4edae"
|
257 |
+
integrity sha512-rycZXvQ+xS9QyIcJ9HXeDWf1uxqlbVFAUq0Rq0dbc50Zb/+wUe/ehyfzGfm9KZZF0kBejYgxltBXocP+gKdL2g==
|
258 |
+
|
259 |
+
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.15.4":
|
260 |
+
version "7.15.4"
|
261 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.15.4.tgz#dbdeabb1e80f622d9f0b583efb2999605e0a567e"
|
262 |
+
integrity sha512-eBnpsl9tlhPhpI10kU06JHnrYXwg3+V6CaP2idsCXNef0aeslpqyITXQ74Vfk5uHgY7IG7XP0yIH8b42KSzHog==
|
263 |
+
dependencies:
|
264 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
265 |
+
"@babel/helper-skip-transparent-expression-wrappers" "^7.15.4"
|
266 |
+
"@babel/plugin-proposal-optional-chaining" "^7.14.5"
|
267 |
+
|
268 |
+
"@babel/plugin-proposal-async-generator-functions@^7.15.4":
|
269 |
+
version "7.15.4"
|
270 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.4.tgz#f82aabe96c135d2ceaa917feb9f5fca31635277e"
|
271 |
+
integrity sha512-2zt2g5vTXpMC3OmK6uyjvdXptbhBXfA77XGrd3gh93zwG8lZYBLOBImiGBEG0RANu3JqKEACCz5CGk73OJROBw==
|
272 |
+
dependencies:
|
273 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
274 |
+
"@babel/helper-remap-async-to-generator" "^7.15.4"
|
275 |
+
"@babel/plugin-syntax-async-generators" "^7.8.4"
|
276 |
+
|
277 |
+
"@babel/plugin-proposal-class-properties@^7.14.5":
|
278 |
+
version "7.14.5"
|
279 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz#40d1ee140c5b1e31a350f4f5eed945096559b42e"
|
280 |
+
integrity sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==
|
281 |
+
dependencies:
|
282 |
+
"@babel/helper-create-class-features-plugin" "^7.14.5"
|
283 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
284 |
+
|
285 |
+
"@babel/plugin-proposal-class-static-block@^7.15.4":
|
286 |
+
version "7.15.4"
|
287 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.15.4.tgz#3e7ca6128453c089e8b477a99f970c63fc1cb8d7"
|
288 |
+
integrity sha512-M682XWrrLNk3chXCjoPUQWOyYsB93B9z3mRyjtqqYJWDf2mfCdIYgDrA11cgNVhAQieaq6F2fn2f3wI0U4aTjA==
|
289 |
+
dependencies:
|
290 |
+
"@babel/helper-create-class-features-plugin" "^7.15.4"
|
291 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
292 |
+
"@babel/plugin-syntax-class-static-block" "^7.14.5"
|
293 |
+
|
294 |
+
"@babel/plugin-proposal-dynamic-import@^7.14.5":
|
295 |
+
version "7.14.5"
|
296 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz#0c6617df461c0c1f8fff3b47cd59772360101d2c"
|
297 |
+
integrity sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g==
|
298 |
+
dependencies:
|
299 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
300 |
+
"@babel/plugin-syntax-dynamic-import" "^7.8.3"
|
301 |
+
|
302 |
+
"@babel/plugin-proposal-export-namespace-from@^7.14.5":
|
303 |
+
version "7.14.5"
|
304 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz#dbad244310ce6ccd083072167d8cea83a52faf76"
|
305 |
+
integrity sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA==
|
306 |
+
dependencies:
|
307 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
308 |
+
"@babel/plugin-syntax-export-namespace-from" "^7.8.3"
|
309 |
+
|
310 |
+
"@babel/plugin-proposal-json-strings@^7.14.5":
|
311 |
+
version "7.14.5"
|
312 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz#38de60db362e83a3d8c944ac858ddf9f0c2239eb"
|
313 |
+
integrity sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ==
|
314 |
+
dependencies:
|
315 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
316 |
+
"@babel/plugin-syntax-json-strings" "^7.8.3"
|
317 |
+
|
318 |
+
"@babel/plugin-proposal-logical-assignment-operators@^7.14.5":
|
319 |
+
version "7.14.5"
|
320 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz#6e6229c2a99b02ab2915f82571e0cc646a40c738"
|
321 |
+
integrity sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw==
|
322 |
+
dependencies:
|
323 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
324 |
+
"@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
|
325 |
+
|
326 |
+
"@babel/plugin-proposal-nullish-coalescing-operator@^7.14.5":
|
327 |
+
version "7.14.5"
|
328 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz#ee38589ce00e2cc59b299ec3ea406fcd3a0fdaf6"
|
329 |
+
integrity sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==
|
330 |
+
dependencies:
|
331 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
332 |
+
"@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
|
333 |
+
|
334 |
+
"@babel/plugin-proposal-numeric-separator@^7.14.5":
|
335 |
+
version "7.14.5"
|
336 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz#83631bf33d9a51df184c2102a069ac0c58c05f18"
|
337 |
+
integrity sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg==
|
338 |
+
dependencies:
|
339 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
340 |
+
"@babel/plugin-syntax-numeric-separator" "^7.10.4"
|
341 |
+
|
342 |
+
"@babel/plugin-proposal-object-rest-spread@^7.15.6":
|
343 |
+
version "7.15.6"
|
344 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.15.6.tgz#ef68050c8703d07b25af402cb96cf7f34a68ed11"
|
345 |
+
integrity sha512-qtOHo7A1Vt+O23qEAX+GdBpqaIuD3i9VRrWgCJeq7WO6H2d14EK3q11urj5Te2MAeK97nMiIdRpwd/ST4JFbNg==
|
346 |
+
dependencies:
|
347 |
+
"@babel/compat-data" "^7.15.0"
|
348 |
+
"@babel/helper-compilation-targets" "^7.15.4"
|
349 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
350 |
+
"@babel/plugin-syntax-object-rest-spread" "^7.8.3"
|
351 |
+
"@babel/plugin-transform-parameters" "^7.15.4"
|
352 |
+
|
353 |
+
"@babel/plugin-proposal-optional-catch-binding@^7.14.5":
|
354 |
+
version "7.14.5"
|
355 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz#939dd6eddeff3a67fdf7b3f044b5347262598c3c"
|
356 |
+
integrity sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ==
|
357 |
+
dependencies:
|
358 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
359 |
+
"@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
|
360 |
+
|
361 |
+
"@babel/plugin-proposal-optional-chaining@^7.14.5":
|
362 |
+
version "7.14.5"
|
363 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz#fa83651e60a360e3f13797eef00b8d519695b603"
|
364 |
+
integrity sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==
|
365 |
+
dependencies:
|
366 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
367 |
+
"@babel/helper-skip-transparent-expression-wrappers" "^7.14.5"
|
368 |
+
"@babel/plugin-syntax-optional-chaining" "^7.8.3"
|
369 |
+
|
370 |
+
"@babel/plugin-proposal-private-methods@^7.14.5":
|
371 |
+
version "7.14.5"
|
372 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz#37446495996b2945f30f5be5b60d5e2aa4f5792d"
|
373 |
+
integrity sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g==
|
374 |
+
dependencies:
|
375 |
+
"@babel/helper-create-class-features-plugin" "^7.14.5"
|
376 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
377 |
+
|
378 |
+
"@babel/plugin-proposal-private-property-in-object@^7.15.4":
|
379 |
+
version "7.15.4"
|
380 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.15.4.tgz#55c5e3b4d0261fd44fe637e3f624cfb0f484e3e5"
|
381 |
+
integrity sha512-X0UTixkLf0PCCffxgu5/1RQyGGbgZuKoI+vXP4iSbJSYwPb7hu06omsFGBvQ9lJEvwgrxHdS8B5nbfcd8GyUNA==
|
382 |
+
dependencies:
|
383 |
+
"@babel/helper-annotate-as-pure" "^7.15.4"
|
384 |
+
"@babel/helper-create-class-features-plugin" "^7.15.4"
|
385 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
386 |
+
"@babel/plugin-syntax-private-property-in-object" "^7.14.5"
|
387 |
+
|
388 |
+
"@babel/plugin-proposal-unicode-property-regex@^7.14.5", "@babel/plugin-proposal-unicode-property-regex@^7.4.4":
|
389 |
+
version "7.14.5"
|
390 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz#0f95ee0e757a5d647f378daa0eca7e93faa8bbe8"
|
391 |
+
integrity sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q==
|
392 |
+
dependencies:
|
393 |
+
"@babel/helper-create-regexp-features-plugin" "^7.14.5"
|
394 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
395 |
+
|
396 |
+
"@babel/plugin-syntax-async-generators@^7.8.4":
|
397 |
+
version "7.8.4"
|
398 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
|
399 |
+
integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
|
400 |
+
dependencies:
|
401 |
+
"@babel/helper-plugin-utils" "^7.8.0"
|
402 |
+
|
403 |
+
"@babel/plugin-syntax-class-properties@^7.12.13":
|
404 |
+
version "7.12.13"
|
405 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10"
|
406 |
+
integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==
|
407 |
+
dependencies:
|
408 |
+
"@babel/helper-plugin-utils" "^7.12.13"
|
409 |
+
|
410 |
+
"@babel/plugin-syntax-class-static-block@^7.14.5":
|
411 |
+
version "7.14.5"
|
412 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406"
|
413 |
+
integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==
|
414 |
+
dependencies:
|
415 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
416 |
+
|
417 |
+
"@babel/plugin-syntax-dynamic-import@^7.8.3":
|
418 |
+
version "7.8.3"
|
419 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3"
|
420 |
+
integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==
|
421 |
+
dependencies:
|
422 |
+
"@babel/helper-plugin-utils" "^7.8.0"
|
423 |
+
|
424 |
+
"@babel/plugin-syntax-export-namespace-from@^7.8.3":
|
425 |
+
version "7.8.3"
|
426 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a"
|
427 |
+
integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==
|
428 |
+
dependencies:
|
429 |
+
"@babel/helper-plugin-utils" "^7.8.3"
|
430 |
+
|
431 |
+
"@babel/plugin-syntax-json-strings@^7.8.3":
|
432 |
+
version "7.8.3"
|
433 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
|
434 |
+
integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
|
435 |
+
dependencies:
|
436 |
+
"@babel/helper-plugin-utils" "^7.8.0"
|
437 |
+
|
438 |
+
"@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
|
439 |
+
version "7.10.4"
|
440 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
|
441 |
+
integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
|
442 |
+
dependencies:
|
443 |
+
"@babel/helper-plugin-utils" "^7.10.4"
|
444 |
+
|
445 |
+
"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
|
446 |
+
version "7.8.3"
|
447 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
|
448 |
+
integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
|
449 |
+
dependencies:
|
450 |
+
"@babel/helper-plugin-utils" "^7.8.0"
|
451 |
+
|
452 |
+
"@babel/plugin-syntax-numeric-separator@^7.10.4":
|
453 |
+
version "7.10.4"
|
454 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97"
|
455 |
+
integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
|
456 |
+
dependencies:
|
457 |
+
"@babel/helper-plugin-utils" "^7.10.4"
|
458 |
+
|
459 |
+
"@babel/plugin-syntax-object-rest-spread@^7.8.3":
|
460 |
+
version "7.8.3"
|
461 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
|
462 |
+
integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
|
463 |
+
dependencies:
|
464 |
+
"@babel/helper-plugin-utils" "^7.8.0"
|
465 |
+
|
466 |
+
"@babel/plugin-syntax-optional-catch-binding@^7.8.3":
|
467 |
+
version "7.8.3"
|
468 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"
|
469 |
+
integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
|
470 |
+
dependencies:
|
471 |
+
"@babel/helper-plugin-utils" "^7.8.0"
|
472 |
+
|
473 |
+
"@babel/plugin-syntax-optional-chaining@^7.8.3":
|
474 |
+
version "7.8.3"
|
475 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a"
|
476 |
+
integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
|
477 |
+
dependencies:
|
478 |
+
"@babel/helper-plugin-utils" "^7.8.0"
|
479 |
+
|
480 |
+
"@babel/plugin-syntax-private-property-in-object@^7.14.5":
|
481 |
+
version "7.14.5"
|
482 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad"
|
483 |
+
integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==
|
484 |
+
dependencies:
|
485 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
486 |
+
|
487 |
+
"@babel/plugin-syntax-top-level-await@^7.14.5":
|
488 |
+
version "7.14.5"
|
489 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c"
|
490 |
+
integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==
|
491 |
+
dependencies:
|
492 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
493 |
+
|
494 |
+
"@babel/plugin-transform-arrow-functions@^7.14.5":
|
495 |
+
version "7.14.5"
|
496 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz#f7187d9588a768dd080bf4c9ffe117ea62f7862a"
|
497 |
+
integrity sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A==
|
498 |
+
dependencies:
|
499 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
500 |
+
|
501 |
+
"@babel/plugin-transform-async-to-generator@^7.14.5":
|
502 |
+
version "7.14.5"
|
503 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz#72c789084d8f2094acb945633943ef8443d39e67"
|
504 |
+
integrity sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==
|
505 |
+
dependencies:
|
506 |
+
"@babel/helper-module-imports" "^7.14.5"
|
507 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
508 |
+
"@babel/helper-remap-async-to-generator" "^7.14.5"
|
509 |
+
|
510 |
+
"@babel/plugin-transform-block-scoped-functions@^7.14.5":
|
511 |
+
version "7.14.5"
|
512 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz#e48641d999d4bc157a67ef336aeb54bc44fd3ad4"
|
513 |
+
integrity sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ==
|
514 |
+
dependencies:
|
515 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
516 |
+
|
517 |
+
"@babel/plugin-transform-block-scoping@^7.15.3":
|
518 |
+
version "7.15.3"
|
519 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz#94c81a6e2fc230bcce6ef537ac96a1e4d2b3afaf"
|
520 |
+
integrity sha512-nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q==
|
521 |
+
dependencies:
|
522 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
523 |
+
|
524 |
+
"@babel/plugin-transform-classes@^7.15.4":
|
525 |
+
version "7.15.4"
|
526 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.15.4.tgz#50aee17aaf7f332ae44e3bce4c2e10534d5d3bf1"
|
527 |
+
integrity sha512-Yjvhex8GzBmmPQUvpXRPWQ9WnxXgAFuZSrqOK/eJlOGIXwvv8H3UEdUigl1gb/bnjTrln+e8bkZUYCBt/xYlBg==
|
528 |
+
dependencies:
|
529 |
+
"@babel/helper-annotate-as-pure" "^7.15.4"
|
530 |
+
"@babel/helper-function-name" "^7.15.4"
|
531 |
+
"@babel/helper-optimise-call-expression" "^7.15.4"
|
532 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
533 |
+
"@babel/helper-replace-supers" "^7.15.4"
|
534 |
+
"@babel/helper-split-export-declaration" "^7.15.4"
|
535 |
+
globals "^11.1.0"
|
536 |
+
|
537 |
+
"@babel/plugin-transform-computed-properties@^7.14.5":
|
538 |
+
version "7.14.5"
|
539 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz#1b9d78987420d11223d41195461cc43b974b204f"
|
540 |
+
integrity sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg==
|
541 |
+
dependencies:
|
542 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
543 |
+
|
544 |
+
"@babel/plugin-transform-destructuring@^7.14.7":
|
545 |
+
version "7.14.7"
|
546 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz#0ad58ed37e23e22084d109f185260835e5557576"
|
547 |
+
integrity sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw==
|
548 |
+
dependencies:
|
549 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
550 |
+
|
551 |
+
"@babel/plugin-transform-dotall-regex@^7.14.5", "@babel/plugin-transform-dotall-regex@^7.4.4":
|
552 |
+
version "7.14.5"
|
553 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz#2f6bf76e46bdf8043b4e7e16cf24532629ba0c7a"
|
554 |
+
integrity sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw==
|
555 |
+
dependencies:
|
556 |
+
"@babel/helper-create-regexp-features-plugin" "^7.14.5"
|
557 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
558 |
+
|
559 |
+
"@babel/plugin-transform-duplicate-keys@^7.14.5":
|
560 |
+
version "7.14.5"
|
561 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz#365a4844881bdf1501e3a9f0270e7f0f91177954"
|
562 |
+
integrity sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A==
|
563 |
+
dependencies:
|
564 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
565 |
+
|
566 |
+
"@babel/plugin-transform-exponentiation-operator@^7.14.5":
|
567 |
+
version "7.14.5"
|
568 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz#5154b8dd6a3dfe6d90923d61724bd3deeb90b493"
|
569 |
+
integrity sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==
|
570 |
+
dependencies:
|
571 |
+
"@babel/helper-builder-binary-assignment-operator-visitor" "^7.14.5"
|
572 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
573 |
+
|
574 |
+
"@babel/plugin-transform-for-of@^7.15.4":
|
575 |
+
version "7.15.4"
|
576 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.15.4.tgz#25c62cce2718cfb29715f416e75d5263fb36a8c2"
|
577 |
+
integrity sha512-DRTY9fA751AFBDh2oxydvVm4SYevs5ILTWLs6xKXps4Re/KG5nfUkr+TdHCrRWB8C69TlzVgA9b3RmGWmgN9LA==
|
578 |
+
dependencies:
|
579 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
580 |
+
|
581 |
+
"@babel/plugin-transform-function-name@^7.14.5":
|
582 |
+
version "7.14.5"
|
583 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz#e81c65ecb900746d7f31802f6bed1f52d915d6f2"
|
584 |
+
integrity sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ==
|
585 |
+
dependencies:
|
586 |
+
"@babel/helper-function-name" "^7.14.5"
|
587 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
588 |
+
|
589 |
+
"@babel/plugin-transform-literals@^7.14.5":
|
590 |
+
version "7.14.5"
|
591 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz#41d06c7ff5d4d09e3cf4587bd3ecf3930c730f78"
|
592 |
+
integrity sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A==
|
593 |
+
dependencies:
|
594 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
595 |
+
|
596 |
+
"@babel/plugin-transform-member-expression-literals@^7.14.5":
|
597 |
+
version "7.14.5"
|
598 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz#b39cd5212a2bf235a617d320ec2b48bcc091b8a7"
|
599 |
+
integrity sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q==
|
600 |
+
dependencies:
|
601 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
602 |
+
|
603 |
+
"@babel/plugin-transform-modules-amd@^7.14.5":
|
604 |
+
version "7.14.5"
|
605 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz#4fd9ce7e3411cb8b83848480b7041d83004858f7"
|
606 |
+
integrity sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g==
|
607 |
+
dependencies:
|
608 |
+
"@babel/helper-module-transforms" "^7.14.5"
|
609 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
610 |
+
babel-plugin-dynamic-import-node "^2.3.3"
|
611 |
+
|
612 |
+
"@babel/plugin-transform-modules-commonjs@^7.15.4":
|
613 |
+
version "7.15.4"
|
614 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.4.tgz#8201101240eabb5a76c08ef61b2954f767b6b4c1"
|
615 |
+
integrity sha512-qg4DPhwG8hKp4BbVDvX1s8cohM8a6Bvptu4l6Iingq5rW+yRUAhe/YRup/YcW2zCOlrysEWVhftIcKzrEZv3sA==
|
616 |
+
dependencies:
|
617 |
+
"@babel/helper-module-transforms" "^7.15.4"
|
618 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
619 |
+
"@babel/helper-simple-access" "^7.15.4"
|
620 |
+
babel-plugin-dynamic-import-node "^2.3.3"
|
621 |
+
|
622 |
+
"@babel/plugin-transform-modules-systemjs@^7.15.4":
|
623 |
+
version "7.15.4"
|
624 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.15.4.tgz#b42890c7349a78c827719f1d2d0cd38c7d268132"
|
625 |
+
integrity sha512-fJUnlQrl/mezMneR72CKCgtOoahqGJNVKpompKwzv3BrEXdlPspTcyxrZ1XmDTIr9PpULrgEQo3qNKp6dW7ssw==
|
626 |
+
dependencies:
|
627 |
+
"@babel/helper-hoist-variables" "^7.15.4"
|
628 |
+
"@babel/helper-module-transforms" "^7.15.4"
|
629 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
630 |
+
"@babel/helper-validator-identifier" "^7.14.9"
|
631 |
+
babel-plugin-dynamic-import-node "^2.3.3"
|
632 |
+
|
633 |
+
"@babel/plugin-transform-modules-umd@^7.14.5":
|
634 |
+
version "7.14.5"
|
635 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz#fb662dfee697cce274a7cda525190a79096aa6e0"
|
636 |
+
integrity sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA==
|
637 |
+
dependencies:
|
638 |
+
"@babel/helper-module-transforms" "^7.14.5"
|
639 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
640 |
+
|
641 |
+
"@babel/plugin-transform-named-capturing-groups-regex@^7.14.9":
|
642 |
+
version "7.14.9"
|
643 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.9.tgz#c68f5c5d12d2ebaba3762e57c2c4f6347a46e7b2"
|
644 |
+
integrity sha512-l666wCVYO75mlAtGFfyFwnWmIXQm3kSH0C3IRnJqWcZbWkoihyAdDhFm2ZWaxWTqvBvhVFfJjMRQ0ez4oN1yYA==
|
645 |
+
dependencies:
|
646 |
+
"@babel/helper-create-regexp-features-plugin" "^7.14.5"
|
647 |
+
|
648 |
+
"@babel/plugin-transform-new-target@^7.14.5":
|
649 |
+
version "7.14.5"
|
650 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz#31bdae8b925dc84076ebfcd2a9940143aed7dbf8"
|
651 |
+
integrity sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ==
|
652 |
+
dependencies:
|
653 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
654 |
+
|
655 |
+
"@babel/plugin-transform-object-super@^7.14.5":
|
656 |
+
version "7.14.5"
|
657 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz#d0b5faeac9e98597a161a9cf78c527ed934cdc45"
|
658 |
+
integrity sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg==
|
659 |
+
dependencies:
|
660 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
661 |
+
"@babel/helper-replace-supers" "^7.14.5"
|
662 |
+
|
663 |
+
"@babel/plugin-transform-parameters@^7.15.4":
|
664 |
+
version "7.15.4"
|
665 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.15.4.tgz#5f2285cc3160bf48c8502432716b48504d29ed62"
|
666 |
+
integrity sha512-9WB/GUTO6lvJU3XQsSr6J/WKvBC2hcs4Pew8YxZagi6GkTdniyqp8On5kqdK8MN0LMeu0mGbhPN+O049NV/9FQ==
|
667 |
+
dependencies:
|
668 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
669 |
+
|
670 |
+
"@babel/plugin-transform-property-literals@^7.14.5":
|
671 |
+
version "7.14.5"
|
672 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz#0ddbaa1f83db3606f1cdf4846fa1dfb473458b34"
|
673 |
+
integrity sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw==
|
674 |
+
dependencies:
|
675 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
676 |
+
|
677 |
+
"@babel/plugin-transform-regenerator@^7.14.5":
|
678 |
+
version "7.14.5"
|
679 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz#9676fd5707ed28f522727c5b3c0aa8544440b04f"
|
680 |
+
integrity sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg==
|
681 |
+
dependencies:
|
682 |
+
regenerator-transform "^0.14.2"
|
683 |
+
|
684 |
+
"@babel/plugin-transform-reserved-words@^7.14.5":
|
685 |
+
version "7.14.5"
|
686 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz#c44589b661cfdbef8d4300dcc7469dffa92f8304"
|
687 |
+
integrity sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg==
|
688 |
+
dependencies:
|
689 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
690 |
+
|
691 |
+
"@babel/plugin-transform-shorthand-properties@^7.14.5":
|
692 |
+
version "7.14.5"
|
693 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz#97f13855f1409338d8cadcbaca670ad79e091a58"
|
694 |
+
integrity sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g==
|
695 |
+
dependencies:
|
696 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
697 |
+
|
698 |
+
"@babel/plugin-transform-spread@^7.14.6":
|
699 |
+
version "7.14.6"
|
700 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz#6bd40e57fe7de94aa904851963b5616652f73144"
|
701 |
+
integrity sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==
|
702 |
+
dependencies:
|
703 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
704 |
+
"@babel/helper-skip-transparent-expression-wrappers" "^7.14.5"
|
705 |
+
|
706 |
+
"@babel/plugin-transform-sticky-regex@^7.14.5":
|
707 |
+
version "7.14.5"
|
708 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz#5b617542675e8b7761294381f3c28c633f40aeb9"
|
709 |
+
integrity sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A==
|
710 |
+
dependencies:
|
711 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
712 |
+
|
713 |
+
"@babel/plugin-transform-template-literals@^7.14.5":
|
714 |
+
version "7.14.5"
|
715 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz#a5f2bc233937d8453885dc736bdd8d9ffabf3d93"
|
716 |
+
integrity sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg==
|
717 |
+
dependencies:
|
718 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
719 |
+
|
720 |
+
"@babel/plugin-transform-typeof-symbol@^7.14.5":
|
721 |
+
version "7.14.5"
|
722 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz#39af2739e989a2bd291bf6b53f16981423d457d4"
|
723 |
+
integrity sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw==
|
724 |
+
dependencies:
|
725 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
726 |
+
|
727 |
+
"@babel/plugin-transform-unicode-escapes@^7.14.5":
|
728 |
+
version "7.14.5"
|
729 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz#9d4bd2a681e3c5d7acf4f57fa9e51175d91d0c6b"
|
730 |
+
integrity sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA==
|
731 |
+
dependencies:
|
732 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
733 |
+
|
734 |
+
"@babel/plugin-transform-unicode-regex@^7.14.5":
|
735 |
+
version "7.14.5"
|
736 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz#4cd09b6c8425dd81255c7ceb3fb1836e7414382e"
|
737 |
+
integrity sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw==
|
738 |
+
dependencies:
|
739 |
+
"@babel/helper-create-regexp-features-plugin" "^7.14.5"
|
740 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
741 |
+
|
742 |
+
"@babel/preset-env@^7.9.5":
|
743 |
+
version "7.15.6"
|
744 |
+
resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.15.6.tgz#0f3898db9d63d320f21b17380d8462779de57659"
|
745 |
+
integrity sha512-L+6jcGn7EWu7zqaO2uoTDjjMBW+88FXzV8KvrBl2z6MtRNxlsmUNRlZPaNNPUTgqhyC5DHNFk/2Jmra+ublZWw==
|
746 |
+
dependencies:
|
747 |
+
"@babel/compat-data" "^7.15.0"
|
748 |
+
"@babel/helper-compilation-targets" "^7.15.4"
|
749 |
+
"@babel/helper-plugin-utils" "^7.14.5"
|
750 |
+
"@babel/helper-validator-option" "^7.14.5"
|
751 |
+
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.15.4"
|
752 |
+
"@babel/plugin-proposal-async-generator-functions" "^7.15.4"
|
753 |
+
"@babel/plugin-proposal-class-properties" "^7.14.5"
|
754 |
+
"@babel/plugin-proposal-class-static-block" "^7.15.4"
|
755 |
+
"@babel/plugin-proposal-dynamic-import" "^7.14.5"
|
756 |
+
"@babel/plugin-proposal-export-namespace-from" "^7.14.5"
|
757 |
+
"@babel/plugin-proposal-json-strings" "^7.14.5"
|
758 |
+
"@babel/plugin-proposal-logical-assignment-operators" "^7.14.5"
|
759 |
+
"@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.5"
|
760 |
+
"@babel/plugin-proposal-numeric-separator" "^7.14.5"
|
761 |
+
"@babel/plugin-proposal-object-rest-spread" "^7.15.6"
|
762 |
+
"@babel/plugin-proposal-optional-catch-binding" "^7.14.5"
|
763 |
+
"@babel/plugin-proposal-optional-chaining" "^7.14.5"
|
764 |
+
"@babel/plugin-proposal-private-methods" "^7.14.5"
|
765 |
+
"@babel/plugin-proposal-private-property-in-object" "^7.15.4"
|
766 |
+
"@babel/plugin-proposal-unicode-property-regex" "^7.14.5"
|
767 |
+
"@babel/plugin-syntax-async-generators" "^7.8.4"
|
768 |
+
"@babel/plugin-syntax-class-properties" "^7.12.13"
|
769 |
+
"@babel/plugin-syntax-class-static-block" "^7.14.5"
|
770 |
+
"@babel/plugin-syntax-dynamic-import" "^7.8.3"
|
771 |
+
"@babel/plugin-syntax-export-namespace-from" "^7.8.3"
|
772 |
+
"@babel/plugin-syntax-json-strings" "^7.8.3"
|
773 |
+
"@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
|
774 |
+
"@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
|
775 |
+
"@babel/plugin-syntax-numeric-separator" "^7.10.4"
|
776 |
+
"@babel/plugin-syntax-object-rest-spread" "^7.8.3"
|
777 |
+
"@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
|
778 |
+
"@babel/plugin-syntax-optional-chaining" "^7.8.3"
|
779 |
+
"@babel/plugin-syntax-private-property-in-object" "^7.14.5"
|
780 |
+
"@babel/plugin-syntax-top-level-await" "^7.14.5"
|
781 |
+
"@babel/plugin-transform-arrow-functions" "^7.14.5"
|
782 |
+
"@babel/plugin-transform-async-to-generator" "^7.14.5"
|
783 |
+
"@babel/plugin-transform-block-scoped-functions" "^7.14.5"
|
784 |
+
"@babel/plugin-transform-block-scoping" "^7.15.3"
|
785 |
+
"@babel/plugin-transform-classes" "^7.15.4"
|
786 |
+
"@babel/plugin-transform-computed-properties" "^7.14.5"
|
787 |
+
"@babel/plugin-transform-destructuring" "^7.14.7"
|
788 |
+
"@babel/plugin-transform-dotall-regex" "^7.14.5"
|
789 |
+
"@babel/plugin-transform-duplicate-keys" "^7.14.5"
|
790 |
+
"@babel/plugin-transform-exponentiation-operator" "^7.14.5"
|
791 |
+
"@babel/plugin-transform-for-of" "^7.15.4"
|
792 |
+
"@babel/plugin-transform-function-name" "^7.14.5"
|
793 |
+
"@babel/plugin-transform-literals" "^7.14.5"
|
794 |
+
"@babel/plugin-transform-member-expression-literals" "^7.14.5"
|
795 |
+
"@babel/plugin-transform-modules-amd" "^7.14.5"
|
796 |
+
"@babel/plugin-transform-modules-commonjs" "^7.15.4"
|
797 |
+
"@babel/plugin-transform-modules-systemjs" "^7.15.4"
|
798 |
+
"@babel/plugin-transform-modules-umd" "^7.14.5"
|
799 |
+
"@babel/plugin-transform-named-capturing-groups-regex" "^7.14.9"
|
800 |
+
"@babel/plugin-transform-new-target" "^7.14.5"
|
801 |
+
"@babel/plugin-transform-object-super" "^7.14.5"
|
802 |
+
"@babel/plugin-transform-parameters" "^7.15.4"
|
803 |
+
"@babel/plugin-transform-property-literals" "^7.14.5"
|
804 |
+
"@babel/plugin-transform-regenerator" "^7.14.5"
|
805 |
+
"@babel/plugin-transform-reserved-words" "^7.14.5"
|
806 |
+
"@babel/plugin-transform-shorthand-properties" "^7.14.5"
|
807 |
+
"@babel/plugin-transform-spread" "^7.14.6"
|
808 |
+
"@babel/plugin-transform-sticky-regex" "^7.14.5"
|
809 |
+
"@babel/plugin-transform-template-literals" "^7.14.5"
|
810 |
+
"@babel/plugin-transform-typeof-symbol" "^7.14.5"
|
811 |
+
"@babel/plugin-transform-unicode-escapes" "^7.14.5"
|
812 |
+
"@babel/plugin-transform-unicode-regex" "^7.14.5"
|
813 |
+
"@babel/preset-modules" "^0.1.4"
|
814 |
+
"@babel/types" "^7.15.6"
|
815 |
+
babel-plugin-polyfill-corejs2 "^0.2.2"
|
816 |
+
babel-plugin-polyfill-corejs3 "^0.2.2"
|
817 |
+
babel-plugin-polyfill-regenerator "^0.2.2"
|
818 |
+
core-js-compat "^3.16.0"
|
819 |
+
semver "^6.3.0"
|
820 |
+
|
821 |
+
"@babel/preset-modules@^0.1.4":
|
822 |
+
version "0.1.4"
|
823 |
+
resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e"
|
824 |
+
integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==
|
825 |
+
dependencies:
|
826 |
+
"@babel/helper-plugin-utils" "^7.0.0"
|
827 |
+
"@babel/plugin-proposal-unicode-property-regex" "^7.4.4"
|
828 |
+
"@babel/plugin-transform-dotall-regex" "^7.4.4"
|
829 |
+
"@babel/types" "^7.4.4"
|
830 |
+
esutils "^2.0.2"
|
831 |
+
|
832 |
+
"@babel/runtime@^7.8.4":
|
833 |
+
version "7.15.4"
|
834 |
+
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.4.tgz#fd17d16bfdf878e6dd02d19753a39fa8a8d9c84a"
|
835 |
+
integrity sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==
|
836 |
+
dependencies:
|
837 |
+
regenerator-runtime "^0.13.4"
|
838 |
+
|
839 |
+
"@babel/template@^7.15.4":
|
840 |
+
version "7.15.4"
|
841 |
+
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.15.4.tgz#51898d35dcf3faa670c4ee6afcfd517ee139f194"
|
842 |
+
integrity sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==
|
843 |
+
dependencies:
|
844 |
+
"@babel/code-frame" "^7.14.5"
|
845 |
+
"@babel/parser" "^7.15.4"
|
846 |
+
"@babel/types" "^7.15.4"
|
847 |
+
|
848 |
+
"@babel/traverse@^7.13.0", "@babel/traverse@^7.15.4":
|
849 |
+
version "7.15.4"
|
850 |
+
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.4.tgz#ff8510367a144bfbff552d9e18e28f3e2889c22d"
|
851 |
+
integrity sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==
|
852 |
+
dependencies:
|
853 |
+
"@babel/code-frame" "^7.14.5"
|
854 |
+
"@babel/generator" "^7.15.4"
|
855 |
+
"@babel/helper-function-name" "^7.15.4"
|
856 |
+
"@babel/helper-hoist-variables" "^7.15.4"
|
857 |
+
"@babel/helper-split-export-declaration" "^7.15.4"
|
858 |
+
"@babel/parser" "^7.15.4"
|
859 |
+
"@babel/types" "^7.15.4"
|
860 |
+
debug "^4.1.0"
|
861 |
+
globals "^11.1.0"
|
862 |
+
|
863 |
+
"@babel/types@^7.15.4", "@babel/types@^7.15.6", "@babel/types@^7.4.4":
|
864 |
+
version "7.15.6"
|
865 |
+
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.6.tgz#99abdc48218b2881c058dd0a7ab05b99c9be758f"
|
866 |
+
integrity sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==
|
867 |
+
dependencies:
|
868 |
+
"@babel/helper-validator-identifier" "^7.14.9"
|
869 |
+
to-fast-properties "^2.0.0"
|
870 |
+
|
871 |
+
"@discoveryjs/json-ext@^0.5.0":
|
872 |
+
version "0.5.5"
|
873 |
+
resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.5.tgz#9283c9ce5b289a3c4f61c12757469e59377f81f3"
|
874 |
+
integrity sha512-6nFkfkmSeV/rqSaS4oWHgmpnYw194f6hmWF5is6b0J1naJZoiD0NTc9AiUwPHvWsowkjuHErCZT1wa0jg+BLIA==
|
875 |
+
|
876 |
+
"@types/eslint-scope@^3.7.0":
|
877 |
+
version "3.7.1"
|
878 |
+
resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.1.tgz#8dc390a7b4f9dd9f1284629efce982e41612116e"
|
879 |
+
integrity sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g==
|
880 |
+
dependencies:
|
881 |
+
"@types/eslint" "*"
|
882 |
+
"@types/estree" "*"
|
883 |
+
|
884 |
+
"@types/eslint@*":
|
885 |
+
version "7.28.0"
|
886 |
+
resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.28.0.tgz#7e41f2481d301c68e14f483fe10b017753ce8d5a"
|
887 |
+
integrity sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A==
|
888 |
+
dependencies:
|
889 |
+
"@types/estree" "*"
|
890 |
+
"@types/json-schema" "*"
|
891 |
+
|
892 |
+
"@types/estree@*", "@types/estree@^0.0.50":
|
893 |
+
version "0.0.50"
|
894 |
+
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83"
|
895 |
+
integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==
|
896 |
+
|
897 |
+
"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8":
|
898 |
+
version "7.0.9"
|
899 |
+
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d"
|
900 |
+
integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==
|
901 |
+
|
902 |
+
"@types/node@*":
|
903 |
+
version "16.10.1"
|
904 |
+
resolved "https://registry.yarnpkg.com/@types/node/-/node-16.10.1.tgz#f3647623199ca920960006b3dccf633ea905f243"
|
905 |
+
integrity sha512-4/Z9DMPKFexZj/Gn3LylFgamNKHm4K3QDi0gz9B26Uk0c8izYf97B5fxfpspMNkWlFupblKM/nV8+NA9Ffvr+w==
|
906 |
+
|
907 |
+
"@webassemblyjs/ast@1.11.1":
|
908 |
+
version "1.11.1"
|
909 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7"
|
910 |
+
integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==
|
911 |
+
dependencies:
|
912 |
+
"@webassemblyjs/helper-numbers" "1.11.1"
|
913 |
+
"@webassemblyjs/helper-wasm-bytecode" "1.11.1"
|
914 |
+
|
915 |
+
"@webassemblyjs/floating-point-hex-parser@1.11.1":
|
916 |
+
version "1.11.1"
|
917 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f"
|
918 |
+
integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==
|
919 |
+
|
920 |
+
"@webassemblyjs/helper-api-error@1.11.1":
|
921 |
+
version "1.11.1"
|
922 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16"
|
923 |
+
integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==
|
924 |
+
|
925 |
+
"@webassemblyjs/helper-buffer@1.11.1":
|
926 |
+
version "1.11.1"
|
927 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5"
|
928 |
+
integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==
|
929 |
+
|
930 |
+
"@webassemblyjs/helper-numbers@1.11.1":
|
931 |
+
version "1.11.1"
|
932 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae"
|
933 |
+
integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==
|
934 |
+
dependencies:
|
935 |
+
"@webassemblyjs/floating-point-hex-parser" "1.11.1"
|
936 |
+
"@webassemblyjs/helper-api-error" "1.11.1"
|
937 |
+
"@xtuc/long" "4.2.2"
|
938 |
+
|
939 |
+
"@webassemblyjs/helper-wasm-bytecode@1.11.1":
|
940 |
+
version "1.11.1"
|
941 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1"
|
942 |
+
integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==
|
943 |
+
|
944 |
+
"@webassemblyjs/helper-wasm-section@1.11.1":
|
945 |
+
version "1.11.1"
|
946 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a"
|
947 |
+
integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==
|
948 |
+
dependencies:
|
949 |
+
"@webassemblyjs/ast" "1.11.1"
|
950 |
+
"@webassemblyjs/helper-buffer" "1.11.1"
|
951 |
+
"@webassemblyjs/helper-wasm-bytecode" "1.11.1"
|
952 |
+
"@webassemblyjs/wasm-gen" "1.11.1"
|
953 |
+
|
954 |
+
"@webassemblyjs/ieee754@1.11.1":
|
955 |
+
version "1.11.1"
|
956 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614"
|
957 |
+
integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==
|
958 |
+
dependencies:
|
959 |
+
"@xtuc/ieee754" "^1.2.0"
|
960 |
+
|
961 |
+
"@webassemblyjs/leb128@1.11.1":
|
962 |
+
version "1.11.1"
|
963 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5"
|
964 |
+
integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==
|
965 |
+
dependencies:
|
966 |
+
"@xtuc/long" "4.2.2"
|
967 |
+
|
968 |
+
"@webassemblyjs/utf8@1.11.1":
|
969 |
+
version "1.11.1"
|
970 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff"
|
971 |
+
integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==
|
972 |
+
|
973 |
+
"@webassemblyjs/wasm-edit@1.11.1":
|
974 |
+
version "1.11.1"
|
975 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6"
|
976 |
+
integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==
|
977 |
+
dependencies:
|
978 |
+
"@webassemblyjs/ast" "1.11.1"
|
979 |
+
"@webassemblyjs/helper-buffer" "1.11.1"
|
980 |
+
"@webassemblyjs/helper-wasm-bytecode" "1.11.1"
|
981 |
+
"@webassemblyjs/helper-wasm-section" "1.11.1"
|
982 |
+
"@webassemblyjs/wasm-gen" "1.11.1"
|
983 |
+
"@webassemblyjs/wasm-opt" "1.11.1"
|
984 |
+
"@webassemblyjs/wasm-parser" "1.11.1"
|
985 |
+
"@webassemblyjs/wast-printer" "1.11.1"
|
986 |
+
|
987 |
+
"@webassemblyjs/wasm-gen@1.11.1":
|
988 |
+
version "1.11.1"
|
989 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76"
|
990 |
+
integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==
|
991 |
+
dependencies:
|
992 |
+
"@webassemblyjs/ast" "1.11.1"
|
993 |
+
"@webassemblyjs/helper-wasm-bytecode" "1.11.1"
|
994 |
+
"@webassemblyjs/ieee754" "1.11.1"
|
995 |
+
"@webassemblyjs/leb128" "1.11.1"
|
996 |
+
"@webassemblyjs/utf8" "1.11.1"
|
997 |
+
|
998 |
+
"@webassemblyjs/wasm-opt@1.11.1":
|
999 |
+
version "1.11.1"
|
1000 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2"
|
1001 |
+
integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==
|
1002 |
+
dependencies:
|
1003 |
+
"@webassemblyjs/ast" "1.11.1"
|
1004 |
+
"@webassemblyjs/helper-buffer" "1.11.1"
|
1005 |
+
"@webassemblyjs/wasm-gen" "1.11.1"
|
1006 |
+
"@webassemblyjs/wasm-parser" "1.11.1"
|
1007 |
+
|
1008 |
+
"@webassemblyjs/wasm-parser@1.11.1":
|
1009 |
+
version "1.11.1"
|
1010 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199"
|
1011 |
+
integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==
|
1012 |
+
dependencies:
|
1013 |
+
"@webassemblyjs/ast" "1.11.1"
|
1014 |
+
"@webassemblyjs/helper-api-error" "1.11.1"
|
1015 |
+
"@webassemblyjs/helper-wasm-bytecode" "1.11.1"
|
1016 |
+
"@webassemblyjs/ieee754" "1.11.1"
|
1017 |
+
"@webassemblyjs/leb128" "1.11.1"
|
1018 |
+
"@webassemblyjs/utf8" "1.11.1"
|
1019 |
+
|
1020 |
+
"@webassemblyjs/wast-printer@1.11.1":
|
1021 |
+
version "1.11.1"
|
1022 |
+
resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0"
|
1023 |
+
integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==
|
1024 |
+
dependencies:
|
1025 |
+
"@webassemblyjs/ast" "1.11.1"
|
1026 |
+
"@xtuc/long" "4.2.2"
|
1027 |
+
|
1028 |
+
"@webpack-cli/configtest@^1.0.4":
|
1029 |
+
version "1.0.4"
|
1030 |
+
resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.0.4.tgz#f03ce6311c0883a83d04569e2c03c6238316d2aa"
|
1031 |
+
integrity sha512-cs3XLy+UcxiP6bj0A6u7MLLuwdXJ1c3Dtc0RkKg+wiI1g/Ti1om8+/2hc2A2B60NbBNAbMgyBMHvyymWm/j4wQ==
|
1032 |
+
|
1033 |
+
"@webpack-cli/info@^1.3.0":
|
1034 |
+
version "1.3.0"
|
1035 |
+
resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.3.0.tgz#9d78a31101a960997a4acd41ffd9b9300627fe2b"
|
1036 |
+
integrity sha512-ASiVB3t9LOKHs5DyVUcxpraBXDOKubYu/ihHhU+t1UPpxsivg6Od2E2qU4gJCekfEddzRBzHhzA/Acyw/mlK/w==
|
1037 |
+
dependencies:
|
1038 |
+
envinfo "^7.7.3"
|
1039 |
+
|
1040 |
+
"@webpack-cli/serve@^1.5.2":
|
1041 |
+
version "1.5.2"
|
1042 |
+
resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.5.2.tgz#ea584b637ff63c5a477f6f21604b5a205b72c9ec"
|
1043 |
+
integrity sha512-vgJ5OLWadI8aKjDlOH3rb+dYyPd2GTZuQC/Tihjct6F9GpXGZINo3Y/IVuZVTM1eDQB+/AOsjPUWH/WySDaXvw==
|
1044 |
+
|
1045 |
+
"@xtuc/ieee754@^1.2.0":
|
1046 |
+
version "1.2.0"
|
1047 |
+
resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790"
|
1048 |
+
integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==
|
1049 |
+
|
1050 |
+
"@xtuc/long@4.2.2":
|
1051 |
+
version "4.2.2"
|
1052 |
+
resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
|
1053 |
+
integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
|
1054 |
+
|
1055 |
+
acorn-import-assertions@^1.7.6:
|
1056 |
+
version "1.7.6"
|
1057 |
+
resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.7.6.tgz#580e3ffcae6770eebeec76c3b9723201e9d01f78"
|
1058 |
+
integrity sha512-FlVvVFA1TX6l3lp8VjDnYYq7R1nyW6x3svAt4nDgrWQ9SBaSh9CnbwgSUTasgfNfOG5HlM1ehugCvM+hjo56LA==
|
1059 |
+
|
1060 |
+
acorn@^8.4.1:
|
1061 |
+
version "8.5.0"
|
1062 |
+
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.5.0.tgz#4512ccb99b3698c752591e9bb4472e38ad43cee2"
|
1063 |
+
integrity sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==
|
1064 |
+
|
1065 |
+
ajv-keywords@^3.5.2:
|
1066 |
+
version "3.5.2"
|
1067 |
+
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
|
1068 |
+
integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
|
1069 |
+
|
1070 |
+
ajv@^6.12.4, ajv@^6.12.5:
|
1071 |
+
version "6.12.6"
|
1072 |
+
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
|
1073 |
+
integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
|
1074 |
+
dependencies:
|
1075 |
+
fast-deep-equal "^3.1.1"
|
1076 |
+
fast-json-stable-stringify "^2.0.0"
|
1077 |
+
json-schema-traverse "^0.4.1"
|
1078 |
+
uri-js "^4.2.2"
|
1079 |
+
|
1080 |
+
ansi-styles@^3.2.1:
|
1081 |
+
version "3.2.1"
|
1082 |
+
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
|
1083 |
+
integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
|
1084 |
+
dependencies:
|
1085 |
+
color-convert "^1.9.0"
|
1086 |
+
|
1087 |
+
anymatch@~3.1.2:
|
1088 |
+
version "3.1.2"
|
1089 |
+
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
|
1090 |
+
integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
|
1091 |
+
dependencies:
|
1092 |
+
normalize-path "^3.0.0"
|
1093 |
+
picomatch "^2.0.4"
|
1094 |
+
|
1095 |
+
babel-loader@^8.1.0:
|
1096 |
+
version "8.2.2"
|
1097 |
+
resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81"
|
1098 |
+
integrity sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==
|
1099 |
+
dependencies:
|
1100 |
+
find-cache-dir "^3.3.1"
|
1101 |
+
loader-utils "^1.4.0"
|
1102 |
+
make-dir "^3.1.0"
|
1103 |
+
schema-utils "^2.6.5"
|
1104 |
+
|
1105 |
+
babel-plugin-dynamic-import-node@^2.3.3:
|
1106 |
+
version "2.3.3"
|
1107 |
+
resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3"
|
1108 |
+
integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==
|
1109 |
+
dependencies:
|
1110 |
+
object.assign "^4.1.0"
|
1111 |
+
|
1112 |
+
babel-plugin-polyfill-corejs2@^0.2.2:
|
1113 |
+
version "0.2.2"
|
1114 |
+
resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz#e9124785e6fd94f94b618a7954e5693053bf5327"
|
1115 |
+
integrity sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ==
|
1116 |
+
dependencies:
|
1117 |
+
"@babel/compat-data" "^7.13.11"
|
1118 |
+
"@babel/helper-define-polyfill-provider" "^0.2.2"
|
1119 |
+
semver "^6.1.1"
|
1120 |
+
|
1121 |
+
babel-plugin-polyfill-corejs3@^0.2.2:
|
1122 |
+
version "0.2.5"
|
1123 |
+
resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.5.tgz#2779846a16a1652244ae268b1e906ada107faf92"
|
1124 |
+
integrity sha512-ninF5MQNwAX9Z7c9ED+H2pGt1mXdP4TqzlHKyPIYmJIYz0N+++uwdM7RnJukklhzJ54Q84vA4ZJkgs7lu5vqcw==
|
1125 |
+
dependencies:
|
1126 |
+
"@babel/helper-define-polyfill-provider" "^0.2.2"
|
1127 |
+
core-js-compat "^3.16.2"
|
1128 |
+
|
1129 |
+
babel-plugin-polyfill-regenerator@^0.2.2:
|
1130 |
+
version "0.2.2"
|
1131 |
+
resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz#b310c8d642acada348c1fa3b3e6ce0e851bee077"
|
1132 |
+
integrity sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg==
|
1133 |
+
dependencies:
|
1134 |
+
"@babel/helper-define-polyfill-provider" "^0.2.2"
|
1135 |
+
|
1136 |
+
babel-plugin-syntax-object-rest-spread@^6.8.0:
|
1137 |
+
version "6.13.0"
|
1138 |
+
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5"
|
1139 |
+
integrity sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=
|
1140 |
+
|
1141 |
+
babel-plugin-transform-object-rest-spread@^6.26.0:
|
1142 |
+
version "6.26.0"
|
1143 |
+
resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06"
|
1144 |
+
integrity sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=
|
1145 |
+
dependencies:
|
1146 |
+
babel-plugin-syntax-object-rest-spread "^6.8.0"
|
1147 |
+
babel-runtime "^6.26.0"
|
1148 |
+
|
1149 |
+
babel-runtime@^6.26.0:
|
1150 |
+
version "6.26.0"
|
1151 |
+
resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
|
1152 |
+
integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4=
|
1153 |
+
dependencies:
|
1154 |
+
core-js "^2.4.0"
|
1155 |
+
regenerator-runtime "^0.11.0"
|
1156 |
+
|
1157 |
+
big.js@^5.2.2:
|
1158 |
+
version "5.2.2"
|
1159 |
+
resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
|
1160 |
+
integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
|
1161 |
+
|
1162 |
+
binary-extensions@^2.0.0:
|
1163 |
+
version "2.2.0"
|
1164 |
+
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
|
1165 |
+
integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
|
1166 |
+
|
1167 |
+
braces@~3.0.2:
|
1168 |
+
version "3.0.2"
|
1169 |
+
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
|
1170 |
+
integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
|
1171 |
+
dependencies:
|
1172 |
+
fill-range "^7.0.1"
|
1173 |
+
|
1174 |
+
browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4.17.1:
|
1175 |
+
version "4.17.1"
|
1176 |
+
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.1.tgz#a98d104f54af441290b7d592626dd541fa642eb9"
|
1177 |
+
integrity sha512-aLD0ZMDSnF4lUt4ZDNgqi5BUn9BZ7YdQdI/cYlILrhdSSZJLU9aNZoD5/NBmM4SK34APB2e83MOsRt1EnkuyaQ==
|
1178 |
+
dependencies:
|
1179 |
+
caniuse-lite "^1.0.30001259"
|
1180 |
+
electron-to-chromium "^1.3.846"
|
1181 |
+
escalade "^3.1.1"
|
1182 |
+
nanocolors "^0.1.5"
|
1183 |
+
node-releases "^1.1.76"
|
1184 |
+
|
1185 |
+
buffer-from@^1.0.0:
|
1186 |
+
version "1.1.2"
|
1187 |
+
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
|
1188 |
+
integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
|
1189 |
+
|
1190 |
+
call-bind@^1.0.0:
|
1191 |
+
version "1.0.2"
|
1192 |
+
resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
|
1193 |
+
integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
|
1194 |
+
dependencies:
|
1195 |
+
function-bind "^1.1.1"
|
1196 |
+
get-intrinsic "^1.0.2"
|
1197 |
+
|
1198 |
+
caniuse-lite@^1.0.30001259:
|
1199 |
+
version "1.0.30001261"
|
1200 |
+
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001261.tgz#96d89813c076ea061209a4e040d8dcf0c66a1d01"
|
1201 |
+
integrity sha512-vM8D9Uvp7bHIN0fZ2KQ4wnmYFpJo/Etb4Vwsuc+ka0tfGDHvOPrFm6S/7CCNLSOkAUjenT2HnUPESdOIL91FaA==
|
1202 |
+
|
1203 |
+
chalk@^2.0.0:
|
1204 |
+
version "2.4.2"
|
1205 |
+
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
|
1206 |
+
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
|
1207 |
+
dependencies:
|
1208 |
+
ansi-styles "^3.2.1"
|
1209 |
+
escape-string-regexp "^1.0.5"
|
1210 |
+
supports-color "^5.3.0"
|
1211 |
+
|
1212 |
+
"chokidar@>=3.0.0 <4.0.0":
|
1213 |
+
version "3.5.2"
|
1214 |
+
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75"
|
1215 |
+
integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==
|
1216 |
+
dependencies:
|
1217 |
+
anymatch "~3.1.2"
|
1218 |
+
braces "~3.0.2"
|
1219 |
+
glob-parent "~5.1.2"
|
1220 |
+
is-binary-path "~2.1.0"
|
1221 |
+
is-glob "~4.0.1"
|
1222 |
+
normalize-path "~3.0.0"
|
1223 |
+
readdirp "~3.6.0"
|
1224 |
+
optionalDependencies:
|
1225 |
+
fsevents "~2.3.2"
|
1226 |
+
|
1227 |
+
chrome-trace-event@^1.0.2:
|
1228 |
+
version "1.0.3"
|
1229 |
+
resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac"
|
1230 |
+
integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==
|
1231 |
+
|
1232 |
+
clone-deep@^4.0.1:
|
1233 |
+
version "4.0.1"
|
1234 |
+
resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387"
|
1235 |
+
integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==
|
1236 |
+
dependencies:
|
1237 |
+
is-plain-object "^2.0.4"
|
1238 |
+
kind-of "^6.0.2"
|
1239 |
+
shallow-clone "^3.0.0"
|
1240 |
+
|
1241 |
+
color-convert@^1.9.0:
|
1242 |
+
version "1.9.3"
|
1243 |
+
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
|
1244 |
+
integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
|
1245 |
+
dependencies:
|
1246 |
+
color-name "1.1.3"
|
1247 |
+
|
1248 |
+
color-name@1.1.3:
|
1249 |
+
version "1.1.3"
|
1250 |
+
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
|
1251 |
+
integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
|
1252 |
+
|
1253 |
+
colorette@^1.2.1:
|
1254 |
+
version "1.4.0"
|
1255 |
+
resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40"
|
1256 |
+
integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==
|
1257 |
+
|
1258 |
+
commander@^2.20.0:
|
1259 |
+
version "2.20.3"
|
1260 |
+
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
|
1261 |
+
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
|
1262 |
+
|
1263 |
+
commander@^7.0.0:
|
1264 |
+
version "7.2.0"
|
1265 |
+
resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
|
1266 |
+
integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
|
1267 |
+
|
1268 |
+
commondir@^1.0.1:
|
1269 |
+
version "1.0.1"
|
1270 |
+
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
|
1271 |
+
integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
|
1272 |
+
|
1273 |
+
convert-source-map@^1.7.0:
|
1274 |
+
version "1.8.0"
|
1275 |
+
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369"
|
1276 |
+
integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==
|
1277 |
+
dependencies:
|
1278 |
+
safe-buffer "~5.1.1"
|
1279 |
+
|
1280 |
+
core-js-compat@^3.16.0, core-js-compat@^3.16.2:
|
1281 |
+
version "3.18.1"
|
1282 |
+
resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.18.1.tgz#01942a0877caf9c6e5007c027183cf0bdae6a191"
|
1283 |
+
integrity sha512-XJMYx58zo4W0kLPmIingVZA10+7TuKrMLPt83+EzDmxFJQUMcTVVmQ+n5JP4r6Z14qSzhQBRi3NSWoeVyKKXUg==
|
1284 |
+
dependencies:
|
1285 |
+
browserslist "^4.17.1"
|
1286 |
+
semver "7.0.0"
|
1287 |
+
|
1288 |
+
core-js@^2.4.0:
|
1289 |
+
version "2.6.12"
|
1290 |
+
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec"
|
1291 |
+
integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
|
1292 |
+
|
1293 |
+
cross-env@^7.0.3:
|
1294 |
+
version "7.0.3"
|
1295 |
+
resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf"
|
1296 |
+
integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==
|
1297 |
+
dependencies:
|
1298 |
+
cross-spawn "^7.0.1"
|
1299 |
+
|
1300 |
+
cross-spawn@^7.0.1, cross-spawn@^7.0.3:
|
1301 |
+
version "7.0.3"
|
1302 |
+
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
|
1303 |
+
integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
|
1304 |
+
dependencies:
|
1305 |
+
path-key "^3.1.0"
|
1306 |
+
shebang-command "^2.0.0"
|
1307 |
+
which "^2.0.1"
|
1308 |
+
|
1309 |
+
debug@^4.1.0, debug@^4.1.1:
|
1310 |
+
version "4.3.2"
|
1311 |
+
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
|
1312 |
+
integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==
|
1313 |
+
dependencies:
|
1314 |
+
ms "2.1.2"
|
1315 |
+
|
1316 |
+
define-properties@^1.1.3:
|
1317 |
+
version "1.1.3"
|
1318 |
+
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
|
1319 |
+
integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
|
1320 |
+
dependencies:
|
1321 |
+
object-keys "^1.0.12"
|
1322 |
+
|
1323 |
+
electron-to-chromium@^1.3.846:
|
1324 |
+
version "1.3.853"
|
1325 |
+
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.853.tgz#f3ed1d31f092cb3a17af188bca6c6a3ec91c3e82"
|
1326 |
+
integrity sha512-W4U8n+U8I5/SUaFcqZgbKRmYZwcyEIQVBDf+j5QQK6xChjXnQD+wj248eGR9X4u+dDmDR//8vIfbu4PrdBBIoQ==
|
1327 |
+
|
1328 |
+
emojis-list@^3.0.0:
|
1329 |
+
version "3.0.0"
|
1330 |
+
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
|
1331 |
+
integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
|
1332 |
+
|
1333 |
+
enhanced-resolve@^5.8.3:
|
1334 |
+
version "5.8.3"
|
1335 |
+
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz#6d552d465cce0423f5b3d718511ea53826a7b2f0"
|
1336 |
+
integrity sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==
|
1337 |
+
dependencies:
|
1338 |
+
graceful-fs "^4.2.4"
|
1339 |
+
tapable "^2.2.0"
|
1340 |
+
|
1341 |
+
envinfo@^7.7.3:
|
1342 |
+
version "7.8.1"
|
1343 |
+
resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475"
|
1344 |
+
integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==
|
1345 |
+
|
1346 |
+
es-module-lexer@^0.9.0:
|
1347 |
+
version "0.9.1"
|
1348 |
+
resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.1.tgz#f203bf394a630a552d381acf01a17ef08843b140"
|
1349 |
+
integrity sha512-17Ed9misDnpyNBJh63g1OhW3qUFecDgGOivI85JeZY/LGhDum8e+cltukbkSK8pcJnXXEkya56sp4vSS1nzoUw==
|
1350 |
+
|
1351 |
+
escalade@^3.1.1:
|
1352 |
+
version "3.1.1"
|
1353 |
+
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
|
1354 |
+
integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
|
1355 |
+
|
1356 |
+
escape-string-regexp@^1.0.5:
|
1357 |
+
version "1.0.5"
|
1358 |
+
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
|
1359 |
+
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
|
1360 |
+
|
1361 |
+
eslint-scope@5.1.1:
|
1362 |
+
version "5.1.1"
|
1363 |
+
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
|
1364 |
+
integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
|
1365 |
+
dependencies:
|
1366 |
+
esrecurse "^4.3.0"
|
1367 |
+
estraverse "^4.1.1"
|
1368 |
+
|
1369 |
+
esrecurse@^4.3.0:
|
1370 |
+
version "4.3.0"
|
1371 |
+
resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
|
1372 |
+
integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
|
1373 |
+
dependencies:
|
1374 |
+
estraverse "^5.2.0"
|
1375 |
+
|
1376 |
+
estraverse@^4.1.1:
|
1377 |
+
version "4.3.0"
|
1378 |
+
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
|
1379 |
+
integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
|
1380 |
+
|
1381 |
+
estraverse@^5.2.0:
|
1382 |
+
version "5.2.0"
|
1383 |
+
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880"
|
1384 |
+
integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==
|
1385 |
+
|
1386 |
+
esutils@^2.0.2:
|
1387 |
+
version "2.0.3"
|
1388 |
+
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
|
1389 |
+
integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
|
1390 |
+
|
1391 |
+
events@^3.2.0:
|
1392 |
+
version "3.3.0"
|
1393 |
+
resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
|
1394 |
+
integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
|
1395 |
+
|
1396 |
+
execa@^5.0.0:
|
1397 |
+
version "5.1.1"
|
1398 |
+
resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
|
1399 |
+
integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
|
1400 |
+
dependencies:
|
1401 |
+
cross-spawn "^7.0.3"
|
1402 |
+
get-stream "^6.0.0"
|
1403 |
+
human-signals "^2.1.0"
|
1404 |
+
is-stream "^2.0.0"
|
1405 |
+
merge-stream "^2.0.0"
|
1406 |
+
npm-run-path "^4.0.1"
|
1407 |
+
onetime "^5.1.2"
|
1408 |
+
signal-exit "^3.0.3"
|
1409 |
+
strip-final-newline "^2.0.0"
|
1410 |
+
|
1411 |
+
fast-deep-equal@^3.1.1:
|
1412 |
+
version "3.1.3"
|
1413 |
+
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
|
1414 |
+
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
|
1415 |
+
|
1416 |
+
fast-json-stable-stringify@^2.0.0:
|
1417 |
+
version "2.1.0"
|
1418 |
+
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
|
1419 |
+
integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
|
1420 |
+
|
1421 |
+
fastest-levenshtein@^1.0.12:
|
1422 |
+
version "1.0.12"
|
1423 |
+
resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2"
|
1424 |
+
integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==
|
1425 |
+
|
1426 |
+
file-loader@^6.2.0:
|
1427 |
+
version "6.2.0"
|
1428 |
+
resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d"
|
1429 |
+
integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==
|
1430 |
+
dependencies:
|
1431 |
+
loader-utils "^2.0.0"
|
1432 |
+
schema-utils "^3.0.0"
|
1433 |
+
|
1434 |
+
fill-range@^7.0.1:
|
1435 |
+
version "7.0.1"
|
1436 |
+
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
|
1437 |
+
integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
|
1438 |
+
dependencies:
|
1439 |
+
to-regex-range "^5.0.1"
|
1440 |
+
|
1441 |
+
find-cache-dir@^3.3.1:
|
1442 |
+
version "3.3.2"
|
1443 |
+
resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b"
|
1444 |
+
integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==
|
1445 |
+
dependencies:
|
1446 |
+
commondir "^1.0.1"
|
1447 |
+
make-dir "^3.0.2"
|
1448 |
+
pkg-dir "^4.1.0"
|
1449 |
+
|
1450 |
+
find-up@^4.0.0:
|
1451 |
+
version "4.1.0"
|
1452 |
+
resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
|
1453 |
+
integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
|
1454 |
+
dependencies:
|
1455 |
+
locate-path "^5.0.0"
|
1456 |
+
path-exists "^4.0.0"
|
1457 |
+
|
1458 |
+
fsevents@~2.3.2:
|
1459 |
+
version "2.3.2"
|
1460 |
+
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
|
1461 |
+
integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
|
1462 |
+
|
1463 |
+
function-bind@^1.1.1:
|
1464 |
+
version "1.1.1"
|
1465 |
+
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
|
1466 |
+
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
|
1467 |
+
|
1468 |
+
gensync@^1.0.0-beta.2:
|
1469 |
+
version "1.0.0-beta.2"
|
1470 |
+
resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
|
1471 |
+
integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
|
1472 |
+
|
1473 |
+
get-intrinsic@^1.0.2:
|
1474 |
+
version "1.1.1"
|
1475 |
+
resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6"
|
1476 |
+
integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==
|
1477 |
+
dependencies:
|
1478 |
+
function-bind "^1.1.1"
|
1479 |
+
has "^1.0.3"
|
1480 |
+
has-symbols "^1.0.1"
|
1481 |
+
|
1482 |
+
get-stream@^6.0.0:
|
1483 |
+
version "6.0.1"
|
1484 |
+
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
|
1485 |
+
integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
|
1486 |
+
|
1487 |
+
glob-parent@~5.1.2:
|
1488 |
+
version "5.1.2"
|
1489 |
+
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
|
1490 |
+
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
|
1491 |
+
dependencies:
|
1492 |
+
is-glob "^4.0.1"
|
1493 |
+
|
1494 |
+
glob-to-regexp@^0.4.1:
|
1495 |
+
version "0.4.1"
|
1496 |
+
resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
|
1497 |
+
integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
|
1498 |
+
|
1499 |
+
globals@^11.1.0:
|
1500 |
+
version "11.12.0"
|
1501 |
+
resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
|
1502 |
+
integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
|
1503 |
+
|
1504 |
+
graceful-fs@^4.1.2, graceful-fs@^4.2.4:
|
1505 |
+
version "4.2.8"
|
1506 |
+
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a"
|
1507 |
+
integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==
|
1508 |
+
|
1509 |
+
has-flag@^3.0.0:
|
1510 |
+
version "3.0.0"
|
1511 |
+
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
|
1512 |
+
integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
|
1513 |
+
|
1514 |
+
has-flag@^4.0.0:
|
1515 |
+
version "4.0.0"
|
1516 |
+
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
|
1517 |
+
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
|
1518 |
+
|
1519 |
+
has-symbols@^1.0.1:
|
1520 |
+
version "1.0.2"
|
1521 |
+
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423"
|
1522 |
+
integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==
|
1523 |
+
|
1524 |
+
has@^1.0.3:
|
1525 |
+
version "1.0.3"
|
1526 |
+
resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
|
1527 |
+
integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
|
1528 |
+
dependencies:
|
1529 |
+
function-bind "^1.1.1"
|
1530 |
+
|
1531 |
+
human-signals@^2.1.0:
|
1532 |
+
version "2.1.0"
|
1533 |
+
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
|
1534 |
+
integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
|
1535 |
+
|
1536 |
+
import-local@^3.0.2:
|
1537 |
+
version "3.0.2"
|
1538 |
+
resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6"
|
1539 |
+
integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==
|
1540 |
+
dependencies:
|
1541 |
+
pkg-dir "^4.2.0"
|
1542 |
+
resolve-cwd "^3.0.0"
|
1543 |
+
|
1544 |
+
interpret@^2.2.0:
|
1545 |
+
version "2.2.0"
|
1546 |
+
resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9"
|
1547 |
+
integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==
|
1548 |
+
|
1549 |
+
is-binary-path@~2.1.0:
|
1550 |
+
version "2.1.0"
|
1551 |
+
resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
|
1552 |
+
integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
|
1553 |
+
dependencies:
|
1554 |
+
binary-extensions "^2.0.0"
|
1555 |
+
|
1556 |
+
is-core-module@^2.2.0:
|
1557 |
+
version "2.7.0"
|
1558 |
+
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.7.0.tgz#3c0ef7d31b4acfc574f80c58409d568a836848e3"
|
1559 |
+
integrity sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==
|
1560 |
+
dependencies:
|
1561 |
+
has "^1.0.3"
|
1562 |
+
|
1563 |
+
is-extglob@^2.1.1:
|
1564 |
+
version "2.1.1"
|
1565 |
+
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
|
1566 |
+
integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
|
1567 |
+
|
1568 |
+
is-glob@^4.0.1, is-glob@~4.0.1:
|
1569 |
+
version "4.0.2"
|
1570 |
+
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.2.tgz#859fc2e731e58c902f99fcabccb75a7dd07d29d8"
|
1571 |
+
integrity sha512-ZZTOjRcDjuAAAv2cTBQP/lL59ZTArx77+7UzHdWW/XB1mrfp7DEaVpKmZ0XIzx+M7AxfhKcqV+nMetUQmFifwg==
|
1572 |
+
dependencies:
|
1573 |
+
is-extglob "^2.1.1"
|
1574 |
+
|
1575 |
+
is-number@^7.0.0:
|
1576 |
+
version "7.0.0"
|
1577 |
+
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
|
1578 |
+
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
|
1579 |
+
|
1580 |
+
is-plain-object@^2.0.4:
|
1581 |
+
version "2.0.4"
|
1582 |
+
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
|
1583 |
+
integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
|
1584 |
+
dependencies:
|
1585 |
+
isobject "^3.0.1"
|
1586 |
+
|
1587 |
+
is-stream@^2.0.0:
|
1588 |
+
version "2.0.1"
|
1589 |
+
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
|
1590 |
+
integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
|
1591 |
+
|
1592 |
+
isexe@^2.0.0:
|
1593 |
+
version "2.0.0"
|
1594 |
+
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
|
1595 |
+
integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
|
1596 |
+
|
1597 |
+
isobject@^3.0.1:
|
1598 |
+
version "3.0.1"
|
1599 |
+
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
|
1600 |
+
integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
|
1601 |
+
|
1602 |
+
jest-worker@^27.0.6:
|
1603 |
+
version "27.2.3"
|
1604 |
+
resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.2.3.tgz#396e83d04ca575230a9bcb255c2b66aec07cb931"
|
1605 |
+
integrity sha512-ZwOvv4GCIPviL+Ie4pVguz4N5w/6IGbTaHBYOl3ZcsZZktaL7d8JOU0rmovoED7AJZKA8fvmLbBg8yg80u/tGA==
|
1606 |
+
dependencies:
|
1607 |
+
"@types/node" "*"
|
1608 |
+
merge-stream "^2.0.0"
|
1609 |
+
supports-color "^8.0.0"
|
1610 |
+
|
1611 |
+
js-tokens@^4.0.0:
|
1612 |
+
version "4.0.0"
|
1613 |
+
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
|
1614 |
+
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
|
1615 |
+
|
1616 |
+
jsesc@^2.5.1:
|
1617 |
+
version "2.5.2"
|
1618 |
+
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
|
1619 |
+
integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
|
1620 |
+
|
1621 |
+
jsesc@~0.5.0:
|
1622 |
+
version "0.5.0"
|
1623 |
+
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
|
1624 |
+
integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=
|
1625 |
+
|
1626 |
+
json-parse-better-errors@^1.0.2:
|
1627 |
+
version "1.0.2"
|
1628 |
+
resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
|
1629 |
+
integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
|
1630 |
+
|
1631 |
+
json-schema-traverse@^0.4.1:
|
1632 |
+
version "0.4.1"
|
1633 |
+
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
|
1634 |
+
integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
|
1635 |
+
|
1636 |
+
json5@^1.0.1:
|
1637 |
+
version "1.0.1"
|
1638 |
+
resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe"
|
1639 |
+
integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==
|
1640 |
+
dependencies:
|
1641 |
+
minimist "^1.2.0"
|
1642 |
+
|
1643 |
+
json5@^2.1.2:
|
1644 |
+
version "2.2.0"
|
1645 |
+
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3"
|
1646 |
+
integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==
|
1647 |
+
dependencies:
|
1648 |
+
minimist "^1.2.5"
|
1649 |
+
|
1650 |
+
kind-of@^6.0.2:
|
1651 |
+
version "6.0.3"
|
1652 |
+
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
|
1653 |
+
integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
|
1654 |
+
|
1655 |
+
klona@^2.0.4:
|
1656 |
+
version "2.0.4"
|
1657 |
+
resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0"
|
1658 |
+
integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==
|
1659 |
+
|
1660 |
+
loader-runner@^4.2.0:
|
1661 |
+
version "4.2.0"
|
1662 |
+
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384"
|
1663 |
+
integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==
|
1664 |
+
|
1665 |
+
loader-utils@^1.4.0:
|
1666 |
+
version "1.4.0"
|
1667 |
+
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613"
|
1668 |
+
integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==
|
1669 |
+
dependencies:
|
1670 |
+
big.js "^5.2.2"
|
1671 |
+
emojis-list "^3.0.0"
|
1672 |
+
json5 "^1.0.1"
|
1673 |
+
|
1674 |
+
loader-utils@^2.0.0:
|
1675 |
+
version "2.0.0"
|
1676 |
+
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0"
|
1677 |
+
integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==
|
1678 |
+
dependencies:
|
1679 |
+
big.js "^5.2.2"
|
1680 |
+
emojis-list "^3.0.0"
|
1681 |
+
json5 "^2.1.2"
|
1682 |
+
|
1683 |
+
locate-path@^5.0.0:
|
1684 |
+
version "5.0.0"
|
1685 |
+
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
|
1686 |
+
integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
|
1687 |
+
dependencies:
|
1688 |
+
p-locate "^4.1.0"
|
1689 |
+
|
1690 |
+
lodash.debounce@^4.0.8:
|
1691 |
+
version "4.0.8"
|
1692 |
+
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
|
1693 |
+
integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168=
|
1694 |
+
|
1695 |
+
make-dir@^3.0.2, make-dir@^3.1.0:
|
1696 |
+
version "3.1.0"
|
1697 |
+
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
|
1698 |
+
integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
|
1699 |
+
dependencies:
|
1700 |
+
semver "^6.0.0"
|
1701 |
+
|
1702 |
+
merge-stream@^2.0.0:
|
1703 |
+
version "2.0.0"
|
1704 |
+
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
|
1705 |
+
integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
|
1706 |
+
|
1707 |
+
mime-db@1.49.0:
|
1708 |
+
version "1.49.0"
|
1709 |
+
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.49.0.tgz#f3dfde60c99e9cf3bc9701d687778f537001cbed"
|
1710 |
+
integrity sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==
|
1711 |
+
|
1712 |
+
mime-types@^2.1.27:
|
1713 |
+
version "2.1.32"
|
1714 |
+
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.32.tgz#1d00e89e7de7fe02008db61001d9e02852670fd5"
|
1715 |
+
integrity sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==
|
1716 |
+
dependencies:
|
1717 |
+
mime-db "1.49.0"
|
1718 |
+
|
1719 |
+
mimic-fn@^2.1.0:
|
1720 |
+
version "2.1.0"
|
1721 |
+
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
|
1722 |
+
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
|
1723 |
+
|
1724 |
+
minimist@^1.2.0, minimist@^1.2.5:
|
1725 |
+
version "1.2.5"
|
1726 |
+
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
|
1727 |
+
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
|
1728 |
+
|
1729 |
+
ms@2.1.2:
|
1730 |
+
version "2.1.2"
|
1731 |
+
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
|
1732 |
+
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
|
1733 |
+
|
1734 |
+
nanocolors@^0.1.5:
|
1735 |
+
version "0.1.12"
|
1736 |
+
resolved "https://registry.yarnpkg.com/nanocolors/-/nanocolors-0.1.12.tgz#8577482c58cbd7b5bb1681db4cf48f11a87fd5f6"
|
1737 |
+
integrity sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ==
|
1738 |
+
|
1739 |
+
neo-async@^2.6.2:
|
1740 |
+
version "2.6.2"
|
1741 |
+
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
|
1742 |
+
integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
|
1743 |
+
|
1744 |
+
node-releases@^1.1.76:
|
1745 |
+
version "1.1.76"
|
1746 |
+
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.76.tgz#df245b062b0cafbd5282ab6792f7dccc2d97f36e"
|
1747 |
+
integrity sha512-9/IECtNr8dXNmPWmFXepT0/7o5eolGesHUa3mtr0KlgnCvnZxwh2qensKL42JJY2vQKC3nIBXetFAqR+PW1CmA==
|
1748 |
+
|
1749 |
+
normalize-path@^3.0.0, normalize-path@~3.0.0:
|
1750 |
+
version "3.0.0"
|
1751 |
+
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
|
1752 |
+
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
|
1753 |
+
|
1754 |
+
npm-run-path@^4.0.1:
|
1755 |
+
version "4.0.1"
|
1756 |
+
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
|
1757 |
+
integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
|
1758 |
+
dependencies:
|
1759 |
+
path-key "^3.0.0"
|
1760 |
+
|
1761 |
+
object-keys@^1.0.12, object-keys@^1.1.1:
|
1762 |
+
version "1.1.1"
|
1763 |
+
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
|
1764 |
+
integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
|
1765 |
+
|
1766 |
+
object.assign@^4.1.0:
|
1767 |
+
version "4.1.2"
|
1768 |
+
resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940"
|
1769 |
+
integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==
|
1770 |
+
dependencies:
|
1771 |
+
call-bind "^1.0.0"
|
1772 |
+
define-properties "^1.1.3"
|
1773 |
+
has-symbols "^1.0.1"
|
1774 |
+
object-keys "^1.1.1"
|
1775 |
+
|
1776 |
+
onetime@^5.1.2:
|
1777 |
+
version "5.1.2"
|
1778 |
+
resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
|
1779 |
+
integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
|
1780 |
+
dependencies:
|
1781 |
+
mimic-fn "^2.1.0"
|
1782 |
+
|
1783 |
+
p-limit@^2.2.0:
|
1784 |
+
version "2.3.0"
|
1785 |
+
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
|
1786 |
+
integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
|
1787 |
+
dependencies:
|
1788 |
+
p-try "^2.0.0"
|
1789 |
+
|
1790 |
+
p-limit@^3.1.0:
|
1791 |
+
version "3.1.0"
|
1792 |
+
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
|
1793 |
+
integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
|
1794 |
+
dependencies:
|
1795 |
+
yocto-queue "^0.1.0"
|
1796 |
+
|
1797 |
+
p-locate@^4.1.0:
|
1798 |
+
version "4.1.0"
|
1799 |
+
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
|
1800 |
+
integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
|
1801 |
+
dependencies:
|
1802 |
+
p-limit "^2.2.0"
|
1803 |
+
|
1804 |
+
p-try@^2.0.0:
|
1805 |
+
version "2.2.0"
|
1806 |
+
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
|
1807 |
+
integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
|
1808 |
+
|
1809 |
+
path-exists@^4.0.0:
|
1810 |
+
version "4.0.0"
|
1811 |
+
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
|
1812 |
+
integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
|
1813 |
+
|
1814 |
+
path-key@^3.0.0, path-key@^3.1.0:
|
1815 |
+
version "3.1.1"
|
1816 |
+
resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
|
1817 |
+
integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
|
1818 |
+
|
1819 |
+
path-parse@^1.0.6:
|
1820 |
+
version "1.0.7"
|
1821 |
+
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
|
1822 |
+
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
|
1823 |
+
|
1824 |
+
picomatch@^2.0.4, picomatch@^2.2.1:
|
1825 |
+
version "2.3.0"
|
1826 |
+
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972"
|
1827 |
+
integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==
|
1828 |
+
|
1829 |
+
pkg-dir@^4.1.0, pkg-dir@^4.2.0:
|
1830 |
+
version "4.2.0"
|
1831 |
+
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
|
1832 |
+
integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
|
1833 |
+
dependencies:
|
1834 |
+
find-up "^4.0.0"
|
1835 |
+
|
1836 |
+
punycode@^2.1.0:
|
1837 |
+
version "2.1.1"
|
1838 |
+
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
|
1839 |
+
integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
|
1840 |
+
|
1841 |
+
randombytes@^2.1.0:
|
1842 |
+
version "2.1.0"
|
1843 |
+
resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
|
1844 |
+
integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
|
1845 |
+
dependencies:
|
1846 |
+
safe-buffer "^5.1.0"
|
1847 |
+
|
1848 |
+
readdirp@~3.6.0:
|
1849 |
+
version "3.6.0"
|
1850 |
+
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
|
1851 |
+
integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
|
1852 |
+
dependencies:
|
1853 |
+
picomatch "^2.2.1"
|
1854 |
+
|
1855 |
+
rechoir@^0.7.0:
|
1856 |
+
version "0.7.1"
|
1857 |
+
resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.1.tgz#9478a96a1ca135b5e88fc027f03ee92d6c645686"
|
1858 |
+
integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==
|
1859 |
+
dependencies:
|
1860 |
+
resolve "^1.9.0"
|
1861 |
+
|
1862 |
+
regenerate-unicode-properties@^9.0.0:
|
1863 |
+
version "9.0.0"
|
1864 |
+
resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz#54d09c7115e1f53dc2314a974b32c1c344efe326"
|
1865 |
+
integrity sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA==
|
1866 |
+
dependencies:
|
1867 |
+
regenerate "^1.4.2"
|
1868 |
+
|
1869 |
+
regenerate@^1.4.2:
|
1870 |
+
version "1.4.2"
|
1871 |
+
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
|
1872 |
+
integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
|
1873 |
+
|
1874 |
+
regenerator-runtime@^0.11.0:
|
1875 |
+
version "0.11.1"
|
1876 |
+
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
|
1877 |
+
integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==
|
1878 |
+
|
1879 |
+
regenerator-runtime@^0.13.4:
|
1880 |
+
version "0.13.9"
|
1881 |
+
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52"
|
1882 |
+
integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==
|
1883 |
+
|
1884 |
+
regenerator-transform@^0.14.2:
|
1885 |
+
version "0.14.5"
|
1886 |
+
resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4"
|
1887 |
+
integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==
|
1888 |
+
dependencies:
|
1889 |
+
"@babel/runtime" "^7.8.4"
|
1890 |
+
|
1891 |
+
regexpu-core@^4.7.1:
|
1892 |
+
version "4.8.0"
|
1893 |
+
resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.8.0.tgz#e5605ba361b67b1718478501327502f4479a98f0"
|
1894 |
+
integrity sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg==
|
1895 |
+
dependencies:
|
1896 |
+
regenerate "^1.4.2"
|
1897 |
+
regenerate-unicode-properties "^9.0.0"
|
1898 |
+
regjsgen "^0.5.2"
|
1899 |
+
regjsparser "^0.7.0"
|
1900 |
+
unicode-match-property-ecmascript "^2.0.0"
|
1901 |
+
unicode-match-property-value-ecmascript "^2.0.0"
|
1902 |
+
|
1903 |
+
regjsgen@^0.5.2:
|
1904 |
+
version "0.5.2"
|
1905 |
+
resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733"
|
1906 |
+
integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==
|
1907 |
+
|
1908 |
+
regjsparser@^0.7.0:
|
1909 |
+
version "0.7.0"
|
1910 |
+
resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.7.0.tgz#a6b667b54c885e18b52554cb4960ef71187e9968"
|
1911 |
+
integrity sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ==
|
1912 |
+
dependencies:
|
1913 |
+
jsesc "~0.5.0"
|
1914 |
+
|
1915 |
+
resolve-cwd@^3.0.0:
|
1916 |
+
version "3.0.0"
|
1917 |
+
resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d"
|
1918 |
+
integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==
|
1919 |
+
dependencies:
|
1920 |
+
resolve-from "^5.0.0"
|
1921 |
+
|
1922 |
+
resolve-from@^5.0.0:
|
1923 |
+
version "5.0.0"
|
1924 |
+
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
|
1925 |
+
integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
|
1926 |
+
|
1927 |
+
resolve@^1.14.2, resolve@^1.9.0:
|
1928 |
+
version "1.20.0"
|
1929 |
+
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
|
1930 |
+
integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==
|
1931 |
+
dependencies:
|
1932 |
+
is-core-module "^2.2.0"
|
1933 |
+
path-parse "^1.0.6"
|
1934 |
+
|
1935 |
+
safe-buffer@^5.1.0:
|
1936 |
+
version "5.2.1"
|
1937 |
+
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
|
1938 |
+
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
|
1939 |
+
|
1940 |
+
safe-buffer@~5.1.1:
|
1941 |
+
version "5.1.2"
|
1942 |
+
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
|
1943 |
+
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
|
1944 |
+
|
1945 |
+
sass-loader@^12.1.0:
|
1946 |
+
version "12.1.0"
|
1947 |
+
resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-12.1.0.tgz#b73324622231009da6fba61ab76013256380d201"
|
1948 |
+
integrity sha512-FVJZ9kxVRYNZTIe2xhw93n3xJNYZADr+q69/s98l9nTCrWASo+DR2Ot0s5xTKQDDEosUkatsGeHxcH4QBp5bSg==
|
1949 |
+
dependencies:
|
1950 |
+
klona "^2.0.4"
|
1951 |
+
neo-async "^2.6.2"
|
1952 |
+
|
1953 |
+
sass@^1.42.1:
|
1954 |
+
version "1.42.1"
|
1955 |
+
resolved "https://registry.yarnpkg.com/sass/-/sass-1.42.1.tgz#5ab17bebc1cb1881ad2e0c9a932c66ad64e441e2"
|
1956 |
+
integrity sha512-/zvGoN8B7dspKc5mC6HlaygyCBRvnyzzgD5khiaCfglWztY99cYoiTUksVx11NlnemrcfH5CEaCpsUKoW0cQqg==
|
1957 |
+
dependencies:
|
1958 |
+
chokidar ">=3.0.0 <4.0.0"
|
1959 |
+
|
1960 |
+
schema-utils@^2.6.5:
|
1961 |
+
version "2.7.1"
|
1962 |
+
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7"
|
1963 |
+
integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==
|
1964 |
+
dependencies:
|
1965 |
+
"@types/json-schema" "^7.0.5"
|
1966 |
+
ajv "^6.12.4"
|
1967 |
+
ajv-keywords "^3.5.2"
|
1968 |
+
|
1969 |
+
schema-utils@^3.0.0, schema-utils@^3.1.0, schema-utils@^3.1.1:
|
1970 |
+
version "3.1.1"
|
1971 |
+
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281"
|
1972 |
+
integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==
|
1973 |
+
dependencies:
|
1974 |
+
"@types/json-schema" "^7.0.8"
|
1975 |
+
ajv "^6.12.5"
|
1976 |
+
ajv-keywords "^3.5.2"
|
1977 |
+
|
1978 |
+
semver@7.0.0:
|
1979 |
+
version "7.0.0"
|
1980 |
+
resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
|
1981 |
+
integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
|
1982 |
+
|
1983 |
+
semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0:
|
1984 |
+
version "6.3.0"
|
1985 |
+
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
|
1986 |
+
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
|
1987 |
+
|
1988 |
+
serialize-javascript@^6.0.0:
|
1989 |
+
version "6.0.0"
|
1990 |
+
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8"
|
1991 |
+
integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==
|
1992 |
+
dependencies:
|
1993 |
+
randombytes "^2.1.0"
|
1994 |
+
|
1995 |
+
shallow-clone@^3.0.0:
|
1996 |
+
version "3.0.1"
|
1997 |
+
resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3"
|
1998 |
+
integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==
|
1999 |
+
dependencies:
|
2000 |
+
kind-of "^6.0.2"
|
2001 |
+
|
2002 |
+
shebang-command@^2.0.0:
|
2003 |
+
version "2.0.0"
|
2004 |
+
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
|
2005 |
+
integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
|
2006 |
+
dependencies:
|
2007 |
+
shebang-regex "^3.0.0"
|
2008 |
+
|
2009 |
+
shebang-regex@^3.0.0:
|
2010 |
+
version "3.0.0"
|
2011 |
+
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
|
2012 |
+
integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
|
2013 |
+
|
2014 |
+
signal-exit@^3.0.3:
|
2015 |
+
version "3.0.4"
|
2016 |
+
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.4.tgz#366a4684d175b9cab2081e3681fda3747b6c51d7"
|
2017 |
+
integrity sha512-rqYhcAnZ6d/vTPGghdrw7iumdcbXpsk1b8IG/rz+VWV51DM0p7XCtMoJ3qhPLIbp3tvyt3pKRbaaEMZYpHto8Q==
|
2018 |
+
|
2019 |
+
source-map-support@~0.5.20:
|
2020 |
+
version "0.5.20"
|
2021 |
+
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.20.tgz#12166089f8f5e5e8c56926b377633392dd2cb6c9"
|
2022 |
+
integrity sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==
|
2023 |
+
dependencies:
|
2024 |
+
buffer-from "^1.0.0"
|
2025 |
+
source-map "^0.6.0"
|
2026 |
+
|
2027 |
+
source-map@^0.5.0:
|
2028 |
+
version "0.5.7"
|
2029 |
+
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
|
2030 |
+
integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
|
2031 |
+
|
2032 |
+
source-map@^0.6.0, source-map@^0.6.1:
|
2033 |
+
version "0.6.1"
|
2034 |
+
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
|
2035 |
+
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
|
2036 |
+
|
2037 |
+
source-map@~0.7.2:
|
2038 |
+
version "0.7.3"
|
2039 |
+
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
|
2040 |
+
integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
|
2041 |
+
|
2042 |
+
strip-final-newline@^2.0.0:
|
2043 |
+
version "2.0.0"
|
2044 |
+
resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
|
2045 |
+
integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
|
2046 |
+
|
2047 |
+
supports-color@^5.3.0:
|
2048 |
+
version "5.5.0"
|
2049 |
+
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
|
2050 |
+
integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
|
2051 |
+
dependencies:
|
2052 |
+
has-flag "^3.0.0"
|
2053 |
+
|
2054 |
+
supports-color@^8.0.0:
|
2055 |
+
version "8.1.1"
|
2056 |
+
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
|
2057 |
+
integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
|
2058 |
+
dependencies:
|
2059 |
+
has-flag "^4.0.0"
|
2060 |
+
|
2061 |
+
tapable@^2.1.1, tapable@^2.2.0:
|
2062 |
+
version "2.2.1"
|
2063 |
+
resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0"
|
2064 |
+
integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==
|
2065 |
+
|
2066 |
+
terser-webpack-plugin@^5.1.3:
|
2067 |
+
version "5.2.4"
|
2068 |
+
resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.2.4.tgz#ad1be7639b1cbe3ea49fab995cbe7224b31747a1"
|
2069 |
+
integrity sha512-E2CkNMN+1cho04YpdANyRrn8CyN4yMy+WdFKZIySFZrGXZxJwJP6PMNGGc/Mcr6qygQHUUqRxnAPmi0M9f00XA==
|
2070 |
+
dependencies:
|
2071 |
+
jest-worker "^27.0.6"
|
2072 |
+
p-limit "^3.1.0"
|
2073 |
+
schema-utils "^3.1.1"
|
2074 |
+
serialize-javascript "^6.0.0"
|
2075 |
+
source-map "^0.6.1"
|
2076 |
+
terser "^5.7.2"
|
2077 |
+
|
2078 |
+
terser@^5.7.2:
|
2079 |
+
version "5.9.0"
|
2080 |
+
resolved "https://registry.yarnpkg.com/terser/-/terser-5.9.0.tgz#47d6e629a522963240f2b55fcaa3c99083d2c351"
|
2081 |
+
integrity sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ==
|
2082 |
+
dependencies:
|
2083 |
+
commander "^2.20.0"
|
2084 |
+
source-map "~0.7.2"
|
2085 |
+
source-map-support "~0.5.20"
|
2086 |
+
|
2087 |
+
to-fast-properties@^2.0.0:
|
2088 |
+
version "2.0.0"
|
2089 |
+
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
|
2090 |
+
integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
|
2091 |
+
|
2092 |
+
to-regex-range@^5.0.1:
|
2093 |
+
version "5.0.1"
|
2094 |
+
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
|
2095 |
+
integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
|
2096 |
+
dependencies:
|
2097 |
+
is-number "^7.0.0"
|
2098 |
+
|
2099 |
+
unicode-canonical-property-names-ecmascript@^2.0.0:
|
2100 |
+
version "2.0.0"
|
2101 |
+
resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc"
|
2102 |
+
integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==
|
2103 |
+
|
2104 |
+
unicode-match-property-ecmascript@^2.0.0:
|
2105 |
+
version "2.0.0"
|
2106 |
+
resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3"
|
2107 |
+
integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==
|
2108 |
+
dependencies:
|
2109 |
+
unicode-canonical-property-names-ecmascript "^2.0.0"
|
2110 |
+
unicode-property-aliases-ecmascript "^2.0.0"
|
2111 |
+
|
2112 |
+
unicode-match-property-value-ecmascript@^2.0.0:
|
2113 |
+
version "2.0.0"
|
2114 |
+
resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714"
|
2115 |
+
integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==
|
2116 |
+
|
2117 |
+
unicode-property-aliases-ecmascript@^2.0.0:
|
2118 |
+
version "2.0.0"
|
2119 |
+
resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8"
|
2120 |
+
integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==
|
2121 |
+
|
2122 |
+
uri-js@^4.2.2:
|
2123 |
+
version "4.4.1"
|
2124 |
+
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
|
2125 |
+
integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
|
2126 |
+
dependencies:
|
2127 |
+
punycode "^2.1.0"
|
2128 |
+
|
2129 |
+
v8-compile-cache@^2.2.0:
|
2130 |
+
version "2.3.0"
|
2131 |
+
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
|
2132 |
+
integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
|
2133 |
+
|
2134 |
+
watchpack@^2.2.0:
|
2135 |
+
version "2.2.0"
|
2136 |
+
resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.2.0.tgz#47d78f5415fe550ecd740f99fe2882323a58b1ce"
|
2137 |
+
integrity sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA==
|
2138 |
+
dependencies:
|
2139 |
+
glob-to-regexp "^0.4.1"
|
2140 |
+
graceful-fs "^4.1.2"
|
2141 |
+
|
2142 |
+
webpack-cli@^4.8.0:
|
2143 |
+
version "4.8.0"
|
2144 |
+
resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.8.0.tgz#5fc3c8b9401d3c8a43e2afceacfa8261962338d1"
|
2145 |
+
integrity sha512-+iBSWsX16uVna5aAYN6/wjhJy1q/GKk4KjKvfg90/6hykCTSgozbfz5iRgDTSJt/LgSbYxdBX3KBHeobIs+ZEw==
|
2146 |
+
dependencies:
|
2147 |
+
"@discoveryjs/json-ext" "^0.5.0"
|
2148 |
+
"@webpack-cli/configtest" "^1.0.4"
|
2149 |
+
"@webpack-cli/info" "^1.3.0"
|
2150 |
+
"@webpack-cli/serve" "^1.5.2"
|
2151 |
+
colorette "^1.2.1"
|
2152 |
+
commander "^7.0.0"
|
2153 |
+
execa "^5.0.0"
|
2154 |
+
fastest-levenshtein "^1.0.12"
|
2155 |
+
import-local "^3.0.2"
|
2156 |
+
interpret "^2.2.0"
|
2157 |
+
rechoir "^0.7.0"
|
2158 |
+
v8-compile-cache "^2.2.0"
|
2159 |
+
webpack-merge "^5.7.3"
|
2160 |
+
|
2161 |
+
webpack-merge@^5.7.3:
|
2162 |
+
version "5.8.0"
|
2163 |
+
resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.8.0.tgz#2b39dbf22af87776ad744c390223731d30a68f61"
|
2164 |
+
integrity sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==
|
2165 |
+
dependencies:
|
2166 |
+
clone-deep "^4.0.1"
|
2167 |
+
wildcard "^2.0.0"
|
2168 |
+
|
2169 |
+
webpack-sources@^3.2.0:
|
2170 |
+
version "3.2.1"
|
2171 |
+
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.1.tgz#251a7d9720d75ada1469ca07dbb62f3641a05b6d"
|
2172 |
+
integrity sha512-t6BMVLQ0AkjBOoRTZgqrWm7xbXMBzD+XDq2EZ96+vMfn3qKgsvdXZhbPZ4ElUOpdv4u+iiGe+w3+J75iy/bYGA==
|
2173 |
+
|
2174 |
+
webpack@^5.55.0:
|
2175 |
+
version "5.55.0"
|
2176 |
+
resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.55.0.tgz#77e4d90c6db6764623f91cb1549cdcda9b9f8a84"
|
2177 |
+
integrity sha512-/1LyoAG+4+YRt+RLN3H2cz4dcw8+iO/GwKhL54GQDmqONCi0ZISXZF6aCCrCRDJFK685h+RGLCZd61Y+SEqdWQ==
|
2178 |
+
dependencies:
|
2179 |
+
"@types/eslint-scope" "^3.7.0"
|
2180 |
+
"@types/estree" "^0.0.50"
|
2181 |
+
"@webassemblyjs/ast" "1.11.1"
|
2182 |
+
"@webassemblyjs/wasm-edit" "1.11.1"
|
2183 |
+
"@webassemblyjs/wasm-parser" "1.11.1"
|
2184 |
+
acorn "^8.4.1"
|
2185 |
+
acorn-import-assertions "^1.7.6"
|
2186 |
+
browserslist "^4.14.5"
|
2187 |
+
chrome-trace-event "^1.0.2"
|
2188 |
+
enhanced-resolve "^5.8.3"
|
2189 |
+
es-module-lexer "^0.9.0"
|
2190 |
+
eslint-scope "5.1.1"
|
2191 |
+
events "^3.2.0"
|
2192 |
+
glob-to-regexp "^0.4.1"
|
2193 |
+
graceful-fs "^4.2.4"
|
2194 |
+
json-parse-better-errors "^1.0.2"
|
2195 |
+
loader-runner "^4.2.0"
|
2196 |
+
mime-types "^2.1.27"
|
2197 |
+
neo-async "^2.6.2"
|
2198 |
+
schema-utils "^3.1.0"
|
2199 |
+
tapable "^2.1.1"
|
2200 |
+
terser-webpack-plugin "^5.1.3"
|
2201 |
+
watchpack "^2.2.0"
|
2202 |
+
webpack-sources "^3.2.0"
|
2203 |
+
|
2204 |
+
which@^2.0.1:
|
2205 |
+
version "2.0.2"
|
2206 |
+
resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
|
2207 |
+
integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
|
2208 |
+
dependencies:
|
2209 |
+
isexe "^2.0.0"
|
2210 |
+
|
2211 |
+
wildcard@^2.0.0:
|
2212 |
+
version "2.0.0"
|
2213 |
+
resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec"
|
2214 |
+
integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==
|
2215 |
+
|
2216 |
+
yocto-queue@^0.1.0:
|
2217 |
+
version "0.1.0"
|
2218 |
+
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
|
2219 |
+
integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Tags: woocommerce, paypal, payments, ecommerce, e-commerce, store, sales, sell,
|
|
4 |
Requires at least: 5.3
|
5 |
Tested up to: 5.8
|
6 |
Requires PHP: 7.1
|
7 |
-
Stable tag: 1.
|
8 |
License: GPLv2
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -81,6 +81,20 @@ Follow the steps below to connect the plugin to your PayPal account:
|
|
81 |
|
82 |
== Changelog ==
|
83 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
84 |
= 1.5.1 =
|
85 |
* Fix - Set 3DS contingencies to "SCA_WHEN_REQUIRED". #178
|
86 |
* Fix - Plugin conflict blocking line item details. #221
|
4 |
Requires at least: 5.3
|
5 |
Tested up to: 5.8
|
6 |
Requires PHP: 7.1
|
7 |
+
Stable tag: 1.6.0
|
8 |
License: GPLv2
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
81 |
|
82 |
== Changelog ==
|
83 |
|
84 |
+
= 1.6.0 =
|
85 |
+
* Add - Webhook status. #246 #273
|
86 |
+
* Add - Show CC gateway in admin payments list. #236
|
87 |
+
* Add - Add 3d secure contingency settings. #230
|
88 |
+
* Add - Improve logging. #252 #275
|
89 |
+
* Add - Do not send payee email. #231
|
90 |
+
* Add - Allow customers to see and delete their saved payments in My Account. #274
|
91 |
+
* Fix - PayPal Payments generates multiple orders. #244
|
92 |
+
* Fix - Saved credit card does not auto fill. #242
|
93 |
+
* Fix - Incorrect webhooks registration. #254
|
94 |
+
* Fix - Disable funding credit cards affecting hosted fields, unset for GB. #249
|
95 |
+
* Fix - REFUND_CAPTURE_CURRENCY_MISMATCH on multicurrency sites. #225
|
96 |
+
* Fix - Can't checkout to certain countries with optional postcode. #224
|
97 |
+
|
98 |
= 1.5.1 =
|
99 |
* Fix - Set 3DS contingencies to "SCA_WHEN_REQUIRED". #178
|
100 |
* Fix - Plugin conflict blocking line item details. #221
|
vendor/autoload.php
CHANGED
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInit6f3e12b28f1ed670640881dfaf1b748a::getLoader();
|
vendor/composer/ClassLoader.php
CHANGED
@@ -42,30 +42,75 @@ namespace Composer\Autoload;
|
|
42 |
*/
|
43 |
class ClassLoader
|
44 |
{
|
|
|
45 |
private $vendorDir;
|
46 |
|
47 |
// PSR-4
|
|
|
|
|
|
|
|
|
48 |
private $prefixLengthsPsr4 = array();
|
|
|
|
|
|
|
|
|
49 |
private $prefixDirsPsr4 = array();
|
|
|
|
|
|
|
|
|
50 |
private $fallbackDirsPsr4 = array();
|
51 |
|
52 |
// PSR-0
|
|
|
|
|
|
|
|
|
53 |
private $prefixesPsr0 = array();
|
|
|
|
|
|
|
|
|
54 |
private $fallbackDirsPsr0 = array();
|
55 |
|
|
|
56 |
private $useIncludePath = false;
|
|
|
|
|
|
|
|
|
|
|
57 |
private $classMap = array();
|
|
|
|
|
58 |
private $classMapAuthoritative = false;
|
|
|
|
|
|
|
|
|
|
|
59 |
private $missingClasses = array();
|
|
|
|
|
60 |
private $apcuPrefix;
|
61 |
|
|
|
|
|
|
|
62 |
private static $registeredLoaders = array();
|
63 |
|
|
|
|
|
|
|
64 |
public function __construct($vendorDir = null)
|
65 |
{
|
66 |
$this->vendorDir = $vendorDir;
|
67 |
}
|
68 |
|
|
|
|
|
|
|
69 |
public function getPrefixes()
|
70 |
{
|
71 |
if (!empty($this->prefixesPsr0)) {
|
@@ -75,28 +120,47 @@ class ClassLoader
|
|
75 |
return array();
|
76 |
}
|
77 |
|
|
|
|
|
|
|
|
|
78 |
public function getPrefixesPsr4()
|
79 |
{
|
80 |
return $this->prefixDirsPsr4;
|
81 |
}
|
82 |
|
|
|
|
|
|
|
|
|
83 |
public function getFallbackDirs()
|
84 |
{
|
85 |
return $this->fallbackDirsPsr0;
|
86 |
}
|
87 |
|
|
|
|
|
|
|
|
|
88 |
public function getFallbackDirsPsr4()
|
89 |
{
|
90 |
return $this->fallbackDirsPsr4;
|
91 |
}
|
92 |
|
|
|
|
|
|
|
|
|
93 |
public function getClassMap()
|
94 |
{
|
95 |
return $this->classMap;
|
96 |
}
|
97 |
|
98 |
/**
|
99 |
-
* @param
|
|
|
|
|
|
|
100 |
*/
|
101 |
public function addClassMap(array $classMap)
|
102 |
{
|
@@ -111,9 +175,11 @@ class ClassLoader
|
|
111 |
* Registers a set of PSR-0 directories for a given prefix, either
|
112 |
* appending or prepending to the ones previously set for this prefix.
|
113 |
*
|
114 |
-
* @param string
|
115 |
-
* @param
|
116 |
-
* @param bool
|
|
|
|
|
117 |
*/
|
118 |
public function add($prefix, $paths, $prepend = false)
|
119 |
{
|
@@ -156,11 +222,13 @@ class ClassLoader
|
|
156 |
* Registers a set of PSR-4 directories for a given namespace, either
|
157 |
* appending or prepending to the ones previously set for this namespace.
|
158 |
*
|
159 |
-
* @param string
|
160 |
-
* @param
|
161 |
-
* @param bool
|
162 |
*
|
163 |
* @throws \InvalidArgumentException
|
|
|
|
|
164 |
*/
|
165 |
public function addPsr4($prefix, $paths, $prepend = false)
|
166 |
{
|
@@ -204,8 +272,10 @@ class ClassLoader
|
|
204 |
* Registers a set of PSR-0 directories for a given prefix,
|
205 |
* replacing any others previously set for this prefix.
|
206 |
*
|
207 |
-
* @param string
|
208 |
-
* @param
|
|
|
|
|
209 |
*/
|
210 |
public function set($prefix, $paths)
|
211 |
{
|
@@ -220,10 +290,12 @@ class ClassLoader
|
|
220 |
* Registers a set of PSR-4 directories for a given namespace,
|
221 |
* replacing any others previously set for this namespace.
|
222 |
*
|
223 |
-
* @param string
|
224 |
-
* @param
|
225 |
*
|
226 |
* @throws \InvalidArgumentException
|
|
|
|
|
227 |
*/
|
228 |
public function setPsr4($prefix, $paths)
|
229 |
{
|
@@ -243,6 +315,8 @@ class ClassLoader
|
|
243 |
* Turns on searching the include path for class files.
|
244 |
*
|
245 |
* @param bool $useIncludePath
|
|
|
|
|
246 |
*/
|
247 |
public function setUseIncludePath($useIncludePath)
|
248 |
{
|
@@ -265,6 +339,8 @@ class ClassLoader
|
|
265 |
* that have not been registered with the class map.
|
266 |
*
|
267 |
* @param bool $classMapAuthoritative
|
|
|
|
|
268 |
*/
|
269 |
public function setClassMapAuthoritative($classMapAuthoritative)
|
270 |
{
|
@@ -285,6 +361,8 @@ class ClassLoader
|
|
285 |
* APCu prefix to use to cache found/not-found classes, if the extension is enabled.
|
286 |
*
|
287 |
* @param string|null $apcuPrefix
|
|
|
|
|
288 |
*/
|
289 |
public function setApcuPrefix($apcuPrefix)
|
290 |
{
|
@@ -305,6 +383,8 @@ class ClassLoader
|
|
305 |
* Registers this instance as an autoloader.
|
306 |
*
|
307 |
* @param bool $prepend Whether to prepend the autoloader or not
|
|
|
|
|
308 |
*/
|
309 |
public function register($prepend = false)
|
310 |
{
|
@@ -324,6 +404,8 @@ class ClassLoader
|
|
324 |
|
325 |
/**
|
326 |
* Unregisters this instance as an autoloader.
|
|
|
|
|
327 |
*/
|
328 |
public function unregister()
|
329 |
{
|
@@ -403,6 +485,11 @@ class ClassLoader
|
|
403 |
return self::$registeredLoaders;
|
404 |
}
|
405 |
|
|
|
|
|
|
|
|
|
|
|
406 |
private function findFileWithExtension($class, $ext)
|
407 |
{
|
408 |
// PSR-4 lookup
|
@@ -474,6 +561,10 @@ class ClassLoader
|
|
474 |
* Scope isolated include.
|
475 |
*
|
476 |
* Prevents access to $this/self from included files.
|
|
|
|
|
|
|
|
|
477 |
*/
|
478 |
function includeFile($file)
|
479 |
{
|
42 |
*/
|
43 |
class ClassLoader
|
44 |
{
|
45 |
+
/** @var ?string */
|
46 |
private $vendorDir;
|
47 |
|
48 |
// PSR-4
|
49 |
+
/**
|
50 |
+
* @var array[]
|
51 |
+
* @psalm-var array<string, array<string, int>>
|
52 |
+
*/
|
53 |
private $prefixLengthsPsr4 = array();
|
54 |
+
/**
|
55 |
+
* @var array[]
|
56 |
+
* @psalm-var array<string, array<int, string>>
|
57 |
+
*/
|
58 |
private $prefixDirsPsr4 = array();
|
59 |
+
/**
|
60 |
+
* @var array[]
|
61 |
+
* @psalm-var array<string, string>
|
62 |
+
*/
|
63 |
private $fallbackDirsPsr4 = array();
|
64 |
|
65 |
// PSR-0
|
66 |
+
/**
|
67 |
+
* @var array[]
|
68 |
+
* @psalm-var array<string, array<string, string[]>>
|
69 |
+
*/
|
70 |
private $prefixesPsr0 = array();
|
71 |
+
/**
|
72 |
+
* @var array[]
|
73 |
+
* @psalm-var array<string, string>
|
74 |
+
*/
|
75 |
private $fallbackDirsPsr0 = array();
|
76 |
|
77 |
+
/** @var bool */
|
78 |
private $useIncludePath = false;
|
79 |
+
|
80 |
+
/**
|
81 |
+
* @var string[]
|
82 |
+
* @psalm-var array<string, string>
|
83 |
+
*/
|
84 |
private $classMap = array();
|
85 |
+
|
86 |
+
/** @var bool */
|
87 |
private $classMapAuthoritative = false;
|
88 |
+
|
89 |
+
/**
|
90 |
+
* @var bool[]
|
91 |
+
* @psalm-var array<string, bool>
|
92 |
+
*/
|
93 |
private $missingClasses = array();
|
94 |
+
|
95 |
+
/** @var ?string */
|
96 |
private $apcuPrefix;
|
97 |
|
98 |
+
/**
|
99 |
+
* @var self[]
|
100 |
+
*/
|
101 |
private static $registeredLoaders = array();
|
102 |
|
103 |
+
/**
|
104 |
+
* @param ?string $vendorDir
|
105 |
+
*/
|
106 |
public function __construct($vendorDir = null)
|
107 |
{
|
108 |
$this->vendorDir = $vendorDir;
|
109 |
}
|
110 |
|
111 |
+
/**
|
112 |
+
* @return string[]
|
113 |
+
*/
|
114 |
public function getPrefixes()
|
115 |
{
|
116 |
if (!empty($this->prefixesPsr0)) {
|
120 |
return array();
|
121 |
}
|
122 |
|
123 |
+
/**
|
124 |
+
* @return array[]
|
125 |
+
* @psalm-return array<string, array<int, string>>
|
126 |
+
*/
|
127 |
public function getPrefixesPsr4()
|
128 |
{
|
129 |
return $this->prefixDirsPsr4;
|
130 |
}
|
131 |
|
132 |
+
/**
|
133 |
+
* @return array[]
|
134 |
+
* @psalm-return array<string, string>
|
135 |
+
*/
|
136 |
public function getFallbackDirs()
|
137 |
{
|
138 |
return $this->fallbackDirsPsr0;
|
139 |
}
|
140 |
|
141 |
+
/**
|
142 |
+
* @return array[]
|
143 |
+
* @psalm-return array<string, string>
|
144 |
+
*/
|
145 |
public function getFallbackDirsPsr4()
|
146 |
{
|
147 |
return $this->fallbackDirsPsr4;
|
148 |
}
|
149 |
|
150 |
+
/**
|
151 |
+
* @return string[] Array of classname => path
|
152 |
+
* @psalm-var array<string, string>
|
153 |
+
*/
|
154 |
public function getClassMap()
|
155 |
{
|
156 |
return $this->classMap;
|
157 |
}
|
158 |
|
159 |
/**
|
160 |
+
* @param string[] $classMap Class to filename map
|
161 |
+
* @psalm-param array<string, string> $classMap
|
162 |
+
*
|
163 |
+
* @return void
|
164 |
*/
|
165 |
public function addClassMap(array $classMap)
|
166 |
{
|
175 |
* Registers a set of PSR-0 directories for a given prefix, either
|
176 |
* appending or prepending to the ones previously set for this prefix.
|
177 |
*
|
178 |
+
* @param string $prefix The prefix
|
179 |
+
* @param string[]|string $paths The PSR-0 root directories
|
180 |
+
* @param bool $prepend Whether to prepend the directories
|
181 |
+
*
|
182 |
+
* @return void
|
183 |
*/
|
184 |
public function add($prefix, $paths, $prepend = false)
|
185 |
{
|
222 |
* Registers a set of PSR-4 directories for a given namespace, either
|
223 |
* appending or prepending to the ones previously set for this namespace.
|
224 |
*
|
225 |
+
* @param string $prefix The prefix/namespace, with trailing '\\'
|
226 |
+
* @param string[]|string $paths The PSR-4 base directories
|
227 |
+
* @param bool $prepend Whether to prepend the directories
|
228 |
*
|
229 |
* @throws \InvalidArgumentException
|
230 |
+
*
|
231 |
+
* @return void
|
232 |
*/
|
233 |
public function addPsr4($prefix, $paths, $prepend = false)
|
234 |
{
|
272 |
* Registers a set of PSR-0 directories for a given prefix,
|
273 |
* replacing any others previously set for this prefix.
|
274 |
*
|
275 |
+
* @param string $prefix The prefix
|
276 |
+
* @param string[]|string $paths The PSR-0 base directories
|
277 |
+
*
|
278 |
+
* @return void
|
279 |
*/
|
280 |
public function set($prefix, $paths)
|
281 |
{
|
290 |
* Registers a set of PSR-4 directories for a given namespace,
|
291 |
* replacing any others previously set for this namespace.
|
292 |
*
|
293 |
+
* @param string $prefix The prefix/namespace, with trailing '\\'
|
294 |
+
* @param string[]|string $paths The PSR-4 base directories
|
295 |
*
|
296 |
* @throws \InvalidArgumentException
|
297 |
+
*
|
298 |
+
* @return void
|
299 |
*/
|
300 |
public function setPsr4($prefix, $paths)
|
301 |
{
|
315 |
* Turns on searching the include path for class files.
|
316 |
*
|
317 |
* @param bool $useIncludePath
|
318 |
+
*
|
319 |
+
* @return void
|
320 |
*/
|
321 |
public function setUseIncludePath($useIncludePath)
|
322 |
{
|
339 |
* that have not been registered with the class map.
|
340 |
*
|
341 |
* @param bool $classMapAuthoritative
|
342 |
+
*
|
343 |
+
* @return void
|
344 |
*/
|
345 |
public function setClassMapAuthoritative($classMapAuthoritative)
|
346 |
{
|
361 |
* APCu prefix to use to cache found/not-found classes, if the extension is enabled.
|
362 |
*
|
363 |
* @param string|null $apcuPrefix
|
364 |
+
*
|
365 |
+
* @return void
|
366 |
*/
|
367 |
public function setApcuPrefix($apcuPrefix)
|
368 |
{
|
383 |
* Registers this instance as an autoloader.
|
384 |
*
|
385 |
* @param bool $prepend Whether to prepend the autoloader or not
|
386 |
+
*
|
387 |
+
* @return void
|
388 |
*/
|
389 |
public function register($prepend = false)
|
390 |
{
|
404 |
|
405 |
/**
|
406 |
* Unregisters this instance as an autoloader.
|
407 |
+
*
|
408 |
+
* @return void
|
409 |
*/
|
410 |
public function unregister()
|
411 |
{
|
485 |
return self::$registeredLoaders;
|
486 |
}
|
487 |
|
488 |
+
/**
|
489 |
+
* @param string $class
|
490 |
+
* @param string $ext
|
491 |
+
* @return string|false
|
492 |
+
*/
|
493 |
private function findFileWithExtension($class, $ext)
|
494 |
{
|
495 |
// PSR-4 lookup
|
561 |
* Scope isolated include.
|
562 |
*
|
563 |
* Prevents access to $this/self from included files.
|
564 |
+
*
|
565 |
+
* @param string $file
|
566 |
+
* @return void
|
567 |
+
* @private
|
568 |
*/
|
569 |
function includeFile($file)
|
570 |
{
|
vendor/composer/InstalledVersions.php
CHANGED
@@ -20,7 +20,7 @@ use Composer\Semver\VersionParser;
|
|
20 |
*
|
21 |
* See also https://getcomposer.org/doc/07-runtime.md#installed-versions
|
22 |
*
|
23 |
-
* To require
|
24 |
*/
|
25 |
class InstalledVersions
|
26 |
{
|
@@ -228,7 +228,7 @@ class InstalledVersions
|
|
228 |
|
229 |
/**
|
230 |
* @return array
|
231 |
-
* @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}
|
232 |
*/
|
233 |
public static function getRootPackage()
|
234 |
{
|
@@ -242,7 +242,7 @@ class InstalledVersions
|
|
242 |
*
|
243 |
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
|
244 |
* @return array[]
|
245 |
-
* @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}
|
246 |
*/
|
247 |
public static function getRawData()
|
248 |
{
|
@@ -265,7 +265,7 @@ class InstalledVersions
|
|
265 |
* Returns the raw data of all installed.php which are currently loaded for custom implementations
|
266 |
*
|
267 |
* @return array[]
|
268 |
-
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}>
|
269 |
*/
|
270 |
public static function getAllRawData()
|
271 |
{
|
@@ -288,7 +288,7 @@ class InstalledVersions
|
|
288 |
* @param array[] $data A vendor/composer/installed.php data set
|
289 |
* @return void
|
290 |
*
|
291 |
-
* @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>} $data
|
292 |
*/
|
293 |
public static function reload($data)
|
294 |
{
|
@@ -298,7 +298,7 @@ class InstalledVersions
|
|
298 |
|
299 |
/**
|
300 |
* @return array[]
|
301 |
-
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}>
|
302 |
*/
|
303 |
private static function getInstalled()
|
304 |
{
|
20 |
*
|
21 |
* See also https://getcomposer.org/doc/07-runtime.md#installed-versions
|
22 |
*
|
23 |
+
* To require its presence, you can require `composer-runtime-api ^2.0`
|
24 |
*/
|
25 |
class InstalledVersions
|
26 |
{
|
228 |
|
229 |
/**
|
230 |
* @return array
|
231 |
+
* @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}
|
232 |
*/
|
233 |
public static function getRootPackage()
|
234 |
{
|
242 |
*
|
243 |
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
|
244 |
* @return array[]
|
245 |
+
* @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}
|
246 |
*/
|
247 |
public static function getRawData()
|
248 |
{
|
265 |
* Returns the raw data of all installed.php which are currently loaded for custom implementations
|
266 |
*
|
267 |
* @return array[]
|
268 |
+
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
|
269 |
*/
|
270 |
public static function getAllRawData()
|
271 |
{
|
288 |
* @param array[] $data A vendor/composer/installed.php data set
|
289 |
* @return void
|
290 |
*
|
291 |
+
* @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>} $data
|
292 |
*/
|
293 |
public static function reload($data)
|
294 |
{
|
298 |
|
299 |
/**
|
300 |
* @return array[]
|
301 |
+
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
|
302 |
*/
|
303 |
private static function getInstalled()
|
304 |
{
|
vendor/composer/autoload_classmap.php
CHANGED
@@ -58,6 +58,7 @@ return array(
|
|
58 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Entity\\Shipping' => $baseDir . '/modules/ppcp-api-client/src/Entity/class-shipping.php',
|
59 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Entity\\Token' => $baseDir . '/modules/ppcp-api-client/src/Entity/class-token.php',
|
60 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Entity\\Webhook' => $baseDir . '/modules/ppcp-api-client/src/Entity/class-webhook.php',
|
|
|
61 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Exception\\NotFoundException' => $baseDir . '/modules/ppcp-api-client/src/Exception/class-notfoundexception.php',
|
62 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Exception\\PayPalApiException' => $baseDir . '/modules/ppcp-api-client/src/Exception/class-paypalapiexception.php',
|
63 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Exception\\RuntimeException' => $baseDir . '/modules/ppcp-api-client/src/Exception/class-runtimeexception.php',
|
@@ -77,6 +78,7 @@ return array(
|
|
77 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Factory\\PurchaseUnitFactory' => $baseDir . '/modules/ppcp-api-client/src/Factory/class-purchaseunitfactory.php',
|
78 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Factory\\SellerStatusFactory' => $baseDir . '/modules/ppcp-api-client/src/Factory/class-sellerstatusfactory.php',
|
79 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Factory\\ShippingFactory' => $baseDir . '/modules/ppcp-api-client/src/Factory/class-shippingfactory.php',
|
|
|
80 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Factory\\WebhookFactory' => $baseDir . '/modules/ppcp-api-client/src/Factory/class-webhookfactory.php',
|
81 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Helper\\Cache' => $baseDir . '/modules/ppcp-api-client/src/Helper/class-cache.php',
|
82 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Helper\\DccApplies' => $baseDir . '/modules/ppcp-api-client/src/Helper/class-dccapplies.php',
|
@@ -124,12 +126,17 @@ return array(
|
|
124 |
'WooCommerce\\PayPalCommerce\\StatusReport\\StatusReportModule' => $baseDir . '/modules/ppcp-status-report/src/class-statusreportmodule.php',
|
125 |
'WooCommerce\\PayPalCommerce\\Subscription\\Helper\\SubscriptionHelper' => $baseDir . '/modules/ppcp-subscription/src/Helper/class-subscriptionhelper.php',
|
126 |
'WooCommerce\\PayPalCommerce\\Subscription\\RenewalHandler' => $baseDir . '/modules/ppcp-subscription/src/class-renewalhandler.php',
|
127 |
-
'WooCommerce\\PayPalCommerce\\Subscription\\Repository\\PaymentTokenRepository' => $baseDir . '/modules/ppcp-subscription/src/Repository/class-paymenttokenrepository.php',
|
128 |
'WooCommerce\\PayPalCommerce\\Subscription\\SubscriptionModule' => $baseDir . '/modules/ppcp-subscription/src/class-subscriptionmodule.php',
|
|
|
|
|
|
|
|
|
|
|
129 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Admin\\OrderTablePaymentStatusColumn' => $baseDir . '/modules/ppcp-wc-gateway/src/Admin/class-ordertablepaymentstatuscolumn.php',
|
130 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Admin\\PaymentStatusOrderDetail' => $baseDir . '/modules/ppcp-wc-gateway/src/Admin/class-paymentstatusorderdetail.php',
|
131 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Admin\\RenderAuthorizeAction' => $baseDir . '/modules/ppcp-wc-gateway/src/Admin/class-renderauthorizeaction.php',
|
132 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Assets\\SettingsPageAssets' => $baseDir . '/modules/ppcp-wc-gateway/src/Assets/class-settingspageassets.php',
|
|
|
133 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Checkout\\CheckoutPayPalAddressPreset' => $baseDir . '/modules/ppcp-wc-gateway/src/Checkout/class-checkoutpaypaladdresspreset.php',
|
134 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Checkout\\DisableGateways' => $baseDir . '/modules/ppcp-wc-gateway/src/Checkout/class-disablegateways.php',
|
135 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Endpoint\\ReturnUrlEndpoint' => $baseDir . '/modules/ppcp-wc-gateway/src/Endpoint/class-returnurlendpoint.php',
|
@@ -140,14 +147,19 @@ return array(
|
|
140 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Gateway\\TransactionUrlProvider' => $baseDir . '/modules/ppcp-wc-gateway/src/Gateway/class-transactionurlprovider.php',
|
141 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Notice\\AuthorizeOrderActionNotice' => $baseDir . '/modules/ppcp-wc-gateway/src/Notice/class-authorizeorderactionnotice.php',
|
142 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Notice\\ConnectAdminNotice' => $baseDir . '/modules/ppcp-wc-gateway/src/Notice/class-connectadminnotice.php',
|
|
|
143 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Processor\\AuthorizedPaymentsProcessor' => $baseDir . '/modules/ppcp-wc-gateway/src/Processor/class-authorizedpaymentsprocessor.php',
|
144 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Processor\\OrderProcessor' => $baseDir . '/modules/ppcp-wc-gateway/src/Processor/class-orderprocessor.php',
|
145 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Processor\\RefundProcessor' => $baseDir . '/modules/ppcp-wc-gateway/src/Processor/class-refundprocessor.php',
|
|
|
146 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Settings\\SectionsRenderer' => $baseDir . '/modules/ppcp-wc-gateway/src/Settings/class-sectionsrenderer.php',
|
147 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Settings\\Settings' => $baseDir . '/modules/ppcp-wc-gateway/src/Settings/class-settings.php',
|
148 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Settings\\SettingsListener' => $baseDir . '/modules/ppcp-wc-gateway/src/Settings/class-settingslistener.php',
|
149 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Settings\\SettingsRenderer' => $baseDir . '/modules/ppcp-wc-gateway/src/Settings/class-settingsrenderer.php',
|
150 |
'WooCommerce\\PayPalCommerce\\WcGateway\\WcGatewayModule' => $baseDir . '/modules/ppcp-wc-gateway/src/class-wcgatewaymodule.php',
|
|
|
|
|
|
|
151 |
'WooCommerce\\PayPalCommerce\\Webhooks\\Handler\\CheckoutOrderApproved' => $baseDir . '/modules/ppcp-webhooks/src/Handler/class-checkoutorderapproved.php',
|
152 |
'WooCommerce\\PayPalCommerce\\Webhooks\\Handler\\CheckoutOrderCompleted' => $baseDir . '/modules/ppcp-webhooks/src/Handler/class-checkoutordercompleted.php',
|
153 |
'WooCommerce\\PayPalCommerce\\Webhooks\\Handler\\PaymentCaptureCompleted' => $baseDir . '/modules/ppcp-webhooks/src/Handler/class-paymentcapturecompleted.php',
|
@@ -156,6 +168,8 @@ return array(
|
|
156 |
'WooCommerce\\PayPalCommerce\\Webhooks\\Handler\\PrefixTrait' => $baseDir . '/modules/ppcp-webhooks/src/Handler/class-prefixtrait.php',
|
157 |
'WooCommerce\\PayPalCommerce\\Webhooks\\Handler\\RequestHandler' => $baseDir . '/modules/ppcp-webhooks/src/Handler/class-requesthandler.php',
|
158 |
'WooCommerce\\PayPalCommerce\\Webhooks\\IncomingWebhookEndpoint' => $baseDir . '/modules/ppcp-webhooks/src/class-incomingwebhookendpoint.php',
|
|
|
|
|
159 |
'WooCommerce\\PayPalCommerce\\Webhooks\\WebhookModule' => $baseDir . '/modules/ppcp-webhooks/src/class-webhookmodule.php',
|
160 |
'WooCommerce\\PayPalCommerce\\Webhooks\\WebhookRegistrar' => $baseDir . '/modules/ppcp-webhooks/src/class-webhookregistrar.php',
|
161 |
'WooCommerce\\WooCommerce\\Logging\\Logger\\NullLogger' => $baseDir . '/modules/woocommerce-logging/src/Logger/class-nulllogger.php',
|
58 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Entity\\Shipping' => $baseDir . '/modules/ppcp-api-client/src/Entity/class-shipping.php',
|
59 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Entity\\Token' => $baseDir . '/modules/ppcp-api-client/src/Entity/class-token.php',
|
60 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Entity\\Webhook' => $baseDir . '/modules/ppcp-api-client/src/Entity/class-webhook.php',
|
61 |
+
'WooCommerce\\PayPalCommerce\\ApiClient\\Entity\\WebhookEvent' => $baseDir . '/modules/ppcp-api-client/src/Entity/class-webhookevent.php',
|
62 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Exception\\NotFoundException' => $baseDir . '/modules/ppcp-api-client/src/Exception/class-notfoundexception.php',
|
63 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Exception\\PayPalApiException' => $baseDir . '/modules/ppcp-api-client/src/Exception/class-paypalapiexception.php',
|
64 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Exception\\RuntimeException' => $baseDir . '/modules/ppcp-api-client/src/Exception/class-runtimeexception.php',
|
78 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Factory\\PurchaseUnitFactory' => $baseDir . '/modules/ppcp-api-client/src/Factory/class-purchaseunitfactory.php',
|
79 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Factory\\SellerStatusFactory' => $baseDir . '/modules/ppcp-api-client/src/Factory/class-sellerstatusfactory.php',
|
80 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Factory\\ShippingFactory' => $baseDir . '/modules/ppcp-api-client/src/Factory/class-shippingfactory.php',
|
81 |
+
'WooCommerce\\PayPalCommerce\\ApiClient\\Factory\\WebhookEventFactory' => $baseDir . '/modules/ppcp-api-client/src/Factory/class-webhookeventfactory.php',
|
82 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Factory\\WebhookFactory' => $baseDir . '/modules/ppcp-api-client/src/Factory/class-webhookfactory.php',
|
83 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Helper\\Cache' => $baseDir . '/modules/ppcp-api-client/src/Helper/class-cache.php',
|
84 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Helper\\DccApplies' => $baseDir . '/modules/ppcp-api-client/src/Helper/class-dccapplies.php',
|
126 |
'WooCommerce\\PayPalCommerce\\StatusReport\\StatusReportModule' => $baseDir . '/modules/ppcp-status-report/src/class-statusreportmodule.php',
|
127 |
'WooCommerce\\PayPalCommerce\\Subscription\\Helper\\SubscriptionHelper' => $baseDir . '/modules/ppcp-subscription/src/Helper/class-subscriptionhelper.php',
|
128 |
'WooCommerce\\PayPalCommerce\\Subscription\\RenewalHandler' => $baseDir . '/modules/ppcp-subscription/src/class-renewalhandler.php',
|
|
|
129 |
'WooCommerce\\PayPalCommerce\\Subscription\\SubscriptionModule' => $baseDir . '/modules/ppcp-subscription/src/class-subscriptionmodule.php',
|
130 |
+
'WooCommerce\\PayPalCommerce\\Vaulting\\Assets\\MyAccountPaymentsAssets' => $baseDir . '/modules/ppcp-vaulting/src/Assets/class-myaccountpaymentsassets.php',
|
131 |
+
'WooCommerce\\PayPalCommerce\\Vaulting\\Endpoint\\DeletePaymentTokenEndpoint' => $baseDir . '/modules/ppcp-vaulting/src/Endpoint/class-deletepaymenttokenendpoint.php',
|
132 |
+
'WooCommerce\\PayPalCommerce\\Vaulting\\PaymentTokenRepository' => $baseDir . '/modules/ppcp-vaulting/src/class-paymenttokenrepository.php',
|
133 |
+
'WooCommerce\\PayPalCommerce\\Vaulting\\PaymentTokensRenderer' => $baseDir . '/modules/ppcp-vaulting/src/class-paymenttokensrenderer.php',
|
134 |
+
'WooCommerce\\PayPalCommerce\\Vaulting\\VaultingModule' => $baseDir . '/modules/ppcp-vaulting/src/class-vaultingmodule.php',
|
135 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Admin\\OrderTablePaymentStatusColumn' => $baseDir . '/modules/ppcp-wc-gateway/src/Admin/class-ordertablepaymentstatuscolumn.php',
|
136 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Admin\\PaymentStatusOrderDetail' => $baseDir . '/modules/ppcp-wc-gateway/src/Admin/class-paymentstatusorderdetail.php',
|
137 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Admin\\RenderAuthorizeAction' => $baseDir . '/modules/ppcp-wc-gateway/src/Admin/class-renderauthorizeaction.php',
|
138 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Assets\\SettingsPageAssets' => $baseDir . '/modules/ppcp-wc-gateway/src/Assets/class-settingspageassets.php',
|
139 |
+
'WooCommerce\\PayPalCommerce\\WcGateway\\Assets\\WebhooksStatusPageAssets' => $baseDir . '/modules/ppcp-webhooks/src/Status/Assets/class-webhooksstatuspageassets.php',
|
140 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Checkout\\CheckoutPayPalAddressPreset' => $baseDir . '/modules/ppcp-wc-gateway/src/Checkout/class-checkoutpaypaladdresspreset.php',
|
141 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Checkout\\DisableGateways' => $baseDir . '/modules/ppcp-wc-gateway/src/Checkout/class-disablegateways.php',
|
142 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Endpoint\\ReturnUrlEndpoint' => $baseDir . '/modules/ppcp-wc-gateway/src/Endpoint/class-returnurlendpoint.php',
|
147 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Gateway\\TransactionUrlProvider' => $baseDir . '/modules/ppcp-wc-gateway/src/Gateway/class-transactionurlprovider.php',
|
148 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Notice\\AuthorizeOrderActionNotice' => $baseDir . '/modules/ppcp-wc-gateway/src/Notice/class-authorizeorderactionnotice.php',
|
149 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Notice\\ConnectAdminNotice' => $baseDir . '/modules/ppcp-wc-gateway/src/Notice/class-connectadminnotice.php',
|
150 |
+
'WooCommerce\\PayPalCommerce\\WcGateway\\Notice\\DccWithoutPayPalAdminNotice' => $baseDir . '/modules/ppcp-wc-gateway/src/Notice/class-dccwithoutpaypaladminnotice.php',
|
151 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Processor\\AuthorizedPaymentsProcessor' => $baseDir . '/modules/ppcp-wc-gateway/src/Processor/class-authorizedpaymentsprocessor.php',
|
152 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Processor\\OrderProcessor' => $baseDir . '/modules/ppcp-wc-gateway/src/Processor/class-orderprocessor.php',
|
153 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Processor\\RefundProcessor' => $baseDir . '/modules/ppcp-wc-gateway/src/Processor/class-refundprocessor.php',
|
154 |
+
'WooCommerce\\PayPalCommerce\\WcGateway\\Settings\\PageMatcherTrait' => $baseDir . '/modules/ppcp-wc-gateway/src/Settings/class-pagematchertrait.php',
|
155 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Settings\\SectionsRenderer' => $baseDir . '/modules/ppcp-wc-gateway/src/Settings/class-sectionsrenderer.php',
|
156 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Settings\\Settings' => $baseDir . '/modules/ppcp-wc-gateway/src/Settings/class-settings.php',
|
157 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Settings\\SettingsListener' => $baseDir . '/modules/ppcp-wc-gateway/src/Settings/class-settingslistener.php',
|
158 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Settings\\SettingsRenderer' => $baseDir . '/modules/ppcp-wc-gateway/src/Settings/class-settingsrenderer.php',
|
159 |
'WooCommerce\\PayPalCommerce\\WcGateway\\WcGatewayModule' => $baseDir . '/modules/ppcp-wc-gateway/src/class-wcgatewaymodule.php',
|
160 |
+
'WooCommerce\\PayPalCommerce\\Webhooks\\Endpoint\\ResubscribeEndpoint' => $baseDir . '/modules/ppcp-webhooks/src/Endpoint/class-resubscribeendpoint.php',
|
161 |
+
'WooCommerce\\PayPalCommerce\\Webhooks\\Endpoint\\SimulateEndpoint' => $baseDir . '/modules/ppcp-webhooks/src/Endpoint/class-simulateendpoint.php',
|
162 |
+
'WooCommerce\\PayPalCommerce\\Webhooks\\Endpoint\\SimulationStateEndpoint' => $baseDir . '/modules/ppcp-webhooks/src/Endpoint/class-simulationstateendpoint.php',
|
163 |
'WooCommerce\\PayPalCommerce\\Webhooks\\Handler\\CheckoutOrderApproved' => $baseDir . '/modules/ppcp-webhooks/src/Handler/class-checkoutorderapproved.php',
|
164 |
'WooCommerce\\PayPalCommerce\\Webhooks\\Handler\\CheckoutOrderCompleted' => $baseDir . '/modules/ppcp-webhooks/src/Handler/class-checkoutordercompleted.php',
|
165 |
'WooCommerce\\PayPalCommerce\\Webhooks\\Handler\\PaymentCaptureCompleted' => $baseDir . '/modules/ppcp-webhooks/src/Handler/class-paymentcapturecompleted.php',
|
168 |
'WooCommerce\\PayPalCommerce\\Webhooks\\Handler\\PrefixTrait' => $baseDir . '/modules/ppcp-webhooks/src/Handler/class-prefixtrait.php',
|
169 |
'WooCommerce\\PayPalCommerce\\Webhooks\\Handler\\RequestHandler' => $baseDir . '/modules/ppcp-webhooks/src/Handler/class-requesthandler.php',
|
170 |
'WooCommerce\\PayPalCommerce\\Webhooks\\IncomingWebhookEndpoint' => $baseDir . '/modules/ppcp-webhooks/src/class-incomingwebhookendpoint.php',
|
171 |
+
'WooCommerce\\PayPalCommerce\\Webhooks\\Status\\WebhookSimulation' => $baseDir . '/modules/ppcp-webhooks/src/Status/class-webhooksimulation.php',
|
172 |
+
'WooCommerce\\PayPalCommerce\\Webhooks\\Status\\WebhooksStatusPage' => $baseDir . '/modules/ppcp-webhooks/src/Status/class-webhooksstatuspage.php',
|
173 |
'WooCommerce\\PayPalCommerce\\Webhooks\\WebhookModule' => $baseDir . '/modules/ppcp-webhooks/src/class-webhookmodule.php',
|
174 |
'WooCommerce\\PayPalCommerce\\Webhooks\\WebhookRegistrar' => $baseDir . '/modules/ppcp-webhooks/src/class-webhookregistrar.php',
|
175 |
'WooCommerce\\WooCommerce\\Logging\\Logger\\NullLogger' => $baseDir . '/modules/woocommerce-logging/src/Logger/class-nulllogger.php',
|
vendor/composer/autoload_real.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
-
class
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
@@ -24,15 +24,15 @@ class ComposerAutoloaderInitfd327382102db5a22440815e53142caa
|
|
24 |
|
25 |
require __DIR__ . '/platform_check.php';
|
26 |
|
27 |
-
spl_autoload_register(array('
|
28 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
|
29 |
-
spl_autoload_unregister(array('
|
30 |
|
31 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
32 |
if ($useStaticLoader) {
|
33 |
require __DIR__ . '/autoload_static.php';
|
34 |
|
35 |
-
call_user_func(\Composer\Autoload\
|
36 |
} else {
|
37 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
38 |
foreach ($map as $namespace => $path) {
|
@@ -53,19 +53,19 @@ class ComposerAutoloaderInitfd327382102db5a22440815e53142caa
|
|
53 |
$loader->register(true);
|
54 |
|
55 |
if ($useStaticLoader) {
|
56 |
-
$includeFiles = Composer\Autoload\
|
57 |
} else {
|
58 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
59 |
}
|
60 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
61 |
-
|
62 |
}
|
63 |
|
64 |
return $loader;
|
65 |
}
|
66 |
}
|
67 |
|
68 |
-
function
|
69 |
{
|
70 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
71 |
require $file;
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
+
class ComposerAutoloaderInit6f3e12b28f1ed670640881dfaf1b748a
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
24 |
|
25 |
require __DIR__ . '/platform_check.php';
|
26 |
|
27 |
+
spl_autoload_register(array('ComposerAutoloaderInit6f3e12b28f1ed670640881dfaf1b748a', 'loadClassLoader'), true, true);
|
28 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
|
29 |
+
spl_autoload_unregister(array('ComposerAutoloaderInit6f3e12b28f1ed670640881dfaf1b748a', 'loadClassLoader'));
|
30 |
|
31 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
32 |
if ($useStaticLoader) {
|
33 |
require __DIR__ . '/autoload_static.php';
|
34 |
|
35 |
+
call_user_func(\Composer\Autoload\ComposerStaticInit6f3e12b28f1ed670640881dfaf1b748a::getInitializer($loader));
|
36 |
} else {
|
37 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
38 |
foreach ($map as $namespace => $path) {
|
53 |
$loader->register(true);
|
54 |
|
55 |
if ($useStaticLoader) {
|
56 |
+
$includeFiles = Composer\Autoload\ComposerStaticInit6f3e12b28f1ed670640881dfaf1b748a::$files;
|
57 |
} else {
|
58 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
59 |
}
|
60 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
61 |
+
composerRequire6f3e12b28f1ed670640881dfaf1b748a($fileIdentifier, $file);
|
62 |
}
|
63 |
|
64 |
return $loader;
|
65 |
}
|
66 |
}
|
67 |
|
68 |
+
function composerRequire6f3e12b28f1ed670640881dfaf1b748a($fileIdentifier, $file)
|
69 |
{
|
70 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
71 |
require $file;
|
vendor/composer/autoload_static.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
-
class
|
8 |
{
|
9 |
public static $files = array (
|
10 |
'7b11c4dc42b3b3023073cb14e519683c' => __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php',
|
@@ -133,6 +133,7 @@ class ComposerStaticInitfd327382102db5a22440815e53142caa
|
|
133 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Entity\\Shipping' => __DIR__ . '/../..' . '/modules/ppcp-api-client/src/Entity/class-shipping.php',
|
134 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Entity\\Token' => __DIR__ . '/../..' . '/modules/ppcp-api-client/src/Entity/class-token.php',
|
135 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Entity\\Webhook' => __DIR__ . '/../..' . '/modules/ppcp-api-client/src/Entity/class-webhook.php',
|
|
|
136 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Exception\\NotFoundException' => __DIR__ . '/../..' . '/modules/ppcp-api-client/src/Exception/class-notfoundexception.php',
|
137 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Exception\\PayPalApiException' => __DIR__ . '/../..' . '/modules/ppcp-api-client/src/Exception/class-paypalapiexception.php',
|
138 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Exception\\RuntimeException' => __DIR__ . '/../..' . '/modules/ppcp-api-client/src/Exception/class-runtimeexception.php',
|
@@ -152,6 +153,7 @@ class ComposerStaticInitfd327382102db5a22440815e53142caa
|
|
152 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Factory\\PurchaseUnitFactory' => __DIR__ . '/../..' . '/modules/ppcp-api-client/src/Factory/class-purchaseunitfactory.php',
|
153 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Factory\\SellerStatusFactory' => __DIR__ . '/../..' . '/modules/ppcp-api-client/src/Factory/class-sellerstatusfactory.php',
|
154 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Factory\\ShippingFactory' => __DIR__ . '/../..' . '/modules/ppcp-api-client/src/Factory/class-shippingfactory.php',
|
|
|
155 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Factory\\WebhookFactory' => __DIR__ . '/../..' . '/modules/ppcp-api-client/src/Factory/class-webhookfactory.php',
|
156 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Helper\\Cache' => __DIR__ . '/../..' . '/modules/ppcp-api-client/src/Helper/class-cache.php',
|
157 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Helper\\DccApplies' => __DIR__ . '/../..' . '/modules/ppcp-api-client/src/Helper/class-dccapplies.php',
|
@@ -199,12 +201,17 @@ class ComposerStaticInitfd327382102db5a22440815e53142caa
|
|
199 |
'WooCommerce\\PayPalCommerce\\StatusReport\\StatusReportModule' => __DIR__ . '/../..' . '/modules/ppcp-status-report/src/class-statusreportmodule.php',
|
200 |
'WooCommerce\\PayPalCommerce\\Subscription\\Helper\\SubscriptionHelper' => __DIR__ . '/../..' . '/modules/ppcp-subscription/src/Helper/class-subscriptionhelper.php',
|
201 |
'WooCommerce\\PayPalCommerce\\Subscription\\RenewalHandler' => __DIR__ . '/../..' . '/modules/ppcp-subscription/src/class-renewalhandler.php',
|
202 |
-
'WooCommerce\\PayPalCommerce\\Subscription\\Repository\\PaymentTokenRepository' => __DIR__ . '/../..' . '/modules/ppcp-subscription/src/Repository/class-paymenttokenrepository.php',
|
203 |
'WooCommerce\\PayPalCommerce\\Subscription\\SubscriptionModule' => __DIR__ . '/../..' . '/modules/ppcp-subscription/src/class-subscriptionmodule.php',
|
|
|
|
|
|
|
|
|
|
|
204 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Admin\\OrderTablePaymentStatusColumn' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Admin/class-ordertablepaymentstatuscolumn.php',
|
205 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Admin\\PaymentStatusOrderDetail' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Admin/class-paymentstatusorderdetail.php',
|
206 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Admin\\RenderAuthorizeAction' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Admin/class-renderauthorizeaction.php',
|
207 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Assets\\SettingsPageAssets' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Assets/class-settingspageassets.php',
|
|
|
208 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Checkout\\CheckoutPayPalAddressPreset' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Checkout/class-checkoutpaypaladdresspreset.php',
|
209 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Checkout\\DisableGateways' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Checkout/class-disablegateways.php',
|
210 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Endpoint\\ReturnUrlEndpoint' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Endpoint/class-returnurlendpoint.php',
|
@@ -215,14 +222,19 @@ class ComposerStaticInitfd327382102db5a22440815e53142caa
|
|
215 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Gateway\\TransactionUrlProvider' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Gateway/class-transactionurlprovider.php',
|
216 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Notice\\AuthorizeOrderActionNotice' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Notice/class-authorizeorderactionnotice.php',
|
217 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Notice\\ConnectAdminNotice' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Notice/class-connectadminnotice.php',
|
|
|
218 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Processor\\AuthorizedPaymentsProcessor' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Processor/class-authorizedpaymentsprocessor.php',
|
219 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Processor\\OrderProcessor' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Processor/class-orderprocessor.php',
|
220 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Processor\\RefundProcessor' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Processor/class-refundprocessor.php',
|
|
|
221 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Settings\\SectionsRenderer' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Settings/class-sectionsrenderer.php',
|
222 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Settings\\Settings' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Settings/class-settings.php',
|
223 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Settings\\SettingsListener' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Settings/class-settingslistener.php',
|
224 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Settings\\SettingsRenderer' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Settings/class-settingsrenderer.php',
|
225 |
'WooCommerce\\PayPalCommerce\\WcGateway\\WcGatewayModule' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/class-wcgatewaymodule.php',
|
|
|
|
|
|
|
226 |
'WooCommerce\\PayPalCommerce\\Webhooks\\Handler\\CheckoutOrderApproved' => __DIR__ . '/../..' . '/modules/ppcp-webhooks/src/Handler/class-checkoutorderapproved.php',
|
227 |
'WooCommerce\\PayPalCommerce\\Webhooks\\Handler\\CheckoutOrderCompleted' => __DIR__ . '/../..' . '/modules/ppcp-webhooks/src/Handler/class-checkoutordercompleted.php',
|
228 |
'WooCommerce\\PayPalCommerce\\Webhooks\\Handler\\PaymentCaptureCompleted' => __DIR__ . '/../..' . '/modules/ppcp-webhooks/src/Handler/class-paymentcapturecompleted.php',
|
@@ -231,6 +243,8 @@ class ComposerStaticInitfd327382102db5a22440815e53142caa
|
|
231 |
'WooCommerce\\PayPalCommerce\\Webhooks\\Handler\\PrefixTrait' => __DIR__ . '/../..' . '/modules/ppcp-webhooks/src/Handler/class-prefixtrait.php',
|
232 |
'WooCommerce\\PayPalCommerce\\Webhooks\\Handler\\RequestHandler' => __DIR__ . '/../..' . '/modules/ppcp-webhooks/src/Handler/class-requesthandler.php',
|
233 |
'WooCommerce\\PayPalCommerce\\Webhooks\\IncomingWebhookEndpoint' => __DIR__ . '/../..' . '/modules/ppcp-webhooks/src/class-incomingwebhookendpoint.php',
|
|
|
|
|
234 |
'WooCommerce\\PayPalCommerce\\Webhooks\\WebhookModule' => __DIR__ . '/../..' . '/modules/ppcp-webhooks/src/class-webhookmodule.php',
|
235 |
'WooCommerce\\PayPalCommerce\\Webhooks\\WebhookRegistrar' => __DIR__ . '/../..' . '/modules/ppcp-webhooks/src/class-webhookregistrar.php',
|
236 |
'WooCommerce\\WooCommerce\\Logging\\Logger\\NullLogger' => __DIR__ . '/../..' . '/modules/woocommerce-logging/src/Logger/class-nulllogger.php',
|
@@ -244,9 +258,9 @@ class ComposerStaticInitfd327382102db5a22440815e53142caa
|
|
244 |
public static function getInitializer(ClassLoader $loader)
|
245 |
{
|
246 |
return \Closure::bind(function () use ($loader) {
|
247 |
-
$loader->prefixLengthsPsr4 =
|
248 |
-
$loader->prefixDirsPsr4 =
|
249 |
-
$loader->classMap =
|
250 |
|
251 |
}, null, ClassLoader::class);
|
252 |
}
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
+
class ComposerStaticInit6f3e12b28f1ed670640881dfaf1b748a
|
8 |
{
|
9 |
public static $files = array (
|
10 |
'7b11c4dc42b3b3023073cb14e519683c' => __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php',
|
133 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Entity\\Shipping' => __DIR__ . '/../..' . '/modules/ppcp-api-client/src/Entity/class-shipping.php',
|
134 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Entity\\Token' => __DIR__ . '/../..' . '/modules/ppcp-api-client/src/Entity/class-token.php',
|
135 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Entity\\Webhook' => __DIR__ . '/../..' . '/modules/ppcp-api-client/src/Entity/class-webhook.php',
|
136 |
+
'WooCommerce\\PayPalCommerce\\ApiClient\\Entity\\WebhookEvent' => __DIR__ . '/../..' . '/modules/ppcp-api-client/src/Entity/class-webhookevent.php',
|
137 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Exception\\NotFoundException' => __DIR__ . '/../..' . '/modules/ppcp-api-client/src/Exception/class-notfoundexception.php',
|
138 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Exception\\PayPalApiException' => __DIR__ . '/../..' . '/modules/ppcp-api-client/src/Exception/class-paypalapiexception.php',
|
139 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Exception\\RuntimeException' => __DIR__ . '/../..' . '/modules/ppcp-api-client/src/Exception/class-runtimeexception.php',
|
153 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Factory\\PurchaseUnitFactory' => __DIR__ . '/../..' . '/modules/ppcp-api-client/src/Factory/class-purchaseunitfactory.php',
|
154 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Factory\\SellerStatusFactory' => __DIR__ . '/../..' . '/modules/ppcp-api-client/src/Factory/class-sellerstatusfactory.php',
|
155 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Factory\\ShippingFactory' => __DIR__ . '/../..' . '/modules/ppcp-api-client/src/Factory/class-shippingfactory.php',
|
156 |
+
'WooCommerce\\PayPalCommerce\\ApiClient\\Factory\\WebhookEventFactory' => __DIR__ . '/../..' . '/modules/ppcp-api-client/src/Factory/class-webhookeventfactory.php',
|
157 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Factory\\WebhookFactory' => __DIR__ . '/../..' . '/modules/ppcp-api-client/src/Factory/class-webhookfactory.php',
|
158 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Helper\\Cache' => __DIR__ . '/../..' . '/modules/ppcp-api-client/src/Helper/class-cache.php',
|
159 |
'WooCommerce\\PayPalCommerce\\ApiClient\\Helper\\DccApplies' => __DIR__ . '/../..' . '/modules/ppcp-api-client/src/Helper/class-dccapplies.php',
|
201 |
'WooCommerce\\PayPalCommerce\\StatusReport\\StatusReportModule' => __DIR__ . '/../..' . '/modules/ppcp-status-report/src/class-statusreportmodule.php',
|
202 |
'WooCommerce\\PayPalCommerce\\Subscription\\Helper\\SubscriptionHelper' => __DIR__ . '/../..' . '/modules/ppcp-subscription/src/Helper/class-subscriptionhelper.php',
|
203 |
'WooCommerce\\PayPalCommerce\\Subscription\\RenewalHandler' => __DIR__ . '/../..' . '/modules/ppcp-subscription/src/class-renewalhandler.php',
|
|
|
204 |
'WooCommerce\\PayPalCommerce\\Subscription\\SubscriptionModule' => __DIR__ . '/../..' . '/modules/ppcp-subscription/src/class-subscriptionmodule.php',
|
205 |
+
'WooCommerce\\PayPalCommerce\\Vaulting\\Assets\\MyAccountPaymentsAssets' => __DIR__ . '/../..' . '/modules/ppcp-vaulting/src/Assets/class-myaccountpaymentsassets.php',
|
206 |
+
'WooCommerce\\PayPalCommerce\\Vaulting\\Endpoint\\DeletePaymentTokenEndpoint' => __DIR__ . '/../..' . '/modules/ppcp-vaulting/src/Endpoint/class-deletepaymenttokenendpoint.php',
|
207 |
+
'WooCommerce\\PayPalCommerce\\Vaulting\\PaymentTokenRepository' => __DIR__ . '/../..' . '/modules/ppcp-vaulting/src/class-paymenttokenrepository.php',
|
208 |
+
'WooCommerce\\PayPalCommerce\\Vaulting\\PaymentTokensRenderer' => __DIR__ . '/../..' . '/modules/ppcp-vaulting/src/class-paymenttokensrenderer.php',
|
209 |
+
'WooCommerce\\PayPalCommerce\\Vaulting\\VaultingModule' => __DIR__ . '/../..' . '/modules/ppcp-vaulting/src/class-vaultingmodule.php',
|
210 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Admin\\OrderTablePaymentStatusColumn' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Admin/class-ordertablepaymentstatuscolumn.php',
|
211 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Admin\\PaymentStatusOrderDetail' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Admin/class-paymentstatusorderdetail.php',
|
212 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Admin\\RenderAuthorizeAction' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Admin/class-renderauthorizeaction.php',
|
213 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Assets\\SettingsPageAssets' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Assets/class-settingspageassets.php',
|
214 |
+
'WooCommerce\\PayPalCommerce\\WcGateway\\Assets\\WebhooksStatusPageAssets' => __DIR__ . '/../..' . '/modules/ppcp-webhooks/src/Status/Assets/class-webhooksstatuspageassets.php',
|
215 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Checkout\\CheckoutPayPalAddressPreset' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Checkout/class-checkoutpaypaladdresspreset.php',
|
216 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Checkout\\DisableGateways' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Checkout/class-disablegateways.php',
|
217 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Endpoint\\ReturnUrlEndpoint' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Endpoint/class-returnurlendpoint.php',
|
222 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Gateway\\TransactionUrlProvider' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Gateway/class-transactionurlprovider.php',
|
223 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Notice\\AuthorizeOrderActionNotice' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Notice/class-authorizeorderactionnotice.php',
|
224 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Notice\\ConnectAdminNotice' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Notice/class-connectadminnotice.php',
|
225 |
+
'WooCommerce\\PayPalCommerce\\WcGateway\\Notice\\DccWithoutPayPalAdminNotice' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Notice/class-dccwithoutpaypaladminnotice.php',
|
226 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Processor\\AuthorizedPaymentsProcessor' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Processor/class-authorizedpaymentsprocessor.php',
|
227 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Processor\\OrderProcessor' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Processor/class-orderprocessor.php',
|
228 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Processor\\RefundProcessor' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Processor/class-refundprocessor.php',
|
229 |
+
'WooCommerce\\PayPalCommerce\\WcGateway\\Settings\\PageMatcherTrait' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Settings/class-pagematchertrait.php',
|
230 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Settings\\SectionsRenderer' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Settings/class-sectionsrenderer.php',
|
231 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Settings\\Settings' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Settings/class-settings.php',
|
232 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Settings\\SettingsListener' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Settings/class-settingslistener.php',
|
233 |
'WooCommerce\\PayPalCommerce\\WcGateway\\Settings\\SettingsRenderer' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/Settings/class-settingsrenderer.php',
|
234 |
'WooCommerce\\PayPalCommerce\\WcGateway\\WcGatewayModule' => __DIR__ . '/../..' . '/modules/ppcp-wc-gateway/src/class-wcgatewaymodule.php',
|
235 |
+
'WooCommerce\\PayPalCommerce\\Webhooks\\Endpoint\\ResubscribeEndpoint' => __DIR__ . '/../..' . '/modules/ppcp-webhooks/src/Endpoint/class-resubscribeendpoint.php',
|
236 |
+
'WooCommerce\\PayPalCommerce\\Webhooks\\Endpoint\\SimulateEndpoint' => __DIR__ . '/../..' . '/modules/ppcp-webhooks/src/Endpoint/class-simulateendpoint.php',
|
237 |
+
'WooCommerce\\PayPalCommerce\\Webhooks\\Endpoint\\SimulationStateEndpoint' => __DIR__ . '/../..' . '/modules/ppcp-webhooks/src/Endpoint/class-simulationstateendpoint.php',
|
238 |
'WooCommerce\\PayPalCommerce\\Webhooks\\Handler\\CheckoutOrderApproved' => __DIR__ . '/../..' . '/modules/ppcp-webhooks/src/Handler/class-checkoutorderapproved.php',
|
239 |
'WooCommerce\\PayPalCommerce\\Webhooks\\Handler\\CheckoutOrderCompleted' => __DIR__ . '/../..' . '/modules/ppcp-webhooks/src/Handler/class-checkoutordercompleted.php',
|
240 |
'WooCommerce\\PayPalCommerce\\Webhooks\\Handler\\PaymentCaptureCompleted' => __DIR__ . '/../..' . '/modules/ppcp-webhooks/src/Handler/class-paymentcapturecompleted.php',
|
243 |
'WooCommerce\\PayPalCommerce\\Webhooks\\Handler\\PrefixTrait' => __DIR__ . '/../..' . '/modules/ppcp-webhooks/src/Handler/class-prefixtrait.php',
|
244 |
'WooCommerce\\PayPalCommerce\\Webhooks\\Handler\\RequestHandler' => __DIR__ . '/../..' . '/modules/ppcp-webhooks/src/Handler/class-requesthandler.php',
|
245 |
'WooCommerce\\PayPalCommerce\\Webhooks\\IncomingWebhookEndpoint' => __DIR__ . '/../..' . '/modules/ppcp-webhooks/src/class-incomingwebhookendpoint.php',
|
246 |
+
'WooCommerce\\PayPalCommerce\\Webhooks\\Status\\WebhookSimulation' => __DIR__ . '/../..' . '/modules/ppcp-webhooks/src/Status/class-webhooksimulation.php',
|
247 |
+
'WooCommerce\\PayPalCommerce\\Webhooks\\Status\\WebhooksStatusPage' => __DIR__ . '/../..' . '/modules/ppcp-webhooks/src/Status/class-webhooksstatuspage.php',
|
248 |
'WooCommerce\\PayPalCommerce\\Webhooks\\WebhookModule' => __DIR__ . '/../..' . '/modules/ppcp-webhooks/src/class-webhookmodule.php',
|
249 |
'WooCommerce\\PayPalCommerce\\Webhooks\\WebhookRegistrar' => __DIR__ . '/../..' . '/modules/ppcp-webhooks/src/class-webhookregistrar.php',
|
250 |
'WooCommerce\\WooCommerce\\Logging\\Logger\\NullLogger' => __DIR__ . '/../..' . '/modules/woocommerce-logging/src/Logger/class-nulllogger.php',
|
258 |
public static function getInitializer(ClassLoader $loader)
|
259 |
{
|
260 |
return \Closure::bind(function () use ($loader) {
|
261 |
+
$loader->prefixLengthsPsr4 = ComposerStaticInit6f3e12b28f1ed670640881dfaf1b748a::$prefixLengthsPsr4;
|
262 |
+
$loader->prefixDirsPsr4 = ComposerStaticInit6f3e12b28f1ed670640881dfaf1b748a::$prefixDirsPsr4;
|
263 |
+
$loader->classMap = ComposerStaticInit6f3e12b28f1ed670640881dfaf1b748a::$classMap;
|
264 |
|
265 |
}, null, ClassLoader::class);
|
266 |
}
|
vendor/composer/installed.json
CHANGED
@@ -333,17 +333,17 @@
|
|
333 |
},
|
334 |
{
|
335 |
"name": "dhii/module-interface",
|
336 |
-
"version": "v0.3.0-
|
337 |
-
"version_normalized": "0.3.0.0-
|
338 |
"source": {
|
339 |
"type": "git",
|
340 |
"url": "https://github.com/Dhii/module-interface.git",
|
341 |
-
"reference": "
|
342 |
},
|
343 |
"dist": {
|
344 |
"type": "zip",
|
345 |
-
"url": "https://api.github.com/repos/Dhii/module-interface/zipball/
|
346 |
-
"reference": "
|
347 |
"shasum": ""
|
348 |
},
|
349 |
"require": {
|
@@ -356,7 +356,7 @@
|
|
356 |
"slevomat/coding-standard": "^6.0",
|
357 |
"vimeo/psalm": "^3.11.7 | ^4.0"
|
358 |
},
|
359 |
-
"time": "2021-
|
360 |
"type": "library",
|
361 |
"extra": {
|
362 |
"branch-alias": {
|
@@ -382,7 +382,7 @@
|
|
382 |
"description": "Interfaces for modules",
|
383 |
"support": {
|
384 |
"issues": "https://github.com/Dhii/module-interface/issues",
|
385 |
-
"source": "https://github.com/Dhii/module-interface/tree/v0.3.0-
|
386 |
},
|
387 |
"install-path": "../dhii/module-interface"
|
388 |
},
|
333 |
},
|
334 |
{
|
335 |
"name": "dhii/module-interface",
|
336 |
+
"version": "v0.3.0-alpha2",
|
337 |
+
"version_normalized": "0.3.0.0-alpha2",
|
338 |
"source": {
|
339 |
"type": "git",
|
340 |
"url": "https://github.com/Dhii/module-interface.git",
|
341 |
+
"reference": "0e39f167d7ed8990c82f5d2e6084159d1a502a5b"
|
342 |
},
|
343 |
"dist": {
|
344 |
"type": "zip",
|
345 |
+
"url": "https://api.github.com/repos/Dhii/module-interface/zipball/0e39f167d7ed8990c82f5d2e6084159d1a502a5b",
|
346 |
+
"reference": "0e39f167d7ed8990c82f5d2e6084159d1a502a5b",
|
347 |
"shasum": ""
|
348 |
},
|
349 |
"require": {
|
356 |
"slevomat/coding-standard": "^6.0",
|
357 |
"vimeo/psalm": "^3.11.7 | ^4.0"
|
358 |
},
|
359 |
+
"time": "2021-08-23T08:23:01+00:00",
|
360 |
"type": "library",
|
361 |
"extra": {
|
362 |
"branch-alias": {
|
382 |
"description": "Interfaces for modules",
|
383 |
"support": {
|
384 |
"issues": "https://github.com/Dhii/module-interface/issues",
|
385 |
+
"source": "https://github.com/Dhii/module-interface/tree/v0.3.0-alpha2"
|
386 |
},
|
387 |
"install-path": "../dhii/module-interface"
|
388 |
},
|
vendor/composer/installed.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
'type' => 'wordpress-plugin',
|
6 |
'install_path' => __DIR__ . '/../../',
|
7 |
'aliases' => array(),
|
8 |
-
'reference' => '
|
9 |
'name' => 'woocommerce/woocommerce-paypal-payments',
|
10 |
'dev' => false,
|
11 |
),
|
@@ -65,12 +65,12 @@
|
|
65 |
'dev_requirement' => false,
|
66 |
),
|
67 |
'dhii/module-interface' => array(
|
68 |
-
'pretty_version' => 'v0.3.0-
|
69 |
-
'version' => '0.3.0.0-
|
70 |
'type' => 'library',
|
71 |
'install_path' => __DIR__ . '/../dhii/module-interface',
|
72 |
'aliases' => array(),
|
73 |
-
'reference' => '
|
74 |
'dev_requirement' => false,
|
75 |
),
|
76 |
'dhii/stringable-interface' => array(
|
@@ -124,7 +124,7 @@
|
|
124 |
'type' => 'wordpress-plugin',
|
125 |
'install_path' => __DIR__ . '/../../',
|
126 |
'aliases' => array(),
|
127 |
-
'reference' => '
|
128 |
'dev_requirement' => false,
|
129 |
),
|
130 |
),
|
5 |
'type' => 'wordpress-plugin',
|
6 |
'install_path' => __DIR__ . '/../../',
|
7 |
'aliases' => array(),
|
8 |
+
'reference' => '505f5223cef9205a77df95f00362e3f515ae8666',
|
9 |
'name' => 'woocommerce/woocommerce-paypal-payments',
|
10 |
'dev' => false,
|
11 |
),
|
65 |
'dev_requirement' => false,
|
66 |
),
|
67 |
'dhii/module-interface' => array(
|
68 |
+
'pretty_version' => 'v0.3.0-alpha2',
|
69 |
+
'version' => '0.3.0.0-alpha2',
|
70 |
'type' => 'library',
|
71 |
'install_path' => __DIR__ . '/../dhii/module-interface',
|
72 |
'aliases' => array(),
|
73 |
+
'reference' => '0e39f167d7ed8990c82f5d2e6084159d1a502a5b',
|
74 |
'dev_requirement' => false,
|
75 |
),
|
76 |
'dhii/stringable-interface' => array(
|
124 |
'type' => 'wordpress-plugin',
|
125 |
'install_path' => __DIR__ . '/../../',
|
126 |
'aliases' => array(),
|
127 |
+
'reference' => '505f5223cef9205a77df95f00362e3f515ae8666',
|
128 |
'dev_requirement' => false,
|
129 |
),
|
130 |
),
|
vendor/dhii/module-interface/.env.example
DELETED
@@ -1,6 +0,0 @@
|
|
1 |
-
BASE_PATH=./
|
2 |
-
BUILD_ROOT_PATH=/app/
|
3 |
-
PROJECT_NAME=dhii_module-interface
|
4 |
-
|
5 |
-
PHP_BUILD_VERSION=7.1
|
6 |
-
PHP_TEST_VERSION=7.1
|
|
|
|
|
|
|
|
|
|
|
|
vendor/dhii/module-interface/CHANGELOG.md
DELETED
@@ -1,32 +0,0 @@
|
|
1 |
-
# Change log
|
2 |
-
All notable changes to this project will be documented in this file.
|
3 |
-
|
4 |
-
The format is based on [Keep a Changelog](http://keepachangelog.com/)
|
5 |
-
and this project adheres to [Semantic Versioning](http://semver.org/).
|
6 |
-
|
7 |
-
## [[*next-version*]] - YYYY-MM-DD
|
8 |
-
|
9 |
-
## [0.3.0-alpha1] - 2021-01-14
|
10 |
-
### Added
|
11 |
-
- Support for PHP 8.
|
12 |
-
- **BC-breaking**: `ModuleInterface#run()` now declares `void` return type.
|
13 |
-
|
14 |
-
## [0.2.0-alpha1] - 2020-04-10
|
15 |
-
### Changed
|
16 |
-
- Module `setup()` now returns a `ServiceProviderInterface` instance.
|
17 |
-
- Module `run()` now requires the `ContainerInterface` argument.
|
18 |
-
- Modules are no longer key-aware.
|
19 |
-
|
20 |
-
### Removed
|
21 |
-
- `DependenciesAwareInterface` has been removed.
|
22 |
-
- `ModuleFactoryInterface` has been removed.
|
23 |
-
- `ModuleKeyAwareInterface` has been removed.
|
24 |
-
|
25 |
-
## [0.1] - 2019-11-05
|
26 |
-
Stable release
|
27 |
-
|
28 |
-
### Fixed
|
29 |
-
- Modules are now allowed to throw specialized exceptions.
|
30 |
-
|
31 |
-
## [0.1-alpha1] - 2018-05-07
|
32 |
-
Initial version.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/dhii/module-interface/LICENSE
DELETED
@@ -1,21 +0,0 @@
|
|
1 |
-
MIT License
|
2 |
-
|
3 |
-
Copyright (c) YYYY Dhii
|
4 |
-
|
5 |
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6 |
-
of this software and associated documentation files (the "Software"), to deal
|
7 |
-
in the Software without restriction, including without limitation the rights
|
8 |
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9 |
-
copies of the Software, and to permit persons to whom the Software is
|
10 |
-
furnished to do so, subject to the following conditions:
|
11 |
-
|
12 |
-
The above copyright notice and this permission notice shall be included in all
|
13 |
-
copies or substantial portions of the Software.
|
14 |
-
|
15 |
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16 |
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17 |
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18 |
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19 |
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20 |
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21 |
-
SOFTWARE.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/dhii/module-interface/README.md
DELETED
@@ -1,290 +0,0 @@
|
|
1 |
-
# Dhii - Module Interface
|
2 |
-
|
3 |
-
[![Build Status](https://travis-ci.org/Dhii/module-interface.svg?branch=develop)](https://travis-ci.org/Dhii/module-interface)
|
4 |
-
[![Code Climate](https://codeclimate.com/github/Dhii/module-interface/badges/gpa.svg)](https://codeclimate.com/github/Dhii/module-interface)
|
5 |
-
[![Test Coverage](https://codeclimate.com/github/Dhii/module-interface/badges/coverage.svg)](https://codeclimate.com/github/Dhii/module-interface/coverage)
|
6 |
-
[![Latest Stable Version](https://poser.pugx.org/dhii/module-interface/version)](https://packagist.org/packages/dhii/module-interface)
|
7 |
-
|
8 |
-
## Details
|
9 |
-
This package contains interfaces that are useful in describing modules and their attributes and behaviour.
|
10 |
-
|
11 |
-
### Requirements
|
12 |
-
- PHP: 7.1 and up, until 8.
|
13 |
-
|
14 |
-
Officially supports at least up to php 7.4.x.
|
15 |
-
|
16 |
-
### Interfaces
|
17 |
-
- [`ModuleInterface`][] - The interface for a module. A module is an object that represents an
|
18 |
-
application fragment. Modules are prepared using `setup()`, which returns a `ServiceProviderInterface` instance that
|
19 |
-
the application may consume, and invoked using `run()`, consuming the application's DI container.
|
20 |
-
- [`ModuleAwareInterface`][] - Something that can have a module retrieved.
|
21 |
-
- [`ModuleExceptionInterface`][] - An exception thrown by a module.
|
22 |
-
|
23 |
-
### Usage
|
24 |
-
#### Module Package
|
25 |
-
In your module's pacakge, create a file that returns a module factory. This factory MUST return an instance
|
26 |
-
of `ModuleInterface` from this pacakge. By convention, this file has
|
27 |
-
the name `module.php`, and is located in the root directory. Below is a very basic example. In real life,
|
28 |
-
the service provider and the module will often have named classes of their own, and factories and extensions
|
29 |
-
will be located in `services.php` and `extensions.php` respectively, by convention.
|
30 |
-
|
31 |
-
```php
|
32 |
-
// module.php
|
33 |
-
use Dhii\Modular\Module\ModuleInterface;
|
34 |
-
use Interop\Container\ServiceProviderInterface;
|
35 |
-
use Psr\Container\ContainerInterface;
|
36 |
-
|
37 |
-
return function () {
|
38 |
-
return new class () implements ModuleInterface {
|
39 |
-
|
40 |
-
/**
|
41 |
-
* Declares services of this module.
|
42 |
-
*
|
43 |
-
* @return ServiceProviderInterface The service provider with the factories and extensions of this module.
|
44 |
-
*/
|
45 |
-
public function setup() : ServiceProviderInterface
|
46 |
-
{
|
47 |
-
return new class () implements ServiceProviderInterface
|
48 |
-
{
|
49 |
-
/**
|
50 |
-
* Only the factory of the last module in load order is applied.
|
51 |
-
*
|
52 |
-
* @return array|callable[] A map of service names to service definitions.
|
53 |
-
*/
|
54 |
-
public function getFactories()
|
55 |
-
{
|
56 |
-
return [
|
57 |
-
// A factory always gets one parameter: the container.
|
58 |
-
'my_module/my_service' => function (ContainerInterface $c) {
|
59 |
-
// Create and return your service instance
|
60 |
-
return new MyService();
|
61 |
-
},
|
62 |
-
];
|
63 |
-
}
|
64 |
-
|
65 |
-
/**
|
66 |
-
* All extensions are always applied, in load order.
|
67 |
-
*
|
68 |
-
* @return array|callable[] A map of service names to extensions.
|
69 |
-
*/
|
70 |
-
public function getExtensions()
|
71 |
-
{
|
72 |
-
return [
|
73 |
-
// An extension gets an additional parameter:
|
74 |
-
// the value returned by the factory or the previously applied extensions.
|
75 |
-
'other_module/other_service' => function (
|
76 |
-
ContainerInterface $c,
|
77 |
-
OtherServiceInterface $previous
|
78 |
-
): OtherServiceInterface {
|
79 |
-
// Perhaps decorate $previous and return the decorator
|
80 |
-
return new MyDecorator($previous);
|
81 |
-
},
|
82 |
-
];
|
83 |
-
}
|
84 |
-
};
|
85 |
-
}
|
86 |
-
|
87 |
-
/**
|
88 |
-
* Consumes services of this and other modules.
|
89 |
-
*
|
90 |
-
* @param ContainerInterface $c A container with the services of all modules.
|
91 |
-
*/
|
92 |
-
public function run(ContainerInterface $c)
|
93 |
-
{
|
94 |
-
$myService = $c->get('my_module/my_service');
|
95 |
-
$myService->doSomething();
|
96 |
-
}
|
97 |
-
};
|
98 |
-
};
|
99 |
-
```
|
100 |
-
|
101 |
-
In the above example, the module declares a service `my_module/my_service`, and an extension
|
102 |
-
for the `other_module/other_service`, which may be found in another module. Note that by convention,
|
103 |
-
the service name contains the module name prefix, separated by forward slash `/`. It's possible
|
104 |
-
to further "nest" services by adding slash-separated "levels". In the future, some container
|
105 |
-
implementations will add benefits for modules that use this convention.
|
106 |
-
|
107 |
-
Applications would often need the ability to do something with the arbitrary set of
|
108 |
-
modules they require. In order for an application to be able to group all modules
|
109 |
-
together, declare the package type in your `composer.json` to be `dhii-mod` by convention.
|
110 |
-
Following this convention would allow all modules written by all authors to be treated
|
111 |
-
uniformly.
|
112 |
-
|
113 |
-
```json
|
114 |
-
{
|
115 |
-
"name": "me/my_module",
|
116 |
-
"type": "dhii-mod"
|
117 |
-
}
|
118 |
-
```
|
119 |
-
|
120 |
-
What's important here:
|
121 |
-
|
122 |
-
1. A module's `setup()` method should not cause side effects.
|
123 |
-
|
124 |
-
The setup method is intended for the modules to prepare for action. Modules should not actually
|
125 |
-
peform the actions during this method. The container is not available in this method, and therefore
|
126 |
-
the module cannot use any services, whether of itself or of other modules, in this method. Do not
|
127 |
-
try to make the module use its own services here.
|
128 |
-
|
129 |
-
2. Implement the correct interfaces.
|
130 |
-
|
131 |
-
A module MUST implement `ModuleInterface`. The module's `setup()` method MUST return `ServiceProviderInterface`.
|
132 |
-
Even though the [Service Provider][`container-interop/service-provider`] standard is experimental, and has been experimental for a long time, the
|
133 |
-
module standard relies heavily on it. If the module standard becomes ubiquitous, this could push
|
134 |
-
FIG to go forward with the Service Provider standard, hopefully making it into a PSR.
|
135 |
-
|
136 |
-
3. Observe conventions.
|
137 |
-
|
138 |
-
It is important that conventions outlined here are observed. Some are necessary for smooth operation of
|
139 |
-
modules and/or consuming applications. Some others may not make a difference right now, but could
|
140 |
-
add benefits in the future. Please observe these conventions to ensure an optimal experience
|
141 |
-
for yourself and for other users of the standard.
|
142 |
-
|
143 |
-
#### Consumer Package
|
144 |
-
##### Module Installation
|
145 |
-
The package that consumes modules, which is usually the application, would need to require the modules.
|
146 |
-
The below example uses the [`oomphinc/composer-installers-extender`][] lib to configure Composer
|
147 |
-
so that it installs all `dhii-mod` packages into the `modules` directory in the application root.
|
148 |
-
Packages `me/my_module` and `me/my_other_module` would therefore go into `modules/me/my_module` and
|
149 |
-
`modules/me/my_other_module` respectively.
|
150 |
-
|
151 |
-
```json
|
152 |
-
{
|
153 |
-
"name": "me/my_app",
|
154 |
-
"require": {
|
155 |
-
"me/my_module": "^0.1",
|
156 |
-
"me/my_other_module": "^0.1",
|
157 |
-
"oomphinc/composer-installers-extender": "^1.1"
|
158 |
-
},
|
159 |
-
|
160 |
-
"extra": {
|
161 |
-
"installer-types": ["dhii-mod"],
|
162 |
-
"installer-paths": {
|
163 |
-
"modules/{$vendor}/{$name}": ["type:dhii-mod"]
|
164 |
-
}
|
165 |
-
}
|
166 |
-
}
|
167 |
-
```
|
168 |
-
|
169 |
-
##### Module Loading
|
170 |
-
Once a module has been required, it must be loaded. Module files must be explicitly loaded by the
|
171 |
-
application, because the application is what determines module load order. The load order is
|
172 |
-
the fundamental principle that allows modules to extend and override each other's services
|
173 |
-
in a simple and intuitive way:
|
174 |
-
|
175 |
-
1. Factories in modules that are loaded later will completely override factories of modules loaded earlier.
|
176 |
-
|
177 |
-
Ultimately, for each service, only one factory will be used: the one declared last. So if `my_other_module`
|
178 |
-
is loaded after `my_module`, and it declares a service `my_module/my_service`,
|
179 |
-
then it will override the `my_module/my_service` service declared by `my_module`.
|
180 |
-
In short: **last factory wins**.
|
181 |
-
|
182 |
-
2. Extensions in modules that are loaded later will be applied after extensions of modules loaded earlier.
|
183 |
-
|
184 |
-
Ultimately, extensions from _all_ modules will be applied on top of what is returned by the factory.
|
185 |
-
So if `my_other_module` declares an extension `other_module/other_service`, it will be applied after
|
186 |
-
the extension `other_module/other_service` declared by `my_module`.
|
187 |
-
In short: **later extensions extend previous extensions**.
|
188 |
-
|
189 |
-
Continuing from the examples above, if something in the application requests the service `other_module/other_service`
|
190 |
-
declared by `my_other_module`, this is what is going to happen:
|
191 |
-
|
192 |
-
1. The factory in `my_other_module` is invoked.
|
193 |
-
2. The extension in `my_module` is invoked, and receives the result of the above factory as `$previous`.
|
194 |
-
3. The extension in `my_other_module` is invoked, and receives the result of the above extension as `$previous`
|
195 |
-
4. The caller of `get('other_module/other_service')` receives the result of the above extension.
|
196 |
-
|
197 |
-
Thus, any module can override and/or extend services from any other module. Below is an example of what
|
198 |
-
an application's bootstrap code could look like. This example uses classes from [`dhii/containers`][].
|
199 |
-
|
200 |
-
```php
|
201 |
-
// bootstrap.php
|
202 |
-
|
203 |
-
use Dhii\Modular\Module\ModuleInterface;
|
204 |
-
use Interop\Container\ServiceProviderInterface;
|
205 |
-
use Dhii\Container\CompositeCachingServiceProvider;
|
206 |
-
use Dhii\Container\DelegatingContainer;
|
207 |
-
use Dhii\Container\CachingContainer;
|
208 |
-
|
209 |
-
(function ($file) {
|
210 |
-
$baseDir = dirname($file);
|
211 |
-
$modulesDir = "$baseDir/modules";
|
212 |
-
|
213 |
-
// Order is important!
|
214 |
-
$moduleNames = [
|
215 |
-
'me/my_module',
|
216 |
-
'me/my_other_module',
|
217 |
-
];
|
218 |
-
|
219 |
-
// Create and load all modules
|
220 |
-
/* @var $modules ModuleInterface[] */
|
221 |
-
$modules = [];
|
222 |
-
foreach ($moduleNames as $moduleName) {
|
223 |
-
$moduleFactory = require_once("$modulesDir/$moduleName/module.php");
|
224 |
-
$module = $moduleFactory();
|
225 |
-
$modules[$moduleName] = $module;
|
226 |
-
}
|
227 |
-
|
228 |
-
// Retrieve all modules' service providers
|
229 |
-
/* @var $providers ServiceProviderInterface[] */
|
230 |
-
$providers = [];
|
231 |
-
foreach ($modules as $module) {
|
232 |
-
$providers[] = $module->setup();
|
233 |
-
}
|
234 |
-
|
235 |
-
// Group all service providers into one
|
236 |
-
$provider = new CompositeCachingServiceProvider();
|
237 |
-
$container = new CachingContainer(new DelegatingContainer($provider, $parentContainer = null));
|
238 |
-
|
239 |
-
// Run all modules
|
240 |
-
foreach ($modules as $module) {
|
241 |
-
$module->run($container);
|
242 |
-
}
|
243 |
-
})(__FILE__);
|
244 |
-
```
|
245 |
-
|
246 |
-
The above will load, setup, and run modules `me/my_module` and `me/my_other_module`, in that order,
|
247 |
-
from the `modules` directory, provided that conventions have been followed by those modules.
|
248 |
-
What's important to note here:
|
249 |
-
|
250 |
-
1. First _all_ modules are set up, and then _all_ modules are run.
|
251 |
-
|
252 |
-
If you set up and run modules in the same step, it will not work, because the bootstrap
|
253 |
-
will not have the opportunity to configure the application's DI container with services
|
254 |
-
from all modules.
|
255 |
-
|
256 |
-
2. The `CompositeCachingServiceProvider` is what is responsible for resolving services correctly.
|
257 |
-
|
258 |
-
This relieves the application, as the process can seem complicated, and is quite re-usable.
|
259 |
-
The usage of this class is recommended.
|
260 |
-
|
261 |
-
3. The `DelegatingContainer` optionally accepts a parent container.
|
262 |
-
|
263 |
-
If your application is a module itself, and needs to be part of a larger application with its
|
264 |
-
own DI container, supply it as the 2nd parameter. This will ensure that services will always
|
265 |
-
be retrieved from the top-most container, regardless of where the definition is declared.
|
266 |
-
|
267 |
-
4. The `CachingContainer` ensures services are cached.
|
268 |
-
|
269 |
-
Effectively, this means that all services are singletons, i.e. there will only be one instance
|
270 |
-
of each service in the application. This is most commonly the desired behaviour. Without the
|
271 |
-
`CachingContainer`, i.e. with just the `DelegatingContainer`, service definitions will get
|
272 |
-
invoked every time `get()` is called, which is usually undesirable.
|
273 |
-
|
274 |
-
5. Conventions are important.
|
275 |
-
|
276 |
-
If modules did not place the `module.php` file into their root directories, the bootstrap
|
277 |
-
would not be able to load each module by just its package name. Modules which do not
|
278 |
-
follow that convention must have their `module.php` file loaded separately, which would
|
279 |
-
make the bootstrap code more complicated.
|
280 |
-
|
281 |
-
|
282 |
-
[Dhii]: https://github.com/Dhii/dhii
|
283 |
-
|
284 |
-
[`dhii/containers`]: https://packagist.org/packages/dhii/containers
|
285 |
-
[`oomphinc/composer-installers-extender`]: https://packagist.org/packages/oomphinc/composer-installers-extender
|
286 |
-
[`container-interop/service-provider`]: https://packagist.org/packages/container-interop/service-provider
|
287 |
-
|
288 |
-
[`ModuleInterface`]: src/ModuleInterface.php
|
289 |
-
[`ModuleAwareInterface`]: src/ModuleAwareInterface.php
|
290 |
-
[`ModuleExceptionInterface`]: src/Exception/ModuleExceptionInterface.php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/dhii/module-interface/docker-compose.yml
DELETED
@@ -1,29 +0,0 @@
|
|
1 |
-
version: '3.4'
|
2 |
-
services:
|
3 |
-
|
4 |
-
build:
|
5 |
-
build:
|
6 |
-
context: ./
|
7 |
-
dockerfile: docker/Dockerfile
|
8 |
-
target: build
|
9 |
-
args:
|
10 |
-
PHP_BUILD_VERSION: $PHP_BUILD_VERSION
|
11 |
-
BUILD_ROOT_PATH: $BUILD_ROOT_PATH
|
12 |
-
container_name: "${PROJECT_NAME}_build"
|
13 |
-
working_dir: ${BUILD_ROOT_PATH}
|
14 |
-
volumes:
|
15 |
-
- ${BASE_PATH}:${BUILD_ROOT_PATH}
|
16 |
-
|
17 |
-
test:
|
18 |
-
build:
|
19 |
-
context: ./
|
20 |
-
dockerfile: docker/Dockerfile
|
21 |
-
target: test
|
22 |
-
args:
|
23 |
-
BUILD_ROOT_PATH: $BUILD_ROOT_PATH
|
24 |
-
PHP_BUILD_VERSION: $PHP_BUILD_VERSION
|
25 |
-
PHP_TEST_VERSION: $PHP_TEST_VERSION
|
26 |
-
container_name: "${PROJECT_NAME}_test"
|
27 |
-
working_dir: ${BUILD_ROOT_PATH}
|
28 |
-
volumes:
|
29 |
-
- ${BASE_PATH}:${BUILD_ROOT_PATH}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/dhii/module-interface/docker/Dockerfile
DELETED
@@ -1,39 +0,0 @@
|
|
1 |
-
ARG PHP_BUILD_VERSION
|
2 |
-
ARG PHP_TEST_VERSION
|
3 |
-
|
4 |
-
# Composer on correct PHP version
|
5 |
-
FROM php:${PHP_BUILD_VERSION}-cli as build
|
6 |
-
|
7 |
-
ARG BUILD_ROOT_PATH
|
8 |
-
|
9 |
-
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
|
10 |
-
RUN apt-get update
|
11 |
-
RUN apt-get install -y zip unzip curl git
|
12 |
-
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
|
13 |
-
RUN php composer-setup.php --install-dir=/usr/bin --filename=composer
|
14 |
-
RUN php -r "unlink('composer-setup.php');"
|
15 |
-
|
16 |
-
WORKDIR ${BUILD_ROOT_PATH}
|
17 |
-
COPY . ./
|
18 |
-
|
19 |
-
|
20 |
-
FROM php:${PHP_TEST_VERSION}-cli as test
|
21 |
-
|
22 |
-
ARG BUILD_ROOT_PATH
|
23 |
-
|
24 |
-
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
|
25 |
-
RUN pecl install xdebug-2.6.0
|
26 |
-
RUN docker-php-ext-install pcntl
|
27 |
-
RUN docker-php-ext-install posix
|
28 |
-
|
29 |
-
WORKDIR ${BUILD_ROOT_PATH}
|
30 |
-
COPY --from=build ${BUILD_ROOT_PATH} ${BUILD_ROOT_PATH}
|
31 |
-
|
32 |
-
|
33 |
-
# Install PHP dev dependencies
|
34 |
-
FROM build as vendor-dev
|
35 |
-
|
36 |
-
ARG BUILD_ROOT_PATH
|
37 |
-
|
38 |
-
WORKDIR ${BUILD_ROOT_PATH}
|
39 |
-
RUN composer install
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/dhii/module-interface/phpcs.xml.dist
DELETED
@@ -1,50 +0,0 @@
|
|
1 |
-
<?xml version="1.0"?>
|
2 |
-
<ruleset name="plugin"
|
3 |
-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
4 |
-
xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/squizlabs/PHP_CodeSniffer/master/phpcs.xsd">
|
5 |
-
|
6 |
-
<file>./src</file>
|
7 |
-
|
8 |
-
|
9 |
-
<config name="installed_paths" value="../../slevomat/coding-standard"/>
|
10 |
-
|
11 |
-
<rule ref="PSR12"/>
|
12 |
-
<rule ref="SlevomatCodingStandard.TypeHints.ParameterTypeHint"/>
|
13 |
-
<rule ref="SlevomatCodingStandard.TypeHints.PropertyTypeHint">
|
14 |
-
<type>warning</type>
|
15 |
-
</rule>
|
16 |
-
<rule ref="SlevomatCodingStandard.TypeHints.ReturnTypeHint"/>
|
17 |
-
<rule ref="SlevomatCodingStandard.TypeHints.UselessConstantTypeHint"/>
|
18 |
-
<rule ref="SlevomatCodingStandard.TypeHints.DeclareStrictTypes">
|
19 |
-
<properties>
|
20 |
-
<property name="newlinesCountBetweenOpenTagAndDeclare" value="2"/>
|
21 |
-
<property name="newlinesCountAfterDeclare" value="2"/>
|
22 |
-
<property name="spacesCountAroundEqualsSign" value="0"/>
|
23 |
-
</properties>
|
24 |
-
</rule>
|
25 |
-
<rule ref="SlevomatCodingStandard.Classes.ClassStructure">
|
26 |
-
<properties>
|
27 |
-
<property name="groups" type="array">
|
28 |
-
<element value="uses"/>
|
29 |
-
|
30 |
-
<!-- Public constants are first but you don't care about the order of protected or private constants -->
|
31 |
-
<element value="public constants"/>
|
32 |
-
<element value="constants"/>
|
33 |
-
|
34 |
-
<!-- You don't care about the order among the properties. The same can be done with "properties" shortcut -->
|
35 |
-
<element value="public properties, protected properties, private properties, properties"/>
|
36 |
-
|
37 |
-
<!-- Constructor is first, then all public methods, then protected/private methods and magic methods are last -->
|
38 |
-
<element value="constructor"/>
|
39 |
-
<element value="all public methods"/>
|
40 |
-
<element value="methods"/>
|
41 |
-
<element value="magic methods"/>
|
42 |
-
</property>
|
43 |
-
</properties>
|
44 |
-
</rule>
|
45 |
-
<rule ref="SlevomatCodingStandard.ControlStructures.DisallowContinueWithoutIntegerOperandInSwitch"/>
|
46 |
-
<rule ref="SlevomatCodingStandard.ControlStructures.RequireNullCoalesceOperator"/>
|
47 |
-
<rule ref="SlevomatCodingStandard.PHP.DisallowDirectMagicInvokeCall"/>
|
48 |
-
<rule ref="SlevomatCodingStandard.Operators.DisallowEqualOperators"/>
|
49 |
-
<rule ref="SlevomatCodingStandard.Operators.RequireCombinedAssignmentOperator"/>
|
50 |
-
</ruleset>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/dhii/module-interface/phpunit.xml.dist
DELETED
@@ -1,20 +0,0 @@
|
|
1 |
-
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
-
<phpunit
|
3 |
-
colors="true"
|
4 |
-
bootstrap="tests/bootstrap.php"
|
5 |
-
>
|
6 |
-
<php>
|
7 |
-
<ini name="display_errors" value="1" />
|
8 |
-
<ini name="display_startup_errors" value="1" />
|
9 |
-
</php>
|
10 |
-
<testsuites>
|
11 |
-
<testsuite name="unit">
|
12 |
-
<directory>tests/unit</directory>
|
13 |
-
</testsuite>
|
14 |
-
</testsuites>
|
15 |
-
<filter>
|
16 |
-
<whitelist processUncoveredFilesFromWhitelist="true">
|
17 |
-
<directory suffix=".php">src</directory>
|
18 |
-
</whitelist>
|
19 |
-
</filter>
|
20 |
-
</phpunit>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/dhii/module-interface/psalm.xml.dist
DELETED
@@ -1,152 +0,0 @@
|
|
1 |
-
<?xml version="1.0"?>
|
2 |
-
<psalm
|
3 |
-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
4 |
-
xmlns="https://getpsalm.org/schema/config"
|
5 |
-
xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd"
|
6 |
-
xmlns:xi="http://www.w3.org/2001/XInclude"
|
7 |
-
totallyTyped="false"
|
8 |
-
useDocblockTypes="true"
|
9 |
-
usePhpDocMethodsWithoutMagicCall="false"
|
10 |
-
strictBinaryOperands="true"
|
11 |
-
rememberPropertyAssignmentsAfterCall="true"
|
12 |
-
allowPhpStormGenerics="true"
|
13 |
-
allowCoercionFromStringToClassConst="false"
|
14 |
-
allowStringToStandInForClass="false"
|
15 |
-
memoizeMethodCallResults="false"
|
16 |
-
hoistConstants="false"
|
17 |
-
addParamDefaultToDocblockType="false"
|
18 |
-
checkForThrowsDocblock="true"
|
19 |
-
checkForThrowsInGlobalScope="false"
|
20 |
-
ignoreInternalFunctionFalseReturn="false"
|
21 |
-
ignoreInternalFunctionNullReturn="false"
|
22 |
-
throwExceptionOnError="false"
|
23 |
-
hideExternalErrors="true"
|
24 |
-
allowFileIncludes="true"
|
25 |
-
>
|
26 |
-
<projectFiles>
|
27 |
-
<directory name="src"/>
|
28 |
-
</projectFiles>
|
29 |
-
|
30 |
-
<extraFiles>
|
31 |
-
<ignoreFiles>
|
32 |
-
<directory name="vendor/phpspec/prophecy"/>
|
33 |
-
</ignoreFiles>
|
34 |
-
</extraFiles>
|
35 |
-
|
36 |
-
|
37 |
-
<issueHandlers>
|
38 |
-
<ConflictingReferenceConstraint errorLevel="error"/>
|
39 |
-
<ContinueOutsideLoop errorLevel="error"/>
|
40 |
-
<DuplicateArrayKey errorLevel="error"/>
|
41 |
-
<DuplicateClass errorLevel="error"/>
|
42 |
-
<DuplicateFunction errorLevel="error"/>
|
43 |
-
<DuplicateMethod errorLevel="error"/>
|
44 |
-
<DuplicateParam errorLevel="error"/>
|
45 |
-
<EmptyArrayAccess errorLevel="error"/>
|
46 |
-
<FalsableReturnStatement errorLevel="error"/>
|
47 |
-
<FalseOperand errorLevel="error"/>
|
48 |
-
<ForbiddenCode errorLevel="error"/>
|
49 |
-
<ForbiddenEcho errorLevel="error"/>
|
50 |
-
<InaccessibleClassConstant errorLevel="error"/>
|
51 |
-
<InaccessibleMethod errorLevel="error"/>
|
52 |
-
<InterfaceInstantiation errorLevel="error"/>
|
53 |
-
<InaccessibleProperty errorLevel="error"/>
|
54 |
-
<InternalClass errorLevel="error"/>
|
55 |
-
<InternalMethod errorLevel="error"/>
|
56 |
-
<InternalProperty errorLevel="error"/>
|
57 |
-
<InvalidArgument errorLevel="error"/>
|
58 |
-
<InvalidArrayAccess errorLevel="error"/>
|
59 |
-
<InvalidArrayAssignment errorLevel="error"/>
|
60 |
-
<InvalidArrayOffset errorLevel="error"/>
|
61 |
-
<InvalidCast errorLevel="error"/>
|
62 |
-
<InvalidCatch errorLevel="error"/>
|
63 |
-
<InvalidClass errorLevel="error"/>
|
64 |
-
<InvalidClone errorLevel="error"/>
|
65 |
-
<InvalidFalsableReturnType errorLevel="error"/>
|
66 |
-
<InvalidThrow errorLevel="error"/>
|
67 |
-
<InvalidToString errorLevel="error"/>
|
68 |
-
<LoopInvalidation errorLevel="error"/>
|
69 |
-
<InvalidNullableReturnType errorLevel="error"/>
|
70 |
-
<LessSpecificReturnType errorLevel="error"/>
|
71 |
-
<InvalidGlobal errorLevel="error"/>
|
72 |
-
<InvalidIterator errorLevel="error"/>
|
73 |
-
<InvalidMethodCall errorLevel="error"/>
|
74 |
-
<InvalidFunctionCall errorLevel="error"/>
|
75 |
-
<ImplicitToStringCast errorLevel="error"/>
|
76 |
-
<ImplementedReturnTypeMismatch errorLevel="error"/>
|
77 |
-
<InvalidParamDefault errorLevel="error"/>
|
78 |
-
<InvalidPassByReference errorLevel="error"/>
|
79 |
-
<InvalidPropertyAssignment errorLevel="error"/>
|
80 |
-
<InvalidPropertyAssignmentValue errorLevel="error"/>
|
81 |
-
<InvalidPropertyFetch errorLevel="error"/>
|
82 |
-
<InvalidReturnStatement errorLevel="error"/>
|
83 |
-
<InvalidReturnType errorLevel="error"/>
|
84 |
-
<InvalidScalarArgument errorLevel="error"/>
|
85 |
-
<InvalidScope errorLevel="error"/>
|
86 |
-
<InvalidStaticInvocation errorLevel="error"/>
|
87 |
-
<MissingConstructor errorLevel="error"/>
|
88 |
-
<MissingDependency errorLevel="error"/>
|
89 |
-
<MissingFile errorLevel="error"/>
|
90 |
-
<MixedArgument errorLevel="error"/>
|
91 |
-
<MoreSpecificImplementedParamType errorLevel="error"/>
|
92 |
-
<MoreSpecificReturnType errorLevel="error"/>
|
93 |
-
<NoValue errorLevel="error"/>
|
94 |
-
<NoInterfaceProperties errorLevel="error"/>
|
95 |
-
<NonStaticSelfCall errorLevel="error"/>
|
96 |
-
<NullableReturnStatement errorLevel="error"/>
|
97 |
-
<NullArgument errorLevel="error"/>
|
98 |
-
<NullArrayAccess errorLevel="error"/>
|
99 |
-
<NullArrayOffset errorLevel="error"/>
|
100 |
-
<NullFunctionCall errorLevel="error"/>
|
101 |
-
<NullIterator errorLevel="error"/>
|
102 |
-
<NullOperand errorLevel="error"/>
|
103 |
-
<NullPropertyAssignment errorLevel="error"/>
|
104 |
-
<NullPropertyFetch errorLevel="error"/>
|
105 |
-
<NullReference errorLevel="error"/>
|
106 |
-
<OverriddenMethodAccess errorLevel="error"/>
|
107 |
-
<OverriddenPropertyAccess errorLevel="error"/>
|
108 |
-
<ParadoxicalCondition errorLevel="error"/>
|
109 |
-
<ParentNotFound errorLevel="error"/>
|
110 |
-
<LessSpecificImplementedReturnType errorLevel="error"/>
|
111 |
-
<MissingParamType errorLevel="error"/>
|
112 |
-
<MissingClosureParamType errorLevel="error"/>
|
113 |
-
<MissingClosureReturnType errorLevel="error"/>
|
114 |
-
<MissingPropertyType errorLevel="error"/>
|
115 |
-
<UndefinedConstant errorLevel="error"/>
|
116 |
-
|
117 |
-
<AssignmentToVoid errorLevel="info"/>
|
118 |
-
<DeprecatedClass errorLevel="info"/>
|
119 |
-
<DeprecatedConstant errorLevel="info"/>
|
120 |
-
<DeprecatedTrait errorLevel="info"/>
|
121 |
-
<DocblockTypeContradiction errorLevel="info"/>
|
122 |
-
<InvalidDocblock errorLevel="info"/>
|
123 |
-
<InvalidDocblockParamName errorLevel="info"/>
|
124 |
-
<InvalidTemplateParam errorLevel="info"/>
|
125 |
-
<DeprecatedInterface errorLevel="info"/>
|
126 |
-
<DeprecatedMethod errorLevel="info"/>
|
127 |
-
<DeprecatedProperty errorLevel="info"/>
|
128 |
-
<MethodSignatureMustOmitReturnType errorLevel="info"/>
|
129 |
-
<MismatchingDocblockParamType errorLevel="info"/>
|
130 |
-
<MismatchingDocblockReturnType errorLevel="info"/>
|
131 |
-
<MissingDocblockType errorLevel="info"/>
|
132 |
-
<MissingParamType errorLevel="info"/>
|
133 |
-
<MissingTemplateParam errorLevel="info"/>
|
134 |
-
<MissingThrowsDocblock errorLevel="info"/>
|
135 |
-
<MixedArgumentTypeCoercion errorLevel="info"/>
|
136 |
-
<MixedArrayAccess errorLevel="info"/>
|
137 |
-
<MixedArrayAssignment errorLevel="info"/>
|
138 |
-
<MixedArrayOffset errorLevel="info"/>
|
139 |
-
<MixedArrayTypeCoercion errorLevel="info"/>
|
140 |
-
<MixedAssignment errorLevel="info"/>
|
141 |
-
<MixedFunctionCall errorLevel="info"/>
|
142 |
-
<MixedInferredReturnType errorLevel="info"/>
|
143 |
-
<MixedMethodCall errorLevel="info"/>
|
144 |
-
<MixedOperand errorLevel="info"/>
|
145 |
-
<MixedPropertyAssignment errorLevel="info"/>
|
146 |
-
<MixedPropertyFetch errorLevel="info"/>
|
147 |
-
<MixedPropertyTypeCoercion errorLevel="info"/>
|
148 |
-
<MixedReturnStatement errorLevel="info"/>
|
149 |
-
<MixedReturnTypeCoercion errorLevel="info"/>
|
150 |
-
<MixedStringOffsetAssignment errorLevel="info"/>
|
151 |
-
</issueHandlers>
|
152 |
-
</psalm>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/dhii/module-interface/tests/bootstrap.php
DELETED
@@ -1,5 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
error_reporting(E_ALL | E_STRICT);
|
4 |
-
|
5 |
-
require_once dirname(__FILE__).'/../vendor/autoload.php';
|
|
|
|
|
|
|
|
|
|
vendor/dhii/module-interface/tests/stubs/GetImplementingMockBuilderCapableTrait.php
DELETED
@@ -1,48 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace Dhii\Modular\Module\Test;
|
4 |
-
|
5 |
-
use PHPUnit\Framework\MockObject\MockBuilder;
|
6 |
-
use Throwable;
|
7 |
-
use Exception;
|
8 |
-
use Error;
|
9 |
-
use PHPUnit\Framework\TestCase;
|
10 |
-
|
11 |
-
/**
|
12 |
-
* Eases development of tests by allowing creation of more complex mocks.
|
13 |
-
*
|
14 |
-
* The original {@see TestCase::getMockBuilder()} allows mocking only a class or an interface.
|
15 |
-
* But sometimes, it is necessary to mock a class that implements one or more interfaces.
|
16 |
-
* One such case is with exceptions: testing an interface that extends {@see Throwable} requires the extension
|
17 |
-
* of {@see Exception} or {@see Error} by the mock.
|
18 |
-
*/
|
19 |
-
trait GetImplementingMockBuilderCapableTrait
|
20 |
-
{
|
21 |
-
/**
|
22 |
-
* Retrieves a builder for a class that extends the specified base class, while implementing the specified interfaces.
|
23 |
-
*
|
24 |
-
* @param string $baseClassName The name of the base class to extend.
|
25 |
-
* @param array $interfaceNames The names of interfaces to implement
|
26 |
-
* @return MockBuilder A builder for the new class.
|
27 |
-
*/
|
28 |
-
public function getImplementingMockBuilder(string $baseClassName, array $interfaceNames)
|
29 |
-
{
|
30 |
-
$className = uniqid("{$baseClassName}_");
|
31 |
-
$interfaceNames = implode(', ', $interfaceNames);
|
32 |
-
$classString = "abstract class $className extends $baseClassName implements $interfaceNames {}";
|
33 |
-
|
34 |
-
eval($classString);
|
35 |
-
|
36 |
-
return $this->getMockBuilder($className);
|
37 |
-
}
|
38 |
-
|
39 |
-
/**
|
40 |
-
* Retrieves a mock builder for the specified classname.
|
41 |
-
*
|
42 |
-
* @param string $className Name of the class/interface/trait to build a mock for.
|
43 |
-
* @return MockBuilder The builder.
|
44 |
-
*/
|
45 |
-
// The below declaration is commented out becaue it's impossible
|
46 |
-
// to make it compatible with both PHPUnit 7 and 9.
|
47 |
-
//abstract public function getMockBuilder(string $className): MockBuilder;
|
48 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/dhii/module-interface/tests/unit/Exception/ModuleExceptionInterfaceTest.php
DELETED
@@ -1,64 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace Dhii\Modular\Module\UnitTest\Exception;
|
4 |
-
|
5 |
-
use Dhii\Modular\Module\Exception\ModuleExceptionInterface as TestSubject;
|
6 |
-
use Dhii\Modular\Module\ModuleAwareInterface;
|
7 |
-
use Dhii\Modular\Module\Test\GetImplementingMockBuilderCapableTrait;
|
8 |
-
use Exception;
|
9 |
-
use PHPUnit\Framework\MockObject\MockObject;
|
10 |
-
use PHPUnit\Framework\TestCase;
|
11 |
-
|
12 |
-
/**
|
13 |
-
* Tests {@see TestSubject}.
|
14 |
-
*
|
15 |
-
* @since 0.2
|
16 |
-
*/
|
17 |
-
class ModuleExceptionInterfaceTest extends TestCase
|
18 |
-
{
|
19 |
-
use GetImplementingMockBuilderCapableTrait;
|
20 |
-
|
21 |
-
/**
|
22 |
-
* Creates a new instance of the test subject.
|
23 |
-
*
|
24 |
-
* @since 0.2
|
25 |
-
*
|
26 |
-
* @return TestSubject&MockObject
|
27 |
-
*/
|
28 |
-
public function createInstance()
|
29 |
-
{
|
30 |
-
$mock = $this->getImplementingMockBuilder(Exception::class, [TestSubject::class])
|
31 |
-
->setMethods([])
|
32 |
-
->getMock();
|
33 |
-
|
34 |
-
return $mock;
|
35 |
-
}
|
36 |
-
|
37 |
-
/**
|
38 |
-
* Tests whether a valid instance of the test subject can be created.
|
39 |
-
*
|
40 |
-
* @since 0.2
|
41 |
-
*/
|
42 |
-
public function testCanBeCreated()
|
43 |
-
{
|
44 |
-
$subject = $this->createInstance();
|
45 |
-
|
46 |
-
$this->assertInstanceOf(
|
47 |
-
TestSubject::class,
|
48 |
-
$subject,
|
49 |
-
'A valid instance of the test subject could not be created'
|
50 |
-
);
|
51 |
-
|
52 |
-
$this->assertInstanceOf(
|
53 |
-
'Throwable',
|
54 |
-
$subject,
|
55 |
-
'Exception must be throwable'
|
56 |
-
);
|
57 |
-
|
58 |
-
$this->assertInstanceOf(
|
59 |
-
ModuleAwareInterface::class,
|
60 |
-
$subject,
|
61 |
-
'Subject does not implement required interface'
|
62 |
-
);
|
63 |
-
}
|
64 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/dhii/module-interface/tests/unit/ModuleAwareInterfaceTest.php
DELETED
@@ -1,46 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace Dhii\Modular\Module\UnitTest;
|
4 |
-
|
5 |
-
use Dhii\Modular\Module\ModuleAwareInterface as TestSubject;
|
6 |
-
use PHPUnit_Framework_MockObject_MockObject as MockObject;
|
7 |
-
use PHPUnit\Framework\TestCase;
|
8 |
-
|
9 |
-
/**
|
10 |
-
* Tests {@see TestSubject}.
|
11 |
-
*
|
12 |
-
* @since 0.2
|
13 |
-
*/
|
14 |
-
class ModuleAwareInterfaceTest extends TestCase
|
15 |
-
{
|
16 |
-
/**
|
17 |
-
* Creates a new instance of the test subject.
|
18 |
-
*
|
19 |
-
* @since 0.2
|
20 |
-
*
|
21 |
-
* @return TestSubject&MockObject
|
22 |
-
*/
|
23 |
-
public function createInstance()
|
24 |
-
{
|
25 |
-
$mock = $this->getMockBuilder(TestSubject::class)
|
26 |
-
->getMock();
|
27 |
-
|
28 |
-
return $mock;
|
29 |
-
}
|
30 |
-
|
31 |
-
/**
|
32 |
-
* Tests whether a valid instance of the test subject can be created.
|
33 |
-
*
|
34 |
-
* @since 0.2
|
35 |
-
*/
|
36 |
-
public function testCanBeCreated()
|
37 |
-
{
|
38 |
-
$subject = $this->createInstance();
|
39 |
-
|
40 |
-
$this->assertInstanceOf(
|
41 |
-
TestSubject::class,
|
42 |
-
$subject,
|
43 |
-
'A valid instance of the test subject could not be created'
|
44 |
-
);
|
45 |
-
}
|
46 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/dhii/module-interface/tests/unit/ModuleInterfaceTest.php
DELETED
@@ -1,46 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace Dhii\Modular\Module\UnitTest;
|
4 |
-
|
5 |
-
use Dhii\Modular\Module\ModuleInterface as TestSubject;
|
6 |
-
use PHPUnit\Framework\MockObject\MockObject as MockObject;
|
7 |
-
use PHPUnit\Framework\TestCase;
|
8 |
-
|
9 |
-
/**
|
10 |
-
* Tests {@see TestSubject}.
|
11 |
-
*
|
12 |
-
* @since 0.2
|
13 |
-
*/
|
14 |
-
class ModuleInterfaceTest extends TestCase
|
15 |
-
{
|
16 |
-
/**
|
17 |
-
* Creates a new instance of the test subject.
|
18 |
-
*
|
19 |
-
* @since 0.2
|
20 |
-
*
|
21 |
-
* @return TestSubject&MockObject
|
22 |
-
*/
|
23 |
-
public function createInstance()
|
24 |
-
{
|
25 |
-
$mock = $this->getMockBuilder(TestSubject::class)
|
26 |
-
->getMock();
|
27 |
-
|
28 |
-
return $mock;
|
29 |
-
}
|
30 |
-
|
31 |
-
/**
|
32 |
-
* Tests whether a valid instance of the test subject can be created.
|
33 |
-
*
|
34 |
-
* @since 0.2
|
35 |
-
*/
|
36 |
-
public function testCanBeCreated()
|
37 |
-
{
|
38 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|