From a3f27af9e27b7c535002c76cb694ba61d16e4d42 Mon Sep 17 00:00:00 2001 From: arekkubaczkowski Date: Thu, 2 Dec 2021 15:24:41 +0100 Subject: [PATCH 1/8] chore: add a usage guide --- docs/collect-payments.md | 165 ++++++++++++++++++++++++++++ docs/connect-to-a-reader.md | 61 +++++++++++ docs/set-up-your-sdk.md | 189 ++++++++++++++++++++++++++++++++ src/hooks/useStripeTerminal.tsx | 4 +- src/types/Reader.ts | 2 +- 5 files changed, 418 insertions(+), 3 deletions(-) create mode 100644 docs/collect-payments.md create mode 100644 docs/connect-to-a-reader.md create mode 100644 docs/set-up-your-sdk.md diff --git a/docs/collect-payments.md b/docs/collect-payments.md new file mode 100644 index 00000000..9307226f --- /dev/null +++ b/docs/collect-payments.md @@ -0,0 +1,165 @@ +# Collect payments + +## Prepare your application and backend to collect payments using Stripe Terminal. + +Collecting payments with Stripe Terminal requires writing a payment flow in your application. Use the Stripe Terminal SDK to create and update a [PaymentIntent](https://stripe.com/docs/api#payment_intents), an object representing a single payment session. + +Designed to be robust to failures, the Terminal integration splits the payment process into several steps, each of which can be retried safely: + +- Create a PaymentIntent +- Collect a payment method +- Process the payment +- Capture the payments +- Authorization on the customer’s card takes place in Step 3, when the SDK processes the payment. + +## Create a PaymentIntent + +The first step when collecting payments is to start the payment flow. When a customer begins checking out, your application must create a `PaymentIntent` object. This represents a new payment session on Stripe. + +Use [test amounts](https://stripe.com/docs/terminal/references/testing#physical-test-cards) to try producing different results. An amount ending in 00 results in an approved payment. + +The following example shows how to create a `PaymentIntent` on your server: + +```ts +// Set your secret key. Remember to switch to your live secret key in production. +// See your keys here: https://dashboard.stripe.com/apikeys +const stripe = require('stripe')('sk_test_7mJuPfZsBzc3JkrANrFrcDqC'); + +const intent = await stripe.paymentIntents.create({ + amount: 1000, + currency: 'usd', + payment_method_types: ['card_present'], + capture_method: 'manual', +}); +``` + +For Terminal payments, the `payment_method_types` parameter must include `card_present`. To control the payment flow for `card_present` payments, set the `capture_method` to `manual`. + +> To accept Interac payments in Canada, you will need to also include interac_present in payment_method_types. For more details, visit our [Canada documentation](https://stripe.com/docs/terminal/payments/regional?integration-country=CA). + +The PaymentIntent contains a [client secret](https://stripe.com/docs/api/payment_intents/object#payment_intent_object-client_secret), a key that is unique to the individual PaymentIntent. To use the client secret, you must obtain it from the PaymentIntent on your server and [pass it to the client side](https://stripe.com/docs/payments/payment-intents#passing-to-client). + +```ts +const express = require('express'); +const app = express(); + +app.post('/create_payment_intent', async (req, res) => { + const intent = res.json({ client_secret: intent.client_secret }); // ... Fetch or create the PaymentIntent +}); + +app.listen(3000, () => { + console.log('Running on port 3000'); +}); +``` + +Use the client secret as a parameter when calling `retrievePaymentIntent` to get a `PaymentIntent` object on client side. + +> The `client_secret` is all you need in your client-side application to proceed to payment method collection. + +## Collect a payment method + +After you’ve created a PaymentIntent, the next step is to collect a payment method with the SDK. + +Before you do this, you need to retrieve a PaymentIntent object on the client side and save `id` of `PaymentIntent` in your state for futher use. + +```tsx +const { paymentIntent, error } = await retrievePaymentIntent(clientSecret); + +const [paymentIntentId, setPaymentIntentId] = useState(); +if (error) { + // Placeholder for handling exception +} else if (paymentIntent) { + setPaymentIntentId(paymentIntent.id); +} +``` + +In order to collect a payment method, your app needs to be connected to a reader. The connected reader will wait for a card to be presented after your app calls `collectPaymentMethod`. + +```tsx +const { paymentIntent, error } = await collectPaymentMethod(paymentIntentId); // use before saved paymentIntentId + +if (error) { + // Placeholder for handling exception +} else if (paymentIntent) { + // Placeholder for processing paymentIntent +} +``` + +This method collects encrypted payment method data using the connected card reader, and associates the encrypted data with the local PaymentIntent. + +You can cancel collecting a payment method using `cancelCollectPaymentMethod` method returned by the React Native SDK. + +> Collecting a payment method happens locally and requires no authorization or updates to the Payment Intents API object until the next step, [process the payment](#process-the-payment). + +### Handle events + +When collecting a payment method using a reader like the [BBPOS Chipper 2X BT](https://stripe.com/docs/terminal/readers/bbpos-chipper2xbt), without a built-in display, your app must be able to display events from the payment method collection process to users. These events help users successfully collect payments (e.g., retrying a card, trying a different card, or using a different read method). + +When a transaction begins, the SDK passes a `Reader.InputOptions` value to your app’s reader display handler, denoting the acceptable types of input (e.g., Swipe, Insert, Tap). In your app’s checkout UI, prompt the user to present a card using one of these options. + +During the transaction, the SDK might request your app to display additional prompts (e.g., Retry Card) to your user by passing a `Reader.DisplayMessage` value to your app’s reader display handler. Make sure your checkout UI displays these messages to the user. + +```tsx +useStripeTerminal({ + onDidRequestReaderInput: (options) => { + Alert.alert(options.join('/')); + }, + onDidRequestReaderDisplayMessage: (message) => { + Alert.alert(message); + }, +}); +``` + +## Process the payment + +After successfully collecting a payment method from the customer, the next step is to process the payment with the SDK. You can either process automatically or display a confirmation screen, where the customer can choose to proceed with the payment or cancel (e.g., to pay with cash, or use a different payment method). + +When you’re ready to proceed with the payment, call processPayment with the updated PaymentIntent from [Step 2](#collect-a-payment-method). A successful `processPayment` call results in a PaymentIntent with a status of `requires_capture`. + +```tsx +const { paymentIntent, error } = await processPayment(paymentIntentId); +if (error) { + // Placeholder for handling exception +} else if (paymentIntent) { + // Placeholder for notifying your backend to capture paymentIntent.id +} +``` + +> You must manually capture payments processed by the Terminal SDKs. Set up your backend to [capture the payment](#capture-a-payment) within two days. Otherwise, the authorization expires and funds get released back to the customer. + +## Capture a payment + +Stripe Terminal uses a two-step process to prevent unintended and duplicate payments. When the SDK returns a processed PaymentIntent to your app, the payment is authorized but not captured. Read the [auth and capture](https://stripe.com/docs/payments/capture-later) documentation for more information about the difference. + +When your app receives a processed PaymentIntent from the SDK, make sure it notifies your backend to capture the payment. Create an endpoint on your backend that accepts a PaymentIntent ID and sends a request to the Stripe API to capture it: + +```ts +// Set your secret key. Remember to switch to your live secret key in production. +// See your keys here: https://dashboard.stripe.com/apikeys +const stripe = require('stripe')('sk_test_7mJuPfZsBzc3JkrANrFrcDqC'); + +const paymentIntent = await stripe.paymentIntents.capture( + '{{PAYMENT_INTENT_ID}}' +); +``` + +A successful `capture` call will result in a PaymentIntent with a status of `succeeded`. + +**Reconcile payments** +To monitor the payments activity of your business, you may want to reconcile PaymentIntents with your internal orders system on your server at the end of a day’s activity. + +A PaymentIntent that retains a `requires_capture` status may represent two things: + +**Unnecessary authorization on your customer’s card statement** + +- Cause: User abandons your app’s checkout flow in the middle of a transaction +- Solution: If the uncaptured PaymentIntent is not associated with a completed order on your server, you can [cancel](https://stripe.com/docs/api/payment_intents/cancel) it. A canceled PaymentIntent can no longer be used to perform charges. + +**Incomplete collection of funds from a customer** + +- Cause: Failure of the request from your app notifying your backend to capture the payment +- Solution: If the uncaptured PaymentIntent is associated with a completed order on your server, and no other payment has been taken for the order (e.g., a cash payment), you can [capture](https://stripe.com/docs/api/payment_intents/capture) it. + +**Collect tips US only** + +In the US, eligible users can [collect tips when capturing payments](https://stripe.com/docs/terminal/features/collecting-tips/on-receipt). diff --git a/docs/connect-to-a-reader.md b/docs/connect-to-a-reader.md new file mode 100644 index 00000000..c4a6f310 --- /dev/null +++ b/docs/connect-to-a-reader.md @@ -0,0 +1,61 @@ +# Connect to a reader + +## Connect your application to a reader. + +The Stripe Terminal SDK comes with a built-in simulated card reader, so you can develop and test your app without connecting to physical hardware. Whether your integration is complete or you’re just starting out, use the simulated reader to emulate all the Terminal flows in your app. + +Note that the simulated reader does not provide a UI. After connecting to it in your app, you can see it working when calls to the Stripe SDK succeed. + +To use the simulated reader, call `discoverReaders` to search for readers, with the `simulated` option set to `true`. When `onFinishDiscoveringReaders` callback is called without any errors, call `connectBluetoothReader` to connect to the simulated reader. + +When connecting to a Bluetooth reader using `connectBluetoothReader`, your integration must provide the `locationId` parameter to the method, even for the simulated reader. Since the simulated reader can’t be associated with a real location, you may provide the simulated reader’s mock locationId instead. + +```tsx +function DiscoverReadersScreen() { + const { discoverReaders, connectBluetoothReader, discoveredReaders } = + useStripeTerminal({ + onFinishDiscoveringReaders: (error) => { + if (!error) { + handleConnectBluetoothReader(discoveredReaders[0].id); + } + }, + }); + + useEffect(() => { + handleDiscoverReaders(); + }, []); + + const handleDiscoverReaders = async () => { + // List of discovered readers will be available within useStripeTerminal hook + const { error } = await discoverReaders({ + discoveryMethod: 'bluetoothScan', + simulated: true, + }); + + if (error) { + const { code, message } = error; + Alert.alert('Discover readers error: ', `${code}, ${message}`); + } + }; + + const handleConnectBluetoothReader = async (id: string) => { + const { reader, error } = await connectBluetoothReader({ + readerId: discoveredReaders[0].id, + // for simulated mode you can provide the simulated reader’s mock locationId + locationId: discoveredReaders[0].locationId, + }); + + if (error) { + console.log('connectBluetoothReader error', error); + } else { + console.log('Reader connected successfully', reader); + } + }; + + return ; +} +``` + +## Next steps + +Congratulations! You’ve connected your application to the reader. Next, collect your first Stripe Terminal payment. diff --git a/docs/set-up-your-sdk.md b/docs/set-up-your-sdk.md new file mode 100644 index 00000000..f9422d33 --- /dev/null +++ b/docs/set-up-your-sdk.md @@ -0,0 +1,189 @@ +# Set up your SDK + +## Set up the Stripe Terminal SDK so you can begin accepting in-person payments. + +Getting started with the Android SDK requires four steps: + +- [Install the SDK](#install-the-sdk) in your app +- [Configure your app](#configure-your-app) +- [Set up the connection token endpoint](#set-up-the-connection-token-endpoint) in your app and backend +- Initialize the SDK in your app + +## Install the SDK + +The [React Native SDK](https://github.com/stripe/stripe-terminal-react-native) is open source and fully documented. Internally, it makes use of native iOS and Android SDKs. Install the SDK by running: + +```sh +yarn add @stripe/stripe-terminal-react-native +or +npm install @stripe/stripe-terminal-react-native +``` + +For iOS, run `pod install` in the `ios` directory to ensure that you also install the required native dependencies. Android doesn’t require any additional steps. + +## Configure your app + +### Android + +Location access must be enabled in order to use the SDK. You’ll need to make sure that the `ACCESS_COARSE_LOCATION` permission is enabled in your app. To do this, add the following check before you initialize the Terminal SDK: + +```tsx +useEffect(() => { + async function init() { + try { + const granted = await PermissionsAndroid.request( + 'android.permission.ACCESS_COARSE_LOCATION', + { + title: 'Location Permission Permission', + message: 'App needs access to your Location ', + buttonPositive: 'Agree', + } + ); + if (granted === PermissionsAndroid.RESULTS.GRANTED) { + console.log('You can use the Location'); + } else { + throw Error( + 'Location services are required in order to connect to a reader.' + ); + } + } catch {} + } + init(); +}, []); +``` + +The Android SDK is lifecycle aware. To prevent memory leaks and ensure proper cleanup of long-running Terminal SDK processes, your application must have the `Application` subclass where `TerminalApplicationDelegate` is used to inform the SDK of lifecycle events. + +This subclass should do the following: + +- Call `TerminalApplicationDelegate.onCreate` from your application's `onCreate` method. +- Implement the [onTrimMemory]() method and call `TerminalApplicationDelegate.onTrimMemory` from your implementation. + +For example: + +```java +// Substitute with your application name, and remember to keep it the same as your AndroidManifest.xml +class StripeTerminalApplication : Application() { + override fun onCreate() { + super.onCreate() + TerminalApplicationDelegate.onCreate(this) + } + + override fun onTrimMemory(level: Int) { + super.onTrimMemory(level) + TerminalApplicationDelegate.onTrimMemory(this, level) + } +} +``` + +### iOS + +Location services must be enabled in order to use the SDK on iOS. Add the following key-value pair to your app's `Info.plist` file: + +- Privacy - Location When In Use Usage Description + - Key: `NSLocationWhenInUseUsageDescription` + - Value: "Location access is required in order to accept payments." + +> Note: Stripe needs to know where payments occur to reduce risks associated with those charges and to minimize disputes. If the SDK can’t determine the iOS device’s location, payments are disabled until location access is restored. + +For your app to run in the background and remain connected to the reader, add this key-value pair to your `Info.plist` file: + +- Required background modes + - Key: `UIBackgroundModes` + - Value: `bluetooth-central` (Uses Bluetooth LE accessories) + - Note the value is actually an array that you will need to add `bluetooth-central` to. + +For your app to pass validation when submitting to the App Store, add the following key-value pairs as well: + +- Privacy - Bluetooth Peripheral Usage Description + - Key: `NSBluetoothPeripheralUsageDescription` + - Value: “Bluetooth access is required in order to connect to supported bluetooth card readers.” +- Privacy - Bluetooth Always Usage Description + - Key: `NSBluetoothAlwaysUsageDescription` + - Value: "This app uses Bluetooth to connect to supported card readers." + +## Set up the connection token endpoint + +### Server-side + +```ts +// Set your secret key. Remember to switch to your live secret key in production. +// See your keys here: https://dashboard.stripe.com/apikeys +const stripe = require('stripe')('sk_test_7mJuPfZsBzc3JkrANrFrcDqC'); + +// In a new endpoint on your server, create a ConnectionToken and return the +// `secret` to your app. The SDK needs the `secret` to connect to a reader. +let connectionToken = stripe.terminal.connectionTokens.create(); +``` + +Obtain the secret from the ConnectionToken on your server and pass it to the client side. + +```ts +const express = require('express'); +const app = express(); + +app.post('/connection_token', async (req, res) => { + const token = res.json({ secret: token.secret }); // ... Fetch or create the ConnectionToken +}); + +app.listen(3000, () => { + console.log('Running on port 3000'); +}); +``` + +> The ConnectionToken’s secret lets you connect to any Stripe Terminal reader and take payments with your Stripe account. Be sure to authenticate the endpoint for creating connection tokens. + +## Client-side + +To give the SDK access to this endpoint, create a token provider single function that requests a ConnectionToken from your backend and hand it over to StripeTerminalProvider as a prop. + +```tsx +// App.ts +import { StripeTerminalProvider } from '@stripe/stripe-terminal-react-native'; + +const fechTokenProvider = async () => { + const response = await fetch(`${API_URL}/connection_token`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + }); + const { secret } = await response.json(); + return secret; +}; +``` + +This function is called whenever the SDK needs to authenticate with Stripe or the Reader. It’s also called when a new connection token is needed to connect to a reader (for example, when your app disconnects from a reader). If the SDK is unable to retrieve a new connection token from your backend, connecting to a reader fails with the error from your server. + +> Do not cache or hardcode the connection token. The SDK manages the connection token’s lifecycle. + +## Initialize the SDK + +To get started, provide your token provider implemented in [Step 3](#set-up-the-connection-token-endpoint) to `StripeTerminalProvider` as a prop. + +```tsx +// App.ts +import { StripeTerminalProvider } from '@stripe/stripe-terminal-react-native'; + +function App() { + const fechTokenProvider = async () => { + const response = await fetch(`${API_URL}/connection_token`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + }); + const { secret } = await response.json(); + return secret; + }; + + return ( + + + + ); +} +``` diff --git a/src/hooks/useStripeTerminal.tsx b/src/hooks/useStripeTerminal.tsx index 507f45ce..b7e498c4 100644 --- a/src/hooks/useStripeTerminal.tsx +++ b/src/hooks/useStripeTerminal.tsx @@ -80,7 +80,7 @@ export type Props = { onDidReportReaderSoftwareUpdateProgress?(progress: string): void; onDidFinishInstallingUpdate?(update: Reader.SoftwareUpdate): void; - onDidRequestReaderInput?(input: Reader.InputType[]): void; + onDidRequestReaderInput?(input: Reader.InputOptions[]): void; onDidRequestReaderDisplayMessage?(message: Reader.DisplayMessage): void; onDidChangeConnectionStatus?(status: Reader.ConnectionStatus): void; @@ -214,7 +214,7 @@ export function useStripeTerminal(props?: Props) { ); const didRequestReaderInput = useCallback( - ({ result }: EventResult) => { + ({ result }: EventResult) => { log('didRequestReaderInput', result); onDidRequestReaderInput?.(result); emitter.emit(REQUEST_READER_INPUT_LISTENER_NAME); diff --git a/src/types/Reader.ts b/src/types/Reader.ts index 95e7adfe..29091bce 100644 --- a/src/types/Reader.ts +++ b/src/types/Reader.ts @@ -82,7 +82,7 @@ export namespace Reader { | 'wisePosE' | 'cotsDevice'; - export type InputType = 'insertCard' | 'swipeCard' | 'tapCard'; + export type InputOptions = 'insertCard' | 'swipeCard' | 'tapCard'; export type DisplayMessage = | 'insertCard' From 4284b2b955c1ff65dd05b9d8fb5d4046ab05fc21 Mon Sep 17 00:00:00 2001 From: arekkubaczkowski Date: Fri, 3 Dec 2021 10:50:59 +0100 Subject: [PATCH 2/8] chore: docs polishing --- docs/collect-payments.md | 32 +++++++++++++++++++++----------- docs/connect-to-a-reader.md | 13 +++++++------ docs/set-up-your-sdk.md | 2 +- 3 files changed, 29 insertions(+), 18 deletions(-) diff --git a/docs/collect-payments.md b/docs/collect-payments.md index 9307226f..24e8da08 100644 --- a/docs/collect-payments.md +++ b/docs/collect-payments.md @@ -6,11 +6,13 @@ Collecting payments with Stripe Terminal requires writing a payment flow in your Designed to be robust to failures, the Terminal integration splits the payment process into several steps, each of which can be retried safely: -- Create a PaymentIntent -- Collect a payment method -- Process the payment -- Capture the payments -- Authorization on the customer’s card takes place in Step 3, when the SDK processes the payment. +- [Create a PaymentIntent](#create-a-paymentintent) +- [Collect a payment method](#collect-a-payment-method) + +- [Process the payment](#process-the-payment) +- [Capture the payments](#capture-the-payments) + +Authorization on the customer’s card takes place in [Step 3](#process-the-payment), when the SDK processes the payment. ## Create a PaymentIntent @@ -54,13 +56,11 @@ app.listen(3000, () => { Use the client secret as a parameter when calling `retrievePaymentIntent` to get a `PaymentIntent` object on client side. -> The `client_secret` is all you need in your client-side application to proceed to payment method collection. - ## Collect a payment method After you’ve created a PaymentIntent, the next step is to collect a payment method with the SDK. -Before you do this, you need to retrieve a PaymentIntent object on the client side and save `id` of `PaymentIntent` in your state for futher use. +Before you do this, you need to retrieve a PaymentIntent object on the client side which is required to collect a payment method. ```tsx const { paymentIntent, error } = await retrievePaymentIntent(clientSecret); @@ -69,14 +69,14 @@ const [paymentIntentId, setPaymentIntentId] = useState(); if (error) { // Placeholder for handling exception } else if (paymentIntent) { - setPaymentIntentId(paymentIntent.id); + // Placeholder for collecting payment method } ``` In order to collect a payment method, your app needs to be connected to a reader. The connected reader will wait for a card to be presented after your app calls `collectPaymentMethod`. ```tsx -const { paymentIntent, error } = await collectPaymentMethod(paymentIntentId); // use before saved paymentIntentId +const { paymentIntent, error } = await collectPaymentMethod(paymentIntentId); if (error) { // Placeholder for handling exception @@ -127,7 +127,17 @@ if (error) { > You must manually capture payments processed by the Terminal SDKs. Set up your backend to [capture the payment](#capture-a-payment) within two days. Otherwise, the authorization expires and funds get released back to the customer. -## Capture a payment +### Handle processing failures + +When processing a payment fails, the SDK returns an error that includes the updated `PaymentIntent`. Your application should inspect the `PaymentIntent` to decide how to deal with the error. + +| PAYMENTINTENT STATUS | | RESOLUTION | +| ------------------------- | --------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| `requires_payment_method` | Payment method declined | Try collecting a different payment method by calling `collectPaymentMethod` again with the same PaymentIntent. | +| `requires_confirmation` | Temporary connectivity problem | Call `processPayment` again with the same PaymentIntent to retry the request. | +| PaymentIntent is `nil` | Request to Stripe timed out, unknown PaymentIntent status | Retry processing the original PaymentIntent. Don’t create a new one, as that could result in multiple authorizations for the cardholder. | + +## Capture the payments Stripe Terminal uses a two-step process to prevent unintended and duplicate payments. When the SDK returns a processed PaymentIntent to your app, the payment is authorized but not captured. Read the [auth and capture](https://stripe.com/docs/payments/capture-later) documentation for more information about the difference. diff --git a/docs/connect-to-a-reader.md b/docs/connect-to-a-reader.md index c4a6f310..06c90c69 100644 --- a/docs/connect-to-a-reader.md +++ b/docs/connect-to-a-reader.md @@ -14,10 +14,9 @@ When connecting to a Bluetooth reader using `connectBluetoothReader`, your integ function DiscoverReadersScreen() { const { discoverReaders, connectBluetoothReader, discoveredReaders } = useStripeTerminal({ - onFinishDiscoveringReaders: (error) => { - if (!error) { - handleConnectBluetoothReader(discoveredReaders[0].id); - } + didUpdateDiscoveredReaders: (readers) => { + // once you get the list of available readers you can make a connection. + handleConnectBluetoothReader(readers[0].id); }, }); @@ -33,8 +32,10 @@ function DiscoverReadersScreen() { }); if (error) { - const { code, message } = error; - Alert.alert('Discover readers error: ', `${code}, ${message}`); + Alert.alert( + 'Discover readers error: ', + `${error.code}, ${error.message}` + ); } }; diff --git a/docs/set-up-your-sdk.md b/docs/set-up-your-sdk.md index f9422d33..ad1178b7 100644 --- a/docs/set-up-your-sdk.md +++ b/docs/set-up-your-sdk.md @@ -7,7 +7,7 @@ Getting started with the Android SDK requires four steps: - [Install the SDK](#install-the-sdk) in your app - [Configure your app](#configure-your-app) - [Set up the connection token endpoint](#set-up-the-connection-token-endpoint) in your app and backend -- Initialize the SDK in your app +- [Initialize the SDK in your app](#initialize-the-sdk) ## Install the SDK From 278ee934455957061c1b3c8765d276fc278f25ce Mon Sep 17 00:00:00 2001 From: arekkubaczkowski Date: Fri, 3 Dec 2021 11:28:57 +0100 Subject: [PATCH 3/8] chore: docs polishing --- docs/collect-payments.md | 1 - docs/set-up-your-sdk.md | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/collect-payments.md b/docs/collect-payments.md index 24e8da08..ddf3e8c4 100644 --- a/docs/collect-payments.md +++ b/docs/collect-payments.md @@ -65,7 +65,6 @@ Before you do this, you need to retrieve a PaymentIntent object on the client si ```tsx const { paymentIntent, error } = await retrievePaymentIntent(clientSecret); -const [paymentIntentId, setPaymentIntentId] = useState(); if (error) { // Placeholder for handling exception } else if (paymentIntent) { diff --git a/docs/set-up-your-sdk.md b/docs/set-up-your-sdk.md index ad1178b7..7e7d7d09 100644 --- a/docs/set-up-your-sdk.md +++ b/docs/set-up-your-sdk.md @@ -135,7 +135,7 @@ app.listen(3000, () => { ## Client-side -To give the SDK access to this endpoint, create a token provider single function that requests a ConnectionToken from your backend and hand it over to StripeTerminalProvider as a prop. +To give the SDK access to this endpoint, create a token provider single function that requests a ConnectionToken from your backend. ```tsx // App.ts From 53361c196bb10635f4dc997d85c8026a3cfc446a Mon Sep 17 00:00:00 2001 From: arekkubaczkowski Date: Mon, 6 Dec 2021 14:16:29 +0100 Subject: [PATCH 4/8] chore: add guideliness --- README.md | 4 +- docs/display.md | 54 ++++++++ docs/example-applications.md | 57 +++++++++ docs/refund-transactions.md | 88 +++++++++++++ docs/saving-cards.md | 117 ++++++++++++++++++ .../src/screens/CollectCardPaymentScreen.tsx | 2 + example/src/screens/RefundPaymentScreen.tsx | 14 ++- src/functions.ts | 16 ++- src/types/Refund.ts | 4 +- src/types/index.ts | 14 +-- 10 files changed, 351 insertions(+), 19 deletions(-) create mode 100644 docs/display.md create mode 100644 docs/example-applications.md create mode 100644 docs/refund-transactions.md create mode 100644 docs/saving-cards.md diff --git a/README.md b/README.md index 2aea05ac..5a36fdfd 100644 --- a/README.md +++ b/README.md @@ -22,8 +22,8 @@ You'll need to run `pod install` in your `ios` directory to install the native d ### Requirements -The SDK uses TypeScript features available in Babel version `7.9.0` and above. -Alternatively use the `plugin-transform-typescript` plugin in your project. +- The SDK uses TypeScript features available in Babel version `7.9.0` and above. + Alternatively use the `plugin-transform-typescript` plugin in your project. #### Android diff --git a/docs/display.md b/docs/display.md new file mode 100644 index 00000000..5d898fea --- /dev/null +++ b/docs/display.md @@ -0,0 +1,54 @@ +# Display cart details + +## Dynamically update cart details on the reader screen. + +The built-in screen of the Verifone P400 and BBPOS WisePOS E can display line items. During the checkout process, you can update the reader’s screen to show individual items in the transaction, along with the total price. + +![img](https://b.stripecdn.com/docs-statics-srv/assets/frame-4.c75473bf488c72dbd45a6c61d46ed203.png) + +## Set the reader display + +To set the line items and total displayed on the reader during a payment, pass line items and total information into the setReaderDisplay method. The object you pass in will drive the contents displayed on the reader’s screen. + +Note that the amounts passed to the setReaderDisplay method are only used for display purposes. The reader will not automatically calculate tax or the total; your application must calculate those before displaying the values. Similarly, the total passed to setReaderDisplay does not control the amount charged to the customer; make sure the amount displayed on the reader matches the amount you’re charging your customer. + +To reset the reader’s display from a line item interface to the splash screen, call the clearReaderDisplay method. + +### React Native + +```tsx +const { error } = await setReaderDisplay({ + currency: 'usd', + tax: 100, + total: 1998, + lineItems: [ + { + displayName: 'Caramel latte', + quantity: 1, + amount: 659, + }, + { + displayName: 'Dozen donuts', + quantity: 1, + amount: 1239, + }, + ], +}); +if (error) { + // Placeholder for handling exception +} else { + // Placeholder for handling successful operation +} +``` + +## Pre-dip a card + +> Pre-dipping a card is only supported for payments in the U.S. + +The Verifone P400 and BBPOS WisePOS E support the ability to present a card to the reader before the transaction amount is finalized. + +This option—known as pre-dip, pre-tap, or pre-swipe—can help speed up transaction times by allowing a customer to present a payment method before the end of the transaction. + +The setReaderDisplay method prepares the reader for pre-dipping. The customer can present a payment method at any point after the method is called. + +Even if a customer pre-dips their card, your application must still complete the full payment flow. diff --git a/docs/example-applications.md b/docs/example-applications.md new file mode 100644 index 00000000..e98849e5 --- /dev/null +++ b/docs/example-applications.md @@ -0,0 +1,57 @@ +# Example applications + +## Try Stripe Terminal by using the example applications and simulated reader. + +> For a more immersive guide, check out the [sample integration](https://stripe.com/docs/terminal/integration-builder). + +A Stripe Terminal integration starts with your point of sale application running at a physical location. Your point of sale application communicates with a reader through the Terminal SDK to collect in-person payments from your customers. Your backend works with your point of sale application to authenticate the Terminal SDK and finalize payments. + +Before starting your own integration, we recommend setting up one of the Terminal example applications. This will give you a better feel for how the components of a Terminal integration fit together and show you the interactions between the SDK, the reader, your point of sale application, and your backend code. + +1. Deploy the example backend + +To get started with the example applications, set up the Sinatra-based [example backend](https://github.com/stripe/example-terminal-backend) by following the instructions in the [README](https://github.com/stripe/example-terminal-backend). You can either run the backend locally or deploy it to Heroku with a free account. The example backend works with the example application to authenticate the Terminal SDK and finalize payments. + +2. Run example application + +Build and run one of the example applications: + +## React Native + +- Clone the example from [GitHub](https://github.com/stripe/stripe-terminal-react-native): + +``` +git clone https://github.com/stripe/stripe-terminal-react-native.git +``` + +- Install the dependencies + - `yarn bootstrap` +- Set up env vars + - `cp example/.env.example example/.env` and set the variable values in your newly created `.env` file. +- Start the example + - Terminal 1: `yarn example start:server` + - Terminal 2: `yarn example start` + - Terminal 3: depending on what platform you want to build for run either + - `yarn example ios` + - or + - `yarn example android` + +3. Connect to a simulated reader + +After you have the example running, select `Simulated` to connect to a [simulated reader](https://stripe.com/docs/terminal/references/testing#simulated-reader). + +> To run the example app using the iOS Simulator, enable a simulated location. Select Simulate Location from the Xcode Debug menu. For more information on how Stripe Terminal uses the device location, see [Configure your iOS app](./set-up-your-sdk.md#configure-your-app). + +The simulated reader handles events just like a physical reader, so you can continue to collecting your first payment. + +The simulated reader functionality is built into the SDK, so you can use it to develop and test your own point of sale application without connecting to a physical device. + +4. Collect your first payment + +Collect your first payment using the example application and a simulated reader. Each of the examples features an event log for you to reference as you integrate Terminal in your own application. As you collect your first payment, you’ll see the following sequence: + +- **Create payment:** The example application collects a payment method using the SDK. +- **Collect payment method:** The simulated reader receives a card. +- **Process and capture:** The example application and backend finalize the payment. + +![example screen](https://b.stripecdn.com/docs-statics-srv/assets/ios-example-app-payment.4eede9e782e327bca886bbdbcab7537c.png) diff --git a/docs/refund-transactions.md b/docs/refund-transactions.md new file mode 100644 index 00000000..2d739741 --- /dev/null +++ b/docs/refund-transactions.md @@ -0,0 +1,88 @@ +# Refund transactions + +## Cancel or refund Stripe Terminal payments. + +Stripe Terminal uses a two-step process to prevent unintended and duplicate payments on card_present payments. + +When the SDK returns a confirmed PaymentIntent to your app, the payment is authorized but not captured. You can cancel these payments on your server. We recommend reconciling payments on your backend after a day’s activity to prevent unintended authorizations and uncollected funds. + +If the PaymentIntent has already been captured, you must refund the underlying charge created by the PaymentIntent, using the refunds API, Dashboard, or Terminal SDK methods. + +> Interac is a single-message network; interac_present PaymentIntents are automatically captured. In lieu of canceling PaymentIntents, your application should allow initiating an in-person client-side refund at the end of the checkout flow. + +## Cancel payments + +You can cancel a `card_present` PaymentIntent at any time before it has been captured. Canceling a PaymentIntent releases all uncaptured funds, and a canceled PaymentIntent can no longer be used to perform charges. + +This can be useful if, for example, your customer decides to use a different payment method or pay with cash after the payment has been processed. In your application’s UI, consider allowing the user to cancel after processing the payment, before finalizing the payment and notifying your backend to capture. + +With the JavaScript SDK, you must cancel uncaptured payments on the server. The iOS, Android and React Native SDKs let you cancel from the client side. + +```tsx +const { cancelPaymentIntent } = useStripeTerminal(); + +const { paymentIntent, error } = await cancelPaymentIntent(paymentIntentId); + +if (error) { + // Placeholder for handling exception +} else if (paymentIntent) { + // Placeholder for handling successful operation +} +``` + +## Perform refunds + +When you use a PaymentIntent to collect payment from a customer, Stripe creates a charge behind the scenes. To refund the customer’s payment after the PaymentIntent has succeeded, create a refund by passing in the PaymentIntent ID or the charge ID. You can also optionally refund part of a payment by specifying an amount. + +You can perform refunds with the API or through the Dashboard. For Interac transactions in Canada, the BBPOS WisePOS E also supports an client-side refund flow. + +### Server-side + +Server-side refunds don’t require a cardholder to present their card again at the point of sale. The following example shows how to create a full refund by passing in the PaymentIntent ID. + +```ts +// Set your secret key. Remember to switch to your live secret key in production. +// See your keys here: https://dashboard.stripe.com/apikeys +const stripe = require('stripe')('sk_test_7mJuPfZsBzc3JkrANrFrcDqC'); + +const refund = await stripe.refunds.create({ + payment_intent: 'pi_Aabcxyz01aDfoo', +}); +``` + +To refund part of a PaymentIntent, provide an amount parameter, as an integer in cents (or the charge currency’s smallest currency unit): + +```ts +// Set your secret key. Remember to switch to your live secret key in production. +// See your keys here: https://dashboard.stripe.com/apikeys +const stripe = require('stripe')('sk_test_7mJuPfZsBzc3JkrANrFrcDqC'); + +const refund = await stripe.refunds.create({ + payment_intent: 'pi_Aabcxyz01aDfoo', + amount: 1000, +}); +``` + +### Client-side _CA Interac only_ + +```tsx +const { error } = await collectRefundPaymentMethod({ + chargeId: 'ch_1FLyVV2eZvKYlo2C9Z8rmX02', + amount: 2000, + currency: 'cad', +}); + +if (error) { + // Handle error +} else { + const { processedRefund, error } = await processRefund(); + + if (error) { + // Handle error + } else if (processedRefund && processedRefund.status === 'succeeded') { + // Process refund successful! + } else { + // Refund pending or unsuccessful. + } +} +``` diff --git a/docs/saving-cards.md b/docs/saving-cards.md new file mode 100644 index 00000000..9b8c3848 --- /dev/null +++ b/docs/saving-cards.md @@ -0,0 +1,117 @@ +# Save cards for online payments + +## Learn how to use your Stripe Terminal integration to create online payments. + +Stripe Terminal lets you save payment methods for online use. Use an in-person card to initiate an online [subscription](https://stripe.com/docs/billing/subscriptions/creating) using [Billing](https://stripe.com/docs/billing), save payment details to a customer’s online account, or defer payment. + +There are two ways to collect reusable card details with Terminal: + +- [Save card details while processing in-person transactions (PaymentIntents)](#save-a-card-while-transacting-us-only) + +- [Collect card details to charge in the future, without transacting now (readReusableCard)](#collect-card-details-for-future-use-us-only) + +## Save a card while transacting _U.S. only_ + +> Currently, you can’t use Stripe Terminal to save mobile wallets (e.g., Apple Pay, Google Pay) for later reuse while transacting. + +Save card details for online reuse from a customer’s in-person transaction. When you successfully [process a payment](./collect-payments.md#process-the-paymen), the returned object contains a successful charge ID. This charge contains a generated_card ID, which represents the ID of a card [PaymentMethod](https://stripe.com/docs/api/payment_methods) that’s used to [charge the saved card](#charding-saved-cards). + +The initial, in-person payment benefits from the liability shift (and in certain markets, [lower pricing](https://stripe.com/en-pl/terminal#pricing) given to [standard Terminal payments](./collect-payments.md)). But subsequent payments happen online and are treated as card-not-present. For example, a gym customer pays for an initial session in person and begins a membership in the same transaction. Or a clothing store collects a customer’s email address and payment method at the checkout counter during purchase, and the customer can log in later and use it again. + +You can automatically attach the `generated_card` PaymentMethod to a `customer` object to easily retrieve saved card details in the future. When creating a [PaymentIntent](https://stripe.com/docs/api/payment_intents/create), provide a [customer id](https://stripe.com/docs/api/customers) and set the [setup_future_usage](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-setup_future_usage) parameter to indicate you intend to make future payments with the payment method. + +### Client side + +With the iOS, Android and React Native SDKs, you can create a PaymentIntent client-side and provide the `customer` and set `setup_future_usage`. + +```tsx +const { createPaymentIntent } = useStripeTerminal(); + +const { paymentIntent, error } = await createPaymentIntent({ + amount: 20000, + currency: 'usd', + setupFutureUsage: 'offSession', +}); +``` + +### Server side + +The JavaScript SDK requires you to create the PaymentIntent on your server. For iOS, Android or React Native, you can create the PaymentIntent on your server if the information required to start a payment isn’t readily available in your app. + +```ts +// Set your secret key. Remember to switch to your live secret key in production. +// See your keys here: https://dashboard.stripe.com/apikeys +const stripe = require('stripe')('sk_test_7mJuPfZsBzc3JkrANrFrcDqC'); + +const paymentIntent = await stripe.paymentIntents.create({ + payment_method_types: ['card'], + amount: 1099, + currency: 'usd', + customer: '{{CUSTOMER_ID}}', + payment_method: '{{PAYMENT_METHOD_ID}}', + setup_future_usage: 'off_session', +}); +``` + +You can retrieve the saved card details by [listing](https://stripe.com/docs/api/payment_methods/list) the card payment methods associated with that customer. + +## Collect card details for future use _U.S. Only_ + +> Currently, you can’t use Stripe Terminal to save contactless cards and mobile wallets (e.g., Apple Pay, Google Pay) for later reuse using `readReusableCard`. + +Alternatively, collect payment details in person and defer any payment until later. For example, a customer orders flowers in your store, but you only want to charge them when the order ships. In this flow, all payments are treated as card-not-present. Although you’re presenting a card in person, the transactions happen later and don’t benefit from the [lower pricing](https://stripe.com/en-pl/terminal#pricing) and liability shift given to [standard Terminal payments](./collect-payments.md) in certain markets. + +**United States** + +In the United States, use the `readReusableCard` method to save a card for future use. + +> `readReusableCard` is only available in the United States and supports contact transactions only. Use readReusableCard with the JavaScript and Mobile SDKs for the Verifone P400, BBPOS WisePOS E, and the BBPOS Chipper 2X BT. + +### React Native + +The connected reader waits for the customer to present a card. When they do, `readReusableCard` collects encrypted card data and tokenizes it as a [PaymentMethod](https://stripe.com/docs/api/payment_methods) but doesn’t create any payments. + +You can cancel reading a card using the `cancelReadReusableCard` method returned by the React Native SDK. + +```tsx +const { readReusableCard } = useStripeTerminal(); + +// ... +const { paymentMethod, error } = await readReusableCard({ + customer: 'cus_KU9GGvjgrRF7Tv', +}); + +if (error) { + // Placeholer for error +} else if (paymentMethod) { + // Notify your backend to attach the PaymentMethod to a Customer +} +// ... +``` + +You can optionally attach the returned PaymentMethod to a `Customer` for recurring payments. + +```ts +// Set your secret key. Remember to switch to your live secret key in production. +// See your keys here: https://dashboard.stripe.com/apikeys +const stripe = require('stripe')('sk_test_7mJuPfZsBzc3JkrANrFrcDqC'); + +const paymentMethod = await stripe.paymentMethods.attach( + '{{PAYMENT_METHOD_ID}}', + { customer: '{{CUSTOMER_ID}}' } +); +``` + +**Charge a saved card** _U.S. only_ + +You can use previously saved card details to charge customers later. + +For one-time use, [create a PaymentIntent](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-payment_method) and attach the saved payment method. You can’t reuse an attached payment method unless you collect payment details again by either [saving a card from a PaymentIntent](#save-a-card-while-transacting-us-only) or [reading a reusable card](#collect-card-details-for-future-use-us-only). + +> When charging a saved card, you can’t use the [processPayment](./collect-payments.md#proccess-the-payment) method. Payments with generated cards are online payments and can’t be processed with Terminal SDK methods. + +## Track customer behavior with card fingerprints + +The Stripe API makes it easy to recognize repeat customers across online and retail channels by correlating transactions by the same card. Like card payment methods, each card_present payment method has a fingerprint attribute that uniquely identifies a particular card number. Cards from mobile wallets (e.g., Apple Pay or Google Pay) don’t share a fingerprint with cards used online. + +Starting with API version 2018-01-23, Connect platforms see a fingerprint on card_present and card PaymentMethods that is uniform across all connected accounts. You can use this fingerprint to look up charges across your platform from a particular card. diff --git a/example/src/screens/CollectCardPaymentScreen.tsx b/example/src/screens/CollectCardPaymentScreen.tsx index 45646263..b591d9ad 100644 --- a/example/src/screens/CollectCardPaymentScreen.tsx +++ b/example/src/screens/CollectCardPaymentScreen.tsx @@ -70,7 +70,9 @@ export default function CollectCardPaymentScreen() { amount: Number(inputValues.amount), currency: inputValues.currency, paymentMethodTypes: paymentMethods, + setupFutureUsage: 'offSession', }); + if (error) { if (error) { console.log('error', error); diff --git a/example/src/screens/RefundPaymentScreen.tsx b/example/src/screens/RefundPaymentScreen.tsx index 1a70eceb..bfe1ef8a 100644 --- a/example/src/screens/RefundPaymentScreen.tsx +++ b/example/src/screens/RefundPaymentScreen.tsx @@ -79,7 +79,7 @@ export default function RefundPaymentScreen() { }, ], }); - const { error } = await processRefund(); + const { error, refund } = await processRefund(); if (error) { addLogs({ name: 'Process Refund', @@ -90,12 +90,22 @@ export default function RefundPaymentScreen() { }, ], }); + } else if (refund && refund.status === 'succeeded') { + addLogs({ + name: 'Process Refund', + events: [ + { + name: 'Succeeded', + description: 'terminal.processRefund', + }, + ], + }); } else { addLogs({ name: 'Process Refund', events: [ { - name: 'Finished', + name: 'Pending or unsuccessful', description: 'terminal.processRefund', }, ], diff --git a/src/functions.ts b/src/functions.ts index fb552822..0388ce92 100644 --- a/src/functions.ts +++ b/src/functions.ts @@ -24,6 +24,7 @@ import type { RefundParams, PaymentMethodResultType, ReadReusableCardParamsType, + ProcessRefundResultType, } from './types'; export async function initialize( @@ -516,13 +517,18 @@ export async function collectRefundPaymentMethod( } } -export async function processRefund(): Promise<{ - error?: StripeError; -}> { +export async function processRefund(): Promise { try { - const { error } = await StripeTerminalSdk.processRefund(); + const { error, refund } = await StripeTerminalSdk.processRefund(); + if (error) { + return { + error, + refund: undefined, + }; + } return { - error, + refund: refund, + error: undefined, }; } catch (error) { return { diff --git a/src/types/Refund.ts b/src/types/Refund.ts index f62aae5e..000d0584 100644 --- a/src/types/Refund.ts +++ b/src/types/Refund.ts @@ -10,7 +10,7 @@ export namespace Refund { failureReason?: string; reason?: string; description?: string; - status?: string; + status?: Status; }; export namespace IOS { @@ -20,6 +20,8 @@ export namespace Refund { } } + export type Status = 'succeeded' | 'failed' | 'pending' | 'unknown'; + export namespace Android { export interface Props { balanceTransaction?: string; diff --git a/src/types/index.ts b/src/types/index.ts index 23bcbbb5..48c24556 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -132,6 +132,7 @@ export interface Charge { export type CreatePaymentIntentParams = CreatePaymentIntentIOSParams & { amount: number; currency: string; + setupFutureUsage?: 'offSession' | 'onSession'; }; export type CreatePaymentIntentIOSParams = { @@ -214,15 +215,10 @@ export type PaymentMethodDetails = { interacPresent?: string; }; -export type ProcessRefundResultType = - | { - refund: Refund.Props; - error: undefined; - } - | { - refund: undefined; - error: StripeError; - }; +export type ProcessRefundResultType = { + refund?: Refund.Props; + error?: StripeError; +}; export type ReadReusableCardParamsType = { customer?: string; From 321f0d747ac136445c7f0dec7dd7e5211324ae3f Mon Sep 17 00:00:00 2001 From: arekkubaczkowski Date: Mon, 6 Dec 2021 14:38:59 +0100 Subject: [PATCH 5/8] chore: add missing setupFutureParams --- .../StripeTerminalReactNativeModule.kt | 8 ++++++-- docs/example-applications.md | 8 ++++---- docs/saving-cards.md | 2 +- example/src/screens/CollectCardPaymentScreen.tsx | 2 +- ios/StripeTerminalReactNative.swift | 5 ++++- src/types/index.ts | 2 +- 6 files changed, 17 insertions(+), 10 deletions(-) diff --git a/android/src/main/java/com/stripeterminalreactnative/StripeTerminalReactNativeModule.kt b/android/src/main/java/com/stripeterminalreactnative/StripeTerminalReactNativeModule.kt index 3805e2ec..3d22d237 100644 --- a/android/src/main/java/com/stripeterminalreactnative/StripeTerminalReactNativeModule.kt +++ b/android/src/main/java/com/stripeterminalreactnative/StripeTerminalReactNativeModule.kt @@ -329,13 +329,17 @@ class StripeTerminalReactNativeModule(reactContext: ReactApplicationContext) : fun createPaymentIntent(params: ReadableMap, promise: Promise) { val amount = getIntOr(params, "amount") ?: 0 val currency = getStringOr(params, "currency") ?: "" + val setupFutureUsage = getStringOr(params, "currency") val intentParams = PaymentIntentParameters.Builder() .setAmount(amount.toLong()) .setCurrency(currency) - .build() - Terminal.getInstance().createPaymentIntent(intentParams, object : PaymentIntentCallback { + setupFutureUsage?.let { + intentParams.setSetupFutureUsage(it) + } + + Terminal.getInstance().createPaymentIntent(intentParams.build(), object : PaymentIntentCallback { override fun onSuccess(paymentIntent: PaymentIntent) { paymentIntents[paymentIntent.id] = paymentIntent diff --git a/docs/example-applications.md b/docs/example-applications.md index e98849e5..5e4f40ac 100644 --- a/docs/example-applications.md +++ b/docs/example-applications.md @@ -8,11 +8,11 @@ A Stripe Terminal integration starts with your point of sale application running Before starting your own integration, we recommend setting up one of the Terminal example applications. This will give you a better feel for how the components of a Terminal integration fit together and show you the interactions between the SDK, the reader, your point of sale application, and your backend code. -1. Deploy the example backend +## 1. Deploy the example backend To get started with the example applications, set up the Sinatra-based [example backend](https://github.com/stripe/example-terminal-backend) by following the instructions in the [README](https://github.com/stripe/example-terminal-backend). You can either run the backend locally or deploy it to Heroku with a free account. The example backend works with the example application to authenticate the Terminal SDK and finalize payments. -2. Run example application +## 2. Run example application Build and run one of the example applications: @@ -36,7 +36,7 @@ git clone https://github.com/stripe/stripe-terminal-react-native.git - or - `yarn example android` -3. Connect to a simulated reader +## 3. Connect to a simulated reader After you have the example running, select `Simulated` to connect to a [simulated reader](https://stripe.com/docs/terminal/references/testing#simulated-reader). @@ -46,7 +46,7 @@ The simulated reader handles events just like a physical reader, so you can cont The simulated reader functionality is built into the SDK, so you can use it to develop and test your own point of sale application without connecting to a physical device. -4. Collect your first payment +## 4. Collect your first payment Collect your first payment using the example application and a simulated reader. Each of the examples features an event log for you to reference as you integrate Terminal in your own application. As you collect your first payment, you’ll see the following sequence: diff --git a/docs/saving-cards.md b/docs/saving-cards.md index 9b8c3848..9da7a7dc 100644 --- a/docs/saving-cards.md +++ b/docs/saving-cards.md @@ -30,7 +30,7 @@ const { createPaymentIntent } = useStripeTerminal(); const { paymentIntent, error } = await createPaymentIntent({ amount: 20000, currency: 'usd', - setupFutureUsage: 'offSession', + setupFutureUsage: 'off_session', }); ``` diff --git a/example/src/screens/CollectCardPaymentScreen.tsx b/example/src/screens/CollectCardPaymentScreen.tsx index b591d9ad..0ad8d2b5 100644 --- a/example/src/screens/CollectCardPaymentScreen.tsx +++ b/example/src/screens/CollectCardPaymentScreen.tsx @@ -70,7 +70,7 @@ export default function CollectCardPaymentScreen() { amount: Number(inputValues.amount), currency: inputValues.currency, paymentMethodTypes: paymentMethods, - setupFutureUsage: 'offSession', + setupFutureUsage: 'off_session', }); if (error) { diff --git a/ios/StripeTerminalReactNative.swift b/ios/StripeTerminalReactNative.swift index c83fb552..2e1798f0 100644 --- a/ios/StripeTerminalReactNative.swift +++ b/ios/StripeTerminalReactNative.swift @@ -233,9 +233,12 @@ class StripeTerminalReactNative: RCTEventEmitter, DiscoveryDelegate, BluetoothRe func createPaymentIntent(params: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock) { let amount = params["amount"] as? NSNumber ?? 0 let currency = params["currency"] as? String ?? "" + let setupFutureUsage = params["setupFutureUsage"] as? String let paymentMethodTypes = params["paymentMethodTypes"] as? [String] ?? [] - + let paymentIntentParams = PaymentIntentParameters(amount: UInt(truncating: amount), currency: currency, paymentMethodTypes: paymentMethodTypes) + paymentIntentParams.setupFutureUsage = setupFutureUsage + Terminal.shared.createPaymentIntent(paymentIntentParams) { pi, error in if let error = error { resolve(Errors.createError(code: CommonErrorType.Failed.rawValue, message: error.localizedDescription)) diff --git a/src/types/index.ts b/src/types/index.ts index 48c24556..56c236c0 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -132,7 +132,7 @@ export interface Charge { export type CreatePaymentIntentParams = CreatePaymentIntentIOSParams & { amount: number; currency: string; - setupFutureUsage?: 'offSession' | 'onSession'; + setupFutureUsage?: 'off_session' | 'on_session'; }; export type CreatePaymentIntentIOSParams = { From acd2e9f5e1db9231620fc54c565d81c4ce14b6f4 Mon Sep 17 00:00:00 2001 From: arekkubaczkowski Date: Wed, 8 Dec 2021 09:17:19 +0100 Subject: [PATCH 6/8] chore: docs, cancelReadReusableCard --- .../StripeTerminalReactNativeModule.kt | 20 +++++- docs/incremental-authorizations.md | 66 +++++++++++++++++++ ios/StripeTerminalReactNative.m | 5 ++ ios/StripeTerminalReactNative.swift | 18 +++++ src/StripeTerminalSdk.tsx | 3 + src/functions.ts | 13 ++++ src/hooks/useStripeTerminal.tsx | 12 ++++ 7 files changed, 136 insertions(+), 1 deletion(-) create mode 100644 docs/incremental-authorizations.md diff --git a/android/src/main/java/com/stripeterminalreactnative/StripeTerminalReactNativeModule.kt b/android/src/main/java/com/stripeterminalreactnative/StripeTerminalReactNativeModule.kt index 3d22d237..b54ec6a8 100644 --- a/android/src/main/java/com/stripeterminalreactnative/StripeTerminalReactNativeModule.kt +++ b/android/src/main/java/com/stripeterminalreactnative/StripeTerminalReactNativeModule.kt @@ -15,6 +15,7 @@ class StripeTerminalReactNativeModule(reactContext: ReactApplicationContext) : private var collectPaymentMethodCancelable: Cancelable? = null private var collectSetupIntentCancelable: Cancelable? = null private var installUpdateCancelable: Cancelable? = null + private var readReusableCardCancelable: Cancelable? = null private var paymentIntents: HashMap = HashMap() private var setupIntents: HashMap = HashMap() @@ -480,6 +481,23 @@ class StripeTerminalReactNativeModule(reactContext: ReactApplicationContext) : }) } + @ReactMethod + fun cancelReadReusableCard(promise: Promise) { + val cancelable = readReusableCardCancelable ?: run { + promise.resolve(createError(CommonErrorType.Failed.toString(), "readReusableCard could not be canceled because the command has already been canceled or has completed.")) + return + } + cancelable.cancel(object : Callback { + override fun onSuccess() { + promise.resolve(WritableNativeMap()) + } + + override fun onFailure(e: TerminalException) { + promise.resolve(createError(CommonErrorType.Failed.toString(), e.localizedMessage)) + } + }) + } + @ReactMethod fun collectSetupIntentPaymentMethod(params: ReadableMap, promise: Promise) { val setupIntentId = getStringOr(params, "setupIntentId") @@ -661,7 +679,7 @@ class StripeTerminalReactNativeModule(reactContext: ReactApplicationContext) : var reusableCardParams = ReadReusableCardParameters.Builder().setCustomer(customer).build(); - Terminal.getInstance().readReusableCard(reusableCardParams, object : PaymentMethodCallback { + readReusableCardCancelable = Terminal.getInstance().readReusableCard(reusableCardParams, object : PaymentMethodCallback { override fun onSuccess(paymentMethod: PaymentMethod) { val pm = mapFromPaymentMethod(paymentMethod); val result = WritableNativeMap() diff --git a/docs/incremental-authorizations.md b/docs/incremental-authorizations.md new file mode 100644 index 00000000..9dacf9af --- /dev/null +++ b/docs/incremental-authorizations.md @@ -0,0 +1,66 @@ +# Display cart details + +## Incremental authorizations + +Incremental authorizations allow you to increase the authorized amount on a confirmed PaymentIntent before you capture it. This means you can update the amount on a payment if the estimated price changes or goods and services are added. Before capture, each incremental authorization appears on your customer’s credit card statement as an additional pending charge (e.g., a 10 USD authorization incremented to 15 USD appears as 10 USD and 5 USD). After capture, the pending authorizations disappear and the total captured amount appears as one entry. + +## 1 Create and confirm an uncaptured PaymentIntent + +```tsx +const { paymentIntent, error } = await createPaymentIntent({ + amount: 1000, + currency: 'usd', +}); + +if (error) { + console.log(`createPaymentIntent failed: ${error.message}`); +} else if (paymentIntent) { + console.log('createPaymentIntent succeeded'); + + const { paymentIntent, error } = await collectPaymentMethod(paymentIntentId); + + if (error) { + console.log(`collectPaymentMethod failed: ${error.message}`); + } else if (paymentIntent) { + console.log('collectPaymentMethod succeeded'); + + const { paymentIntent, error } = await processPayment(paymentIntent.id); + + if (error) { + console.log(`processPayment failed: ${error.message}`); + } else if (paymentIntent) { + console.log('processPayment succeeded'); + } + } +} +``` + +Not all payment intents are eligible for incremental authorizations. To determine eligibility based on the restrictions above, check the incremental_authorization_supported field after confirmation. + +## 2 Perform an incremental authorization + +To increase the authorized amount on a payment, use the increment_authorization endpoint and provide the updated total amount to increment to, which must be greater than the original authorized amount. This attempts to authorize for a higher amount on your customer’s card. A single PaymentIntent can call this endpoint multiple times to further increase the authorized amount. + +``` +curl https://api.stripe.com/v1/payment_intents/{{PAYMENT_INTENT_ID}}/increment_authorization \ + -u sk_test_7mJuPfZsBzc3JkrANrFrcDqC: \ + -d "amount"=1500 +``` + +A successful authorization returns the PaymentIntent with the updated amount. A failed authorization returns a card_declined error, and the PaymentIntent remains authorized to capture the original amount. Updates to other PaymentIntent fields (e.g.,application_fee_amount) aren’t saved if the incremental authorization fails. + +The underlying Charge object for the PaymentIntent contains an amount_updates array field that’s appended with the results of the incremental authorization. It shows whether the authorization succeeded or failed, and any details associated with the result. + +## 3 Capture the PaymentIntent + +To capture the authorized amount on a PaymentIntent that has prior incremental authorizations, use the capture endpoint. To increase the authorized amount and simultaneously capture that updated amount, provide an updated amount_to_capture. Providing an amount_to_capture higher than the currently authorized amount results in an automatic incremental authorization attempt. + +> If you’re eligible to collect on-receipt tips, capture requests always succeed. Using amount_to_capture that’s higher than the currently authorized amount won’t result in an automatic incremental authorization attempt. + +``` +curl https://api.stripe.com/v1/payment_intents/{{PAYMENT_INTENT_ID}}/capture \ + -u sk_test_7mJuPfZsBzc3JkrANrFrcDqC: \ + -d "amount_to_capture"=2000 +``` + +A successful authorization returns the captured PaymentIntent with the updated amount. A failed authorization returns a card_declined error, and the PaymentIntent remains authorized to capture the original amount. Updates to other PaymentIntent fields (e.g., application_fee_amount) aren’t saved if the incremental authorization fails. diff --git a/ios/StripeTerminalReactNative.m b/ios/StripeTerminalReactNative.m index 1f9856fe..fc8acbc9 100644 --- a/ios/StripeTerminalReactNative.m +++ b/ios/StripeTerminalReactNative.m @@ -168,4 +168,9 @@ @interface RCT_EXTERN_MODULE(StripeTerminalReactNative, RCTEventEmitter) rejecter: (RCTPromiseRejectBlock)reject ) +RCT_EXTERN_METHOD( + cancelReadReusableCard:(RCTPromiseResolveBlock)resolve + rejecter: (RCTPromiseRejectBlock)reject + ) + @end diff --git a/ios/StripeTerminalReactNative.swift b/ios/StripeTerminalReactNative.swift index 2e1798f0..3f581a8e 100644 --- a/ios/StripeTerminalReactNative.swift +++ b/ios/StripeTerminalReactNative.swift @@ -44,6 +44,7 @@ class StripeTerminalReactNative: RCTEventEmitter, DiscoveryDelegate, BluetoothRe var collectPaymentMethodCancelable: Cancelable? = nil var collectSetupIntentCancelable: Cancelable? = nil var installUpdateCancelable: Cancelable? = nil + var readReusableCardCancelable: Cancelable? = nil func terminal(_ terminal: Terminal, didUpdateDiscoveredReaders readers: [Reader]) { discoveredReadersList = readers @@ -106,6 +107,23 @@ class StripeTerminalReactNative: RCTEventEmitter, DiscoveryDelegate, BluetoothRe self.collectSetupIntentCancelable = nil } } + + @objc(cancelReadReusableCard:rejecter:) + func cancelReadReusableCard(resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock) { + guard let cancelable = readReusableCardCancelable else { + resolve(Errors.createError(code: CommonErrorType.Failed.rawValue, message: "readReusableCard could not be canceled because the command has already been canceled or has completed.")) + return + } + cancelable.cancel() { error in + if let error = error { + resolve(Errors.createError(code: CommonErrorType.Failed.rawValue, message: error.localizedDescription)) + } + else { + resolve([:]) + } + self.readReusableCardCancelable = nil + } + } @objc(simulateReaderUpdate:resolver:rejecter:) func simulateReaderUpdate(update: String, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock) -> Void { diff --git a/src/StripeTerminalSdk.tsx b/src/StripeTerminalSdk.tsx index 03bc4582..382070b1 100644 --- a/src/StripeTerminalSdk.tsx +++ b/src/StripeTerminalSdk.tsx @@ -113,6 +113,9 @@ type StripeTerminalSdkType = { cancelCollectSetupIntent(): Promise<{ error?: StripeError; }>; + cancelReadReusableCard(): Promise<{ + error?: StripeError; + }>; }; export default StripeTerminalReactNative as StripeTerminalSdkType; diff --git a/src/functions.ts b/src/functions.ts index 0388ce92..4b8f027a 100644 --- a/src/functions.ts +++ b/src/functions.ts @@ -599,3 +599,16 @@ export async function cancelCollectSetupIntent(): Promise<{ }; } } + +export async function cancelReadReusableCard(): Promise<{ + error?: StripeError; +}> { + try { + await StripeTerminalSdk.cancelReadReusableCard(); + return {}; + } catch (error) { + return { + error: error as any, + }; + } +} diff --git a/src/hooks/useStripeTerminal.tsx b/src/hooks/useStripeTerminal.tsx index b7e498c4..91e6333b 100644 --- a/src/hooks/useStripeTerminal.tsx +++ b/src/hooks/useStripeTerminal.tsx @@ -42,6 +42,7 @@ import { readReusableCard, cancelCollectPaymentMethod, cancelCollectSetupIntent, + cancelReadReusableCard, } from '../functions'; import { StripeTerminalContext } from '../components/StripeTerminalContext'; import { useListener } from './useListener'; @@ -611,6 +612,16 @@ export function useStripeTerminal(props?: Props) { return response; }, [setLoading]); + const _cancelReadReusableCard = useCallback(async () => { + setLoading(true); + + const response = await cancelReadReusableCard(); + + setLoading(false); + + return response; + }, [setLoading]); + return { initialize, discoverReaders: _discoverReaders, @@ -640,6 +651,7 @@ export function useStripeTerminal(props?: Props) { readReusableCard: _readReusableCard, cancelCollectPaymentMethod: _cancelCollectPaymentMethod, cancelCollectSetupIntent: _cancelCollectSetupIntent, + cancelReadReusableCard: _cancelReadReusableCard, emitter: emitter, discoveredReaders, connectedReader, From ff0cdbfcca8a572195d9be4457cdea4dcbdc3d7a Mon Sep 17 00:00:00 2001 From: arekkubaczkowski Date: Wed, 8 Dec 2021 11:55:27 +0100 Subject: [PATCH 7/8] chore: upgrade react native --- .gitattributes | 6 +- .gitignore | 1 + android/build.gradle | 3 +- docs/assets/log-screen.png | Bin 0 -> 150791 bytes docs/example-applications.md | 2 +- example/android/app/build.gradle | 15 +- .../android/app/src/debug/AndroidManifest.xml | 4 +- .../android/app/src/main/AndroidManifest.xml | 2 - .../app/src/main/res/values/styles.xml | 3 +- example/android/build.gradle | 9 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- example/android/gradlew.bat | 20 +- example/ios/Podfile | 14 +- example/ios/Podfile.lock | 509 ++--- .../project.pbxproj | 2 + .../StripeTerminalReactNativeExample.xcscheme | 2 +- .../AppDelegate.m | 6 +- .../Info.plist | 2 - example/metro.config.js | 4 +- example/package.json | 8 +- example/yarn.lock | 1783 ++++++++--------- package.json | 6 +- yarn.lock | 1660 +++++++-------- 23 files changed, 1874 insertions(+), 2189 deletions(-) create mode 100644 docs/assets/log-screen.png diff --git a/.gitattributes b/.gitattributes index 030ef144..45a3dcb2 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,3 @@ -*.pbxproj -text -# specific for windows script files -*.bat text eol=crlf \ No newline at end of file +# Windows files should use crlf line endings +# https://help.github.com/articles/dealing-with-line-endings/ +*.bat text eol=crlf diff --git a/.gitignore b/.gitignore index 6b2b166f..3532e2a3 100644 --- a/.gitignore +++ b/.gitignore @@ -39,6 +39,7 @@ project.xcworkspace .settings local.properties android.iml +*.hprof # Cocoapods # diff --git a/android/build.gradle b/android/build.gradle index 91ddf273..5a871729 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -9,7 +9,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:4.1.2' + classpath 'com.android.tools.build:gradle:4.2.2' // noinspection DifferentKotlinGradleVersion classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } @@ -33,7 +33,6 @@ android { targetSdkVersion getExtOrIntegerDefault('targetSdkVersion') versionCode 1 versionName "1.0" - } buildTypes { diff --git a/docs/assets/log-screen.png b/docs/assets/log-screen.png new file mode 100644 index 0000000000000000000000000000000000000000..e8747a40d5814db72785a7d29c2d1450ac0ae82d GIT binary patch literal 150791 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 - + + + diff --git a/example/android/app/src/main/AndroidManifest.xml b/example/android/app/src/main/AndroidManifest.xml index edec2243..404de9d4 100644 --- a/example/android/app/src/main/AndroidManifest.xml +++ b/example/android/app/src/main/AndroidManifest.xml @@ -26,7 +26,5 @@ - - diff --git a/example/android/app/src/main/res/values/styles.xml b/example/android/app/src/main/res/values/styles.xml index 62fe59fa..24bc0613 100644 --- a/example/android/app/src/main/res/values/styles.xml +++ b/example/android/app/src/main/res/values/styles.xml @@ -1,9 +1,8 @@ - diff --git a/example/android/build.gradle b/example/android/build.gradle index 52dc682d..da9b9824 100644 --- a/example/android/build.gradle +++ b/example/android/build.gradle @@ -2,10 +2,11 @@ buildscript { ext { - buildToolsVersion = "29.0.3" + buildToolsVersion = "30.0.2" minSdkVersion = 21 - compileSdkVersion = 29 - targetSdkVersion = 29 + compileSdkVersion = 30 + targetSdkVersion = 30 + ndkVersion = "21.4.7075529" } repositories { google() @@ -13,7 +14,7 @@ buildscript { jcenter() } dependencies { - classpath("com.android.tools.build:gradle:4.1.2") + classpath("com.android.tools.build:gradle:4.2.2") // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } diff --git a/example/android/gradle/wrapper/gradle-wrapper.properties b/example/android/gradle/wrapper/gradle-wrapper.properties index 186b7155..7665b0fa 100644 --- a/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/example/android/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.9-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/example/android/gradlew.bat b/example/android/gradlew.bat index b742c991..c795a239 100644 --- a/example/android/gradlew.bat +++ b/example/android/gradlew.bat @@ -40,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init +if "%ERRORLEVEL%" == "0" goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -54,7 +54,7 @@ goto fail set JAVA_HOME=%JAVA_HOME:"=% set JAVA_EXE=%JAVA_HOME%/bin/java.exe -if exist "%JAVA_EXE%" goto init +if exist "%JAVA_EXE%" goto execute echo. echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% @@ -64,20 +64,6 @@ echo location of your Java installation. goto fail -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* :execute @rem Setup the command line @@ -85,7 +71,7 @@ set CMD_LINE_ARGS=%* set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* :end @rem End local scope for the variables with windows NT shell diff --git a/example/ios/Podfile b/example/ios/Podfile index e8dc667c..62506537 100644 --- a/example/ios/Podfile +++ b/example/ios/Podfile @@ -1,13 +1,17 @@ require_relative '../node_modules/react-native/scripts/react_native_pods' require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules' -platform :ios, '10.0' +platform :ios, '11.0' target 'StripeTerminalReactNativeExample' do config = use_native_modules! - use_react_native!(:path => config["reactNativePath"]) - + use_react_native!( + :path => config[:reactNativePath], + # to enable hermes on iOS, change `false` to `true` and then install pods + :hermes_enabled => false + ) + pod 'stripe-terminal-react-native', :path => '../..' ENVFILES = { @@ -15,7 +19,11 @@ target 'StripeTerminalReactNativeExample' do 'Release' => '$(PODS_ROOT)/../../.env.ci', } + post_install do |installer| + react_native_post_install(installer) + __apply_Xcode_12_5_M1_post_install_workaround(installer) + installer.pods_project.targets.each do |target| target.build_configurations.each do |config| if target.name == 'react-native-config' diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index 8d6b263b..a01ab6cb 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -1,268 +1,297 @@ PODS: - - boost-for-react-native (1.63.0) + - boost (1.76.0) - DoubleConversion (1.1.6) - - FBLazyVector (0.63.4) - - FBReactNativeSpec (0.63.4): - - Folly (= 2020.01.13.00) - - RCTRequired (= 0.63.4) - - RCTTypeSafety (= 0.63.4) - - React-Core (= 0.63.4) - - React-jsi (= 0.63.4) - - ReactCommon/turbomodule/core (= 0.63.4) - - Folly (2020.01.13.00): - - boost-for-react-native + - FBLazyVector (0.66.3) + - FBReactNativeSpec (0.66.3): + - RCT-Folly (= 2021.06.28.00-v2) + - RCTRequired (= 0.66.3) + - RCTTypeSafety (= 0.66.3) + - React-Core (= 0.66.3) + - React-jsi (= 0.66.3) + - ReactCommon/turbomodule/core (= 0.66.3) + - fmt (6.2.1) + - glog (0.3.5) + - RCT-Folly (2021.06.28.00-v2): + - boost - DoubleConversion - - Folly/Default (= 2020.01.13.00) + - fmt (~> 6.2.1) - glog - - Folly/Default (2020.01.13.00): - - boost-for-react-native + - RCT-Folly/Default (= 2021.06.28.00-v2) + - RCT-Folly/Default (2021.06.28.00-v2): + - boost - DoubleConversion + - fmt (~> 6.2.1) - glog - - glog (0.3.5) - - RCTRequired (0.63.4) - - RCTTypeSafety (0.63.4): - - FBLazyVector (= 0.63.4) - - Folly (= 2020.01.13.00) - - RCTRequired (= 0.63.4) - - React-Core (= 0.63.4) - - React (0.63.4): - - React-Core (= 0.63.4) - - React-Core/DevSupport (= 0.63.4) - - React-Core/RCTWebSocket (= 0.63.4) - - React-RCTActionSheet (= 0.63.4) - - React-RCTAnimation (= 0.63.4) - - React-RCTBlob (= 0.63.4) - - React-RCTImage (= 0.63.4) - - React-RCTLinking (= 0.63.4) - - React-RCTNetwork (= 0.63.4) - - React-RCTSettings (= 0.63.4) - - React-RCTText (= 0.63.4) - - React-RCTVibration (= 0.63.4) - - React-callinvoker (0.63.4) - - React-Core (0.63.4): - - Folly (= 2020.01.13.00) + - RCTRequired (0.66.3) + - RCTTypeSafety (0.66.3): + - FBLazyVector (= 0.66.3) + - RCT-Folly (= 2021.06.28.00-v2) + - RCTRequired (= 0.66.3) + - React-Core (= 0.66.3) + - React (0.66.3): + - React-Core (= 0.66.3) + - React-Core/DevSupport (= 0.66.3) + - React-Core/RCTWebSocket (= 0.66.3) + - React-RCTActionSheet (= 0.66.3) + - React-RCTAnimation (= 0.66.3) + - React-RCTBlob (= 0.66.3) + - React-RCTImage (= 0.66.3) + - React-RCTLinking (= 0.66.3) + - React-RCTNetwork (= 0.66.3) + - React-RCTSettings (= 0.66.3) + - React-RCTText (= 0.66.3) + - React-RCTVibration (= 0.66.3) + - React-callinvoker (0.66.3) + - React-Core (0.66.3): - glog - - React-Core/Default (= 0.63.4) - - React-cxxreact (= 0.63.4) - - React-jsi (= 0.63.4) - - React-jsiexecutor (= 0.63.4) + - RCT-Folly (= 2021.06.28.00-v2) + - React-Core/Default (= 0.66.3) + - React-cxxreact (= 0.66.3) + - React-jsi (= 0.66.3) + - React-jsiexecutor (= 0.66.3) + - React-perflogger (= 0.66.3) - Yoga - - React-Core/CoreModulesHeaders (0.63.4): - - Folly (= 2020.01.13.00) + - React-Core/CoreModulesHeaders (0.66.3): - glog + - RCT-Folly (= 2021.06.28.00-v2) - React-Core/Default - - React-cxxreact (= 0.63.4) - - React-jsi (= 0.63.4) - - React-jsiexecutor (= 0.63.4) + - React-cxxreact (= 0.66.3) + - React-jsi (= 0.66.3) + - React-jsiexecutor (= 0.66.3) + - React-perflogger (= 0.66.3) - Yoga - - React-Core/Default (0.63.4): - - Folly (= 2020.01.13.00) + - React-Core/Default (0.66.3): - glog - - React-cxxreact (= 0.63.4) - - React-jsi (= 0.63.4) - - React-jsiexecutor (= 0.63.4) + - RCT-Folly (= 2021.06.28.00-v2) + - React-cxxreact (= 0.66.3) + - React-jsi (= 0.66.3) + - React-jsiexecutor (= 0.66.3) + - React-perflogger (= 0.66.3) - Yoga - - React-Core/DevSupport (0.63.4): - - Folly (= 2020.01.13.00) + - React-Core/DevSupport (0.66.3): - glog - - React-Core/Default (= 0.63.4) - - React-Core/RCTWebSocket (= 0.63.4) - - React-cxxreact (= 0.63.4) - - React-jsi (= 0.63.4) - - React-jsiexecutor (= 0.63.4) - - React-jsinspector (= 0.63.4) + - RCT-Folly (= 2021.06.28.00-v2) + - React-Core/Default (= 0.66.3) + - React-Core/RCTWebSocket (= 0.66.3) + - React-cxxreact (= 0.66.3) + - React-jsi (= 0.66.3) + - React-jsiexecutor (= 0.66.3) + - React-jsinspector (= 0.66.3) + - React-perflogger (= 0.66.3) - Yoga - - React-Core/RCTActionSheetHeaders (0.63.4): - - Folly (= 2020.01.13.00) + - React-Core/RCTActionSheetHeaders (0.66.3): - glog + - RCT-Folly (= 2021.06.28.00-v2) - React-Core/Default - - React-cxxreact (= 0.63.4) - - React-jsi (= 0.63.4) - - React-jsiexecutor (= 0.63.4) + - React-cxxreact (= 0.66.3) + - React-jsi (= 0.66.3) + - React-jsiexecutor (= 0.66.3) + - React-perflogger (= 0.66.3) - Yoga - - React-Core/RCTAnimationHeaders (0.63.4): - - Folly (= 2020.01.13.00) + - React-Core/RCTAnimationHeaders (0.66.3): - glog + - RCT-Folly (= 2021.06.28.00-v2) - React-Core/Default - - React-cxxreact (= 0.63.4) - - React-jsi (= 0.63.4) - - React-jsiexecutor (= 0.63.4) + - React-cxxreact (= 0.66.3) + - React-jsi (= 0.66.3) + - React-jsiexecutor (= 0.66.3) + - React-perflogger (= 0.66.3) - Yoga - - React-Core/RCTBlobHeaders (0.63.4): - - Folly (= 2020.01.13.00) + - React-Core/RCTBlobHeaders (0.66.3): - glog + - RCT-Folly (= 2021.06.28.00-v2) - React-Core/Default - - React-cxxreact (= 0.63.4) - - React-jsi (= 0.63.4) - - React-jsiexecutor (= 0.63.4) + - React-cxxreact (= 0.66.3) + - React-jsi (= 0.66.3) + - React-jsiexecutor (= 0.66.3) + - React-perflogger (= 0.66.3) - Yoga - - React-Core/RCTImageHeaders (0.63.4): - - Folly (= 2020.01.13.00) + - React-Core/RCTImageHeaders (0.66.3): - glog + - RCT-Folly (= 2021.06.28.00-v2) - React-Core/Default - - React-cxxreact (= 0.63.4) - - React-jsi (= 0.63.4) - - React-jsiexecutor (= 0.63.4) + - React-cxxreact (= 0.66.3) + - React-jsi (= 0.66.3) + - React-jsiexecutor (= 0.66.3) + - React-perflogger (= 0.66.3) - Yoga - - React-Core/RCTLinkingHeaders (0.63.4): - - Folly (= 2020.01.13.00) + - React-Core/RCTLinkingHeaders (0.66.3): - glog + - RCT-Folly (= 2021.06.28.00-v2) - React-Core/Default - - React-cxxreact (= 0.63.4) - - React-jsi (= 0.63.4) - - React-jsiexecutor (= 0.63.4) + - React-cxxreact (= 0.66.3) + - React-jsi (= 0.66.3) + - React-jsiexecutor (= 0.66.3) + - React-perflogger (= 0.66.3) - Yoga - - React-Core/RCTNetworkHeaders (0.63.4): - - Folly (= 2020.01.13.00) + - React-Core/RCTNetworkHeaders (0.66.3): - glog + - RCT-Folly (= 2021.06.28.00-v2) - React-Core/Default - - React-cxxreact (= 0.63.4) - - React-jsi (= 0.63.4) - - React-jsiexecutor (= 0.63.4) + - React-cxxreact (= 0.66.3) + - React-jsi (= 0.66.3) + - React-jsiexecutor (= 0.66.3) + - React-perflogger (= 0.66.3) - Yoga - - React-Core/RCTSettingsHeaders (0.63.4): - - Folly (= 2020.01.13.00) + - React-Core/RCTSettingsHeaders (0.66.3): - glog + - RCT-Folly (= 2021.06.28.00-v2) - React-Core/Default - - React-cxxreact (= 0.63.4) - - React-jsi (= 0.63.4) - - React-jsiexecutor (= 0.63.4) + - React-cxxreact (= 0.66.3) + - React-jsi (= 0.66.3) + - React-jsiexecutor (= 0.66.3) + - React-perflogger (= 0.66.3) - Yoga - - React-Core/RCTTextHeaders (0.63.4): - - Folly (= 2020.01.13.00) + - React-Core/RCTTextHeaders (0.66.3): - glog + - RCT-Folly (= 2021.06.28.00-v2) - React-Core/Default - - React-cxxreact (= 0.63.4) - - React-jsi (= 0.63.4) - - React-jsiexecutor (= 0.63.4) + - React-cxxreact (= 0.66.3) + - React-jsi (= 0.66.3) + - React-jsiexecutor (= 0.66.3) + - React-perflogger (= 0.66.3) - Yoga - - React-Core/RCTVibrationHeaders (0.63.4): - - Folly (= 2020.01.13.00) + - React-Core/RCTVibrationHeaders (0.66.3): - glog + - RCT-Folly (= 2021.06.28.00-v2) - React-Core/Default - - React-cxxreact (= 0.63.4) - - React-jsi (= 0.63.4) - - React-jsiexecutor (= 0.63.4) + - React-cxxreact (= 0.66.3) + - React-jsi (= 0.66.3) + - React-jsiexecutor (= 0.66.3) + - React-perflogger (= 0.66.3) - Yoga - - React-Core/RCTWebSocket (0.63.4): - - Folly (= 2020.01.13.00) + - React-Core/RCTWebSocket (0.66.3): - glog - - React-Core/Default (= 0.63.4) - - React-cxxreact (= 0.63.4) - - React-jsi (= 0.63.4) - - React-jsiexecutor (= 0.63.4) + - RCT-Folly (= 2021.06.28.00-v2) + - React-Core/Default (= 0.66.3) + - React-cxxreact (= 0.66.3) + - React-jsi (= 0.66.3) + - React-jsiexecutor (= 0.66.3) + - React-perflogger (= 0.66.3) - Yoga - - React-CoreModules (0.63.4): - - FBReactNativeSpec (= 0.63.4) - - Folly (= 2020.01.13.00) - - RCTTypeSafety (= 0.63.4) - - React-Core/CoreModulesHeaders (= 0.63.4) - - React-jsi (= 0.63.4) - - React-RCTImage (= 0.63.4) - - ReactCommon/turbomodule/core (= 0.63.4) - - React-cxxreact (0.63.4): - - boost-for-react-native (= 1.63.0) + - React-CoreModules (0.66.3): + - FBReactNativeSpec (= 0.66.3) + - RCT-Folly (= 2021.06.28.00-v2) + - RCTTypeSafety (= 0.66.3) + - React-Core/CoreModulesHeaders (= 0.66.3) + - React-jsi (= 0.66.3) + - React-RCTImage (= 0.66.3) + - ReactCommon/turbomodule/core (= 0.66.3) + - React-cxxreact (0.66.3): + - boost (= 1.76.0) - DoubleConversion - - Folly (= 2020.01.13.00) - glog - - React-callinvoker (= 0.63.4) - - React-jsinspector (= 0.63.4) - - React-jsi (0.63.4): - - boost-for-react-native (= 1.63.0) + - RCT-Folly (= 2021.06.28.00-v2) + - React-callinvoker (= 0.66.3) + - React-jsi (= 0.66.3) + - React-jsinspector (= 0.66.3) + - React-logger (= 0.66.3) + - React-perflogger (= 0.66.3) + - React-runtimeexecutor (= 0.66.3) + - React-jsi (0.66.3): + - boost (= 1.76.0) - DoubleConversion - - Folly (= 2020.01.13.00) - glog - - React-jsi/Default (= 0.63.4) - - React-jsi/Default (0.63.4): - - boost-for-react-native (= 1.63.0) + - RCT-Folly (= 2021.06.28.00-v2) + - React-jsi/Default (= 0.66.3) + - React-jsi/Default (0.66.3): + - boost (= 1.76.0) - DoubleConversion - - Folly (= 2020.01.13.00) - glog - - React-jsiexecutor (0.63.4): + - RCT-Folly (= 2021.06.28.00-v2) + - React-jsiexecutor (0.66.3): - DoubleConversion - - Folly (= 2020.01.13.00) - glog - - React-cxxreact (= 0.63.4) - - React-jsi (= 0.63.4) - - React-jsinspector (0.63.4) + - RCT-Folly (= 2021.06.28.00-v2) + - React-cxxreact (= 0.66.3) + - React-jsi (= 0.66.3) + - React-perflogger (= 0.66.3) + - React-jsinspector (0.66.3) + - React-logger (0.66.3): + - glog - react-native-config (1.4.5): - react-native-config/App (= 1.4.5) - react-native-config/App (1.4.5): - React-Core - react-native-safe-area-context (3.3.2): - React-Core - - React-RCTActionSheet (0.63.4): - - React-Core/RCTActionSheetHeaders (= 0.63.4) - - React-RCTAnimation (0.63.4): - - FBReactNativeSpec (= 0.63.4) - - Folly (= 2020.01.13.00) - - RCTTypeSafety (= 0.63.4) - - React-Core/RCTAnimationHeaders (= 0.63.4) - - React-jsi (= 0.63.4) - - ReactCommon/turbomodule/core (= 0.63.4) - - React-RCTBlob (0.63.4): - - FBReactNativeSpec (= 0.63.4) - - Folly (= 2020.01.13.00) - - React-Core/RCTBlobHeaders (= 0.63.4) - - React-Core/RCTWebSocket (= 0.63.4) - - React-jsi (= 0.63.4) - - React-RCTNetwork (= 0.63.4) - - ReactCommon/turbomodule/core (= 0.63.4) - - React-RCTImage (0.63.4): - - FBReactNativeSpec (= 0.63.4) - - Folly (= 2020.01.13.00) - - RCTTypeSafety (= 0.63.4) - - React-Core/RCTImageHeaders (= 0.63.4) - - React-jsi (= 0.63.4) - - React-RCTNetwork (= 0.63.4) - - ReactCommon/turbomodule/core (= 0.63.4) - - React-RCTLinking (0.63.4): - - FBReactNativeSpec (= 0.63.4) - - React-Core/RCTLinkingHeaders (= 0.63.4) - - React-jsi (= 0.63.4) - - ReactCommon/turbomodule/core (= 0.63.4) - - React-RCTNetwork (0.63.4): - - FBReactNativeSpec (= 0.63.4) - - Folly (= 2020.01.13.00) - - RCTTypeSafety (= 0.63.4) - - React-Core/RCTNetworkHeaders (= 0.63.4) - - React-jsi (= 0.63.4) - - ReactCommon/turbomodule/core (= 0.63.4) - - React-RCTSettings (0.63.4): - - FBReactNativeSpec (= 0.63.4) - - Folly (= 2020.01.13.00) - - RCTTypeSafety (= 0.63.4) - - React-Core/RCTSettingsHeaders (= 0.63.4) - - React-jsi (= 0.63.4) - - ReactCommon/turbomodule/core (= 0.63.4) - - React-RCTText (0.63.4): - - React-Core/RCTTextHeaders (= 0.63.4) - - React-RCTVibration (0.63.4): - - FBReactNativeSpec (= 0.63.4) - - Folly (= 2020.01.13.00) - - React-Core/RCTVibrationHeaders (= 0.63.4) - - React-jsi (= 0.63.4) - - ReactCommon/turbomodule/core (= 0.63.4) - - ReactCommon/turbomodule/core (0.63.4): + - React-perflogger (0.66.3) + - React-RCTActionSheet (0.66.3): + - React-Core/RCTActionSheetHeaders (= 0.66.3) + - React-RCTAnimation (0.66.3): + - FBReactNativeSpec (= 0.66.3) + - RCT-Folly (= 2021.06.28.00-v2) + - RCTTypeSafety (= 0.66.3) + - React-Core/RCTAnimationHeaders (= 0.66.3) + - React-jsi (= 0.66.3) + - ReactCommon/turbomodule/core (= 0.66.3) + - React-RCTBlob (0.66.3): + - FBReactNativeSpec (= 0.66.3) + - RCT-Folly (= 2021.06.28.00-v2) + - React-Core/RCTBlobHeaders (= 0.66.3) + - React-Core/RCTWebSocket (= 0.66.3) + - React-jsi (= 0.66.3) + - React-RCTNetwork (= 0.66.3) + - ReactCommon/turbomodule/core (= 0.66.3) + - React-RCTImage (0.66.3): + - FBReactNativeSpec (= 0.66.3) + - RCT-Folly (= 2021.06.28.00-v2) + - RCTTypeSafety (= 0.66.3) + - React-Core/RCTImageHeaders (= 0.66.3) + - React-jsi (= 0.66.3) + - React-RCTNetwork (= 0.66.3) + - ReactCommon/turbomodule/core (= 0.66.3) + - React-RCTLinking (0.66.3): + - FBReactNativeSpec (= 0.66.3) + - React-Core/RCTLinkingHeaders (= 0.66.3) + - React-jsi (= 0.66.3) + - ReactCommon/turbomodule/core (= 0.66.3) + - React-RCTNetwork (0.66.3): + - FBReactNativeSpec (= 0.66.3) + - RCT-Folly (= 2021.06.28.00-v2) + - RCTTypeSafety (= 0.66.3) + - React-Core/RCTNetworkHeaders (= 0.66.3) + - React-jsi (= 0.66.3) + - ReactCommon/turbomodule/core (= 0.66.3) + - React-RCTSettings (0.66.3): + - FBReactNativeSpec (= 0.66.3) + - RCT-Folly (= 2021.06.28.00-v2) + - RCTTypeSafety (= 0.66.3) + - React-Core/RCTSettingsHeaders (= 0.66.3) + - React-jsi (= 0.66.3) + - ReactCommon/turbomodule/core (= 0.66.3) + - React-RCTText (0.66.3): + - React-Core/RCTTextHeaders (= 0.66.3) + - React-RCTVibration (0.66.3): + - FBReactNativeSpec (= 0.66.3) + - RCT-Folly (= 2021.06.28.00-v2) + - React-Core/RCTVibrationHeaders (= 0.66.3) + - React-jsi (= 0.66.3) + - ReactCommon/turbomodule/core (= 0.66.3) + - React-runtimeexecutor (0.66.3): + - React-jsi (= 0.66.3) + - ReactCommon/turbomodule/core (0.66.3): - DoubleConversion - - Folly (= 2020.01.13.00) - glog - - React-callinvoker (= 0.63.4) - - React-Core (= 0.63.4) - - React-cxxreact (= 0.63.4) - - React-jsi (= 0.63.4) + - RCT-Folly (= 2021.06.28.00-v2) + - React-callinvoker (= 0.66.3) + - React-Core (= 0.66.3) + - React-cxxreact (= 0.66.3) + - React-jsi (= 0.66.3) + - React-logger (= 0.66.3) + - React-perflogger (= 0.66.3) - RNCMaskedView (0.1.11): - React - RNCPicker (2.1.0): - React-Core - RNGestureHandler (1.10.3): - React-Core - - RNReanimated (2.2.2): + - RNReanimated (2.3.0-beta.2): - DoubleConversion - FBLazyVector - FBReactNativeSpec - - Folly - glog + - RCT-Folly - RCTRequired - RCTTypeSafety - React @@ -292,15 +321,16 @@ PODS: - stripe-terminal-react-native (0.1.0): - React-Core - StripeTerminal (~> 2.0) - - StripeTerminal (2.2.0) + - StripeTerminal (2.4.0) - Yoga (1.14.0) DEPENDENCIES: + - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`) - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) - - FBReactNativeSpec (from `../node_modules/react-native/Libraries/FBReactNativeSpec`) - - Folly (from `../node_modules/react-native/third-party-podspecs/Folly.podspec`) + - FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`) - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) + - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`) - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) - React (from `../node_modules/react-native/`) @@ -313,8 +343,10 @@ DEPENDENCIES: - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`) + - React-logger (from `../node_modules/react-native/ReactCommon/logger`) - react-native-config (from `../node_modules/react-native-config`) - react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`) + - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`) - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`) - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`) - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`) @@ -324,6 +356,7 @@ DEPENDENCIES: - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`) - React-RCTText (from `../node_modules/react-native/Libraries/Text`) - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`) + - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`) - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) - "RNCMaskedView (from `../node_modules/@react-native-community/masked-view`)" - "RNCPicker (from `../node_modules/@react-native-picker/picker`)" @@ -335,20 +368,22 @@ DEPENDENCIES: SPEC REPOS: trunk: - - boost-for-react-native + - fmt - StripeTerminal EXTERNAL SOURCES: + boost: + :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec" DoubleConversion: :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" FBLazyVector: :path: "../node_modules/react-native/Libraries/FBLazyVector" FBReactNativeSpec: - :path: "../node_modules/react-native/Libraries/FBReactNativeSpec" - Folly: - :podspec: "../node_modules/react-native/third-party-podspecs/Folly.podspec" + :path: "../node_modules/react-native/React/FBReactNativeSpec" glog: :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" + RCT-Folly: + :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" RCTRequired: :path: "../node_modules/react-native/Libraries/RCTRequired" RCTTypeSafety: @@ -369,10 +404,14 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon/jsiexecutor" React-jsinspector: :path: "../node_modules/react-native/ReactCommon/jsinspector" + React-logger: + :path: "../node_modules/react-native/ReactCommon/logger" react-native-config: :path: "../node_modules/react-native-config" react-native-safe-area-context: :path: "../node_modules/react-native-safe-area-context" + React-perflogger: + :path: "../node_modules/react-native/ReactCommon/reactperflogger" React-RCTActionSheet: :path: "../node_modules/react-native/Libraries/ActionSheetIOS" React-RCTAnimation: @@ -391,6 +430,8 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/Libraries/Text" React-RCTVibration: :path: "../node_modules/react-native/Libraries/Vibration" + React-runtimeexecutor: + :path: "../node_modules/react-native/ReactCommon/runtimeexecutor" ReactCommon: :path: "../node_modules/react-native/ReactCommon" RNCMaskedView: @@ -409,43 +450,47 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon/yoga" SPEC CHECKSUMS: - boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c - DoubleConversion: cde416483dac037923206447da6e1454df403714 - FBLazyVector: 3bb422f41b18121b71783a905c10e58606f7dc3e - FBReactNativeSpec: f2c97f2529dd79c083355182cc158c9f98f4bd6e - Folly: b73c3869541e86821df3c387eb0af5f65addfab4 - glog: 40a13f7840415b9a77023fbcae0f1e6f43192af3 - RCTRequired: 082f10cd3f905d6c124597fd1c14f6f2655ff65e - RCTTypeSafety: 8c9c544ecbf20337d069e4ae7fd9a377aadf504b - React: b0a957a2c44da4113b0c4c9853d8387f8e64e615 - React-callinvoker: c3f44dd3cb195b6aa46621fff95ded79d59043fe - React-Core: d3b2a1ac9a2c13c3bcde712d9281fc1c8a5b315b - React-CoreModules: 0581ff36cb797da0943d424f69e7098e43e9be60 - React-cxxreact: c1480d4fda5720086c90df537ee7d285d4c57ac3 - React-jsi: a0418934cf48f25b485631deb27c64dc40fb4c31 - React-jsiexecutor: 93bd528844ad21dc07aab1c67cb10abae6df6949 - React-jsinspector: 58aef7155bc9a9683f5b60b35eccea8722a4f53a + boost: a7c83b31436843459a1961bfd74b96033dc77234 + DoubleConversion: 831926d9b8bf8166fd87886c4abab286c2422662 + FBLazyVector: de148e8310b8b878db304ceea2fec13f2c02e3a0 + FBReactNativeSpec: 6192956c9e346013d5f1809ba049af720b11c6a4 + fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 + glog: 5337263514dd6f09803962437687240c5dc39aa4 + RCT-Folly: a21c126816d8025b547704b777a2ba552f3d9fa9 + RCTRequired: 59d2b744d8c2bf2d9bc7032a9f654809adcf7d50 + RCTTypeSafety: d0aaf7ccae5c70a4aaa3a5c3e9e0db97efae760e + React: fbe655dd1d12c052299b61abdc576720098d80fc + React-callinvoker: a535746608d9bc8b1dea7095ed4d8d3d7aae9a05 + React-Core: 008d2638c4f80b189c8e170ff2d241027ec517fd + React-CoreModules: 91c9a03f4e1b74494c087d9c9a29e89a3145c228 + React-cxxreact: 9c462fb6d59f865855e2dee2097c7d87b3d2de49 + React-jsi: 4de8b8d70ba4ed841eb9b772bdb719f176387e21 + React-jsiexecutor: 433a691aee158533a6a6ee9c86cb4a1684fa2853 + React-jsinspector: d9c8eb0b53f0da206fed56612b289fec84991157 + React-logger: e522e76fa3e9ec3e7d7115b49485cc065cf4ae06 react-native-config: 6502b1879f97ed5ac570a029961fc35ea606cd14 react-native-safe-area-context: 584dc04881deb49474363f3be89e4ca0e854c057 - React-RCTActionSheet: 89a0ca9f4a06c1f93c26067af074ccdce0f40336 - React-RCTAnimation: 1bde3ecc0c104c55df246eda516e0deb03c4e49b - React-RCTBlob: a97d378b527740cc667e03ebfa183a75231ab0f0 - React-RCTImage: c1b1f2d3f43a4a528c8946d6092384b5c880d2f0 - React-RCTLinking: 35ae4ab9dc0410d1fcbdce4d7623194a27214fb2 - React-RCTNetwork: 29ec2696f8d8cfff7331fac83d3e893c95ef43ae - React-RCTSettings: 60f0691bba2074ef394f95d4c2265ec284e0a46a - React-RCTText: 5c51df3f08cb9dedc6e790161195d12bac06101c - React-RCTVibration: ae4f914cfe8de7d4de95ae1ea6cc8f6315d73d9d - ReactCommon: 73d79c7039f473b76db6ff7c6b159c478acbbb3b + React-perflogger: 73732888d37d4f5065198727b167846743232882 + React-RCTActionSheet: 96c6d774fa89b1f7c59fc460adc3245ba2d7fd79 + React-RCTAnimation: 8940cfd3a8640bd6f6372150dbdb83a79bcbae6c + React-RCTBlob: e80de5fdf952a4f226a00fc54f3db526809f92f7 + React-RCTImage: f990d6b272c7e89ff864caf0bccfb620ab3ca5d0 + React-RCTLinking: 2280ed0d5ffb78954b484b90228d597b5f941c5f + React-RCTNetwork: 1359fa853c216616e711b810dcb8682a6a8e7564 + React-RCTSettings: 84958860aaa3639f0249e751ea7702c62eb67188 + React-RCTText: 196cf06b8cb6229d8c6dd9fc9057bdf97db5d3fb + React-RCTVibration: 50cfe7049167cfc7e83ac5542c6fff0c76791a9b + React-runtimeexecutor: bbbdb3d8fcf327c6e2249ee71b6ef1764b7dc266 + ReactCommon: 9bac022ab71596f2b0fde1268272543184c63971 RNCMaskedView: 0e1bc4bfa8365eba5fbbb71e07fbdc0555249489 RNCPicker: f7a40b21b915b7a187624d52f52b7bc2f73ea413 RNGestureHandler: a479ebd5ed4221a810967000735517df0d2db211 - RNReanimated: 6ec2460b9c6c8f3b1403bd0eaa12d359a98650e3 + RNReanimated: 0a220d11e97e5de1c552e943a9a3f89b06c2cbf2 RNScreens: 6e1ea5787989f92b0671049b808aef64fa1ef98c stripe-terminal-react-native: eac43a8062936d5e796e6a1132d196c83600b225 - StripeTerminal: d06c83ebcc000de142df04ad16713b08bdc0b7b9 - Yoga: 4bd86afe9883422a7c4028c00e34790f560923d6 + StripeTerminal: da566fa62a4e7bbf0510dd27614f3087293cd79e + Yoga: 32a18c0e845e185f4a2a66ec76e1fd1f958f22fa -PODFILE CHECKSUM: e47f8916f0899f6f9f5e982629e4d66e5db7fcea +PODFILE CHECKSUM: 4f0873ca93c8515b2736ed78b61a035f42aa658c COCOAPODS: 1.10.1 diff --git a/example/ios/StripeTerminalReactNativeExample.xcodeproj/project.pbxproj b/example/ios/StripeTerminalReactNativeExample.xcodeproj/project.pbxproj index 2d54ac8e..a6bf501b 100644 --- a/example/ios/StripeTerminalReactNativeExample.xcodeproj/project.pbxproj +++ b/example/ios/StripeTerminalReactNativeExample.xcodeproj/project.pbxproj @@ -748,6 +748,7 @@ COPY_PHASE_STRIP = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 "; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -804,6 +805,7 @@ COPY_PHASE_STRIP = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 "; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; diff --git a/example/ios/StripeTerminalReactNativeExample.xcodeproj/xcshareddata/xcschemes/StripeTerminalReactNativeExample.xcscheme b/example/ios/StripeTerminalReactNativeExample.xcodeproj/xcshareddata/xcschemes/StripeTerminalReactNativeExample.xcscheme index 240c69d1..730d72fc 100644 --- a/example/ios/StripeTerminalReactNativeExample.xcodeproj/xcshareddata/xcschemes/StripeTerminalReactNativeExample.xcscheme +++ b/example/ios/StripeTerminalReactNativeExample.xcodeproj/xcshareddata/xcschemes/StripeTerminalReactNativeExample.xcscheme @@ -1,6 +1,6 @@ NSAppTransportSecurity - NSAllowsArbitraryLoads - NSExceptionDomains localhost diff --git a/example/metro.config.js b/example/metro.config.js index d1f468ab..41a4f1e9 100644 --- a/example/metro.config.js +++ b/example/metro.config.js @@ -1,5 +1,5 @@ const path = require('path'); -const blacklist = require('metro-config/src/defaults/blacklist'); +const exclusionList = require('metro-config/src/defaults/exclusionList'); const escape = require('escape-string-regexp'); const pak = require('../package.json'); @@ -16,7 +16,7 @@ module.exports = { // We need to make sure that only one version is loaded for peerDependencies // So we blacklist them at the root, and alias them to the versions in example's node_modules resolver: { - blacklistRE: blacklist( + blacklistRE: exclusionList( modules.map( (m) => new RegExp(`^${escape(path.join(root, 'node_modules', m))}\\/.*$`) diff --git a/example/package.json b/example/package.json index afb02ef1..d7d52e52 100644 --- a/example/package.json +++ b/example/package.json @@ -17,11 +17,11 @@ "@react-navigation/stack": "^5.x", "@types/jest": "^27.0.2", "jest": "^27.3.1", - "react": "16.13.1", - "react-native": "0.63.4", + "react": "17.0.2", + "react-native": "0.66.3", "react-native-config": "^1.4.5", "react-native-gesture-handler": "^1.10.3", - "react-native-reanimated": "^2.2.2", + "react-native-reanimated": "2.3.0-beta.2", "react-native-safe-area-context": "^3.3.2", "react-native-screens": "^3.8.0" }, @@ -33,7 +33,7 @@ "babel-plugin-module-resolver": "^4.0.0", "detox": "^18.7.1", "express": "^4.17.1", - "metro-react-native-babel-preset": "^0.64.0", + "metro-react-native-babel-preset": "^0.66.2", "stripe": "^8.181.0" } } diff --git a/example/yarn.lock b/example/yarn.lock index 1e5aaee2..c71ba5ce 100644 --- a/example/yarn.lock +++ b/example/yarn.lock @@ -42,28 +42,7 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.4.tgz#081d6bbc336ec5c2435c6346b2ae1fb98b5ac68e" integrity sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q== -"@babel/core@^7.0.0", "@babel/core@^7.12.10": - version "7.15.8" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.8.tgz#195b9f2bffe995d2c6c159e72fe525b4114e8c10" - integrity sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og== - dependencies: - "@babel/code-frame" "^7.15.8" - "@babel/generator" "^7.15.8" - "@babel/helper-compilation-targets" "^7.15.4" - "@babel/helper-module-transforms" "^7.15.8" - "@babel/helpers" "^7.15.4" - "@babel/parser" "^7.15.8" - "@babel/template" "^7.15.4" - "@babel/traverse" "^7.15.4" - "@babel/types" "^7.15.6" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.1.2" - semver "^6.3.0" - source-map "^0.5.0" - -"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.7.2", "@babel/core@^7.7.5": +"@babel/core@^7.1.0", "@babel/core@^7.1.6", "@babel/core@^7.12.3", "@babel/core@^7.14.0", "@babel/core@^7.7.2", "@babel/core@^7.7.5": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.0.tgz#c4ff44046f5fe310525cc9eb4ef5147f0c5374d4" integrity sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ== @@ -84,16 +63,28 @@ semver "^6.3.0" source-map "^0.5.0" -"@babel/generator@^7.15.4", "@babel/generator@^7.15.8", "@babel/generator@^7.5.0": +"@babel/core@^7.12.10": version "7.15.8" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.8.tgz#fa56be6b596952ceb231048cf84ee499a19c0cd1" - integrity sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g== + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.8.tgz#195b9f2bffe995d2c6c159e72fe525b4114e8c10" + integrity sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og== dependencies: + "@babel/code-frame" "^7.15.8" + "@babel/generator" "^7.15.8" + "@babel/helper-compilation-targets" "^7.15.4" + "@babel/helper-module-transforms" "^7.15.8" + "@babel/helpers" "^7.15.4" + "@babel/parser" "^7.15.8" + "@babel/template" "^7.15.4" + "@babel/traverse" "^7.15.4" "@babel/types" "^7.15.6" - jsesc "^2.5.1" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + semver "^6.3.0" source-map "^0.5.0" -"@babel/generator@^7.16.0", "@babel/generator@^7.7.2": +"@babel/generator@^7.14.0", "@babel/generator@^7.16.0", "@babel/generator@^7.7.2": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.0.tgz#d40f3d1d5075e62d3500bccb67f3daa8a95265b2" integrity sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew== @@ -102,6 +93,15 @@ jsesc "^2.5.1" source-map "^0.5.0" +"@babel/generator@^7.15.4", "@babel/generator@^7.15.8": + version "7.15.8" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.8.tgz#fa56be6b596952ceb231048cf84ee499a19c0cd1" + integrity sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g== + dependencies: + "@babel/types" "^7.15.6" + jsesc "^2.5.1" + source-map "^0.5.0" + "@babel/helper-annotate-as-pure@^7.14.5", "@babel/helper-annotate-as-pure@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz#3d0e43b00c5e49fdb6c57e421601a7a658d5f835" @@ -109,6 +109,13 @@ dependencies: "@babel/types" "^7.15.4" +"@babel/helper-annotate-as-pure@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.0.tgz#9a1f0ebcda53d9a2d00108c4ceace6a5d5f1f08d" + integrity sha512-ItmYF9vR4zA8cByDocY05o0LGUkp1zhbTQOH1NFyl5xXEqlTJQCEJjieriw+aFpxo16swMxUnUiKS7a/r4vtHg== + dependencies: + "@babel/types" "^7.16.0" + "@babel/helper-builder-binary-assignment-operator-visitor@^7.14.5": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.15.4.tgz#21ad815f609b84ee0e3058676c33cf6d1670525f" @@ -149,6 +156,18 @@ "@babel/helper-replace-supers" "^7.15.4" "@babel/helper-split-export-declaration" "^7.15.4" +"@babel/helper-create-class-features-plugin@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.0.tgz#090d4d166b342a03a9fec37ef4fd5aeb9c7c6a4b" + integrity sha512-XLwWvqEaq19zFlF5PTgOod4bUA+XbkR4WLQBct1bkzmxJGB0ZEJaoKF4c8cgH9oBtCDuYJ8BP5NB9uFiEgO5QA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.0" + "@babel/helper-function-name" "^7.16.0" + "@babel/helper-member-expression-to-functions" "^7.16.0" + "@babel/helper-optimise-call-expression" "^7.16.0" + "@babel/helper-replace-supers" "^7.16.0" + "@babel/helper-split-export-declaration" "^7.16.0" + "@babel/helper-create-regexp-features-plugin@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz#c7d5ac5e9cf621c26057722fb7a8a4c5889358c4" @@ -299,6 +318,15 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== +"@babel/helper-remap-async-to-generator@^7.16.0": + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.4.tgz#5d7902f61349ff6b963e07f06a389ce139fbfe6e" + integrity sha512-vGERmmhR+s7eH5Y/cp8PCVzj4XEjerq8jooMfxFdA5xVtAk9Sh4AQsrWgiErUEBjtGrBtOFKDUcWQFW4/dFwMA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.0" + "@babel/helper-wrap-function" "^7.16.0" + "@babel/types" "^7.16.0" + "@babel/helper-replace-supers@^7.14.5", "@babel/helper-replace-supers@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz#52a8ab26ba918c7f6dee28628b07071ac7b7347a" @@ -340,6 +368,13 @@ dependencies: "@babel/types" "^7.15.4" +"@babel/helper-skip-transparent-expression-wrappers@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09" + integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw== + dependencies: + "@babel/types" "^7.16.0" + "@babel/helper-split-export-declaration@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz#aecab92dcdbef6a10aa3b62ab204b085f776e257" @@ -364,6 +399,16 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== +"@babel/helper-wrap-function@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.0.tgz#b3cf318afce774dfe75b86767cd6d68f3482e57c" + integrity sha512-VVMGzYY3vkWgCJML+qVLvGIam902mJW0FvT7Avj1zEe0Gn7D93aWdLblYARTxEw+6DhZmtzhBM2zv0ekE5zg1g== + dependencies: + "@babel/helper-function-name" "^7.16.0" + "@babel/template" "^7.16.0" + "@babel/traverse" "^7.16.0" + "@babel/types" "^7.16.0" + "@babel/helpers@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.15.4.tgz#5f40f02050a3027121a3cf48d497c05c555eaf43" @@ -400,22 +445,15 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.0.0", "@babel/parser@^7.15.4", "@babel/parser@^7.15.8": - version "7.15.8" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.8.tgz#7bacdcbe71bdc3ff936d510c15dcea7cf0b99016" - integrity sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA== - -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.0", "@babel/parser@^7.16.3", "@babel/parser@^7.7.2": +"@babel/parser@^7.1.0", "@babel/parser@^7.1.6", "@babel/parser@^7.14.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.0", "@babel/parser@^7.16.3", "@babel/parser@^7.7.2": version "7.16.4" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.4.tgz#d5f92f57cf2c74ffe9b37981c0e72fee7311372e" integrity sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng== -"@babel/plugin-external-helpers@^7.0.0": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-external-helpers/-/plugin-external-helpers-7.14.5.tgz#920baa1569a8df5d5710abc342c7b1ac8968ed76" - integrity sha512-q/B/hLX+nDGk73Xn529d7Ar4ih17J8pNBbsXafq8oXij0XfFEA/bks+u+6q5q04zO5o/qivjzui6BqzPfYShEg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" +"@babel/parser@^7.15.4", "@babel/parser@^7.15.8": + version "7.15.8" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.8.tgz#7bacdcbe71bdc3ff936d510c15dcea7cf0b99016" + integrity sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA== "@babel/plugin-proposal-class-properties@^7.0.0": version "7.14.5" @@ -425,6 +463,14 @@ "@babel/helper-create-class-features-plugin" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-proposal-class-properties@^7.1.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.0.tgz#c029618267ddebc7280fa286e0f8ca2a278a2d1a" + integrity sha512-mCF3HcuZSY9Fcx56Lbn+CGdT44ioBMMvjNVldpKtj8tpniETdLjnxdHI1+sDWXIM1nNt+EanJOZ3IG9lzVjs7A== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-proposal-export-default-from@^7.0.0": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.14.5.tgz#8931a6560632c650f92a8e5948f6e73019d6d321" @@ -441,6 +487,14 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" +"@babel/plugin-proposal-nullish-coalescing-operator@^7.1.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.0.tgz#44e1cce08fe2427482cf446a91bb451528ed0596" + integrity sha512-3bnHA8CAFm7cG93v8loghDYyQ8r97Qydf63BeYiGgYbjKKB/XP53W15wfRC7dvKfoiJ34f6Rbyyx2btExc8XsQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-proposal-object-rest-spread@^7.0.0": version "7.15.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.15.6.tgz#ef68050c8703d07b25af402cb96cf7f34a68ed11" @@ -469,6 +523,15 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" "@babel/plugin-syntax-optional-chaining" "^7.8.3" +"@babel/plugin-proposal-optional-chaining@^7.1.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.0.tgz#56dbc3970825683608e9efb55ea82c2a2d6c8dc0" + integrity sha512-Y4rFpkZODfHrVo70Uaj6cC1JJOt3Pp0MdWSwIKtb8z1/lsjl9AmnB7ErRFV+QNGIfcY1Eruc2UMx5KaRnXjMyg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" @@ -511,6 +574,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-syntax-flow@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.0.tgz#07427021d093ed77019408221beaf0272bbcfaec" + integrity sha512-dH91yCo0RyqfzWgoM5Ji9ir8fQ+uFbt9KHM3d2x4jZOuHS6wNA+CRmRUP/BWCsHG2bjc7A2Way6AvH1eQk0wig== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-import-meta@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" @@ -588,7 +658,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.7.2": +"@babel/plugin-syntax-typescript@^7.16.0", "@babel/plugin-syntax-typescript@^7.7.2": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.0.tgz#2feeb13d9334cc582ea9111d3506f773174179bb" integrity sha512-Xv6mEXqVdaqCBfJFyeab0fH2DnUoMsDmhamxsSi4j8nLd4Vtw213WMJr55xxqipC/YVWyPY3K0blJncPYji+dQ== @@ -602,6 +672,15 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-async-to-generator@^7.0.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.0.tgz#df12637f9630ddfa0ef9d7a11bc414d629d38604" + integrity sha512-PbIr7G9kR8tdH6g8Wouir5uVjklETk91GMVSUq+VaOgiinbCkBP6Q7NN/suM/QutZkMJMvcyAriogcYAdhg8Gw== + dependencies: + "@babel/helper-module-imports" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-remap-async-to-generator" "^7.16.0" + "@babel/plugin-transform-block-scoped-functions@^7.0.0": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz#e48641d999d4bc157a67ef336aeb54bc44fd3ad4" @@ -659,6 +738,14 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-flow" "^7.14.5" +"@babel/plugin-transform-flow-strip-types@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.0.tgz#edd968dc2041c1b69e451a262e948d6654a79dc2" + integrity sha512-vs/F5roOaO/+WxKfp9PkvLsAyj0G+Q0zbFimHm9X2KDgabN2XmNFoAafmeGEYspUlIF9+MvVmyek9UyHiqeG/w== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-flow" "^7.16.0" + "@babel/plugin-transform-for-of@^7.0.0": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.15.4.tgz#25c62cce2718cfb29715f416e75d5263fb36a8c2" @@ -698,6 +785,16 @@ "@babel/helper-simple-access" "^7.15.4" babel-plugin-dynamic-import-node "^2.3.3" +"@babel/plugin-transform-modules-commonjs@^7.1.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.0.tgz#add58e638c8ddc4875bd9a9ecb5c594613f6c922" + integrity sha512-Dzi+NWqyEotgzk/sb7kgQPJQf7AJkQBWsVp1N6JWc1lBVo0vkElUnGdr1PzUBmfsCCN5OOFya3RtpeHk15oLKQ== + dependencies: + "@babel/helper-module-transforms" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-simple-access" "^7.16.0" + babel-plugin-dynamic-import-node "^2.3.3" + "@babel/plugin-transform-object-assign@^7.0.0", "@babel/plugin-transform-object-assign@^7.10.4": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.14.5.tgz#62537d54b6d85de04f4df48bfdba2eebff17b760" @@ -807,6 +904,15 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-typescript@^7.16.0": + version "7.16.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.1.tgz#cc0670b2822b0338355bc1b3d2246a42b8166409" + integrity sha512-NO4XoryBng06jjw/qWEU2LhcLJr1tWkhpMam/H4eas/CDKMX/b2/Ylb6EI256Y7+FVPCawwSM1rrJNOpDiz+Lg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-typescript" "^7.16.0" + "@babel/plugin-transform-typescript@^7.5.0": version "7.15.8" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.15.8.tgz#ff0e6a47de9b2d58652123ab5a879b2ff20665d8" @@ -824,6 +930,24 @@ "@babel/helper-create-regexp-features-plugin" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" +"@babel/preset-flow@^7.0.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.16.0.tgz#9f1f6e72714d79460d48058cb5658fc87da7150b" + integrity sha512-e5NE1EoPMpoHFkyFkMSj2h9tu7OolARcUHki8mnBv4NiFK9so+UrhbvT9mV99tMJOUEx8BOj67T6dXvGcTeYeQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + "@babel/plugin-transform-flow-strip-types" "^7.16.0" + +"@babel/preset-typescript@^7.1.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.16.0.tgz#b0b4f105b855fb3d631ec036cdc9d1ffd1fa5eac" + integrity sha512-txegdrZYgO9DlPbv+9QOVpMnKbOtezsLHWsnsRF4AjbSIsVaujrq1qg8HK0mxQpWv0jnejt0yEoW1uWpvbrDTg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + "@babel/plugin-transform-typescript" "^7.16.0" + "@babel/register@^7.0.0": version "7.15.3" resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.15.3.tgz#6b40a549e06ec06c885b2ec42c3dd711f55fe752" @@ -835,7 +959,7 @@ pirates "^4.0.0" source-map-support "^0.5.16" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.8.4": +"@babel/runtime@^7.12.5", "@babel/runtime@^7.8.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.4.tgz#fd17d16bfdf878e6dd02d19753a39fa8a8d9c84a" integrity sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw== @@ -860,22 +984,7 @@ "@babel/parser" "^7.16.0" "@babel/types" "^7.16.0" -"@babel/traverse@^7.0.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.15.4": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.4.tgz#ff8510367a144bfbff552d9e18e28f3e2889c22d" - integrity sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA== - dependencies: - "@babel/code-frame" "^7.14.5" - "@babel/generator" "^7.15.4" - "@babel/helper-function-name" "^7.15.4" - "@babel/helper-hoist-variables" "^7.15.4" - "@babel/helper-split-export-declaration" "^7.15.4" - "@babel/parser" "^7.15.4" - "@babel/types" "^7.15.4" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/traverse@^7.1.0", "@babel/traverse@^7.16.0", "@babel/traverse@^7.16.3", "@babel/traverse@^7.7.2": +"@babel/traverse@^7.1.0", "@babel/traverse@^7.14.0", "@babel/traverse@^7.16.0", "@babel/traverse@^7.16.3", "@babel/traverse@^7.7.2": version "7.16.3" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.3.tgz#f63e8a938cc1b780f66d9ed3c54f532ca2d14787" integrity sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag== @@ -890,6 +999,21 @@ debug "^4.1.0" globals "^11.1.0" +"@babel/traverse@^7.13.0", "@babel/traverse@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.4.tgz#ff8510367a144bfbff552d9e18e28f3e2889c22d" + integrity sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/generator" "^7.15.4" + "@babel/helper-function-name" "^7.15.4" + "@babel/helper-hoist-variables" "^7.15.4" + "@babel/helper-split-export-declaration" "^7.15.4" + "@babel/parser" "^7.15.4" + "@babel/types" "^7.15.4" + debug "^4.1.0" + globals "^11.1.0" + "@babel/types@^7.0.0", "@babel/types@^7.14.9", "@babel/types@^7.15.4", "@babel/types@^7.15.6": version "7.15.6" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.6.tgz#99abdc48218b2881c058dd0a7ab05b99c9be758f" @@ -926,37 +1050,17 @@ dependencies: "@types/hammerjs" "^2.0.36" -"@hapi/address@2.x.x": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" - integrity sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ== - -"@hapi/bourne@1.x.x": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a" - integrity sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA== - -"@hapi/hoek@8.x.x", "@hapi/hoek@^8.3.0": - version "8.5.1" - resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.5.1.tgz#fde96064ca446dec8c55a8c2f130957b070c6e06" - integrity sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow== - -"@hapi/joi@^15.0.3": - version "15.1.1" - resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-15.1.1.tgz#c675b8a71296f02833f8d6d243b34c57b8ce19d7" - integrity sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ== - dependencies: - "@hapi/address" "2.x.x" - "@hapi/bourne" "1.x.x" - "@hapi/hoek" "8.x.x" - "@hapi/topo" "3.x.x" +"@hapi/hoek@^9.0.0": + version "9.2.1" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.2.1.tgz#9551142a1980503752536b5050fd99f4a7f13b17" + integrity sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw== -"@hapi/topo@3.x.x": - version "3.1.6" - resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.6.tgz#68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29" - integrity sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ== +"@hapi/topo@^5.0.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012" + integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== dependencies: - "@hapi/hoek" "^8.3.0" + "@hapi/hoek" "^9.0.0" "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" @@ -974,15 +1078,6 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.9.0.tgz#79b1bc06fb74a8cfb01cbdedf945584b1b9707f0" - integrity sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ== - dependencies: - "@jest/source-map" "^24.9.0" - chalk "^2.0.1" - slash "^2.0.0" - "@jest/console@^27.3.1": version "27.3.1" resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.3.1.tgz#e8ea3a475d3f8162f23d69efbfaa9cbe486bee93" @@ -1029,6 +1124,13 @@ slash "^3.0.0" strip-ansi "^6.0.0" +"@jest/create-cache-key-function@^27.0.1": + version "27.4.2" + resolved "https://registry.yarnpkg.com/@jest/create-cache-key-function/-/create-cache-key-function-27.4.2.tgz#09b585f9dbafec0f56cfb0e4d4edfe2bec0e0768" + integrity sha512-aSSCAJwUNX4R1hJQoyimsND5l+2EsFgzlepS8NuOJJHjXij/UdxYFngac44tmv9IYdI+kglAyORg0plt4/aFMQ== + dependencies: + "@jest/types" "^27.4.2" + "@jest/environment@^27.3.1": version "27.3.1" resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.3.1.tgz#2182defbce8d385fd51c5e7c7050f510bd4c86b1" @@ -1039,15 +1141,6 @@ "@types/node" "*" jest-mock "^27.3.0" -"@jest/fake-timers@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.9.0.tgz#ba3e6bf0eecd09a636049896434d306636540c93" - integrity sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A== - dependencies: - "@jest/types" "^24.9.0" - jest-message-util "^24.9.0" - jest-mock "^24.9.0" - "@jest/fake-timers@^27.3.1": version "27.3.1" resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.3.1.tgz#1fad860ee9b13034762cdb94266e95609dfce641" @@ -1100,15 +1193,6 @@ terminal-link "^2.0.0" v8-to-istanbul "^8.1.0" -"@jest/source-map@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.9.0.tgz#0e263a94430be4b41da683ccc1e6bffe2a191714" - integrity sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg== - dependencies: - callsites "^3.0.0" - graceful-fs "^4.1.15" - source-map "^0.6.0" - "@jest/source-map@^27.0.6": version "27.0.6" resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.0.6.tgz#be9e9b93565d49b0548b86e232092491fb60551f" @@ -1118,15 +1202,6 @@ graceful-fs "^4.2.4" source-map "^0.6.0" -"@jest/test-result@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.9.0.tgz#11796e8aa9dbf88ea025757b3152595ad06ba0ca" - integrity sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA== - dependencies: - "@jest/console" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/istanbul-lib-coverage" "^2.0.0" - "@jest/test-result@^27.3.1": version "27.3.1" resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.3.1.tgz#89adee8b771877c69b3b8d59f52f29dccc300194" @@ -1168,24 +1243,16 @@ source-map "^0.6.1" write-file-atomic "^3.0.0" -"@jest/types@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59" - integrity sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw== +"@jest/types@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" + integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== dependencies: "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^1.1.1" - "@types/yargs" "^13.0.0" - -"@jest/types@^25.5.0": - version "25.5.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.5.0.tgz#4d6a4793f7b9599fc3680877b856a97dbccf2a9d" - integrity sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^1.1.1" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" "@types/yargs" "^15.0.0" - chalk "^3.0.0" + chalk "^4.0.0" "@jest/types@^27.2.5": version "27.2.5" @@ -1198,36 +1265,47 @@ "@types/yargs" "^16.0.0" chalk "^4.0.0" +"@jest/types@^27.4.2": + version "27.4.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.4.2.tgz#96536ebd34da6392c2b7c7737d693885b5dd44a5" + integrity sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^16.0.0" + chalk "^4.0.0" + "@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3": version "2.1.8-no-fsevents.3" resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz#323d72dd25103d0c4fbdce89dadf574a787b1f9b" integrity sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ== -"@react-native-community/cli-debugger-ui@^4.13.1": - version "4.13.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-4.13.1.tgz#07de6d4dab80ec49231de1f1fbf658b4ad39b32c" - integrity sha512-UFnkg5RTq3s2X15fSkrWY9+5BKOFjihNSnJjTV2H5PtTUFbd55qnxxPw8CxSfK0bXb1IrSvCESprk2LEpqr5cg== +"@react-native-community/cli-debugger-ui@^6.0.0-rc.0": + version "6.0.0-rc.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-6.0.0-rc.0.tgz#774378626e4b70f5e1e2e54910472dcbaffa1536" + integrity sha512-achYcPPoWa9D02C5tn6TBzjeY443wQTyx37urptc75JpZ7gR5YHsDyIEEWa3DDYp1va9zx/iGg+uZ/hWw07GAw== dependencies: serve-static "^1.13.1" -"@react-native-community/cli-hermes@^4.13.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-4.13.0.tgz#6243ed9c709dad5e523f1ccd7d21066b32f2899d" - integrity sha512-oG+w0Uby6rSGsUkJGLvMQctZ5eVRLLfhf84lLyz942OEDxFRa9U19YJxOe9FmgCKtotbYiM3P/XhK+SVCuerPQ== +"@react-native-community/cli-hermes@^6.3.0": + version "6.3.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-6.3.0.tgz#92b2f07d08626a60f6893c3e3d57c1538c8fb5a7" + integrity sha512-Uhbm9bubyZLZ12vFCIfWbE/Qi3SBTbYIN/TC08EudTLhv/KbPomCQnmFsnJ7AXQFuOZJs73mBxoEAYSbRbwyVA== dependencies: - "@react-native-community/cli-platform-android" "^4.13.0" - "@react-native-community/cli-tools" "^4.13.0" - chalk "^3.0.0" + "@react-native-community/cli-platform-android" "^6.3.0" + "@react-native-community/cli-tools" "^6.2.0" + chalk "^4.1.2" hermes-profile-transformer "^0.0.6" ip "^1.1.5" -"@react-native-community/cli-platform-android@^4.10.0", "@react-native-community/cli-platform-android@^4.13.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-4.13.0.tgz#922681ec82ee1aadd993598b814df1152118be02" - integrity sha512-3i8sX8GklEytUZwPnojuoFbCjIRzMugCdzDIdZ9UNmi/OhD4/8mLGO0dgXfT4sMWjZwu3qjy45sFfk2zOAgHbA== +"@react-native-community/cli-platform-android@^6.0.0", "@react-native-community/cli-platform-android@^6.3.0": + version "6.3.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-6.3.0.tgz#ab7d156bd69a392493323eeaba839a874c0e201f" + integrity sha512-d5ufyYcvrZoHznYm5bjBXaiHIJv552t5gYtQpnUsxBhHSQ8QlaNmlLUyeSPRDfOw4ND9b0tPHqs4ufwx6vp/fQ== dependencies: - "@react-native-community/cli-tools" "^4.13.0" - chalk "^3.0.0" + "@react-native-community/cli-tools" "^6.2.0" + chalk "^4.1.2" execa "^1.0.0" fs-extra "^8.1.0" glob "^7.1.3" @@ -1237,63 +1315,85 @@ slash "^3.0.0" xmldoc "^1.1.2" -"@react-native-community/cli-platform-ios@^4.10.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-4.13.0.tgz#a738915c68cac86df54e578b59a1311ea62b1aef" - integrity sha512-6THlTu8zp62efkzimfGr3VIuQJ2514o+vScZERJCV1xgEi8XtV7mb/ZKt9o6Y9WGxKKkc0E0b/aVAtgy+L27CA== +"@react-native-community/cli-platform-ios@^6.0.0": + version "6.2.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-6.2.0.tgz#ceaa23995511a8e400b506632ac7e6a66a17ec2a" + integrity sha512-k15MhExxLiLDDZOeuPgvTxbp0CsoLQQpk2Du0HjZDePqqWcKJylQqMZru1o8HuQHPcEr+b71HIs5V+lKyFYpfg== dependencies: - "@react-native-community/cli-tools" "^4.13.0" - chalk "^3.0.0" + "@react-native-community/cli-tools" "^6.2.0" + chalk "^4.1.2" glob "^7.1.3" js-yaml "^3.13.1" lodash "^4.17.15" - plist "^3.0.1" + ora "^3.4.0" + plist "^3.0.2" xcode "^2.0.0" -"@react-native-community/cli-server-api@^4.13.1": - version "4.13.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-4.13.1.tgz#bee7ee9702afce848e9d6ca3dcd5669b99b125bd" - integrity sha512-vQzsFKD9CjHthA2ehTQX8c7uIzlI9A7ejaIow1I9RlEnLraPH2QqVDmzIdbdh5Od47UPbRzamCgAP8Bnqv3qwQ== +"@react-native-community/cli-plugin-metro@^6.2.0": + version "6.2.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-6.2.0.tgz#143f459f1b6d595011e787ecfbe87621195de6ae" + integrity sha512-JfmzuFNzOr+dFTUQJo1rV0t87XAqgHRTMYXNleQVt8otOVCk1FSCgKlgqMdvQc/FCx2ZjoMWEEV/g0LrPI8Etw== + dependencies: + "@react-native-community/cli-server-api" "^6.2.0" + "@react-native-community/cli-tools" "^6.2.0" + chalk "^4.1.2" + metro "^0.66.1" + metro-config "^0.66.1" + metro-core "^0.66.1" + metro-react-native-babel-transformer "^0.66.1" + metro-resolver "^0.66.1" + metro-runtime "^0.66.1" + readline "^1.3.0" + +"@react-native-community/cli-server-api@^6.2.0": + version "6.2.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-6.2.0.tgz#8dc399ef0e14e07c9942515b507292fb850f41f2" + integrity sha512-OnbnYclhoDpjge33QO5Slhfn0DsmLzzAgyrSCnb24HhSqwq7ObjMHaLpoEhpajzLG71wq5oKh0APEQjiL4Mknw== dependencies: - "@react-native-community/cli-debugger-ui" "^4.13.1" - "@react-native-community/cli-tools" "^4.13.0" + "@react-native-community/cli-debugger-ui" "^6.0.0-rc.0" + "@react-native-community/cli-tools" "^6.2.0" compression "^1.7.1" connect "^3.6.5" errorhandler "^1.5.0" nocache "^2.1.0" - pretty-format "^25.1.0" + pretty-format "^26.6.2" serve-static "^1.13.1" ws "^1.1.0" -"@react-native-community/cli-tools@^4.13.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-4.13.0.tgz#b406463d33af16cedc4305a9a9257ed32845cf1b" - integrity sha512-s4f489h5+EJksn4CfheLgv5PGOM0CDmK1UEBLw2t/ncWs3cW2VI7vXzndcd/WJHTv3GntJhXDcJMuL+Z2IAOgg== +"@react-native-community/cli-tools@^6.2.0": + version "6.2.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-6.2.0.tgz#8f4adc2d83ab96e5654348533c8fa602742c4fce" + integrity sha512-08ssz4GMEnRxC/1FgTTN/Ud7mExQi5xMphItPjfHiTxpZPhrFn+IMx6mya0ncFEhhxQ207wYlJMRLPRRdBZ8oA== dependencies: - chalk "^3.0.0" + appdirsjs "^1.2.4" + chalk "^4.1.2" lodash "^4.17.15" mime "^2.4.1" node-fetch "^2.6.0" open "^6.2.0" + semver "^6.3.0" shell-quote "1.6.1" -"@react-native-community/cli-types@^4.10.1": - version "4.10.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-4.10.1.tgz#d68a2dcd1649d3b3774823c64e5e9ce55bfbe1c9" - integrity sha512-ael2f1onoPF3vF7YqHGWy7NnafzGu+yp88BbFbP0ydoCP2xGSUzmZVw0zakPTC040Id+JQ9WeFczujMkDy6jYQ== - -"@react-native-community/cli@^4.10.0": - version "4.14.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-4.14.0.tgz#bb106a98341bfa2db36060091ff90bfe82ea4f55" - integrity sha512-EYJKBuxFxAu/iwNUfwDq41FjORpvSh1wvQ3qsHjzcR5uaGlWEOJrd3uNJDuKBAS0TVvbEesLF9NEXipjyRVr4Q== - dependencies: - "@hapi/joi" "^15.0.3" - "@react-native-community/cli-debugger-ui" "^4.13.1" - "@react-native-community/cli-hermes" "^4.13.0" - "@react-native-community/cli-server-api" "^4.13.1" - "@react-native-community/cli-tools" "^4.13.0" - "@react-native-community/cli-types" "^4.10.1" - chalk "^3.0.0" +"@react-native-community/cli-types@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-6.0.0.tgz#90269fbdc7229d5e3b8f2f3e029a94083551040d" + integrity sha512-K493Fk2DMJC0ZM8s8gnfseKxGasIhuDaCUDeLZcoCSFlrjKEuEs1BKKEJiev0CARhKEXKOyyp/uqYM9nWhisNw== + dependencies: + ora "^3.4.0" + +"@react-native-community/cli@^6.0.0": + version "6.3.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-6.3.0.tgz#27e3fdd544fcbb7035c368f81847172709c17a4f" + integrity sha512-rMdm/S8i5VIDQBJAU6YfNz15uwdguht0wVUOrJpEW8DCTKDfATanTlc5a1bsi0vitl9lS896VrgBiuW/VFOOXA== + dependencies: + "@react-native-community/cli-debugger-ui" "^6.0.0-rc.0" + "@react-native-community/cli-hermes" "^6.3.0" + "@react-native-community/cli-plugin-metro" "^6.2.0" + "@react-native-community/cli-server-api" "^6.2.0" + "@react-native-community/cli-tools" "^6.2.0" + "@react-native-community/cli-types" "^6.0.0" + appdirsjs "^1.2.4" + chalk "^4.1.2" command-exists "^1.2.8" commander "^2.19.0" cosmiconfig "^5.1.0" @@ -1304,19 +1404,14 @@ fs-extra "^8.1.0" glob "^7.1.3" graceful-fs "^4.1.3" - inquirer "^3.0.6" + joi "^17.2.1" leven "^3.1.0" lodash "^4.17.15" - metro "^0.59.0" - metro-config "^0.59.0" - metro-core "^0.59.0" - metro-react-native-babel-transformer "^0.59.0" - metro-resolver "^0.59.0" minimist "^1.2.0" - mkdirp "^0.5.1" node-stream-zip "^1.9.1" ora "^3.4.0" - pretty-format "^25.2.0" + pretty-format "^26.6.2" + prompts "^2.4.0" semver "^6.3.0" serve-static "^1.13.1" strip-ansi "^5.2.0" @@ -1333,6 +1428,21 @@ resolved "https://registry.yarnpkg.com/@react-native-picker/picker/-/picker-2.1.0.tgz#1ef22d4e9b2e555d44b43453f51a46d8631f3182" integrity sha512-iJ/QaDrBMBaW6cFuQyR3DXzcn2h7c5O7mGgmNLCBQHTTtLNBZR+Sxogy6YleFPeToNdysG5mTTkXqBmlWHMQqg== +"@react-native/assets@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@react-native/assets/-/assets-1.0.0.tgz#c6f9bf63d274bafc8e970628de24986b30a55c8e" + integrity sha512-KrwSpS1tKI70wuKl68DwJZYEvXktDHdZMG0k2AXD/rJVSlB23/X2CB2cutVR0HwNMJIal9HOUOBB2rVfa6UGtQ== + +"@react-native/normalize-color@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@react-native/normalize-color/-/normalize-color-1.0.0.tgz#c52a99d4fe01049102d47dc45d40cbde4f720ab6" + integrity sha512-xUNRvNmCl3UGCPbbHvfyFMnpvLPoOjDCcp5bT9m2k+TF/ZBklEQwhPZlkrxRx2NhgFh1X3a5uL7mJ7ZR+8G7Qg== + +"@react-native/polyfills@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@react-native/polyfills/-/polyfills-2.0.0.tgz#4c40b74655c83982c8cf47530ee7dc13d957b6aa" + integrity sha512-K0aGNn1TjalKj+65D7ycc1//H9roAQ51GJVk5ZJQFb2teECGmzd86bYDC0aYdbRf7gtovescq4Zt6FR0tgXiHQ== + "@react-navigation/core@^5.16.1": version "5.16.1" resolved "https://registry.yarnpkg.com/@react-navigation/core/-/core-5.16.1.tgz#e0d308bd9bbd930114ce55c4151806b6d7907f69" @@ -1368,6 +1478,23 @@ color "^3.1.3" react-native-iphone-x-helper "^1.3.0" +"@sideway/address@^4.1.3": + version "4.1.3" + resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.3.tgz#d93cce5d45c5daec92ad76db492cc2ee3c64ab27" + integrity sha512-8ncEUtmnTsMmL7z1YPB47kPUq7LpKWJNFPsRzHiIajGC5uXlWGn+AmkYPcHNl8S4tcEGx+cnORnNYaw2wvL+LQ== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@sideway/formula@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.0.tgz#fe158aee32e6bd5de85044be615bc08478a0a13c" + integrity sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg== + +"@sideway/pinpoint@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" + integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== + "@sinonjs/commons@^1.7.0": version "1.8.3" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" @@ -1478,14 +1605,6 @@ dependencies: "@types/istanbul-lib-coverage" "*" -"@types/istanbul-reports@^1.1.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz#e875cc689e47bce549ec81f3df5e6f6f11cfaeb2" - integrity sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw== - dependencies: - "@types/istanbul-lib-coverage" "*" - "@types/istanbul-lib-report" "*" - "@types/istanbul-reports@^3.0.0": version "3.0.1" resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" @@ -1534,11 +1653,6 @@ "@types/mime" "^1" "@types/node" "*" -"@types/stack-utils@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" - integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== - "@types/stack-utils@^2.0.0": version "2.0.1" resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" @@ -1549,13 +1663,6 @@ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== -"@types/yargs@^13.0.0": - version "13.0.12" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.12.tgz#d895a88c703b78af0465a9de88aa92c61430b092" - integrity sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ== - dependencies: - "@types/yargs-parser" "*" - "@types/yargs@^15.0.0": version "15.0.14" resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.14.tgz#26d821ddb89e70492160b66d10a0eb6df8f6fb06" @@ -1587,7 +1694,7 @@ absolute-path@^0.0.0: resolved "https://registry.yarnpkg.com/absolute-path/-/absolute-path-0.0.0.tgz#a78762fbdadfb5297be99b15d35a785b2f095bf7" integrity sha1-p4di+9rftSl76ZsV01p4Wy8JW/c= -accepts@~1.3.5, accepts@~1.3.7: +accepts@^1.3.7, accepts@~1.3.5, accepts@~1.3.7: version "1.3.7" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== @@ -1630,25 +1737,6 @@ anser@^1.4.9: resolved "https://registry.yarnpkg.com/anser/-/anser-1.4.10.tgz#befa3eddf282684bd03b63dcda3927aef8c2e35b" integrity sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww== -ansi-colors@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-1.1.0.tgz#6374b4dd5d4718ff3ce27a671a3b1cad077132a9" - integrity sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA== - dependencies: - ansi-wrap "^0.1.0" - -ansi-cyan@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ansi-cyan/-/ansi-cyan-0.1.1.tgz#538ae528af8982f28ae30d86f2f17456d2609873" - integrity sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM= - dependencies: - ansi-wrap "0.1.0" - -ansi-escapes@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" - integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== - ansi-escapes@^4.2.1: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" @@ -1665,26 +1753,7 @@ ansi-fragments@^0.2.1: slice-ansi "^2.0.0" strip-ansi "^5.0.0" -ansi-gray@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251" - integrity sha1-KWLPVOyXksSFEKPetSRDaGHvclE= - dependencies: - ansi-wrap "0.1.0" - -ansi-red@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ansi-red/-/ansi-red-0.1.1.tgz#8c638f9d1080800a353c9c28c8a81ca4705d946c" - integrity sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw= - dependencies: - ansi-wrap "0.1.0" - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - -ansi-regex@^4.0.0, ansi-regex@^4.1.0: +ansi-regex@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== @@ -1713,11 +1782,6 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== -ansi-wrap@0.1.0, ansi-wrap@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" - integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768= - anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -1734,6 +1798,11 @@ anymatch@^3.0.3, anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" +appdirsjs@^1.2.4: + version "1.2.6" + resolved "https://registry.yarnpkg.com/appdirsjs/-/appdirsjs-1.2.6.tgz#fccf9ee543315492867cacfcfd4a2b32257d30ac" + integrity sha512-D8wJNkqMCeQs3kLasatELsddox/Xqkhp+J07iXGyL54fVN7oc+nmNfYzGuCs1IEP6uBw+TfpuO3JKwc+lECy4w== + argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -1741,29 +1810,16 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" -arr-diff@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-1.1.0.tgz#687c32758163588fef7de7b36fabe495eb1a399a" - integrity sha1-aHwydYFjWI/vfeezb6vklesaOZo= - dependencies: - arr-flatten "^1.0.1" - array-slice "^0.2.3" - arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= -arr-flatten@^1.0.1, arr-flatten@^1.1.0: +arr-flatten@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== -arr-union@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-2.1.0.tgz#20f9eab5ec70f5c7d215b1077b1c39161d292c7d" - integrity sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0= - arr-union@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" @@ -1789,11 +1845,6 @@ array-reduce@~0.0.0: resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" integrity sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys= -array-slice@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" - integrity sha1-3Tz7gO15c6dRF82sabC5nshhhvU= - array-unique@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" @@ -1809,11 +1860,23 @@ assign-symbols@^1.0.0: resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= +ast-types@0.14.2: + version "0.14.2" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.14.2.tgz#600b882df8583e3cd4f2df5fa20fa83759d4bdfd" + integrity sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA== + dependencies: + tslib "^2.0.1" + astral-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + async@^2.4.0: version "2.6.3" resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" @@ -1831,6 +1894,11 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== +babel-core@^7.0.0-bridge.0: + version "7.0.0-bridge.0" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" + integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== + babel-jest@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.3.1.tgz#0636a3404c68e07001e434ac4956d82da8a80022" @@ -1931,7 +1999,7 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-fbjs@^3.2.0, babel-preset-fbjs@^3.3.0: +babel-preset-fbjs@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz#38a14e5a7a3b285a3f3a86552d650dca5cf6111c" integrity sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow== @@ -2005,13 +2073,6 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - bluebird@^3.5.4: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" @@ -2112,11 +2173,6 @@ bser@2.1.1: dependencies: node-int64 "^0.4.0" -buffer-crc32@^0.2.13: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= - buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" @@ -2224,7 +2280,7 @@ capture-exit@^2.0.0: dependencies: rsvp "^4.8.4" -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -2233,15 +2289,7 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.1, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.0.0: +chalk@^4.0.0, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -2254,11 +2302,6 @@ char-regex@^1.0.2: resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== -chardet@^0.4.0: - version "0.4.2" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" - integrity sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I= - child-process-promise@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/child-process-promise/-/child-process-promise-2.2.1.tgz#4730a11ef610fad450b8f223c79d31d7bdad8074" @@ -2320,20 +2363,6 @@ cli-spinners@^2.0.0: resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d" integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== -cli-width@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" - integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== - -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - cliui@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" @@ -2416,11 +2445,6 @@ color-string@^1.6.0: color-name "^1.0.0" simple-swizzle "^0.2.2" -color-support@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" - integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== - color@^3.1.3: version "3.2.1" resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" @@ -2434,7 +2458,7 @@ colorette@^1.0.7: resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40" integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== -colors@^1.0.3: +colors@^1.0.3, colors@^1.1.2: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== @@ -2501,16 +2525,6 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@^1.6.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - connect@^3.6.5: version "3.7.0" resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" @@ -2563,11 +2577,6 @@ core-js-compat@^3.16.2: browserslist "^4.17.3" semver "7.0.0" -core-js@^2.4.1: - version "2.6.12" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" - integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== - core-util-is@~1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" @@ -2598,15 +2607,6 @@ cross-spawn@^4.0.2: lru-cache "^4.0.1" which "^1.2.9" -cross-spawn@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - cross-spawn@^6.0.0: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -2843,11 +2843,6 @@ emittery@^0.8.1: resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" @@ -2858,13 +2853,6 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= -encoding@^0.1.11: - version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" - end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" @@ -2936,7 +2924,7 @@ escodegen@^2.0.0: optionalDependencies: source-map "~0.6.1" -esprima@^4.0.0, esprima@^4.0.1: +esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== @@ -2961,11 +2949,6 @@ event-target-shim@^5.0.0, event-target-shim@^5.0.1: resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== -eventemitter3@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" - integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== - exception-formatter@^1.0.4: version "1.0.7" resolved "https://registry.yarnpkg.com/exception-formatter/-/exception-formatter-1.0.7.tgz#3291616b86fceabefa97aee6a4708032c6e3b96d" @@ -3072,13 +3055,6 @@ express@^4.17.1: utils-merge "1.0.1" vary "~1.1.2" -extend-shallow@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-1.1.4.tgz#19d6bf94dfc09d76ba711f39b872d21ff4dd9071" - integrity sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE= - dependencies: - kind-of "^1.1.0" - extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -3094,15 +3070,6 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" -external-editor@^2.0.4: - version "2.2.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" - integrity sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A== - dependencies: - chardet "^0.4.0" - iconv-lite "^0.4.17" - tmp "^0.0.33" - extglob@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" @@ -3115,17 +3082,7 @@ extglob@^2.0.4: fragment-cache "^0.2.1" regex-not "^1.0.0" snapdragon "^0.8.1" - to-regex "^3.0.1" - -fancy-log@^1.3.2: - version "1.3.3" - resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.3.tgz#dbc19154f558690150a23953a0adbd035be45fc7" - integrity sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw== - dependencies: - ansi-gray "^0.1.1" - color-support "^1.1.3" - parse-node-version "^1.0.0" - time-stamp "^1.0.0" + to-regex "^3.0.1" fast-json-stable-stringify@^2.0.0: version "2.1.0" @@ -3149,36 +3106,6 @@ fbjs-css-vars@^1.0.0: resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8" integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ== -fbjs-scripts@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fbjs-scripts/-/fbjs-scripts-1.2.0.tgz#069a0c0634242d10031c6460ef1fccefcdae8b27" - integrity sha512-5krZ8T0Bf8uky0abPoCLrfa7Orxd8UH4Qq8hRUF2RZYNMu+FmEOrBc7Ib3YVONmxTXTlLAvyrrdrVmksDb2OqQ== - dependencies: - "@babel/core" "^7.0.0" - ansi-colors "^1.0.1" - babel-preset-fbjs "^3.2.0" - core-js "^2.4.1" - cross-spawn "^5.1.0" - fancy-log "^1.3.2" - object-assign "^4.0.1" - plugin-error "^0.1.2" - semver "^5.1.0" - through2 "^2.0.0" - -fbjs@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-1.0.0.tgz#52c215e0883a3c86af2a7a776ed51525ae8e0a5a" - integrity sha512-MUgcMEJaFhCaF1QtWGnmq9ZDRAzECTCRAF7O6UZIlAlkTs1SasiX9aP0Iw7wfD2mJ7wDTNfg2w7u5fSCwJk1OA== - dependencies: - core-js "^2.4.1" - fbjs-css-vars "^1.0.0" - isomorphic-fetch "^2.1.1" - loose-envify "^1.0.0" - object-assign "^4.1.0" - promise "^7.1.1" - setimmediate "^1.0.5" - ua-parser-js "^0.7.18" - fbjs@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-3.0.0.tgz#0907067fb3f57a78f45d95f1eacffcacd623c165" @@ -3192,18 +3119,6 @@ fbjs@^3.0.0: setimmediate "^1.0.5" ua-parser-js "^0.7.18" -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= - dependencies: - escape-string-regexp "^1.0.5" - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" @@ -3276,6 +3191,16 @@ flat@^5.0.2: resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== +flow-parser@0.*: + version "0.166.1" + resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.166.1.tgz#6869ab40bd71e1129053f53435864b08616d57e9" + integrity sha512-7iJ1cPcOYL/eOPGpGPaxwW8MytKGeXSnfvJA0uIvymXI4MnjjhZLWz1qPIqj2hfYJ7p/yXssbv7k2H3C90cyDw== + +flow-parser@^0.121.0: + version "0.121.0" + resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.121.0.tgz#9f9898eaec91a9f7c323e9e992d81ab5c58e618f" + integrity sha512-1gIBiWJNR0tKUNv8gZuk7l9rVX06OuLzY9AoGio7y/JT4V1IZErEMEq2TJS+PFcw/y0RshZ1J/27VfK1UQzYVg== + for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -3344,15 +3269,7 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -fsevents@^1.2.7: - version "1.2.13" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" - integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - -fsevents@^2.3.2, fsevents@~2.3.2: +fsevents@^2.1.2, fsevents@^2.3.2, fsevents@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== @@ -3450,7 +3367,7 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.4: +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.4: version "4.2.8" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== @@ -3508,10 +3425,15 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -hermes-engine@~0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/hermes-engine/-/hermes-engine-0.5.1.tgz#601115e4b1e0a17d9aa91243b96277de4e926e09" - integrity sha512-hLwqh8dejHayjlpvZY40e1aDCDvyP98cWx/L5DhAjSJLH8g4z9Tp08D7y4+3vErDsncPOdf1bxm+zUWpx0/Fxg== +hermes-engine@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/hermes-engine/-/hermes-engine-0.9.0.tgz#84d9cfe84e8f6b1b2020d6e71b350cec84ed982f" + integrity sha512-r7U+Y4P2Qg/igFVZN+DpT7JFfXUn1MM4dFne8aW+cCrF6RRymof+VqrUHs1kl07j8h8V2CNesU19RKgWbr3qPw== + +hermes-parser@0.4.7: + version "0.4.7" + resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.4.7.tgz#410f5129d57183784d205a0538e6fbdcf614c9ea" + integrity sha512-jc+zCtXbtwTiXoMAoXOHepxAaGVFIp89wwE9qcdwnMd/uGVEtPoY8FaFSsx0ThPvyKirdR2EsIIDVrpbSXz1Ag== hermes-profile-transformer@^0.0.6: version "0.0.6" @@ -3583,20 +3505,13 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -iconv-lite@0.4.24, iconv-lite@^0.4.17: +iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@^0.6.2: - version "0.6.3" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" - integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - image-size@^0.6.0: version "0.6.3" resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.6.3.tgz#e7e5c65bb534bd7cdcedd6cb5166272a85f75fb2" @@ -3631,7 +3546,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -3646,26 +3561,6 @@ ini@^1.3.4: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -inquirer@^3.0.6: - version "3.3.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" - integrity sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ== - dependencies: - ansi-escapes "^3.0.0" - chalk "^2.0.0" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^2.0.4" - figures "^2.0.0" - lodash "^4.3.0" - mute-stream "0.0.7" - run-async "^2.2.0" - rx-lite "^4.0.8" - rx-lite-aggregates "^4.0.8" - string-width "^2.1.0" - strip-ansi "^4.0.0" - through "^2.3.6" - invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" @@ -3838,7 +3733,7 @@ is-potential-custom-element-name@^1.0.1: resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== -is-stream@^1.0.1, is-stream@^1.1.0: +is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= @@ -3885,14 +3780,6 @@ isobject@^3.0.0, isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= -isomorphic-fetch@^2.1.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" - integrity sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk= - dependencies: - node-fetch "^1.0.1" - whatwg-fetch ">=0.10.0" - istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" @@ -4077,34 +3964,36 @@ jest-environment-node@^27.3.1: jest-mock "^27.3.0" jest-util "^27.3.1" -jest-get-type@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" - integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== +jest-get-type@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" + integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== jest-get-type@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.3.1.tgz#a8a2b0a12b50169773099eee60a0e6dd11423eff" integrity sha512-+Ilqi8hgHSAdhlQ3s12CAVNd8H96ZkQBfYoXmArzZnOfAtVAJEiPDBirjByEblvG/4LPJmkL+nBqPO3A1YJAEg== -jest-haste-map@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.9.0.tgz#b38a5d64274934e21fa417ae9a9fbeb77ceaac7d" - integrity sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ== +jest-haste-map@^26.5.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" + integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== dependencies: - "@jest/types" "^24.9.0" - anymatch "^2.0.0" + "@jest/types" "^26.6.2" + "@types/graceful-fs" "^4.1.2" + "@types/node" "*" + anymatch "^3.0.3" fb-watchman "^2.0.0" - graceful-fs "^4.1.15" - invariant "^2.2.4" - jest-serializer "^24.9.0" - jest-util "^24.9.0" - jest-worker "^24.9.0" - micromatch "^3.1.10" + graceful-fs "^4.2.4" + jest-regex-util "^26.0.0" + jest-serializer "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" + micromatch "^4.0.2" sane "^4.0.3" walker "^1.0.7" optionalDependencies: - fsevents "^1.2.7" + fsevents "^2.1.2" jest-haste-map@^27.3.1: version "27.3.1" @@ -4168,20 +4057,6 @@ jest-matcher-utils@^27.3.1: jest-get-type "^27.3.1" pretty-format "^27.3.1" -jest-message-util@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.9.0.tgz#527f54a1e380f5e202a8d1149b0ec872f43119e3" - integrity sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw== - dependencies: - "@babel/code-frame" "^7.0.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/stack-utils" "^1.0.1" - chalk "^2.0.1" - micromatch "^3.1.10" - slash "^2.0.0" - stack-utils "^1.0.1" - jest-message-util@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.3.1.tgz#f7c25688ad3410ab10bcb862bcfe3152345c6436" @@ -4197,13 +4072,6 @@ jest-message-util@^27.3.1: slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6" - integrity sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w== - dependencies: - "@jest/types" "^24.9.0" - jest-mock@^27.3.0: version "27.3.0" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.3.0.tgz#ddf0ec3cc3e68c8ccd489bef4d1f525571a1b867" @@ -4217,6 +4085,11 @@ jest-pnp-resolver@^1.2.2: resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== +jest-regex-util@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" + integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== + jest-regex-util@^27.0.6: version "27.0.6" resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.0.6.tgz#02e112082935ae949ce5d13b2675db3d8c87d9c5" @@ -4307,10 +4180,13 @@ jest-runtime@^27.3.1: strip-bom "^4.0.0" yargs "^16.2.0" -jest-serializer@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73" - integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ== +jest-serializer@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" + integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== + dependencies: + "@types/node" "*" + graceful-fs "^4.2.4" jest-serializer@^27.0.6: version "27.0.6" @@ -4350,23 +4226,17 @@ jest-snapshot@^27.3.1: pretty-format "^27.3.1" semver "^7.3.2" -jest-util@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.9.0.tgz#7396814e48536d2e85a37de3e4c431d7cb140162" - integrity sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg== +jest-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" + integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== dependencies: - "@jest/console" "^24.9.0" - "@jest/fake-timers" "^24.9.0" - "@jest/source-map" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - callsites "^3.0.0" - chalk "^2.0.1" - graceful-fs "^4.1.15" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + graceful-fs "^4.2.4" is-ci "^2.0.0" - mkdirp "^0.5.1" - slash "^2.0.0" - source-map "^0.6.0" + micromatch "^4.0.2" jest-util@^27.3.1: version "27.3.1" @@ -4380,17 +4250,17 @@ jest-util@^27.3.1: graceful-fs "^4.2.4" picomatch "^2.2.3" -jest-validate@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.9.0.tgz#0775c55360d173cd854e40180756d4ff52def8ab" - integrity sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ== +jest-validate@^26.5.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" + integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== dependencies: - "@jest/types" "^24.9.0" - camelcase "^5.3.1" - chalk "^2.0.1" - jest-get-type "^24.9.0" + "@jest/types" "^26.6.2" + camelcase "^6.0.0" + chalk "^4.0.0" + jest-get-type "^26.3.0" leven "^3.1.0" - pretty-format "^24.9.0" + pretty-format "^26.6.2" jest-validate@^27.3.1: version "27.3.1" @@ -4417,13 +4287,14 @@ jest-watcher@^27.3.1: jest-util "^27.3.1" string-length "^4.0.1" -jest-worker@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" - integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== +jest-worker@^26.0.0, jest-worker@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== dependencies: + "@types/node" "*" merge-stream "^2.0.0" - supports-color "^6.1.0" + supports-color "^7.0.0" jest-worker@^27.3.1: version "27.3.1" @@ -4448,6 +4319,17 @@ jetifier@^1.6.2: resolved "https://registry.yarnpkg.com/jetifier/-/jetifier-1.6.8.tgz#e88068697875cbda98c32472902c4d3756247798" integrity sha512-3Zi16h6L5tXDRQJTb221cnRoVG9/9OvreLdLU2/ZjRv/GILL+2Cemt0IKvkowwkDpvouAU1DQPOJ7qaiHeIdrw== +joi@^17.2.1: + version "17.5.0" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.5.0.tgz#7e66d0004b5045d971cf416a55fb61d33ac6e011" + integrity sha512-R7hR50COp7StzLnDi4ywOXHrBrgNXuUUfJWIR5lPY5Bm/pOD3jZaTwpluUXVLRWcoWZxkrHBBJ5hLxgnlehbdw== + dependencies: + "@hapi/hoek" "^9.0.0" + "@hapi/topo" "^5.0.0" + "@sideway/address" "^4.1.3" + "@sideway/formula" "^3.0.0" + "@sideway/pinpoint" "^2.0.0" + "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -4461,10 +4343,35 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" -jsc-android@^245459.0.0: - version "245459.0.0" - resolved "https://registry.yarnpkg.com/jsc-android/-/jsc-android-245459.0.0.tgz#e584258dd0b04c9159a27fb104cd5d491fd202c9" - integrity sha512-wkjURqwaB1daNkDi2OYYbsLnIdC/lUM2nPXQKRs5pqEU9chDg435bjvo+LSaHotDENygHQDHe+ntUkkw2gwMtg== +jsc-android@^250230.2.1: + version "250230.2.1" + resolved "https://registry.yarnpkg.com/jsc-android/-/jsc-android-250230.2.1.tgz#3790313a970586a03ab0ad47defbc84df54f1b83" + integrity sha512-KmxeBlRjwoqCnBBKGsihFtvsBHyUFlBxJPK4FzeYcIuBfdjv6jFys44JITAgSTbQD+vIdwMEfyZklsuQX0yI1Q== + +jscodeshift@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/jscodeshift/-/jscodeshift-0.11.0.tgz#4f95039408f3f06b0e39bb4d53bc3139f5330e2f" + integrity sha512-SdRK2C7jjs4k/kT2mwtO07KJN9RnjxtKn03d9JVj6c3j9WwaLcFYsICYDnLAzY0hp+wG2nxl+Cm2jWLiNVYb8g== + dependencies: + "@babel/core" "^7.1.6" + "@babel/parser" "^7.1.6" + "@babel/plugin-proposal-class-properties" "^7.1.0" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.1.0" + "@babel/plugin-proposal-optional-chaining" "^7.1.0" + "@babel/plugin-transform-modules-commonjs" "^7.1.0" + "@babel/preset-flow" "^7.0.0" + "@babel/preset-typescript" "^7.1.0" + "@babel/register" "^7.0.0" + babel-core "^7.0.0-bridge.0" + colors "^1.1.2" + flow-parser "0.*" + graceful-fs "^4.2.4" + micromatch "^3.1.10" + neo-async "^2.5.0" + node-dir "^0.1.17" + recast "^0.20.3" + temp "^0.8.1" + write-file-atomic "^2.3.0" jsdom@^16.6.0: version "16.7.0" @@ -4514,13 +4421,6 @@ json-parse-better-errors@^1.0.1: resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== -json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= - dependencies: - jsonify "~0.0.0" - json5@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" @@ -4552,11 +4452,6 @@ jsonify@~0.0.0: resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= -kind-of@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-1.1.0.tgz#140a3d2d41a36d2efcfa9377b62c24f8495a5c44" - integrity sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ= - kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -4626,12 +4521,17 @@ lodash.debounce@^4.0.8: resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= +lodash.isequal@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= + lodash.throttle@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ= -lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.5, lodash@^4.3.0, lodash@^4.7.0: +lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.5, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -4718,13 +4618,6 @@ merge-descriptors@1.0.1: resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= -merge-stream@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" - integrity sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE= - dependencies: - readable-stream "^2.0.1" - merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" @@ -4735,126 +4628,93 @@ methods@~1.1.2: resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= -metro-babel-register@0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-babel-register/-/metro-babel-register-0.59.0.tgz#2bcff65641b36794cf083ba732fbc46cf870fb43" - integrity sha512-JtWc29erdsXO/V3loenXKw+aHUXgj7lt0QPaZKPpctLLy8kcEpI/8pfXXgVK9weXICCpCnYtYncIosAyzh0xjg== +metro-babel-register@0.66.2: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro-babel-register/-/metro-babel-register-0.66.2.tgz#c6bbe36c7a77590687ccd74b425dc020d17d05af" + integrity sha512-3F+vsVubUPJYKfVMeol8/7pd8CC287Rw92QYzJD8LEmI980xcgwMUEVBZ0UIAUwlLgiJG/f4Mwhuji2EeBXrPg== dependencies: - "@babel/core" "^7.0.0" - "@babel/plugin-proposal-class-properties" "^7.0.0" + "@babel/core" "^7.14.0" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0" "@babel/plugin-proposal-optional-chaining" "^7.0.0" + "@babel/plugin-syntax-class-properties" "^7.0.0" "@babel/plugin-transform-flow-strip-types" "^7.0.0" "@babel/plugin-transform-modules-commonjs" "^7.0.0" "@babel/register" "^7.0.0" escape-string-regexp "^1.0.5" -metro-babel-transformer@0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.59.0.tgz#dda99c75d831b00142c42c020c51c103b29f199d" - integrity sha512-fdZJl8rs54GVFXokxRdD7ZrQ1TJjxWzOi/xSP25VR3E8tbm3nBZqS+/ylu643qSr/IueABR+jrlqAyACwGEf6w== +metro-babel-transformer@0.66.2: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.66.2.tgz#fce0a3e314d28a5e7141c135665e1cc9b8e7ce86" + integrity sha512-aJ/7fc/Xkofw8Fqa51OTDhBzBz26mmpIWrXAZcPdQ8MSTt883EWncxeCEjasc79NJ89BRi7sOkkaWZo2sXlKvw== dependencies: - "@babel/core" "^7.0.0" - metro-source-map "0.59.0" + "@babel/core" "^7.14.0" + hermes-parser "0.4.7" + metro-source-map "0.66.2" + nullthrows "^1.1.1" -metro-cache@0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.59.0.tgz#ef3c055f276933979b731455dc8317d7a66f0f2d" - integrity sha512-ryWNkSnpyADfRpHGb8BRhQ3+k8bdT/bsxMH2O0ntlZYZ188d8nnYWmxbRvFmEzToJxe/ol4uDw0tJFAaQsN8KA== +metro-cache-key@0.66.2: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.66.2.tgz#d6463d2a53e887a38419d523962cc24ea0e780b4" + integrity sha512-WtkNmRt41qOpHh1MkNA4nLiQ/m7iGL90ysSKD+fcLqlUnOBKJptPQm0ZUv8Kfqk18ddWX2KmsSbq+Sf3I6XohQ== + +metro-cache@0.66.2: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.66.2.tgz#e0af4e0a319898f7d42a980f7ee5da153fcfd019" + integrity sha512-5QCYJtJOHoBSbL3H4/Fpl36oA697C3oYHqsce+Hk/dh2qtODUGpS3gOBhvP1B8iB+H8jJMyR75lZq129LJEsIQ== dependencies: - jest-serializer "^24.9.0" - metro-core "0.59.0" + metro-core "0.66.2" mkdirp "^0.5.1" rimraf "^2.5.4" -metro-config@0.59.0, metro-config@^0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.59.0.tgz#9844e388069321dd7403e49f0d495a81f9aa0fef" - integrity sha512-MDsknFG9vZ4Nb5VR6OUDmGHaWz6oZg/FtE3up1zVBKPVRTXE1Z+k7zypnPtMXjMh3WHs/Sy4+wU1xnceE/zdnA== +metro-config@0.66.2, metro-config@^0.66.1: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.66.2.tgz#e365acdb66ad0cda0182b9c9910760a97ee4293b" + integrity sha512-0C+PrKKIBNNzLZUKN/8ZDJS2U5FLMOTXDWbvBHIdqb6YXz8WplXR2+xlSlaSCCi5b+GR7cWFWUNeKA4GQS1/AQ== dependencies: cosmiconfig "^5.0.5" - jest-validate "^24.9.0" - metro "0.59.0" - metro-cache "0.59.0" - metro-core "0.59.0" - -metro-core@0.59.0, metro-core@^0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.59.0.tgz#958cde3fe5c8cd84a78e1899af801ad69e9c83b1" - integrity sha512-kb5LKvV5r2pqMEzGyTid8ai2mIjW13NMduQ8oBmfha7/EPTATcTQ//s+bkhAs1toQD8vqVvjAb0cPNjWQEmcmQ== - dependencies: - jest-haste-map "^24.9.0" + jest-validate "^26.5.2" + metro "0.66.2" + metro-cache "0.66.2" + metro-core "0.66.2" + metro-runtime "0.66.2" + +metro-core@0.66.2, metro-core@^0.66.1: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.66.2.tgz#ead776a17b3e5a307e6dc22259db30bf5c7e8490" + integrity sha512-JieLZkef/516yxXYvQxWnf3OWw5rcgWRy76K8JV/wr/i8LGVGulPAXlIi445/QZzXVydzRVASKAEVqyxM5F4mA== + dependencies: + jest-haste-map "^26.5.2" lodash.throttle "^4.1.1" - metro-resolver "0.59.0" - wordwrap "^1.0.0" + metro-resolver "0.66.2" + +metro-hermes-compiler@0.66.2: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro-hermes-compiler/-/metro-hermes-compiler-0.66.2.tgz#30290748f83805faa601aa487632444915795823" + integrity sha512-nCVL1g9uR6vrw5+X1wjwZruRyMkndnzGRMqjqoljf+nGEqBTD607CR7elXw4fMWn/EM+1y0Vdq5altUu9LdgCA== -metro-inspector-proxy@0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-inspector-proxy/-/metro-inspector-proxy-0.59.0.tgz#39d1390772d13767fc595be9a1a7074e2425cf8e" - integrity sha512-hPeAuQcofTOH0F+2GEZqWkvkVY1/skezSSlMocDQDaqds+Kw6JgdA7FlZXxnKmQ/jYrWUzff/pl8SUCDwuYthQ== +metro-inspector-proxy@0.66.2: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro-inspector-proxy/-/metro-inspector-proxy-0.66.2.tgz#a83c76bd2f2fd7b9240be92acf9a8b1d1404547a" + integrity sha512-gnLc9121eznwP0iiA9tCBW8qZjwIsCgwHWMF1g1Qaki9le9tzeJv3dK4/lFNGxyfSaLO7vahQEhsEYsiRnTROg== dependencies: connect "^3.6.5" debug "^2.2.0" ws "^1.1.5" - yargs "^14.2.0" + yargs "^15.3.1" -metro-minify-uglify@0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.59.0.tgz#6491876308d878742f7b894d7fca4af356886dd5" - integrity sha512-7IzVgCVWZMymgZ/quieg/9v5EQ8QmZWAgDc86Zp9j0Vy6tQTjUn6jlU+YAKW3mfMEjMr6iIUzCD8YklX78tFAw== +metro-minify-uglify@0.66.2: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.66.2.tgz#6061dbee4f61e6d5bb3c100e4379ff6f2e16e42b" + integrity sha512-7TUK+L5CmB5x1PVnFbgmjzHW4CUadq9H5jgp0HfFoWT1skXAyEsx0DHkKDXwnot0khnNhBOEfl62ctQOnE110Q== dependencies: uglify-es "^3.1.9" -metro-react-native-babel-preset@0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.59.0.tgz#20e020bc6ac9849e1477de1333d303ed42aba225" - integrity sha512-BoO6ncPfceIDReIH8pQ5tQptcGo5yRWQXJGVXfANbiKLq4tfgdZB1C1e2rMUJ6iypmeJU9dzl+EhPmIFKtgREg== - dependencies: - "@babel/plugin-proposal-class-properties" "^7.0.0" - "@babel/plugin-proposal-export-default-from" "^7.0.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0" - "@babel/plugin-proposal-object-rest-spread" "^7.0.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.0.0" - "@babel/plugin-proposal-optional-chaining" "^7.0.0" - "@babel/plugin-syntax-dynamic-import" "^7.0.0" - "@babel/plugin-syntax-export-default-from" "^7.0.0" - "@babel/plugin-syntax-flow" "^7.2.0" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.0.0" - "@babel/plugin-syntax-optional-chaining" "^7.0.0" - "@babel/plugin-transform-arrow-functions" "^7.0.0" - "@babel/plugin-transform-block-scoping" "^7.0.0" - "@babel/plugin-transform-classes" "^7.0.0" - "@babel/plugin-transform-computed-properties" "^7.0.0" - "@babel/plugin-transform-destructuring" "^7.0.0" - "@babel/plugin-transform-exponentiation-operator" "^7.0.0" - "@babel/plugin-transform-flow-strip-types" "^7.0.0" - "@babel/plugin-transform-for-of" "^7.0.0" - "@babel/plugin-transform-function-name" "^7.0.0" - "@babel/plugin-transform-literals" "^7.0.0" - "@babel/plugin-transform-modules-commonjs" "^7.0.0" - "@babel/plugin-transform-object-assign" "^7.0.0" - "@babel/plugin-transform-parameters" "^7.0.0" - "@babel/plugin-transform-react-display-name" "^7.0.0" - "@babel/plugin-transform-react-jsx" "^7.0.0" - "@babel/plugin-transform-react-jsx-self" "^7.0.0" - "@babel/plugin-transform-react-jsx-source" "^7.0.0" - "@babel/plugin-transform-regenerator" "^7.0.0" - "@babel/plugin-transform-runtime" "^7.0.0" - "@babel/plugin-transform-shorthand-properties" "^7.0.0" - "@babel/plugin-transform-spread" "^7.0.0" - "@babel/plugin-transform-sticky-regex" "^7.0.0" - "@babel/plugin-transform-template-literals" "^7.0.0" - "@babel/plugin-transform-typescript" "^7.5.0" - "@babel/plugin-transform-unicode-regex" "^7.0.0" - "@babel/template" "^7.0.0" - react-refresh "^0.4.0" - -metro-react-native-babel-preset@^0.64.0: - version "0.64.0" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.64.0.tgz#76861408681dfda3c1d962eb31a8994918c976f8" - integrity sha512-HcZ0RWQRuJfpPiaHyFQJzcym+/dDIVUPwUAXWoub/C4GkGu+mPjp8vqK6g0FxokCnnI2TK0gZTza2IDfiNNscQ== +metro-react-native-babel-preset@0.66.2, metro-react-native-babel-preset@^0.66.2: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.66.2.tgz#fddebcf413ad4ea617d4f47f7c1da401052de734" + integrity sha512-H/nLBAz0MgfDloSe1FjyH4EnbokHFdncyERvLPXDACY3ROVRCeUyFNo70ywRGXW2NMbrV4H7KUyU4zkfWhC2HQ== dependencies: - "@babel/core" "^7.0.0" + "@babel/core" "^7.14.0" "@babel/plugin-proposal-class-properties" "^7.0.0" "@babel/plugin-proposal-export-default-from" "^7.0.0" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0" @@ -4867,6 +4727,7 @@ metro-react-native-babel-preset@^0.64.0: "@babel/plugin-syntax-nullish-coalescing-operator" "^7.0.0" "@babel/plugin-syntax-optional-chaining" "^7.0.0" "@babel/plugin-transform-arrow-functions" "^7.0.0" + "@babel/plugin-transform-async-to-generator" "^7.0.0" "@babel/plugin-transform-block-scoping" "^7.0.0" "@babel/plugin-transform-classes" "^7.0.0" "@babel/plugin-transform-computed-properties" "^7.0.0" @@ -4894,109 +4755,144 @@ metro-react-native-babel-preset@^0.64.0: "@babel/template" "^7.0.0" react-refresh "^0.4.0" -metro-react-native-babel-transformer@0.59.0, metro-react-native-babel-transformer@^0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.59.0.tgz#9b3dfd6ad35c6ef37fc4ce4d20a2eb67fabbb4be" - integrity sha512-1O3wrnMq4NcPQ1asEcl9lRDn/t+F1Oef6S9WaYVIKEhg9m/EQRGVrrTVP+R6B5Eeaj3+zNKbzM8Dx/NWy1hUbQ== - dependencies: - "@babel/core" "^7.0.0" - babel-preset-fbjs "^3.3.0" - metro-babel-transformer "0.59.0" - metro-react-native-babel-preset "0.59.0" - metro-source-map "0.59.0" +metro-react-native-babel-transformer@0.66.2, metro-react-native-babel-transformer@^0.66.1: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.66.2.tgz#768f341e7c3d3d1c38189799c9884b90d1c32eb7" + integrity sha512-z1ab7ihIT0pJrwgi9q2IH+LcW/xUWMQ0hH+Mrk7wbKQB0RnJdXFoxphrfoVHBHMUu+TBPetUcEkKawkK1e7Cng== + dependencies: + "@babel/core" "^7.14.0" + babel-preset-fbjs "^3.4.0" + hermes-parser "0.4.7" + metro-babel-transformer "0.66.2" + metro-react-native-babel-preset "0.66.2" + metro-source-map "0.66.2" + nullthrows "^1.1.1" -metro-resolver@0.59.0, metro-resolver@^0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.59.0.tgz#fbc9d7c95f094c52807877d0011feffb9e896fad" - integrity sha512-lbgiumnwoVosffEI96z0FGuq1ejTorHAj3QYUPmp5dFMfitRxLP7Wm/WP9l4ZZjIptxTExsJwuEff1SLRCPD9w== +metro-resolver@0.66.2, metro-resolver@^0.66.1: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.66.2.tgz#f743ddbe7a12dd137d1f7a555732cafcaea421f8" + integrity sha512-pXQAJR/xauRf4kWFj2/hN5a77B4jLl0Fom5I3PHp6Arw/KxSBp0cnguXpGLwNQ6zQC0nxKCoYGL9gQpzMnN7Hw== dependencies: absolute-path "^0.0.0" -metro-source-map@0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.59.0.tgz#e9beb9fc51bfb4e060f95820cf1508fc122d23f7" - integrity sha512-0w5CmCM+ybSqXIjqU4RiK40t4bvANL6lafabQ2GP2XD3vSwkLY+StWzCtsb4mPuyi9R/SgoLBel+ZOXHXAH0eQ== +metro-runtime@0.66.2, metro-runtime@^0.66.1: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.66.2.tgz#3409ee957b949b6c7b72ef6ed2b9af9a4f4a910e" + integrity sha512-vFhKBk2ot9FS4b+2v0OTa/guCF/QDAOJubY0CNg7PzCS5+w4y3IvZIcPX4SSS1t8pYEZBLvtdtTDarlDl81xmg== + +metro-source-map@0.66.2: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.66.2.tgz#b5304a282a5d55fa67b599265e9cf3217175cdd7" + integrity sha512-038tFmB7vSh73VQcDWIbr5O1m+WXWyYafDaOy+1A/2K308YP0oj33gbEgDnZsLZDwcJ+xt1x6KUEBIzlX4YGeQ== dependencies: - "@babel/traverse" "^7.0.0" + "@babel/traverse" "^7.14.0" "@babel/types" "^7.0.0" invariant "^2.2.4" - metro-symbolicate "0.59.0" - ob1 "0.59.0" + metro-symbolicate "0.66.2" + nullthrows "^1.1.1" + ob1 "0.66.2" source-map "^0.5.6" vlq "^1.0.0" -metro-symbolicate@0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.59.0.tgz#fc7f93957a42b02c2bfc57ed1e8f393f5f636a54" - integrity sha512-asLaF2A7rndrToGFIknL13aiohwPJ95RKHf0NM3hP/nipiLDoMzXT6ZnQvBqDxkUKyP+51AI75DMtb+Wcyw4Bw== +metro-symbolicate@0.66.2: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.66.2.tgz#addd095ce5f77e73ca21ddb5dfb396ff5d4fa041" + integrity sha512-u+DeQHyAFXVD7mVP+GST/894WHJ3i/U8oEJFnT7U3P52ZuLgX8n4tMNxhqZU12RcLR6etF8143aP0Ktx1gFLEQ== dependencies: invariant "^2.2.4" - metro-source-map "0.59.0" + metro-source-map "0.66.2" + nullthrows "^1.1.1" source-map "^0.5.6" through2 "^2.0.1" vlq "^1.0.0" -metro@0.59.0, metro@^0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro/-/metro-0.59.0.tgz#64a87cd61357814a4f279518e0781b1eab5934b8" - integrity sha512-OpVgYXyuTvouusFZQJ/UYKEbwfLmialrSCUUTGTFaBor6UMUHZgXPYtK86LzesgMqRc8aiuTQVO78iKW2Iz3wg== +metro-transform-plugins@0.66.2: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.66.2.tgz#39dd044a23b1343e4f2d2ec34d08128cdf255ed4" + integrity sha512-KTvqplh0ut7oDKovvDG6yzXM02R6X+9b2oVG+qYq8Zd3aCGTi51ASx4ThCNkAHyEvCuJdYg9fxXTL+j+wvhB5w== + dependencies: + "@babel/core" "^7.14.0" + "@babel/generator" "^7.14.0" + "@babel/template" "^7.0.0" + "@babel/traverse" "^7.14.0" + nullthrows "^1.1.1" + +metro-transform-worker@0.66.2: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.66.2.tgz#0a8455992132c479721accd52c9bd47deb77769e" + integrity sha512-dO4PtYOMGB7Vzte8aIzX39xytODhmbJrBYPu+zYzlDjyefJZT7BkZ0LkPIThtyJi96xWcGqi9JBSo0CeRupAHw== + dependencies: + "@babel/core" "^7.14.0" + "@babel/generator" "^7.14.0" + "@babel/parser" "^7.14.0" + "@babel/types" "^7.0.0" + babel-preset-fbjs "^3.4.0" + metro "0.66.2" + metro-babel-transformer "0.66.2" + metro-cache "0.66.2" + metro-cache-key "0.66.2" + metro-hermes-compiler "0.66.2" + metro-source-map "0.66.2" + metro-transform-plugins "0.66.2" + nullthrows "^1.1.1" + +metro@0.66.2, metro@^0.66.1: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro/-/metro-0.66.2.tgz#f21759bf00995470e7577b5b88a5277963f24492" + integrity sha512-uNsISfcQ3iKKSHoN5Q+LAh0l3jeeg7ZcNZ/4BAHGsk02erA0OP+l2m+b5qYVoPptHz9Oc3KyG5oGJoTu41pWjg== dependencies: "@babel/code-frame" "^7.0.0" - "@babel/core" "^7.0.0" - "@babel/generator" "^7.5.0" - "@babel/parser" "^7.0.0" - "@babel/plugin-external-helpers" "^7.0.0" + "@babel/core" "^7.14.0" + "@babel/generator" "^7.14.0" + "@babel/parser" "^7.14.0" "@babel/template" "^7.0.0" - "@babel/traverse" "^7.0.0" + "@babel/traverse" "^7.14.0" "@babel/types" "^7.0.0" absolute-path "^0.0.0" + accepts "^1.3.7" async "^2.4.0" - babel-preset-fbjs "^3.3.0" - buffer-crc32 "^0.2.13" - chalk "^2.4.1" + chalk "^4.0.0" ci-info "^2.0.0" - concat-stream "^1.6.0" connect "^3.6.5" debug "^2.2.0" denodeify "^1.2.1" error-stack-parser "^2.0.6" - eventemitter3 "^3.0.0" - fbjs "^1.0.0" fs-extra "^1.0.0" graceful-fs "^4.1.3" + hermes-parser "0.4.7" image-size "^0.6.0" invariant "^2.2.4" - jest-haste-map "^24.9.0" - jest-worker "^24.9.0" - json-stable-stringify "^1.0.1" + jest-haste-map "^26.5.2" + jest-worker "^26.0.0" lodash.throttle "^4.1.1" - merge-stream "^1.0.1" - metro-babel-register "0.59.0" - metro-babel-transformer "0.59.0" - metro-cache "0.59.0" - metro-config "0.59.0" - metro-core "0.59.0" - metro-inspector-proxy "0.59.0" - metro-minify-uglify "0.59.0" - metro-react-native-babel-preset "0.59.0" - metro-resolver "0.59.0" - metro-source-map "0.59.0" - metro-symbolicate "0.59.0" - mime-types "2.1.11" + metro-babel-register "0.66.2" + metro-babel-transformer "0.66.2" + metro-cache "0.66.2" + metro-cache-key "0.66.2" + metro-config "0.66.2" + metro-core "0.66.2" + metro-hermes-compiler "0.66.2" + metro-inspector-proxy "0.66.2" + metro-minify-uglify "0.66.2" + metro-react-native-babel-preset "0.66.2" + metro-resolver "0.66.2" + metro-runtime "0.66.2" + metro-source-map "0.66.2" + metro-symbolicate "0.66.2" + metro-transform-plugins "0.66.2" + metro-transform-worker "0.66.2" + mime-types "^2.1.27" mkdirp "^0.5.1" node-fetch "^2.2.0" nullthrows "^1.1.1" - resolve "^1.5.0" rimraf "^2.5.4" serialize-error "^2.1.0" source-map "^0.5.6" - strip-ansi "^4.0.0" + strip-ansi "^6.0.0" temp "0.8.3" - throat "^4.1.0" - wordwrap "^1.0.0" + throat "^5.0.0" ws "^1.1.5" - xpipe "^1.0.5" - yargs "^14.2.0" + yargs "^15.3.1" micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" @@ -5017,7 +4913,7 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -micromatch@^4.0.4: +micromatch@^4.0.2, micromatch@^4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== @@ -5035,19 +4931,7 @@ mime-db@1.51.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== -mime-db@~1.23.0: - version "1.23.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.23.0.tgz#a31b4070adaea27d732ea333740a64d0ec9a6659" - integrity sha1-oxtAcK2uon1zLqMzdApk0OyaZlk= - -mime-types@2.1.11: - version "2.1.11" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.11.tgz#c259c471bda808a85d6cd193b430a5fae4473b3c" - integrity sha1-wlnEcb2oCKhdbNGTtDCl+uRHOzw= - dependencies: - mime-db "~1.23.0" - -mime-types@^2.1.12: +mime-types@^2.1.12, mime-types@^2.1.27: version "2.1.34" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== @@ -5081,7 +4965,7 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -"minimatch@2 || 3", minimatch@^3.0.4: +"minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== @@ -5133,11 +5017,6 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -mute-stream@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= - mv@~2: version "2.1.1" resolved "https://registry.yarnpkg.com/mv/-/mv-2.1.1.tgz#ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2" @@ -5147,7 +5026,7 @@ mv@~2: ncp "~2.0.0" rimraf "~2.4.0" -nan@^2.12.1, nan@^2.14.0: +nan@^2.14.0: version "2.15.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== @@ -5189,6 +5068,11 @@ negotiator@0.6.2: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== +neo-async@^2.5.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" @@ -5199,19 +5083,18 @@ nocache@^2.1.0: resolved "https://registry.yarnpkg.com/nocache/-/nocache-2.1.0.tgz#120c9ffec43b5729b1d5de88cd71aa75a0ba491f" integrity sha512-0L9FvHG3nfnnmaEQPjT9xhfN4ISk0A8/2j4M37Np4mcDesJjHgEUfgPhdCyZuFI954tjokaIj/A3NdpFNdEh4Q== +node-dir@^0.1.17: + version "0.1.17" + resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" + integrity sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU= + dependencies: + minimatch "^3.0.2" + node-fetch@2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== -node-fetch@^1.0.1: - version "1.7.3" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" - integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== - dependencies: - encoding "^0.1.11" - is-stream "^1.0.1" - node-fetch@^2.2.0, node-fetch@^2.6.0: version "2.6.5" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.5.tgz#42735537d7f080a7e5f78b6c549b7146be1742fd" @@ -5285,12 +5168,12 @@ nwsapi@^2.2.0: resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== -ob1@0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.59.0.tgz#ee103619ef5cb697f2866e3577da6f0ecd565a36" - integrity sha512-opXMTxyWJ9m68ZglCxwo0OPRESIC/iGmKFPXEXzMZqsVIrgoRXOHmoMDkQzz4y3irVjbyPJRAh5pI9fd0MJTFQ== +ob1@0.66.2: + version "0.66.2" + resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.66.2.tgz#8caf548202cf2688944bae47db405a08bca17a61" + integrity sha512-RFewnL/RjE0qQBOuM+2bbY96zmJPIge/aDtsiDbLSb+MOiK8CReAhBHDgL+zrA3F1hQk00lMWpUwYcep750plA== -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -5407,7 +5290,7 @@ ora@^3.4.0: strip-ansi "^5.2.0" wcwidth "^1.0.1" -os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: +os-tmpdir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= @@ -5451,11 +5334,6 @@ parse-json@^4.0.0: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" -parse-node-version@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" - integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== - parse5@6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" @@ -5566,7 +5444,7 @@ pkg-up@^3.1.0: dependencies: find-up "^3.0.0" -plist@^3.0.1: +plist@^3.0.1, plist@^3.0.2: version "3.0.4" resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.4.tgz#a62df837e3aed2bb3b735899d510c4f186019cbe" integrity sha512-ksrr8y9+nXOxQB2osVNqrgvX/XQPOXaU4BQMKjYq8PvaY1U18mo+fKgBSwzK+luSyinOuPae956lSVcBwxlAMg== @@ -5574,17 +5452,6 @@ plist@^3.0.1: base64-js "^1.5.1" xmlbuilder "^9.0.7" -plugin-error@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-0.1.2.tgz#3b9bb3335ccf00f425e07437e19276967da47ace" - integrity sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4= - dependencies: - ansi-cyan "^0.1.1" - ansi-red "^0.1.1" - arr-diff "^1.0.1" - arr-union "^2.0.1" - extend-shallow "^1.1.2" - posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" @@ -5595,25 +5462,15 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= -pretty-format@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9" - integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA== - dependencies: - "@jest/types" "^24.9.0" - ansi-regex "^4.0.0" - ansi-styles "^3.2.0" - react-is "^16.8.4" - -pretty-format@^25.1.0, pretty-format@^25.2.0: - version "25.5.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.5.0.tgz#7873c1d774f682c34b8d48b6743a2bf2ac55791a" - integrity sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ== +pretty-format@^26.5.2, pretty-format@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" + integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== dependencies: - "@jest/types" "^25.5.0" + "@jest/types" "^26.6.2" ansi-regex "^5.0.0" ansi-styles "^4.0.0" - react-is "^16.12.0" + react-is "^17.0.1" pretty-format@^27.0.0, pretty-format@^27.3.1: version "27.3.1" @@ -5649,7 +5506,7 @@ promise@^8.0.3: dependencies: asap "~2.0.6" -prompts@^2.0.1: +prompts@^2.0.1, prompts@^2.4.0: version "2.4.2" resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== @@ -5657,7 +5514,7 @@ prompts@^2.0.1: kleur "^3.0.3" sisteransi "^1.0.5" -prop-types@^15.6.2, prop-types@^15.7.2: +prop-types@^15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== @@ -5743,15 +5600,20 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" -react-devtools-core@^4.6.0: - version "4.19.2" - resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-4.19.2.tgz#57f5d19b67e8658323474ab51c6c1292bf8243c9" - integrity sha512-Z9K+h9gjEwimZtZB1NsWm5hQsxAcElW0GI2KXLQDpk2o1YIZQ+lOSesUr0npUyLeb37k2hTtyxp8wumeRJpG5Q== +react-devtools-core@^4.13.0: + version "4.21.0" + resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-4.21.0.tgz#a54c9a0fd7261491e616d6c87d1869e011d8521d" + integrity sha512-clGWwJHV5MHwTwYyKc+7FZHwzdbzrD2/AoZSkicUcr6YLc3Za9a9FaLhccWDHfjQ+ron9yzNhDT6Tv+FiPkD3g== dependencies: shell-quote "^1.6.1" ws "^7" -react-is@^16.12.0, react-is@^16.13.0, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.4: +react-freeze@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/react-freeze/-/react-freeze-1.0.0.tgz#b21c65fe1783743007c8c9a2952b1c8879a77354" + integrity sha512-yQaiOqDmoKqks56LN9MTgY06O0qQHgV4FUrikH357DydArSZHQhl0BJFqGKIZoTqi8JizF9Dxhuk1FIZD6qCaw== + +react-is@^16.13.0, react-is@^16.7.0, react-is@^16.8.1: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -5761,6 +5623,15 @@ react-is@^17.0.1: resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== +react-native-codegen@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/react-native-codegen/-/react-native-codegen-0.0.7.tgz#86651c5c5fec67a8077ef7f4e36f7ed459043e14" + integrity sha512-dwNgR8zJ3ALr480QnAmpTiqvFo+rDtq6V5oCggKhYFlRjzOmVSFn3YD41u8ltvKS5G2nQ8gCs2vReFFnRGLYng== + dependencies: + flow-parser "^0.121.0" + jscodeshift "^0.11.0" + nullthrows "^1.1.1" + react-native-config@^1.4.5: version "1.4.5" resolved "https://registry.yarnpkg.com/react-native-config/-/react-native-config-1.4.5.tgz#6fe5895410b75e44fe4f4bf00caaf894a0981f3a" @@ -5782,14 +5653,16 @@ react-native-iphone-x-helper@^1.3.0: resolved "https://registry.yarnpkg.com/react-native-iphone-x-helper/-/react-native-iphone-x-helper-1.3.1.tgz#20c603e9a0e765fd6f97396638bdeb0e5a60b010" integrity sha512-HOf0jzRnq2/aFUcdCJ9w9JGzN3gdEg0zFE4FyYlp4jtidqU03D5X7ZegGKfT1EWteR0gPBGp9ye5T5FvSWi9Yg== -react-native-reanimated@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/react-native-reanimated/-/react-native-reanimated-2.2.2.tgz#8bc81c7ee93d599991507bb826050a5eeee1e7f2" - integrity sha512-Lfv4ogbNLU9x3DqhXUFza9pnzyTvPrw5xGC1wWA6aGXqZgyaikNLgC5dNWzxVbfEwRdOuLPFsai3LAcIM92TCg== +react-native-reanimated@2.3.0-beta.2: + version "2.3.0-beta.2" + resolved "https://registry.yarnpkg.com/react-native-reanimated/-/react-native-reanimated-2.3.0-beta.2.tgz#6c62422fe25d76336464b990ea2e648f2241494c" + integrity sha512-J0cBgOh0O05fNtGgHgrWfKtsYtzcAIhdNju6GVbRo6mVPp1jnuNmNQ2Dd7yXAF54+waj4w4h4pfP9D5J6EixkQ== dependencies: "@babel/plugin-transform-object-assign" "^7.10.4" - fbjs "^3.0.0" + invariant "^2.2.4" + lodash.isequal "^4.5.0" mockdate "^3.0.2" + react-native-screens "^3.4.0" string-hash-64 "^1.0.3" react-native-safe-area-context@^3.3.2: @@ -5797,6 +5670,14 @@ react-native-safe-area-context@^3.3.2: resolved "https://registry.yarnpkg.com/react-native-safe-area-context/-/react-native-safe-area-context-3.3.2.tgz#9549a2ce580f2374edb05e49d661258d1b8bcaed" integrity sha512-yOwiiPJ1rk+/nfK13eafbpW6sKW0jOnsRem2C1LPJjM3tfTof6hlvV5eWHATye3XOpu2cJ7N+HdkUvUDGwFD2Q== +react-native-screens@^3.4.0: + version "3.10.1" + resolved "https://registry.yarnpkg.com/react-native-screens/-/react-native-screens-3.10.1.tgz#2634a1a17380c559a06de391e4969ae72c4365ff" + integrity sha512-ZF/XHnRsuinvDY1XiCWLXxoUoSf+NgsAes2SZfX9rFQQcv128zmh/+19SSavGrSf6rQNzqytEMdRGI6yr4Gbjw== + dependencies: + react-freeze "^1.0.0" + warn-once "^0.1.0" + react-native-screens@^3.8.0: version "3.8.0" resolved "https://registry.yarnpkg.com/react-native-screens/-/react-native-screens-3.8.0.tgz#4ec84c55a7b4a4aa9405c812978ca2ba5c0242a4" @@ -5804,54 +5685,57 @@ react-native-screens@^3.8.0: dependencies: warn-once "^0.1.0" -react-native@0.63.4: - version "0.63.4" - resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.63.4.tgz#2210fdd404c94a5fa6b423c6de86f8e48810ec36" - integrity sha512-I4kM8kYO2mWEYUFITMcpRulcy4/jd+j9T6PbIzR0FuMcz/xwd+JwHoLPa1HmCesvR1RDOw9o4D+OFLwuXXfmGw== - dependencies: - "@babel/runtime" "^7.0.0" - "@react-native-community/cli" "^4.10.0" - "@react-native-community/cli-platform-android" "^4.10.0" - "@react-native-community/cli-platform-ios" "^4.10.0" +react-native@0.66.3: + version "0.66.3" + resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.66.3.tgz#25c7c4c7d81867326b3eb7a36f0fe6a61fa4104e" + integrity sha512-B/dQpuvta9YvF5MihDWefoGlTvxzUHK5X5RjdrXHAu/ihTehJXxEA+m6z/tufp1ZUMDjU+tMZK6gnehzCuYfzw== + dependencies: + "@jest/create-cache-key-function" "^27.0.1" + "@react-native-community/cli" "^6.0.0" + "@react-native-community/cli-platform-android" "^6.0.0" + "@react-native-community/cli-platform-ios" "^6.0.0" + "@react-native/assets" "1.0.0" + "@react-native/normalize-color" "1.0.0" + "@react-native/polyfills" "2.0.0" abort-controller "^3.0.0" anser "^1.4.9" base64-js "^1.1.2" event-target-shim "^5.0.1" - fbjs "^1.0.0" - fbjs-scripts "^1.1.0" - hermes-engine "~0.5.0" + hermes-engine "~0.9.0" invariant "^2.2.4" - jsc-android "^245459.0.0" - metro-babel-register "0.59.0" - metro-react-native-babel-transformer "0.59.0" - metro-source-map "0.59.0" + jsc-android "^250230.2.1" + metro-babel-register "0.66.2" + metro-react-native-babel-transformer "0.66.2" + metro-runtime "0.66.2" + metro-source-map "0.66.2" nullthrows "^1.1.1" - pretty-format "^24.9.0" + pretty-format "^26.5.2" promise "^8.0.3" prop-types "^15.7.2" - react-devtools-core "^4.6.0" + react-devtools-core "^4.13.0" + react-native-codegen "^0.0.7" react-refresh "^0.4.0" regenerator-runtime "^0.13.2" - scheduler "0.19.1" + scheduler "^0.20.2" stacktrace-parser "^0.1.3" use-subscription "^1.0.0" whatwg-fetch "^3.0.0" + ws "^6.1.4" react-refresh@^0.4.0: version "0.4.3" resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.4.3.tgz#966f1750c191672e76e16c2efa569150cc73ab53" integrity sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA== -react@16.13.1: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" - integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w== +react@17.0.2: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" + integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" - prop-types "^15.6.2" -readable-stream@^2.0.1, readable-stream@^2.2.2, readable-stream@~2.3.6: +readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -5871,6 +5755,21 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" +readline@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/readline/-/readline-1.3.0.tgz#c580d77ef2cfc8752b132498060dc9793a7ac01c" + integrity sha1-xYDXfvLPyHUrEySYBg3JeTp6wBw= + +recast@^0.20.3: + version "0.20.5" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.20.5.tgz#8e2c6c96827a1b339c634dd232957d230553ceae" + integrity sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ== + dependencies: + ast-types "0.14.2" + esprima "~4.0.0" + source-map "~0.6.1" + tslib "^2.0.1" + regenerate-unicode-properties@^9.0.0: version "9.0.0" resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz#54d09c7115e1f53dc2314a974b32c1c344efe326" @@ -5984,7 +5883,7 @@ resolve.exports@^1.1.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== -resolve@^1.13.1, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.5.0: +resolve@^1.13.1, resolve@^1.14.2, resolve@^1.20.0: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -6036,28 +5935,18 @@ rimraf@~2.4.0: dependencies: glob "^6.0.1" +rimraf@~2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + rsvp@^4.8.4: version "4.8.5" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== -run-async@^2.2.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== - -rx-lite-aggregates@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" - integrity sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74= - dependencies: - rx-lite "*" - -rx-lite@*, rx-lite@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" - integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ= - safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -6075,7 +5964,7 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": +"safer-buffer@>= 2.1.2 < 3": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -6114,10 +6003,10 @@ saxes@^5.0.1: dependencies: xmlchars "^2.2.0" -scheduler@0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" - integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== +scheduler@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" + integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" @@ -6127,7 +6016,7 @@ semver@7.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@^5.1.0, semver@^5.5.0, semver@^5.6.0: +semver@^5.5.0, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -6401,13 +6290,6 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= -stack-utils@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.5.tgz#a19b0b01947e0029c8e451d5d61a498f5bb1471b" - integrity sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ== - dependencies: - escape-string-regexp "^2.0.0" - stack-utils@^2.0.3: version "2.0.5" resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" @@ -6463,23 +6345,6 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -string-width@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - string-width@^4.1.0, string-width@^4.2.0: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -6496,14 +6361,7 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: +strip-ansi@^5.0.0, strip-ansi@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== @@ -6552,13 +6410,6 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - supports-color@^7.0.0, supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" @@ -6611,6 +6462,13 @@ temp@0.8.3: os-tmpdir "^1.0.0" rimraf "~2.2.6" +temp@^0.8.1: + version "0.8.4" + resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.4.tgz#8c97a33a4770072e0a05f919396c7665a7dd59f2" + integrity sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg== + dependencies: + rimraf "~2.6.2" + tempfile@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/tempfile/-/tempfile-2.0.0.tgz#6b0446856a9b1114d1856ffcbe509cccb0977265" @@ -6636,17 +6494,17 @@ test-exclude@^6.0.0: glob "^7.1.4" minimatch "^3.0.4" -throat@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" - integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= +throat@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" + integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== throat@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== -through2@^2.0.0, through2@^2.0.1: +through2@^2.0.1: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== @@ -6654,23 +6512,6 @@ through2@^2.0.0, through2@^2.0.1: readable-stream "~2.3.6" xtend "~4.0.1" -through@^2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -time-stamp@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" - integrity sha1-dkpaEa9QVhkhsTPztE5hhofg9cM= - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - tmpl@1.0.x: version "1.0.5" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" @@ -6746,6 +6587,11 @@ truncate-utf8-bytes@^1.0.0: dependencies: utf8-byte-length "^1.0.1" +tslib@^2.0.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" + integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== + type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" @@ -6788,11 +6634,6 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - ua-parser-js@^0.7.18: version "0.7.28" resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.28.tgz#8ba04e653f35ce210239c64661685bf9121dec31" @@ -6973,7 +6814,7 @@ whatwg-encoding@^1.0.5: dependencies: iconv-lite "0.4.24" -whatwg-fetch@>=0.10.0, whatwg-fetch@^3.0.0: +whatwg-fetch@^3.0.0: version "3.6.2" resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c" integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA== @@ -7024,20 +6865,6 @@ word-wrap@~1.2.3: resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== -wordwrap@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= - -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" @@ -7061,6 +6888,15 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= +write-file-atomic@^2.3.0: + version "2.4.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" + integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + write-file-atomic@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" @@ -7079,6 +6915,13 @@ ws@^1.1.0, ws@^1.1.5: options ">=0.0.5" ultron "1.0.x" +ws@^6.1.4: + version "6.2.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" + integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== + dependencies: + async-limiter "~1.0.0" + ws@^7, ws@^7.0.0, ws@^7.4.6: version "7.5.5" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.5.tgz#8b4bc4af518cfabd0473ae4f99144287b33eb881" @@ -7114,11 +6957,6 @@ xmldoc@^1.1.2: dependencies: sax "^1.2.1" -xpipe@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/xpipe/-/xpipe-1.0.5.tgz#8dd8bf45fc3f7f55f0e054b878f43a62614dafdf" - integrity sha1-jdi/Rfw/f1Xw4FS4ePQ6YmFNr98= - xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" @@ -7144,14 +6982,6 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yargs-parser@^15.0.1: - version "15.0.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.3.tgz#316e263d5febe8b38eef61ac092b33dfcc9b1115" - integrity sha512-/MVEVjTXy/cGAjdtQf8dW3V9b97bPN7rNn8ETj6BmAQL7ibC7O1Q9SPJbGjgh3SlwoBNXMzj/ZGIj8mBgl12YA== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - yargs-parser@^18.1.2: version "18.1.3" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" @@ -7175,24 +7005,7 @@ yargs-unparser@^2.0.0: flat "^5.0.2" is-plain-obj "^2.1.0" -yargs@^14.2.0: - version "14.2.3" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414" - integrity sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg== - dependencies: - cliui "^5.0.0" - decamelize "^1.2.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^15.0.1" - -yargs@^15.1.0: +yargs@^15.1.0, yargs@^15.3.1: version "15.4.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== diff --git a/package.json b/package.json index 8c68ccc3..1a100d6a 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "@types/react-native": "0.62.13", "commitlint": "^11.0.0", "detox": "^18.7.1", - "eslint": "^7.2.0", + "eslint": "^7.14.0", "eslint-config-prettier": "^7.0.0", "eslint-plugin-detox": "^1.0.0", "eslint-plugin-prettier": "^3.1.3", @@ -72,8 +72,8 @@ "jest": "^27.3.1", "pod-install": "^0.1.0", "prettier": "^2.0.5", - "react": "16.13.1", - "react-native": "0.63.4", + "react": "17.0.2", + "react-native": "0.66.3", "react-native-builder-bob": "^0.18.0", "typescript": "^4.1.3", "typedoc": "^0.21.5" diff --git a/yarn.lock b/yarn.lock index cd5f8311..7cd4cd01 100644 --- a/yarn.lock +++ b/yarn.lock @@ -33,7 +33,7 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.4.tgz#081d6bbc336ec5c2435c6346b2ae1fb98b5ac68e" integrity sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q== -"@babel/core@^7.0.0", "@babel/core@^7.1.0", "@babel/core@^7.12.10", "@babel/core@^7.7.5": +"@babel/core@^7.1.0", "@babel/core@^7.12.10", "@babel/core@^7.7.5": version "7.15.8" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.8.tgz#195b9f2bffe995d2c6c159e72fe525b4114e8c10" integrity sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og== @@ -54,7 +54,7 @@ semver "^6.3.0" source-map "^0.5.0" -"@babel/core@^7.7.2": +"@babel/core@^7.1.6", "@babel/core@^7.14.0", "@babel/core@^7.7.2": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.0.tgz#c4ff44046f5fe310525cc9eb4ef5147f0c5374d4" integrity sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ== @@ -75,16 +75,7 @@ semver "^6.3.0" source-map "^0.5.0" -"@babel/generator@^7.15.4", "@babel/generator@^7.15.8", "@babel/generator@^7.5.0": - version "7.15.8" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.8.tgz#fa56be6b596952ceb231048cf84ee499a19c0cd1" - integrity sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g== - dependencies: - "@babel/types" "^7.15.6" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/generator@^7.16.0", "@babel/generator@^7.7.2": +"@babel/generator@^7.14.0", "@babel/generator@^7.16.0", "@babel/generator@^7.7.2": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.0.tgz#d40f3d1d5075e62d3500bccb67f3daa8a95265b2" integrity sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew== @@ -93,6 +84,15 @@ jsesc "^2.5.1" source-map "^0.5.0" +"@babel/generator@^7.15.4", "@babel/generator@^7.15.8": + version "7.15.8" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.8.tgz#fa56be6b596952ceb231048cf84ee499a19c0cd1" + integrity sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g== + dependencies: + "@babel/types" "^7.15.6" + jsesc "^2.5.1" + source-map "^0.5.0" + "@babel/helper-annotate-as-pure@^7.14.5", "@babel/helper-annotate-as-pure@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz#3d0e43b00c5e49fdb6c57e421601a7a658d5f835" @@ -100,6 +100,13 @@ dependencies: "@babel/types" "^7.15.4" +"@babel/helper-annotate-as-pure@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.0.tgz#9a1f0ebcda53d9a2d00108c4ceace6a5d5f1f08d" + integrity sha512-ItmYF9vR4zA8cByDocY05o0LGUkp1zhbTQOH1NFyl5xXEqlTJQCEJjieriw+aFpxo16swMxUnUiKS7a/r4vtHg== + dependencies: + "@babel/types" "^7.16.0" + "@babel/helper-builder-binary-assignment-operator-visitor@^7.14.5": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.15.4.tgz#21ad815f609b84ee0e3058676c33cf6d1670525f" @@ -140,6 +147,18 @@ "@babel/helper-replace-supers" "^7.15.4" "@babel/helper-split-export-declaration" "^7.15.4" +"@babel/helper-create-class-features-plugin@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.0.tgz#090d4d166b342a03a9fec37ef4fd5aeb9c7c6a4b" + integrity sha512-XLwWvqEaq19zFlF5PTgOod4bUA+XbkR4WLQBct1bkzmxJGB0ZEJaoKF4c8cgH9oBtCDuYJ8BP5NB9uFiEgO5QA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.0" + "@babel/helper-function-name" "^7.16.0" + "@babel/helper-member-expression-to-functions" "^7.16.0" + "@babel/helper-optimise-call-expression" "^7.16.0" + "@babel/helper-replace-supers" "^7.16.0" + "@babel/helper-split-export-declaration" "^7.16.0" + "@babel/helper-create-regexp-features-plugin@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz#c7d5ac5e9cf621c26057722fb7a8a4c5889358c4" @@ -299,6 +318,15 @@ "@babel/helper-wrap-function" "^7.15.4" "@babel/types" "^7.15.4" +"@babel/helper-remap-async-to-generator@^7.16.0": + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.4.tgz#5d7902f61349ff6b963e07f06a389ce139fbfe6e" + integrity sha512-vGERmmhR+s7eH5Y/cp8PCVzj4XEjerq8jooMfxFdA5xVtAk9Sh4AQsrWgiErUEBjtGrBtOFKDUcWQFW4/dFwMA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.0" + "@babel/helper-wrap-function" "^7.16.0" + "@babel/types" "^7.16.0" + "@babel/helper-replace-supers@^7.14.5", "@babel/helper-replace-supers@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz#52a8ab26ba918c7f6dee28628b07071ac7b7347a" @@ -340,6 +368,13 @@ dependencies: "@babel/types" "^7.15.4" +"@babel/helper-skip-transparent-expression-wrappers@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09" + integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw== + dependencies: + "@babel/types" "^7.16.0" + "@babel/helper-split-export-declaration@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz#aecab92dcdbef6a10aa3b62ab204b085f776e257" @@ -374,6 +409,16 @@ "@babel/traverse" "^7.15.4" "@babel/types" "^7.15.4" +"@babel/helper-wrap-function@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.0.tgz#b3cf318afce774dfe75b86767cd6d68f3482e57c" + integrity sha512-VVMGzYY3vkWgCJML+qVLvGIam902mJW0FvT7Avj1zEe0Gn7D93aWdLblYARTxEw+6DhZmtzhBM2zv0ekE5zg1g== + dependencies: + "@babel/helper-function-name" "^7.16.0" + "@babel/template" "^7.16.0" + "@babel/traverse" "^7.16.0" + "@babel/types" "^7.16.0" + "@babel/helpers@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.15.4.tgz#5f40f02050a3027121a3cf48d497c05c555eaf43" @@ -410,12 +455,12 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.15.4", "@babel/parser@^7.15.8", "@babel/parser@^7.7.0": +"@babel/parser@^7.1.0", "@babel/parser@^7.15.4", "@babel/parser@^7.15.8", "@babel/parser@^7.7.0": version "7.15.8" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.8.tgz#7bacdcbe71bdc3ff936d510c15dcea7cf0b99016" integrity sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA== -"@babel/parser@^7.16.0", "@babel/parser@^7.16.3", "@babel/parser@^7.7.2": +"@babel/parser@^7.1.6", "@babel/parser@^7.14.0", "@babel/parser@^7.16.0", "@babel/parser@^7.16.3", "@babel/parser@^7.7.2": version "7.16.4" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.4.tgz#d5f92f57cf2c74ffe9b37981c0e72fee7311372e" integrity sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng== @@ -429,13 +474,6 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.15.4" "@babel/plugin-proposal-optional-chaining" "^7.14.5" -"@babel/plugin-external-helpers@^7.0.0": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-external-helpers/-/plugin-external-helpers-7.14.5.tgz#920baa1569a8df5d5710abc342c7b1ac8968ed76" - integrity sha512-q/B/hLX+nDGk73Xn529d7Ar4ih17J8pNBbsXafq8oXij0XfFEA/bks+u+6q5q04zO5o/qivjzui6BqzPfYShEg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-proposal-async-generator-functions@^7.15.8": version "7.15.8" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.8.tgz#a3100f785fab4357987c4223ab1b02b599048403" @@ -453,6 +491,14 @@ "@babel/helper-create-class-features-plugin" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-proposal-class-properties@^7.1.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.0.tgz#c029618267ddebc7280fa286e0f8ca2a278a2d1a" + integrity sha512-mCF3HcuZSY9Fcx56Lbn+CGdT44ioBMMvjNVldpKtj8tpniETdLjnxdHI1+sDWXIM1nNt+EanJOZ3IG9lzVjs7A== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-proposal-class-static-block@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.15.4.tgz#3e7ca6128453c089e8b477a99f970c63fc1cb8d7" @@ -510,6 +556,14 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" +"@babel/plugin-proposal-nullish-coalescing-operator@^7.1.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.0.tgz#44e1cce08fe2427482cf446a91bb451528ed0596" + integrity sha512-3bnHA8CAFm7cG93v8loghDYyQ8r97Qydf63BeYiGgYbjKKB/XP53W15wfRC7dvKfoiJ34f6Rbyyx2btExc8XsQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-proposal-numeric-separator@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz#83631bf33d9a51df184c2102a069ac0c58c05f18" @@ -546,6 +600,15 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" "@babel/plugin-syntax-optional-chaining" "^7.8.3" +"@babel/plugin-proposal-optional-chaining@^7.1.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.0.tgz#56dbc3970825683608e9efb55ea82c2a2d6c8dc0" + integrity sha512-Y4rFpkZODfHrVo70Uaj6cC1JJOt3Pp0MdWSwIKtb8z1/lsjl9AmnB7ErRFV+QNGIfcY1Eruc2UMx5KaRnXjMyg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-proposal-private-methods@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz#37446495996b2945f30f5be5b60d5e2aa4f5792d" @@ -628,6 +691,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-syntax-flow@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.0.tgz#07427021d093ed77019408221beaf0272bbcfaec" + integrity sha512-dH91yCo0RyqfzWgoM5Ji9ir8fQ+uFbt9KHM3d2x4jZOuHS6wNA+CRmRUP/BWCsHG2bjc7A2Way6AvH1eQk0wig== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-import-meta@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" @@ -712,7 +782,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.7.2": +"@babel/plugin-syntax-typescript@^7.16.0", "@babel/plugin-syntax-typescript@^7.7.2": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.0.tgz#2feeb13d9334cc582ea9111d3506f773174179bb" integrity sha512-Xv6mEXqVdaqCBfJFyeab0fH2DnUoMsDmhamxsSi4j8nLd4Vtw213WMJr55xxqipC/YVWyPY3K0blJncPYji+dQ== @@ -726,6 +796,15 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-async-to-generator@^7.0.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.0.tgz#df12637f9630ddfa0ef9d7a11bc414d629d38604" + integrity sha512-PbIr7G9kR8tdH6g8Wouir5uVjklETk91GMVSUq+VaOgiinbCkBP6Q7NN/suM/QutZkMJMvcyAriogcYAdhg8Gw== + dependencies: + "@babel/helper-module-imports" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-remap-async-to-generator" "^7.16.0" + "@babel/plugin-transform-async-to-generator@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz#72c789084d8f2094acb945633943ef8443d39e67" @@ -807,6 +886,14 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-flow" "^7.14.5" +"@babel/plugin-transform-flow-strip-types@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.0.tgz#edd968dc2041c1b69e451a262e948d6654a79dc2" + integrity sha512-vs/F5roOaO/+WxKfp9PkvLsAyj0G+Q0zbFimHm9X2KDgabN2XmNFoAafmeGEYspUlIF9+MvVmyek9UyHiqeG/w== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-flow" "^7.16.0" + "@babel/plugin-transform-for-of@^7.0.0", "@babel/plugin-transform-for-of@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.15.4.tgz#25c62cce2718cfb29715f416e75d5263fb36a8c2" @@ -855,6 +942,16 @@ "@babel/helper-simple-access" "^7.15.4" babel-plugin-dynamic-import-node "^2.3.3" +"@babel/plugin-transform-modules-commonjs@^7.1.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.0.tgz#add58e638c8ddc4875bd9a9ecb5c594613f6c922" + integrity sha512-Dzi+NWqyEotgzk/sb7kgQPJQf7AJkQBWsVp1N6JWc1lBVo0vkElUnGdr1PzUBmfsCCN5OOFya3RtpeHk15oLKQ== + dependencies: + "@babel/helper-module-transforms" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-simple-access" "^7.16.0" + babel-plugin-dynamic-import-node "^2.3.3" + "@babel/plugin-transform-modules-systemjs@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.15.4.tgz#b42890c7349a78c827719f1d2d0cd38c7d268132" @@ -1035,6 +1132,15 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-typescript" "^7.14.5" +"@babel/plugin-transform-typescript@^7.16.0": + version "7.16.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.1.tgz#cc0670b2822b0338355bc1b3d2246a42b8166409" + integrity sha512-NO4XoryBng06jjw/qWEU2LhcLJr1tWkhpMam/H4eas/CDKMX/b2/Ylb6EI256Y7+FVPCawwSM1rrJNOpDiz+Lg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-typescript" "^7.16.0" + "@babel/plugin-transform-unicode-escapes@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz#9d4bd2a681e3c5d7acf4f57fa9e51175d91d0c6b" @@ -1129,6 +1235,15 @@ core-js-compat "^3.16.0" semver "^6.3.0" +"@babel/preset-flow@^7.0.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.16.0.tgz#9f1f6e72714d79460d48058cb5658fc87da7150b" + integrity sha512-e5NE1EoPMpoHFkyFkMSj2h9tu7OolARcUHki8mnBv4NiFK9so+UrhbvT9mV99tMJOUEx8BOj67T6dXvGcTeYeQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + "@babel/plugin-transform-flow-strip-types" "^7.16.0" + "@babel/preset-flow@^7.12.1": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.14.5.tgz#a1810b0780c8b48ab0bece8e7ab8d0d37712751c" @@ -1161,6 +1276,15 @@ "@babel/plugin-transform-react-jsx-development" "^7.14.5" "@babel/plugin-transform-react-pure-annotations" "^7.14.5" +"@babel/preset-typescript@^7.1.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.16.0.tgz#b0b4f105b855fb3d631ec036cdc9d1ffd1fa5eac" + integrity sha512-txegdrZYgO9DlPbv+9QOVpMnKbOtezsLHWsnsRF4AjbSIsVaujrq1qg8HK0mxQpWv0jnejt0yEoW1uWpvbrDTg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + "@babel/plugin-transform-typescript" "^7.16.0" + "@babel/preset-typescript@^7.12.7": version "7.15.0" resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.15.0.tgz#e8fca638a1a0f64f14e1119f7fe4500277840945" @@ -1181,7 +1305,7 @@ pirates "^4.0.0" source-map-support "^0.5.16" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.11.2", "@babel/runtime@^7.8.4": +"@babel/runtime@^7.11.2", "@babel/runtime@^7.8.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.4.tgz#fd17d16bfdf878e6dd02d19753a39fa8a8d9c84a" integrity sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw== @@ -1206,7 +1330,7 @@ "@babel/parser" "^7.16.0" "@babel/types" "^7.16.0" -"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.15.4", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.4": +"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.15.4", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.4.tgz#ff8510367a144bfbff552d9e18e28f3e2889c22d" integrity sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA== @@ -1221,7 +1345,7 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/traverse@^7.16.0", "@babel/traverse@^7.16.3", "@babel/traverse@^7.7.2": +"@babel/traverse@^7.14.0", "@babel/traverse@^7.16.0", "@babel/traverse@^7.16.3", "@babel/traverse@^7.7.2": version "7.16.3" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.3.tgz#f63e8a938cc1b780f66d9ed3c54f532ca2d14787" integrity sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag== @@ -1416,37 +1540,17 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" -"@hapi/address@2.x.x": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" - integrity sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ== - -"@hapi/bourne@1.x.x": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a" - integrity sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA== - -"@hapi/hoek@8.x.x", "@hapi/hoek@^8.3.0": - version "8.5.1" - resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.5.1.tgz#fde96064ca446dec8c55a8c2f130957b070c6e06" - integrity sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow== - -"@hapi/joi@^15.0.3": - version "15.1.1" - resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-15.1.1.tgz#c675b8a71296f02833f8d6d243b34c57b8ce19d7" - integrity sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ== - dependencies: - "@hapi/address" "2.x.x" - "@hapi/bourne" "1.x.x" - "@hapi/hoek" "8.x.x" - "@hapi/topo" "3.x.x" +"@hapi/hoek@^9.0.0": + version "9.2.1" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.2.1.tgz#9551142a1980503752536b5050fd99f4a7f13b17" + integrity sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw== -"@hapi/topo@3.x.x": - version "3.1.6" - resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.6.tgz#68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29" - integrity sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ== +"@hapi/topo@^5.0.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012" + integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== dependencies: - "@hapi/hoek" "^8.3.0" + "@hapi/hoek" "^9.0.0" "@humanwhocodes/config-array@^0.5.0": version "0.5.0" @@ -1478,15 +1582,6 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.9.0.tgz#79b1bc06fb74a8cfb01cbdedf945584b1b9707f0" - integrity sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ== - dependencies: - "@jest/source-map" "^24.9.0" - chalk "^2.0.1" - slash "^2.0.0" - "@jest/console@^27.3.1": version "27.3.1" resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.3.1.tgz#e8ea3a475d3f8162f23d69efbfaa9cbe486bee93" @@ -1533,6 +1628,13 @@ slash "^3.0.0" strip-ansi "^6.0.0" +"@jest/create-cache-key-function@^27.0.1": + version "27.4.2" + resolved "https://registry.yarnpkg.com/@jest/create-cache-key-function/-/create-cache-key-function-27.4.2.tgz#09b585f9dbafec0f56cfb0e4d4edfe2bec0e0768" + integrity sha512-aSSCAJwUNX4R1hJQoyimsND5l+2EsFgzlepS8NuOJJHjXij/UdxYFngac44tmv9IYdI+kglAyORg0plt4/aFMQ== + dependencies: + "@jest/types" "^27.4.2" + "@jest/environment@^27.3.1": version "27.3.1" resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.3.1.tgz#2182defbce8d385fd51c5e7c7050f510bd4c86b1" @@ -1543,15 +1645,6 @@ "@types/node" "*" jest-mock "^27.3.0" -"@jest/fake-timers@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.9.0.tgz#ba3e6bf0eecd09a636049896434d306636540c93" - integrity sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A== - dependencies: - "@jest/types" "^24.9.0" - jest-message-util "^24.9.0" - jest-mock "^24.9.0" - "@jest/fake-timers@^27.3.1": version "27.3.1" resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.3.1.tgz#1fad860ee9b13034762cdb94266e95609dfce641" @@ -1604,15 +1697,6 @@ terminal-link "^2.0.0" v8-to-istanbul "^8.1.0" -"@jest/source-map@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.9.0.tgz#0e263a94430be4b41da683ccc1e6bffe2a191714" - integrity sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg== - dependencies: - callsites "^3.0.0" - graceful-fs "^4.1.15" - source-map "^0.6.0" - "@jest/source-map@^27.0.6": version "27.0.6" resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.0.6.tgz#be9e9b93565d49b0548b86e232092491fb60551f" @@ -1622,15 +1706,6 @@ graceful-fs "^4.2.4" source-map "^0.6.0" -"@jest/test-result@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.9.0.tgz#11796e8aa9dbf88ea025757b3152595ad06ba0ca" - integrity sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA== - dependencies: - "@jest/console" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/istanbul-lib-coverage" "^2.0.0" - "@jest/test-result@^27.3.1": version "27.3.1" resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.3.1.tgz#89adee8b771877c69b3b8d59f52f29dccc300194" @@ -1672,24 +1747,16 @@ source-map "^0.6.1" write-file-atomic "^3.0.0" -"@jest/types@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59" - integrity sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^1.1.1" - "@types/yargs" "^13.0.0" - -"@jest/types@^25.5.0": - version "25.5.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.5.0.tgz#4d6a4793f7b9599fc3680877b856a97dbccf2a9d" - integrity sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw== +"@jest/types@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" + integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== dependencies: "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^1.1.1" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" "@types/yargs" "^15.0.0" - chalk "^3.0.0" + chalk "^4.0.0" "@jest/types@^27.2.5": version "27.2.5" @@ -1702,6 +1769,17 @@ "@types/yargs" "^16.0.0" chalk "^4.0.0" +"@jest/types@^27.4.2": + version "27.4.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.4.2.tgz#96536ebd34da6392c2b7c7737d693885b5dd44a5" + integrity sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^16.0.0" + chalk "^4.0.0" + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1723,31 +1801,31 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@react-native-community/cli-debugger-ui@^4.13.1": - version "4.13.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-4.13.1.tgz#07de6d4dab80ec49231de1f1fbf658b4ad39b32c" - integrity sha512-UFnkg5RTq3s2X15fSkrWY9+5BKOFjihNSnJjTV2H5PtTUFbd55qnxxPw8CxSfK0bXb1IrSvCESprk2LEpqr5cg== +"@react-native-community/cli-debugger-ui@^6.0.0-rc.0": + version "6.0.0-rc.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-6.0.0-rc.0.tgz#774378626e4b70f5e1e2e54910472dcbaffa1536" + integrity sha512-achYcPPoWa9D02C5tn6TBzjeY443wQTyx37urptc75JpZ7gR5YHsDyIEEWa3DDYp1va9zx/iGg+uZ/hWw07GAw== dependencies: serve-static "^1.13.1" -"@react-native-community/cli-hermes@^4.13.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-4.13.0.tgz#6243ed9c709dad5e523f1ccd7d21066b32f2899d" - integrity sha512-oG+w0Uby6rSGsUkJGLvMQctZ5eVRLLfhf84lLyz942OEDxFRa9U19YJxOe9FmgCKtotbYiM3P/XhK+SVCuerPQ== +"@react-native-community/cli-hermes@^6.3.0": + version "6.3.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-6.3.0.tgz#92b2f07d08626a60f6893c3e3d57c1538c8fb5a7" + integrity sha512-Uhbm9bubyZLZ12vFCIfWbE/Qi3SBTbYIN/TC08EudTLhv/KbPomCQnmFsnJ7AXQFuOZJs73mBxoEAYSbRbwyVA== dependencies: - "@react-native-community/cli-platform-android" "^4.13.0" - "@react-native-community/cli-tools" "^4.13.0" - chalk "^3.0.0" + "@react-native-community/cli-platform-android" "^6.3.0" + "@react-native-community/cli-tools" "^6.2.0" + chalk "^4.1.2" hermes-profile-transformer "^0.0.6" ip "^1.1.5" -"@react-native-community/cli-platform-android@^4.10.0", "@react-native-community/cli-platform-android@^4.13.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-4.13.0.tgz#922681ec82ee1aadd993598b814df1152118be02" - integrity sha512-3i8sX8GklEytUZwPnojuoFbCjIRzMugCdzDIdZ9UNmi/OhD4/8mLGO0dgXfT4sMWjZwu3qjy45sFfk2zOAgHbA== +"@react-native-community/cli-platform-android@^6.0.0", "@react-native-community/cli-platform-android@^6.3.0": + version "6.3.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-6.3.0.tgz#ab7d156bd69a392493323eeaba839a874c0e201f" + integrity sha512-d5ufyYcvrZoHznYm5bjBXaiHIJv552t5gYtQpnUsxBhHSQ8QlaNmlLUyeSPRDfOw4ND9b0tPHqs4ufwx6vp/fQ== dependencies: - "@react-native-community/cli-tools" "^4.13.0" - chalk "^3.0.0" + "@react-native-community/cli-tools" "^6.2.0" + chalk "^4.1.2" execa "^1.0.0" fs-extra "^8.1.0" glob "^7.1.3" @@ -1757,63 +1835,85 @@ slash "^3.0.0" xmldoc "^1.1.2" -"@react-native-community/cli-platform-ios@^4.10.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-4.13.0.tgz#a738915c68cac86df54e578b59a1311ea62b1aef" - integrity sha512-6THlTu8zp62efkzimfGr3VIuQJ2514o+vScZERJCV1xgEi8XtV7mb/ZKt9o6Y9WGxKKkc0E0b/aVAtgy+L27CA== +"@react-native-community/cli-platform-ios@^6.0.0": + version "6.2.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-6.2.0.tgz#ceaa23995511a8e400b506632ac7e6a66a17ec2a" + integrity sha512-k15MhExxLiLDDZOeuPgvTxbp0CsoLQQpk2Du0HjZDePqqWcKJylQqMZru1o8HuQHPcEr+b71HIs5V+lKyFYpfg== dependencies: - "@react-native-community/cli-tools" "^4.13.0" - chalk "^3.0.0" + "@react-native-community/cli-tools" "^6.2.0" + chalk "^4.1.2" glob "^7.1.3" js-yaml "^3.13.1" lodash "^4.17.15" - plist "^3.0.1" + ora "^3.4.0" + plist "^3.0.2" xcode "^2.0.0" -"@react-native-community/cli-server-api@^4.13.1": - version "4.13.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-4.13.1.tgz#bee7ee9702afce848e9d6ca3dcd5669b99b125bd" - integrity sha512-vQzsFKD9CjHthA2ehTQX8c7uIzlI9A7ejaIow1I9RlEnLraPH2QqVDmzIdbdh5Od47UPbRzamCgAP8Bnqv3qwQ== +"@react-native-community/cli-plugin-metro@^6.2.0": + version "6.2.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-6.2.0.tgz#143f459f1b6d595011e787ecfbe87621195de6ae" + integrity sha512-JfmzuFNzOr+dFTUQJo1rV0t87XAqgHRTMYXNleQVt8otOVCk1FSCgKlgqMdvQc/FCx2ZjoMWEEV/g0LrPI8Etw== + dependencies: + "@react-native-community/cli-server-api" "^6.2.0" + "@react-native-community/cli-tools" "^6.2.0" + chalk "^4.1.2" + metro "^0.66.1" + metro-config "^0.66.1" + metro-core "^0.66.1" + metro-react-native-babel-transformer "^0.66.1" + metro-resolver "^0.66.1" + metro-runtime "^0.66.1" + readline "^1.3.0" + +"@react-native-community/cli-server-api@^6.2.0": + version "6.2.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-6.2.0.tgz#8dc399ef0e14e07c9942515b507292fb850f41f2" + integrity sha512-OnbnYclhoDpjge33QO5Slhfn0DsmLzzAgyrSCnb24HhSqwq7ObjMHaLpoEhpajzLG71wq5oKh0APEQjiL4Mknw== dependencies: - "@react-native-community/cli-debugger-ui" "^4.13.1" - "@react-native-community/cli-tools" "^4.13.0" + "@react-native-community/cli-debugger-ui" "^6.0.0-rc.0" + "@react-native-community/cli-tools" "^6.2.0" compression "^1.7.1" connect "^3.6.5" errorhandler "^1.5.0" nocache "^2.1.0" - pretty-format "^25.1.0" + pretty-format "^26.6.2" serve-static "^1.13.1" ws "^1.1.0" -"@react-native-community/cli-tools@^4.13.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-4.13.0.tgz#b406463d33af16cedc4305a9a9257ed32845cf1b" - integrity sha512-s4f489h5+EJksn4CfheLgv5PGOM0CDmK1UEBLw2t/ncWs3cW2VI7vXzndcd/WJHTv3GntJhXDcJMuL+Z2IAOgg== +"@react-native-community/cli-tools@^6.2.0": + version "6.2.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-6.2.0.tgz#8f4adc2d83ab96e5654348533c8fa602742c4fce" + integrity sha512-08ssz4GMEnRxC/1FgTTN/Ud7mExQi5xMphItPjfHiTxpZPhrFn+IMx6mya0ncFEhhxQ207wYlJMRLPRRdBZ8oA== dependencies: - chalk "^3.0.0" + appdirsjs "^1.2.4" + chalk "^4.1.2" lodash "^4.17.15" mime "^2.4.1" node-fetch "^2.6.0" open "^6.2.0" + semver "^6.3.0" shell-quote "1.6.1" -"@react-native-community/cli-types@^4.10.1": - version "4.10.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-4.10.1.tgz#d68a2dcd1649d3b3774823c64e5e9ce55bfbe1c9" - integrity sha512-ael2f1onoPF3vF7YqHGWy7NnafzGu+yp88BbFbP0ydoCP2xGSUzmZVw0zakPTC040Id+JQ9WeFczujMkDy6jYQ== - -"@react-native-community/cli@^4.10.0": - version "4.14.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-4.14.0.tgz#bb106a98341bfa2db36060091ff90bfe82ea4f55" - integrity sha512-EYJKBuxFxAu/iwNUfwDq41FjORpvSh1wvQ3qsHjzcR5uaGlWEOJrd3uNJDuKBAS0TVvbEesLF9NEXipjyRVr4Q== - dependencies: - "@hapi/joi" "^15.0.3" - "@react-native-community/cli-debugger-ui" "^4.13.1" - "@react-native-community/cli-hermes" "^4.13.0" - "@react-native-community/cli-server-api" "^4.13.1" - "@react-native-community/cli-tools" "^4.13.0" - "@react-native-community/cli-types" "^4.10.1" - chalk "^3.0.0" +"@react-native-community/cli-types@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-6.0.0.tgz#90269fbdc7229d5e3b8f2f3e029a94083551040d" + integrity sha512-K493Fk2DMJC0ZM8s8gnfseKxGasIhuDaCUDeLZcoCSFlrjKEuEs1BKKEJiev0CARhKEXKOyyp/uqYM9nWhisNw== + dependencies: + ora "^3.4.0" + +"@react-native-community/cli@^6.0.0": + version "6.3.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-6.3.0.tgz#27e3fdd544fcbb7035c368f81847172709c17a4f" + integrity sha512-rMdm/S8i5VIDQBJAU6YfNz15uwdguht0wVUOrJpEW8DCTKDfATanTlc5a1bsi0vitl9lS896VrgBiuW/VFOOXA== + dependencies: + "@react-native-community/cli-debugger-ui" "^6.0.0-rc.0" + "@react-native-community/cli-hermes" "^6.3.0" + "@react-native-community/cli-plugin-metro" "^6.2.0" + "@react-native-community/cli-server-api" "^6.2.0" + "@react-native-community/cli-tools" "^6.2.0" + "@react-native-community/cli-types" "^6.0.0" + appdirsjs "^1.2.4" + chalk "^4.1.2" command-exists "^1.2.8" commander "^2.19.0" cosmiconfig "^5.1.0" @@ -1824,19 +1924,14 @@ fs-extra "^8.1.0" glob "^7.1.3" graceful-fs "^4.1.3" - inquirer "^3.0.6" + joi "^17.2.1" leven "^3.1.0" lodash "^4.17.15" - metro "^0.59.0" - metro-config "^0.59.0" - metro-core "^0.59.0" - metro-react-native-babel-transformer "^0.59.0" - metro-resolver "^0.59.0" minimist "^1.2.0" - mkdirp "^0.5.1" node-stream-zip "^1.9.1" ora "^3.4.0" - pretty-format "^25.2.0" + pretty-format "^26.6.2" + prompts "^2.4.0" semver "^6.3.0" serve-static "^1.13.1" strip-ansi "^5.2.0" @@ -1867,6 +1962,38 @@ resolved "https://registry.yarnpkg.com/@react-native-community/eslint-plugin/-/eslint-plugin-1.1.0.tgz#e42b1bef12d2415411519fd528e64b593b1363dc" integrity sha512-W/J0fNYVO01tioHjvYWQ9m6RgndVtbElzYozBq1ZPrHO/iCzlqoySHl4gO/fpCl9QEFjvJfjPgtPMTMlsoq5DQ== +"@react-native/assets@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@react-native/assets/-/assets-1.0.0.tgz#c6f9bf63d274bafc8e970628de24986b30a55c8e" + integrity sha512-KrwSpS1tKI70wuKl68DwJZYEvXktDHdZMG0k2AXD/rJVSlB23/X2CB2cutVR0HwNMJIal9HOUOBB2rVfa6UGtQ== + +"@react-native/normalize-color@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@react-native/normalize-color/-/normalize-color-1.0.0.tgz#c52a99d4fe01049102d47dc45d40cbde4f720ab6" + integrity sha512-xUNRvNmCl3UGCPbbHvfyFMnpvLPoOjDCcp5bT9m2k+TF/ZBklEQwhPZlkrxRx2NhgFh1X3a5uL7mJ7ZR+8G7Qg== + +"@react-native/polyfills@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@react-native/polyfills/-/polyfills-2.0.0.tgz#4c40b74655c83982c8cf47530ee7dc13d957b6aa" + integrity sha512-K0aGNn1TjalKj+65D7ycc1//H9roAQ51GJVk5ZJQFb2teECGmzd86bYDC0aYdbRf7gtovescq4Zt6FR0tgXiHQ== + +"@sideway/address@^4.1.3": + version "4.1.3" + resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.3.tgz#d93cce5d45c5daec92ad76db492cc2ee3c64ab27" + integrity sha512-8ncEUtmnTsMmL7z1YPB47kPUq7LpKWJNFPsRzHiIajGC5uXlWGn+AmkYPcHNl8S4tcEGx+cnORnNYaw2wvL+LQ== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@sideway/formula@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.0.tgz#fe158aee32e6bd5de85044be615bc08478a0a13c" + integrity sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg== + +"@sideway/pinpoint@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" + integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== + "@sinonjs/commons@^1.7.0": version "1.8.3" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" @@ -1943,14 +2070,6 @@ dependencies: "@types/istanbul-lib-coverage" "*" -"@types/istanbul-reports@^1.1.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz#e875cc689e47bce549ec81f3df5e6f6f11cfaeb2" - integrity sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw== - dependencies: - "@types/istanbul-lib-coverage" "*" - "@types/istanbul-lib-report" "*" - "@types/istanbul-reports@^3.0.0": version "3.0.1" resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" @@ -2031,11 +2150,6 @@ resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== -"@types/stack-utils@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" - integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== - "@types/stack-utils@^2.0.0": version "2.0.1" resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" @@ -2046,13 +2160,6 @@ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== -"@types/yargs@^13.0.0": - version "13.0.12" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.12.tgz#d895a88c703b78af0465a9de88aa92c61430b092" - integrity sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ== - dependencies: - "@types/yargs-parser" "*" - "@types/yargs@^15.0.0": version "15.0.14" resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.14.tgz#26d821ddb89e70492160b66d10a0eb6df8f6fb06" @@ -2152,7 +2259,7 @@ absolute-path@^0.0.0: resolved "https://registry.yarnpkg.com/absolute-path/-/absolute-path-0.0.0.tgz#a78762fbdadfb5297be99b15d35a785b2f095bf7" integrity sha1-p4di+9rftSl76ZsV01p4Wy8JW/c= -accepts@~1.3.5, accepts@~1.3.7: +accepts@^1.3.7, accepts@~1.3.5, accepts@~1.3.7: version "1.3.7" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== @@ -2228,30 +2335,11 @@ anser@^1.4.9: resolved "https://registry.yarnpkg.com/anser/-/anser-1.4.10.tgz#befa3eddf282684bd03b63dcda3927aef8c2e35b" integrity sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww== -ansi-colors@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-1.1.0.tgz#6374b4dd5d4718ff3ce27a671a3b1cad077132a9" - integrity sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA== - dependencies: - ansi-wrap "^0.1.0" - ansi-colors@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== -ansi-cyan@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ansi-cyan/-/ansi-cyan-0.1.1.tgz#538ae528af8982f28ae30d86f2f17456d2609873" - integrity sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM= - dependencies: - ansi-wrap "0.1.0" - -ansi-escapes@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" - integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== - ansi-escapes@^4.2.1: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" @@ -2268,26 +2356,7 @@ ansi-fragments@^0.2.1: slice-ansi "^2.0.0" strip-ansi "^5.0.0" -ansi-gray@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251" - integrity sha1-KWLPVOyXksSFEKPetSRDaGHvclE= - dependencies: - ansi-wrap "0.1.0" - -ansi-red@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ansi-red/-/ansi-red-0.1.1.tgz#8c638f9d1080800a353c9c28c8a81ca4705d946c" - integrity sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw= - dependencies: - ansi-wrap "0.1.0" - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - -ansi-regex@^4.0.0, ansi-regex@^4.1.0: +ansi-regex@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== @@ -2316,11 +2385,6 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== -ansi-wrap@0.1.0, ansi-wrap@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" - integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768= - anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -2337,6 +2401,11 @@ anymatch@^3.0.3: normalize-path "^3.0.0" picomatch "^2.0.4" +appdirsjs@^1.2.4: + version "1.2.6" + resolved "https://registry.yarnpkg.com/appdirsjs/-/appdirsjs-1.2.6.tgz#fccf9ee543315492867cacfcfd4a2b32257d30ac" + integrity sha512-D8wJNkqMCeQs3kLasatELsddox/Xqkhp+J07iXGyL54fVN7oc+nmNfYzGuCs1IEP6uBw+TfpuO3JKwc+lECy4w== + argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -2344,29 +2413,16 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" -arr-diff@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-1.1.0.tgz#687c32758163588fef7de7b36fabe495eb1a399a" - integrity sha1-aHwydYFjWI/vfeezb6vklesaOZo= - dependencies: - arr-flatten "^1.0.1" - array-slice "^0.2.3" - arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= -arr-flatten@^1.0.1, arr-flatten@^1.1.0: +arr-flatten@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== -arr-union@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-2.1.0.tgz#20f9eab5ec70f5c7d215b1077b1c39161d292c7d" - integrity sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0= - arr-union@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" @@ -2403,11 +2459,6 @@ array-reduce@~0.0.0: resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" integrity sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys= -array-slice@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" - integrity sha1-3Tz7gO15c6dRF82sabC5nshhhvU= - array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" @@ -2432,7 +2483,7 @@ arrify@^1.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= -asap@~2.0.3, asap@~2.0.6: +asap@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= @@ -2442,6 +2493,13 @@ assign-symbols@^1.0.0: resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= +ast-types@0.14.2: + version "0.14.2" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.14.2.tgz#600b882df8583e3cd4f2df5fa20fa83759d4bdfd" + integrity sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA== + dependencies: + tslib "^2.0.1" + astral-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" @@ -2452,6 +2510,11 @@ astral-regex@^2.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + async@^2.4.0: version "2.6.3" resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" @@ -2474,6 +2537,11 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== +babel-core@^7.0.0-bridge.0: + version "7.0.0-bridge.0" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" + integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== + babel-eslint@^10.1.0: version "10.1.0" resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" @@ -2575,7 +2643,7 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-fbjs@^3.2.0, babel-preset-fbjs@^3.3.0: +babel-preset-fbjs@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz#38a14e5a7a3b285a3f3a86552d650dca5cf6111c" integrity sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow== @@ -2644,13 +2712,6 @@ big-integer@^1.6.44: resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.49.tgz#f6817d3ea5d4f3fb19e24df9f4b1b4471a8328ce" integrity sha512-KJ7VhqH+f/BOt9a3yMwJNmcZjG53ijWMTjSAGMveQWyLwqIiwkjNP5PFgDob3Snnx86SjDj6I89fIbv0dkQeNw== -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - bluebird@^3.5.4: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" @@ -2735,11 +2796,6 @@ bser@2.1.1: dependencies: node-int64 "^0.4.0" -buffer-crc32@^0.2.13: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= - buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" @@ -2859,7 +2915,7 @@ chalk@4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -2868,15 +2924,7 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.1, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.0.0, chalk@^4.1.0: +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -2889,11 +2937,6 @@ char-regex@^1.0.2: resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== -chardet@^0.4.0: - version "0.4.2" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" - integrity sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I= - child-process-promise@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/child-process-promise/-/child-process-promise-2.2.1.tgz#4730a11ef610fad450b8f223c79d31d7bdad8074" @@ -2945,20 +2988,6 @@ cli-spinners@^2.0.0: resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d" integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== -cli-width@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" - integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== - -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - cliui@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" @@ -3033,17 +3062,12 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-support@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" - integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== - colorette@^1.0.7: version "1.4.0" resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40" integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== -colors@^1.0.3: +colors@^1.0.3, colors@^1.1.2: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== @@ -3120,16 +3144,6 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@^1.6.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - connect@^3.6.5: version "3.7.0" resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" @@ -3189,11 +3203,6 @@ core-js-compat@^3.16.0, core-js-compat@^3.16.2: browserslist "^4.17.3" semver "7.0.0" -core-js@^2.4.1: - version "2.6.12" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" - integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== - core-js@^3.6.1: version "3.18.2" resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.18.2.tgz#63a551e8a29f305cd4123754846e65896619ba5b" @@ -3233,15 +3242,6 @@ cross-spawn@^4.0.2: lru-cache "^4.0.1" which "^1.2.9" -cross-spawn@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - cross-spawn@^6.0.0: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -3538,11 +3538,6 @@ emittery@^0.8.1: resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" @@ -3553,13 +3548,6 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= -encoding@^0.1.11: - version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" - end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" @@ -3789,7 +3777,7 @@ eslint-visitor-keys@^2.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint@^7.2.0: +eslint@^7.14.0: version "7.32.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== @@ -3844,7 +3832,7 @@ espree@^7.3.0, espree@^7.3.1: acorn-jsx "^5.3.1" eslint-visitor-keys "^1.3.0" -esprima@^4.0.0, esprima@^4.0.1: +esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== @@ -3888,11 +3876,6 @@ event-target-shim@^5.0.0, event-target-shim@^5.0.1: resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== -eventemitter3@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" - integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== - exception-formatter@^1.0.4: version "1.0.7" resolved "https://registry.yarnpkg.com/exception-formatter/-/exception-formatter-1.0.7.tgz#3291616b86fceabefa97aee6a4708032c6e3b96d" @@ -3978,13 +3961,6 @@ expect@^27.3.1: jest-message-util "^27.3.1" jest-regex-util "^27.0.6" -extend-shallow@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-1.1.4.tgz#19d6bf94dfc09d76ba711f39b872d21ff4dd9071" - integrity sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE= - dependencies: - kind-of "^1.1.0" - extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -4000,15 +3976,6 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" -external-editor@^2.0.4: - version "2.2.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" - integrity sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A== - dependencies: - chardet "^0.4.0" - iconv-lite "^0.4.17" - tmp "^0.0.33" - extglob@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" @@ -4023,16 +3990,6 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -fancy-log@^1.3.2: - version "1.3.3" - resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.3.tgz#dbc19154f558690150a23953a0adbd035be45fc7" - integrity sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw== - dependencies: - ansi-gray "^0.1.1" - color-support "^1.1.3" - parse-node-version "^1.0.0" - time-stamp "^1.0.0" - fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -4078,48 +4035,6 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" -fbjs-css-vars@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8" - integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ== - -fbjs-scripts@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fbjs-scripts/-/fbjs-scripts-1.2.0.tgz#069a0c0634242d10031c6460ef1fccefcdae8b27" - integrity sha512-5krZ8T0Bf8uky0abPoCLrfa7Orxd8UH4Qq8hRUF2RZYNMu+FmEOrBc7Ib3YVONmxTXTlLAvyrrdrVmksDb2OqQ== - dependencies: - "@babel/core" "^7.0.0" - ansi-colors "^1.0.1" - babel-preset-fbjs "^3.2.0" - core-js "^2.4.1" - cross-spawn "^5.1.0" - fancy-log "^1.3.2" - object-assign "^4.0.1" - plugin-error "^0.1.2" - semver "^5.1.0" - through2 "^2.0.0" - -fbjs@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-1.0.0.tgz#52c215e0883a3c86af2a7a776ed51525ae8e0a5a" - integrity sha512-MUgcMEJaFhCaF1QtWGnmq9ZDRAzECTCRAF7O6UZIlAlkTs1SasiX9aP0Iw7wfD2mJ7wDTNfg2w7u5fSCwJk1OA== - dependencies: - core-js "^2.4.1" - fbjs-css-vars "^1.0.0" - isomorphic-fetch "^2.1.1" - loose-envify "^1.0.0" - object-assign "^4.1.0" - promise "^7.1.1" - setimmediate "^1.0.5" - ua-parser-js "^0.7.18" - -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= - dependencies: - escape-string-regexp "^1.0.5" - file-entry-cache@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" @@ -4127,11 +4042,6 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" @@ -4212,6 +4122,16 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.2.tgz#64bfed5cb68fe3ca78b3eb214ad97b63bedce561" integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA== +flow-parser@0.*: + version "0.166.1" + resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.166.1.tgz#6869ab40bd71e1129053f53435864b08616d57e9" + integrity sha512-7iJ1cPcOYL/eOPGpGPaxwW8MytKGeXSnfvJA0uIvymXI4MnjjhZLWz1qPIqj2hfYJ7p/yXssbv7k2H3C90cyDw== + +flow-parser@^0.121.0: + version "0.121.0" + resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.121.0.tgz#9f9898eaec91a9f7c323e9e992d81ab5c58e618f" + integrity sha512-1gIBiWJNR0tKUNv8gZuk7l9rVX06OuLzY9AoGio7y/JT4V1IZErEMEq2TJS+PFcw/y0RshZ1J/27VfK1UQzYVg== + for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -4280,15 +4200,7 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -fsevents@^1.2.7: - version "1.2.13" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" - integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - -fsevents@^2.3.2: +fsevents@^2.1.2, fsevents@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== @@ -4453,7 +4365,7 @@ globby@^11.0.1: merge2 "^1.3.0" slash "^3.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.4: +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.4: version "4.2.8" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== @@ -4540,10 +4452,15 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -hermes-engine@~0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/hermes-engine/-/hermes-engine-0.5.1.tgz#601115e4b1e0a17d9aa91243b96277de4e926e09" - integrity sha512-hLwqh8dejHayjlpvZY40e1aDCDvyP98cWx/L5DhAjSJLH8g4z9Tp08D7y4+3vErDsncPOdf1bxm+zUWpx0/Fxg== +hermes-engine@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/hermes-engine/-/hermes-engine-0.9.0.tgz#84d9cfe84e8f6b1b2020d6e71b350cec84ed982f" + integrity sha512-r7U+Y4P2Qg/igFVZN+DpT7JFfXUn1MM4dFne8aW+cCrF6RRymof+VqrUHs1kl07j8h8V2CNesU19RKgWbr3qPw== + +hermes-parser@0.4.7: + version "0.4.7" + resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.4.7.tgz#410f5129d57183784d205a0538e6fbdcf614c9ea" + integrity sha512-jc+zCtXbtwTiXoMAoXOHepxAaGVFIp89wwE9qcdwnMd/uGVEtPoY8FaFSsx0ThPvyKirdR2EsIIDVrpbSXz1Ag== hermes-profile-transformer@^0.0.6: version "0.0.6" @@ -4619,20 +4536,13 @@ husky@^6.0.0: resolved "https://registry.yarnpkg.com/husky/-/husky-6.0.0.tgz#810f11869adf51604c32ea577edbc377d7f9319e" integrity sha512-SQS2gDTB7tBN486QSoKPKQItZw97BMOd+Kdb6ghfpBc0yXyzrddI0oDV5MkDAbuB4X2mO3/nj60TRMcYxwzZeQ== -iconv-lite@0.4.24, iconv-lite@^0.4.17: +iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@^0.6.2: - version "0.6.3" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" - integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - ignore@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" @@ -4700,26 +4610,6 @@ ini@^1.3.4: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -inquirer@^3.0.6: - version "3.3.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" - integrity sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ== - dependencies: - ansi-escapes "^3.0.0" - chalk "^2.0.0" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^2.0.4" - figures "^2.0.0" - lodash "^4.3.0" - mute-stream "0.0.7" - run-async "^2.2.0" - rx-lite "^4.0.8" - rx-lite-aggregates "^4.0.8" - string-width "^2.1.0" - strip-ansi "^4.0.0" - through "^2.3.6" - internal-slot@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" @@ -4987,7 +4877,7 @@ is-shared-array-buffer@^1.0.1: resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== -is-stream@^1.0.1, is-stream@^1.1.0: +is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= @@ -5069,14 +4959,6 @@ isobject@^3.0.0, isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= -isomorphic-fetch@^2.1.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" - integrity sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk= - dependencies: - node-fetch "^1.0.1" - whatwg-fetch ">=0.10.0" - istanbul-lib-coverage@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.2.tgz#36786d4d82aad2ea5911007e255e2da6b5f80d86" @@ -5250,34 +5132,36 @@ jest-environment-node@^27.3.1: jest-mock "^27.3.0" jest-util "^27.3.1" -jest-get-type@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" - integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== +jest-get-type@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" + integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== jest-get-type@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.3.1.tgz#a8a2b0a12b50169773099eee60a0e6dd11423eff" integrity sha512-+Ilqi8hgHSAdhlQ3s12CAVNd8H96ZkQBfYoXmArzZnOfAtVAJEiPDBirjByEblvG/4LPJmkL+nBqPO3A1YJAEg== -jest-haste-map@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.9.0.tgz#b38a5d64274934e21fa417ae9a9fbeb77ceaac7d" - integrity sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ== +jest-haste-map@^26.5.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" + integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== dependencies: - "@jest/types" "^24.9.0" - anymatch "^2.0.0" + "@jest/types" "^26.6.2" + "@types/graceful-fs" "^4.1.2" + "@types/node" "*" + anymatch "^3.0.3" fb-watchman "^2.0.0" - graceful-fs "^4.1.15" - invariant "^2.2.4" - jest-serializer "^24.9.0" - jest-util "^24.9.0" - jest-worker "^24.9.0" - micromatch "^3.1.10" + graceful-fs "^4.2.4" + jest-regex-util "^26.0.0" + jest-serializer "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" + micromatch "^4.0.2" sane "^4.0.3" walker "^1.0.7" optionalDependencies: - fsevents "^1.2.7" + fsevents "^2.1.2" jest-haste-map@^27.3.1: version "27.3.1" @@ -5341,20 +5225,6 @@ jest-matcher-utils@^27.3.1: jest-get-type "^27.3.1" pretty-format "^27.3.1" -jest-message-util@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.9.0.tgz#527f54a1e380f5e202a8d1149b0ec872f43119e3" - integrity sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw== - dependencies: - "@babel/code-frame" "^7.0.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/stack-utils" "^1.0.1" - chalk "^2.0.1" - micromatch "^3.1.10" - slash "^2.0.0" - stack-utils "^1.0.1" - jest-message-util@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.3.1.tgz#f7c25688ad3410ab10bcb862bcfe3152345c6436" @@ -5370,13 +5240,6 @@ jest-message-util@^27.3.1: slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6" - integrity sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w== - dependencies: - "@jest/types" "^24.9.0" - jest-mock@^27.3.0: version "27.3.0" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.3.0.tgz#ddf0ec3cc3e68c8ccd489bef4d1f525571a1b867" @@ -5390,6 +5253,11 @@ jest-pnp-resolver@^1.2.2: resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== +jest-regex-util@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" + integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== + jest-regex-util@^27.0.6: version "27.0.6" resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.0.6.tgz#02e112082935ae949ce5d13b2675db3d8c87d9c5" @@ -5480,10 +5348,13 @@ jest-runtime@^27.3.1: strip-bom "^4.0.0" yargs "^16.2.0" -jest-serializer@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73" - integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ== +jest-serializer@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" + integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== + dependencies: + "@types/node" "*" + graceful-fs "^4.2.4" jest-serializer@^27.0.6: version "27.0.6" @@ -5523,23 +5394,17 @@ jest-snapshot@^27.3.1: pretty-format "^27.3.1" semver "^7.3.2" -jest-util@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.9.0.tgz#7396814e48536d2e85a37de3e4c431d7cb140162" - integrity sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg== +jest-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" + integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== dependencies: - "@jest/console" "^24.9.0" - "@jest/fake-timers" "^24.9.0" - "@jest/source-map" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - callsites "^3.0.0" - chalk "^2.0.1" - graceful-fs "^4.1.15" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + graceful-fs "^4.2.4" is-ci "^2.0.0" - mkdirp "^0.5.1" - slash "^2.0.0" - source-map "^0.6.0" + micromatch "^4.0.2" jest-util@^27.3.1: version "27.3.1" @@ -5553,17 +5418,17 @@ jest-util@^27.3.1: graceful-fs "^4.2.4" picomatch "^2.2.3" -jest-validate@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.9.0.tgz#0775c55360d173cd854e40180756d4ff52def8ab" - integrity sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ== +jest-validate@^26.5.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" + integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== dependencies: - "@jest/types" "^24.9.0" - camelcase "^5.3.1" - chalk "^2.0.1" - jest-get-type "^24.9.0" + "@jest/types" "^26.6.2" + camelcase "^6.0.0" + chalk "^4.0.0" + jest-get-type "^26.3.0" leven "^3.1.0" - pretty-format "^24.9.0" + pretty-format "^26.6.2" jest-validate@^27.3.1: version "27.3.1" @@ -5590,13 +5455,14 @@ jest-watcher@^27.3.1: jest-util "^27.3.1" string-length "^4.0.1" -jest-worker@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" - integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== +jest-worker@^26.0.0, jest-worker@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== dependencies: + "@types/node" "*" merge-stream "^2.0.0" - supports-color "^6.1.0" + supports-color "^7.0.0" jest-worker@^27.3.1: version "27.3.1" @@ -5621,6 +5487,17 @@ jetifier@^1.6.2, jetifier@^1.6.6: resolved "https://registry.yarnpkg.com/jetifier/-/jetifier-1.6.8.tgz#e88068697875cbda98c32472902c4d3756247798" integrity sha512-3Zi16h6L5tXDRQJTb221cnRoVG9/9OvreLdLU2/ZjRv/GILL+2Cemt0IKvkowwkDpvouAU1DQPOJ7qaiHeIdrw== +joi@^17.2.1: + version "17.5.0" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.5.0.tgz#7e66d0004b5045d971cf416a55fb61d33ac6e011" + integrity sha512-R7hR50COp7StzLnDi4ywOXHrBrgNXuUUfJWIR5lPY5Bm/pOD3jZaTwpluUXVLRWcoWZxkrHBBJ5hLxgnlehbdw== + dependencies: + "@hapi/hoek" "^9.0.0" + "@hapi/topo" "^5.0.0" + "@sideway/address" "^4.1.3" + "@sideway/formula" "^3.0.0" + "@sideway/pinpoint" "^2.0.0" + "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -5634,10 +5511,35 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" -jsc-android@^245459.0.0: - version "245459.0.0" - resolved "https://registry.yarnpkg.com/jsc-android/-/jsc-android-245459.0.0.tgz#e584258dd0b04c9159a27fb104cd5d491fd202c9" - integrity sha512-wkjURqwaB1daNkDi2OYYbsLnIdC/lUM2nPXQKRs5pqEU9chDg435bjvo+LSaHotDENygHQDHe+ntUkkw2gwMtg== +jsc-android@^250230.2.1: + version "250230.2.1" + resolved "https://registry.yarnpkg.com/jsc-android/-/jsc-android-250230.2.1.tgz#3790313a970586a03ab0ad47defbc84df54f1b83" + integrity sha512-KmxeBlRjwoqCnBBKGsihFtvsBHyUFlBxJPK4FzeYcIuBfdjv6jFys44JITAgSTbQD+vIdwMEfyZklsuQX0yI1Q== + +jscodeshift@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/jscodeshift/-/jscodeshift-0.11.0.tgz#4f95039408f3f06b0e39bb4d53bc3139f5330e2f" + integrity sha512-SdRK2C7jjs4k/kT2mwtO07KJN9RnjxtKn03d9JVj6c3j9WwaLcFYsICYDnLAzY0hp+wG2nxl+Cm2jWLiNVYb8g== + dependencies: + "@babel/core" "^7.1.6" + "@babel/parser" "^7.1.6" + "@babel/plugin-proposal-class-properties" "^7.1.0" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.1.0" + "@babel/plugin-proposal-optional-chaining" "^7.1.0" + "@babel/plugin-transform-modules-commonjs" "^7.1.0" + "@babel/preset-flow" "^7.0.0" + "@babel/preset-typescript" "^7.1.0" + "@babel/register" "^7.0.0" + babel-core "^7.0.0-bridge.0" + colors "^1.1.2" + flow-parser "0.*" + graceful-fs "^4.2.4" + micromatch "^3.1.10" + neo-async "^2.5.0" + node-dir "^0.1.17" + recast "^0.20.3" + temp "^0.8.1" + write-file-atomic "^2.3.0" jsdom@^16.6.0: version "16.7.0" @@ -5707,13 +5609,6 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= -json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= - dependencies: - jsonify "~0.0.0" - json5@^2.1.2, json5@^2.1.3: version "2.2.0" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" @@ -5767,11 +5662,6 @@ jsonparse@^1.2.0: array-includes "^3.1.3" object.assign "^4.1.2" -kind-of@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-1.1.0.tgz#140a3d2d41a36d2efcfa9377b62c24f8495a5c44" - integrity sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ= - kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -5881,7 +5771,7 @@ lodash.truncate@^4.4.2: resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= -lodash@^4.17.10, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.5, lodash@^4.3.0, lodash@^4.7.0: +lodash@^4.17.10, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.5, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -6002,13 +5892,6 @@ meow@^8.0.0: type-fest "^0.18.0" yargs-parser "^20.2.3" -merge-stream@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" - integrity sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE= - dependencies: - readable-stream "^2.0.1" - merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" @@ -6019,81 +5902,93 @@ merge2@^1.3.0: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -metro-babel-register@0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-babel-register/-/metro-babel-register-0.59.0.tgz#2bcff65641b36794cf083ba732fbc46cf870fb43" - integrity sha512-JtWc29erdsXO/V3loenXKw+aHUXgj7lt0QPaZKPpctLLy8kcEpI/8pfXXgVK9weXICCpCnYtYncIosAyzh0xjg== +metro-babel-register@0.66.2: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro-babel-register/-/metro-babel-register-0.66.2.tgz#c6bbe36c7a77590687ccd74b425dc020d17d05af" + integrity sha512-3F+vsVubUPJYKfVMeol8/7pd8CC287Rw92QYzJD8LEmI980xcgwMUEVBZ0UIAUwlLgiJG/f4Mwhuji2EeBXrPg== dependencies: - "@babel/core" "^7.0.0" - "@babel/plugin-proposal-class-properties" "^7.0.0" + "@babel/core" "^7.14.0" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0" "@babel/plugin-proposal-optional-chaining" "^7.0.0" + "@babel/plugin-syntax-class-properties" "^7.0.0" "@babel/plugin-transform-flow-strip-types" "^7.0.0" "@babel/plugin-transform-modules-commonjs" "^7.0.0" "@babel/register" "^7.0.0" escape-string-regexp "^1.0.5" -metro-babel-transformer@0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.59.0.tgz#dda99c75d831b00142c42c020c51c103b29f199d" - integrity sha512-fdZJl8rs54GVFXokxRdD7ZrQ1TJjxWzOi/xSP25VR3E8tbm3nBZqS+/ylu643qSr/IueABR+jrlqAyACwGEf6w== +metro-babel-transformer@0.66.2: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.66.2.tgz#fce0a3e314d28a5e7141c135665e1cc9b8e7ce86" + integrity sha512-aJ/7fc/Xkofw8Fqa51OTDhBzBz26mmpIWrXAZcPdQ8MSTt883EWncxeCEjasc79NJ89BRi7sOkkaWZo2sXlKvw== dependencies: - "@babel/core" "^7.0.0" - metro-source-map "0.59.0" + "@babel/core" "^7.14.0" + hermes-parser "0.4.7" + metro-source-map "0.66.2" + nullthrows "^1.1.1" + +metro-cache-key@0.66.2: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.66.2.tgz#d6463d2a53e887a38419d523962cc24ea0e780b4" + integrity sha512-WtkNmRt41qOpHh1MkNA4nLiQ/m7iGL90ysSKD+fcLqlUnOBKJptPQm0ZUv8Kfqk18ddWX2KmsSbq+Sf3I6XohQ== -metro-cache@0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.59.0.tgz#ef3c055f276933979b731455dc8317d7a66f0f2d" - integrity sha512-ryWNkSnpyADfRpHGb8BRhQ3+k8bdT/bsxMH2O0ntlZYZ188d8nnYWmxbRvFmEzToJxe/ol4uDw0tJFAaQsN8KA== +metro-cache@0.66.2: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.66.2.tgz#e0af4e0a319898f7d42a980f7ee5da153fcfd019" + integrity sha512-5QCYJtJOHoBSbL3H4/Fpl36oA697C3oYHqsce+Hk/dh2qtODUGpS3gOBhvP1B8iB+H8jJMyR75lZq129LJEsIQ== dependencies: - jest-serializer "^24.9.0" - metro-core "0.59.0" + metro-core "0.66.2" mkdirp "^0.5.1" rimraf "^2.5.4" -metro-config@0.59.0, metro-config@^0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.59.0.tgz#9844e388069321dd7403e49f0d495a81f9aa0fef" - integrity sha512-MDsknFG9vZ4Nb5VR6OUDmGHaWz6oZg/FtE3up1zVBKPVRTXE1Z+k7zypnPtMXjMh3WHs/Sy4+wU1xnceE/zdnA== +metro-config@0.66.2, metro-config@^0.66.1: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.66.2.tgz#e365acdb66ad0cda0182b9c9910760a97ee4293b" + integrity sha512-0C+PrKKIBNNzLZUKN/8ZDJS2U5FLMOTXDWbvBHIdqb6YXz8WplXR2+xlSlaSCCi5b+GR7cWFWUNeKA4GQS1/AQ== dependencies: cosmiconfig "^5.0.5" - jest-validate "^24.9.0" - metro "0.59.0" - metro-cache "0.59.0" - metro-core "0.59.0" - -metro-core@0.59.0, metro-core@^0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.59.0.tgz#958cde3fe5c8cd84a78e1899af801ad69e9c83b1" - integrity sha512-kb5LKvV5r2pqMEzGyTid8ai2mIjW13NMduQ8oBmfha7/EPTATcTQ//s+bkhAs1toQD8vqVvjAb0cPNjWQEmcmQ== - dependencies: - jest-haste-map "^24.9.0" + jest-validate "^26.5.2" + metro "0.66.2" + metro-cache "0.66.2" + metro-core "0.66.2" + metro-runtime "0.66.2" + +metro-core@0.66.2, metro-core@^0.66.1: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.66.2.tgz#ead776a17b3e5a307e6dc22259db30bf5c7e8490" + integrity sha512-JieLZkef/516yxXYvQxWnf3OWw5rcgWRy76K8JV/wr/i8LGVGulPAXlIi445/QZzXVydzRVASKAEVqyxM5F4mA== + dependencies: + jest-haste-map "^26.5.2" lodash.throttle "^4.1.1" - metro-resolver "0.59.0" - wordwrap "^1.0.0" + metro-resolver "0.66.2" -metro-inspector-proxy@0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-inspector-proxy/-/metro-inspector-proxy-0.59.0.tgz#39d1390772d13767fc595be9a1a7074e2425cf8e" - integrity sha512-hPeAuQcofTOH0F+2GEZqWkvkVY1/skezSSlMocDQDaqds+Kw6JgdA7FlZXxnKmQ/jYrWUzff/pl8SUCDwuYthQ== +metro-hermes-compiler@0.66.2: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro-hermes-compiler/-/metro-hermes-compiler-0.66.2.tgz#30290748f83805faa601aa487632444915795823" + integrity sha512-nCVL1g9uR6vrw5+X1wjwZruRyMkndnzGRMqjqoljf+nGEqBTD607CR7elXw4fMWn/EM+1y0Vdq5altUu9LdgCA== + +metro-inspector-proxy@0.66.2: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro-inspector-proxy/-/metro-inspector-proxy-0.66.2.tgz#a83c76bd2f2fd7b9240be92acf9a8b1d1404547a" + integrity sha512-gnLc9121eznwP0iiA9tCBW8qZjwIsCgwHWMF1g1Qaki9le9tzeJv3dK4/lFNGxyfSaLO7vahQEhsEYsiRnTROg== dependencies: connect "^3.6.5" debug "^2.2.0" ws "^1.1.5" - yargs "^14.2.0" + yargs "^15.3.1" -metro-minify-uglify@0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.59.0.tgz#6491876308d878742f7b894d7fca4af356886dd5" - integrity sha512-7IzVgCVWZMymgZ/quieg/9v5EQ8QmZWAgDc86Zp9j0Vy6tQTjUn6jlU+YAKW3mfMEjMr6iIUzCD8YklX78tFAw== +metro-minify-uglify@0.66.2: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.66.2.tgz#6061dbee4f61e6d5bb3c100e4379ff6f2e16e42b" + integrity sha512-7TUK+L5CmB5x1PVnFbgmjzHW4CUadq9H5jgp0HfFoWT1skXAyEsx0DHkKDXwnot0khnNhBOEfl62ctQOnE110Q== dependencies: uglify-es "^3.1.9" -metro-react-native-babel-preset@0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.59.0.tgz#20e020bc6ac9849e1477de1333d303ed42aba225" - integrity sha512-BoO6ncPfceIDReIH8pQ5tQptcGo5yRWQXJGVXfANbiKLq4tfgdZB1C1e2rMUJ6iypmeJU9dzl+EhPmIFKtgREg== +metro-react-native-babel-preset@0.66.2: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.66.2.tgz#fddebcf413ad4ea617d4f47f7c1da401052de734" + integrity sha512-H/nLBAz0MgfDloSe1FjyH4EnbokHFdncyERvLPXDACY3ROVRCeUyFNo70ywRGXW2NMbrV4H7KUyU4zkfWhC2HQ== dependencies: + "@babel/core" "^7.14.0" "@babel/plugin-proposal-class-properties" "^7.0.0" "@babel/plugin-proposal-export-default-from" "^7.0.0" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0" @@ -6106,6 +6001,7 @@ metro-react-native-babel-preset@0.59.0: "@babel/plugin-syntax-nullish-coalescing-operator" "^7.0.0" "@babel/plugin-syntax-optional-chaining" "^7.0.0" "@babel/plugin-transform-arrow-functions" "^7.0.0" + "@babel/plugin-transform-async-to-generator" "^7.0.0" "@babel/plugin-transform-block-scoping" "^7.0.0" "@babel/plugin-transform-classes" "^7.0.0" "@babel/plugin-transform-computed-properties" "^7.0.0" @@ -6133,109 +6029,144 @@ metro-react-native-babel-preset@0.59.0: "@babel/template" "^7.0.0" react-refresh "^0.4.0" -metro-react-native-babel-transformer@0.59.0, metro-react-native-babel-transformer@^0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.59.0.tgz#9b3dfd6ad35c6ef37fc4ce4d20a2eb67fabbb4be" - integrity sha512-1O3wrnMq4NcPQ1asEcl9lRDn/t+F1Oef6S9WaYVIKEhg9m/EQRGVrrTVP+R6B5Eeaj3+zNKbzM8Dx/NWy1hUbQ== - dependencies: - "@babel/core" "^7.0.0" - babel-preset-fbjs "^3.3.0" - metro-babel-transformer "0.59.0" - metro-react-native-babel-preset "0.59.0" - metro-source-map "0.59.0" +metro-react-native-babel-transformer@0.66.2, metro-react-native-babel-transformer@^0.66.1: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.66.2.tgz#768f341e7c3d3d1c38189799c9884b90d1c32eb7" + integrity sha512-z1ab7ihIT0pJrwgi9q2IH+LcW/xUWMQ0hH+Mrk7wbKQB0RnJdXFoxphrfoVHBHMUu+TBPetUcEkKawkK1e7Cng== + dependencies: + "@babel/core" "^7.14.0" + babel-preset-fbjs "^3.4.0" + hermes-parser "0.4.7" + metro-babel-transformer "0.66.2" + metro-react-native-babel-preset "0.66.2" + metro-source-map "0.66.2" + nullthrows "^1.1.1" -metro-resolver@0.59.0, metro-resolver@^0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.59.0.tgz#fbc9d7c95f094c52807877d0011feffb9e896fad" - integrity sha512-lbgiumnwoVosffEI96z0FGuq1ejTorHAj3QYUPmp5dFMfitRxLP7Wm/WP9l4ZZjIptxTExsJwuEff1SLRCPD9w== +metro-resolver@0.66.2, metro-resolver@^0.66.1: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.66.2.tgz#f743ddbe7a12dd137d1f7a555732cafcaea421f8" + integrity sha512-pXQAJR/xauRf4kWFj2/hN5a77B4jLl0Fom5I3PHp6Arw/KxSBp0cnguXpGLwNQ6zQC0nxKCoYGL9gQpzMnN7Hw== dependencies: absolute-path "^0.0.0" -metro-source-map@0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.59.0.tgz#e9beb9fc51bfb4e060f95820cf1508fc122d23f7" - integrity sha512-0w5CmCM+ybSqXIjqU4RiK40t4bvANL6lafabQ2GP2XD3vSwkLY+StWzCtsb4mPuyi9R/SgoLBel+ZOXHXAH0eQ== +metro-runtime@0.66.2, metro-runtime@^0.66.1: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.66.2.tgz#3409ee957b949b6c7b72ef6ed2b9af9a4f4a910e" + integrity sha512-vFhKBk2ot9FS4b+2v0OTa/guCF/QDAOJubY0CNg7PzCS5+w4y3IvZIcPX4SSS1t8pYEZBLvtdtTDarlDl81xmg== + +metro-source-map@0.66.2: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.66.2.tgz#b5304a282a5d55fa67b599265e9cf3217175cdd7" + integrity sha512-038tFmB7vSh73VQcDWIbr5O1m+WXWyYafDaOy+1A/2K308YP0oj33gbEgDnZsLZDwcJ+xt1x6KUEBIzlX4YGeQ== dependencies: - "@babel/traverse" "^7.0.0" + "@babel/traverse" "^7.14.0" "@babel/types" "^7.0.0" invariant "^2.2.4" - metro-symbolicate "0.59.0" - ob1 "0.59.0" + metro-symbolicate "0.66.2" + nullthrows "^1.1.1" + ob1 "0.66.2" source-map "^0.5.6" vlq "^1.0.0" -metro-symbolicate@0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.59.0.tgz#fc7f93957a42b02c2bfc57ed1e8f393f5f636a54" - integrity sha512-asLaF2A7rndrToGFIknL13aiohwPJ95RKHf0NM3hP/nipiLDoMzXT6ZnQvBqDxkUKyP+51AI75DMtb+Wcyw4Bw== +metro-symbolicate@0.66.2: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.66.2.tgz#addd095ce5f77e73ca21ddb5dfb396ff5d4fa041" + integrity sha512-u+DeQHyAFXVD7mVP+GST/894WHJ3i/U8oEJFnT7U3P52ZuLgX8n4tMNxhqZU12RcLR6etF8143aP0Ktx1gFLEQ== dependencies: invariant "^2.2.4" - metro-source-map "0.59.0" + metro-source-map "0.66.2" + nullthrows "^1.1.1" source-map "^0.5.6" through2 "^2.0.1" vlq "^1.0.0" -metro@0.59.0, metro@^0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/metro/-/metro-0.59.0.tgz#64a87cd61357814a4f279518e0781b1eab5934b8" - integrity sha512-OpVgYXyuTvouusFZQJ/UYKEbwfLmialrSCUUTGTFaBor6UMUHZgXPYtK86LzesgMqRc8aiuTQVO78iKW2Iz3wg== +metro-transform-plugins@0.66.2: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.66.2.tgz#39dd044a23b1343e4f2d2ec34d08128cdf255ed4" + integrity sha512-KTvqplh0ut7oDKovvDG6yzXM02R6X+9b2oVG+qYq8Zd3aCGTi51ASx4ThCNkAHyEvCuJdYg9fxXTL+j+wvhB5w== + dependencies: + "@babel/core" "^7.14.0" + "@babel/generator" "^7.14.0" + "@babel/template" "^7.0.0" + "@babel/traverse" "^7.14.0" + nullthrows "^1.1.1" + +metro-transform-worker@0.66.2: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.66.2.tgz#0a8455992132c479721accd52c9bd47deb77769e" + integrity sha512-dO4PtYOMGB7Vzte8aIzX39xytODhmbJrBYPu+zYzlDjyefJZT7BkZ0LkPIThtyJi96xWcGqi9JBSo0CeRupAHw== + dependencies: + "@babel/core" "^7.14.0" + "@babel/generator" "^7.14.0" + "@babel/parser" "^7.14.0" + "@babel/types" "^7.0.0" + babel-preset-fbjs "^3.4.0" + metro "0.66.2" + metro-babel-transformer "0.66.2" + metro-cache "0.66.2" + metro-cache-key "0.66.2" + metro-hermes-compiler "0.66.2" + metro-source-map "0.66.2" + metro-transform-plugins "0.66.2" + nullthrows "^1.1.1" + +metro@0.66.2, metro@^0.66.1: + version "0.66.2" + resolved "https://registry.yarnpkg.com/metro/-/metro-0.66.2.tgz#f21759bf00995470e7577b5b88a5277963f24492" + integrity sha512-uNsISfcQ3iKKSHoN5Q+LAh0l3jeeg7ZcNZ/4BAHGsk02erA0OP+l2m+b5qYVoPptHz9Oc3KyG5oGJoTu41pWjg== dependencies: "@babel/code-frame" "^7.0.0" - "@babel/core" "^7.0.0" - "@babel/generator" "^7.5.0" - "@babel/parser" "^7.0.0" - "@babel/plugin-external-helpers" "^7.0.0" + "@babel/core" "^7.14.0" + "@babel/generator" "^7.14.0" + "@babel/parser" "^7.14.0" "@babel/template" "^7.0.0" - "@babel/traverse" "^7.0.0" + "@babel/traverse" "^7.14.0" "@babel/types" "^7.0.0" absolute-path "^0.0.0" + accepts "^1.3.7" async "^2.4.0" - babel-preset-fbjs "^3.3.0" - buffer-crc32 "^0.2.13" - chalk "^2.4.1" + chalk "^4.0.0" ci-info "^2.0.0" - concat-stream "^1.6.0" connect "^3.6.5" debug "^2.2.0" denodeify "^1.2.1" error-stack-parser "^2.0.6" - eventemitter3 "^3.0.0" - fbjs "^1.0.0" fs-extra "^1.0.0" graceful-fs "^4.1.3" + hermes-parser "0.4.7" image-size "^0.6.0" invariant "^2.2.4" - jest-haste-map "^24.9.0" - jest-worker "^24.9.0" - json-stable-stringify "^1.0.1" + jest-haste-map "^26.5.2" + jest-worker "^26.0.0" lodash.throttle "^4.1.1" - merge-stream "^1.0.1" - metro-babel-register "0.59.0" - metro-babel-transformer "0.59.0" - metro-cache "0.59.0" - metro-config "0.59.0" - metro-core "0.59.0" - metro-inspector-proxy "0.59.0" - metro-minify-uglify "0.59.0" - metro-react-native-babel-preset "0.59.0" - metro-resolver "0.59.0" - metro-source-map "0.59.0" - metro-symbolicate "0.59.0" - mime-types "2.1.11" + metro-babel-register "0.66.2" + metro-babel-transformer "0.66.2" + metro-cache "0.66.2" + metro-cache-key "0.66.2" + metro-config "0.66.2" + metro-core "0.66.2" + metro-hermes-compiler "0.66.2" + metro-inspector-proxy "0.66.2" + metro-minify-uglify "0.66.2" + metro-react-native-babel-preset "0.66.2" + metro-resolver "0.66.2" + metro-runtime "0.66.2" + metro-source-map "0.66.2" + metro-symbolicate "0.66.2" + metro-transform-plugins "0.66.2" + metro-transform-worker "0.66.2" + mime-types "^2.1.27" mkdirp "^0.5.1" node-fetch "^2.2.0" nullthrows "^1.1.1" - resolve "^1.5.0" rimraf "^2.5.4" serialize-error "^2.1.0" source-map "^0.5.6" - strip-ansi "^4.0.0" + strip-ansi "^6.0.0" temp "0.8.3" - throat "^4.1.0" - wordwrap "^1.0.0" + throat "^5.0.0" ws "^1.1.5" - xpipe "^1.0.5" - yargs "^14.2.0" + yargs "^15.3.1" micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" @@ -6256,7 +6187,7 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -micromatch@^4.0.4: +micromatch@^4.0.2, micromatch@^4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== @@ -6269,17 +6200,10 @@ mime-db@1.50.0, "mime-db@>= 1.43.0 < 2": resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.50.0.tgz#abd4ac94e98d3c0e185016c67ab45d5fde40c11f" integrity sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A== -mime-db@~1.23.0: - version "1.23.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.23.0.tgz#a31b4070adaea27d732ea333740a64d0ec9a6659" - integrity sha1-oxtAcK2uon1zLqMzdApk0OyaZlk= - -mime-types@2.1.11: - version "2.1.11" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.11.tgz#c259c471bda808a85d6cd193b430a5fae4473b3c" - integrity sha1-wlnEcb2oCKhdbNGTtDCl+uRHOzw= - dependencies: - mime-db "~1.23.0" +mime-db@1.51.0: + version "1.51.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" + integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== mime-types@^2.1.12, mime-types@~2.1.24: version "2.1.33" @@ -6288,6 +6212,13 @@ mime-types@^2.1.12, mime-types@~2.1.24: dependencies: mime-db "1.50.0" +mime-types@^2.1.27: + version "2.1.34" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" + integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== + dependencies: + mime-db "1.51.0" + mime@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" @@ -6313,7 +6244,7 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== -"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.4: +"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== @@ -6369,11 +6300,6 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -mute-stream@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= - mv@~2: version "2.1.1" resolved "https://registry.yarnpkg.com/mv/-/mv-2.1.1.tgz#ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2" @@ -6383,7 +6309,7 @@ mv@~2: ncp "~2.0.0" rimraf "~2.4.0" -nan@^2.12.1, nan@^2.14.0: +nan@^2.14.0: version "2.15.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== @@ -6420,7 +6346,7 @@ negotiator@0.6.2: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== -neo-async@^2.6.0: +neo-async@^2.5.0, neo-async@^2.6.0: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== @@ -6435,13 +6361,12 @@ nocache@^2.1.0: resolved "https://registry.yarnpkg.com/nocache/-/nocache-2.1.0.tgz#120c9ffec43b5729b1d5de88cd71aa75a0ba491f" integrity sha512-0L9FvHG3nfnnmaEQPjT9xhfN4ISk0A8/2j4M37Np4mcDesJjHgEUfgPhdCyZuFI954tjokaIj/A3NdpFNdEh4Q== -node-fetch@^1.0.1: - version "1.7.3" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" - integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== +node-dir@^0.1.17: + version "0.1.17" + resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" + integrity sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU= dependencies: - encoding "^0.1.11" - is-stream "^1.0.1" + minimatch "^3.0.2" node-fetch@^2.2.0, node-fetch@^2.6.0: version "2.6.5" @@ -6536,12 +6461,12 @@ nwsapi@^2.2.0: resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== -ob1@0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.59.0.tgz#ee103619ef5cb697f2866e3577da6f0ecd565a36" - integrity sha512-opXMTxyWJ9m68ZglCxwo0OPRESIC/iGmKFPXEXzMZqsVIrgoRXOHmoMDkQzz4y3irVjbyPJRAh5pI9fd0MJTFQ== +ob1@0.66.2: + version "0.66.2" + resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.66.2.tgz#8caf548202cf2688944bae47db405a08bca17a61" + integrity sha512-RFewnL/RjE0qQBOuM+2bbY96zmJPIge/aDtsiDbLSb+MOiK8CReAhBHDgL+zrA3F1hQk00lMWpUwYcep750plA== -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -6712,7 +6637,7 @@ ora@^3.4.0: strip-ansi "^5.2.0" wcwidth "^1.0.1" -os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: +os-tmpdir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= @@ -6794,11 +6719,6 @@ parse-json@^5.0.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parse-node-version@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" - integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== - parse5@6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" @@ -6902,7 +6822,7 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" -plist@^3.0.1: +plist@^3.0.1, plist@^3.0.2: version "3.0.4" resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.4.tgz#a62df837e3aed2bb3b735899d510c4f186019cbe" integrity sha512-ksrr8y9+nXOxQB2osVNqrgvX/XQPOXaU4BQMKjYq8PvaY1U18mo+fKgBSwzK+luSyinOuPae956lSVcBwxlAMg== @@ -6910,17 +6830,6 @@ plist@^3.0.1: base64-js "^1.5.1" xmlbuilder "^9.0.7" -plugin-error@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-0.1.2.tgz#3b9bb3335ccf00f425e07437e19276967da47ace" - integrity sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4= - dependencies: - ansi-cyan "^0.1.1" - ansi-red "^0.1.1" - arr-diff "^1.0.1" - arr-union "^2.0.1" - extend-shallow "^1.1.2" - pod-install@^0.1.0: version "0.1.28" resolved "https://registry.yarnpkg.com/pod-install/-/pod-install-0.1.28.tgz#808ee14ce63bea47ccaeec93c4f26e1dae8fb94e" @@ -6953,25 +6862,15 @@ prettier@^2.0.2, prettier@^2.0.5: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.4.1.tgz#671e11c89c14a4cfc876ce564106c4a6726c9f5c" integrity sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA== -pretty-format@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9" - integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA== +pretty-format@^26.5.2, pretty-format@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" + integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== dependencies: - "@jest/types" "^24.9.0" - ansi-regex "^4.0.0" - ansi-styles "^3.2.0" - react-is "^16.8.4" - -pretty-format@^25.1.0, pretty-format@^25.2.0: - version "25.5.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.5.0.tgz#7873c1d774f682c34b8d48b6743a2bf2ac55791a" - integrity sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ== - dependencies: - "@jest/types" "^25.5.0" + "@jest/types" "^26.6.2" ansi-regex "^5.0.0" ansi-styles "^4.0.0" - react-is "^16.12.0" + react-is "^17.0.1" pretty-format@^27.0.0, pretty-format@^27.3.1: version "27.3.1" @@ -6998,13 +6897,6 @@ promise-polyfill@^6.0.1: resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-6.1.0.tgz#dfa96943ea9c121fca4de9b5868cb39d3472e057" integrity sha1-36lpQ+qcEh/KTem1hoyznTRy4Fc= -promise@^7.1.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" - integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== - dependencies: - asap "~2.0.3" - promise@^8.0.3: version "8.1.0" resolved "https://registry.yarnpkg.com/promise/-/promise-8.1.0.tgz#697c25c3dfe7435dd79fcd58c38a135888eaf05e" @@ -7020,7 +6912,7 @@ prompts@^2.0.1, prompts@^2.4.0: kleur "^3.0.3" sisteransi "^1.0.5" -prop-types@^15.6.2, prop-types@^15.7.2: +prop-types@^15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== @@ -7081,15 +6973,15 @@ range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -react-devtools-core@^4.6.0: - version "4.19.2" - resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-4.19.2.tgz#57f5d19b67e8658323474ab51c6c1292bf8243c9" - integrity sha512-Z9K+h9gjEwimZtZB1NsWm5hQsxAcElW0GI2KXLQDpk2o1YIZQ+lOSesUr0npUyLeb37k2hTtyxp8wumeRJpG5Q== +react-devtools-core@^4.13.0: + version "4.21.0" + resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-4.21.0.tgz#a54c9a0fd7261491e616d6c87d1869e011d8521d" + integrity sha512-clGWwJHV5MHwTwYyKc+7FZHwzdbzrD2/AoZSkicUcr6YLc3Za9a9FaLhccWDHfjQ+ron9yzNhDT6Tv+FiPkD3g== dependencies: shell-quote "^1.6.1" ws "^7" -react-is@^16.12.0, react-is@^16.8.1, react-is@^16.8.4: +react-is@^16.8.1: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -7126,52 +7018,64 @@ react-native-builder-bob@^0.18.0: optionalDependencies: jetifier "^1.6.6" -react-native@0.63.4: - version "0.63.4" - resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.63.4.tgz#2210fdd404c94a5fa6b423c6de86f8e48810ec36" - integrity sha512-I4kM8kYO2mWEYUFITMcpRulcy4/jd+j9T6PbIzR0FuMcz/xwd+JwHoLPa1HmCesvR1RDOw9o4D+OFLwuXXfmGw== +react-native-codegen@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/react-native-codegen/-/react-native-codegen-0.0.7.tgz#86651c5c5fec67a8077ef7f4e36f7ed459043e14" + integrity sha512-dwNgR8zJ3ALr480QnAmpTiqvFo+rDtq6V5oCggKhYFlRjzOmVSFn3YD41u8ltvKS5G2nQ8gCs2vReFFnRGLYng== dependencies: - "@babel/runtime" "^7.0.0" - "@react-native-community/cli" "^4.10.0" - "@react-native-community/cli-platform-android" "^4.10.0" - "@react-native-community/cli-platform-ios" "^4.10.0" + flow-parser "^0.121.0" + jscodeshift "^0.11.0" + nullthrows "^1.1.1" + +react-native@0.66.3: + version "0.66.3" + resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.66.3.tgz#25c7c4c7d81867326b3eb7a36f0fe6a61fa4104e" + integrity sha512-B/dQpuvta9YvF5MihDWefoGlTvxzUHK5X5RjdrXHAu/ihTehJXxEA+m6z/tufp1ZUMDjU+tMZK6gnehzCuYfzw== + dependencies: + "@jest/create-cache-key-function" "^27.0.1" + "@react-native-community/cli" "^6.0.0" + "@react-native-community/cli-platform-android" "^6.0.0" + "@react-native-community/cli-platform-ios" "^6.0.0" + "@react-native/assets" "1.0.0" + "@react-native/normalize-color" "1.0.0" + "@react-native/polyfills" "2.0.0" abort-controller "^3.0.0" anser "^1.4.9" base64-js "^1.1.2" event-target-shim "^5.0.1" - fbjs "^1.0.0" - fbjs-scripts "^1.1.0" - hermes-engine "~0.5.0" + hermes-engine "~0.9.0" invariant "^2.2.4" - jsc-android "^245459.0.0" - metro-babel-register "0.59.0" - metro-react-native-babel-transformer "0.59.0" - metro-source-map "0.59.0" + jsc-android "^250230.2.1" + metro-babel-register "0.66.2" + metro-react-native-babel-transformer "0.66.2" + metro-runtime "0.66.2" + metro-source-map "0.66.2" nullthrows "^1.1.1" - pretty-format "^24.9.0" + pretty-format "^26.5.2" promise "^8.0.3" prop-types "^15.7.2" - react-devtools-core "^4.6.0" + react-devtools-core "^4.13.0" + react-native-codegen "^0.0.7" react-refresh "^0.4.0" regenerator-runtime "^0.13.2" - scheduler "0.19.1" + scheduler "^0.20.2" stacktrace-parser "^0.1.3" use-subscription "^1.0.0" whatwg-fetch "^3.0.0" + ws "^6.1.4" react-refresh@^0.4.0: version "0.4.3" resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.4.3.tgz#966f1750c191672e76e16c2efa569150cc73ab53" integrity sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA== -react@16.13.1: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" - integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w== +react@17.0.2: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" + integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" - prop-types "^15.6.2" read-pkg-up@^7.0.1: version "7.0.1" @@ -7201,7 +7105,7 @@ readable-stream@3, readable-stream@^3.0.0: string_decoder "^1.1.1" util-deprecate "^1.0.1" -readable-stream@^2.0.1, readable-stream@^2.2.2, readable-stream@~2.3.6: +readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -7214,6 +7118,21 @@ readable-stream@^2.0.1, readable-stream@^2.2.2, readable-stream@~2.3.6: string_decoder "~1.1.1" util-deprecate "~1.0.1" +readline@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/readline/-/readline-1.3.0.tgz#c580d77ef2cfc8752b132498060dc9793a7ac01c" + integrity sha1-xYDXfvLPyHUrEySYBg3JeTp6wBw= + +recast@^0.20.3: + version "0.20.5" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.20.5.tgz#8e2c6c96827a1b339c634dd232957d230553ceae" + integrity sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ== + dependencies: + ast-types "0.14.2" + esprima "~4.0.0" + source-map "~0.6.1" + tslib "^2.0.1" + redent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" @@ -7365,7 +7284,7 @@ resolve.exports@^1.1.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== -resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.5.0: +resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.20.0: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -7430,16 +7349,18 @@ rimraf@~2.4.0: dependencies: glob "^6.0.1" +rimraf@~2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + rsvp@^4.8.4: version "4.8.5" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== -run-async@^2.2.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== - run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -7447,18 +7368,6 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -rx-lite-aggregates@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" - integrity sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74= - dependencies: - rx-lite "*" - -rx-lite@*, rx-lite@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" - integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ= - safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -7481,7 +7390,7 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": +"safer-buffer@>= 2.1.2 < 3": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -7520,15 +7429,15 @@ saxes@^5.0.1: dependencies: xmlchars "^2.2.0" -scheduler@0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" - integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== +scheduler@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" + integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" -"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.5.0, semver@^5.6.0: +"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -7611,11 +7520,6 @@ set-value@^2.0.0, set-value@^2.0.1: is-plain-object "^2.0.3" split-string "^3.0.1" -setimmediate@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - setprototypeof@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" @@ -7714,11 +7618,6 @@ sisteransi@^1.0.5: resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== -slash@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" - integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== - slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" @@ -7856,13 +7755,6 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= -stack-utils@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.5.tgz#a19b0b01947e0029c8e451d5d61a498f5bb1471b" - integrity sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ== - dependencies: - escape-string-regexp "^2.0.0" - stack-utils@^2.0.3: version "2.0.5" resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" @@ -7908,23 +7800,6 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -string-width@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -7978,14 +7853,7 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: +strip-ansi@^5.0.0, strip-ansi@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== @@ -8038,13 +7906,6 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - supports-color@^7.0.0, supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" @@ -8109,6 +7970,13 @@ temp@0.8.3: os-tmpdir "^1.0.0" rimraf "~2.2.6" +temp@^0.8.1: + version "0.8.4" + resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.4.tgz#8c97a33a4770072e0a05f919396c7665a7dd59f2" + integrity sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg== + dependencies: + rimraf "~2.6.2" + tempfile@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/tempfile/-/tempfile-2.0.0.tgz#6b0446856a9b1114d1856ffcbe509cccb0977265" @@ -8144,17 +8012,17 @@ text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= -throat@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" - integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= +throat@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" + integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== throat@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== -through2@^2.0.0, through2@^2.0.1: +through2@^2.0.1: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== @@ -8169,23 +8037,11 @@ through2@^4.0.0: dependencies: readable-stream "3" -"through@>=2.2.7 <3", through@^2.3.6: +"through@>=2.2.7 <3": version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= -time-stamp@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" - integrity sha1-dkpaEa9QVhkhsTPztE5hhofg9cM= - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - tmpl@1.0.x: version "1.0.5" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" @@ -8271,6 +8127,11 @@ tslib@^1.8.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +tslib@^2.0.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" + integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== + tsutils@^3.17.1: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" @@ -8334,11 +8195,6 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - typedoc-default-themes@^0.12.10: version "0.12.10" resolved "https://registry.yarnpkg.com/typedoc-default-themes/-/typedoc-default-themes-0.12.10.tgz#614c4222fe642657f37693ea62cad4dafeddf843" @@ -8363,11 +8219,6 @@ typescript@^4.1.3: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.3.tgz#bdc5407caa2b109efd4f82fe130656f977a29324" integrity sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA== -ua-parser-js@^0.7.18: - version "0.7.28" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.28.tgz#8ba04e653f35ce210239c64661685bf9121dec31" - integrity sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g== - uglify-es@^3.1.9: version "3.3.9" resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677" @@ -8588,7 +8439,7 @@ whatwg-encoding@^1.0.5: dependencies: iconv-lite "0.4.24" -whatwg-fetch@>=0.10.0, whatwg-fetch@^3.0.0: +whatwg-fetch@^3.0.0: version "3.6.2" resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c" integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA== @@ -8655,15 +8506,6 @@ wordwrap@^1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" @@ -8687,6 +8529,15 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= +write-file-atomic@^2.3.0: + version "2.4.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" + integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + write-file-atomic@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" @@ -8705,6 +8556,13 @@ ws@^1.1.0, ws@^1.1.5: options ">=0.0.5" ultron "1.0.x" +ws@^6.1.4: + version "6.2.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" + integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== + dependencies: + async-limiter "~1.0.0" + ws@^7, ws@^7.0.0, ws@^7.4.6: version "7.5.5" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.5.tgz#8b4bc4af518cfabd0473ae4f99144287b33eb881" @@ -8740,11 +8598,6 @@ xmldoc@^1.1.2: dependencies: sax "^1.2.1" -xpipe@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/xpipe/-/xpipe-1.0.5.tgz#8dd8bf45fc3f7f55f0e054b878f43a62614dafdf" - integrity sha1-jdi/Rfw/f1Xw4FS4ePQ6YmFNr98= - xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" @@ -8780,14 +8633,6 @@ yaml@^1.10.0: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yargs-parser@^15.0.1: - version "15.0.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.3.tgz#316e263d5febe8b38eef61ac092b33dfcc9b1115" - integrity sha512-/MVEVjTXy/cGAjdtQf8dW3V9b97bPN7rNn8ETj6BmAQL7ibC7O1Q9SPJbGjgh3SlwoBNXMzj/ZGIj8mBgl12YA== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - yargs-parser@^18.1.2: version "18.1.3" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" @@ -8811,24 +8656,7 @@ yargs-unparser@^2.0.0: flat "^5.0.2" is-plain-obj "^2.1.0" -yargs@^14.2.0: - version "14.2.3" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414" - integrity sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg== - dependencies: - cliui "^5.0.0" - decamelize "^1.2.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^15.0.1" - -yargs@^15.1.0: +yargs@^15.1.0, yargs@^15.3.1: version "15.4.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== From 9b0ba1385584d4cad2722601cb89c03d6ab7afad Mon Sep 17 00:00:00 2001 From: arekkubaczkowski Date: Wed, 8 Dec 2021 13:21:35 +0100 Subject: [PATCH 8/8] fix: renimated config --- example/android/app/build.gradle | 8 ++++++-- .../stripeterminalreactnative/MainApplication.java | 8 ++++++++ example/android/gradle.properties | 2 +- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index 0b3a954a..deb41543 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -78,8 +78,8 @@ import com.android.build.OutputFile */ project.ext.react = [ - enableHermes: false, // clean and rebuild if changing entryFile: "index.js", + enableHermes: true ] apply from: "../../node_modules/react-native/react.gradle" @@ -120,6 +120,10 @@ def jscFlavor = 'org.webkit:android-jsc:+' * and the benefits of using Hermes will therefore be sharply reduced. */ def enableHermes = project.ext.react.get("enableHermes", false); +/** + * Architectures to build native code for in debug. + */ +def nativeArchitectures = project.getProperties().get("reactNativeDebugArchitectures") android { ndkVersion rootProject.ext.ndkVersion @@ -235,4 +239,4 @@ task downloadDependencies() { } } } -} \ No newline at end of file +} diff --git a/example/android/app/src/main/java/com/example/stripeterminalreactnative/MainApplication.java b/example/android/app/src/main/java/com/example/stripeterminalreactnative/MainApplication.java index 9512c8b5..723763b3 100644 --- a/example/android/app/src/main/java/com/example/stripeterminalreactnative/MainApplication.java +++ b/example/android/app/src/main/java/com/example/stripeterminalreactnative/MainApplication.java @@ -14,6 +14,9 @@ import com.stripe.stripeterminal.TerminalApplicationDelegate; import com.stripeterminalreactnative.StripeTerminalReactNativePackage; +import com.facebook.react.bridge.JSIModulePackage; +import com.swmansion.reanimated.ReanimatedJSIModulePackage; + public class MainApplication extends Application implements ReactApplication { private final ReactNativeHost mReactNativeHost = @@ -37,6 +40,11 @@ protected List getPackages() { protected String getJSMainModuleName() { return "index"; } + + @Override + protected JSIModulePackage getJSIModulePackage() { + return new ReanimatedJSIModulePackage(); + } }; @Override diff --git a/example/android/gradle.properties b/example/android/gradle.properties index 592708dd..30eded30 100644 --- a/example/android/gradle.properties +++ b/example/android/gradle.properties @@ -19,4 +19,4 @@ android.useAndroidX=true android.enableJetifier=true -FLIPPER_VERSION=0.54.0 +FLIPPER_VERSION=0.99.0