diff --git a/config/webpack/webpack.common.js b/config/webpack/webpack.common.js index 75d0229a9505..329bee971e4a 100644 --- a/config/webpack/webpack.common.js +++ b/config/webpack/webpack.common.js @@ -42,6 +42,15 @@ const webpackConfig = ({envFile = '.env', platform = 'web'}) => ({ path: path.resolve(__dirname, '../../dist'), publicPath: '/', }, + stats: { + warningsFilter: [ + // @react-navigation for web uses the legacy modules (related to react-native-reanimated) + // This results in 33 warnings with stack traces that appear during build and each time we make a change + // We can't do anything about the warnings, and they only get in the way, so we suppress them + './node_modules/@react-navigation/drawer/lib/module/views/legacy/Drawer.js', + './node_modules/@react-navigation/drawer/lib/module/views/legacy/Overlay.js', + ], + }, plugins: [ new CleanWebpackPlugin(), new HtmlWebpackPlugin({ @@ -110,18 +119,6 @@ const webpackConfig = ({envFile = '.env', platform = 'web'}) => ({ new RegExp(`node_modules/(?!(${includeModules})/).*|.native.js$`), ], }, - { - test: /\.js$/, - loader: 'eslint-loader', - exclude: [ - /node_modules|\.native\.js$/, - ], - options: { - cache: false, - emitWarning: true, - configFile: path.resolve(__dirname, '../../.eslintrc.js'), - }, - }, // Rule for react-native-web-webview { @@ -178,11 +175,6 @@ const webpackConfig = ({envFile = '.env', platform = 'web'}) => ({ 'process/browser': require.resolve('process/browser'), }, }, - devServer: { - client: { - overlay: false, - }, - }, }); module.exports = webpackConfig; diff --git a/config/webpack/webpack.dev.js b/config/webpack/webpack.dev.js index 1627670bb3cf..2a418f882fbf 100644 --- a/config/webpack/webpack.dev.js +++ b/config/webpack/webpack.dev.js @@ -2,6 +2,7 @@ const path = require('path'); const portfinder = require('portfinder'); const {DefinePlugin} = require('webpack'); const {merge} = require('webpack-merge'); +const SpeedMeasurePlugin = require('speed-measure-webpack-plugin'); const getCommonConfig = require('./webpack.common'); const BASE_PORT = 8080; @@ -25,14 +26,18 @@ module.exports = (env = {}) => portfinder.getPortPromise({port: BASE_PORT}) }; const baseConfig = getCommonConfig(env); + const speedMeasure = new SpeedMeasurePlugin(); - return merge(baseConfig, { + const config = merge(baseConfig, { mode: 'development', devtool: 'eval-source-map', devServer: { static: { directory: path.join(__dirname, '../../dist'), }, + client: { + overlay: false, + }, hot: true, ...proxySettings, historyApiFallback: true, @@ -43,5 +48,16 @@ module.exports = (env = {}) => portfinder.getPortPromise({port: BASE_PORT}) 'process.env.PORT': port, }), ], + cache: { + type: 'filesystem', + name: env.platform || 'default', + buildDependencies: { + // By default, webpack and loaders are build dependencies + // This (also) makes all dependencies of this config file - build dependencies + config: [__filename], + }, + }, }); + + return speedMeasure.wrap(config); }); diff --git a/docs/_config.yml b/docs/_config.yml index 759dc1a12607..fdf6a696e6c7 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -4,6 +4,7 @@ description: Got a question about receipts, expenses, corporate cards, or anythi url: help.expensify.com author: Expensify logo: /assets/images/expensify-help.svg +open_url: true defaults: - scope: diff --git a/docs/_includes/request-money-lhn.html b/docs/_includes/request-money-lhn.html index bed3e3c3f891..a40b683273ad 100644 --- a/docs/_includes/request-money-lhn.html +++ b/docs/_includes/request-money-lhn.html @@ -18,16 +18,7 @@ - - -
  • Request money - -
  • - + diff --git a/docs/_includes/send-money-lhn.html b/docs/_includes/send-money-lhn.html index 37c6262827ad..fc78227d28bf 100644 --- a/docs/_includes/send-money-lhn.html +++ b/docs/_includes/send-money-lhn.html @@ -12,6 +12,17 @@ + + +
  • Workspaces + +
  • + +
  • diff --git a/docs/articles/request-money/SmartScan.md b/docs/articles/request-money/SmartScan.md deleted file mode 100644 index 300c014bb983..000000000000 --- a/docs/articles/request-money/SmartScan.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -title: Smart Scan -description: SmartScan is the time-saving tool that every Expensify user needs. Using SmartScan, you can quickly upload receipts and walk away to take care of more important things. ---- - -# About -SmartScan is the time-saving tool that every Expensify user needs. Using SmartScan, you can quickly upload receipts and walk away to take care of more important things. Behind the scenes, SmartScan will process the expense data from your receipt and create an expense or automatically attach the receipt to a matching imported credit card expense. - -## What is SmartScan? - -SmartScan is simple on the outside and complex on the inside. When you SmartScan a receipt, we’ll read the **Merchant**, **Date** and **Amount** of the transaction, create an expense, and add it to your Expensify account automatically. If you have a credit card connected and you upload a receipt that matches a card expense, the SmartScanned receipt will automatically merge with the imported expense instead! -- Expensify accounts come with 25 free SmartScans per month. If you’re an individual user and you need access to unlimited SmartScans, check out the [Monthly Subscription](https://community.expensify.com/discussion/5535/deep-dive-the-monthly-subscription-is-it-right-for-me)! -- If your organization is already using Expensify and you belong to a company policy, you’ll have access to unlimited SmartScans by default. - -### How SmartScan Works: - -While you're enjoying your coffee, thinking about what to pack or waiting for your package, we’ll scan the information from the receipt without any more input necessary from you. - -1. First it uses **“optical character recognition” (OCR)** on receipt images to extract the text from the image. -2. Then it analyzes that text to determine what portions correspond to the **merchant name**, **amount**, **[currency](https://community.expensify.com/discussion/5743/deep-dive-currency-in-expensify-overview/)**, and **date** of the purchase. If it can't detect a specific currency symbol, it will default to the currency based on your current location. You can also write one in by hand if it's not noted! -3. Finally, SmartScan consults your list of existing expenses to see if the newly processed receipt image corresponds to a purchase that has already been imported via a credit card connection or CSV spreadsheet. We will then merge these transactions. **Different currencies?** No problem. We'll still match 'em. - -If our OCR technology can't read the receipt, we will make sure it's flagged for human review by one of our secure technicians. At the end of the day, nothing beats the human eye for ultimate quality. - -# How-to - -## Use Smartscan to create expenses - -You can SmartScan receipts from a variety of sources to quickly and easily create expenses. - -### SmartScan physical receipts with the Expensify mobile app -- Open Expensify app and use the big green camera button to snap a photo. Use 3D touch to make it even faster! -- Tap "Add details" to add a description if you want to, or select a custom category or tag. -- Put your phone back in your pocket and forget about the receipt entirely. -- Toss your receipt in the trash... Or burn it! We’ll take over from here! - -### SmartScan digital or emailed receipts by emailing them to receipts@expensify.com - -### SmartScan a web receipt with the [Expensify Chrome Extension](https://community.expensify.com/discussion/4680/how-to-download-and-use-the-chrome-extension) - -SmartScan runs in the background, so there’s no need to keep the app open. Most SmartScans complete within one hour, but it can take a bit longer—so don't worry! If we need more information from you, you’ll get a message from Concierge letting you know! - -## Email Receipts to Expensify - -All receipts in your email inbox, such as airline, rental car, hotel confirmations, online purchases, etc... can be added to your Expensify account simply by forwarding them to receipts@expensify.com. These email receipts will be SmartScanned and an expense will be created for you automatically in Expensify. - -### How to create an expense from a receipt email in your Expensify account: - -- Directly forward the email to receipts@expensify.com from the email address associated with your Expensify account. -- Expensify will immediately SmartScan the receipt email. -- You can then find the expense on the Expenses page, either listed under the date of the receipt (if the SmartScan has completed) or under the date that you forwarded the receipt (if the SmartScan has not completed extracting information from the receipt yet). - -### How to create an expense in Expensify with a receipt email from an email address that is different from your Expensify login: - -- You'll want to add this email address as a secondary login to your Expensify account. This way we associate any email receipts sent from this email to receipts@expensify.com and add them to the correct Expensify account. -- Once the email address has been added as a secondary login, simply follow the steps above and forward these receipt emails to receipts@expensify.com. - -Pro tip: Expensify offer receipt integrations with popular apps such as Uber and Lyft where receipts are automatically imported into your account. - -## How-to: Email Receipts as a Copilot - -Because emailing receipts to receipts@expensify.com sends the receipts directly to the account tied to the senders email, there is an additional step you need to take when sending receipts as a copilot. - -1. Click forward on the email and address it to receipts@expensify.com -2. Add the email address of the user whose account you want the receipts to go to in the subject line -3. Click Send - -As long as you are a Copilot for this user, the receipts will be placed in their account and can be found on the Expenses page. - -### Can the Copilot's Secondary Logins be used to forward receipts? -Yes! A Copilot can use any of the email addresses tied to their account to forward receipts into the account of the person they're assisting. - -# FAQ - -## How do I get unlimited SmartScans? - -If you belong to your company’s policy, you have unlimited SmartScans automatically. However, if you’re an individual user, purchase the Monthly Subscription to gain access to limitless SmartScans. - -## How can I SmartScan multiple receipts as quickly as possible? - -You can enable Rapid Fire of receipts by tapping the camera icon in the bottom right-hand corner of the screen when taking a picture of your receipts. With Rapid Fire enabled, you can snap away without ever being taken out of the camera to code your receipts. - -## SmartScanned receipts and credit card's currency are different. Will they still match? - -Yep! As long as the currency is clear, SmartScan is smart enough to convert to the proper currency (indicated by your policy or your account settings) and merge with the incoming credit card transaction. - -## Will an eReceipt merge with a SmartScan or emailed receipt? - -Yes! SmartScanned receipts will still merge with and override their eReceipt counterparts. - -## Will Duplicate Detection flag the same receipt even if I accidentally SmartScan it much later? - -[Duplicate Detection](https://community.expensify.com/discussion/5644/deep-dive-duplicate-detection-what-is-it-and-how-it-works/p1?new=1) will look at all expenses in a single user’s Expensify account regardless of the date it is uploaded. As long as the date and amount match, then we will show a duplicate. - -## Why did Concierge reach out about my SmartScan? - -When Concierge reaches out it means that your receipt was most likely missing one or more of these: merchant name, purchase date, or total amount. SmartScan requires these three data points to be present because it’s the only way to ensure it’s a traceable, legitimate receipt. - -Want to know more about Concierge? Meet our friendly AI bot [here](https://community.expensify.com/discussion/5515/deep-dive-meet-concierge/p1?new=1)! - -## Can I disable SmartScan? - -For users on Track, Submit and Collect policies, you can disable SmartScan in your account settings. - -1. Disabling SmartScan -2. Log into your account using your preferred web browser, -3. Head to your Settings > Your Account > Preferences > SmartScanning page, -4. Click the green toggle to disable the feature. - -Please note: SmartScan is enabled for all Control plan policies to facilitate the Concierge Receipt Audit feature. You cannot disable SmartScan when defaulted to a Control policy. diff --git a/docs/hubs/request-money.html b/docs/hubs/request-money.html index b330e690821e..3e52f81967b2 100644 --- a/docs/hubs/request-money.html +++ b/docs/hubs/request-money.html @@ -14,26 +14,3 @@

    - - -

    - Request Money -

    - - -
    - - - - -
    -

    SmartScan

    -
    -
    - -
    -
    - - - -
    diff --git a/docs/hubs/send-money.html b/docs/hubs/send-money.html index 8547602c0ed2..5d34eb4efef8 100644 --- a/docs/hubs/send-money.html +++ b/docs/hubs/send-money.html @@ -8,7 +8,28 @@

    Send Money page

    - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur hendrerit euismod dui, nec fermentum urna porta ultrices. Nullam sed vestibulum purus, in auctor libero. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Maecenas dolor metus, - + + + +

    + Workspaces +

    + + +
    + + + + +
    +

    The Free Plan

    +
    +
    + +
    +
    + + + +
    diff --git a/ios/NewExpensify.xcodeproj/project.pbxproj b/ios/NewExpensify.xcodeproj/project.pbxproj index 5b46ea16f0cf..cad2b5f4eb2e 100644 --- a/ios/NewExpensify.xcodeproj/project.pbxproj +++ b/ios/NewExpensify.xcodeproj/project.pbxproj @@ -750,7 +750,7 @@ COPY_PHASE_STRIP = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -775,7 +775,6 @@ ); MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; - REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; }; name = Debug; @@ -812,7 +811,7 @@ COPY_PHASE_STRIP = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -829,7 +828,6 @@ "\"$(inherited)\"", ); MTL_ENABLE_DEBUG_INFO = NO; - REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; VALIDATE_PRODUCT = YES; }; diff --git a/ios/NewExpensify.xcworkspace/contents.xcworkspacedata b/ios/NewExpensify.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 32287185110d..000000000000 --- a/ios/NewExpensify.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 7a683166e44c..8edde52c08b1 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -17,14 +17,14 @@ PODS: - boost (1.76.0) - CocoaAsyncSocket (7.6.5) - DoubleConversion (1.1.6) - - FBLazyVector (0.70.5) - - FBReactNativeSpec (0.70.5): + - FBLazyVector (0.70.4-alpha.1) + - FBReactNativeSpec (0.70.4-alpha.1): - RCT-Folly (= 2021.07.22.00) - - RCTRequired (= 0.70.5) - - RCTTypeSafety (= 0.70.5) - - React-Core (= 0.70.5) - - React-jsi (= 0.70.5) - - ReactCommon/turbomodule/core (= 0.70.5) + - RCTRequired (= 0.70.4-alpha.1) + - RCTTypeSafety (= 0.70.4-alpha.1) + - React-Core (= 0.70.4-alpha.1) + - React-jsi (= 0.70.4-alpha.1) + - ReactCommon/turbomodule/core (= 0.70.4-alpha.1) - Firebase/Analytics (8.8.0): - Firebase/Core - Firebase/Core (8.8.0): @@ -249,214 +249,214 @@ PODS: - fmt (~> 6.2.1) - glog - libevent - - RCTRequired (0.70.5) - - RCTTypeSafety (0.70.5): - - FBLazyVector (= 0.70.5) - - RCTRequired (= 0.70.5) - - React-Core (= 0.70.5) - - React (0.70.5): - - React-Core (= 0.70.5) - - React-Core/DevSupport (= 0.70.5) - - React-Core/RCTWebSocket (= 0.70.5) - - React-RCTActionSheet (= 0.70.5) - - React-RCTAnimation (= 0.70.5) - - React-RCTBlob (= 0.70.5) - - React-RCTImage (= 0.70.5) - - React-RCTLinking (= 0.70.5) - - React-RCTNetwork (= 0.70.5) - - React-RCTSettings (= 0.70.5) - - React-RCTText (= 0.70.5) - - React-RCTVibration (= 0.70.5) - - React-bridging (0.70.5): + - RCTRequired (0.70.4-alpha.1) + - RCTTypeSafety (0.70.4-alpha.1): + - FBLazyVector (= 0.70.4-alpha.1) + - RCTRequired (= 0.70.4-alpha.1) + - React-Core (= 0.70.4-alpha.1) + - React (0.70.4-alpha.1): + - React-Core (= 0.70.4-alpha.1) + - React-Core/DevSupport (= 0.70.4-alpha.1) + - React-Core/RCTWebSocket (= 0.70.4-alpha.1) + - React-RCTActionSheet (= 0.70.4-alpha.1) + - React-RCTAnimation (= 0.70.4-alpha.1) + - React-RCTBlob (= 0.70.4-alpha.1) + - React-RCTImage (= 0.70.4-alpha.1) + - React-RCTLinking (= 0.70.4-alpha.1) + - React-RCTNetwork (= 0.70.4-alpha.1) + - React-RCTSettings (= 0.70.4-alpha.1) + - React-RCTText (= 0.70.4-alpha.1) + - React-RCTVibration (= 0.70.4-alpha.1) + - React-bridging (0.70.4-alpha.1): - RCT-Folly (= 2021.07.22.00) - - React-jsi (= 0.70.5) - - React-callinvoker (0.70.5) - - React-Codegen (0.70.5): - - FBReactNativeSpec (= 0.70.5) + - React-jsi (= 0.70.4-alpha.1) + - React-callinvoker (0.70.4-alpha.1) + - React-Codegen (0.70.4-alpha.1): + - FBReactNativeSpec (= 0.70.4-alpha.1) - RCT-Folly (= 2021.07.22.00) - - RCTRequired (= 0.70.5) - - RCTTypeSafety (= 0.70.5) - - React-Core (= 0.70.5) - - React-jsi (= 0.70.5) - - React-jsiexecutor (= 0.70.5) - - ReactCommon/turbomodule/core (= 0.70.5) - - React-Core (0.70.5): + - RCTRequired (= 0.70.4-alpha.1) + - RCTTypeSafety (= 0.70.4-alpha.1) + - React-Core (= 0.70.4-alpha.1) + - React-jsi (= 0.70.4-alpha.1) + - React-jsiexecutor (= 0.70.4-alpha.1) + - ReactCommon/turbomodule/core (= 0.70.4-alpha.1) + - React-Core (0.70.4-alpha.1): - glog - RCT-Folly (= 2021.07.22.00) - - React-Core/Default (= 0.70.5) - - React-cxxreact (= 0.70.5) - - React-jsi (= 0.70.5) - - React-jsiexecutor (= 0.70.5) - - React-perflogger (= 0.70.5) + - React-Core/Default (= 0.70.4-alpha.1) + - React-cxxreact (= 0.70.4-alpha.1) + - React-jsi (= 0.70.4-alpha.1) + - React-jsiexecutor (= 0.70.4-alpha.1) + - React-perflogger (= 0.70.4-alpha.1) - Yoga - - React-Core/CoreModulesHeaders (0.70.5): + - React-Core/CoreModulesHeaders (0.70.4-alpha.1): - glog - RCT-Folly (= 2021.07.22.00) - React-Core/Default - - React-cxxreact (= 0.70.5) - - React-jsi (= 0.70.5) - - React-jsiexecutor (= 0.70.5) - - React-perflogger (= 0.70.5) + - React-cxxreact (= 0.70.4-alpha.1) + - React-jsi (= 0.70.4-alpha.1) + - React-jsiexecutor (= 0.70.4-alpha.1) + - React-perflogger (= 0.70.4-alpha.1) - Yoga - - React-Core/Default (0.70.5): + - React-Core/Default (0.70.4-alpha.1): - glog - RCT-Folly (= 2021.07.22.00) - - React-cxxreact (= 0.70.5) - - React-jsi (= 0.70.5) - - React-jsiexecutor (= 0.70.5) - - React-perflogger (= 0.70.5) + - React-cxxreact (= 0.70.4-alpha.1) + - React-jsi (= 0.70.4-alpha.1) + - React-jsiexecutor (= 0.70.4-alpha.1) + - React-perflogger (= 0.70.4-alpha.1) - Yoga - - React-Core/DevSupport (0.70.5): + - React-Core/DevSupport (0.70.4-alpha.1): - glog - RCT-Folly (= 2021.07.22.00) - - React-Core/Default (= 0.70.5) - - React-Core/RCTWebSocket (= 0.70.5) - - React-cxxreact (= 0.70.5) - - React-jsi (= 0.70.5) - - React-jsiexecutor (= 0.70.5) - - React-jsinspector (= 0.70.5) - - React-perflogger (= 0.70.5) + - React-Core/Default (= 0.70.4-alpha.1) + - React-Core/RCTWebSocket (= 0.70.4-alpha.1) + - React-cxxreact (= 0.70.4-alpha.1) + - React-jsi (= 0.70.4-alpha.1) + - React-jsiexecutor (= 0.70.4-alpha.1) + - React-jsinspector (= 0.70.4-alpha.1) + - React-perflogger (= 0.70.4-alpha.1) - Yoga - - React-Core/RCTActionSheetHeaders (0.70.5): + - React-Core/RCTActionSheetHeaders (0.70.4-alpha.1): - glog - RCT-Folly (= 2021.07.22.00) - React-Core/Default - - React-cxxreact (= 0.70.5) - - React-jsi (= 0.70.5) - - React-jsiexecutor (= 0.70.5) - - React-perflogger (= 0.70.5) + - React-cxxreact (= 0.70.4-alpha.1) + - React-jsi (= 0.70.4-alpha.1) + - React-jsiexecutor (= 0.70.4-alpha.1) + - React-perflogger (= 0.70.4-alpha.1) - Yoga - - React-Core/RCTAnimationHeaders (0.70.5): + - React-Core/RCTAnimationHeaders (0.70.4-alpha.1): - glog - RCT-Folly (= 2021.07.22.00) - React-Core/Default - - React-cxxreact (= 0.70.5) - - React-jsi (= 0.70.5) - - React-jsiexecutor (= 0.70.5) - - React-perflogger (= 0.70.5) + - React-cxxreact (= 0.70.4-alpha.1) + - React-jsi (= 0.70.4-alpha.1) + - React-jsiexecutor (= 0.70.4-alpha.1) + - React-perflogger (= 0.70.4-alpha.1) - Yoga - - React-Core/RCTBlobHeaders (0.70.5): + - React-Core/RCTBlobHeaders (0.70.4-alpha.1): - glog - RCT-Folly (= 2021.07.22.00) - React-Core/Default - - React-cxxreact (= 0.70.5) - - React-jsi (= 0.70.5) - - React-jsiexecutor (= 0.70.5) - - React-perflogger (= 0.70.5) + - React-cxxreact (= 0.70.4-alpha.1) + - React-jsi (= 0.70.4-alpha.1) + - React-jsiexecutor (= 0.70.4-alpha.1) + - React-perflogger (= 0.70.4-alpha.1) - Yoga - - React-Core/RCTImageHeaders (0.70.5): + - React-Core/RCTImageHeaders (0.70.4-alpha.1): - glog - RCT-Folly (= 2021.07.22.00) - React-Core/Default - - React-cxxreact (= 0.70.5) - - React-jsi (= 0.70.5) - - React-jsiexecutor (= 0.70.5) - - React-perflogger (= 0.70.5) + - React-cxxreact (= 0.70.4-alpha.1) + - React-jsi (= 0.70.4-alpha.1) + - React-jsiexecutor (= 0.70.4-alpha.1) + - React-perflogger (= 0.70.4-alpha.1) - Yoga - - React-Core/RCTLinkingHeaders (0.70.5): + - React-Core/RCTLinkingHeaders (0.70.4-alpha.1): - glog - RCT-Folly (= 2021.07.22.00) - React-Core/Default - - React-cxxreact (= 0.70.5) - - React-jsi (= 0.70.5) - - React-jsiexecutor (= 0.70.5) - - React-perflogger (= 0.70.5) + - React-cxxreact (= 0.70.4-alpha.1) + - React-jsi (= 0.70.4-alpha.1) + - React-jsiexecutor (= 0.70.4-alpha.1) + - React-perflogger (= 0.70.4-alpha.1) - Yoga - - React-Core/RCTNetworkHeaders (0.70.5): + - React-Core/RCTNetworkHeaders (0.70.4-alpha.1): - glog - RCT-Folly (= 2021.07.22.00) - React-Core/Default - - React-cxxreact (= 0.70.5) - - React-jsi (= 0.70.5) - - React-jsiexecutor (= 0.70.5) - - React-perflogger (= 0.70.5) + - React-cxxreact (= 0.70.4-alpha.1) + - React-jsi (= 0.70.4-alpha.1) + - React-jsiexecutor (= 0.70.4-alpha.1) + - React-perflogger (= 0.70.4-alpha.1) - Yoga - - React-Core/RCTSettingsHeaders (0.70.5): + - React-Core/RCTSettingsHeaders (0.70.4-alpha.1): - glog - RCT-Folly (= 2021.07.22.00) - React-Core/Default - - React-cxxreact (= 0.70.5) - - React-jsi (= 0.70.5) - - React-jsiexecutor (= 0.70.5) - - React-perflogger (= 0.70.5) + - React-cxxreact (= 0.70.4-alpha.1) + - React-jsi (= 0.70.4-alpha.1) + - React-jsiexecutor (= 0.70.4-alpha.1) + - React-perflogger (= 0.70.4-alpha.1) - Yoga - - React-Core/RCTTextHeaders (0.70.5): + - React-Core/RCTTextHeaders (0.70.4-alpha.1): - glog - RCT-Folly (= 2021.07.22.00) - React-Core/Default - - React-cxxreact (= 0.70.5) - - React-jsi (= 0.70.5) - - React-jsiexecutor (= 0.70.5) - - React-perflogger (= 0.70.5) + - React-cxxreact (= 0.70.4-alpha.1) + - React-jsi (= 0.70.4-alpha.1) + - React-jsiexecutor (= 0.70.4-alpha.1) + - React-perflogger (= 0.70.4-alpha.1) - Yoga - - React-Core/RCTVibrationHeaders (0.70.5): + - React-Core/RCTVibrationHeaders (0.70.4-alpha.1): - glog - RCT-Folly (= 2021.07.22.00) - React-Core/Default - - React-cxxreact (= 0.70.5) - - React-jsi (= 0.70.5) - - React-jsiexecutor (= 0.70.5) - - React-perflogger (= 0.70.5) + - React-cxxreact (= 0.70.4-alpha.1) + - React-jsi (= 0.70.4-alpha.1) + - React-jsiexecutor (= 0.70.4-alpha.1) + - React-perflogger (= 0.70.4-alpha.1) - Yoga - - React-Core/RCTWebSocket (0.70.5): + - React-Core/RCTWebSocket (0.70.4-alpha.1): - glog - RCT-Folly (= 2021.07.22.00) - - React-Core/Default (= 0.70.5) - - React-cxxreact (= 0.70.5) - - React-jsi (= 0.70.5) - - React-jsiexecutor (= 0.70.5) - - React-perflogger (= 0.70.5) + - React-Core/Default (= 0.70.4-alpha.1) + - React-cxxreact (= 0.70.4-alpha.1) + - React-jsi (= 0.70.4-alpha.1) + - React-jsiexecutor (= 0.70.4-alpha.1) + - React-perflogger (= 0.70.4-alpha.1) - Yoga - - React-CoreModules (0.70.5): + - React-CoreModules (0.70.4-alpha.1): - RCT-Folly (= 2021.07.22.00) - - RCTTypeSafety (= 0.70.5) - - React-Codegen (= 0.70.5) - - React-Core/CoreModulesHeaders (= 0.70.5) - - React-jsi (= 0.70.5) - - React-RCTImage (= 0.70.5) - - ReactCommon/turbomodule/core (= 0.70.5) - - React-cxxreact (0.70.5): + - RCTTypeSafety (= 0.70.4-alpha.1) + - React-Codegen (= 0.70.4-alpha.1) + - React-Core/CoreModulesHeaders (= 0.70.4-alpha.1) + - React-jsi (= 0.70.4-alpha.1) + - React-RCTImage (= 0.70.4-alpha.1) + - ReactCommon/turbomodule/core (= 0.70.4-alpha.1) + - React-cxxreact (0.70.4-alpha.1): - boost (= 1.76.0) - DoubleConversion - glog - RCT-Folly (= 2021.07.22.00) - - React-callinvoker (= 0.70.5) - - React-jsi (= 0.70.5) - - React-jsinspector (= 0.70.5) - - React-logger (= 0.70.5) - - React-perflogger (= 0.70.5) - - React-runtimeexecutor (= 0.70.5) - - React-hermes (0.70.5): + - React-callinvoker (= 0.70.4-alpha.1) + - React-jsi (= 0.70.4-alpha.1) + - React-jsinspector (= 0.70.4-alpha.1) + - React-logger (= 0.70.4-alpha.1) + - React-perflogger (= 0.70.4-alpha.1) + - React-runtimeexecutor (= 0.70.4-alpha.1) + - React-hermes (0.70.4-alpha.1): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - RCT-Folly/Futures (= 2021.07.22.00) - - React-cxxreact (= 0.70.5) - - React-jsi (= 0.70.5) - - React-jsiexecutor (= 0.70.5) - - React-jsinspector (= 0.70.5) - - React-perflogger (= 0.70.5) - - React-jsi (0.70.5): + - React-cxxreact (= 0.70.4-alpha.1) + - React-jsi (= 0.70.4-alpha.1) + - React-jsiexecutor (= 0.70.4-alpha.1) + - React-jsinspector (= 0.70.4-alpha.1) + - React-perflogger (= 0.70.4-alpha.1) + - React-jsi (0.70.4-alpha.1): - boost (= 1.76.0) - DoubleConversion - glog - RCT-Folly (= 2021.07.22.00) - - React-jsi/Default (= 0.70.5) - - React-jsi/Default (0.70.5): + - React-jsi/Default (= 0.70.4-alpha.1) + - React-jsi/Default (0.70.4-alpha.1): - boost (= 1.76.0) - DoubleConversion - glog - RCT-Folly (= 2021.07.22.00) - - React-jsiexecutor (0.70.5): + - React-jsiexecutor (0.70.4-alpha.1): - DoubleConversion - glog - RCT-Folly (= 2021.07.22.00) - - React-cxxreact (= 0.70.5) - - React-jsi (= 0.70.5) - - React-perflogger (= 0.70.5) - - React-jsinspector (0.70.5) - - React-logger (0.70.5): + - React-cxxreact (= 0.70.4-alpha.1) + - React-jsi (= 0.70.4-alpha.1) + - React-perflogger (= 0.70.4-alpha.1) + - React-jsinspector (0.70.4-alpha.1) + - React-logger (0.70.4-alpha.1): - glog - react-native-blob-util (0.16.2): - React-Core @@ -495,72 +495,72 @@ PODS: - ReactCommon/turbomodule/core - react-native-webview (11.23.0): - React-Core - - React-perflogger (0.70.5) - - React-RCTActionSheet (0.70.5): - - React-Core/RCTActionSheetHeaders (= 0.70.5) - - React-RCTAnimation (0.70.5): + - React-perflogger (0.70.4-alpha.1) + - React-RCTActionSheet (0.70.4-alpha.1): + - React-Core/RCTActionSheetHeaders (= 0.70.4-alpha.1) + - React-RCTAnimation (0.70.4-alpha.1): - RCT-Folly (= 2021.07.22.00) - - RCTTypeSafety (= 0.70.5) - - React-Codegen (= 0.70.5) - - React-Core/RCTAnimationHeaders (= 0.70.5) - - React-jsi (= 0.70.5) - - ReactCommon/turbomodule/core (= 0.70.5) - - React-RCTBlob (0.70.5): + - RCTTypeSafety (= 0.70.4-alpha.1) + - React-Codegen (= 0.70.4-alpha.1) + - React-Core/RCTAnimationHeaders (= 0.70.4-alpha.1) + - React-jsi (= 0.70.4-alpha.1) + - ReactCommon/turbomodule/core (= 0.70.4-alpha.1) + - React-RCTBlob (0.70.4-alpha.1): - RCT-Folly (= 2021.07.22.00) - - React-Codegen (= 0.70.5) - - React-Core/RCTBlobHeaders (= 0.70.5) - - React-Core/RCTWebSocket (= 0.70.5) - - React-jsi (= 0.70.5) - - React-RCTNetwork (= 0.70.5) - - ReactCommon/turbomodule/core (= 0.70.5) - - React-RCTImage (0.70.5): + - React-Codegen (= 0.70.4-alpha.1) + - React-Core/RCTBlobHeaders (= 0.70.4-alpha.1) + - React-Core/RCTWebSocket (= 0.70.4-alpha.1) + - React-jsi (= 0.70.4-alpha.1) + - React-RCTNetwork (= 0.70.4-alpha.1) + - ReactCommon/turbomodule/core (= 0.70.4-alpha.1) + - React-RCTImage (0.70.4-alpha.1): - RCT-Folly (= 2021.07.22.00) - - RCTTypeSafety (= 0.70.5) - - React-Codegen (= 0.70.5) - - React-Core/RCTImageHeaders (= 0.70.5) - - React-jsi (= 0.70.5) - - React-RCTNetwork (= 0.70.5) - - ReactCommon/turbomodule/core (= 0.70.5) - - React-RCTLinking (0.70.5): - - React-Codegen (= 0.70.5) - - React-Core/RCTLinkingHeaders (= 0.70.5) - - React-jsi (= 0.70.5) - - ReactCommon/turbomodule/core (= 0.70.5) - - React-RCTNetwork (0.70.5): + - RCTTypeSafety (= 0.70.4-alpha.1) + - React-Codegen (= 0.70.4-alpha.1) + - React-Core/RCTImageHeaders (= 0.70.4-alpha.1) + - React-jsi (= 0.70.4-alpha.1) + - React-RCTNetwork (= 0.70.4-alpha.1) + - ReactCommon/turbomodule/core (= 0.70.4-alpha.1) + - React-RCTLinking (0.70.4-alpha.1): + - React-Codegen (= 0.70.4-alpha.1) + - React-Core/RCTLinkingHeaders (= 0.70.4-alpha.1) + - React-jsi (= 0.70.4-alpha.1) + - ReactCommon/turbomodule/core (= 0.70.4-alpha.1) + - React-RCTNetwork (0.70.4-alpha.1): - RCT-Folly (= 2021.07.22.00) - - RCTTypeSafety (= 0.70.5) - - React-Codegen (= 0.70.5) - - React-Core/RCTNetworkHeaders (= 0.70.5) - - React-jsi (= 0.70.5) - - ReactCommon/turbomodule/core (= 0.70.5) - - React-RCTSettings (0.70.5): + - RCTTypeSafety (= 0.70.4-alpha.1) + - React-Codegen (= 0.70.4-alpha.1) + - React-Core/RCTNetworkHeaders (= 0.70.4-alpha.1) + - React-jsi (= 0.70.4-alpha.1) + - ReactCommon/turbomodule/core (= 0.70.4-alpha.1) + - React-RCTSettings (0.70.4-alpha.1): - RCT-Folly (= 2021.07.22.00) - - RCTTypeSafety (= 0.70.5) - - React-Codegen (= 0.70.5) - - React-Core/RCTSettingsHeaders (= 0.70.5) - - React-jsi (= 0.70.5) - - ReactCommon/turbomodule/core (= 0.70.5) - - React-RCTText (0.70.5): - - React-Core/RCTTextHeaders (= 0.70.5) - - React-RCTVibration (0.70.5): + - RCTTypeSafety (= 0.70.4-alpha.1) + - React-Codegen (= 0.70.4-alpha.1) + - React-Core/RCTSettingsHeaders (= 0.70.4-alpha.1) + - React-jsi (= 0.70.4-alpha.1) + - ReactCommon/turbomodule/core (= 0.70.4-alpha.1) + - React-RCTText (0.70.4-alpha.1): + - React-Core/RCTTextHeaders (= 0.70.4-alpha.1) + - React-RCTVibration (0.70.4-alpha.1): - RCT-Folly (= 2021.07.22.00) - - React-Codegen (= 0.70.5) - - React-Core/RCTVibrationHeaders (= 0.70.5) - - React-jsi (= 0.70.5) - - ReactCommon/turbomodule/core (= 0.70.5) - - React-runtimeexecutor (0.70.5): - - React-jsi (= 0.70.5) - - ReactCommon/turbomodule/core (0.70.5): + - React-Codegen (= 0.70.4-alpha.1) + - React-Core/RCTVibrationHeaders (= 0.70.4-alpha.1) + - React-jsi (= 0.70.4-alpha.1) + - ReactCommon/turbomodule/core (= 0.70.4-alpha.1) + - React-runtimeexecutor (0.70.4-alpha.1): + - React-jsi (= 0.70.4-alpha.1) + - ReactCommon/turbomodule/core (0.70.4-alpha.1): - DoubleConversion - glog - RCT-Folly (= 2021.07.22.00) - - React-bridging (= 0.70.5) - - React-callinvoker (= 0.70.5) - - React-Core (= 0.70.5) - - React-cxxreact (= 0.70.5) - - React-jsi (= 0.70.5) - - React-logger (= 0.70.5) - - React-perflogger (= 0.70.5) + - React-bridging (= 0.70.4-alpha.1) + - React-callinvoker (= 0.70.4-alpha.1) + - React-Core (= 0.70.4-alpha.1) + - React-cxxreact (= 0.70.4-alpha.1) + - React-jsi (= 0.70.4-alpha.1) + - React-logger (= 0.70.4-alpha.1) + - React-perflogger (= 0.70.4-alpha.1) - RNCAsyncStorage (1.17.10): - React-Core - RNCClipboard (1.5.1): @@ -921,8 +921,8 @@ SPEC CHECKSUMS: boost: a7c83b31436843459a1961bfd74b96033dc77234 CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54 - FBLazyVector: affa4ba1bfdaac110a789192f4d452b053a86624 - FBReactNativeSpec: fe8b5f1429cfe83a8d72dc8ed61dc7704cac8745 + FBLazyVector: 674d5b03473bdbc879c79c6ad770d17aef384b03 + FBReactNativeSpec: 3d8684f3599fef61928f5226eb41376945a5bc97 Firebase: 629510f1a9ddb235f3a7c5c8ceb23ba887f0f814 FirebaseABTesting: 10cbce8db9985ae2e3847ea44e9947dd18f94e10 FirebaseAnalytics: 5506ea8b867d8423485a84b4cd612d279f7b0b8a @@ -960,20 +960,20 @@ SPEC CHECKSUMS: Plaid: 6beadc0828cfd5396c5905931b9503493bbc139a PromisesObjC: ab77feca74fa2823e7af4249b8326368e61014cb RCT-Folly: 0080d0a6ebf2577475bda044aa59e2ca1f909cda - RCTRequired: 21229f84411088e5d8538f21212de49e46cc83e2 - RCTTypeSafety: 62eed57a32924b09edaaf170a548d1fc96223086 - React: f0254ccddeeef1defe66c6b1bb9133a4f040792b - React-bridging: e46911666b7ec19538a620a221d6396cd293d687 - React-callinvoker: 66b62e2c34546546b2f21ab0b7670346410a2b53 - React-Codegen: b6999435966df3bdf82afa3f319ba0d6f9a8532a - React-Core: dabbc9d1fe0a11d884e6ee1599789cf8eb1058a5 - React-CoreModules: 5b6b7668f156f73a56420df9ec68ca2ec8f2e818 - React-cxxreact: c7ca2baee46db22a30fce9e639277add3c3f6ad1 - React-hermes: c93e1d759ad5560dfea54d233013d7d2c725c286 - React-jsi: a565dcb49130ed20877a9bb1105ffeecbb93d02d - React-jsiexecutor: 31564fa6912459921568e8b0e49024285a4d584b - React-jsinspector: badd81696361249893a80477983e697aab3c1a34 - React-logger: fdda34dd285bdb0232e059b19d9606fa0ec3bb9c + RCTRequired: 9171c759923bb34cebba3142a996ff0055a26558 + RCTTypeSafety: b6e02adf80bbbb3df7ff287959df499dab9d66b0 + React: a75e21ae0e5409626c31321359785e7e3d2fa4ab + React-bridging: 99c78cffc6d53177130c27c309ffd3ca4a008add + React-callinvoker: 470766a4e2f49490da6e25923e9bd7f19a449cda + React-Codegen: 6f97b1b03090f65582ddccb0b75ea1662f34b54b + React-Core: f780c93e3b8248ca22f08149b1f4f94f85ab24c7 + React-CoreModules: 87351a3490e6bbc8bec65cd5c5c2f5a16a18e01f + React-cxxreact: 1eb773153ae7609bd7ee42c708951742d8cac3c8 + React-hermes: 0f83c702505261ab33e1938ca4a6def638a003e2 + React-jsi: 3fe2db643751becdf3511b77dcb84b68a04b52c4 + React-jsiexecutor: f7a04e9374dbfa320089064f4e6f2c9e10d0740a + React-jsinspector: 0f08037401626246e5c760871a023769b9815619 + React-logger: 0a8e62c840f534936c2cb2c96d0e6d507010e862 react-native-blob-util: c3b0faecd2919db568e9d552084396f3e50b57c7 react-native-cameraroll: 2957f2bce63ae896a848fbe0d5352c1bd4d20866 react-native-config: 7cd105e71d903104e8919261480858940a6b9c0e @@ -989,18 +989,18 @@ SPEC CHECKSUMS: react-native-render-html: 96c979fe7452a0a41559685d2f83b12b93edac8c react-native-safe-area-context: 99b24a0c5acd0d5dcac2b1a7f18c49ea317be99a react-native-webview: e771bc375f789ebfa02a26939a57dbc6fa897336 - React-perflogger: e68d3795cf5d247a0379735cbac7309adf2fb931 - React-RCTActionSheet: 05452c3b281edb27850253db13ecd4c5a65bc247 - React-RCTAnimation: 578eebac706428e68466118e84aeacf3a282b4da - React-RCTBlob: f47a0aa61e7d1fb1a0e13da832b0da934939d71a - React-RCTImage: 60f54b66eed65d86b6dffaf4733d09161d44929d - React-RCTLinking: 91073205aeec4b29450ca79b709277319368ac9e - React-RCTNetwork: ca91f2c9465a7e335c8a5fae731fd7f10572213b - React-RCTSettings: 1a9a5d01337d55c18168c1abe0f4a589167d134a - React-RCTText: c591e8bd9347a294d8416357ca12d779afec01d5 - React-RCTVibration: 8e5c8c5d17af641f306d7380d8d0fe9b3c142c48 - React-runtimeexecutor: 7401c4a40f8728fd89df4a56104541b760876117 - ReactCommon: c9246996e73bf75a2c6c3ff15f1e16707cdc2da9 + React-perflogger: d4c9c4cfcc30a0d6cca35ddbd40a85ad4d3e4db1 + React-RCTActionSheet: fe551971745a6b04447a2c04f3d2b26fa5e3728f + React-RCTAnimation: 3a02fced1ff92012a71d4304769c2d430c7a9866 + React-RCTBlob: 9269e1c1fd754d7e8bb8c8a1d0178dc678a9f32f + React-RCTImage: 80c98b6b77063ebe851692000f54fbb9448d8e27 + React-RCTLinking: 7209ca06d58b04ad68148eeaa704f179e05f114b + React-RCTNetwork: 3ef476f0a3d43b7db36217a6f1e197517e6b750b + React-RCTSettings: 9e3dc3833f246062e91a70fed535ccb8c9f6d8c9 + React-RCTText: 89a452bfdb56e0aec4428d083626582a20d07910 + React-RCTVibration: b49dd0970d37e18c716228fce87936b578b7390c + React-runtimeexecutor: a0bd76a1162262d2945d467f6b978116e740904f + ReactCommon: cf8ef38ad293cc8a30b02f858bd16719b64a985b RNCAsyncStorage: 0c357f3156fcb16c8589ede67cc036330b6698ca RNCClipboard: 41d8d918092ae8e676f18adada19104fa3e68495 RNCPicker: 0b65be85fe7954fbb2062ef079e3d1cde252d888 @@ -1020,7 +1020,7 @@ SPEC CHECKSUMS: SDWebImageWebPCoder: 908b83b6adda48effe7667cd2b7f78c897e5111d SocketRocket: fccef3f9c5cedea1353a9ef6ada904fde10d6608 urbanairship-react-native: 7e2e9a84c541b1d04798e51f7f390a2d5806eac0 - Yoga: eca980a5771bf114c41a754098cd85e6e0d90ed7 + Yoga: affc5393470ecec3069bd7bf05d5877afffff995 YogaKit: f782866e155069a2cca2517aafea43200b01fd5a PODFILE CHECKSUM: 48093a300788c218e76f70cf6d102915cd993f34 diff --git a/package-lock.json b/package-lock.json index fafcfb8b3ad6..71ddba5cc6b4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -56,7 +56,7 @@ "react-collapse": "^5.1.0", "react-content-loader": "^6.1.0", "react-dom": "18.1.0", - "react-native": "npm:@expensify/react-native@0.70.5", + "react-native": "npm:@expensify/react-native@0.70.4-alpha.1", "react-native-blob-util": "^0.16.2", "react-native-collapsible": "^1.6.0", "react-native-config": "^1.4.5", @@ -134,7 +134,6 @@ "electron-notarize": "^1.2.1", "eslint": "^7.6.0", "eslint-config-expensify": "2.0.30", - "eslint-loader": "^4.0.2", "eslint-plugin-jest": "^24.1.0", "eslint-plugin-jsx-a11y": "^6.6.1", "eslint-plugin-storybook": "^0.5.13", @@ -143,7 +142,7 @@ "jest": "^26.6.3", "jest-circus": "^26.6.3", "jest-cli": "^26.6.3", - "metro-react-native-babel-preset": "^0.72.1", + "metro-react-native-babel-preset": "^0.73.3", "mock-fs": "^4.13.0", "portfinder": "^1.0.28", "pusher-js-mock": "^0.3.3", @@ -153,6 +152,7 @@ "react-native-svg-transformer": "^0.14.3", "react-test-renderer": "18.1.0", "semver": "^7.3.4", + "speed-measure-webpack-plugin": "^1.5.0", "style-loader": "^2.0.0", "wait-port": "^0.2.9", "webpack": "^5.74.0", @@ -2996,35 +2996,47 @@ } }, "node_modules/@jest/create-cache-key-function": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-27.5.1.tgz", - "integrity": "sha512-dmH1yW+makpTSURTy8VzdUwFnfQh1G8R+DxO2Ho2FFmBbKFEVm+3jWdvFhE2VqB/LATCTokkP0dotjyQyw5/AQ==", + "version": "29.2.1", + "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.2.1.tgz", + "integrity": "sha512-///wxGQUyP0GCr3L1OcqIzhsKvN2gOyqWsRxs56XGCdD8EEuoKg857G9nC+zcWIpIsG+3J5UnEbhe3LJw8CNmQ==", "dependencies": { - "@jest/types": "^27.5.1" + "@jest/types": "^29.2.1" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/create-cache-key-function/node_modules/@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "dependencies": { + "@sinclair/typebox": "^0.24.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/create-cache-key-function/node_modules/@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "version": "29.2.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.2.1.tgz", + "integrity": "sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw==", "dependencies": { + "@jest/schemas": "^29.0.0", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", - "@types/yargs": "^16.0.0", + "@types/yargs": "^17.0.8", "chalk": "^4.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/create-cache-key-function/node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "version": "17.0.13", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.13.tgz", + "integrity": "sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==", "dependencies": { "@types/yargs-parser": "*" } @@ -3831,30 +3843,6 @@ "@types/react-native": "*" } }, - "node_modules/@native-html/transient-render-engine": { - "version": "11.2.2", - "resolved": "https://registry.npmjs.org/@native-html/transient-render-engine/-/transient-render-engine-11.2.2.tgz", - "integrity": "sha512-z0LgQStGJf4gCIeuD8oJiPbk+sUEQ9FOzHlDWwK+uVam+1Q5mmh6PqblCdTCP3IRGBtPLzMM0VZ9njm1TEvb8Q==", - "dependencies": { - "@native-html/css-processor": "1.11.0", - "@types/ramda": "^0.27.44", - "csstype": "^3.0.9", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.2", - "domutils": "^2.8.0", - "htmlparser2": "^7.1.2", - "ramda": "^0.27.1" - }, - "peerDependencies": { - "@types/react-native": "*", - "react-native": "^*" - } - }, - "node_modules/@native-html/transient-render-engine/node_modules/ramda": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.2.tgz", - "integrity": "sha512-SbiLPU40JuJniHexQSAgad32hfwd+DRUdwF2PlVuI5RZD0/vahUco7R8vD86J/tcEKKF9vZrUVwgtmGCqlCKyA==" - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -4269,19 +4257,19 @@ } }, "node_modules/@react-native-community/cli": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-9.0.0.tgz", - "integrity": "sha512-PHt4aPMw3TP/QSaFvlUjfcCniEjz7egXamIMNxNVdUsSr2JhDr6W0l+CflpRMU2ZYlb+79o8lXHWAo38drJ0ow==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-9.2.1.tgz", + "integrity": "sha512-feMYS5WXXKF4TSWnCXozHxtWq36smyhGaENXlkiRESfYZ1mnCUlPfOanNCAvNvBqdyh9d4o0HxhYKX1g9l6DCQ==", "dependencies": { - "@react-native-community/cli-clean": "^9.0.0", - "@react-native-community/cli-config": "^9.0.0", + "@react-native-community/cli-clean": "^9.2.1", + "@react-native-community/cli-config": "^9.2.1", "@react-native-community/cli-debugger-ui": "^9.0.0", - "@react-native-community/cli-doctor": "^9.0.0", - "@react-native-community/cli-hermes": "^9.0.0", - "@react-native-community/cli-plugin-metro": "^9.0.0", - "@react-native-community/cli-server-api": "^9.0.0", - "@react-native-community/cli-tools": "^9.0.0", - "@react-native-community/cli-types": "^9.0.0", + "@react-native-community/cli-doctor": "^9.2.1", + "@react-native-community/cli-hermes": "^9.2.1", + "@react-native-community/cli-plugin-metro": "^9.2.1", + "@react-native-community/cli-server-api": "^9.2.1", + "@react-native-community/cli-tools": "^9.2.1", + "@react-native-community/cli-types": "^9.1.0", "chalk": "^4.1.2", "commander": "^9.4.0", "execa": "^1.0.0", @@ -4299,11 +4287,11 @@ } }, "node_modules/@react-native-community/cli-clean": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-9.0.0.tgz", - "integrity": "sha512-PaSz11fdSr5YI4YPl/auPdk7UCJaKFsH3gyFm8fKHqry2iPYQ3v3K8/FccVzmGbHgrvOcgAoWyhdVaFznXSp7A==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-9.2.1.tgz", + "integrity": "sha512-dyNWFrqRe31UEvNO+OFWmQ4hmqA07bR9Ief/6NnGwx67IO9q83D5PEAf/o96ML6jhSbDwCmpPKhPwwBbsyM3mQ==", "dependencies": { - "@react-native-community/cli-tools": "^9.0.0", + "@react-native-community/cli-tools": "^9.2.1", "chalk": "^4.1.2", "execa": "^1.0.0", "prompts": "^2.4.0" @@ -4482,11 +4470,11 @@ } }, "node_modules/@react-native-community/cli-config": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-9.0.0.tgz", - "integrity": "sha512-f61VjBZP/GoD1wwYdz4Y8lQeRpUwEtc/vgWSP6FDlsmGjCh0qtS7k2joEq7fJGStTC9xSl7weEx0+mo4yj3oUA==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-9.2.1.tgz", + "integrity": "sha512-gHJlBBXUgDN9vrr3aWkRqnYrPXZLztBDQoY97Mm5Yo6MidsEpYo2JIP6FH4N/N2p1TdjxJL4EFtdd/mBpiR2MQ==", "dependencies": { - "@react-native-community/cli-tools": "^9.0.0", + "@react-native-community/cli-tools": "^9.2.1", "cosmiconfig": "^5.1.0", "deepmerge": "^3.2.0", "glob": "^7.1.3", @@ -4556,13 +4544,13 @@ } }, "node_modules/@react-native-community/cli-doctor": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-9.0.0.tgz", - "integrity": "sha512-W5Z0V+vaOM5hcbOUGakhXjYAa4qrH4XVEw4wnpmVb+2Qme0Cwdf9pH4wdGXsCz2cu2CWQu6DfxB6qbDFR5+HiQ==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-9.2.1.tgz", + "integrity": "sha512-RpUax0pkKumXJ5hcRG0Qd+oYWsA2RFeMWKY+Npg8q05Cwd1rqDQfWGprkHC576vz26+FPuvwEagoAf6fR2bvJA==", "dependencies": { - "@react-native-community/cli-config": "^9.0.0", - "@react-native-community/cli-platform-ios": "^9.0.0", - "@react-native-community/cli-tools": "^9.0.0", + "@react-native-community/cli-config": "^9.2.1", + "@react-native-community/cli-platform-ios": "^9.2.1", + "@react-native-community/cli-tools": "^9.2.1", "chalk": "^4.1.2", "command-exists": "^1.2.8", "envinfo": "^7.7.2", @@ -4775,12 +4763,12 @@ } }, "node_modules/@react-native-community/cli-hermes": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-9.0.0.tgz", - "integrity": "sha512-wdv8coZ2Ptw0QQ24M8oKYsncrdIjCXIOb4d2lFp5fFmWaEbL05e8zYOavS/WSMBHwsTKiz6wCxhRYcOcX9ysFA==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-9.2.1.tgz", + "integrity": "sha512-723/NMb7egXzJrbWT1uEkN2hOpw+OOtWTG2zKJ3j7KKgUd8u/pP+/z5jO8xVrq+eYJEMjDK0FBEo1Xj7maR4Sw==", "dependencies": { - "@react-native-community/cli-platform-android": "^9.0.0", - "@react-native-community/cli-tools": "^9.0.0", + "@react-native-community/cli-platform-android": "^9.2.1", + "@react-native-community/cli-tools": "^9.2.1", "chalk": "^4.1.2", "hermes-profile-transformer": "^0.0.6", "ip": "^1.1.5" @@ -4856,11 +4844,11 @@ } }, "node_modules/@react-native-community/cli-platform-android": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-9.0.0.tgz", - "integrity": "sha512-4Rp5OUZW/7Qc9hyCd+ZEikuu2k9dW3ssu6KzWygbVc9wY80i4GQmvjfsiUi21o3uPDvL4KUMANmnQqoTOIcVMA==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-9.2.1.tgz", + "integrity": "sha512-VamCZ8nido3Q3Orhj6pBIx48itORNPLJ7iTfy3nucD1qISEDih3DOzCaQCtmqdEBgUkNkNl0O+cKgq5A3th3Zg==", "dependencies": { - "@react-native-community/cli-tools": "^9.0.0", + "@react-native-community/cli-tools": "^9.2.1", "chalk": "^4.1.2", "execa": "^1.0.0", "fs-extra": "^8.1.0", @@ -5071,11 +5059,11 @@ } }, "node_modules/@react-native-community/cli-platform-ios": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-9.0.0.tgz", - "integrity": "sha512-ODS/DiNvKlEqL+Y4tU/DOIff7th733JOkJRC/GZFCWlCyC0gyutxtbGfWxPW5ifm6NS5oc/EXiIZvCtzTnFnhQ==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-9.2.1.tgz", + "integrity": "sha512-dEgvkI6CFgPk3vs8IOR0toKVUjIFwe4AsXFvWWJL5qhrIzW9E5Owi0zPkSvzXsMlfYMbVX0COfVIK539ZxguSg==", "dependencies": { - "@react-native-community/cli-tools": "^9.0.0", + "@react-native-community/cli-tools": "^9.2.1", "chalk": "^4.1.2", "execa": "^1.0.0", "glob": "^7.1.3", @@ -5255,19 +5243,19 @@ } }, "node_modules/@react-native-community/cli-plugin-metro": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-9.0.0.tgz", - "integrity": "sha512-kKQa2vhkg1HJA/ZBdGX9dFR8WqBGgUe41BX9kinvB5zYmfWeX/JwOxorGKNSmvql88LROckrvZtzH+p9YR0G5g==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-9.2.1.tgz", + "integrity": "sha512-byBGBH6jDfUvcHGFA45W/sDwMlliv7flJ8Ns9foCh3VsIeYYPoDjjK7SawE9cPqRdMAD4SY7EVwqJnOtRbwLiQ==", "dependencies": { - "@react-native-community/cli-server-api": "^9.0.0", - "@react-native-community/cli-tools": "^9.0.0", + "@react-native-community/cli-server-api": "^9.2.1", + "@react-native-community/cli-tools": "^9.2.1", "chalk": "^4.1.2", - "metro": "^0.72.1", - "metro-config": "^0.72.1", - "metro-core": "^0.72.1", - "metro-react-native-babel-transformer": "^0.72.1", - "metro-resolver": "^0.72.1", - "metro-runtime": "^0.72.1", + "metro": "0.72.3", + "metro-config": "0.72.3", + "metro-core": "0.72.3", + "metro-react-native-babel-transformer": "0.72.3", + "metro-resolver": "0.72.3", + "metro-runtime": "0.72.3", "readline": "^1.3.0" } }, @@ -5463,9 +5451,9 @@ } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/jest-util/node_modules/ci-info": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz", - "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==" + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.5.0.tgz", + "integrity": "sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==" }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/jest-worker": { "version": "27.5.1", @@ -5514,9 +5502,9 @@ } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/metro/-/metro-0.72.2.tgz", - "integrity": "sha512-TWqKnPMu4OX7ew7HJwsD4LBzhtn7Iqeu2OAqjlMCJtqMKqi/YWoxFf1VGZxH/mJVLhbe/5SWU5St/tqsST8swg==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.72.3.tgz", + "integrity": "sha512-Hb3xTvPqex8kJ1hutQNZhQadUKUwmns/Du9GikmWKBFrkiG3k3xstGAyO5t5rN9JSUEzQT6y9SWzSSOGogUKIg==", "dependencies": { "@babel/code-frame": "^7.0.0", "@babel/core": "^7.14.0", @@ -5541,22 +5529,22 @@ "invariant": "^2.2.4", "jest-worker": "^27.2.0", "lodash.throttle": "^4.1.1", - "metro-babel-transformer": "0.72.2", - "metro-cache": "0.72.2", - "metro-cache-key": "0.72.2", - "metro-config": "0.72.2", - "metro-core": "0.72.2", - "metro-file-map": "0.72.2", - "metro-hermes-compiler": "0.72.2", - "metro-inspector-proxy": "0.72.2", - "metro-minify-uglify": "0.72.2", - "metro-react-native-babel-preset": "0.72.2", - "metro-resolver": "0.72.2", - "metro-runtime": "0.72.2", - "metro-source-map": "0.72.2", - "metro-symbolicate": "0.72.2", - "metro-transform-plugins": "0.72.2", - "metro-transform-worker": "0.72.2", + "metro-babel-transformer": "0.72.3", + "metro-cache": "0.72.3", + "metro-cache-key": "0.72.3", + "metro-config": "0.72.3", + "metro-core": "0.72.3", + "metro-file-map": "0.72.3", + "metro-hermes-compiler": "0.72.3", + "metro-inspector-proxy": "0.72.3", + "metro-minify-uglify": "0.72.3", + "metro-react-native-babel-preset": "0.72.3", + "metro-resolver": "0.72.3", + "metro-runtime": "0.72.3", + "metro-source-map": "0.72.3", + "metro-symbolicate": "0.72.3", + "metro-transform-plugins": "0.72.3", + "metro-transform-worker": "0.72.3", "mime-types": "^2.1.27", "node-fetch": "^2.2.0", "nullthrows": "^1.1.1", @@ -5574,56 +5562,56 @@ } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-babel-transformer": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.72.2.tgz", - "integrity": "sha512-3Bxk/MoXHn/ysmsH7ov6inDHrSWz5eowYRGzilOSSXe9y3DJ/ceTHfT+DWsPr9IgTJLQfKVN/F0pZ+1Ndqh52A==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.72.3.tgz", + "integrity": "sha512-PTOR2zww0vJbWeeM3qN90WKENxCLzv9xrwWaNtwVlhcV8/diNdNe82sE1xIxLFI6OQuAVwNMv1Y7VsO2I7Ejrw==", "dependencies": { "@babel/core": "^7.14.0", "hermes-parser": "0.8.0", - "metro-source-map": "0.72.2", + "metro-source-map": "0.72.3", "nullthrows": "^1.1.1" } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-cache": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.72.2.tgz", - "integrity": "sha512-0Yw3J32eYTp7x7bAAg+a9ScBG/mpib6Wq4WPSYvhoNilPFHzh7knLDMil3WGVCQlI1r+5xtpw/FDhNVKuypQqg==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.72.3.tgz", + "integrity": "sha512-++eyZzwkXvijWRV3CkDbueaXXGlVzH9GA52QWqTgAOgSHYp5jWaDwLQ8qpsMkQzpwSyIF4LLK9aI3eA7Xa132A==", "dependencies": { - "metro-core": "0.72.2", + "metro-core": "0.72.3", "rimraf": "^2.5.4" } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-cache-key": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.72.2.tgz", - "integrity": "sha512-P8p4QQzbEFMuk81xklc62qdE+CGBjP9u+ECP3iYNXIAW0+apS6Dntyvx/xCLy0a4MIryXqg2EJ2Z8XrmKmNeGQ==" + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.72.3.tgz", + "integrity": "sha512-kQzmF5s3qMlzqkQcDwDxrOaVxJ2Bh6WRXWdzPnnhsq9LcD3B3cYqQbRBS+3tSuXmathb4gsOdhWslOuIsYS8Rg==" }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-config": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.72.2.tgz", - "integrity": "sha512-rvX4fBctPYEIPtTEcgun7Q+3IwuR5+gMPQrwDhE8hHDHPmFkfrW9UsEqD7VArJFRr0AwXSd7GD+eapFPjXr43Q==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.72.3.tgz", + "integrity": "sha512-VEsAIVDkrIhgCByq8HKTWMBjJG6RlYwWSu1Gnv3PpHa0IyTjKJtB7wC02rbTjSaemcr82scldf2R+h6ygMEvsw==", "dependencies": { "cosmiconfig": "^5.0.5", "jest-validate": "^26.5.2", - "metro": "0.72.2", - "metro-cache": "0.72.2", - "metro-core": "0.72.2", - "metro-runtime": "0.72.2" + "metro": "0.72.3", + "metro-cache": "0.72.3", + "metro-core": "0.72.3", + "metro-runtime": "0.72.3" } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-core": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.72.2.tgz", - "integrity": "sha512-OXNH8UbKIhvpyHGJrdQYnPUmyPHSuVY4OO6pQxODdTW+uiO68PPPgIIVN67vlCAirZolxRFpma70N7m0sGCZyg==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.72.3.tgz", + "integrity": "sha512-KuYWBMmLB4+LxSMcZ1dmWabVExNCjZe3KysgoECAIV+wyIc2r4xANq15GhS94xYvX1+RqZrxU1pa0jQ5OK+/6A==", "dependencies": { "lodash.throttle": "^4.1.1", - "metro-resolver": "0.72.2" + "metro-resolver": "0.72.3" } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-file-map": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.72.2.tgz", - "integrity": "sha512-6LMgsVT2/Ik6sKtzG1T13pwxJYrSX/JtbF5HwOU7Q/L79Mopy9NQnw9hQoXPcnVXA12gbWfp6Va/NnycaTxX+w==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.72.3.tgz", + "integrity": "sha512-LhuRnuZ2i2uxkpFsz1XCDIQSixxBkBG7oICAFyLyEMDGbcfeY6/NexphfLdJLTghkaoJR5ARFMiIxUg9fIY/pA==", "dependencies": { "abort-controller": "^3.0.0", "anymatch": "^3.0.3", @@ -5643,14 +5631,14 @@ } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-hermes-compiler": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/metro-hermes-compiler/-/metro-hermes-compiler-0.72.2.tgz", - "integrity": "sha512-X8fjDBGNwjHxYAlMtrsr8x/JI/Gep7uzLDuHOMuRU5iAIVt+gH0Z+zjbJTsX++yLZ41i755zw5akvpQnyjVl/w==" + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-hermes-compiler/-/metro-hermes-compiler-0.72.3.tgz", + "integrity": "sha512-QWDQASMiXNW3j8uIQbzIzCdGYv5PpAX/ZiF4/lTWqKRWuhlkP4auhVY4eqdAKj5syPx45ggpjkVE0p8hAPDZYg==" }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-inspector-proxy": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.72.2.tgz", - "integrity": "sha512-VEJU3J+0qrU33o+5tHemVuRWMXswtSrRI1lTE9yFiU8GAxoKrSy2kfJ5cOPLfv/8Nf6M6zRayjUs/Q46kjvfow==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.72.3.tgz", + "integrity": "sha512-UPFkaq2k93RaOi+eqqt7UUmqy2ywCkuxJLasQ55+xavTUS+TQSyeTnTczaYn+YKw+izLTLllGcvqnQcZiWYhGw==", "dependencies": { "connect": "^3.6.5", "debug": "^2.2.0", @@ -5662,52 +5650,101 @@ } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-minify-uglify": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.72.2.tgz", - "integrity": "sha512-b9KH4vMd1yvBYfcA3xvc1HZmPWIpOhiNyiEjh7pw7il1TONAR0+Rj8TS0yG57eSYM8IB86UIwB7Y5PVCNfUNXQ==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.72.3.tgz", + "integrity": "sha512-dPXqtMI8TQcj0g7ZrdhC8X3mx3m3rtjtMuHKGIiEXH9CMBvrET8IwrgujQw2rkPcXiSiX8vFDbGMIlfxefDsKA==", "dependencies": { "uglify-es": "^3.1.9" } }, + "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-react-native-babel-preset": { + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.72.3.tgz", + "integrity": "sha512-uJx9y/1NIqoYTp6ZW1osJ7U5ZrXGAJbOQ/Qzl05BdGYvN1S7Qmbzid6xOirgK0EIT0pJKEEh1s8qbassYZe4cw==", + "dependencies": { + "@babel/core": "^7.14.0", + "@babel/plugin-proposal-async-generator-functions": "^7.0.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", + "@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-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", + "@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-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^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-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" + }, + "peerDependencies": { + "@babel/core": "*" + } + }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-resolver": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.72.2.tgz", - "integrity": "sha512-5KTWolUgA6ivLkg3DmFS2WltphBPQW7GT7An+6Izk/NU+y/6crmsoaLmNxjpZo4Fv+i/FxDSXqpbpQ6KrRWvlQ==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.72.3.tgz", + "integrity": "sha512-wu9zSMGdxpKmfECE7FtCdpfC+vrWGTdVr57lDA0piKhZV6VN6acZIvqQ1yZKtS2WfKsngncv5VbB8Y5eHRQP3w==", "dependencies": { "absolute-path": "^0.0.0" } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-runtime": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.72.2.tgz", - "integrity": "sha512-jIHH6ILSWJtINHA0+KgnH1T5RO5mkf46sQahgC+GYjZjGoshs8+tBdjviYD/xy5s4olCJ1hmycV+XvauQmJdkQ==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.72.3.tgz", + "integrity": "sha512-3MhvDKfxMg2u7dmTdpFOfdR71NgNNo4tzAyJumDVQKwnHYHN44f2QFZQqpPBEmqhWlojNeOxsqFsjYgeyMx6VA==", "dependencies": { "@babel/runtime": "^7.0.0", "react-refresh": "^0.4.0" } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-source-map": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.2.tgz", - "integrity": "sha512-dqYK8DZ4NzGkhik0IkKRBLuPplXqF6GoKrFQ/XMw0FYGy3+dFJ9nIDxsCyg3GcjCt6Mg8FEqGrXlpMG7MrtC9Q==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.3.tgz", + "integrity": "sha512-eNtpjbjxSheXu/jYCIDrbNEKzMGOvYW6/ePYpRM7gDdEagUOqKOCsi3St8NJIQJzZCsxD2JZ2pYOiomUSkT1yQ==", "dependencies": { "@babel/traverse": "^7.14.0", "@babel/types": "^7.0.0", "invariant": "^2.2.4", - "metro-symbolicate": "0.72.2", + "metro-symbolicate": "0.72.3", "nullthrows": "^1.1.1", - "ob1": "0.72.2", + "ob1": "0.72.3", "source-map": "^0.5.6", "vlq": "^1.0.0" } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-symbolicate": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.72.2.tgz", - "integrity": "sha512-Rn47dSggFU9jf+fpUE6/gkNQU7PQPTIbh2iUu7jI8cJFBODs0PWlI5h0W9XlQ56lcBtjLQz6fvZSloKdDcI2fQ==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.72.3.tgz", + "integrity": "sha512-eXG0NX2PJzJ/jTG4q5yyYeN2dr1cUqUaY7worBB0SP5bRWRc3besfb+rXwfh49wTFiL5qR0oOawkU4ZiD4eHXw==", "dependencies": { "invariant": "^2.2.4", - "metro-source-map": "0.72.2", + "metro-source-map": "0.72.3", "nullthrows": "^1.1.1", "source-map": "^0.5.6", "through2": "^2.0.1", @@ -5721,9 +5758,9 @@ } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-transform-plugins": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.72.2.tgz", - "integrity": "sha512-f2Zt6ti156TWFrnCRg7vxBIHBJcERBX8nwKmRKGFCbU+rk4YOxwONY4Y0Gn9Kocfu313P1xNqWYH5rCqvEWMaQ==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.72.3.tgz", + "integrity": "sha512-D+TcUvCKZbRua1+qujE0wV1onZvslW6cVTs7dLCyC2pv20lNHjFr1GtW01jN2fyKR2PcRyMjDCppFd9VwDKnSg==", "dependencies": { "@babel/core": "^7.14.0", "@babel/generator": "^7.14.0", @@ -5733,22 +5770,22 @@ } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-transform-worker": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.72.2.tgz", - "integrity": "sha512-z5OOnEO3NV6PgI8ORIBvJ5m+u9THFpy+6WIg/MUjP9k1oqasWaP1Rfhv7K/a+MD6uho1rgXj6nwWDqybsqHY/w==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.72.3.tgz", + "integrity": "sha512-WsuWj9H7i6cHuJuy+BgbWht9DK5FOgJxHLGAyULD5FJdTG9rSMFaHDO5WfC0OwQU5h4w6cPT40iDuEGksM7+YQ==", "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.72.2", - "metro-babel-transformer": "0.72.2", - "metro-cache": "0.72.2", - "metro-cache-key": "0.72.2", - "metro-hermes-compiler": "0.72.2", - "metro-source-map": "0.72.2", - "metro-transform-plugins": "0.72.2", + "metro": "0.72.3", + "metro-babel-transformer": "0.72.3", + "metro-cache": "0.72.3", + "metro-cache-key": "0.72.3", + "metro-hermes-compiler": "0.72.3", + "metro-source-map": "0.72.3", + "metro-transform-plugins": "0.72.3", "nullthrows": "^1.1.1" } }, @@ -5758,9 +5795,9 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/ob1": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.2.tgz", - "integrity": "sha512-P4zh/5GzyXPIzz+2eq2Hjd1wTZAfpwTIBWKhYx8X/DD2wCuFVprBEZp1FerWyTMwOA6AnVxiX1h0JE1v/s+PAQ==" + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.3.tgz", + "integrity": "sha512-OnVto25Sj7Ghp0vVm2THsngdze3tVq0LOg9LUHsAVXMecpqOP0Y8zaATW8M9gEgs2lNEAcCqV0P/hlmOPhVRvg==" }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/p-limit": { "version": "2.3.0", @@ -5928,12 +5965,12 @@ } }, "node_modules/@react-native-community/cli-server-api": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-9.0.0.tgz", - "integrity": "sha512-4b7yOsTeqZGBD7eIczjMkzegvegIRQGT0lLtofNCpI5Gof0vMYpo1rM2cY76TgjIQiBhVA0pVKcfXUD/u9BA9Q==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-9.2.1.tgz", + "integrity": "sha512-EI+9MUxEbWBQhWw2PkhejXfkcRqPl+58+whlXJvKHiiUd7oVbewFs0uLW0yZffUutt4FGx6Uh88JWEgwOzAdkw==", "dependencies": { "@react-native-community/cli-debugger-ui": "^9.0.0", - "@react-native-community/cli-tools": "^9.0.0", + "@react-native-community/cli-tools": "^9.2.1", "compression": "^1.7.1", "connect": "^3.6.5", "errorhandler": "^1.5.0", @@ -6021,9 +6058,9 @@ } }, "node_modules/@react-native-community/cli-tools": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-9.0.0.tgz", - "integrity": "sha512-qv8e9i4ybdRVw2VxolvVGv1mH9lMhstEuMvxvpwqHGNhTyevwpdVevuR5D/lbPz2EXogQpnMdQMLCiDoxxV4Ow==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-9.2.1.tgz", + "integrity": "sha512-bHmL/wrKmBphz25eMtoJQgwwmeCylbPxqFJnFSbkqJPXQz3ManQ6q/gVVMqFyz7D3v+riaus/VXz3sEDa97uiQ==", "dependencies": { "appdirsjs": "^1.2.4", "chalk": "^4.1.2", @@ -6128,9 +6165,9 @@ } }, "node_modules/@react-native-community/cli-types": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-9.0.0.tgz", - "integrity": "sha512-EsDHzJwGA7Fkb1TErxiWMZIu50836NKgX3/dzPTwI/5KfvGPRjt4sBHvKJ7cQVMe1IgHwPhcO6izjcK69MPjTA==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-9.1.0.tgz", + "integrity": "sha512-KDybF9XHvafLEILsbiKwz5Iobd+gxRaPyn4zSaAerBxedug4er5VUWa8Szy+2GeYKZzMh/gsb1o9lCToUwdT/g==", "dependencies": { "joi": "^17.2.1" } @@ -6181,9 +6218,9 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/@react-native-community/cli/node_modules/commander": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.0.tgz", - "integrity": "sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", + "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", "engines": { "node": "^12.20.0 || >=14" } @@ -6765,8 +6802,7 @@ "node_modules/@sinclair/typebox": { "version": "0.24.28", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.28.tgz", - "integrity": "sha512-dgJd3HLOkLmz4Bw50eZx/zJwtBq65nms3N9VBYu5LTjJ883oBFkTyXRlCB/ZGGwqYpJJHA5zW2Ibhl5ngITfow==", - "dev": true + "integrity": "sha512-dgJd3HLOkLmz4Bw50eZx/zJwtBq65nms3N9VBYu5LTjJ883oBFkTyXRlCB/ZGGwqYpJJHA5zW2Ibhl5ngITfow==" }, "node_modules/@sindresorhus/is": { "version": "0.14.0", @@ -14556,9 +14592,9 @@ "dev": true }, "node_modules/@types/react": { - "version": "18.0.20", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.20.tgz", - "integrity": "sha512-MWul1teSPxujEHVwZl4a5HxQ9vVNsjTchVA+xRqv/VYGCuKGAU6UhfrTdF5aBefwD1BHUD8i/zq+O/vyCm/FrA==", + "version": "18.0.24", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.24.tgz", + "integrity": "sha512-wRJWT6ouziGUy+9uX0aW4YOJxAY0bG6/AOk5AW5QSvZqI7dk6VBIbXvcVgIw/W5Jrl24f77df98GEKTJGOLx7Q==", "peer": true, "dependencies": { "@types/prop-types": "*", @@ -14567,9 +14603,9 @@ } }, "node_modules/@types/react-native": { - "version": "0.70.3", - "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.70.3.tgz", - "integrity": "sha512-J2bo6zZ5rt64AZKlBQwOpD91nEMOWp17Wm3broTqxYxCuOik4jLPcOr1HUBOKoJBPwBAYrIV/KMj/546ZkazAw==", + "version": "0.70.6", + "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.70.6.tgz", + "integrity": "sha512-ynQ2jj0km9d7dbnyKqVdQ6Nti7VQ8SLTA/KKkkS5+FnvGyvij2AOo1/xnkBR/jnSNXuzrvGVzw2n0VWfppmfKw==", "peer": true, "dependencies": { "@types/react": "*" @@ -18398,9 +18434,12 @@ } }, "node_modules/camelize": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", - "integrity": "sha512-W2lPwkBkMZwFlPCXhIlYgxu+7gC/NUlCtdK652DAJ1JdgV0sTrvuPFshNPrFa1TY2JOkLhgdeEBplB4ezEa+xg==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", + "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/caniuse-lite": { "version": "1.0.30001378", @@ -20479,9 +20518,9 @@ } }, "node_modules/dayjs": { - "version": "1.11.5", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.5.tgz", - "integrity": "sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==" + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.6.tgz", + "integrity": "sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ==" }, "node_modules/debug": { "version": "4.3.4", @@ -20610,11 +20649,14 @@ } }, "node_modules/defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "dependencies": { "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/defer-to-connect": { @@ -22627,222 +22669,6 @@ "ms": "^2.1.1" } }, - "node_modules/eslint-loader": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-4.0.2.tgz", - "integrity": "sha512-EDpXor6lsjtTzZpLUn7KmXs02+nIjGcgees9BYjNkWra3jVq5vVa8IoCKgzT2M7dNNeoMBtaSG83Bd40N3poLw==", - "deprecated": "This loader has been deprecated. Please use eslint-webpack-plugin", - "dev": true, - "dependencies": { - "find-cache-dir": "^3.3.1", - "fs-extra": "^8.1.0", - "loader-utils": "^2.0.0", - "object-hash": "^2.0.3", - "schema-utils": "^2.6.5" - }, - "engines": { - "node": ">= 10.13.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0", - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/eslint-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/eslint-loader/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/eslint-loader/node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/eslint-loader/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint-loader/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/eslint-loader/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/eslint-loader/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/eslint-loader/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint-loader/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint-loader/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint-loader/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint-loader/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint-loader/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint-loader/node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/eslint-loader/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-loader/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/eslint-module-utils": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", @@ -29840,9 +29666,9 @@ } }, "node_modules/joi": { - "version": "17.6.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.0.tgz", - "integrity": "sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==", + "version": "17.6.4", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.4.tgz", + "integrity": "sha512-tPzkTJHZQjSFCc842QpdVpOZ9LI2txApboNUbW70qgnRB14Lzl+oWQOPdF2N4yqyiY14wBGe8lc7f/2hZxbGmw==", "dependencies": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -32065,9 +31891,10 @@ } }, "node_modules/metro-react-native-babel-preset": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.72.2.tgz", - "integrity": "sha512-OMp77TUUZAoiuUv5uKNc08AnJNQxD28k92eQvo8tPcA8Wx6OZlEUvL7M7SFkef2mEYJ0vnrRjOamSnbBuq/+1w==", + "version": "0.73.3", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.3.tgz", + "integrity": "sha512-JJ22lR4CVaw3OKTz9YAY/ckymr3DbO+qy/x5kLaF4g0LcvZmhhKfDK+fml577AZU6sKb/CTd0SBwt+VAz+Hu7Q==", + "dev": true, "dependencies": { "@babel/core": "^7.14.0", "@babel/plugin-proposal-async-generator-functions": "^7.0.0", @@ -32088,7 +31915,6 @@ "@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-function-name": "^7.0.0", "@babel/plugin-transform-literals": "^7.0.0", @@ -32117,21 +31943,22 @@ "version": "0.4.3", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz", "integrity": "sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA==", + "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/metro-react-native-babel-transformer": { - "version": "0.72.1", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.72.1.tgz", - "integrity": "sha512-hMnN0MOgVloAk94YuXN7sLeDaZ51Y6xIcJXxIU1s/KaygAGXk6o7VAdwf2MY/IV1SIct5lkW4Gn71u/9/EvfXA==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.72.3.tgz", + "integrity": "sha512-Ogst/M6ujYrl/+9mpEWqE3zF7l2mTuftDTy3L8wZYwX1pWUQWQpfU1aJBeWiLxt1XlIq+uriRjKzKoRoIK57EA==", "dependencies": { "@babel/core": "^7.14.0", "babel-preset-fbjs": "^3.4.0", "hermes-parser": "0.8.0", - "metro-babel-transformer": "0.72.1", - "metro-react-native-babel-preset": "0.72.1", - "metro-source-map": "0.72.1", + "metro-babel-transformer": "0.72.3", + "metro-react-native-babel-preset": "0.72.3", + "metro-source-map": "0.72.3", "nullthrows": "^1.1.1" }, "peerDependencies": { @@ -32139,20 +31966,20 @@ } }, "node_modules/metro-react-native-babel-transformer/node_modules/metro-babel-transformer": { - "version": "0.72.1", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.72.1.tgz", - "integrity": "sha512-VK7A9gepnhrKC0DMoxtPjYYHjkkfNwzLMYJgeL6Il6IaX/K/VHTILSEqgpxfNDos2jrXazuR5+rXDLE/RCzqmw==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.72.3.tgz", + "integrity": "sha512-PTOR2zww0vJbWeeM3qN90WKENxCLzv9xrwWaNtwVlhcV8/diNdNe82sE1xIxLFI6OQuAVwNMv1Y7VsO2I7Ejrw==", "dependencies": { "@babel/core": "^7.14.0", "hermes-parser": "0.8.0", - "metro-source-map": "0.72.1", + "metro-source-map": "0.72.3", "nullthrows": "^1.1.1" } }, "node_modules/metro-react-native-babel-transformer/node_modules/metro-react-native-babel-preset": { - "version": "0.72.1", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.72.1.tgz", - "integrity": "sha512-DlvMw2tFrCqD9OXBoN11fPM09kHC22FZpnkTmG4Pr4kecV+aDmEGxwakjUcjELrX1JCXz2MLPvqeJkbiP1f5CA==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.72.3.tgz", + "integrity": "sha512-uJx9y/1NIqoYTp6ZW1osJ7U5ZrXGAJbOQ/Qzl05BdGYvN1S7Qmbzid6xOirgK0EIT0pJKEEh1s8qbassYZe4cw==", "dependencies": { "@babel/core": "^7.14.0", "@babel/plugin-proposal-async-generator-functions": "^7.0.0", @@ -32199,27 +32026,27 @@ } }, "node_modules/metro-react-native-babel-transformer/node_modules/metro-source-map": { - "version": "0.72.1", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.1.tgz", - "integrity": "sha512-77TZuf10Ru+USo97HwDT8UceSzOGBZB8EYTObOsR0n1sjQHjvKsMflLA9Pco13o9NsIYAG6c6P/0vIpiHKqaKA==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.3.tgz", + "integrity": "sha512-eNtpjbjxSheXu/jYCIDrbNEKzMGOvYW6/ePYpRM7gDdEagUOqKOCsi3St8NJIQJzZCsxD2JZ2pYOiomUSkT1yQ==", "dependencies": { "@babel/traverse": "^7.14.0", "@babel/types": "^7.0.0", "invariant": "^2.2.4", - "metro-symbolicate": "0.72.1", + "metro-symbolicate": "0.72.3", "nullthrows": "^1.1.1", - "ob1": "0.72.1", + "ob1": "0.72.3", "source-map": "^0.5.6", "vlq": "^1.0.0" } }, "node_modules/metro-react-native-babel-transformer/node_modules/metro-symbolicate": { - "version": "0.72.1", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.72.1.tgz", - "integrity": "sha512-ScC3dVd2XrfZSd6kubOw7EJNp2oHdjrqOjGpFohtcXGjhqkzDosp7Fg84VgwQGN8g720xvUyEBfSMmUCXcicOQ==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.72.3.tgz", + "integrity": "sha512-eXG0NX2PJzJ/jTG4q5yyYeN2dr1cUqUaY7worBB0SP5bRWRc3besfb+rXwfh49wTFiL5qR0oOawkU4ZiD4eHXw==", "dependencies": { "invariant": "^2.2.4", - "metro-source-map": "0.72.1", + "metro-source-map": "0.72.3", "nullthrows": "^1.1.1", "source-map": "^0.5.6", "through2": "^2.0.1", @@ -32233,9 +32060,9 @@ } }, "node_modules/metro-react-native-babel-transformer/node_modules/ob1": { - "version": "0.72.1", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.1.tgz", - "integrity": "sha512-TyQX2gO08klGTMuzD+xm3iVrzXiIygCB7t+NWeicOR05hkzgeWOiAZ8q40uMfIDRfEAc6hd66sJdIEhU/yUZZA==" + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.3.tgz", + "integrity": "sha512-OnVto25Sj7Ghp0vVm2THsngdze3tVq0LOg9LUHsAVXMecpqOP0Y8zaATW8M9gEgs2lNEAcCqV0P/hlmOPhVRvg==" }, "node_modules/metro-react-native-babel-transformer/node_modules/react-refresh": { "version": "0.4.3", @@ -33589,15 +33416,6 @@ "node": ">=0.10.0" } }, - "node_modules/object-hash": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", - "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, "node_modules/object-inspect": { "version": "1.12.2", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", @@ -35421,14 +35239,14 @@ }, "node_modules/react-native": { "name": "@expensify/react-native", - "version": "0.70.5", - "resolved": "https://registry.npmjs.org/@expensify/react-native/-/react-native-0.70.5.tgz", - "integrity": "sha512-C4Y0XVMSW2tmgnENoT31L/aBaPz2CmAsn8NJE0IPjBWE0xkcMaUh0u4Mx2v+relQ6bDvknB96/am0TsqMak1Kg==", - "dependencies": { - "@jest/create-cache-key-function": "^27.0.1", - "@react-native-community/cli": "^9.0.0", - "@react-native-community/cli-platform-android": "^9.0.0", - "@react-native-community/cli-platform-ios": "^9.0.0", + "version": "0.70.4-alpha.1", + "resolved": "https://registry.npmjs.org/@expensify/react-native/-/react-native-0.70.4-alpha.1.tgz", + "integrity": "sha512-kXVxU+ni4SnJgCAENaS8ri/CwO2lt1Yqu0y0Y9SjCgayk2ZsSXsp13ajYfICOpPfrOLRvMjQE8cAMQuuzDqovg==", + "dependencies": { + "@jest/create-cache-key-function": "^29.0.3", + "@react-native-community/cli": "9.2.1", + "@react-native-community/cli-platform-android": "9.2.1", + "@react-native-community/cli-platform-ios": "9.2.1", "@react-native/assets": "1.0.0", "@react-native/normalize-color": "2.0.0", "@react-native/polyfills": "2.0.0", @@ -35439,15 +35257,15 @@ "invariant": "^2.2.4", "jsc-android": "^250230.2.1", "memoize-one": "^5.0.0", - "metro-react-native-babel-transformer": "0.72.1", - "metro-runtime": "0.72.1", - "metro-source-map": "0.72.1", + "metro-react-native-babel-transformer": "0.72.3", + "metro-runtime": "0.72.3", + "metro-source-map": "0.72.3", "mkdirp": "^0.5.1", "nullthrows": "^1.1.1", "pretty-format": "^26.5.2", "promise": "^8.0.3", "react-devtools-core": "4.24.0", - "react-native-codegen": "^0.70.5", + "react-native-codegen": "^0.70.6", "react-native-gradle-plugin": "^0.70.3", "react-refresh": "^0.4.0", "react-shallow-renderer": "^16.15.0", @@ -35502,9 +35320,9 @@ } }, "node_modules/react-native-codegen": { - "version": "0.70.5", - "resolved": "https://registry.npmjs.org/react-native-codegen/-/react-native-codegen-0.70.5.tgz", - "integrity": "sha512-vXqgCWWIWlzsCtwD6hbmwmCleGNJYm+n4xO9VMfzzlF3xt9gjC7/USSMTf/YZlCK/hDwQU412QrNS6A9OH+mag==", + "version": "0.70.6", + "resolved": "https://registry.npmjs.org/react-native-codegen/-/react-native-codegen-0.70.6.tgz", + "integrity": "sha512-kdwIhH2hi+cFnG5Nb8Ji2JwmcCxnaOOo9440ov7XDzSvGfmUStnCzl+MCW8jLjqHcE4icT7N9y+xx4f50vfBTw==", "dependencies": { "@babel/parser": "^7.14.0", "flow-parser": "^0.121.0", @@ -35785,6 +35603,25 @@ "react-native": "*" } }, + "node_modules/react-native-render-html/node_modules/@native-html/transient-render-engine": { + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/@native-html/transient-render-engine/-/transient-render-engine-11.2.2.tgz", + "integrity": "sha512-z0LgQStGJf4gCIeuD8oJiPbk+sUEQ9FOzHlDWwK+uVam+1Q5mmh6PqblCdTCP3IRGBtPLzMM0VZ9njm1TEvb8Q==", + "dependencies": { + "@native-html/css-processor": "1.11.0", + "@types/ramda": "^0.27.44", + "csstype": "^3.0.9", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.2", + "domutils": "^2.8.0", + "htmlparser2": "^7.1.2", + "ramda": "^0.27.1" + }, + "peerDependencies": { + "@types/react-native": "*", + "react-native": "^*" + } + }, "node_modules/react-native-render-html/node_modules/ramda": { "version": "0.27.2", "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.2.tgz", @@ -36121,36 +35958,36 @@ "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" }, "node_modules/react-native/node_modules/metro-runtime": { - "version": "0.72.1", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.72.1.tgz", - "integrity": "sha512-CO+fvJKYHKuR2vo7kjsegQ2oF3FMwa4YhnUInQ+xPVxWoy8DbOpmruKBoTsQVgHwyIziXzvJa+mze/6CFvT+3A==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.72.3.tgz", + "integrity": "sha512-3MhvDKfxMg2u7dmTdpFOfdR71NgNNo4tzAyJumDVQKwnHYHN44f2QFZQqpPBEmqhWlojNeOxsqFsjYgeyMx6VA==", "dependencies": { "@babel/runtime": "^7.0.0", "react-refresh": "^0.4.0" } }, "node_modules/react-native/node_modules/metro-source-map": { - "version": "0.72.1", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.1.tgz", - "integrity": "sha512-77TZuf10Ru+USo97HwDT8UceSzOGBZB8EYTObOsR0n1sjQHjvKsMflLA9Pco13o9NsIYAG6c6P/0vIpiHKqaKA==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.3.tgz", + "integrity": "sha512-eNtpjbjxSheXu/jYCIDrbNEKzMGOvYW6/ePYpRM7gDdEagUOqKOCsi3St8NJIQJzZCsxD2JZ2pYOiomUSkT1yQ==", "dependencies": { "@babel/traverse": "^7.14.0", "@babel/types": "^7.0.0", "invariant": "^2.2.4", - "metro-symbolicate": "0.72.1", + "metro-symbolicate": "0.72.3", "nullthrows": "^1.1.1", - "ob1": "0.72.1", + "ob1": "0.72.3", "source-map": "^0.5.6", "vlq": "^1.0.0" } }, "node_modules/react-native/node_modules/metro-symbolicate": { - "version": "0.72.1", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.72.1.tgz", - "integrity": "sha512-ScC3dVd2XrfZSd6kubOw7EJNp2oHdjrqOjGpFohtcXGjhqkzDosp7Fg84VgwQGN8g720xvUyEBfSMmUCXcicOQ==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.72.3.tgz", + "integrity": "sha512-eXG0NX2PJzJ/jTG4q5yyYeN2dr1cUqUaY7worBB0SP5bRWRc3besfb+rXwfh49wTFiL5qR0oOawkU4ZiD4eHXw==", "dependencies": { "invariant": "^2.2.4", - "metro-source-map": "0.72.1", + "metro-source-map": "0.72.3", "nullthrows": "^1.1.1", "source-map": "^0.5.6", "through2": "^2.0.1", @@ -36175,9 +36012,9 @@ } }, "node_modules/react-native/node_modules/ob1": { - "version": "0.72.1", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.1.tgz", - "integrity": "sha512-TyQX2gO08klGTMuzD+xm3iVrzXiIygCB7t+NWeicOR05hkzgeWOiAZ8q40uMfIDRfEAc6hd66sJdIEhU/yUZZA==" + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.3.tgz", + "integrity": "sha512-OnVto25Sj7Ghp0vVm2THsngdze3tVq0LOg9LUHsAVXMecpqOP0Y8zaATW8M9gEgs2lNEAcCqV0P/hlmOPhVRvg==" }, "node_modules/react-native/node_modules/pretty-format": { "version": "26.6.2", @@ -39135,6 +38972,91 @@ "node": ">= 6" } }, + "node_modules/speed-measure-webpack-plugin": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.5.0.tgz", + "integrity": "sha512-Re0wX5CtM6gW7bZA64ONOfEPEhwbiSF/vz6e2GvadjuaPrQcHTQdRGsD8+BE7iUOysXH8tIenkPCQBEcspXsNg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "peerDependencies": { + "webpack": "^1 || ^2 || ^3 || ^4 || ^5" + } + }, + "node_modules/speed-measure-webpack-plugin/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/speed-measure-webpack-plugin/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/speed-measure-webpack-plugin/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/speed-measure-webpack-plugin/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/speed-measure-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/speed-measure-webpack-plugin/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/split": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", @@ -45207,29 +45129,38 @@ } }, "@jest/create-cache-key-function": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-27.5.1.tgz", - "integrity": "sha512-dmH1yW+makpTSURTy8VzdUwFnfQh1G8R+DxO2Ho2FFmBbKFEVm+3jWdvFhE2VqB/LATCTokkP0dotjyQyw5/AQ==", + "version": "29.2.1", + "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.2.1.tgz", + "integrity": "sha512-///wxGQUyP0GCr3L1OcqIzhsKvN2gOyqWsRxs56XGCdD8EEuoKg857G9nC+zcWIpIsG+3J5UnEbhe3LJw8CNmQ==", "requires": { - "@jest/types": "^27.5.1" + "@jest/types": "^29.2.1" }, "dependencies": { + "@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "version": "29.2.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.2.1.tgz", + "integrity": "sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw==", "requires": { + "@jest/schemas": "^29.0.0", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", - "@types/yargs": "^16.0.0", + "@types/yargs": "^17.0.8", "chalk": "^4.0.0" } }, "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "version": "17.0.13", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.13.tgz", + "integrity": "sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==", "requires": { "@types/yargs-parser": "*" } @@ -45850,28 +45781,6 @@ "csstype": "^3.0.8" } }, - "@native-html/transient-render-engine": { - "version": "11.2.2", - "resolved": "https://registry.npmjs.org/@native-html/transient-render-engine/-/transient-render-engine-11.2.2.tgz", - "integrity": "sha512-z0LgQStGJf4gCIeuD8oJiPbk+sUEQ9FOzHlDWwK+uVam+1Q5mmh6PqblCdTCP3IRGBtPLzMM0VZ9njm1TEvb8Q==", - "requires": { - "@native-html/css-processor": "1.11.0", - "@types/ramda": "^0.27.44", - "csstype": "^3.0.9", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.2", - "domutils": "^2.8.0", - "htmlparser2": "^7.1.2", - "ramda": "^0.27.1" - }, - "dependencies": { - "ramda": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.2.tgz", - "integrity": "sha512-SbiLPU40JuJniHexQSAgad32hfwd+DRUdwF2PlVuI5RZD0/vahUco7R8vD86J/tcEKKF9vZrUVwgtmGCqlCKyA==" - } - } - }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -46199,19 +46108,19 @@ } }, "@react-native-community/cli": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-9.0.0.tgz", - "integrity": "sha512-PHt4aPMw3TP/QSaFvlUjfcCniEjz7egXamIMNxNVdUsSr2JhDr6W0l+CflpRMU2ZYlb+79o8lXHWAo38drJ0ow==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-9.2.1.tgz", + "integrity": "sha512-feMYS5WXXKF4TSWnCXozHxtWq36smyhGaENXlkiRESfYZ1mnCUlPfOanNCAvNvBqdyh9d4o0HxhYKX1g9l6DCQ==", "requires": { - "@react-native-community/cli-clean": "^9.0.0", - "@react-native-community/cli-config": "^9.0.0", + "@react-native-community/cli-clean": "^9.2.1", + "@react-native-community/cli-config": "^9.2.1", "@react-native-community/cli-debugger-ui": "^9.0.0", - "@react-native-community/cli-doctor": "^9.0.0", - "@react-native-community/cli-hermes": "^9.0.0", - "@react-native-community/cli-plugin-metro": "^9.0.0", - "@react-native-community/cli-server-api": "^9.0.0", - "@react-native-community/cli-tools": "^9.0.0", - "@react-native-community/cli-types": "^9.0.0", + "@react-native-community/cli-doctor": "^9.2.1", + "@react-native-community/cli-hermes": "^9.2.1", + "@react-native-community/cli-plugin-metro": "^9.2.1", + "@react-native-community/cli-server-api": "^9.2.1", + "@react-native-community/cli-tools": "^9.2.1", + "@react-native-community/cli-types": "^9.1.0", "chalk": "^4.1.2", "commander": "^9.4.0", "execa": "^1.0.0", @@ -46253,9 +46162,9 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "commander": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.0.tgz", - "integrity": "sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==" + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", + "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==" }, "cross-spawn": { "version": "6.0.5", @@ -46419,11 +46328,11 @@ } }, "@react-native-community/cli-clean": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-9.0.0.tgz", - "integrity": "sha512-PaSz11fdSr5YI4YPl/auPdk7UCJaKFsH3gyFm8fKHqry2iPYQ3v3K8/FccVzmGbHgrvOcgAoWyhdVaFznXSp7A==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-9.2.1.tgz", + "integrity": "sha512-dyNWFrqRe31UEvNO+OFWmQ4hmqA07bR9Ief/6NnGwx67IO9q83D5PEAf/o96ML6jhSbDwCmpPKhPwwBbsyM3mQ==", "requires": { - "@react-native-community/cli-tools": "^9.0.0", + "@react-native-community/cli-tools": "^9.2.1", "chalk": "^4.1.2", "execa": "^1.0.0", "prompts": "^2.4.0" @@ -46553,11 +46462,11 @@ } }, "@react-native-community/cli-config": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-9.0.0.tgz", - "integrity": "sha512-f61VjBZP/GoD1wwYdz4Y8lQeRpUwEtc/vgWSP6FDlsmGjCh0qtS7k2joEq7fJGStTC9xSl7weEx0+mo4yj3oUA==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-9.2.1.tgz", + "integrity": "sha512-gHJlBBXUgDN9vrr3aWkRqnYrPXZLztBDQoY97Mm5Yo6MidsEpYo2JIP6FH4N/N2p1TdjxJL4EFtdd/mBpiR2MQ==", "requires": { - "@react-native-community/cli-tools": "^9.0.0", + "@react-native-community/cli-tools": "^9.2.1", "cosmiconfig": "^5.1.0", "deepmerge": "^3.2.0", "glob": "^7.1.3", @@ -46614,13 +46523,13 @@ } }, "@react-native-community/cli-doctor": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-9.0.0.tgz", - "integrity": "sha512-W5Z0V+vaOM5hcbOUGakhXjYAa4qrH4XVEw4wnpmVb+2Qme0Cwdf9pH4wdGXsCz2cu2CWQu6DfxB6qbDFR5+HiQ==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-9.2.1.tgz", + "integrity": "sha512-RpUax0pkKumXJ5hcRG0Qd+oYWsA2RFeMWKY+Npg8q05Cwd1rqDQfWGprkHC576vz26+FPuvwEagoAf6fR2bvJA==", "requires": { - "@react-native-community/cli-config": "^9.0.0", - "@react-native-community/cli-platform-ios": "^9.0.0", - "@react-native-community/cli-tools": "^9.0.0", + "@react-native-community/cli-config": "^9.2.1", + "@react-native-community/cli-platform-ios": "^9.2.1", + "@react-native-community/cli-tools": "^9.2.1", "chalk": "^4.1.2", "command-exists": "^1.2.8", "envinfo": "^7.7.2", @@ -46780,12 +46689,12 @@ } }, "@react-native-community/cli-hermes": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-9.0.0.tgz", - "integrity": "sha512-wdv8coZ2Ptw0QQ24M8oKYsncrdIjCXIOb4d2lFp5fFmWaEbL05e8zYOavS/WSMBHwsTKiz6wCxhRYcOcX9ysFA==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-9.2.1.tgz", + "integrity": "sha512-723/NMb7egXzJrbWT1uEkN2hOpw+OOtWTG2zKJ3j7KKgUd8u/pP+/z5jO8xVrq+eYJEMjDK0FBEo1Xj7maR4Sw==", "requires": { - "@react-native-community/cli-platform-android": "^9.0.0", - "@react-native-community/cli-tools": "^9.0.0", + "@react-native-community/cli-platform-android": "^9.2.1", + "@react-native-community/cli-tools": "^9.2.1", "chalk": "^4.1.2", "hermes-profile-transformer": "^0.0.6", "ip": "^1.1.5" @@ -46842,11 +46751,11 @@ } }, "@react-native-community/cli-platform-android": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-9.0.0.tgz", - "integrity": "sha512-4Rp5OUZW/7Qc9hyCd+ZEikuu2k9dW3ssu6KzWygbVc9wY80i4GQmvjfsiUi21o3uPDvL4KUMANmnQqoTOIcVMA==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-9.2.1.tgz", + "integrity": "sha512-VamCZ8nido3Q3Orhj6pBIx48itORNPLJ7iTfy3nucD1qISEDih3DOzCaQCtmqdEBgUkNkNl0O+cKgq5A3th3Zg==", "requires": { - "@react-native-community/cli-tools": "^9.0.0", + "@react-native-community/cli-tools": "^9.2.1", "chalk": "^4.1.2", "execa": "^1.0.0", "fs-extra": "^8.1.0", @@ -47002,11 +46911,11 @@ } }, "@react-native-community/cli-platform-ios": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-9.0.0.tgz", - "integrity": "sha512-ODS/DiNvKlEqL+Y4tU/DOIff7th733JOkJRC/GZFCWlCyC0gyutxtbGfWxPW5ifm6NS5oc/EXiIZvCtzTnFnhQ==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-9.2.1.tgz", + "integrity": "sha512-dEgvkI6CFgPk3vs8IOR0toKVUjIFwe4AsXFvWWJL5qhrIzW9E5Owi0zPkSvzXsMlfYMbVX0COfVIK539ZxguSg==", "requires": { - "@react-native-community/cli-tools": "^9.0.0", + "@react-native-community/cli-tools": "^9.2.1", "chalk": "^4.1.2", "execa": "^1.0.0", "glob": "^7.1.3", @@ -47137,19 +47046,19 @@ } }, "@react-native-community/cli-plugin-metro": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-9.0.0.tgz", - "integrity": "sha512-kKQa2vhkg1HJA/ZBdGX9dFR8WqBGgUe41BX9kinvB5zYmfWeX/JwOxorGKNSmvql88LROckrvZtzH+p9YR0G5g==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-9.2.1.tgz", + "integrity": "sha512-byBGBH6jDfUvcHGFA45W/sDwMlliv7flJ8Ns9foCh3VsIeYYPoDjjK7SawE9cPqRdMAD4SY7EVwqJnOtRbwLiQ==", "requires": { - "@react-native-community/cli-server-api": "^9.0.0", - "@react-native-community/cli-tools": "^9.0.0", + "@react-native-community/cli-server-api": "^9.2.1", + "@react-native-community/cli-tools": "^9.2.1", "chalk": "^4.1.2", - "metro": "^0.72.1", - "metro-config": "^0.72.1", - "metro-core": "^0.72.1", - "metro-react-native-babel-transformer": "^0.72.1", - "metro-resolver": "^0.72.1", - "metro-runtime": "^0.72.1", + "metro": "0.72.3", + "metro-config": "0.72.3", + "metro-core": "0.72.3", + "metro-react-native-babel-transformer": "0.72.3", + "metro-resolver": "0.72.3", + "metro-runtime": "0.72.3", "readline": "^1.3.0" }, "dependencies": { @@ -47303,9 +47212,9 @@ }, "dependencies": { "ci-info": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz", - "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==" + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.5.0.tgz", + "integrity": "sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==" } } }, @@ -47346,9 +47255,9 @@ } }, "metro": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/metro/-/metro-0.72.2.tgz", - "integrity": "sha512-TWqKnPMu4OX7ew7HJwsD4LBzhtn7Iqeu2OAqjlMCJtqMKqi/YWoxFf1VGZxH/mJVLhbe/5SWU5St/tqsST8swg==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.72.3.tgz", + "integrity": "sha512-Hb3xTvPqex8kJ1hutQNZhQadUKUwmns/Du9GikmWKBFrkiG3k3xstGAyO5t5rN9JSUEzQT6y9SWzSSOGogUKIg==", "requires": { "@babel/code-frame": "^7.0.0", "@babel/core": "^7.14.0", @@ -47373,22 +47282,22 @@ "invariant": "^2.2.4", "jest-worker": "^27.2.0", "lodash.throttle": "^4.1.1", - "metro-babel-transformer": "0.72.2", - "metro-cache": "0.72.2", - "metro-cache-key": "0.72.2", - "metro-config": "0.72.2", - "metro-core": "0.72.2", - "metro-file-map": "0.72.2", - "metro-hermes-compiler": "0.72.2", - "metro-inspector-proxy": "0.72.2", - "metro-minify-uglify": "0.72.2", - "metro-react-native-babel-preset": "0.72.2", - "metro-resolver": "0.72.2", - "metro-runtime": "0.72.2", - "metro-source-map": "0.72.2", - "metro-symbolicate": "0.72.2", - "metro-transform-plugins": "0.72.2", - "metro-transform-worker": "0.72.2", + "metro-babel-transformer": "0.72.3", + "metro-cache": "0.72.3", + "metro-cache-key": "0.72.3", + "metro-config": "0.72.3", + "metro-core": "0.72.3", + "metro-file-map": "0.72.3", + "metro-hermes-compiler": "0.72.3", + "metro-inspector-proxy": "0.72.3", + "metro-minify-uglify": "0.72.3", + "metro-react-native-babel-preset": "0.72.3", + "metro-resolver": "0.72.3", + "metro-runtime": "0.72.3", + "metro-source-map": "0.72.3", + "metro-symbolicate": "0.72.3", + "metro-transform-plugins": "0.72.3", + "metro-transform-worker": "0.72.3", "mime-types": "^2.1.27", "node-fetch": "^2.2.0", "nullthrows": "^1.1.1", @@ -47403,56 +47312,56 @@ } }, "metro-babel-transformer": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.72.2.tgz", - "integrity": "sha512-3Bxk/MoXHn/ysmsH7ov6inDHrSWz5eowYRGzilOSSXe9y3DJ/ceTHfT+DWsPr9IgTJLQfKVN/F0pZ+1Ndqh52A==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.72.3.tgz", + "integrity": "sha512-PTOR2zww0vJbWeeM3qN90WKENxCLzv9xrwWaNtwVlhcV8/diNdNe82sE1xIxLFI6OQuAVwNMv1Y7VsO2I7Ejrw==", "requires": { "@babel/core": "^7.14.0", "hermes-parser": "0.8.0", - "metro-source-map": "0.72.2", + "metro-source-map": "0.72.3", "nullthrows": "^1.1.1" } }, "metro-cache": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.72.2.tgz", - "integrity": "sha512-0Yw3J32eYTp7x7bAAg+a9ScBG/mpib6Wq4WPSYvhoNilPFHzh7knLDMil3WGVCQlI1r+5xtpw/FDhNVKuypQqg==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.72.3.tgz", + "integrity": "sha512-++eyZzwkXvijWRV3CkDbueaXXGlVzH9GA52QWqTgAOgSHYp5jWaDwLQ8qpsMkQzpwSyIF4LLK9aI3eA7Xa132A==", "requires": { - "metro-core": "0.72.2", + "metro-core": "0.72.3", "rimraf": "^2.5.4" } }, "metro-cache-key": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.72.2.tgz", - "integrity": "sha512-P8p4QQzbEFMuk81xklc62qdE+CGBjP9u+ECP3iYNXIAW0+apS6Dntyvx/xCLy0a4MIryXqg2EJ2Z8XrmKmNeGQ==" + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.72.3.tgz", + "integrity": "sha512-kQzmF5s3qMlzqkQcDwDxrOaVxJ2Bh6WRXWdzPnnhsq9LcD3B3cYqQbRBS+3tSuXmathb4gsOdhWslOuIsYS8Rg==" }, "metro-config": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.72.2.tgz", - "integrity": "sha512-rvX4fBctPYEIPtTEcgun7Q+3IwuR5+gMPQrwDhE8hHDHPmFkfrW9UsEqD7VArJFRr0AwXSd7GD+eapFPjXr43Q==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.72.3.tgz", + "integrity": "sha512-VEsAIVDkrIhgCByq8HKTWMBjJG6RlYwWSu1Gnv3PpHa0IyTjKJtB7wC02rbTjSaemcr82scldf2R+h6ygMEvsw==", "requires": { "cosmiconfig": "^5.0.5", "jest-validate": "^26.5.2", - "metro": "0.72.2", - "metro-cache": "0.72.2", - "metro-core": "0.72.2", - "metro-runtime": "0.72.2" + "metro": "0.72.3", + "metro-cache": "0.72.3", + "metro-core": "0.72.3", + "metro-runtime": "0.72.3" } }, "metro-core": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.72.2.tgz", - "integrity": "sha512-OXNH8UbKIhvpyHGJrdQYnPUmyPHSuVY4OO6pQxODdTW+uiO68PPPgIIVN67vlCAirZolxRFpma70N7m0sGCZyg==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.72.3.tgz", + "integrity": "sha512-KuYWBMmLB4+LxSMcZ1dmWabVExNCjZe3KysgoECAIV+wyIc2r4xANq15GhS94xYvX1+RqZrxU1pa0jQ5OK+/6A==", "requires": { "lodash.throttle": "^4.1.1", - "metro-resolver": "0.72.2" + "metro-resolver": "0.72.3" } }, "metro-file-map": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.72.2.tgz", - "integrity": "sha512-6LMgsVT2/Ik6sKtzG1T13pwxJYrSX/JtbF5HwOU7Q/L79Mopy9NQnw9hQoXPcnVXA12gbWfp6Va/NnycaTxX+w==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.72.3.tgz", + "integrity": "sha512-LhuRnuZ2i2uxkpFsz1XCDIQSixxBkBG7oICAFyLyEMDGbcfeY6/NexphfLdJLTghkaoJR5ARFMiIxUg9fIY/pA==", "requires": { "abort-controller": "^3.0.0", "anymatch": "^3.0.3", @@ -47470,14 +47379,14 @@ } }, "metro-hermes-compiler": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/metro-hermes-compiler/-/metro-hermes-compiler-0.72.2.tgz", - "integrity": "sha512-X8fjDBGNwjHxYAlMtrsr8x/JI/Gep7uzLDuHOMuRU5iAIVt+gH0Z+zjbJTsX++yLZ41i755zw5akvpQnyjVl/w==" + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-hermes-compiler/-/metro-hermes-compiler-0.72.3.tgz", + "integrity": "sha512-QWDQASMiXNW3j8uIQbzIzCdGYv5PpAX/ZiF4/lTWqKRWuhlkP4auhVY4eqdAKj5syPx45ggpjkVE0p8hAPDZYg==" }, "metro-inspector-proxy": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.72.2.tgz", - "integrity": "sha512-VEJU3J+0qrU33o+5tHemVuRWMXswtSrRI1lTE9yFiU8GAxoKrSy2kfJ5cOPLfv/8Nf6M6zRayjUs/Q46kjvfow==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.72.3.tgz", + "integrity": "sha512-UPFkaq2k93RaOi+eqqt7UUmqy2ywCkuxJLasQ55+xavTUS+TQSyeTnTczaYn+YKw+izLTLllGcvqnQcZiWYhGw==", "requires": { "connect": "^3.6.5", "debug": "^2.2.0", @@ -47486,52 +47395,98 @@ } }, "metro-minify-uglify": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.72.2.tgz", - "integrity": "sha512-b9KH4vMd1yvBYfcA3xvc1HZmPWIpOhiNyiEjh7pw7il1TONAR0+Rj8TS0yG57eSYM8IB86UIwB7Y5PVCNfUNXQ==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.72.3.tgz", + "integrity": "sha512-dPXqtMI8TQcj0g7ZrdhC8X3mx3m3rtjtMuHKGIiEXH9CMBvrET8IwrgujQw2rkPcXiSiX8vFDbGMIlfxefDsKA==", "requires": { "uglify-es": "^3.1.9" } }, + "metro-react-native-babel-preset": { + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.72.3.tgz", + "integrity": "sha512-uJx9y/1NIqoYTp6ZW1osJ7U5ZrXGAJbOQ/Qzl05BdGYvN1S7Qmbzid6xOirgK0EIT0pJKEEh1s8qbassYZe4cw==", + "requires": { + "@babel/core": "^7.14.0", + "@babel/plugin-proposal-async-generator-functions": "^7.0.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", + "@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-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", + "@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-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^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-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-resolver": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.72.2.tgz", - "integrity": "sha512-5KTWolUgA6ivLkg3DmFS2WltphBPQW7GT7An+6Izk/NU+y/6crmsoaLmNxjpZo4Fv+i/FxDSXqpbpQ6KrRWvlQ==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.72.3.tgz", + "integrity": "sha512-wu9zSMGdxpKmfECE7FtCdpfC+vrWGTdVr57lDA0piKhZV6VN6acZIvqQ1yZKtS2WfKsngncv5VbB8Y5eHRQP3w==", "requires": { "absolute-path": "^0.0.0" } }, "metro-runtime": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.72.2.tgz", - "integrity": "sha512-jIHH6ILSWJtINHA0+KgnH1T5RO5mkf46sQahgC+GYjZjGoshs8+tBdjviYD/xy5s4olCJ1hmycV+XvauQmJdkQ==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.72.3.tgz", + "integrity": "sha512-3MhvDKfxMg2u7dmTdpFOfdR71NgNNo4tzAyJumDVQKwnHYHN44f2QFZQqpPBEmqhWlojNeOxsqFsjYgeyMx6VA==", "requires": { "@babel/runtime": "^7.0.0", "react-refresh": "^0.4.0" } }, "metro-source-map": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.2.tgz", - "integrity": "sha512-dqYK8DZ4NzGkhik0IkKRBLuPplXqF6GoKrFQ/XMw0FYGy3+dFJ9nIDxsCyg3GcjCt6Mg8FEqGrXlpMG7MrtC9Q==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.3.tgz", + "integrity": "sha512-eNtpjbjxSheXu/jYCIDrbNEKzMGOvYW6/ePYpRM7gDdEagUOqKOCsi3St8NJIQJzZCsxD2JZ2pYOiomUSkT1yQ==", "requires": { "@babel/traverse": "^7.14.0", "@babel/types": "^7.0.0", "invariant": "^2.2.4", - "metro-symbolicate": "0.72.2", + "metro-symbolicate": "0.72.3", "nullthrows": "^1.1.1", - "ob1": "0.72.2", + "ob1": "0.72.3", "source-map": "^0.5.6", "vlq": "^1.0.0" } }, "metro-symbolicate": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.72.2.tgz", - "integrity": "sha512-Rn47dSggFU9jf+fpUE6/gkNQU7PQPTIbh2iUu7jI8cJFBODs0PWlI5h0W9XlQ56lcBtjLQz6fvZSloKdDcI2fQ==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.72.3.tgz", + "integrity": "sha512-eXG0NX2PJzJ/jTG4q5yyYeN2dr1cUqUaY7worBB0SP5bRWRc3besfb+rXwfh49wTFiL5qR0oOawkU4ZiD4eHXw==", "requires": { "invariant": "^2.2.4", - "metro-source-map": "0.72.2", + "metro-source-map": "0.72.3", "nullthrows": "^1.1.1", "source-map": "^0.5.6", "through2": "^2.0.1", @@ -47539,9 +47494,9 @@ } }, "metro-transform-plugins": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.72.2.tgz", - "integrity": "sha512-f2Zt6ti156TWFrnCRg7vxBIHBJcERBX8nwKmRKGFCbU+rk4YOxwONY4Y0Gn9Kocfu313P1xNqWYH5rCqvEWMaQ==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.72.3.tgz", + "integrity": "sha512-D+TcUvCKZbRua1+qujE0wV1onZvslW6cVTs7dLCyC2pv20lNHjFr1GtW01jN2fyKR2PcRyMjDCppFd9VwDKnSg==", "requires": { "@babel/core": "^7.14.0", "@babel/generator": "^7.14.0", @@ -47551,22 +47506,22 @@ } }, "metro-transform-worker": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.72.2.tgz", - "integrity": "sha512-z5OOnEO3NV6PgI8ORIBvJ5m+u9THFpy+6WIg/MUjP9k1oqasWaP1Rfhv7K/a+MD6uho1rgXj6nwWDqybsqHY/w==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.72.3.tgz", + "integrity": "sha512-WsuWj9H7i6cHuJuy+BgbWht9DK5FOgJxHLGAyULD5FJdTG9rSMFaHDO5WfC0OwQU5h4w6cPT40iDuEGksM7+YQ==", "requires": { "@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.72.2", - "metro-babel-transformer": "0.72.2", - "metro-cache": "0.72.2", - "metro-cache-key": "0.72.2", - "metro-hermes-compiler": "0.72.2", - "metro-source-map": "0.72.2", - "metro-transform-plugins": "0.72.2", + "metro": "0.72.3", + "metro-babel-transformer": "0.72.3", + "metro-cache": "0.72.3", + "metro-cache-key": "0.72.3", + "metro-hermes-compiler": "0.72.3", + "metro-source-map": "0.72.3", + "metro-transform-plugins": "0.72.3", "nullthrows": "^1.1.1" } }, @@ -47576,9 +47531,9 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "ob1": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.2.tgz", - "integrity": "sha512-P4zh/5GzyXPIzz+2eq2Hjd1wTZAfpwTIBWKhYx8X/DD2wCuFVprBEZp1FerWyTMwOA6AnVxiX1h0JE1v/s+PAQ==" + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.3.tgz", + "integrity": "sha512-OnVto25Sj7Ghp0vVm2THsngdze3tVq0LOg9LUHsAVXMecpqOP0Y8zaATW8M9gEgs2lNEAcCqV0P/hlmOPhVRvg==" }, "p-limit": { "version": "2.3.0", @@ -47692,12 +47647,12 @@ } }, "@react-native-community/cli-server-api": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-9.0.0.tgz", - "integrity": "sha512-4b7yOsTeqZGBD7eIczjMkzegvegIRQGT0lLtofNCpI5Gof0vMYpo1rM2cY76TgjIQiBhVA0pVKcfXUD/u9BA9Q==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-9.2.1.tgz", + "integrity": "sha512-EI+9MUxEbWBQhWw2PkhejXfkcRqPl+58+whlXJvKHiiUd7oVbewFs0uLW0yZffUutt4FGx6Uh88JWEgwOzAdkw==", "requires": { "@react-native-community/cli-debugger-ui": "^9.0.0", - "@react-native-community/cli-tools": "^9.0.0", + "@react-native-community/cli-tools": "^9.2.1", "compression": "^1.7.1", "connect": "^3.6.5", "errorhandler": "^1.5.0", @@ -47758,9 +47713,9 @@ } }, "@react-native-community/cli-tools": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-9.0.0.tgz", - "integrity": "sha512-qv8e9i4ybdRVw2VxolvVGv1mH9lMhstEuMvxvpwqHGNhTyevwpdVevuR5D/lbPz2EXogQpnMdQMLCiDoxxV4Ow==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-9.2.1.tgz", + "integrity": "sha512-bHmL/wrKmBphz25eMtoJQgwwmeCylbPxqFJnFSbkqJPXQz3ManQ6q/gVVMqFyz7D3v+riaus/VXz3sEDa97uiQ==", "requires": { "appdirsjs": "^1.2.4", "chalk": "^4.1.2", @@ -47837,9 +47792,9 @@ } }, "@react-native-community/cli-types": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-9.0.0.tgz", - "integrity": "sha512-EsDHzJwGA7Fkb1TErxiWMZIu50836NKgX3/dzPTwI/5KfvGPRjt4sBHvKJ7cQVMe1IgHwPhcO6izjcK69MPjTA==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-9.1.0.tgz", + "integrity": "sha512-KDybF9XHvafLEILsbiKwz5Iobd+gxRaPyn4zSaAerBxedug4er5VUWa8Szy+2GeYKZzMh/gsb1o9lCToUwdT/g==", "requires": { "joi": "^17.2.1" } @@ -48129,8 +48084,7 @@ "@sinclair/typebox": { "version": "0.24.28", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.28.tgz", - "integrity": "sha512-dgJd3HLOkLmz4Bw50eZx/zJwtBq65nms3N9VBYu5LTjJ883oBFkTyXRlCB/ZGGwqYpJJHA5zW2Ibhl5ngITfow==", - "dev": true + "integrity": "sha512-dgJd3HLOkLmz4Bw50eZx/zJwtBq65nms3N9VBYu5LTjJ883oBFkTyXRlCB/ZGGwqYpJJHA5zW2Ibhl5ngITfow==" }, "@sindresorhus/is": { "version": "0.14.0", @@ -53978,9 +53932,9 @@ "dev": true }, "@types/react": { - "version": "18.0.20", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.20.tgz", - "integrity": "sha512-MWul1teSPxujEHVwZl4a5HxQ9vVNsjTchVA+xRqv/VYGCuKGAU6UhfrTdF5aBefwD1BHUD8i/zq+O/vyCm/FrA==", + "version": "18.0.24", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.24.tgz", + "integrity": "sha512-wRJWT6ouziGUy+9uX0aW4YOJxAY0bG6/AOk5AW5QSvZqI7dk6VBIbXvcVgIw/W5Jrl24f77df98GEKTJGOLx7Q==", "peer": true, "requires": { "@types/prop-types": "*", @@ -53989,9 +53943,9 @@ } }, "@types/react-native": { - "version": "0.70.3", - "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.70.3.tgz", - "integrity": "sha512-J2bo6zZ5rt64AZKlBQwOpD91nEMOWp17Wm3broTqxYxCuOik4jLPcOr1HUBOKoJBPwBAYrIV/KMj/546ZkazAw==", + "version": "0.70.6", + "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.70.6.tgz", + "integrity": "sha512-ynQ2jj0km9d7dbnyKqVdQ6Nti7VQ8SLTA/KKkkS5+FnvGyvij2AOo1/xnkBR/jnSNXuzrvGVzw2n0VWfppmfKw==", "peer": true, "requires": { "@types/react": "*" @@ -57066,9 +57020,9 @@ } }, "camelize": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", - "integrity": "sha512-W2lPwkBkMZwFlPCXhIlYgxu+7gC/NUlCtdK652DAJ1JdgV0sTrvuPFshNPrFa1TY2JOkLhgdeEBplB4ezEa+xg==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", + "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==" }, "caniuse-lite": { "version": "1.0.30001378", @@ -58672,9 +58626,9 @@ "dev": true }, "dayjs": { - "version": "1.11.5", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.5.tgz", - "integrity": "sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==" + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.6.tgz", + "integrity": "sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ==" }, "debug": { "version": "4.3.4", @@ -58771,9 +58725,9 @@ } }, "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "requires": { "clone": "^1.0.2" } @@ -60482,161 +60436,6 @@ } } }, - "eslint-loader": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-4.0.2.tgz", - "integrity": "sha512-EDpXor6lsjtTzZpLUn7KmXs02+nIjGcgees9BYjNkWra3jVq5vVa8IoCKgzT2M7dNNeoMBtaSG83Bd40N3poLw==", - "dev": true, - "requires": { - "find-cache-dir": "^3.3.1", - "fs-extra": "^8.1.0", - "loader-utils": "^2.0.0", - "object-hash": "^2.0.3", - "schema-utils": "^2.6.5" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} - }, - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - } - } - }, "eslint-module-utils": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", @@ -65762,9 +65561,9 @@ } }, "joi": { - "version": "17.6.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.0.tgz", - "integrity": "sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==", + "version": "17.6.4", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.4.tgz", + "integrity": "sha512-tPzkTJHZQjSFCc842QpdVpOZ9LI2txApboNUbW70qgnRB14Lzl+oWQOPdF2N4yqyiY14wBGe8lc7f/2hZxbGmw==", "requires": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -67774,9 +67573,10 @@ } }, "metro-react-native-babel-preset": { - "version": "0.72.2", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.72.2.tgz", - "integrity": "sha512-OMp77TUUZAoiuUv5uKNc08AnJNQxD28k92eQvo8tPcA8Wx6OZlEUvL7M7SFkef2mEYJ0vnrRjOamSnbBuq/+1w==", + "version": "0.73.3", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.3.tgz", + "integrity": "sha512-JJ22lR4CVaw3OKTz9YAY/ckymr3DbO+qy/x5kLaF4g0LcvZmhhKfDK+fml577AZU6sKb/CTd0SBwt+VAz+Hu7Q==", + "dev": true, "requires": { "@babel/core": "^7.14.0", "@babel/plugin-proposal-async-generator-functions": "^7.0.0", @@ -67797,7 +67597,6 @@ "@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-function-name": "^7.0.0", "@babel/plugin-transform-literals": "^7.0.0", @@ -67822,39 +67621,40 @@ "react-refresh": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz", - "integrity": "sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA==" + "integrity": "sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA==", + "dev": true } } }, "metro-react-native-babel-transformer": { - "version": "0.72.1", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.72.1.tgz", - "integrity": "sha512-hMnN0MOgVloAk94YuXN7sLeDaZ51Y6xIcJXxIU1s/KaygAGXk6o7VAdwf2MY/IV1SIct5lkW4Gn71u/9/EvfXA==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.72.3.tgz", + "integrity": "sha512-Ogst/M6ujYrl/+9mpEWqE3zF7l2mTuftDTy3L8wZYwX1pWUQWQpfU1aJBeWiLxt1XlIq+uriRjKzKoRoIK57EA==", "requires": { "@babel/core": "^7.14.0", "babel-preset-fbjs": "^3.4.0", "hermes-parser": "0.8.0", - "metro-babel-transformer": "0.72.1", - "metro-react-native-babel-preset": "0.72.1", - "metro-source-map": "0.72.1", + "metro-babel-transformer": "0.72.3", + "metro-react-native-babel-preset": "0.72.3", + "metro-source-map": "0.72.3", "nullthrows": "^1.1.1" }, "dependencies": { "metro-babel-transformer": { - "version": "0.72.1", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.72.1.tgz", - "integrity": "sha512-VK7A9gepnhrKC0DMoxtPjYYHjkkfNwzLMYJgeL6Il6IaX/K/VHTILSEqgpxfNDos2jrXazuR5+rXDLE/RCzqmw==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.72.3.tgz", + "integrity": "sha512-PTOR2zww0vJbWeeM3qN90WKENxCLzv9xrwWaNtwVlhcV8/diNdNe82sE1xIxLFI6OQuAVwNMv1Y7VsO2I7Ejrw==", "requires": { "@babel/core": "^7.14.0", "hermes-parser": "0.8.0", - "metro-source-map": "0.72.1", + "metro-source-map": "0.72.3", "nullthrows": "^1.1.1" } }, "metro-react-native-babel-preset": { - "version": "0.72.1", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.72.1.tgz", - "integrity": "sha512-DlvMw2tFrCqD9OXBoN11fPM09kHC22FZpnkTmG4Pr4kecV+aDmEGxwakjUcjELrX1JCXz2MLPvqeJkbiP1f5CA==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.72.3.tgz", + "integrity": "sha512-uJx9y/1NIqoYTp6ZW1osJ7U5ZrXGAJbOQ/Qzl05BdGYvN1S7Qmbzid6xOirgK0EIT0pJKEEh1s8qbassYZe4cw==", "requires": { "@babel/core": "^7.14.0", "@babel/plugin-proposal-async-generator-functions": "^7.0.0", @@ -67898,27 +67698,27 @@ } }, "metro-source-map": { - "version": "0.72.1", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.1.tgz", - "integrity": "sha512-77TZuf10Ru+USo97HwDT8UceSzOGBZB8EYTObOsR0n1sjQHjvKsMflLA9Pco13o9NsIYAG6c6P/0vIpiHKqaKA==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.3.tgz", + "integrity": "sha512-eNtpjbjxSheXu/jYCIDrbNEKzMGOvYW6/ePYpRM7gDdEagUOqKOCsi3St8NJIQJzZCsxD2JZ2pYOiomUSkT1yQ==", "requires": { "@babel/traverse": "^7.14.0", "@babel/types": "^7.0.0", "invariant": "^2.2.4", - "metro-symbolicate": "0.72.1", + "metro-symbolicate": "0.72.3", "nullthrows": "^1.1.1", - "ob1": "0.72.1", + "ob1": "0.72.3", "source-map": "^0.5.6", "vlq": "^1.0.0" } }, "metro-symbolicate": { - "version": "0.72.1", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.72.1.tgz", - "integrity": "sha512-ScC3dVd2XrfZSd6kubOw7EJNp2oHdjrqOjGpFohtcXGjhqkzDosp7Fg84VgwQGN8g720xvUyEBfSMmUCXcicOQ==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.72.3.tgz", + "integrity": "sha512-eXG0NX2PJzJ/jTG4q5yyYeN2dr1cUqUaY7worBB0SP5bRWRc3besfb+rXwfh49wTFiL5qR0oOawkU4ZiD4eHXw==", "requires": { "invariant": "^2.2.4", - "metro-source-map": "0.72.1", + "metro-source-map": "0.72.3", "nullthrows": "^1.1.1", "source-map": "^0.5.6", "through2": "^2.0.1", @@ -67926,9 +67726,9 @@ } }, "ob1": { - "version": "0.72.1", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.1.tgz", - "integrity": "sha512-TyQX2gO08klGTMuzD+xm3iVrzXiIygCB7t+NWeicOR05hkzgeWOiAZ8q40uMfIDRfEAc6hd66sJdIEhU/yUZZA==" + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.3.tgz", + "integrity": "sha512-OnVto25Sj7Ghp0vVm2THsngdze3tVq0LOg9LUHsAVXMecpqOP0Y8zaATW8M9gEgs2lNEAcCqV0P/hlmOPhVRvg==" }, "react-refresh": { "version": "0.4.3", @@ -68740,12 +68540,6 @@ } } }, - "object-hash": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", - "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", - "dev": true - }, "object-inspect": { "version": "1.12.2", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", @@ -70120,14 +69914,14 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "react-native": { - "version": "npm:@expensify/react-native@0.70.5", - "resolved": "https://registry.npmjs.org/@expensify/react-native/-/react-native-0.70.5.tgz", - "integrity": "sha512-C4Y0XVMSW2tmgnENoT31L/aBaPz2CmAsn8NJE0IPjBWE0xkcMaUh0u4Mx2v+relQ6bDvknB96/am0TsqMak1Kg==", - "requires": { - "@jest/create-cache-key-function": "^27.0.1", - "@react-native-community/cli": "^9.0.0", - "@react-native-community/cli-platform-android": "^9.0.0", - "@react-native-community/cli-platform-ios": "^9.0.0", + "version": "npm:@expensify/react-native@0.70.4-alpha.1", + "resolved": "https://registry.npmjs.org/@expensify/react-native/-/react-native-0.70.4-alpha.1.tgz", + "integrity": "sha512-kXVxU+ni4SnJgCAENaS8ri/CwO2lt1Yqu0y0Y9SjCgayk2ZsSXsp13ajYfICOpPfrOLRvMjQE8cAMQuuzDqovg==", + "requires": { + "@jest/create-cache-key-function": "^29.0.3", + "@react-native-community/cli": "9.2.1", + "@react-native-community/cli-platform-android": "9.2.1", + "@react-native-community/cli-platform-ios": "9.2.1", "@react-native/assets": "1.0.0", "@react-native/normalize-color": "2.0.0", "@react-native/polyfills": "2.0.0", @@ -70138,15 +69932,15 @@ "invariant": "^2.2.4", "jsc-android": "^250230.2.1", "memoize-one": "^5.0.0", - "metro-react-native-babel-transformer": "0.72.1", - "metro-runtime": "0.72.1", - "metro-source-map": "0.72.1", + "metro-react-native-babel-transformer": "0.72.3", + "metro-runtime": "0.72.3", + "metro-source-map": "0.72.3", "mkdirp": "^0.5.1", "nullthrows": "^1.1.1", "pretty-format": "^26.5.2", "promise": "^8.0.3", "react-devtools-core": "4.24.0", - "react-native-codegen": "^0.70.5", + "react-native-codegen": "^0.70.6", "react-native-gradle-plugin": "^0.70.3", "react-refresh": "^0.4.0", "react-shallow-renderer": "^16.15.0", @@ -70190,36 +69984,36 @@ "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" }, "metro-runtime": { - "version": "0.72.1", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.72.1.tgz", - "integrity": "sha512-CO+fvJKYHKuR2vo7kjsegQ2oF3FMwa4YhnUInQ+xPVxWoy8DbOpmruKBoTsQVgHwyIziXzvJa+mze/6CFvT+3A==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.72.3.tgz", + "integrity": "sha512-3MhvDKfxMg2u7dmTdpFOfdR71NgNNo4tzAyJumDVQKwnHYHN44f2QFZQqpPBEmqhWlojNeOxsqFsjYgeyMx6VA==", "requires": { "@babel/runtime": "^7.0.0", "react-refresh": "^0.4.0" } }, "metro-source-map": { - "version": "0.72.1", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.1.tgz", - "integrity": "sha512-77TZuf10Ru+USo97HwDT8UceSzOGBZB8EYTObOsR0n1sjQHjvKsMflLA9Pco13o9NsIYAG6c6P/0vIpiHKqaKA==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.3.tgz", + "integrity": "sha512-eNtpjbjxSheXu/jYCIDrbNEKzMGOvYW6/ePYpRM7gDdEagUOqKOCsi3St8NJIQJzZCsxD2JZ2pYOiomUSkT1yQ==", "requires": { "@babel/traverse": "^7.14.0", "@babel/types": "^7.0.0", "invariant": "^2.2.4", - "metro-symbolicate": "0.72.1", + "metro-symbolicate": "0.72.3", "nullthrows": "^1.1.1", - "ob1": "0.72.1", + "ob1": "0.72.3", "source-map": "^0.5.6", "vlq": "^1.0.0" } }, "metro-symbolicate": { - "version": "0.72.1", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.72.1.tgz", - "integrity": "sha512-ScC3dVd2XrfZSd6kubOw7EJNp2oHdjrqOjGpFohtcXGjhqkzDosp7Fg84VgwQGN8g720xvUyEBfSMmUCXcicOQ==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.72.3.tgz", + "integrity": "sha512-eXG0NX2PJzJ/jTG4q5yyYeN2dr1cUqUaY7worBB0SP5bRWRc3besfb+rXwfh49wTFiL5qR0oOawkU4ZiD4eHXw==", "requires": { "invariant": "^2.2.4", - "metro-source-map": "0.72.1", + "metro-source-map": "0.72.3", "nullthrows": "^1.1.1", "source-map": "^0.5.6", "through2": "^2.0.1", @@ -70235,9 +70029,9 @@ } }, "ob1": { - "version": "0.72.1", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.1.tgz", - "integrity": "sha512-TyQX2gO08klGTMuzD+xm3iVrzXiIygCB7t+NWeicOR05hkzgeWOiAZ8q40uMfIDRfEAc6hd66sJdIEhU/yUZZA==" + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.3.tgz", + "integrity": "sha512-OnVto25Sj7Ghp0vVm2THsngdze3tVq0LOg9LUHsAVXMecpqOP0Y8zaATW8M9gEgs2lNEAcCqV0P/hlmOPhVRvg==" }, "pretty-format": { "version": "26.6.2", @@ -70307,9 +70101,9 @@ "dev": true }, "react-native-codegen": { - "version": "0.70.5", - "resolved": "https://registry.npmjs.org/react-native-codegen/-/react-native-codegen-0.70.5.tgz", - "integrity": "sha512-vXqgCWWIWlzsCtwD6hbmwmCleGNJYm+n4xO9VMfzzlF3xt9gjC7/USSMTf/YZlCK/hDwQU412QrNS6A9OH+mag==", + "version": "0.70.6", + "resolved": "https://registry.npmjs.org/react-native-codegen/-/react-native-codegen-0.70.6.tgz", + "integrity": "sha512-kdwIhH2hi+cFnG5Nb8Ji2JwmcCxnaOOo9440ov7XDzSvGfmUStnCzl+MCW8jLjqHcE4icT7N9y+xx4f50vfBTw==", "requires": { "@babel/parser": "^7.14.0", "flow-parser": "^0.121.0", @@ -70492,6 +70286,21 @@ "urijs": "^1.19.6" }, "dependencies": { + "@native-html/transient-render-engine": { + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/@native-html/transient-render-engine/-/transient-render-engine-11.2.2.tgz", + "integrity": "sha512-z0LgQStGJf4gCIeuD8oJiPbk+sUEQ9FOzHlDWwK+uVam+1Q5mmh6PqblCdTCP3IRGBtPLzMM0VZ9njm1TEvb8Q==", + "requires": { + "@native-html/css-processor": "1.11.0", + "@types/ramda": "^0.27.44", + "csstype": "^3.0.9", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.2", + "domutils": "^2.8.0", + "htmlparser2": "^7.1.2", + "ramda": "^0.27.1" + } + }, "ramda": { "version": "0.27.2", "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.2.tgz", @@ -73047,6 +72856,66 @@ } } }, + "speed-measure-webpack-plugin": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.5.0.tgz", + "integrity": "sha512-Re0wX5CtM6gW7bZA64ONOfEPEhwbiSF/vz6e2GvadjuaPrQcHTQdRGsD8+BE7iUOysXH8tIenkPCQBEcspXsNg==", + "dev": true, + "requires": { + "chalk": "^4.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "split": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", diff --git a/package.json b/package.json index d7ee0ef9be7e..2538f1103743 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "android-build-e2e": "bundle exec fastlane android build_e2e", "test": "jest", "lint": "eslint . --max-warnings=0", + "lint-watch": "npx eslint-watch --watch --changed", "print-version": "echo $npm_package_version", "storybook": "start-storybook -p 6006", "storybook-build": "build-storybook -o dist/docs", @@ -84,7 +85,7 @@ "react-collapse": "^5.1.0", "react-content-loader": "^6.1.0", "react-dom": "18.1.0", - "react-native": "npm:@expensify/react-native@0.70.5", + "react-native": "npm:@expensify/react-native@0.70.4-alpha.1", "react-native-blob-util": "^0.16.2", "react-native-collapsible": "^1.6.0", "react-native-config": "^1.4.5", @@ -162,7 +163,6 @@ "electron-notarize": "^1.2.1", "eslint": "^7.6.0", "eslint-config-expensify": "2.0.30", - "eslint-loader": "^4.0.2", "eslint-plugin-jest": "^24.1.0", "eslint-plugin-jsx-a11y": "^6.6.1", "eslint-plugin-storybook": "^0.5.13", @@ -171,7 +171,7 @@ "jest": "^26.6.3", "jest-circus": "^26.6.3", "jest-cli": "^26.6.3", - "metro-react-native-babel-preset": "^0.72.1", + "metro-react-native-babel-preset": "^0.73.3", "mock-fs": "^4.13.0", "portfinder": "^1.0.28", "pusher-js-mock": "^0.3.3", @@ -181,6 +181,7 @@ "react-native-svg-transformer": "^0.14.3", "react-test-renderer": "18.1.0", "semver": "^7.3.4", + "speed-measure-webpack-plugin": "^1.5.0", "style-loader": "^2.0.0", "wait-port": "^0.2.9", "webpack": "^5.74.0", @@ -189,6 +190,9 @@ "webpack-dev-server": "^4.9.3", "webpack-merge": "^5.8.0" }, + "overrides": { + "react-native": "$react-native" + }, "engines": { "node": "16.15.1", "npm": "8.11.0" diff --git a/src/CONST.js b/src/CONST.js index bb32bcef4a30..123f17fee677 100755 --- a/src/CONST.js +++ b/src/CONST.js @@ -12,6 +12,7 @@ const CONST = { ANDROID_PACKAGE_NAME, ANIMATED_TRANSITION: 300, ANIMATED_TRANSITION_FROM_VALUE: 100, + ANIMATION_IN_TIMING: 100, API_ATTACHMENT_VALIDATIONS: { // Same as the PHP layer allows diff --git a/src/components/FAB/fabPropTypes.js b/src/components/FAB/fabPropTypes.js deleted file mode 100644 index 1c934826d7eb..000000000000 --- a/src/components/FAB/fabPropTypes.js +++ /dev/null @@ -1,11 +0,0 @@ -import PropTypes from 'prop-types'; - -const fabPropTypes = { - // Callback to fire on request to toggle the FAB - onPress: PropTypes.func.isRequired, - - // Current state (active or not active) of the component - isActive: PropTypes.bool.isRequired, -}; - -export default fabPropTypes; diff --git a/src/components/FAB/index.ios.js b/src/components/FAB/index.ios.js deleted file mode 100644 index 3ebc24dcd62d..000000000000 --- a/src/components/FAB/index.ios.js +++ /dev/null @@ -1,18 +0,0 @@ -import React from 'react'; -import { - KeyboardAvoidingView, -} from 'react-native'; - -import FAB from './FAB'; -import fabPropTypes from './fabPropTypes'; - -// KeyboardAvoidingView only need in IOS so that's the reason make platform specific FAB component. -const Fab = props => ( - - - -); - -Fab.propTypes = fabPropTypes; -Fab.displayName = 'Fab'; -export default Fab; diff --git a/src/components/FAB/index.js b/src/components/FAB/index.js deleted file mode 100644 index 41f00921d71d..000000000000 --- a/src/components/FAB/index.js +++ /dev/null @@ -1,3 +0,0 @@ -import FAB from './FAB'; - -export default FAB; diff --git a/src/components/FAB/FAB.js b/src/components/FloatingActionButton.js similarity index 50% rename from src/components/FAB/FAB.js rename to src/components/FloatingActionButton.js index 8cbb277659fb..5ed291898496 100644 --- a/src/components/FAB/FAB.js +++ b/src/components/FloatingActionButton.js @@ -1,15 +1,15 @@ import React, {PureComponent} from 'react'; import { - Pressable, Animated, Easing, + Pressable, Animated, Easing, KeyboardAvoidingView, } from 'react-native'; -import Icon from '../Icon'; -import * as Expensicons from '../Icon/Expensicons'; -import styles from '../../styles/styles'; -import * as StyleUtils from '../../styles/StyleUtils'; -import themeColors from '../../styles/themes/default'; -import fabPropTypes from './fabPropTypes'; -import Tooltip from '../Tooltip'; -import withLocalize from '../withLocalize'; +import PropTypes from 'prop-types'; +import Icon from './Icon'; +import * as Expensicons from './Icon/Expensicons'; +import styles from '../styles/styles'; +import * as StyleUtils from '../styles/StyleUtils'; +import themeColors from '../styles/themes/default'; +import Tooltip from './Tooltip'; +import withLocalize, {withLocalizePropTypes} from './withLocalize'; const AnimatedIcon = Animated.createAnimatedComponent(Icon); AnimatedIcon.displayName = 'AnimatedIcon'; @@ -17,7 +17,17 @@ AnimatedIcon.displayName = 'AnimatedIcon'; const AnimatedPressable = Animated.createAnimatedComponent(Pressable); AnimatedPressable.displayName = 'AnimatedPressable'; -class FAB extends PureComponent { +const propTypes = { + // Callback to fire on request to toggle the FloatingActionButton + onPress: PropTypes.func.isRequired, + + // Current state (active or not active) of the component + isActive: PropTypes.bool.isRequired, + + ...withLocalizePropTypes, +}; + +class FloatingActionButton extends PureComponent { constructor(props) { super(props); this.animatedValue = new Animated.Value(props.isActive ? 1 : 0); @@ -63,22 +73,25 @@ class FAB extends PureComponent { }); return ( - - - - - + + + + + + + ); } } -FAB.propTypes = fabPropTypes; -export default withLocalize(FAB); +FloatingActionButton.propTypes = propTypes; + +export default withLocalize(FloatingActionButton); diff --git a/src/components/KeyboardAvoidingView/index.ios.js b/src/components/KeyboardAvoidingView/index.ios.js deleted file mode 100644 index 70373a2e5713..000000000000 --- a/src/components/KeyboardAvoidingView/index.ios.js +++ /dev/null @@ -1,28 +0,0 @@ -/* - * This is a KeyboardAvoidingView only enabled for ios && disabled for all other platforms - */ -import React from 'react'; -import {KeyboardAvoidingView as KeyboardAvoidingViewComponent} from 'react-native'; -import PropTypes from 'prop-types'; -import styles from '../../styles/styles'; - -const propTypes = { - children: PropTypes.node, -}; -const defaultProps = { - children: null, -}; - -const KeyboardAvoidingView = props => ( - - {props.children} - -); - -KeyboardAvoidingView.propTypes = propTypes; -KeyboardAvoidingView.defaultProps = defaultProps; -KeyboardAvoidingView.displayName = 'KeyboardAvoidingView'; -export default KeyboardAvoidingView; diff --git a/src/components/KeyboardAvoidingView/index.js b/src/components/KeyboardAvoidingView/index.js deleted file mode 100644 index a25ad6a95963..000000000000 --- a/src/components/KeyboardAvoidingView/index.js +++ /dev/null @@ -1,18 +0,0 @@ -/* - * This is a KeyboardAvoidingView only enabled for ios && disabled for all other platforms - */ -import PropTypes from 'prop-types'; - -const propTypes = { - children: PropTypes.node, -}; -const defaultProps = { - children: null, -}; - -const KeyboardAvoidingView = props => props.children; - -KeyboardAvoidingView.propTypes = propTypes; -KeyboardAvoidingView.defaultProps = defaultProps; -KeyboardAvoidingView.displayName = 'KeyboardAvoidingView'; -export default KeyboardAvoidingView; diff --git a/src/components/PDFView/index.native.js b/src/components/PDFView/index.native.js index 405fccd1e20d..ea93ea70116b 100644 --- a/src/components/PDFView/index.native.js +++ b/src/components/PDFView/index.native.js @@ -1,10 +1,9 @@ import React, {Component} from 'react'; -import {TouchableWithoutFeedback, View} from 'react-native'; +import {TouchableWithoutFeedback, View, KeyboardAvoidingView} from 'react-native'; import PDF from 'react-native-pdf'; import styles from '../../styles/styles'; import * as StyleUtils from '../../styles/StyleUtils'; import FullScreenLoadingIndicator from '../FullscreenLoadingIndicator'; -import KeyboardAvoidingView from '../KeyboardAvoidingView'; import PDFPasswordForm from './PDFPasswordForm'; import * as pdfViewPropTypes from './pdfViewPropTypes'; import compose from '../../libs/compose'; diff --git a/src/components/Popover/popoverPropTypes.js b/src/components/Popover/popoverPropTypes.js index 6c959b025ac4..839ab68204d0 100644 --- a/src/components/Popover/popoverPropTypes.js +++ b/src/components/Popover/popoverPropTypes.js @@ -1,6 +1,7 @@ import _ from 'underscore'; import PropTypes from 'prop-types'; import {propTypes as modalPropTypes, defaultProps as defaultModalProps} from '../Modal/modalPropTypes'; +import CONST from '../../CONST'; const propTypes = { ...(_.omit(modalPropTypes, ['type', 'popoverAnchorPosition'])), @@ -13,6 +14,9 @@ const propTypes = { left: PropTypes.number, }), + /** A react-native-animatable animation timing for the modal display animation. */ + animationInTiming: PropTypes.number, + /** Whether disable the animations */ disableAnimation: PropTypes.bool, }; @@ -22,6 +26,7 @@ const defaultProps = { animationIn: 'fadeIn', animationOut: 'fadeOut', + animationInTiming: CONST.ANIMATED_TRANSITION, // Anchor position is optional only because it is not relevant on mobile anchorPosition: {}, diff --git a/src/components/PopoverMenu/BasePopoverMenu.js b/src/components/PopoverMenu/BasePopoverMenu.js index 52d876c48792..04367c66d350 100644 --- a/src/components/PopoverMenu/BasePopoverMenu.js +++ b/src/components/PopoverMenu/BasePopoverMenu.js @@ -96,6 +96,7 @@ class BasePopoverMenu extends PureComponent { onModalHide={this.resetFocusAndHideModal} animationIn={this.props.animationIn} animationOut={this.props.animationOut} + animationInTiming={this.props.animationInTiming} disableAnimation={this.props.disableAnimation} fromSidebarMediumScreen={this.props.fromSidebarMediumScreen} > diff --git a/src/components/PopoverMenu/popoverMenuPropTypes.js b/src/components/PopoverMenu/popoverMenuPropTypes.js index 402b63418d1b..94a02525b11b 100644 --- a/src/components/PopoverMenu/popoverMenuPropTypes.js +++ b/src/components/PopoverMenu/popoverMenuPropTypes.js @@ -1,4 +1,5 @@ import PropTypes from 'prop-types'; +import CONST from '../../CONST'; const propTypes = { /** Callback method fired when the user requests to close the modal */ @@ -44,6 +45,9 @@ const propTypes = { PropTypes.object, ]), + /** A react-native-animatable animation timing for the modal display animation. */ + animationInTiming: PropTypes.number, + /** Optional non-interactive text to display as a header for any create menu */ headerText: PropTypes.string, @@ -54,6 +58,7 @@ const propTypes = { const defaultProps = { animationIn: 'fadeIn', animationOut: 'fadeOut', + animationInTiming: CONST.ANIMATED_TRANSITION, headerText: undefined, disableAnimation: true, }; diff --git a/src/libs/OptionsListUtils.js b/src/libs/OptionsListUtils.js index 5ea18553ffff..6308c4745a45 100644 --- a/src/libs/OptionsListUtils.js +++ b/src/libs/OptionsListUtils.js @@ -198,11 +198,7 @@ function getSearchText(report, reportName, personalDetailList, isChatRoomOrPolic if (isChatRoomOrPolicyExpenseChat) { const chatRoomSubtitle = ReportUtils.getChatRoomSubtitle(report, policies); - // When running tests, chatRoomSubtitle can be undefined due to the Localize() stuff being mocked in the tests. - // It's OK to ignore this and just add a null check in here to keep code from crashing. - if (chatRoomSubtitle) { - Array.prototype.push.apply(searchTerms, chatRoomSubtitle.split(/[,\s]/)); - } + Array.prototype.push.apply(searchTerms, chatRoomSubtitle.split(/[,\s]/)); } else { searchTerms = searchTerms.concat(report.participants); } @@ -308,7 +304,7 @@ function createOption(logins, personalDetails, report, reportActions = {}, { result.shouldShowSubscript = result.isPolicyExpenseChat && !report.isOwnPolicyExpenseChat && !result.isArchivedRoom; result.allReportErrors = getAllReportErrors(report, reportActions); result.brickRoadIndicator = !_.isEmpty(result.allReportErrors) ? CONST.BRICK_ROAD_INDICATOR_STATUS.ERROR : ''; - result.pendingAction = report.pendingFields ? report.pendingFields.addWorkspaceRoom : null; + result.pendingAction = report.pendingFields ? (report.pendingFields.addWorkspaceRoom || report.pendingFields.createChat) : null; result.ownerEmail = report.ownerEmail; result.reportID = report.reportID; result.isUnread = ReportUtils.isUnread(report); diff --git a/src/libs/ReportUtils.js b/src/libs/ReportUtils.js index 90171cc9b251..47656838a557 100644 --- a/src/libs/ReportUtils.js +++ b/src/libs/ReportUtils.js @@ -300,7 +300,7 @@ function getChatRoomSubtitle(report, policiesMap) { return Localize.translateLocal('workspace.common.workspace'); } if (isArchivedRoom(report)) { - return report.oldPolicyName; + return report.oldPolicyName || ''; } return getPolicyName(report, policiesMap); } diff --git a/src/libs/SidebarUtils.js b/src/libs/SidebarUtils.js index 2aefa7ed8558..095864ad2fff 100644 --- a/src/libs/SidebarUtils.js +++ b/src/libs/SidebarUtils.js @@ -222,7 +222,7 @@ function getOptionData(reportID) { result.isArchivedRoom = ReportUtils.isArchivedRoom(report); result.isPolicyExpenseChat = ReportUtils.isPolicyExpenseChat(report); result.shouldShowSubscript = result.isPolicyExpenseChat && !report.isOwnPolicyExpenseChat && !result.isArchivedRoom; - result.pendingAction = report.pendingFields ? report.pendingFields.addWorkspaceRoom : null; + result.pendingAction = report.pendingFields ? (report.pendingFields.addWorkspaceRoom || report.pendingFields.createChat) : null; result.allReportErrors = OptionsListUtils.getAllReportErrors(report, reportActions); result.brickRoadIndicator = !_.isEmpty(result.allReportErrors) ? CONST.BRICK_ROAD_INDICATOR_STATUS.ERROR : ''; result.ownerEmail = report.ownerEmail; diff --git a/src/libs/actions/App.js b/src/libs/actions/App.js index faa7fe87f5d3..a12b2799cf7e 100644 --- a/src/libs/actions/App.js +++ b/src/libs/actions/App.js @@ -139,7 +139,7 @@ function openApp() { * Refreshes data when the app reconnects */ function reconnectApp() { - API.read('ReconnectApp', {policyIDListExcludingWorkspacesCreatedOffline}, { + API.write('ReconnectApp', {policyIDListExcludingWorkspacesCreatedOffline}, { optimisticData: [{ onyxMethod: CONST.ONYX.METHOD.MERGE, key: ONYXKEYS.IS_LOADING_REPORT_DATA, diff --git a/src/libs/actions/Policy.js b/src/libs/actions/Policy.js index 1df9a904ea20..6816e41333bb 100644 --- a/src/libs/actions/Policy.js +++ b/src/libs/actions/Policy.js @@ -3,6 +3,7 @@ import Onyx from 'react-native-onyx'; import lodashGet from 'lodash/get'; import {PUBLIC_DOMAINS} from 'expensify-common/lib/CONST'; import Str from 'expensify-common/lib/str'; +import {escapeRegExp} from 'lodash'; import * as DeprecatedAPI from '../deprecatedAPI'; import * as API from '../API'; import ONYXKEYS from '../../ONYXKEYS'; @@ -19,7 +20,12 @@ const allPolicies = {}; Onyx.connect({ key: ONYXKEYS.COLLECTION.POLICY, callback: (val, key) => { - if (!val || !key) { + if (!key) { + return; + } + + if (val === null || val === undefined) { + delete allPolicies[key]; return; } @@ -687,17 +693,14 @@ function generateDefaultWorkspaceName(email = '') { return defaultWorkspaceName; } - // Check if this name already exists in the policies - let suffix = 0; - _.forEach(allPolicies, (policy) => { - const name = lodashGet(policy, 'name', ''); - - if (name.toLowerCase().includes(defaultWorkspaceName.toLowerCase())) { - suffix += 1; - } - }); - - return suffix > 0 ? `${defaultWorkspaceName} ${suffix}` : defaultWorkspaceName; + // find default named workspaces and increment the last number + const numberRegEx = new RegExp(`${escapeRegExp(defaultWorkspaceName)} ?(\\d*)`, 'i'); + const lastWorkspaceNumber = _.chain(allPolicies) + .filter(policy => policy.name && numberRegEx.test(policy.name)) + .map(policy => parseInt(numberRegEx.exec(policy.name)[1] || 1, 10)) // parse the number at the end + .max() + .value(); + return lastWorkspaceNumber !== -Infinity ? `${defaultWorkspaceName} ${lastWorkspaceNumber + 1}` : defaultWorkspaceName; } /** diff --git a/src/pages/ReportDetailsPage.js b/src/pages/ReportDetailsPage.js index e76c29c7244e..622cb777aa5d 100644 --- a/src/pages/ReportDetailsPage.js +++ b/src/pages/ReportDetailsPage.js @@ -22,6 +22,7 @@ import MenuItem from '../components/MenuItem'; import Text from '../components/Text'; import CONST from '../CONST'; import reportPropTypes from './reportPropTypes'; +import withReportOrNavigateHome from './home/report/withReportOrNavigateHome'; const propTypes = { ...withLocalizePropTypes, @@ -66,7 +67,7 @@ class ReportDetailsPage extends Component { key: CONST.REPORT_DETAILS_MENU_ITEM.MEMBERS, translationKey: 'common.members', icon: Expensicons.Users, - subtitle: props.report.participants.length, + subtitle: lodashGet(props.report, 'participants', []).length, action: () => { Navigation.navigate(ROUTES.getReportParticipantsRoute(props.report.reportID)); }, }); @@ -177,10 +178,8 @@ ReportDetailsPage.propTypes = propTypes; export default compose( withLocalize, + withReportOrNavigateHome, withOnyx({ - report: { - key: ({route}) => `${ONYXKEYS.COLLECTION.REPORT}${route.params.reportID}`, - }, personalDetails: { key: ONYXKEYS.PERSONAL_DETAILS, }, diff --git a/src/pages/ReportParticipantsPage.js b/src/pages/ReportParticipantsPage.js index f66c0cbfd724..eb1b63980c8a 100755 --- a/src/pages/ReportParticipantsPage.js +++ b/src/pages/ReportParticipantsPage.js @@ -19,6 +19,7 @@ import withLocalize, {withLocalizePropTypes} from '../components/withLocalize'; import compose from '../libs/compose'; import * as ReportUtils from '../libs/ReportUtils'; import reportPropTypes from './reportPropTypes'; +import withReportOrNavigateHome from './home/report/withReportOrNavigateHome'; const propTypes = { /* Onyx Props */ @@ -113,12 +114,10 @@ ReportParticipantsPage.displayName = 'ReportParticipantsPage'; export default compose( withLocalize, + withReportOrNavigateHome, withOnyx({ personalDetails: { key: ONYXKEYS.PERSONAL_DETAILS, }, - report: { - key: ({route}) => `${ONYXKEYS.COLLECTION.REPORT}${route.params.reportID}`, - }, }), )(ReportParticipantsPage); diff --git a/src/pages/ReportSettingsPage.js b/src/pages/ReportSettingsPage.js index 16893895608e..4eb29ef282cc 100644 --- a/src/pages/ReportSettingsPage.js +++ b/src/pages/ReportSettingsPage.js @@ -21,6 +21,7 @@ import Picker from '../components/Picker'; import * as ValidationUtils from '../libs/ValidationUtils'; import OfflineWithFeedback from '../components/OfflineWithFeedback'; import reportPropTypes from './reportPropTypes'; +import withReportOrNavigateHome from './home/report/withReportOrNavigateHome'; const propTypes = { /** Route params */ @@ -243,10 +244,8 @@ ReportSettingsPage.propTypes = propTypes; export default compose( withLocalize, + withReportOrNavigateHome, withOnyx({ - report: { - key: ({route}) => `${ONYXKEYS.COLLECTION.REPORT}${route.params.reportID}`, - }, policies: { key: ONYXKEYS.COLLECTION.POLICY, }, diff --git a/src/pages/home/ReportScreen.js b/src/pages/home/ReportScreen.js index 28b0bd29d3b0..d85dabdf9dcd 100644 --- a/src/pages/home/ReportScreen.js +++ b/src/pages/home/ReportScreen.js @@ -1,7 +1,7 @@ import React from 'react'; import {withOnyx} from 'react-native-onyx'; import PropTypes from 'prop-types'; -import {Platform, View} from 'react-native'; +import {View} from 'react-native'; import lodashGet from 'lodash/get'; import _ from 'underscore'; import {Freeze} from 'react-freeze'; @@ -216,7 +216,7 @@ class ReportScreen extends React.Component { const reportID = getReportID(this.props.route); const addWorkspaceRoomOrChatPendingAction = lodashGet(this.props.report, 'pendingFields.addWorkspaceRoom') || lodashGet(this.props.report, 'pendingFields.createChat'); const addWorkspaceRoomOrChatErrors = lodashGet(this.props.report, 'errorFields.addWorkspaceRoom') || lodashGet(this.props.report, 'errorFields.createChat'); - const screenWrapperStyle = [styles.appContent, {marginTop: this.state.viewportOffsetTop}]; + const screenWrapperStyle = [styles.appContent, styles.flex1, {marginTop: this.state.viewportOffsetTop}]; return ( this.setMenuVisibility(false)} onItemSelected={() => this.setMenuVisibility(false)} diff --git a/src/pages/home/report/withReportOrNavigateHome.js b/src/pages/home/report/withReportOrNavigateHome.js new file mode 100644 index 000000000000..5e74f65a0cb8 --- /dev/null +++ b/src/pages/home/report/withReportOrNavigateHome.js @@ -0,0 +1,59 @@ +import PropTypes from 'prop-types'; +import React, {Component} from 'react'; +import {withOnyx} from 'react-native-onyx'; +import _ from 'underscore'; +import getComponentDisplayName from '../../../libs/getComponentDisplayName'; +import Navigation from '../../../libs/Navigation/Navigation'; +import ONYXKEYS from '../../../ONYXKEYS'; +import reportPropTypes from '../../reportPropTypes'; + +export default function (WrappedComponent) { + const propTypes = { + /** The HOC takes an optional ref as a prop and passes it as a ref to the wrapped component. + * That way, if a ref is passed to a component wrapped in the HOC, the ref is a reference to the wrapped component, not the HOC. */ + forwardedRef: PropTypes.func, + + /** The report currently being looked at */ + report: reportPropTypes, + }; + + const defaultProps = { + forwardedRef: () => {}, + report: {}, + }; + + class WithReportOrNavigateHome extends Component { + componentDidMount() { + if (!_.isEmpty(this.props.report)) { + return; + } + Navigation.dismissModal(); + } + + render() { + const rest = _.omit(this.props, ['forwardedRef']); + + return ( + + ); + } + } + + WithReportOrNavigateHome.propTypes = propTypes; + WithReportOrNavigateHome.defaultProps = defaultProps; + WithReportOrNavigateHome.displayName = `withReportOrNavigateHome(${getComponentDisplayName(WrappedComponent)})`; + const withReportOrNavigateHome = React.forwardRef((props, ref) => ( + // eslint-disable-next-line react/jsx-props-no-spreading + + )); + + return withOnyx({ + report: { + key: ({route}) => `${ONYXKEYS.COLLECTION.REPORT}${route.params.reportID}`, + }, + })(withReportOrNavigateHome); +} diff --git a/src/pages/settings/AddSecondaryLoginPage.js b/src/pages/settings/AddSecondaryLoginPage.js index ac1ca13bcb08..01e60852a578 100755 --- a/src/pages/settings/AddSecondaryLoginPage.js +++ b/src/pages/settings/AddSecondaryLoginPage.js @@ -90,13 +90,14 @@ class AddSecondaryLoginPage extends Component { render() { return ( - { - if (!this.phoneNumberInputRef) { - return; - } + { + if (!this.phoneNumberInputRef) { + return; + } - this.phoneNumberInputRef.focus(); - }} + this.phoneNumberInputRef.focus(); + }} > ( - -); - -LoginKeyboardAvoidingView.propTypes = propTypes; -LoginKeyboardAvoidingView.defaultProps = defaultProps; -LoginKeyboardAvoidingView.displayName = 'LoginKeyboardAvoidingView'; - -export default LoginKeyboardAvoidingView; diff --git a/src/pages/signin/SignInPageLayout/LoginKeyboardAvoidingView/index.native.js b/src/pages/signin/SignInPageLayout/LoginKeyboardAvoidingView/index.native.js deleted file mode 100644 index 8c29e812ab36..000000000000 --- a/src/pages/signin/SignInPageLayout/LoginKeyboardAvoidingView/index.native.js +++ /dev/null @@ -1,6 +0,0 @@ -import {KeyboardAvoidingView} from 'react-native'; - -const LoginKeyboardAvoidingView = KeyboardAvoidingView; -LoginKeyboardAvoidingView.displayName = 'LoginKeyboardAvoidingView'; - -export default LoginKeyboardAvoidingView; diff --git a/src/pages/signin/SignInPageLayout/SignInPageContent.js b/src/pages/signin/SignInPageLayout/SignInPageContent.js index 56776909fe6f..2b1c3c14698a 100755 --- a/src/pages/signin/SignInPageLayout/SignInPageContent.js +++ b/src/pages/signin/SignInPageLayout/SignInPageContent.js @@ -1,9 +1,8 @@ import React from 'react'; -import {ScrollView, View} from 'react-native'; +import {ScrollView, View, KeyboardAvoidingView} from 'react-native'; import PropTypes from 'prop-types'; import {withSafeAreaInsets} from 'react-native-safe-area-context'; import styles from '../../../styles/styles'; -import * as StyleUtils from '../../../styles/StyleUtils'; import variables from '../../../styles/variables'; import ExpensifyCashLogo from '../../../components/ExpensifyCashLogo'; import Text from '../../../components/Text'; @@ -12,9 +11,9 @@ import withLocalize, {withLocalizePropTypes} from '../../../components/withLocal import SignInPageForm from '../../../components/SignInPageForm'; import compose from '../../../libs/compose'; import scrollViewContentContainerStyles from './signInPageStyles'; -import LoginKeyboardAvoidingView from './LoginKeyboardAvoidingView'; import withKeyboardState from '../../../components/withKeyboardState'; import withWindowDimensions, {windowDimensionsPropTypes} from '../../../components/withWindowDimensions'; +import * as StyleUtils from '../../../styles/StyleUtils'; const propTypes = { /** The children to show inside the layout */ @@ -58,9 +57,9 @@ const SignInPageContent = props => ( props.isSmallScreenWidth ? styles.ph5 : styles.ph4, ]} > - ( )} {props.children} - + diff --git a/src/pages/signin/SignInPageLayout/SignInPageGraphics.js b/src/pages/signin/SignInPageLayout/SignInPageGraphics.js new file mode 100644 index 000000000000..c735bc9fd283 --- /dev/null +++ b/src/pages/signin/SignInPageLayout/SignInPageGraphics.js @@ -0,0 +1,33 @@ +import {Pressable} from 'react-native'; +import React from 'react'; +import _ from 'underscore'; +import styles from '../../../styles/styles'; +import * as StyleUtils from '../../../styles/StyleUtils'; +import * as Link from '../../../libs/actions/Link'; +import SVGImage from '../../../components/SVGImage'; + +const backgroundStyle = StyleUtils.getLoginPagePromoStyle(); + +const SignInPageGraphics = () => ( + { + Link.openExternalLink(backgroundStyle.redirectUri); + }} + disabled={_.isEmpty(backgroundStyle.redirectUri)} + > + + +); + +SignInPageGraphics.displayName = 'SignInPageGraphics'; + +export default SignInPageGraphics; diff --git a/src/pages/signin/SignInPageLayout/index.js b/src/pages/signin/SignInPageLayout/index.js index ef8db9369638..42fdd6de8ade 100644 --- a/src/pages/signin/SignInPageLayout/index.js +++ b/src/pages/signin/SignInPageLayout/index.js @@ -1,14 +1,11 @@ -import _ from 'underscore'; import React from 'react'; -import {View, Pressable} from 'react-native'; +import {View} from 'react-native'; import PropTypes from 'prop-types'; import SignInPageContent from './SignInPageContent'; import withWindowDimensions, {windowDimensionsPropTypes} from '../../../components/withWindowDimensions'; -import SVGImage from '../../../components/SVGImage'; import styles from '../../../styles/styles'; -import * as StyleUtils from '../../../styles/StyleUtils'; -import * as Link from '../../../libs/actions/Link'; import variables from '../../../styles/variables'; +import SignInPageGraphics from './SignInPageGraphics'; const propTypes = { /** The children to show inside the layout */ @@ -24,40 +21,7 @@ const propTypes = { ...windowDimensionsPropTypes, }; -const backgroundStyle = StyleUtils.getLoginPagePromoStyle(); - const SignInPageLayout = (props) => { - const content = ( - - {props.children} - - ); - - const hasRedirect = !_.isEmpty(backgroundStyle.redirectUri); - - const graphicLayout = ( - { - Link.openExternalLink(backgroundStyle.redirectUri); - }} - disabled={!hasRedirect} - > - - - ); - let containerStyles = [styles.flex1, styles.signInPageInner]; let contentContainerStyles = [styles.flex1, styles.flexRow]; @@ -73,10 +37,19 @@ const SignInPageLayout = (props) => { return ( - {isLongMediumScreenWidth && graphicLayout} + {isLongMediumScreenWidth && ( + + )} - {content} - {!props.isSmallScreenWidth && !isLongMediumScreenWidth && graphicLayout} + + {props.children} + + {!props.isSmallScreenWidth && !isLongMediumScreenWidth && ( + + )} ); diff --git a/src/setup/index.js b/src/setup/index.js index b0d2d7687cc8..7cf509e1e3dd 100644 --- a/src/setup/index.js +++ b/src/setup/index.js @@ -21,6 +21,9 @@ export default function () { */ Onyx.init({ keys: ONYXKEYS, + + // Increase the cached key count so that the app works more consistently for accounts with large numbers of reports + maxCachedKeysCount: 10000, safeEvictionKeys: [ONYXKEYS.COLLECTION.REPORT_ACTIONS], captureMetrics: Metrics.canCaptureOnyxMetrics(), initialKeyStates: { diff --git a/src/stories/OptionRow.stories.js b/src/stories/OptionRow.stories.js index d8f34414678e..a3eac131f880 100644 --- a/src/stories/OptionRow.stories.js +++ b/src/stories/OptionRow.stories.js @@ -1,6 +1,8 @@ import React from 'react'; import OptionRow from '../components/OptionRow'; import * as Expensicons from '../components/Icon/Expensicons'; +import OnyxProvider from '../components/OnyxProvider'; +/* eslint-disable react/jsx-props-no-spreading */ /** * We use the Component Story Format for writing stories. Follow the docs here: @@ -43,8 +45,11 @@ export default { }, }; -// eslint-disable-next-line react/jsx-props-no-spreading -const Template = args => ; +const Template = args => ( + + + +); // Arguments can be passed to the component by binding // See: https://storybook.js.org/docs/react/writing-stories/introduction#using-args