- {% for article in section.articles %}
+ {% assign sortedArticles = section.articles | sort: 'order', 'last' | default: 999 %}
+ {% for article in sortedArticles %}
{% assign article_href = section.href | append: '/' | append: article.href %}
{% include article-card.html hub=hub.href href=article_href title=article.title platform=activePlatform %}
{% endfor %}
diff --git a/docs/articles/expensify-classic/connect-credit-cards/company-cards/Troubleshooting.md b/docs/articles/expensify-classic/connect-credit-cards/company-cards/Troubleshooting.md
index 05366a91d9fa..f94e692f5e56 100644
--- a/docs/articles/expensify-classic/connect-credit-cards/company-cards/Troubleshooting.md
+++ b/docs/articles/expensify-classic/connect-credit-cards/company-cards/Troubleshooting.md
@@ -8,6 +8,15 @@ Whether you're encountering issues related to company cards, require assistance
## How to add company cards to Expensify
You can add company credit cards under the Domain settings in your Expensify account by navigating to *Settings* > *Domain* > _Domain Name_ > *Company Cards* and clicking *Import Card/Bank* and following the prompts.
+## To Locate Missing Card Transactions in Expensify
+1. **Wait for Posting**: Bank transactions may take up to 24 hours to import into Expensify after they have "posted" at your bank. Ensure sufficient time has passed for transactions to appear.
+2. **Update Company Cards**: Go to Settings > Domains > Company Cards. Click on the card in question and click "Update" to refresh the card feed.
+3. **Reconcile Cards**: Navigate to the Reconciliation section under Settings > Domains > Company Cards. Refer to the detailed guide on how to use the [Reconciliation Dashboard](https://help.expensify.com/articles/expensify-classic/connect-credit-cards/company-cards/Reconciliation#identifying-outstanding-unapproved-expenses-using-the-reconciliation-dashboard).
+4. **Review Transactions**: Use the Reconciliation Dashboard to view all transactions within a specific timeframe. Transactions will display on the Expenses page based on their "Posted Date". If needed, uncheck the "use posted date" checkbox near the filters to view transactions based on their "Transaction Date" instead.
+5. **Address Gaps**: If there is a significant gap in transactions or if transactions are still missing, contact Expensify's Concierge or your Account Manager. They can initiate a historical data update on your card feed to ensure all transactions are properly imported.
+
+Following these steps should help you identify and resolve any issues with missing card transactions in Expensify.
+
## Known issues importing transactions
The first step should always be to "Update" your card, either from Settings > Your Account > Credit Card Import or Settings > Domain > [Domain Name] > Company Cards for centrally managed cards. If a "Fix" or "Fix card" option appears, follow the steps to fix the connection. If this fails to import your missing transactions, there is a known issue whereby some transactions will not import for certain API-based company card connections. So far this has been reported on American Express, Chase and Wells Fargo. This can be temporarily resolved by creating the expenses manually instead:
@@ -63,6 +72,24 @@ If you've answered "yes" to any of these questions, a Domain Admins need to upda
Make sure you're importing your card in the correct spot in Expensify and selecting the right bank connection. For company cards, use the master administrative credentials to import your set of cards at *Settings* > *Domains* > _Domain Name_ > *Company Cards* > *Import Card*.
Please note there are some things that cannot be bypassed within Expensify, including two-factor authentication being enabled within your bank account. This will prevent the connection from remaining stable and will need to be turned off on the bank side.
+## Why Can’t I See the Transactions Before a Certain Date?
+When importing a card into Expensify, the platform typically retrieves 30-90 days of historical transactions, depending on the card or account type. For commercial feeds, transactions cannot be imported before the bank starts sending data. If needed, banks can send backdated files, and Expensify can run a historical update upon request.
+
+Additionally, Expensify does not import transactions dated before the "start date" you specify when assigning the card. Unless transitioning from an old card to a new one to avoid duplicates, it's advisable to set the start date to "earliest possible" or leave it blank.
+
+For historical expenses that cannot be imported automatically, consider using Expensify's [company card](https://help.expensify.com/articles/expensify-classic/connect-credit-cards/company-cards/CSV-Import) or [personal card](https://help.expensify.com/articles/expensify-classic/connect-credit-cards/Personal-Credit-Cards#importing-expenses-via-a-spreadsheet) spreadsheet import method. This allows you to manually input missing transactions into the system.
+
+## Why Am I / Why Is My Employee Seeing Duplicates?
+If an employee is seeing duplicate expenses, they may have accidentally imported the card as a personal credit card as well as having the Domain Admin assign them a company card.
+
+To troubleshoot:
+- Have the employee navigate to their Settings > Your Account > Credit Card Import and confirm that their card is only listed once.
+- If the card is listed twice, delete the entry without the "padlock" icon.
+
+**Important:** Deleting a duplicate card will delete all unapproved expenses from that transaction feed. Transactions associated with the remaining card will not be affected. If receipts were attached to those transactions, they will still be on the Expenses page, and the employee can click to SmartScan them again.
+
+Duplicate expenses might also occur if you recently unassigned and reassigned a company card with an overlapping start date. If this is the case and expenses on the “new” copy have not been submitted, you can unassign the card again and reassign it with a more appropriate start date. This action will delete all unsubmitted expenses from the new card feed.
+
## What are the most reliable bank connections in Expensify?*
All bank connections listed below are extremely reliable, but we recommend transacting with the Expensify Visa® Commercial Card. It also offers daily and monthly settlement, unapproved expense limits, realtime compliance for secure and efficient spending, and cash back on all US purchases. [Click here to learn more about the Expensify Card](https://use.expensify.com/company-credit-card).
diff --git a/docs/articles/expensify-classic/integrations/HR-integrations/ADP.md b/docs/articles/expensify-classic/connections/ADP.md
similarity index 100%
rename from docs/articles/expensify-classic/integrations/HR-integrations/ADP.md
rename to docs/articles/expensify-classic/connections/ADP.md
diff --git a/docs/articles/expensify-classic/integrations/travel-integrations/Additional-Travel-Integrations.md b/docs/articles/expensify-classic/connections/Additional-Travel-Integrations.md
similarity index 100%
rename from docs/articles/expensify-classic/integrations/travel-integrations/Additional-Travel-Integrations.md
rename to docs/articles/expensify-classic/connections/Additional-Travel-Integrations.md
diff --git a/docs/articles/expensify-classic/integrations/travel-integrations/Egencia.md b/docs/articles/expensify-classic/connections/Egencia.md
similarity index 100%
rename from docs/articles/expensify-classic/integrations/travel-integrations/Egencia.md
rename to docs/articles/expensify-classic/connections/Egencia.md
diff --git a/docs/articles/expensify-classic/integrations/travel-integrations/Global-VaTax.md b/docs/articles/expensify-classic/connections/Global-VaTax.md
similarity index 100%
rename from docs/articles/expensify-classic/integrations/travel-integrations/Global-VaTax.md
rename to docs/articles/expensify-classic/connections/Global-VaTax.md
diff --git a/docs/articles/expensify-classic/integrations/other-integrations/Google-Apps-SSO.md b/docs/articles/expensify-classic/connections/Google-Apps-SSO.md
similarity index 100%
rename from docs/articles/expensify-classic/integrations/other-integrations/Google-Apps-SSO.md
rename to docs/articles/expensify-classic/connections/Google-Apps-SSO.md
diff --git a/docs/articles/expensify-classic/integrations/HR-integrations/Greenhouse.md b/docs/articles/expensify-classic/connections/Greenhouse.md
similarity index 100%
rename from docs/articles/expensify-classic/integrations/HR-integrations/Greenhouse.md
rename to docs/articles/expensify-classic/connections/Greenhouse.md
diff --git a/docs/articles/expensify-classic/integrations/HR-integrations/Gusto.md b/docs/articles/expensify-classic/connections/Gusto.md
similarity index 100%
rename from docs/articles/expensify-classic/integrations/HR-integrations/Gusto.md
rename to docs/articles/expensify-classic/connections/Gusto.md
diff --git a/docs/articles/expensify-classic/integrations/accounting-integrations/Indirect-Accounting-Integrations.md b/docs/articles/expensify-classic/connections/Indirect-Accounting-Integrations.md
similarity index 100%
rename from docs/articles/expensify-classic/integrations/accounting-integrations/Indirect-Accounting-Integrations.md
rename to docs/articles/expensify-classic/connections/Indirect-Accounting-Integrations.md
diff --git a/docs/articles/expensify-classic/integrations/travel-integrations/Lyft.md b/docs/articles/expensify-classic/connections/Lyft.md
similarity index 100%
rename from docs/articles/expensify-classic/integrations/travel-integrations/Lyft.md
rename to docs/articles/expensify-classic/connections/Lyft.md
diff --git a/docs/articles/expensify-classic/integrations/travel-integrations/Navan.md b/docs/articles/expensify-classic/connections/Navan.md
similarity index 100%
rename from docs/articles/expensify-classic/integrations/travel-integrations/Navan.md
rename to docs/articles/expensify-classic/connections/Navan.md
diff --git a/docs/articles/expensify-classic/integrations/HR-integrations/QuickBooks-Time.md b/docs/articles/expensify-classic/connections/QuickBooks-Time.md
similarity index 100%
rename from docs/articles/expensify-classic/integrations/HR-integrations/QuickBooks-Time.md
rename to docs/articles/expensify-classic/connections/QuickBooks-Time.md
diff --git a/docs/articles/expensify-classic/integrations/HR-integrations/Rippling.md b/docs/articles/expensify-classic/connections/Rippling.md
similarity index 100%
rename from docs/articles/expensify-classic/integrations/HR-integrations/Rippling.md
rename to docs/articles/expensify-classic/connections/Rippling.md
diff --git a/docs/articles/expensify-classic/integrations/travel-integrations/TravelPerk.md b/docs/articles/expensify-classic/connections/TravelPerk.md
similarity index 100%
rename from docs/articles/expensify-classic/integrations/travel-integrations/TravelPerk.md
rename to docs/articles/expensify-classic/connections/TravelPerk.md
diff --git a/docs/articles/expensify-classic/integrations/travel-integrations/Uber.md b/docs/articles/expensify-classic/connections/Uber.md
similarity index 90%
rename from docs/articles/expensify-classic/integrations/travel-integrations/Uber.md
rename to docs/articles/expensify-classic/connections/Uber.md
index 16da0c0caa5b..213a90b6d288 100644
--- a/docs/articles/expensify-classic/integrations/travel-integrations/Uber.md
+++ b/docs/articles/expensify-classic/connections/Uber.md
@@ -22,3 +22,5 @@ Now, every time you use Uber for Business – be it for rides or meals – the r
![Uber integration set up steps: Connecting your account](https://help.expensify.com/assets/images/Uber1.png){:width="100%"}
![Uber integration set up steps: Selecting Expensify](https://help.expensify.com/assets/images/Uber2.png){:width="100%"}
+
+To disconnect Uber and Expensify, simply follow the above path and select Disconnect on the Expensify option.
diff --git a/docs/articles/expensify-classic/integrations/HR-integrations/Workday.md b/docs/articles/expensify-classic/connections/Workday.md
similarity index 100%
rename from docs/articles/expensify-classic/integrations/HR-integrations/Workday.md
rename to docs/articles/expensify-classic/connections/Workday.md
diff --git a/docs/articles/expensify-classic/integrations/HR-integrations/Zenefits.md b/docs/articles/expensify-classic/connections/Zenefits.md
similarity index 100%
rename from docs/articles/expensify-classic/integrations/HR-integrations/Zenefits.md
rename to docs/articles/expensify-classic/connections/Zenefits.md
diff --git a/docs/articles/expensify-classic/connections/accelo/Accelo-Troubleshooting.md b/docs/articles/expensify-classic/connections/accelo/Accelo-Troubleshooting.md
new file mode 100644
index 000000000000..fd0a6ca59069
--- /dev/null
+++ b/docs/articles/expensify-classic/connections/accelo/Accelo-Troubleshooting.md
@@ -0,0 +1,7 @@
+---
+title: Accelo Troubleshooting
+description: Accelo Troubleshooting
+order: 3
+---
+
+# Coming soon
diff --git a/docs/articles/expensify-classic/connections/accelo/Configure-Accelo.md b/docs/articles/expensify-classic/connections/accelo/Configure-Accelo.md
new file mode 100644
index 000000000000..a71671ad8da0
--- /dev/null
+++ b/docs/articles/expensify-classic/connections/accelo/Configure-Accelo.md
@@ -0,0 +1,55 @@
+---
+title: Configure Accelo
+description: Configure Accelo's export and coding settings.
+order: 2
+---
+
+# Configure Accelo
+1. Log into Accelo
+2. Navigate to the Integrations page
+3. Select the **Expensify** tab
+4. Enter Expensify Integration Server Credentials
+5. Provide your Expensify Integration Server’s Partner User ID and Partner User Secret
+6. Click “Save” to complete the setup
+
+## Upload Accelo Project Codes as Tags in Expensify
+Once you have connected Accelo to Expensify, the next step is to upload your Accelo Project Codes as Tags in Expensify:
+1. Head to to **Settings** > **Workspaces** > **Group** > _[Workspace Name]_ > **Tags**
+2. Choose to upload a CSV
+3. If you also integrate with Xero or QuickBooks Online, you must upload your Project Codes by appending your tags
+ - Go to **Settings** > **Workspaces** > **Group** > _[Workspace Name]_ > **Tags**
+ - Click on **Append a custom tag list from a CSV** to upload your Project Codes via a CSV
+
+## Information sync between Expensify and Accelo
+The Accelo integration does a one-way sync, which means it brings expenses from Expensify into Accelo. When this happens, it transfers specific information from Expensify expenses to Accelo:
+
+| Expensify | Accelo |
+|---------------------|-----------------------|
+| Comment | Title |
+| Date | Date Incurred |
+| Category | Type |
+| Tags | Against (relevant Project, Ticket or Retainer) |
+| Distance (mileage) | Quantity |
+| Hours (time expenses) | Quantity |
+| Amount | Purchase Price and Sale Price |
+| Reimbursable? | Reimbursable? |
+| Billable? | Billable? |
+| Receipt | Attachment |
+| Tax Rate | Tax Code |
+| Attendees | Submitted By |
+
+## Expense Status
+The status of your expense report in Expensify is also synced in Accelo.
+
+| Expensify Report Status | Accelo Expense Status |
+|-------------------------|-----------------------|
+| Open | Submitted |
+| Submitted | Submitted |
+| Approved | Approved |
+| Reimbursed | Approved |
+| Rejected | Declined |
+| Archived | Approved |
+| Closed | Approved |
+
+## Importing expenses from Expensify to Accelo
+Accelo checks Expensify for new expenses once every hour. It automatically adds expenses that have been created or changed since the connection's last sync.
diff --git a/docs/articles/expensify-classic/connections/accelo/Connect-To-Accelo.md b/docs/articles/expensify-classic/connections/accelo/Connect-To-Accelo.md
new file mode 100644
index 000000000000..bdb21ceab9c0
--- /dev/null
+++ b/docs/articles/expensify-classic/connections/accelo/Connect-To-Accelo.md
@@ -0,0 +1,26 @@
+---
+title: Accelo
+description: Help doc for Accelo integration
+order: 1
+---
+
+
+# Overview
+Accelo is a cloud-based business management platform tailored to professional service companies. It enables seamless integration with Expensify, allowing users to effortlessly import expense details from Expensify into Accelo, associating them with the corresponding project, ticket, or retainer within the system.
+
+**A couple of notes before connecting Accelo to Expensify:**
+- You must have administrator access to Accelo
+- You need to be a workspace admin in Expensify
+
+# Connect to Accelo
+To connect Expensify to Accelo, follow these steps:
+1. Open the [Expensify Integration Server](https://www.expensify.com/tools/integrations/)
+2. Copy your **Partner User ID** and **Partner User Secret**
+ - If you haven’t previously set up the integration server, follow the prompt on the screen and select **click here**.
+ - If the integration server is already set up, select **Click here to regenerate your Partner User Secret to generate a new code**.
+3. Copy the Partner User ID and Partner User Secret and store them in a secure location.
+4. In Accelo, go to the Integrations page and select the **Expensify** tab.
+5. Enter the Expensify Partner User ID and Partner User Secret.
+ - (Optional) If you currently use the Integration Server for another integration, open that platform and update the secret to the newly generated Partner User Secret
+6. Click **Save**.
+7. Connection Established: Expensify is now successfully connected to Accelo!
diff --git a/docs/articles/expensify-classic/connections/certinia/Certinia-Troubleshooting.md b/docs/articles/expensify-classic/connections/certinia/Certinia-Troubleshooting.md
new file mode 100644
index 000000000000..82a2762ee99a
--- /dev/null
+++ b/docs/articles/expensify-classic/connections/certinia/Certinia-Troubleshooting.md
@@ -0,0 +1,6 @@
+---
+title: Certinia Troubleshooting
+description: Certinia Troubleshooting
+---
+
+# Coming soon
diff --git a/docs/articles/expensify-classic/connections/certinia/Configure-Certinia.md b/docs/articles/expensify-classic/connections/certinia/Configure-Certinia.md
new file mode 100644
index 000000000000..3f9172baaf9e
--- /dev/null
+++ b/docs/articles/expensify-classic/connections/certinia/Configure-Certinia.md
@@ -0,0 +1,91 @@
+---
+title: Configure Certinia
+description: Configure Certinia's export, coding, and advanced settings.
+order: 2
+---
+After Certinia and Expensify are connected, head to **Settings > Workspaces > [Workspace Name] > Connections > Certinia > Configure** to configure the export, coding, and advanced settings for the connection.
+
+# Step 1: Configure Export Settings
+## Preferred Exporter
+The preferred exporter is the user who will be the main exporter of reports. This person will receive the notifications for errors.
+
+## Payable Invoice Status and Date
+Reports can be exported as Complete or In Progress, using the date of last expense, submitted date, or exported date.
+
+## Reimbursable and non-reimbursable exports
+Both reimbursable and non-reimbursable reports are exported as payable invoices (FFA) or expense reports (PSA/SRP). If you have both Reimbursable and Non-Reimbursable expenses on a single report, Expensify will create a separate payable invoice/expense report for each type.
+
+## Default Vendor (FFA)
+Choose from the full list of vendors from your Certinia FFA account. The amount will be applied to the non-reimbursable payable invoices.
+
+# Step 2: Configure Coding Settings
+## Company
+Select which FinancialForce company to import from/export to.
+
+## Chart of Accounts (FFA)
+Prepaid Expense Type and Profit & Loss accounts are imported to be used as categories on each expense.
+
+## Expense Type GLA Mappings (PSA/SRP)
+Your Expense Type GLA Mappings are enabled in Expensify to use as categories on each expense when using both PSA and SRP; however, PSA will not import or export categories, while SRP will.
+
+## Dimensions (FFA)
+We import four dimension levels and each has three options to select from:
+
+* Do not map: FinancialForce defaults will apply to the payable invoice, without importing it into Expensify
+* Tags: These are shown in the Tag section of your workspace, and employees can select them on each expense created
+* Report fields: These will show in the Reports section of your workspace. Employees can select one to be applied at the header level, i.e., the entire report.
+
+## Projects, Assignments, or Projects & Assignments (PSA/SRP)
+These can be imported as tags with **Milestones** being optional. When selecting to import only projects, we will derive the account from the project. If an assignment is selected, we will derive both the account and project from the assignment.
+
+**Note:** If you are using a project without an assignment, the box **Allow Expenses Without Assignment** must be checked on the project in FinancialForce.
+
+## Tax
+Import tax rates from Certinia to apply to expenses.
+
+# Step 3: Configure Advanced Settings
+## Auto Sync
+Auto Sync in Certinia performs daily updates to your coding. Additionally, it automatically exports reports after they receive final approval. For Non-Reimbursable expenses, syncing happens immediately upon final approval of the report. In the case of Reimbursable expenses, syncing occurs as soon as the report is reimbursed or marked as reimbursed.
+
+## Export tax as non-billable
+When exporting Billable expenses, this dictates whether you will also bill the tax component to your clients/customers.
+
+## Multi-Currency in Certinia PSA/SRP
+When exporting to Certinia PSA/SRP, if employees are submitting expenses in more than one original currency, you may see up to three different currencies on the expense report in Certinia.
+* Summary Total Reimbursement Amount: this currency is derived from the currency of the project selected on the expense.
+* Amount field on the Expense line: this currency is derived from the Expensify workspace default report currency.
+* Reimbursable Amount on the Expense line: this currency is derived from the currency of the resource with an email matching the report submitter.
+
+{% include faq-begin.md %}
+
+## What happens if the report can’t be exported to Certinia?
+
+The following happens if a report isn't exported:
+- The preferred exporter will receive an email outlining the issue and any specific error messages
+- Any error messages preventing the export from taking place will be recorded in the report’s history
+- The report will be listed in the exporter’s Expensify Inbox as awaiting export.
+
+## If I enable Auto Sync, what happens to existing approved and reimbursed reports?
+
+Enabling Auto-Sync afterward won't affect existing approved or reimbursed reports. For any approved reports that haven't been exported to Certinia, you'll need to either manually export them or mark them as manually entered.
+
+## How do I export tax?
+
+Tax rates are created in Expensify through the tax tracking feature under **Settings** > **Workspaces** > **Groups** > _[Workspace Name]_ > **Tax**. We export the tax amount calculated on the expenses.
+
+## How do reports map to Payable Invoices in Certinia FFA?
+
+Reports map to FFA as follows:
+- Account Name - Account associated with Expensify submitter’s email address
+- Reference 1 - Report URL
+- Invoice Description - Report title
+
+## How do reports map to Expense Reports in Certinia PSA/SRP?
+
+Reports map to PSA/SRP as follows:
+- Expense report name - Report title
+- Resource - User associated with Expensify submitter’s email address
+- Description - Report URL
+- Approver - Expensify report approver
+
+{% include faq-end.md %}
diff --git a/docs/articles/expensify-classic/connections/certinia/Connect-To-Certinia.md b/docs/articles/expensify-classic/connections/certinia/Connect-To-Certinia.md
new file mode 100644
index 000000000000..3d9c13449934
--- /dev/null
+++ b/docs/articles/expensify-classic/connections/certinia/Connect-To-Certinia.md
@@ -0,0 +1,40 @@
+---
+title: Certinia
+description: Connect Expensify to Certinia
+order: 1
+---
+[Certinia](https://use.expensify.com/financialforce) (formerly known as FinancialForce) is a cloud-based software solution that provides a range of financial management and accounting applications built on the Salesforce platform. There are two versions: PSA/SRP and FFA -- Expensify supports connections to both.
+
+**Before connecting to Certinia:**
+Install the Expensify bundle in Certinia using the relevant installer:
+- [PSA/SRP](https://login.salesforce.com/packaging/installPackage.apexp?p0=04t2M000002J0BHD%252Fpackaging%252FinstallPackage.apexp%253Fp0%253D04t2M000002J0BH)
+- [FFA](https://login.salesforce.com/packaging/installPackage.apexp?p0=04t4p000001UQVj)
+- **Check the contact details in Certinia:**
+ - Confirm there's a user and contact in Certinia that matches your main email in Expensify
+ - Then, create contacts for all employees who will be sending expense reports
+ - Be sure that each contact's email matches the email address associated with their Expensify account
+
+# Connect to Certinia
+1. Go to **Settings > Workspaces > Groups > [Workspace Name] > Connections** in Expensify
+2. Click **Create a New Certinia (FinancialForce) Connection**
+3. Log into your Certinia account
+4. Follow the prompts until the connection between Certinia and Expensify is established
+
+### If you use PSA/SRP
+- Each report approver needs both a User and a Contact
+- The user does not need a SalesForce license
+
+Then, run through the following steps before connecting to Expensify:
+1. Set permission controls in Certinia for your user for each contact/resource
+ - Go to Permission Controls
+ - Create a new permission control
+ - Set yourself (exporter) as the user
+ - Select the resource (report submitter)
+ - Grant all available permissions
+2. Set permissions on any project you are exporting to
+ - Go to **Projects** > _select a project_ > **Project Attributes** > **Allow Expenses Without Assignment**
+ - Select the project > **Edit**
+ - Under the Project Attributes section, check **Allow Expenses Without Assignment**
+3. Set up Expense Types (categories in Expensify - _SRP only_)
+ - Go to **Main Menu** > _+ symbol_ > **Expense Type GLA Mappings**
+ - Click **New** to add new mappings
diff --git a/docs/articles/expensify-classic/integrations/accounting-integrations/NetSuite.md b/docs/articles/expensify-classic/connections/netsuite/Configure-Netsuite.md
similarity index 73%
rename from docs/articles/expensify-classic/integrations/accounting-integrations/NetSuite.md
rename to docs/articles/expensify-classic/connections/netsuite/Configure-Netsuite.md
index ee116f65a398..f926792ffd1f 100644
--- a/docs/articles/expensify-classic/integrations/accounting-integrations/NetSuite.md
+++ b/docs/articles/expensify-classic/connections/netsuite/Configure-Netsuite.md
@@ -1,136 +1,13 @@
---
-title: NetSuite
-description: Connect and configure NetSuite directly to Expensify.
+title: Configure Netsuite
+description: Configure NetSuite's export, coding, and advanced settings.
---
-# Overview
-Expensify's seamless integration with NetSuite enables you to streamline your expense reporting process. This integration allows you to automate the export of reports, tailor your coding preferences, and tap into NetSuite's array of advanced features. By correctly configuring your NetSuite settings in Expensify, you can leverage the connection's settings to automate most of the tasks, making your workflow more efficient.
+By correctly configuring your NetSuite settings in Expensify, you can leverage the connection's settings to automate most of the tasks, making your workflow more efficient.
-Before getting started with connecting NetSuite to Expensify, there are a few things to note:
-- Token-based authentication works by ensuring that each request to NetSuite is accompanied by a signed token which is verified for authenticity
-- You must be able to login to NetSuite as an administrator to initiate the connection
-- You must have a Control Plan in Expensify to integrate with NetSuite
-- Employees don’t need NetSuite access or a NetSuite license to submit expense reports since the connection is managed by the Workspace Admin
-- Each NetSuite subsidiary will need its own Expensify Group Workspace
-- Ensure that your workspace's report output currency setting matches the NetSuite Subsidiary default currency
-- Make sure your page size is set to 1000 for importing your customers and vendors. Go to Setup > Integration > Web Services Preferences > 'Search Page Size'
-
-# How to Connect to NetSuite
-
-## Step 1: Install the Expensify Bundle in NetSuite
-
-1. While logged into NetSuite as an administrator, go to Customization > SuiteBundler > Search & Install Bundles, then search for "Expensify"
-2. Click on the Expensify Connect bundle (Bundle ID 283395)
-3. Click Install
-4. If you already have the Expensify Connect bundle installed, head to _Customization > SuiteBundler > Search & Install Bundles > List_ and update it to the latest version
-5. Select **Show on Existing Custom Forms** for all available fields
-
-## Step 2: Enable Token-Based Authentication
-
-1. Head to _Setup > Company > Enable Features > SuiteCloud > Manage Authentication_
-2. Make sure “Token Based Authentication” is enabled
-3. Click **Save**
-
-## Step 3: Add Expensify Integration Role to a User
-
-The user you select must have access to at least the permissions included in the Expensify Integration Role, but they're not required to be an Admin.
-1. In NetSuite, head to Lists > Employees, and find the user you want to add the Expensify Integration role to
-2. Click _Edit > Access_, then find the Expensify Integration role in the dropdown and add it to the user
-3. Click **Save**
-
-Remember that Tokens are linked to a User and a Role, not solely to a User. It's important to note that you cannot establish a connection with tokens using one role and then switch to another role afterward. Once you've initiated a connection with tokens, you must continue using the same token/user/role combination for all subsequent sync or export actions.
-
-## Step 4: Create Access Tokens
-
-1. Using Global Search in NetSuite, enter “page: tokens”
-2. Click **New Access Token**
-3. Select Expensify as the application (this must be the original Expensify integration from the bundle)
-4. Select the role Expensify Integration
-5. Press **Save**
-6. Copy and Paste the token and token ID to a saved location on your computer (this is the only time you will see these details)
-
-## Step 5: Confirm Expense Reports are Enabled in NetSuite.
-
-Enabling Expense Reports is required as part of Expensify's integration with NetSuite:
-1. Logged into NetSuite as an administrator, go to Setup > Company > Enable Features > Employees
-2. Confirm the checkbox next to Expense Reports is checked
-3. If not, click the checkbox and then Save to enable Expense Reports
-
-## Step 6: Confirm Expense Categories are set up in NetSuite.
-
-Once Expense Reports are enabled, Expense Categories can be set up in NetSuite. Expense Categories are an alias for General Ledger accounts for coding expenses.
-
-1. Logged into NetSuite as an administrator, go to Setup > Accounting > Expense Categories (a list of Expense Categories should show)
-2. If no Expense Categories are visible, click **New** to create new ones
-
-## Step 7: Confirm Journal Entry Transaction Forms are Configured Properly
-
-1. Logged into NetSuite as an administrator, go to _Customization > Forms > Transaction Forms_
-2. Click **Customize** or **Edit** next to the Standard Journal Entry form
-3. Then, click Screen Fields > Main. Please verify the "Created From" label has "Show" checked and the Display Type is set to Normal
-4. Click the sub-header Lines and verify that the "Show" column for "Receipt URL" is checked
-5. Go to _Customization > Forms > Transaction Forms_ and ensure all other transaction forms with the journal type have this same configuration
-
-## Step 8: Confirm Expense Report Transaction Forms are Configured Properly
-
-1. Logged into NetSuite as an administrator, go to _Customization > Forms > Transaction Forms_
-2. Click **Customize** or **Edit** next to the Standard Expense Report form, then click **Screen Fields > Main**
-3. Verify the "Created From" label has "Show" checked and the Display Type is set to Normal
-4. Click the second sub-header, Expenses, and verify that the 'Show' column for 'Receipt URL' is checked
-5. Go to _Customization > Forms > Transaction Forms_ and ensure all other transaction forms with the expense report type have this same configuration
-
-## Step 9: Confirm Vendor Bill Transactions Forms are Configured Properly
-
-1. Logged into NetSuite as an administrator, go to _Customization > Forms > Transaction Forms_
-2. Click **Customize** or **Edit** next to your preferred Vendor Bill form
-3. Then, click _Screen Fields > Main_ and verify that the "Created From" label has "Show" checked and that Departments, Classes, and Locations have the "Show" label unchecked
-4. Under the Expenses sub-header (make sure to click the "Expenses" sub-header at the very bottom and not "Expenses & Items"), ensure "Show" is checked for Receipt URL, Department, Location, and Class
-5. Go to _Customization > Forms > Transaction Forms_ and provide all other transaction forms with the vendor bill type have this same configuration
-
-## Step 10: Confirm Vendor Credit Transactions Forms are Configured Properly
-
-1. While logged in as an administrator, go to _Customization > Forms > Transaction Forms_
-2. Click **Customize** or **Edit** next to your preferred Vendor Credit form, then click _Screen Fields > Main_ and verify that the "Created From" label has "Show" checked and that Departments, Classes, and Locations have the "Show" label unchecked
-3. Under the Expenses sub-header (make sure to click the "Expenses" sub-header at the very bottom and not "Expenses & Items"), ensure "Show" is checked for Receipt URL, Department, Location, and Class
-4. Go to _Customization > Forms > Transaction Forms_ and ensure all other transaction forms with the vendor credit type have this same configuration
-
-## Step 11: Set up Tax Groups (only applicable if tracking taxes)
-
-Expensify imports NetSuite Tax Groups (not Tax Codes), which you can find in NetSuite under _Setup > Accounting > Tax Groups_.
-
-Tax Groups are an alias for Tax Codes in NetSuite and can contain one or more Tax Codes (Please note: for UK and Ireland subsidiaries, please ensure your Tax Groups do not have more than one Tax Code). We recommend naming Tax Groups so your employees can easily understand them, as the name and rate will be displayed in Expensify.
-
-Before importing NetSuite Tax Groups into Expensify:
-1. Create your Tax Groups in NetSuite by going to _Setup > Accounting > Tax Groups_
-2. Click **New**
-3. Select the country for your Tax Group
-4. Enter the Tax Name (this is what employees will see in Expensify)
-5. Select the subsidiary for this Tax Group
-6. Select the Tax Code from the table you wish to include in this Tax Group
-7. Click **Add**
-8. Click **Save**
-9. Create one NetSuite Tax Group for each tax rate you want to show in Expensify
-
-Ensure Tax Groups can be applied to expenses by going to _Setup > Accounting > Set Up Taxes_ and setting the Tax Code Lists Include preference to "Tax Groups And Tax Codes" or "Tax Groups Only."
-
-If this field does not display, it’s not needed for that specific country.
-
-## Step 12: Connect Expensify and NetSuite
-
-1. Log into Expensify as a Policy Admin and go to **Settings > Workspaces > _[Workspace Name]_ > Connections > NetSuite**
-2. Click **Connect to NetSuite**
-3. Enter your Account ID (Account ID can be found in NetSuite by going to _Setup > Integration > Web Services Preferences_)
-4. Then, enter the token and token secret
-5. Click **Connect to NetSuite**
-
-From there, the NetSuite connection will sync, and the configuration dialogue box will appear.
-
-Please note that you must create the connection using a NetSuite account with the Expensify Integration role
-
-Once connected, all reports exported from Expensify will be generated in NetSuite using SOAP Web Services (the term NetSuite employs when records are created through the integration).
-
-# How to Configure Export Settings
+# Step 1: Configure Export Settings
There are numerous options for exporting Expensify reports to NetSuite. Let's explore how to configure these settings to align with your business needs.
+
To access these settings, head to **Settings > Workspace > Group > Connections** and select the **Configure** button.
## Export Options
@@ -206,9 +83,9 @@ Select the Accounts Receivable account you want your Invoice Reports to export.
### Default Vendor Bills
-The list of vendors will be available in the dropdown when selecting the option to export non-reimbursable expenses as vendor bills.
+When selecting the option to export non-reimbursable expenses as vendor bills, the list of vendors will be available in the dropdown menu.
-# How to Configure Coding Settings
+# Step 2: Configure Coding Settings
The Coding tab is where NetSuite information is configured in Expensify, which allows employees to code expenses and reports accurately. There are several coding options in NetSuite. Let’s go over each of those below.
@@ -313,7 +190,7 @@ If configuring Custom Segments as Report Fields, use the Field ID on the Transac
If configuring Custom Segments as Tags, use the Field ID on the Transaction Columns tab (under _Custom Segments > Transaction Columns_).
Lastly, head over to Expensify and do the following:
-1. Navigate to **Settings > Workspace > Group > [Workspace Name]_ > Connections > Configure > Coding tab**
+1. Navigate to **Settings > Workspace > Group > [Workspace Name] > Connections > Configure > Coding tab**
2. Choose how to import Custom Records (Report Fields or Tags)
3. Fill out the three fields (the name or label of the record, Internal ID, Transaction Column ID)
4. Click **Submit**
@@ -328,7 +205,7 @@ To add Custom Lists to your workspace, you’ll need to locate two fields in Net
**To find the record:**
1. Log into Expensify
-2. Head to **Settings > Workspace > Group > _[Workspace Name]_ > Connections > Configure > Coding tab**
+2. Head to **Settings > Workspace > Group > [Workspace Name] > Connections > Configure > Coding tab**
3. The name of the record will be populated in a dropdown list
The name of the record will populate in a dropdown list. If you don't see the one you are looking for, click **Refresh Custom List Options**.
@@ -339,14 +216,14 @@ The name of the record will populate in a dropdown list. If you don't see the on
3. Open the option that is holding the record to get the ID
Lastly, head over to Expensify, and do the following:
-1. Navigate to **Settings > Workspaces > Group > _[Workspace Name]_ > Connections > Configure > Coding tab**
+1. Navigate to **Settings > Workspaces > Group > [Workspace Name] > Connections > Configure > Coding tab**
2. Choose how to import Custom Lists (Report Fields or Tags)
3. Enter the ID in Expensify in the configuration screen
4. Click **Submit**
From there, you should see the values for the Custom Lists under the Tag or Report Field settings in Expensify.
-# How to Configure Advanced Settings
+# Step 3: Configure Advanced Settings
The NetSuite integration’s advanced configuration settings are accessed under **Settings > Workspaces > Group > _[Workspace Name]_ > Connections > NetSuite > Configure > Advanced tab**.
@@ -384,13 +261,13 @@ Besides inviting employees, you can also establish an approval process in NetSui
By doing this, the Approval Workflow in Expensify will automatically follow the same rules as NetSuite, typically starting with Manager Approval.
-- **Basic Approval:** A single level of approval, where all users submit directly to a Final Approver. The Final Approver defaults to the workspace owner but can be edited on the people page.
+- **Basic Approval:** This is a single level of approval, where all users submit directly to a Final Approver. The Final Approver defaults to the workspace owner but can be edited on the people page.
- **Manager Approval (default):** Two levels of approval route reports first to an employee's NetSuite expense approver or supervisor, and second to a workspace-wide Final Approver. By NetSuite convention, Expensify will map to the supervisor if no expense approver exists. The Final Approver defaults to the workspace owner but can be edited on the people page.
- **Configure Manually:** Employees will be imported, but all levels of approval must be manually configured on the workspace's People settings page. If you enable this setting, it’s recommended you review the newly imported employees and managers on the **Settings > Workspaces > Group > _[Workspace Name]_ > People page**. You can set a user role for each new employee and enforce an approval workflow.
## Automatically Create Employees/Vendors
-With this feature enabled, Expensify will automatically create a new employee or vendor (if one doesn’t already exist) from the email of the report submitter in NetSuite.
+With this feature enabled, Expensify will automatically create a new employee or vendor (if one doesn’t already exist) from the report submitter's email in NetSuite.
## Export Foreign Currency Amount
@@ -430,13 +307,12 @@ If you do not wish to use Approval Routing in NetSuite, go to _Setup > Accountin
When exporting invoices, once marked as Paid, the payment is marked against the account selected after enabling the Collection Account setting.
-# Deep Dive
-
+# Additional Settings
## Categories
You can use the Auto-Categorization feature so that expenses are automatically categorized.
-To set Category Rules (e.g., receipt requirements or comments), go to the categories page in the workspace under **Settings > Workspaces > _[Workspace Name]_ > Categories**.
+To set Category Rules (e.g., receipt requirements or comments), go to the categories page in the workspace under **Settings > Workspaces > [Workspace Name] > Categories**.
With this setting enabled, when an Expense Category updates in NetSuite, it will update in Expensify automatically.
@@ -448,7 +324,7 @@ NetSuite's company card feature simplifies exporting reimbursable and non-reimbu
2. **Default Accounts Payable (A/P) Account:** Expense reports enable you to set a default A/P account for export on your subsidiary record. Unlike vendor bills, where the A/P account defaults to the last selected account, the expense report export option allows you to establish a default A/P account.
3. **Mix Reimbursable and Non-Reimbursable Expenses:** You can freely mix reimbursable and non-reimbursable expenses without categorizing them in NetSuite after export. NetSuite's corporate card feature automatically categorizes expenses into the correct GL accounts, ensuring a neat and organized GL impact.
-#### Let’s go over an example!
+**Let’s go over an example!**
Consider an expense report with one reimbursable and one non-reimbursable expense. Each needs to be exported to different accounts and expense categories.
@@ -456,7 +332,7 @@ In NetSuite, you can quickly identify the non-reimbursable expense marked as a c
Furthermore, each expense is categorized according to your selected expense category.
-You'll need to set up default corporate cards in NetSuite to use the expense report option for your corporate card expenses.
+To use the expense report option for your corporate card expenses, you'll need to set up default corporate cards in NetSuite.
For non-reimbursable expenses, choose the appropriate card on the subsidiary record. You can find the default in your accounting preferences if you're not using a OneWorld account.
@@ -545,7 +421,7 @@ When exporting to NetSuite, we match the recipient's email address on the invoic
Once exported, the invoice will appear in the Accounts Receivable account you selected during your NetSuite Export configuration.
-### Updating an Invoice to paid
+### Updating the status of an invoice to "paid"
When you mark an invoice as "Paid" in Expensify, this status will automatically update in NetSuite. Similarly, if the invoice is marked as "Paid" in NetSuite, it will sync with Expensify. The payment will be reflected in the Collection account specified in your Advanced Settings Configuration.
@@ -562,10 +438,6 @@ Send these two files to your Account Manager or Concierge so we can continue tro
{% include faq-begin.md %}
-## What type of Expensify plan is required for connecting to NetSuite?
-
-You need a group workspace on a Control Plan to integrate with NetSuite.
-
## How does Auto Sync work with reimbursed reports?
If a report is reimbursed via ACH or marked as reimbursed in Expensify and then exported to NetSuite, the report is automatically marked as paid in NetSuite during the next sync.
@@ -574,6 +446,24 @@ If a report is exported to NetSuite and then marked as paid in NetSuite, the rep
## If I enable Auto Sync, what happens to existing approved and reimbursed reports?
-If you previously had Auto Sync disabled but want to allow that feature to be used going forward, you can safely turn on Auto Sync without affecting existing reports. Auto Sync will only take effect for reports created after enabling that feature.
+If you previously had Auto Sync disabled but want to allow that feature to be used going forward, you can safely turn it on without affecting existing reports. Auto Sync will only take effect for reports created after enabling that feature.
+
+## Why are some of my customers not importing from NetSuite?
+
+If only part of your customer list is importing from NetSuite to Expensify, ensure your page size is set to 1000 for importing customers and vendors:
+1. Navigate to **Setup > Integration > Web Services Preferences > Search Page Size**
+2. Adjust this setting to 1000
+3. Sync your connection again under **Settings > Workspaces > Group > Workspace Name > Connections**
+
+Additionally, ensure the "Company Name" field is completed for each customer profile; otherwise, they won't import into the Group Workspace.
+
+## Why aren't all my Categories pulling into Expensify from NetSuite?
+
+If you're having trouble importing your Categories, you'll want to start by checking that they are set up in NetSuite as actual Expense Categories, not General Ledger accounts:
+- Log into NetSuite as an administrator and go to **Setup > Accounting > Expense Categories**
+- A list of Expense Categories should be available
+- If no Expense Categories are visible click on "New" to create new Expense Categories
+
+If you have confirmed that your categories are set as Expense Categories in NetSuite and they still aren't importing to Expensify, make sure that the subsidiary of the Expense Category matches the subsidiary selected in your connection settings.
{% include faq-end.md %}
diff --git a/docs/articles/expensify-classic/connections/netsuite/Connect-To-NetSuite.md b/docs/articles/expensify-classic/connections/netsuite/Connect-To-NetSuite.md
new file mode 100644
index 000000000000..1f96d9b8a633
--- /dev/null
+++ b/docs/articles/expensify-classic/connections/netsuite/Connect-To-NetSuite.md
@@ -0,0 +1,164 @@
+---
+title: NetSuite
+description: Set up the direct connection from Expensify to NetSuite.
+order: 1
+---
+# Overview
+Expensify's integration with NetSuite allows you to automate report exports, tailor your coding preferences, and tap into NetSuite's array of advanced features. By correctly configuring your NetSuite settings in Expensify, you can leverage the connection's settings to automate most of the tasks, making your workflow more efficient.
+
+**Before connecting NetSuite to Expensify, a few things to note:**
+- Token-based authentication works by ensuring that each request to NetSuite is accompanied by a signed token which is verified for authenticity
+- You must be able to login to NetSuite as an administrator to initiate the connection
+- You must have a Control Plan in Expensify to integrate with NetSuite
+- Employees don’t need NetSuite access or a NetSuite license to submit expense reports since the connection is managed by the Workspace Admin
+- Each NetSuite subsidiary will need its own Expensify Group Workspace
+- Ensure that your workspace's report output currency setting matches the NetSuite Subsidiary default currency
+- Make sure your page size is set to 1000 for importing your customers and vendors. You can check this in NetSuite under **Setup > Integration > Web Services Preferences > 'Search Page Size'**
+
+# Connect to NetSuite
+
+## Step 1: Install the Expensify Bundle in NetSuite
+
+1. While logged into NetSuite as an administrator, go to Customization > SuiteBundler > Search & Install Bundles, then search for "Expensify"
+2. Click on the Expensify Connect bundle (Bundle ID 283395)
+3. Click Install
+4. If you already have the Expensify Connect bundle installed, head to _Customization > SuiteBundler > Search & Install Bundles > List_ and update it to the latest version
+5. Select **Show on Existing Custom Forms** for all available fields
+
+## Step 2: Enable Token-Based Authentication
+
+1. Head to _Setup > Company > Enable Features > SuiteCloud > Manage Authentication_
+2. Make sure “Token Based Authentication” is enabled
+3. Click **Save**
+
+## Step 3: Add Expensify Integration Role to a User
+
+The user you select must have access to at least the permissions included in the Expensify Integration Role, but they're not required to be an Admin.
+1. In NetSuite, head to Lists > Employees, and find the user you want to add the Expensify Integration role to
+2. Click _Edit > Access_, then find the Expensify Integration role in the dropdown and add it to the user
+3. Click **Save**
+
+Remember that Tokens are linked to a User and a Role, not solely to a User. It's important to note that you cannot establish a connection with tokens using one role and then switch to another role afterward. Once you've initiated a connection with tokens, you must continue using the same token/user/role combination for all subsequent sync or export actions.
+
+## Step 4: Create Access Tokens
+
+1. Using Global Search in NetSuite, enter “page: tokens”
+2. Click **New Access Token**
+3. Select Expensify as the application (this must be the original Expensify integration from the bundle)
+4. Select the role Expensify Integration
+5. Press **Save**
+6. Copy and Paste the token and token ID to a saved location on your computer (this is the only time you will see these details)
+
+## Step 5: Confirm Expense Reports are Enabled in NetSuite.
+
+Enabling Expense Reports is required as part of Expensify's integration with NetSuite:
+1. Logged into NetSuite as an administrator, go to Setup > Company > Enable Features > Employees
+2. Confirm the checkbox next to Expense Reports is checked
+3. If not, click the checkbox and then Save to enable Expense Reports
+
+## Step 6: Confirm Expense Categories are set up in NetSuite.
+
+Once Expense Reports are enabled, Expense Categories can be set up in NetSuite. Expense Categories are an alias for General Ledger accounts used to code expenses.
+
+1. Logged into NetSuite as an administrator, go to Setup > Accounting > Expense Categories (a list of Expense Categories should show)
+2. If no Expense Categories are visible, click **New** to create new ones
+
+## Step 7: Confirm Journal Entry Transaction Forms are Configured Properly
+
+1. Logged into NetSuite as an administrator, go to _Customization > Forms > Transaction Forms_
+2. Click **Customize** or **Edit** next to the Standard Journal Entry form
+3. Then, click Screen Fields > Main. Please verify the "Created From" label has "Show" checked and the Display Type is set to Normal
+4. Click the sub-header Lines and verify that the "Show" column for "Receipt URL" is checked
+5. Go to _Customization > Forms > Transaction Forms_ and ensure all other transaction forms with the journal type have this same configuration
+
+## Step 8: Confirm Expense Report Transaction Forms are Configured Properly
+
+1. Logged into NetSuite as an administrator, go to _Customization > Forms > Transaction Forms_
+2. Click **Customize** or **Edit** next to the Standard Expense Report form, then click **Screen Fields > Main**
+3. Verify the "Created From" label has "Show" checked and the Display Type is set to Normal
+4. Click the second sub-header, Expenses, and verify that the 'Show' column for 'Receipt URL' is checked
+5. Go to _Customization > Forms > Transaction Forms_ and ensure all other transaction forms with the expense report type have this same configuration
+
+## Step 9: Confirm Vendor Bill Transactions Forms are Configured Properly
+
+1. Logged into NetSuite as an administrator, go to _Customization > Forms > Transaction Forms_
+2. Click **Customize** or **Edit** next to your preferred Vendor Bill form
+3. Then, click _Screen Fields > Main_ and verify that the "Created From" label has "Show" checked and that Departments, Classes, and Locations have the "Show" label unchecked
+4. Under the Expenses sub-header (make sure to click the "Expenses" sub-header at the very bottom and not "Expenses & Items"), ensure "Show" is checked for Receipt URL, Department, Location, and Class
+5. Go to _Customization > Forms > Transaction Forms_ and provide all other transaction forms with the vendor bill type have this same configuration
+
+## Step 10: Confirm Vendor Credit Transactions Forms are Configured Properly
+
+1. While logged in as an administrator, go to _Customization > Forms > Transaction Forms_
+2. Click **Customize** or **Edit** next to your preferred Vendor Credit form, then click _Screen Fields > Main_ and verify that the "Created From" label has "Show" checked and that Departments, Classes, and Locations have the "Show" label unchecked
+3. Under the Expenses sub-header (make sure to click the "Expenses" sub-header at the very bottom and not "Expenses & Items"), ensure "Show" is checked for Receipt URL, Department, Location, and Class
+4. Go to _Customization > Forms > Transaction Forms_ and ensure all other transaction forms with the vendor credit type have this same configuration
+
+## Step 11: Set up Tax Groups (only applicable if tracking taxes)
+
+Expensify imports NetSuite Tax Groups (not Tax Codes), which you can find in NetSuite under _Setup > Accounting > Tax Groups_.
+
+Tax Groups are an alias for Tax Codes in NetSuite and can contain one or more Tax Codes (Please note: for UK and Ireland subsidiaries, please ensure your Tax Groups do not have more than one Tax Code). We recommend naming Tax Groups so your employees can easily understand them, as the name and rate will be displayed in Expensify.
+
+Before importing NetSuite Tax Groups into Expensify:
+1. Create your Tax Groups in NetSuite by going to _Setup > Accounting > Tax Groups_
+2. Click **New**
+3. Select the country for your Tax Group
+4. Enter the Tax Name (this is what employees will see in Expensify)
+5. Select the subsidiary for this Tax Group
+6. Select the Tax Code from the table you wish to include in this Tax Group
+7. Click **Add**
+8. Click **Save**
+9. Create one NetSuite Tax Group for each tax rate you want to show in Expensify
+
+Ensure Tax Groups can be applied to expenses by going to _Setup > Accounting > Set Up Taxes_ and setting the Tax Code Lists Include preference to "Tax Groups And Tax Codes" or "Tax Groups Only."
+
+If this field does not display, it’s not needed for that specific country.
+
+## Step 12: Connect Expensify and NetSuite
+
+1. Log into Expensify as a Policy Admin and go to **Settings > Workspaces > _[Workspace Name]_ > Connections > NetSuite**
+2. Click **Connect to NetSuite**
+3. Enter your Account ID (Account ID can be found in NetSuite by going to _Setup > Integration > Web Services Preferences_)
+4. Then, enter the token and token secret
+5. Click **Connect to NetSuite**
+
+From there, the NetSuite connection will sync, and the configuration dialogue box will appear.
+
+Please note that you must create the connection using a NetSuite account with the Expensify Integration role
+
+Once connected, all reports exported from Expensify will be generated in NetSuite using SOAP Web Services (the term NetSuite employs when records are created through the integration).
+
+{% include faq-begin.md %}
+
+## Can negative expenses be exported to NetSuite?
+You can export reports with a negative total to NetSuite by selecting “Vendor Bill” as your export option. When a report total is negative, we’ll create a Vendor Credit in NetSuite instead of a bill.
+
+**Important**: Only enable this if you pay your employees/vendors outside of Expensify. A Vendor Credit reduces the total amount payable in NetSuite, but not in Expensify.
+
+To use this feature, make sure you have configured your Vendor Credit transaction form in NetSuite and are using the latest version of the Expensify bundle (version 1.4). If you need to update, go to **Customization > SuiteBundler > Search & Install Bundles > List** and click **Update** next to **Expensify Connect**.
+
+## How do you switch the owner of the connection between NetSuite and Expensify?
+
+Follow the steps below to transfer ownership of the NetSuite connection to someone else:
+1. Head to **Settings > Workspaces > Workspace Name > Connections > NetSuite**
+2. Click **Configure** to review and save the settings for future reference
+3. Select **Do not connect to NetSuite**
+4. Select **Connect to NetSuite**
+5. Enter the email address of the new admin who will take over as the NetSuite User ID
+6. Enter the NetSuite Account ID (found in NetSuite under **Setup > Integration > Web Services Preferences**)
+7. Click **Create a new NetSuite Connection**
+8. Confirm completion of prerequisites and proceed by clicking Continue
+9. You will be redirected to the NetSuite SSO page, where you will enter the email address of the new connection owner and the NetSuite password for that account
+10. Once redirected to the NetSuite page, click **View all roles** and ensure you are logged in under the Administrator role
+11. After confirmation, sign out
+12. Return to Expensify to reconfigure the sync and export settings on the updated connection
+13. Click **Save**
+
+**If you run into any issues updating the connection, follow these additional troubleshooting steps:**
+- In NetSuite, access the role of the current connection owner
+- Click Edit > Access > Choose any role other than Administrator > Save
+- Click Edit > Access > Select Administrator role > Save
+- Repeat the steps outlined above
+
+{% include faq-end.md %}
diff --git a/docs/articles/expensify-classic/connections/netsuite/Netsuite-Troubleshooting.md b/docs/articles/expensify-classic/connections/netsuite/Netsuite-Troubleshooting.md
new file mode 100644
index 000000000000..01aa21a28b80
--- /dev/null
+++ b/docs/articles/expensify-classic/connections/netsuite/Netsuite-Troubleshooting.md
@@ -0,0 +1,464 @@
+---
+title: Netsuite Troubleshooting
+description: Troubleshoot common NetSuite sync and export errors.
+---
+
+# Overview of NetSuite Troubleshooting
+Synchronizing and exporting data between Expensify and NetSuite can streamline your financial processes, but occasionally, users may encounter errors that prevent a smooth integration. These errors often arise from discrepancies in settings, missing data, or configuration issues within NetSuite or Expensify.
+
+This troubleshooting guide aims to help you identify and resolve common sync and export errors, ensuring a seamless connection between your financial management systems. By following the step-by-step solutions provided for each specific error, you can quickly address issues and maintain accurate and efficient expense reporting and data management.
+
+# ExpensiError NS0005: Please enter value(s) for Department, Location or Class
+
+This error occurs when the classification (like Location) is required at the header level of your transaction form in NetSuite.
+
+For expense reports and journal entries, NetSuite uses classifications from the employee record default. Expensify only exports this information at the line item level.
+
+For vendor bills, these classifications can't be mandatory because we use the vendor record instead of the employee record, and vendor records don’t have default classifications.
+
+**Vendor Bills:**
+When exporting as a Vendor Bill, we pull from the vendor record, not the employee. Therefore, employee defaults don’t apply at the header ("main") level. This error appears if your NetSuite transaction form requires those fields.
+
+## How to Fix ExpensiError NS0005
+1. Go to **Customization > Forms > Transaction Forms**.
+2. Click **"Edit"** on your preferred vendor bill form.
+3. Go to **Screen Fields > Main**.
+4. Uncheck both **"Show"** and **"Mandatory"** for the listed fields in your error message.
+5. Sync the workspace connection in Expensify (**Settings > Workspaces > Workspace Name > Connections > Sync**).
+6. Attempt the export again.
+
+**Journal Entries and Expense Reports:**
+If you see this error when exporting a Journal Entry or Expense Report, it might be because the report submitter doesn’t have default settings for Departments, Classes, or Locations.
+
+**To fix this:**
+1. Go to **Lists > Employees** in NetSuite.
+2. Click **"Edit"** next to the employee's name who submitted the report.
+3. Scroll down to the **Classification** section.
+4. Select a default **Department**, **Class**, and **Location** for the employee.
+5. Click **Save**.
+6. Sync your NetSuite connection in Expensify.
+
+
+# ExpensiError NS0012: Currency Does Not Exist In NetSuite
+
+**Scenario One:** When dealing with foreign transactions, Expensify sends the conversion rate and currency of the original expense to NetSuite. If the currency isn't listed in your NetSuite subsidiary, you'll see an error message saying the currency does not exist in NetSuite.
+
+**To fix this:**
+1. Ensure the currency in Expensify matches what's in your NetSuite subsidiary.
+2. If you see an error saying 'The currency X does not exist in NetSuite', re-sync your connection to NetSuite through the workspace admin section in Expensify.
+3. Try exporting again.
+
+**Scenario Two:** This error can happen if you’re using a non-OneWorld NetSuite instance and exporting a currency other than EUR, GBP, USD, or CAD.
+
+**To fix this:**
+1. Head to NetSuite.
+2. Go to **Setup > Enable Features**.
+3. Check the **Multiple Currencies** box.
+
+Once you've done this, you can add the offending currency by searching **New Currencies** in the NetSuite global search.
+
+
+# ExpensiError NS0021: Invalid tax code reference key
+
+This error usually indicates an issue with the Tax Group settings in NetSuite, which can arise from several sources.
+
+#### Tax Group to Tax Code Mapping
+If a Tax Code on Sales Transactions is mapped to a Tax Group, an error will occur. To fix this, the Tax Code must be mapped to a Tax Code on Purchase Transactions instead.
+
+To verify if a Tax Code is for Sales or Purchase transactions, view the relevant Tax Code(s).
+
+**For Australian Taxes:**
+Ensure your Tax Groups are mapped correctly:
+- **GST 10%** to **NCT-AU** (not the Sales Transaction Tax Code TS-AU)
+- **No GST 0%** to **NCF-AU** (not the Sales Transaction Tax Code TFS-AU)
+
+#### Tax Group Type
+Tax Groups can represent different types of taxes. For compatibility with Expensify, ensure the tax type is set to GST/VAT.
+
+#### Enable Tax Groups
+Some subsidiaries require you to enable Tax Groups. Go to **Set Up Taxes** for the subsidiary's country and ensure the Tax Code lists include both Tax Codes and Tax Groups.
+
+
+# ExpensiError NS0023: Employee Does Not Exist in NetSuite (Invalid Employee)
+
+This can happen if the employee’s subsidiary in NetSuite doesn’t match what’s listed in Expensify.
+
+## How to Fix ExpensiError NS0023
+1. **Check the Employee's Subsidiary**
+ - Go to the employee record in NetSuite.
+ - Confirm the employee's subsidiary matches what’s listed as the subsidiary at the workspace level.
+ - To find this in Expensify navigate to **Settings > Workspaces > Workspace Name > Connections > Configure**.
+ - If the subsidiaries don’t match, update the subsidiary in Expensify to match what’s listed in NetSuite.
+ - Sync the NetSuite connection in Expensify.
+2. **Verify Access Restrictions:**
+ - Go to **Lists > Employees > Employees > [Select Employee] > Edit > Access**.
+ - Uncheck **Restrict Access to Expensify**.
+3. **Additional Checks:**
+ - Ensure the email on the employee record in NetSuite matches the email address of the report submitter in Expensify.
+ - In NetSuite, make sure the employee's hire date is in the past and/or the termination date is in the future.
+4. **Currency Match for Journal Entries:**
+ - If exporting as Journal Entries, ensure the currency for the NetSuite employee record, NetSuite subsidiary, and Expensify policy all match.
+ - In NetSuite, go to the **Human Resources** tab > **Expense Report Currencies**, and add the subsidiary/policy currency if necessary.
+
+
+# ExpensiError NS0024: Invalid Customer or Project Tag
+
+Employees must be listed as a resource on the customer/project in NetSuite to be able to apply it to an expense. If that isn’t set up in NetSuite, you can run into this error.
+
+## How to Fix ExpensiError NS0024
+
+1. **Ensure Employee Access:**
+ - In NetSuite, go to **Lists > Relationships > Customer/Projects**.
+ - Click **Edit** next to the desired Customer/Project.
+ - Click **Resources**, select the Employee from the drop-down menu, click **Add**, then **Save** your changes.
+2. **Sync with Expensify:**
+ - In Expensify, go to **Settings > Workspaces > [Workspace Name] > NetSuite > Sync Now**.
+ - Attempt to export again.
+3. **Remove Restriction for a Specific Customer/Project (Optional):**
+ - In NetSuite, edit the customer/project.
+ - Go to **Preferences**, then uncheck **Limit time and expenses to resources**.
+4. **Remove Restrictions for All Projects:**
+ - In NetSuite, go to **Setup > Accounting > Accounting Preferences > Time & Expenses**.
+ - Uncheck **Show Projects Only For Time And Expense Entry**.
+5. **Enable Cross-Subsidiary Customers/Projects in Expensify (Optional):**
+ - Go to **Settings > Workspaces > Group > [Workspace Name] > Connections > NetSuite > Configure > Advanced**.
+ - Enable **Cross-Subsidiary Customers/Projects** to remove the requirement for the employee's subsidiary and the customer's subsidiary to match.
+
+
+# ExpensiError NS0034: This record already exists
+
+This error occurs when the report in question was already exported to NetSuite.
+
+## How to fix ExpensiError NS0034
+1. **Check for the existing Report in NetSuite:**
+ - If the report already exists in NetSuite but has been edited in Expensify, you need to delete the report in NetSuite.
+2. **Find the Report ID in Expensify:**
+ - Locate the Report ID in Expensify under the Details section in the top right corner of the report.
+3. **Search for the Report ID in NetSuite:**
+ - Use the Global Search Box in NetSuite to find the report using the Report ID.
+4. **Delete the Report in NetSuite:**
+ - In NetSuite, click _**Edit > Actions > Delete**_ to remove the report.
+5. **Re-export the Report from Expensify to NetSuite:**
+ - After deleting the report in NetSuite, re-export it from Expensify to NetSuite.
+
+
+# ExpensiError NS0046: Billable Expenses Not Coded with a NetSuite Customer or Billable Project
+
+NetSuite requires billable expenses to be assigned to a Customer or a Project that is configured as billable to a Customer. If this is not set up correctly in NetSuite, this error can occur.
+
+## How to Fix ExpensiError NS0046
+1. **Access the Report in Expensify:**
+ - Go to the Expensify website and open the report.
+2. Click the **Details** icon in the upper-left corner of the report.
+3. Select the following options (this allows you to easily see which expenses are flagged as billable but don't have a valid customer tagged):
+ - **View:** Details
+ - **Group by:** Tag
+ - **Split report by:** Billable
+4. **Check Billable Expenses:**
+ - Click on each expense in the Billable section of the report.
+ - Ensure that the Customer or Project tag field is present.
+ - Verify that there are no violations and that a value has been applied to the field.
+5. Make any necessary adjustments to the billable expenses and try the export again.
+
+
+# ExpensiError NS0059: A credit card account has not been selected for corporate card expenses.
+
+**To resolve this error:**
+1. Log into NetSuite as an admin.
+2. Type "Page: Subsidiaries" in the global search box and select the subsidiary you will export to.
+3. Under the Preferences tab of the subsidiary, locate the field: Default Account for Corporate Card Expenses.
+
+**If you want to assign different cards to different employees:**
+1. Go to each employee record in NetSuite.
+2. Under the Human Resources > Expense and Purchasing section, find the field: Default Account for Corporate Card Expenses.
+
+**For reports containing cash expenses that are not marked as Reimbursable:**
+1. Have the approver reject the report.
+2. Mark the expenses as Reimbursable.
+3. Re-submit the report, approve it, and try to export again.
+
+For accounts without subsidiaries (non-OneWorld accounts), the default field is in your accounting preferences.
+
+
+# ExpensiError NS0085: Expense Does Not Have Appropriate Permissions for Settings an Exchange Rate in NetSuite
+
+This error occurs when the exchange rate settings in NetSuite aren't updated correctly.
+
+## How to Fix ExpensiError NS0085
+1. In NetSuite, go to Customization > Forms > Transaction Forms.
+2. Search for the form type that the report is being exported as (Expense Report, Journal Entry, or Vendor Bill) and click Edit next to the form that has the Preferred checkbox checked.
+ - **For Expense Reports:**
+ - Go to Screen Fields > Expenses (the Expenses tab farthest to the right).
+ - Ensure the Exchange Rate field under the Description column has the Show checkbox checked.
+ - **For Vendor Bills:**
+ - Go to Screen Fields > Main.
+ - Ensure the Exchange Rate field under the Description column has the Show checkbox checked.
+ - **For Journal Entries:**
+ - Go to Screen Fields > Lines.
+ - Ensure the Exchange Rate field under the Description column has the Show checkbox checked.
+ - Go to Screen Fields > Main and ensure the Show checkbox is checked in the Exchange Rate field under the Description column.
+3. Go to **Settings > Workspaces > Group > [Workspace Name] > Connections**.
+4. Click Sync Now to sync the NetSuite connection.
+5. Export the report(s) again.
+
+
+# ExpensiError NS0079: The Transaction Date is Not Within the Date Range of Your Accounting Period
+
+The transaction date you specified is not within the date range of your accounting period. When the posting period settings in NetSuite are not configured to allow a transaction date outside the posting period, you can't export a report to the next open period, which is why you’ll run into this error.
+
+## How to Fix ExpensiError NS0079
+1. In NetSuite, navigate to Setup > Accounting > Accounting Preferences.
+2. Under the General Ledger section, ensure the field Allow Transaction Date Outside of the Posting Period is set to Warn.
+3. Then, choose whether to export your reports to the First Open Period or the Current Period.
+
+Additionally, ensure the Export to Next Open Period feature is enabled within Expensify:
+1. Navigate to **Settings > Workspaces > Group > [Workspace Name] > Connections > Configure**.
+2. Open the **Advanced tab**.
+3. Confirm that the setting for **Export to Next Open Period** is enabled.
+
+If any configuration settings are updated on the NetSuite connection, be sure to sync the connection before trying the export again.
+
+
+# ExpensiError NS0055: The Vendor You are Trying to Export to Does Not Have Access to the Currency X
+
+This error occurs when a vendor tied to a report in Expensify does not have access to a currency on the report in NetSuite. The vendor used in NetSuite depends on the type of expenses on the report you're exporting.
+- For **reimbursable** (out-of-pocket) expenses, this is the report's submitter (the employee who submitted the report).
+- For **non-reimbursable** (e.g., company card) expenses, this is the default vendor set via Settings > Workspaces > Group > [Workspace Name] > Connections > NetSuite > Configure.
+
+## How to Fix ExpensiError NS0055
+To fix this, the vendor needs to be given access to the applicable currency:
+1. In NetSuite, navigate to Lists > Relationships > Vendors to access the list of Vendors.
+2. Click Edit next to the Vendor tied to the report:
+ - For reimbursable (out-of-pocket) expenses, this is the report's submitter.
+ - For non-reimbursable (e.g., company card) expenses, this is the default vendor set via **Settings > Workspaces > Group > [Workspace Name] > Connections > NetSuite > Configure**.
+3. Navigate to the Financial tab.
+4. Scroll down to the Currencies section and add all the currencies that are on the report you are trying to export.
+5. Click Save.
+
+
+# ExpensiError NS0068: You do not have permission to set a value for element - “Created From”
+
+**To resolve this error:**
+1. In NetSuite, go to Customization > Forms > Transaction Forms.
+2. Search for the form type that the report is being exported as in NetSuite (Expense Report, Journal Entry, Vendor Bill, or if the report total is negative, Vendor Credit).
+3. Click Edit next to the form that has the Preferred checkbox checked.
+4. Go to Screen Fields > Main and ensure the field Created From has the Show checkbox checked.
+5. Sync the NetSuite connection under **Settings > Workspaces > Group > [Workspace Name] > Connections > Sync Now**.
+6. Export the report(s) again.
+
+#### For reports with Expensify Card expenses
+Expensify Card expenses export as Journal Entries. If you encounter this error when exporting a report with Expensify Card non-reimbursable expenses, ensure the field Created From has the Show checkbox checked for Journal Entries in NetSuite.
+
+
+# ExpensiError NS0037: You do not have permission to set a value for element - “Receipt URL”
+
+**To resolve this error:**
+1. In NetSuite, go to Customization > Forms > Transaction Forms.
+2. Search for the form type that the report is being exported as in NetSuite (Expense Report, Journal Entry, or Vendor Bill).
+3. Click Edit next to the form that has the Preferred checkbox checked.
+ - If the report is being exported as an Expense Report:
+ - Go to Screen Fields > Expenses (the Expenses tab farthest to the right).
+ - Ensure the field ReceiptURL has the Show checkbox checked.
+ - If the report is being exported as a Journal Entry:
+ - Go to Screen Fields > Lines.
+ - Ensure the field ReceiptURL has the Show checkbox checked.
+ - If the report is being exported as a Vendor Bill:
+ - Go to Screen Fields > Main.
+ - Ensure the field ReceiptURL has the Show checkbox checked.
+4. Click Sync Now to sync the NetSuite connection at **Settings > Workspaces > Group > Workspace Name > Connections**.
+5. Export the report(s) again.
+
+
+# ExpensiError NS0042: Error creating vendor - this entity already exists
+
+This error occurs when a vendor record already exists in NetSuite, but Expensify is still attempting to create a new one. This typically means that Expensify cannot find the existing vendor during export.
+- The vendor record already exists in NetSuite, but there may be discrepancies preventing Expensify from recognizing it.
+- The email on the NetSuite vendor record does not match the email of the report submitter in Expensify.
+- The vendor record might not be associated with the correct subsidiary in NetSuite.
+
+## How to Fix ExpensiError NS0042
+
+Follow these steps to resolve the issue:
+1. **Check Email Matching:**
+ - Ensure the email on the NetSuite vendor record matches the email of the report submitter in Expensify.
+2. **Check Subsidiary Association:**
+ - Ensure the vendor record is associated with the same subsidiary selected in the connection configurations
+ - You can review this under **Settings > Workspaces > Group > Workspace Name > Connections > Configure**.
+3. **Automatic Vendor Creation:**
+ - If you want Expensify to automatically create vendors, ensure the "Automatically Create Vendor" option is enabled under **Settings > Workspaces > Group > Workspace Name > Connections > Advanced**.
+
+**Options to Resolve the Error:**
+- **Edit the Existing Vendor:** Update the existing vendor record in NetSuite to match the report submitter's email and name.
+- **Delete the Existing Vendor:** If appropriate, delete the existing vendor record in NetSuite to allow Expensify to create a new one.
+- **Add Email to Existing Vendor:** Add the email address of the report’s submitter to the existing vendor record in NetSuite.
+
+**Final Steps:**
+1. After making the necessary changes, head to **Settings > Workspaces > Group > Workspace Name > Connections** in Expensify.
+2. Sync the NetSuite workspace connection.
+3. Retry exporting the report.
+
+
+# ExpensiError NS0109: Failed to login to NetSuite, please verify your credentials
+
+This error indicates a problem with the tokens created for the connection between Expensify and NetSuite. The error message will say, "Login Error. Please check your credentials."
+
+## How to Fix ExpensiError NS0109
+1. Review the [Connect to NetSuite](https://help.expensify.com/articles/expensify-classic/integrations/accounting-integrations/NetSuite) guide and follow steps 1 and 2 exactly as outlined.
+2. If you're using an existing token and encounter a problem, you may need to create a new token.
+
+
+# ExpensiError NS0123 Login Error: Please make sure that the Expensify integration is enabled
+
+This error indicates that the Expensify integration is not enabled in NetSuite.
+
+## How to Fix ExpensiError NS0123
+1. **Enable the Expensify Integration:**
+ - In NetSuite, navigate to Setup > Integrations > Manage Integrations.
+ - Ensure that the Expensify Integration is listed and that the State is Enabled.
+2. **If you can't find the Expensify integration:**
+ - Click "Show Inactives" to see if Expensify is listed as inactive.
+ - If Expensify is listed, update its state to Enabled.
+
+Once the Expensify integration is enabled, try syncing the NetSuite connection again.
+
+
+# ExpensiError NS0045: Expenses Not Categorized with a NetSuite Account
+
+**To resolve this error:**
+1. Log into NetSuite
+2. Do a global search for the missing record.
+ - Ensure the expense category is active and correctly named.
+ - Ensure the category is associated with the correct subsidiary that the Expensify workspace is linked to.
+3. In Expensify, head to **Settings > Workspaces > Groups > Workspace Name > Connections** and click **Sync Now** on the NetSuite connection to resync the workspace.
+4. Go back to the report, click on the offending expense(s), and re-apply the category in question.
+5. Export the report again.
+
+
+# ExpensiError NS0061: Please Enter Value(s) for: Tax Code
+
+This error typically occurs when attempting to export expense reports to a Canadian subsidiary in NetSuite for the first time and/or if your subsidiary in NetSuite has Tax enabled.
+
+## How to Fix ExpensiError NS0061
+To fix this, you need to enable Tax in the NetSuite configuration settings.
+
+1. Go to **Settings > Workspaces > Group > Workspace Name > Connections > NetSuite**.
+ - Be sure to select posting accounts for GST/HST and PST if you plan on exporting any expenses with taxes on them to Journal Entries.
+2. Click **Save**
+3. Click **Sync Now** to sync the connection
+
+**Note:** Expenses created before Tax was enabled might need to have the newly imported taxes applied to them retroactively to be exported.
+
+
+# Error creating employee: Your current role does not have permission to access this record.
+
+This error indicates that the credentials or role used to connect NetSuite to Expensify do not have the necessary permissions within NetSuite. You can find setup instructions for configuring permissions in NetSuite [here](https://help.expensify.com/articles/expensify-classic/connections/netsuite/Connect-To-NetSuite#step-3-add-expensify-integration-role-to-a-user).
+
+**To resolve this error:**
+1. If permissions are configured correctly, confirm the report submitter exists in the subsidiary set on the workspace and that their Expensify email address matches the email on the NetSuite Employee Record.
+2. If the above is true, try toggling off "Automatically create vendors/employees" under the Advanced tab of the NetSuite configuration window.
+ - Head to **Settings > Workspaces > Group > Workspace Name > Connections > NetSuite > Configure**
+ - Click on the **Advanced** tab
+ - Disable **Automatically create vendors/employees**
+3. Sync the NetSuite connection in Expensify
+4. Export the report again.
+
+# Elimination Settings for X Do Not Match
+
+This error occurs when an Intercompany Payable account is set as the default in the Default Payable Account field in the NetSuite subsidiary preferences, and the Accounting Approval option is enabled for Expense Reports.
+
+**To resolve this error:**
+Set the Default Payable Account for Expense Reports on each subsidiary in NetSuite to ensure the correct payable account is active.
+1. Navigate to Subsidiaries:
+ - Go to Setup > Company > Subsidiaries.
+2. Edit Subsidiary Preferences:
+ - Click Edit for the desired subsidiary.
+ - Go to the Preferences tab.
+3. Set Default Payable Account:
+ - Choose the preferred account for Default Payable Account for Expense Reports.
+
+Repeat these steps for each subsidiary to ensure the settings are correct, and then sync Expensify to NetSuite to update the connection.
+
+# Why are reports exporting as `Accounting Approved` instead of `Paid in Full`?
+
+**This can occur for two reasons:**
+- Missing Locations, Classes, or Departments in the Bill Payment Form
+- Incorrect Settings in Expensify Workspace Configuration
+
+## Missing Locations, Classes, or Departments in Bill Payment Form
+
+If locations, classes, or departments are required in your accounting classifications but are not marked as 'Show' on the preferred bill payment form, this error can occur, and you will need to update the bill payment form in NetSuite:
+1. Go to Customization > Forms > Transaction Forms.
+2. Find your preferred (checkmarked) Bill Payment form.
+3. Click Edit or Customize.
+4. Under the Screen Fields > Main tab, check 'Show' near the department, class, and location options.
+
+## Incorrect Settings in Expensify Workspace Configuration
+
+To fix this, you'll want to confirm the NetSuite connection settings are set up correctly in Expensify:
+1. Head to **Settings > Workspaces > Group > Workspace Name > Connections > NetSuite > Configure > Advanced**
+2. **Ensure the following settings are correct:**
+ - Sync Reimbursed Reports: Enabled and payment account chosen.
+ - Journal Entry Approval Level: Approved for Posting.
+ - A/P Approval Account: This must match the current account being used for bill payment.
+3. **Verify A/P Approval Account:**
+ - To ensure the A/P Approval Account matches the account in NetSuite:
+ - Go to your bill/expense report causing the error.
+ - Click Make Payment.
+ - This account needs to match the account selected in your Expensify configuration.
+4. **Check Expense Report List:**
+ - Make sure this is also the account selected on the expense report by looking at the expense report list.
+
+Following these steps will help ensure that reports are exported as "Paid in Full" instead of "Accounting Approved."
+
+
+# Why are reports exporting as `Pending Approval`?
+
+If reports are exporting as "Pending Approval" instead of "Approved," you'll need to adjust the approval preferences in NetSuite.
+
+**Exporting as Journal Entries/Vendor Bills:**
+1. In NetSuite, go to Setup > Accounting > Accounting Preferences.
+2. On the **General** tab, uncheck **Require Approvals on Journal Entries**.
+3. On the **Approval Routing** tab, uncheck Journal Entries/Vendor Bills to remove the approval requirement for Journal Entries created in NetSuite.
+
+**Note:** This change affects all Journal Entries, not just those created by Expensify.
+
+**Exporting as Expense Reports:**
+1. In NetSuite, navigate to Setup > Company > Enable Features.
+2. On the "Employee" tab, uncheck "Approval Routing" to remove the approval requirement for Expense Reports created in NetSuite. Please note that this setting also applies to purchase orders.
+
+
+# How do I Change the Default Payable Account for Reimbursable Expenses in NetSuite?
+
+NetSuite is set up with a default payable account that is credited each time reimbursable expenses are exported as Expense Reports to NetSuite (once approved by the supervisor and accounting). If you need to change this to credit a different account, follow the below steps:
+
+**For OneWorld Accounts:**
+1. Navigate to Setup > Company > Subsidiaries in NetSuite.
+2. Next to the subsidiary you want to update, click Edit.
+3. Click the Preferences tab.
+4. In the Default Payable Account for Expense Reports field, select the desired payable account.
+5. Click Save.
+
+**For Non-OneWorld Accounts:**
+1. Navigate to Setup > Accounting > Accounting Preferences in NetSuite.
+2. Click the Time & Expenses tab.
+3. Under the Expenses section, locate the Default Payable Account for Expense Reports field and choose the preferred account.
+4. Click Save.
+
+
+# Why are my Company Card Expenses Exporting to the Wrong Account in NetSuite?
+
+If your company card transactions are exporting to the wrong account in your accounting system, there are a couple of factors to check:
+1. **Verify Card Mapping:**
+ - Ensure that the cards are mapped to the correct accounts at the domain level
+ - This can be viewed under **Settings > Domains > Domain Name > Company Cards**.
+2. **Check Default Account Settings:**
+ - Review the account where the expenses were exported
+ - It should be the default account under **Settings > Workspaces > Group > Workspace Name > Connections**.
+ - Click **Configure** to check the default export settings for your non-reimbursable expenses.
+
+The most common reason expenses export to the default account is that they are not actually imported from the mapped company card. Only company card expenses (notated with the “Card+Lock” icon) can use the export mapping settings configured at the domain level.
+
+Even if an expense was paid with the company card, it is considered a 'cash' expense unless it merges with a card expense marked with the Card+Lock icon.
+
+Less commonly, the issue may occur if the company card has been added to the user's personal settings. Expenses imported from a card linked at the individual account level will have a plain card icon.
+
diff --git a/docs/articles/expensify-classic/connections/quickbooks-desktop/Configure-Quickbooks-Desktop.md b/docs/articles/expensify-classic/connections/quickbooks-desktop/Configure-Quickbooks-Desktop.md
new file mode 100644
index 000000000000..eda92d41e820
--- /dev/null
+++ b/docs/articles/expensify-classic/connections/quickbooks-desktop/Configure-Quickbooks-Desktop.md
@@ -0,0 +1,6 @@
+---
+title: Configure Quickbooks Desktop
+description: Configure Quickbooks Desktop
+---
+
+# Coming soon
diff --git a/docs/articles/expensify-classic/connections/quickbooks-desktop/Connect-To-QuickBooks-Desktop.md b/docs/articles/expensify-classic/connections/quickbooks-desktop/Connect-To-QuickBooks-Desktop.md
new file mode 100644
index 000000000000..92e1e4dd841f
--- /dev/null
+++ b/docs/articles/expensify-classic/connections/quickbooks-desktop/Connect-To-QuickBooks-Desktop.md
@@ -0,0 +1,62 @@
+---
+title: QuickBooks Desktop
+description: Connect Expensify to QuickBooks Desktop
+order: 1
+---
+# Overview
+To connect Expensify to QuickBooks Desktop, use Right Networks as the hosting platform if possible. Right Networks is a cloud-based service that was built specifically for this integration. If you need a Right Networks account, complete [this form](https://info.rightnetworks.com/partner-expensify) to start the process.
+
+**A couple of notes before connecting QuickBooks Desktop to Expensify:**
+- Make sure you're logged into QuickBooks Desktop as an admin
+- Check that the company file you want to connect Expensify to is the only one open
+
+
+# Connect to QuickBooks Desktop
+
+## Step 1: Set up submitters in QuickBooks Desktop
+- Make sure all report submitters are set up as Vendors in QuickBooks Desktop and their Expensify email is in the "Main Email" field of their Vendor record. You can do this in the vendor section of QuickBooks.
+- If you want to export reports to your users' employee records instead of vendor records, select Check or Journal Entry as your reimbursable export option.
+- To set up Expensify users as employees, activate QuickBooks Desktop Payroll. This module is necessary to access the Employee Profile tab, where you can enter the submitter's email addresses.
+
+## Step 2: Enable/install the Expensify Sync Manager
+1. Navigate to **Settings > Workspaces > Group > [Workspace Name] > Connections**
+2. Click **Connect to QuickBooks Desktop** to initiate the connection
+
+**Option 1: Enable the Expensify Sync Manager in Right Networks (recommended)**
+- For this option, **single-user mode** in QuickBooks Desktop is required.
+- If you don't have an account with Right Networks, you can contact Right Networks [here](https://info.rightnetworks.com/partner-expensify)
+- Once set up, you can enable the Expensify Sync Manager from the **My Account** section in Right Networks' portal
+
+**Option 2: Install the Expensify Sync Manager on Your Third-Party Remote Desktop.**
+To download the Sync Manager to your desktop, you must contact your third-party remote desktop provider and request permission. They might have security restrictions, so it's best to communicate with them directly to avoid potential problems with the Sync Manager. Remember that the Sync Manager program file should be stored in the same location (i.e., the same drive) as your QuickBooks Desktop program.
+
+## Step 3: Complete the connection
+1. Open QuickBooks and access the desired Company File using the QuickBooks Admin credentials (admin credentials are necessary for creating the connection)
+2. Navigate to **Settings > Workspaces > Group > [Workspace Name] > Connections**
+3. Copy the Token by selecting the copy icon
+4. While QuickBooks is still running, launch the Expensify Sync Manager by pasting the Token into the Sync Manager
+5. Click **Save**
+6. Once the Sync Manager status displays **Connected**, return to Expensify and click **Continue**
+
+## Step 4: Allow access
+1. Return to QuickBooks where you'll see an **Application Certificate** screen
+ - On the first page of the Certificate screen, click **Yes, always; allow access even if QuickBooks is not running**
+3. Click **Continue**
+4. On the second page of the Certificate screen, choose the Admin user from the dropdown menu
+5. Click **Done**
+7. Return to Expensify and wait for the sync to complete
+
+{% include faq-begin.md %}
+
+## After connecting, how do I sync QuickBooks and Expensify?
+1. Confirm that both the Expensify Sync Manager and QuickBooks Desktop are running
+2. On the Expensify website, navigate to **Settings > Workspaces > Group > [Workspace Name] > Connections**, and click **Sync now**
+3. Wait for the sync to complete
+
+Typically, this takes about 2-5 minutes, but it might take longer, depending on when you last synced and the size of your QuickBooks company file. The page will refresh automatically once syncing is complete.
+
+We recommend syncing at least once a week or whenever you make changes in QuickBooks Desktop that could impact how your reports export from Expensify. Changes could include adjustments to your Chart of Accounts, Vendors, Employees, Customers/Jobs, or Items.
+
+Remember, both the Sync Manager and QuickBooks Desktop need to be running for syncing or exporting to work.
+
+{% include faq-end.md %}
diff --git a/docs/articles/expensify-classic/connections/quickbooks-desktop/Quickbooks-Desktop-Troubleshooting.md b/docs/articles/expensify-classic/connections/quickbooks-desktop/Quickbooks-Desktop-Troubleshooting.md
new file mode 100644
index 000000000000..061b01b7a924
--- /dev/null
+++ b/docs/articles/expensify-classic/connections/quickbooks-desktop/Quickbooks-Desktop-Troubleshooting.md
@@ -0,0 +1,45 @@
+---
+title: Quickbooks Desktop Troubleshooting
+description: Quickbooks Desktop Troubleshooting
+---
+
+# Sync and export errors
+## Error: No Vendor Found For Email in QuickBooks
+To address this issue, ensure that each submitter's email is saved as the **Main Email** in their Vendor record within QuickBooks Desktop. Here's how to resolve it:
+1. Go to your Vendor section in QuickBooks.
+2. Verify that the email mentioned in the error matches the **Main Email** field in the respective vendor's record. It's important to note that this comparison is case-sensitive, so ensure that capitalization matches as well.
+3. If you prefer to export reports to your users' employee records instead of their vendor records, select either **Check** or **Journal Entry** as your reimbursable export option. If you are setting up Expensify users as employees, activate QuickBooks Desktop Payroll to access the Employee Profile tab where submitter email addresses need to be entered.
+4. Once you've added the correct email to the vendor record, save this change, and then sync your policy before attempting to export the report again.
+
+## Error: Do Not Have Permission to Access Company Data File
+To resolve this error, follow these steps:
+1. Log into QuickBooks Desktop as an Admin in single-user mode.
+2. Go to **Edit** > **Preferences** > **Integrated Applications** > **Company Preferences**.
+3. Select the Expensify Sync Manager and click on **Properties**.
+4. Ensure that **Allow this application to login automatically** is checked, and then click **OK**. Close all windows within QuickBooks.
+5. If you still encounter the error after following the above steps, go to **Edit** > **Preferences** > **Integrated Applications** > **Company Preferences**, and remove the Expensify Sync Manager from the list.
+6. Next, attempt to sync your policy again in Expensify. You'll be prompted to re-authorize the connection in QuickBooks.
+7. Click **Yes, always; allow access even if QuickBooks is not running.**
+8. From the dropdown, select the Admin user, and then click **Continue**. Note that selecting **Admin** here doesn't mean you always have to be logged in as an admin to use the connection; it's just required for setting up the connection.
+9. Click **Done** on the pop-up window and return to Expensify, where your policy should complete the syncing process.
+
+## Error: The Wrong QuickBooks Company is Open.
+This error suggests that the wrong company file is open in QuickBooks Desktop. To resolve this issue, follow these steps:
+1. First, go through the general troubleshooting steps as outlined.
+2. If you can confirm that the incorrect company file is open in QuickBooks, go to QuickBooks and select **File** > **Open or Restore Company** > _[Company Name]_ to open the correct company file. After doing this, try syncing your policy again.
+3. If the correct company file is open, but you're still encountering the error, completely close QuickBooks Desktop, reopen the desired company file and then attempt to sync again.
+4. If the error persists, log into QuickBooks as an admin in single-user mode. Then, go to **Edit** > **Preferences** > **Integrated Applications** > **Company Preferences** and remove the Expensify Sync Manager from the list.
+5. Next, try syncing your policy again in Expensify. You'll be prompted to re-authorize the connection in QuickBooks, allowing you to sync successfully.
+6. If the error continues even after trying the steps above, double-check that the token you see in the Sync Manager matches the token in your connection settings.
+
+## Error: The Expensify Sync Manager Could Not Be Reached.
+To resolve this error, follow these steps:
+*Note: You must be in single-user mode to sync.*
+
+1. Ensure that both the Sync Manager and QuickBooks Desktop are running.
+2. Confirm that the Sync Manager is installed in the correct location. It should be in the same location as your QuickBooks application. If QuickBooks is on your local desktop, the Sync Manager should be there, too. If QuickBooks is on a remote server, install the Sync Manager there.
+Verify that the Sync Manager's status is **Connected**.
+3. If the Sync Manager status is already **Connected**, click **Edit** and then *Save* to refresh the connection. Afterwards, try syncing your policy again.
+4. If the error persists, double-check that the token you see in the Sync Manager matches the token in your connection settings.
+
+{% include faq-end.md %}
diff --git a/docs/articles/expensify-classic/connections/quickbooks-online/Configure-Quickbooks-Online.md b/docs/articles/expensify-classic/connections/quickbooks-online/Configure-Quickbooks-Online.md
new file mode 100644
index 000000000000..3fd1df0c0a1c
--- /dev/null
+++ b/docs/articles/expensify-classic/connections/quickbooks-online/Configure-Quickbooks-Online.md
@@ -0,0 +1,140 @@
+---
+title: Configure Quickbooks Online
+description: Configure Quickbooks Online
+---
+
+# Best Practices Using QuickBooks Online
+
+A connection to QuickBooks Online lets you combine the power of Expensify's expense management features with QuickBooks’s accounting capabilities. By following the recommended best practices below, your finances will be automatically categorized correctly and accounted for in the right place.
+
+- Configure your setup immediately after making the connection, and review each settings tab thoroughly.
+- Keep Auto Sync enabled.
+ - The daily sync will update Expensify with any changes to your chart of accounts, customers/projects, or bank accounts in QuickBooks Online.
+ - Finalized reports will be exported to QuickBooks Online automatically, saving your admin team time with every report.
+- Set your preferred exporter to a user who is both a workspace and domain admin.
+- Configure your coding settings and enforce them by requiring categories and tags on expenses.
+
+# Accessing the QuickBooks Configuration Settings
+
+QuickBooks Online is connected at the workspace level, and each workspace can have a unique configuration that dictates how the connection functions. To access the configuration:
+
+1. Click **Settings** near the bottom of the left-hand menu.
+2. Navigate to Workspaces > Groups > [workspace Name] > Connections.
+3. Scroll down to the QuickBooks Online connection and click the **Configure** button to open the settings menu.
+
+# Step 1: Configure Export Settings
+
+The following steps help you determine how data will be exported from Expensify to QuickBooks Online.
+
+1. Click the **Configure** button under the QuickBooks Online connection to open the settings menu.
+2. Under the Export tab, review each of the following export settings:
+ - _Preferred Exporter_: Choose a Workspace Admin to set as the Preferred Exporter.
+ - Concierge exports reports automatically on behalf of the preferred exporter.
+ - Other Workspace Admins will still be able to export to QuickBooks Online manually.
+ - If you set different export bank accounts for individual company cards under Settings > Domain > Company Cards, your Preferred Exporter must be a Domain Admin in addition to a Workspace Admin.
+ - _Date_: When exporting reports to QuickBooks Online, you can choose the report’s submitted date, the report’s exported date, or the date of the last expense on the report.
+ - If you choose a Credit Card or Debit Card for non-reimbursable expenses, we’ll use the transaction date on each expense during export.
+ - _Reimbursable expenses_: Reimbursable expenses export to QuickBooks Online as:
+ - Vendor Bills (recommended): This is a single itemized vendor bill for each Expensify report.
+ - Checks - This is a single itemized check for each Expensify report. You can mark a check to be printed later in QuickBooks Online.
+ - Journal Entries - This is a single itemized journal entry for each Expensify report.
+ - _Non-reimbursable expenses_: Non-reimbursable expenses export to QuickBooks Online as:
+ - Credit Card expenses - Each expense will be exported as a bank transaction with its transaction date.
+ - Debit Card Expenses - Each expense will be exported as a bank transaction with its transaction date.
+ - Vendor Bills - A single detailed vendor bill is generated for each Expensify report.
+ - If the accounting period is closed, the vendor bill will be posted on the first day of the next open period. If you choose to export non-reimbursable expenses as Vendor Bills, you can assign a default vendor to the bill.
+ - The export will use your default vendor if you have Default Vendor enabled. If the Default Vendor is disabled, the report’s submitter will be set as the Vendor in QuickBooks.
+ - _Billable Expenses_: In Expensify, you can designate expenses as billable. These will be exported to QuickBooks Online with the billable flag.
+ - This feature applies only to expenses exported as Vendor Bills or Checks. To maximize this functionality, ensure that any billable expense is associated with a Customer/Job.
+ - _Export Invoices_: If you are creating Invoices in Expensify and exporting these to QuickBooks Online, this is the account the invoice will appear against.
+
+## Step 1B: Optional Configuration When Company Cards Are Connected
+1. Click **Settings** near the bottom of the left-hand menu.
+2. Navigate to Domains > [domain name] > Company Cards.
+3. If you have more than one company card connection, select the connection first.
+4. Locate the cardholder you want to configure in the list,
+5. Click the **Edit Exports** button and assign the account the card expenses should export to in QuickBooks Online.
+
+# Step 2: Configure Coding Settings
+
+The following steps help you determine how data will be imported from QuickBooks Online to Expensify.
+
+1. Click the **Configure** button under the QuickBooks Online connection to open the settings menu.
+2. Under the Coding tab, review each of the following settings and configure the options to determine what information will be imported:
+ - _Categories_: QuickBooks Online Chart of Accounts are imported into Expensify as categories. This is enabled by default and cannot be disabled.
+ - Equity-type accounts will also be imported as categories.
+ - Other Current Liabilities can only be exported as Journal Entries if the submitter is set up as an Employee in QuickBooks.
+ - _Classes and Customers/Projects_: If you use Classes or Customers/Projects in QuickBooks Online, you can import those into Expensify as Tags or Report Fields:
+ - Tags let you apply a Class and/or Customer/Project to each expense.
+ - Report Fields enables you to apply a Class and/or Customer/Project to all expenses on a report.
+ - Note: Although Projects can be imported into Expensify and coded to expenses, due to the limitations of the QuickBooks API, expenses cannot be created within the Projects module in QuickBooks.
+ - _Locations_: When enabled will import into Expensify as a Report Field or, if you export reimbursable expenses as Journal Entries and non-reimbursable expenses as Credit/Debit Card, you can import Locations as Tags.
+ - _Items_: If you use Items in QuickBooks Online, you can import Items defined with Purchasing Information (with or without Sales Information) into Expensify as Categories.
+ - _Tax_: Once enabled, QuickBooks Online tax rates can be further configured on the Settings > Workspaces > Groups > [Workspace Name] > [Tax](https://expensify.com/policy?param=%7B%22policyID%22:%22B936DE4542E9E78B%22%7D#tax) page.
+ - Note: Tax cannot be exported to Journal Entries in QuickBooks Online.
+
+# Step 3: Configure Advanced Settings
+
+The following steps help you determine the advanced settings for your connection, like auto-sync.
+
+1. Click the **Configure** button under the QuickBooks Online connection to open the settings menu.
+2. Under the Advanced tab, review each of the following settings and configure the options you wish to use:
+ - _Auto Sync_: When enabled, the connection will sync daily to ensure that the data shared between the two systems is up-to-date.
+ - New report approvals/reimbursements will be synced during the next auto-sync period.
+ - Reimbursable expenses will export after reimbursement occurs or the report is marked as reimbursed outside Expensify when using Direct or Indirect reimbursement.
+ - Non-reimbursable expenses will export automatically after the report is final approved.
+ - _Newly Imported Categories Should Be_: When a new account is created in the QuickBooks Online chart of accounts, this setting controls whether the new category in Expensify is enabled or disabled by default. Disabled categories are not visible to employees when coding expenses.
+ - _Invite Employees_: When enabled, Auto Sync imports QuickBooks Online employee records and invites them to the workspace.
+ - _Automatically Create Entities_: If you export reimbursable expenses as Vendor Bills or Journal Entries, Expensify will automatically create a vendor in QuickBooks (If one does not already exist). Expensify will also automatically create a customer when exporting Invoices.
+ - _Sync Reimbursed Reports_: Enabling will mark the Vendor Bill as paid in QuickBooks Online if you reimburse a report via ACH direct deposit in Expensify. If you reimburse outside of Expensify, then marking the Vendor Bill as paid in QuickBooks Online will automatically mark the report as reimbursed in Expensify.
+ - _QuickBooks Account_: Select the bank account your reimbursements are coming out of, and we'll create the payment in QuickBooks.
+ - _Collection Account_: When exporting invoices from Expensify to Quickbooks Online, the invoice will appear against the Collection Account once marked as Paid.
+
+{% include faq-begin.md %}
+
+## Why am I seeing duplicate credit card expenses in QuickBooks Online?
+
+When importing a banking feed directly into QuickBooks Online while also importing transactions from Expensify, it’s possible to encounter duplicate entries in QuickBooks. To prevent this, follow these steps:
+
+- Step 1: Complete the Approval Process in Expensify
+Before exporting any expenses to QuickBooks Online, ensure they are added to a report and the report receives approval. Depending on your Workspace setup, reports may require approval from one or more individuals. The approval process concludes when the last user who views the report selects “Final Approve.”
+- Step 2: Exporting Reports to QuickBooks Online
+To ensure expenses exported from Expensify match seamlessly in the QuickBooks Banking platform, make sure these expenses are marked as non-reimbursable within Expensify and that “Credit Card” is selected as the non-reimbursable export option for your expenses.
+- Step 3: Importing Your Credit Card Transactions into QuickBooks Online
+After completing Steps 1 and 2, you can import your credit card transactions into QuickBooks Online. These imported banking transactions will align with the ones brought in from Expensify. QuickBooks Online will guide you through the process of matching these transactions, similar to the example below:
+
+## What happens if the report can’t be exported to QuickBooks Online automatically?
+
+If a report encounters an issue during automatic export to QuickBooks Online, you’ll receive an email with details about the problem, including any specific error messages. These messages will also be recorded in the report’s history section.
+
+The report will be placed in your Home for your attention. You can address the issues there. If you need further assistance, refer to our QuickBooks Online Export Errors page or export the report manually.
+
+## What happens to existing approved and reimbursed reports if I enable Auto Sync?
+
+- If Auto Sync was disabled when your Workspace was linked to QuickBooks Online, enabling it won’t impact existing reports that haven’t been exported.
+- If a report has been exported and reimbursed via ACH, it will be automatically marked as paid in QuickBooks Online during the next sync.
+- If a report has been exported and marked as paid in QuickBooks Online, it will be automatically marked as reimbursed in Expensify during the next sync.
+- Reports that have yet to be exported to QuickBooks Online won’t be automatically exported.
+
+## Does splitting a non-reimbursable expense affect how it exports to QuickBooks Online?
+
+When exporting non-reimbursable expenses as Credit Card or Debit Card expenses, split expenses will be consolidated it into a single credit card transaction in QuickBooks with multiple line items posted to the corresponding General Ledger accounts.
+
+Pro-Tip: To ensure the payee field in QuickBooks Online reflects the merchant name for Credit Card expenses, ensure there’s a matching Vendor in QuickBooks Online. Expensify checks for an exact match during export. If none are found, the payee will be mapped to a vendor we create and labeled as Credit Card Misc. or Debit Card Misc.
+
+## I’m using multi-currency in QuickBooks Online, how do I control the currency conversion rate?
+
+When working with QuickBooks Online Multi-Currency, there are some things to remember when exporting Vendor Bills and Check! Make sure the vendor’s currency and the Accounts Payable (A/P) bank account match.
+
+In QuickBooks Online, the currency conversion rates are not applied when exporting. All transactions will be exported with a 1:1 conversion rate, so for example, if a vendor’s currency is CAD (Canadian Dollar) and the home currency is USD (US Dollar), the export will show these currencies without applying conversion rates.
+
+To correct this, you must manually update the conversion rate after the report has been exported to QuickBooks Online.
+
+**Specifically for Vendor Bills**:
+
+- If multi-currency is enabled and the Vendor’s currency is different from the Workspace currency, OR if QuickBooks Online home currency is foreign from the Workspace currency, then:
+- We create the Vendor Bill in the Vendor’s currency (this is a QuickBooks Online requirement - we don’t have a choice)
+- We set the exchange rate between the home currency and the Vendor’s currency
+- We convert line item amounts to the vendor’s currency
+
+{% include faq-end.md %}
diff --git a/docs/articles/expensify-classic/connections/quickbooks-online/Connect-To-QuickBooks-Online.md b/docs/articles/expensify-classic/connections/quickbooks-online/Connect-To-QuickBooks-Online.md
new file mode 100644
index 000000000000..970f17c59018
--- /dev/null
+++ b/docs/articles/expensify-classic/connections/quickbooks-online/Connect-To-QuickBooks-Online.md
@@ -0,0 +1,43 @@
+---
+title: Connect to QuickBooks Online
+description: Everything you need to know about using Expensify's direct integration with QuickBooks Online.
+order: 1
+---
+
+The Expensify integration with QuickBooks Online brings in your expense accounts and other data and even exports reports directly to QuickBooks for easy reconciliation. Plus, with advanced features in QuickBooks Online, you can fine-tune coding settings in Expensify for automated data export to optimize your accounting workflow.
+
+## Before connecting
+
+It’s crucial to understand the requirements based on your specific QuickBooks subscription:
+- While all the features are available in Expensify, their accessibility may vary depending on your QuickBooks Online subscription.
+- An error will occur if you try to export to QuickBooks Online with a feature enabled that isn’t part of your subscription.
+- Please be aware that Expensify does not support the Self-Employed subscription in QuickBooks Online.
+
+![QuickBooks Online - Subscription types]({{site.url}}/assets/images/QBO1.png){:width="100%"}
+
+# Step 1: Setup Employees in QuickBooks Online
+Employees must be set up as either Vendors or Employees in QuickBooks Online. Make sure to include the submitter’s email in their record.
+
+If you use vendor records, you can export as Vendor Bills, Checks, or Journal Entries. If you use employee records, you can export as Checks or Journal Entries (if exporting against a liability account).
+
+# Step 2: Connect Expensify and QuickBooks Online
+1. Click **Settings** near the bottom of the left-hand menu.
+2. Navigate to Workspaces > Groups > [workspace Name] > Connections.
+3. Click on **Connect to QuickBooks Online**.
+4. Click the **Create a New QuickBooks Online Connection** button.
+5. Enter your QuickBooks Online Administrator’s login information and choose the QuickBooks Online Company File you want to connect to Expensify (you can connect one Company File per Workspace).
+6. Then click **Authorize**.
+7. You will be redirected back to Expensify and the connection will import some initial settings from QuickBooks Online to Expensify.
+8. Once the sync is complete, the configuration window for QuickBooks Online will open automatically so you can configure your export, import, and advanced settings.
+9. Click the **Save** button when you’re done configuring to finalize the connection.
+
+## Step 2B: Exporting Historical Reports to QuickBooks Online
+
+After connecting QuickBooks Online to Expensify, you may receive a prompt to export all historical reports from Expensify. To export multiple reports at once, follow these steps:
+
+1. Open the Reports page in a web browser.
+2. Reset the filters and then adjust the filters to display the reports in question.
+3. Check the box to the left of the reports you want to export.
+4. Click **Export To** and select **QuickBooks Online**.
+ - If you don’t want to export specific reports, select “Mark as manually entered” instead.
+
diff --git a/docs/articles/expensify-classic/connections/quickbooks-online/Quickbooks-Online-Troubleshooting.md b/docs/articles/expensify-classic/connections/quickbooks-online/Quickbooks-Online-Troubleshooting.md
new file mode 100644
index 000000000000..158a55b93e0f
--- /dev/null
+++ b/docs/articles/expensify-classic/connections/quickbooks-online/Quickbooks-Online-Troubleshooting.md
@@ -0,0 +1,189 @@
+---
+title: Quickbooks Online Troubleshooting
+description: Quickbooks Online Troubleshooting
+---
+
+# ExpensiError QBO022: When exporting billable expenses, please make sure the account in QuickBooks Online has been marked as billable.
+
+**Why does this happen?**
+
+This error occurs when the account applied as a category to the expense in Expensify is not marked as as a billable type account.
+
+## How to fix it
+
+1. Log in to QuickBooks Online.
+2. Click the Gear in the upper right-hand corner.
+3. Under Company Settings click Expenses.
+4. Enable the option “Make expenses and items billable”
+5. Click on the pencil icon on the right to check if you have "In multiple accounts" selected:
+6. If "In multiple accounts" is selected, go to Chart of Accounts and click Edit for the account in question.
+7. Check the billable option and select an income account within your chart of accounts
+8. Sync your QuickBooks Online connection in Settings > Workspaces > [click workspace] > Connections.
+9. Open the report and click the Export to button and then the QuickBooks Online option.
+
+# ExpensiError QBO046: Feature Not Included in Subscription
+
+**Why does this happen?**
+
+This error occurs when your version of QuickBooks Online doesn’t support the feature you are using in Expensify.
+
+## How to fix it
+
+Though you will see all of these features available in Expensify, you will receive an error trying to export to QuickBooks if you have a feature enabled that isn't available with your QuickBooks Online subscription.
+
+**Here is a list of the features supported by each version:**
+_Please note: Self Employed is not supported:_
+
+![QuickBooks Online - Subscription types]({{site.url}}/assets/images/QBO1.png){:width="100%"}
+
+# ExpensiError QBO056: Expenses are not categorized with a QuickBooks Online account
+
+**Why does this happen?**
+
+QuickBooks Online requires all expenses exported from Expensify to use a category matching an account in your chart of accounts. If a category from another source is used, QuickBooks Online will reject the expense. This errors occurs when an expense on the report has a category applied that is not valid in QuickBooks Online.
+
+## How to fix it
+
+1. Sync your QuickBooks Online connection in Expensify from Settings > Workspaces > [click workspace] > Connections, and click the **Sync Now** button.
+2. Review the expenses on the report. If any appear with a red _Category no longer valid_ violation, recategorize the expense until all expenses are violation-free.
+3. Click the **Export t**o button and then the **QuickBooks Online** option.
+ - If you receive the same error, continue.
+4. Note the categories used on the expenses and check the Settings > Workspaces > [workspace name] > Categories page to confirm the exact categories used on the report are enabled and connected to QuickBooks Online (you'll see a green QB icon next to all connected categories).
+5. Confirm the categories used on the expenses in the report match exactly the accounts in your QuickBooks Online chart of accounts.
+6. If you make any changes in QuickBooks Online or in Expensify, always sync the connection and then try to export again.
+
+# ExpensiError QBO088: Error Creating Vendor
+
+**Why does this happen?**
+
+This error occurs when you have an Employee Record set up with the employee's name, which prevents the Expensify integration from automatically creating the Vendor Record with the same name, since QuickBooks Online won't allow you to have an employee and vendor with the same name.
+
+## How to fix it
+
+There are two different ways you can resolve this error.
+
+**Option 1**:
+
+1. Log into QuickBooks Online.
+2. Access the Employee Records for your submitters.
+3. Edit the name to differentiate them from the name they have on their account in Expensify.
+4. Sync your QuickBooks Online connection in Settings > Workspaces > [click workspace] > Connections.
+5. Open the report and click the Export to button and then the QuickBooks Online option.
+
+**Option 2**:
+1. Log into QuickBooks Online.
+2. Manually create all of your Vendor Records, making sure that the email matches the email address associated with the user in Expensify.
+ - In this case, we recommend disabling _Automatically Create Entities_ under Settings > Workspaces > [workspace name] > Connections > Configure > Advanced, so that you will receive the correct error messages when a vendor record doesn't exist.
+
+# ExpensiError QBO097: When You Use Accounts Payable, You Must Choose a Vendor in the Name Field
+
+**Why does this happen?**
+
+This error occurs when you are exporting reimbursable expenses as Journal Entries against an A/P account and also use Employee Records in QuickBooks Online.
+
+## How to fix it
+
+There are three different ways you can resolve this error.
+- Select a different type of export for reimbursable expenses under Settings > Workspaces > [worksapce name] > Connections > Configure > Export tab.
+- Enable _Automatically Create Entities_ under Settings > Workspaces > [worksapce name] > Connections > Configure > Advanced to create vendor records automatically.
+- Manually create vendor records in QuickBooks Online for each employee.
+
+# ExpensiError QBO099: Items marked as billable must have sales information checked
+
+**Why does this happen?**
+
+This error occurs when an Item category on an expense does not have sales information in QuickBooks Online.
+
+## How to fix it
+
+1. Log into QuickBooks Online.
+2. Navigate to to your items list.
+3. Click **Edit** to the right of the item used on the report with the error. Here you will see an option to check either "Sales" or "Purchasing".
+4. Check the option for **Sales**.
+5. Select an income account.
+6. Save your changes.
+7. Sync your QuickBooks Online connection in Settings > Workspaces > [workspace name] > Connections.
+8. Open the report and click the **Export to** button and then the **QuickBooks Online** option.
+
+
+# ExpensiError QBO193: Couldn't Connect to QuickBooks Online
+
+**Why does this happen?**
+
+This error occurs when the QuickBooks Online credentials used to make the connection have changed.
+
+_Note: This error message can also show up as, "QuickBooks Reconnect error: OAuth Token rejected.”_
+
+## How to fix it
+
+1. Navigate to Settings > Workspaces > Groups > [workspace name] > Connections.
+2. Click the **Sync Now** button.
+3. In the pop-up window, click **Reconnect** and enter your current QuickBooks Online credentials.
+
+Note: If you are connecting with new credentials, you will need to reconfigure your settings and re-select the categories and tags you want enabled. We recommend taking a screenshot of your configuration settings beforehand so that you can reset the connection with those settings.
+
+# ExpensiError QBO077: Duplicate Document Number, This bill number has already been used.
+
+**Why does this happen?**
+
+This error occurs when settings in QuickBooks Online are enabled to warn of duplicate document numbers.
+
+## How to fix it
+
+1. Log into QuickBooks Online.
+2. Navigate to Settings > Advanced.
+3. Under the Other Preferences section, make sure "Warn if duplicate bill number is used" is set to "Off"
+4. Sync your QuickBooks Online connection in Settings > Workspaces > [workspace name] > Connections.
+5. Open the report and click the **Export to** button and then the **QuickBooks Online** option.
+
+# Export error: QuickBooks Online: The transaction needs to be in the same currency as the A/R and A/P accounts
+
+**Why does this happen?**
+
+This error occurs because the currency on the Vendor record in QuickBooks Online doesn't match the currency on the A/P account.
+
+## How to fix it
+
+1. Log into QuickBooks Online.
+2. Open the vendor record.
+3. Update the record to use with the correct A/P account, currency and an email matching their Expensify email.
+You can find the correct Vendor record by exporting your QuickBooks Online [vendor list](https://community.expensify.com/home/leaving?allowTrusted=1&target=https%3A%2F%2Fqbo.intuit.com%2Fapp%2Fvendors) to a spreadsheet (click the export icon on the right-hand side of the page), and search for the email address of the person who submitted the report.
+
+If you have multiple Vendors with different currencies with the same email, Expensify is likely trying to export to the wrong one.
+
+1. Try removing the email address from the vendor in QuickBooks Online you aren't trying to export to.
+2. Sync your QuickBooks Online connection in Settings > Workspaces > [workspace name] > Connections.
+3. Open the report and click the **Export to** button and then the **QuickBooks Online** option.
+
+If this still fails, you'll need to confirm that the A/P account selected in Expensify is set to the correct currency for the export.
+
+1. Navigate to Settings > Workspaces > [workspace name] > Connections.
+2. Under the Exports tab check that both A/P accounts are the correct currency.
+
+# Why are company card expenses exporting to the wrong account in QuickBooks Online?
+
+Multiple factors could be causing your company card transactions to export to the wrong place in your accounting system, but the best place to start is always the same.
+
+1. First, confirm that the company cards have been mapped to the correct accounts in Settings > Domains > Company Cards > click the **Edit Export button** for the card to view the account.
+2. Next, confirm the expenses in question have been imported from the company card?
+ - Only expenses that have the Card+Lock icon next to them will export according to the mapping settings that you configure in the domain settings.
+
+It’s important to note that expenses imported from a card linked at the individual account level, expenses created from a SmartScanned receipt, and manually created cash expenses will export to the default bank account selected in your connection's configuration settings.
+
+**Is the report exporter a domain admin?**
+
+The user exporting the report must be a domain admin. You can check the history and comment section at the bottom of the report to see who exported the report.
+
+If your reports are being exported automatically by Concierge, the user listed as the Preferred Exporter under Settings > Workspaces > [workspaces name] > Connections > click **Configure** must be a domain admin as well.
+
+If the report exporter is not a domain admin, all company card expenses will export to the bank account set in Settings > Workspaces > [workspace name] > Connections > click **Configure** for non-reimbursable expenses.
+
+**Has the company card been mapped under the correct workspace?**
+
+If you have multiple workspaces connected to QuickBooks Online, each connected workspace will have a separate list of accounts to assign the card to. Unless you choose an account listed under the same workspace as the report you are exporting, expenses will export to the default bank account.
+
+# Can I export negative expenses to QuickBooks Online?
+
+In general, you can export negative expenses successfully to QBO regardless of which export method you choose.
+
+The one thing to keep in mind is that if you have Check selected as your export option, the total of the report can not be negative.
diff --git a/docs/articles/expensify-classic/connections/sage-intacct/Configure-Sage-Intacct.md b/docs/articles/expensify-classic/connections/sage-intacct/Configure-Sage-Intacct.md
new file mode 100644
index 000000000000..1f0be2f4571a
--- /dev/null
+++ b/docs/articles/expensify-classic/connections/sage-intacct/Configure-Sage-Intacct.md
@@ -0,0 +1,153 @@
+---
+title: Configure Sage Intacct
+description: Configure Sage Intacct's export, coding, and advanced settings.
+---
+
+By configuring your Sage Intacct settings in Expensify correctly, you can leverage the connection's settings to automate most tasks, making your workflow more efficient.
+
+# How to Configure Export Settings
+
+There are several options for exporting Expensify reports to Sage Intacct. Let's explore how to configure these settings to align with your business needs.
+
+To access these settings, go to **Settings > Workspace > Group > Connections** and select the **Configure** button.
+
+## Export Options
+
+### Preferred Exporter
+
+Any workspace admin can export to Sage Intacct, but only the preferred exporter will receive notifications in Expensify regarding the status of exports.
+
+### Date
+
+The three options for the date your report will export with are:
+- **Date of last expense:** Uses the date on the most recent expense added to the report.
+- **Exported date:** Is the date you export the report to Sage Intacct.
+- **Submitted date:** Is the date the report creator originally submitted the report.
+
+Note: All export options except credit cards use the date in the drop-down. Credit card transactions use the transaction date.
+
+### Reimbursable Expenses
+
+Depending on your initial setup, your **reimbursable expenses** will be exported as either **Expense Reports** or **Vendor Bills** to Sage Intacct.
+
+### Non-Reimbursable Expenses
+
+**1a. Non-reimbursable expenses** will export separately from reimbursable expenses either as **Vendor Bills** or as **credit card charges** to the account you select. It is not an option to export non-reimbursable expenses as **Journal** entries.
+
+If you are centrally managing your company cards through your Domain Settings, you can export expenses from each individual card to a specific account in Intacct. See section 1b below on how to configure those export settings.
+
+Please note that credit Card Transactions cannot be exported to Sage Intacct at the top level if you have **Multi-Currency** enabled. Therefore, you will need to select an entity in the configuration of your Expensify Workspace by going to **Settings > Workspaces > Groups > [Workspace Name] > Connections > Configure**.
+
+**1b. Optional configuration when company cards are connected**
+1. Click **Settings** near the bottom of the left-hand menu.
+2. Navigate to Domains > [_domain name_] > Company Cards.
+3. If you have more than one company card connection, select the connection first.
+4. Locate the cardholder you want to configure in the list,
+5. Click the **Edit Exports** button and assign the account the card expenses should export to in Sage Intacct.
+
+### Exporting Negative Expenses
+
+You can export negative expenses successfully to Intacct regardless of which Export Option you choose. The one thing to keep in mind is that if you have Expense Reports selected as your export option, the **total** of the report can not be negative.
+
+## How to Configure Coding Settings
+
+The appearance of your expense data in Sage Intacct depends on how you've configured it in Expensify. It's important to understand each available option to achieve the desired results.
+
+The appearance of your expense data in Sage Intacct depends on how you've configured it in Expensify. It's important to understand each available option to achieve the desired results.
+
+### Expense Types
+
+Categories are always enabled and are the primary means of matching expenses to the correct accounts in Sage Intact. The Categories in Expensify depend on your **Reimbursable** export options:
+- If your Reimbursable export option is set to **Expense Reports** (the default), your Categories will be your **Expense Types**.
+- If your Reimbursable export option is set to **Vendor Bills**, your Categories will be your **Chart of Accounts** (also known as GL Codes or Account Codes).
+
+You can disable unnecessary categories from your **Settings > Workspaces > Group > [Workspace Name] > Categories** page if your list is too extensive. Note that every expense must be coded with a Category, or it will not export. Also, when you first set up the integration, your existing categories will be overwritten.
+
+### Billable Expenses
+
+Enabling Billable expenses allows you to map your expense types or accounts to items in Sage Intacct. To do this, you'll need to enable the correct permissions on your Sage Intacct user or role. This may vary based on the modules you use in Sage Intacct, so you should enable read-only permissions for relevant modules such as Projects, Purchasing, Inventory Control, and Order Entry.
+
+Once permissions are set, you can map your categories (expense types or accounts, depending on your export settings) to specific items, which will then export to Sage Intacct. When an expense is marked as Billable in Expensify, users must select the correct billable Category (Item), or there will be an error during export.
+
+### Dimensions - Departments, Classes, and Locations
+
+If you enable these dimensions, you can choose from three data options:
+- Not pulled into Expensify: Employee default (available when the reimbursable export option is set to Expense Reports)
+- Pulled into Expensify and selectable on reports/expenses: Tags (useful for cross-charging between Departments or Locations)
+- Report Fields (applies at the header level, useful when an employee's Location varies from one report to another)
+
+Please note that the term "tag" may appear instead of "Department" on your reports, so ensure that "Projects" is not disabled in your Tags configuration within your workspace settings. Make sure it's enabled within your coding settings of the Intacct configuration settings. When multiple options are available, the term will default to Tags.
+
+### Customers and Projects
+
+These settings are particularly relevant to billable expenses and can be configured as Tags or Report Fields.
+
+### Tax
+
+As of September 2023, our Sage Intacct integration supports native VAT and GST tax. To enable this feature, open the Sage Intacct configuration settings in your workspace, go to the Coding tab, and enable Tax. For existing Sage Intacct connectings, simply resync your workspace and the tax toggle will appear. For new Sage Intacct connections, the tax toggle will be available when you complete the integration steps.
+Enabling this option will import your native tax rates from Sage Intacct into Expensify. From there, you can select default rates for each category.
+
+### User-Defined Dimensions
+
+You can add User-Defined Dimensions (UDD) to your workspace by locating the "Integration Name" in Sage Intacct. Please note that you must be logged in as an administrator in Sage Intacct to find the required fields.
+
+To find the Integration Name in Sage Intacct:
+1. Go to **Platform Services > Objects > List**
+2. Set "filter by application" to "user-defined dimensions."
+
+Now, in Expensify, navigate to **Settings > Workspaces > Group > [Workspace Name] > Connections**, and click **Configure** under Sage Intacct. On the Coding tab, enable the toggle next to User Defined Dimensions. Enter the "Integration name" and choose whether to import it into Expensify as an expense-level Tag or as a Report Field, then click **Save**.
+
+You'll now see the values for your custom segment available under Tags settings or Report Fields settings in Expensify.
+
+
+## How to Configure Advanced Settings
+
+In multi-entity environments, you'll find a dropdown at the top of the sync options menu, where you can choose to sync with the top-level or a specific entity in your Sage Intacct instance. If you sync at the top level, we pull in employees and dimensions shared at the top level and export transactions to the top level. Otherwise, we sync information with the selected entity.
+
+### Auto Sync
+
+When a non-reimbursable report is finally approved, it will be automatically exported to Sage Intacct. Typically, non-reimbursable expenses will sync to the next open period in Sage Intacct by default. If your company uses Expensify's ACH reimbursement, reimbursable expenses will be held back and exported to Sage when the report is reimbursed.
+
+### Inviting Employees
+
+Enabling **Invite Employees** allows the integration to automatically add your employees to your workspace and create an Expensify account for them if they don't have one.
+If you have your domain verified on your account, ensure that the Expensify account connected to Sage Intacct is an admin on your domain.
+When you toggle on "Invite Employees" on the Advanced tab, all employees in Sage Intacct who haven't been invited to the Expensify group workspace you're connecting will receive an email invitation to join the group workspace. Approval workflow will default to Manager Approval and can be further configured on the People settings page.
+
+### Import Sage Intacct Approvals
+
+When the "Import Sage Intacct Approvals" setting is enabled, Expensify will automatically set each user's manager listed in Sage Intacct as their first approver in Expensify. If no manager exists in Sage Intacct, the approver can be set in the Expensify People table. You can also add a second level of approval to your Sage Intacct integration by setting a final approver in Expensify.
+Please note that if you need to add or edit an optional final approver, you will need to select the **Manager Approval** option in the workflow. Here is how each option works:
+- **Basic Approval:** All users submit to one user.
+- **Manager Approval:** Each user submits to the manager (imported from Sage Intacct). Each manager forwards to one final approver (optional).
+- **Configure Manually:** Import employees only, configure workflow in Expensify.
+
+### Sync Reimbursed Reports
+When using Expensify ACH, reimbursable reports exported to Intacct are exported:
+- As Vendor Bills to the default Accounts Payable account set in your Intacct Accounts Payable module configuration, OR
+- As Expense Reports to the Employee Liabilities account in your Time & Expenses module configuration.
+When ACH reimbursement is enabled, the "Sync Reimbursed Reports" feature will additionally export a Bill Payment to the selected Cash and Cash Equivalents account listed. If **Auto Sync** is enabled, the payment will be created when the report is reimbursed; otherwise, it will be created the next time you manually sync the workspace.
+Intacct requires that the target account for the Bill Payment be a Cash and Cash Equivalents account type. If you aren't seeing the account you want in that list, please first confirm that the category on the account is Cash and Cash Equivalents.
+
+{% include faq-begin.md %}
+## What if my report isn't automatically exported to Sage Intacct?
+
+There are a number of factors that can cause automatic export to fail. If this happens, the preferred exporter will receive an email and an Inbox task outlining the issue and any associated error messages.
+The same information will be populated in the comments section of the report.
+The fastest way to find a resolution for a specific error is to search the Community, and if you get stuck, give us a shout!
+Once you've resolved any errors, you can manually export the report to Sage Intacct.
+
+## How can I make sure that I final approve reports before they're exported to Sage Intacct?
+
+Make sure your approval workflow is configured correctly so that all reports are reviewed by the appropriate people within Expensify before exporting to Sage Intacct.
+Also, if you have verified your domain, consider strictly enforcing expense workspace workflows. You can set this up via Settings > Domains > [Domain Name] > Groups.
+
+
+## If I enable Auto Sync, what happens to existing approved and reimbursed reports?
+
+If your workspace has been connected to Intacct with Auto Sync disabled, you can safely turn on Auto Sync without affecting existing reports which have not been exported.
+If a report has been exported to Intacct and reimbursed via ACH in Expensify, we'll automatically mark it as paid in Intacct during the next sync.
+If a report has been exported to Intacct and marked as paid in Intacct, we'll automatically mark it as reimbursed in Expensify during the next sync.
+If a report has not been exported to Intacct, it will not be exported to Intacct automatically.
+
+{% include faq-end.md %}
diff --git a/docs/articles/expensify-classic/integrations/accounting-integrations/Sage-Intacct.md b/docs/articles/expensify-classic/connections/sage-intacct/Connect-To-Sage-Intacct.md
similarity index 99%
rename from docs/articles/expensify-classic/integrations/accounting-integrations/Sage-Intacct.md
rename to docs/articles/expensify-classic/connections/sage-intacct/Connect-To-Sage-Intacct.md
index 560a65d0d722..369c3aae9fa9 100644
--- a/docs/articles/expensify-classic/integrations/accounting-integrations/Sage-Intacct.md
+++ b/docs/articles/expensify-classic/connections/sage-intacct/Connect-To-Sage-Intacct.md
@@ -1,6 +1,7 @@
---
title: Sage Intacct
description: Connect your Expensify workspace with Sage Intacct
+order: 1
---
# Overview
Expensify’s seamless integration with Sage Intacct allows you to connect using either Role-based permissions or User-based permissions.
diff --git a/docs/articles/expensify-classic/connections/sage-intacct/Sage-Intacct-Troubleshooting.md b/docs/articles/expensify-classic/connections/sage-intacct/Sage-Intacct-Troubleshooting.md
new file mode 100644
index 000000000000..db341f87e930
--- /dev/null
+++ b/docs/articles/expensify-classic/connections/sage-intacct/Sage-Intacct-Troubleshooting.md
@@ -0,0 +1,6 @@
+---
+title: Sage Intacct Troubleshooting
+description: Sage Intacct Troubleshooting
+---
+
+# Coming soon
diff --git a/docs/articles/expensify-classic/connections/xero/Configure-Xero.md b/docs/articles/expensify-classic/connections/xero/Configure-Xero.md
new file mode 100644
index 000000000000..170e8d0b6974
--- /dev/null
+++ b/docs/articles/expensify-classic/connections/xero/Configure-Xero.md
@@ -0,0 +1,104 @@
+---
+title: Configure Xero
+description: Configure Xero
+---
+
+**Best Practices Using Xero**
+
+A connection to Xero lets you combine the power of Expensify's expense management features with Xero's accounting capabilities. By following the recommended best practices below, your finances will be automatically categorized correctly and accounted for in the right place.
+
+- Configure your setup immediately after making the connection, and review each settings tab thoroughly.
+- Keep Auto Sync enabled.
+ - The daily auto sync will update Expensify with any changes to your chart of accounts, customers/projects, or bank accounts in Xero.
+ - Finalized reports will be exported to Xero automatically, saving your admin team time with every report.
+- Set your preferred exporter to a user who is both a workspace and domain admin.
+- Configure your coding settings and enforce them by requiring categories and tags on expenses.
+
+# Accessing the Xero Configuration Settings
+Xero is connected at the workspace level, and each workspace can have a unique configuration that dictates how the connection functions. To access the configuration:
+
+1. Click **Settings** near the bottom of the left-hand menu.
+2. Navigate to Workspaces > Groups > [workspace Name] > Connections.
+3. Scroll down to the Xero connection and click the **Configure** button to open the settings menu.
+
+# Step 1: Configure Export Settings
+The following steps help you determine how data will be exported from Expensify to Xero.
+
+1. Click the **Configure** button under the Xero connection to open the settings menu.
+2. Under the Export tab, review each of the following export settings:
+ - **Preferred Exporter**: Choose a Workspace Admin to set as the Preferred Exporter.
+ - Concierge exports reports automatically on behalf of the preferred exporter.
+ - Other Workspace Admins will still be able to export to Xero manually.
+ - If you set different export bank accounts for individual company cards under your Domain > Company Cards, then your Preferred Exporter must be a Domain Admin in addition to Workspace Admin.
+ - **Export reimbursable expenses and bills as**: Reimbursable expenses export as a Purchase Bill. This setting cannot be amended.
+ - **Purchase Bill Date**: Choose whether to use the date of the last expense on the report, export date, or submitted date.
+ - **Export invoices as**: All invoices exported to Xero will be as sales invoices. Sales invoices always display the date on which the invoice was sent. This setting cannot be amended.
+ - **Export non-reimbursable expenses as**: Each exported expense posts as a bank transaction to the Xero bank account you select below, and transaction dates will match the dates on your bank statement.
+ - **Xero Bank Account**: Select which bank account will be used to post bank transactions when non-reimbursable expenses are exported.
+
+## Step 1B: Optional configuration when company cards are connected
+1. Click **Settings** near the bottom of the left-hand menu.
+2. Navigate to Domains > [domain name] > Company Cards.
+3. If you have more than one company card connection, select the connection first.
+4. Locate the cardholder you want to configure in the list,
+5. Click the **Edit Exports** button and assign the account the card expenses should export to in Xero.
+
+# Step 2: Configure Coding settings
+The following steps help you determine how data will be imported from Xero to Expensify.
+
+1. Click the **Configure** button under the Xero connection to open the settings menu.
+2. Under the Coding tab, review each of the following settings and configure the options to determine what information will be imported:
+ - **Chart of Accounts**: Your Xero Chart of Accounts is imported into Expensify as expense categories. _This is enabled by default and cannot be disabled._
+ - **Tax Rates**: When Enabled, your tax rates in Xero will be imported into your workspace. After being imported, you can find them on the [Tax](https://expensify.com/policy?param=%7B%22policyID%22:%22B936DE4542E9E78B%22%7D#tax) page of your workspace settings.
+ - **Tracking Categories**: When Enabled, you can configure how Xero Cost Centres and Xero Regions import.
+ - Xero contact default (applies the Xero contact default during export to Xero)
+ - Tag (line-item level)
+ - Report Field (header level)
+ - **Billable Expenses**: When enabled, your Xero customer contacts will be imported as tags. Xero requires all billable expenses to have a customer tag to be able to be exported to Xero.
+
+# Step 3: Configure advanced settings
+The following steps help you determine the advanced settings for your connection, like auto-sync.
+
+1. Click the **Configure** button under the Xero connection to open the settings menu.
+2. Under the Advanced tab, review each of the following settings and configure the options you wish to use:
+ - **Auto Sync**: When enabled, the connection will sync daily to ensure that the data shared between the two systems is up-to-date.
+ - New report approvals/reimbursements will be synced during the next auto-sync period.
+Reimbursable expenses will export after reimbursement occurs or the report is marked as reimbursed outside Expensify when using Direct or Indirect reimbursement.
+ - Non-reimbursable expenses will export automatically after the report is final approved.
+ - **Newly Imported Categories Should Be**: When a new account is created in the Xero chart of accounts, this setting controls whether the new category in Expensify is enabled or disabled by default. Disabled categories are not visible to employees when coding expenses.
+ - **Set purchase bill status** (optional): Reimbursable expenses are exported as purchase bills with the status selected. The options available are:
+ - Awaiting Payment (default)
+ - Draft
+ - Awaiting Approval
+ - **Sync Reimbursed Reports**: When enabled, you can configure the Bill Payment and Invoice Collections accounts to be used when reimbursing reports and paying invoices.
+ - Anytime a report is reimbursed, or an invoice is paid through Expensify, the corresponding purchase bill or sales invoice in Xero will be marked as paid.
+ - Similarly, if a purchase bill or sales invoice is marked as paid in Xero, the related Expensify report or invoice will be automatically marked as reimbursed/paid.
+ - **Xero Bill Payment Account**: Once the expense report is paid, your reimbursements will appear under this Xero Bill Payment account.
+ - **Xero Invoice Collections Account**: If you are exporting invoices from Expensify, select the invoice collection account under which you want invoices to appear once they are marked as paid.
+
+{% include faq-begin.md %}
+
+## I have multiple organizations in Xero. Can I connect them all to Expensify?
+
+Yes, you can connect each organization you have to Expensify. Here are some essential things to keep in mind:
+
+- Organization Selection in the Workspace > Connections > Xero Configuration > Export settings tab: This option is available only if multiple organizations are configured in Xero.
+- One Workspace, One Organization: Each Workspace can connect to just one organization at a time. It’s a one-to-one connection.
+- Adding New Organizations: If you create a new organization in Xero after your initial connection, you’ll need to disconnect and then reconnect it to Xero. Don’t forget to take a screenshot of your current settings by clicking Configure and checking the Export, Coding, and Advanced tabs. This way, you can easily set everything up again.
+
+## How can I view the purchase bills exported to Xero?
+
+**To view the bills in Xero:**
+1. Log into Xero.
+2. Navigate to Business > Purchase Overview > Awaiting Payments.
+ - Bills will be payable to the individual who created and submitted the report in Expensify.
+
+## How can I view the bank transactions in Xero?
+
+**To view the transactions in Xero:**
+1. Log into Xero.
+2. Head over to your Dashboard.
+3. Select your company card.
+4. Locate the specific expense you’re interested in.
+
+{% include faq-end.md %}
diff --git a/docs/articles/expensify-classic/connections/xero/Connect-To-Xero.md b/docs/articles/expensify-classic/connections/xero/Connect-To-Xero.md
new file mode 100644
index 000000000000..2fb71a780e41
--- /dev/null
+++ b/docs/articles/expensify-classic/connections/xero/Connect-To-Xero.md
@@ -0,0 +1,28 @@
+---
+title: Connect to Xero
+description: Everything you need to know about Expensify's direct integration with Xero
+order: 1
+---
+
+**Prerequisites**
+
+You must be a Workspace Admin in Expensify using a Collect or Control Workspace to connect your Xero account to Expensify.
+
+## Step 1: Connect Expensify to Xero
+1. Click **Settings** near the bottom of the left-hand menu.
+2. Navigate to Workspaces > Groups > [workspace Name] > Connections.
+3. Click on **Connect to Xero**.
+4. Click the **Create a New Xero Connection** button.
+5. Enter your Xero login credentials.
+6. Review the access information and click Allow Access.
+7. You will be redirected back to Expensify and the connection will import some initial settings from Xero to Expensify.
+8. Once the sync is complete, the configuration window for Xero will open automatically so you can configure your export, import, and advanced settings.
+9. Click the **Save** button when you’re done configuring to finalize the connection.
+
+{% include faq-begin.md %}
+
+## I use a Cashbook or Ledger Xero account, can I still connect in Expensify?
+
+Starting in September 2021, there’s a chance for Cashbook and Ledger-type organizations in Xero. Apps like Expensify won’t be able to create invoices and bills for these accounts using the Xero API. So, if you’re using a Cashbook or Ledger Xero account, please be aware that this might affect your Expensify integration.
+
+{% include faq-end.md %}
diff --git a/docs/articles/expensify-classic/connections/xero/Xero-Troubleshooting.md b/docs/articles/expensify-classic/connections/xero/Xero-Troubleshooting.md
new file mode 100644
index 000000000000..f1bb398dbecf
--- /dev/null
+++ b/docs/articles/expensify-classic/connections/xero/Xero-Troubleshooting.md
@@ -0,0 +1,155 @@
+---
+title: Xero Troubleshooting
+description: Xero Troubleshooting
+---
+
+# Overview of Xero Troubleshooting
+
+Synchronizing and exporting data between Expensify and NetSuite can streamline your financial processes, but occasionally, users may encounter errors that prevent a smooth integration. These errors often arise from discrepancies in settings, missing data, or configuration issues within NetSuite or Expensify.
+
+This troubleshooting guide aims to help you identify and resolve common sync and export errors, ensuring a seamless connection between your financial management systems. By following the step-by-step solutions provided for each specific error, you can quickly address issues and maintain accurate and efficient expense reporting and data management.
+
+# ExpensiError XRO014 Billable Expenses Require A Customer
+
+**Why does this happen?**
+
+This happens because Xero requires all billable expenses exported from Expensify to have a customer associated with it. This error occurs when one or more expenses on a report have been marked "billable," and do not have a customer associated with them.
+
+## How to fix it
+
+1. Navigate to your Settings > Workspaces > [click workspace] > Connections > Configure button > Coding tab.
+2. Click the **toggle** to enable Billable Expenses.
+3. Click the **Save** button to save the change and sync the connection.
+4. Open the report in question and apply a _Customer_ tag to each billable expense.
+ - _Note: A Contact in Xero is not imported as a Customer until they have had some kind of bill raised against them. If you can't see your Customer imported as a tag, you may need to raise a dummy invoice at the Xero end and then delete/void it. Don’t forget to sync the connection again after taking this step._
+5. Try to export the report again by clicking the **Export to** button and select the **Xero** option.
+
+# ExpensiError XRO027: Expense on this report is categorized with a category no longer in Xero
+
+**Why does this happen?**
+
+When exporting expense data, Xero will not accept a category on an expense that no longer exists in the chart of accounts. This error occurs when one or more expenses on the report are categorized with a category that no longer exists in Xero.
+
+## How to fix it
+
+1. Log into Xero.
+2. Navigate to Settings > Chart of Accounts.
+3. Confirm that each category used on an expense in the report in Expensify is still an active account in Xero.
+4. If the account doesn’t exist, add it again and sync the connection in Expensify.
+5. If the account still exists, open the details, check “Show in Expense Claims,” and then sync the connection in Expensify.
+6. After syncing, open the report and re-categorize any expenses showing a red workspace violation for out-of-workspace categories.
+7. After recategorizing, click the **Export to** button and select the **Xero** option.
+
+# ExpensiError XRO031: Payment has already been allocated to reimbursable expenses
+
+**Why does this happen?**
+
+Xero does not allow for paid expenses to be modified. When you attempt to export the reimbursable expenses again, Xero considers that a modification and rejects the export. This error occurs when the report contains reimbursable expenses that have already been exported to Xero where a payment was issued on the purchase bill.
+
+## How to fix it
+
+1. Log into Xero.
+2. Click on Business > Bills to Pay > and then the Paid tab.
+3. Locate the report from the error and click on it to open it.
+4. Click on the blue text that says Payment.
+5. Click the Options dropdown and then Remove and Redo to delete the payment.
+ - _Note: Do not void the bill in Xero._
+6. Head back to Expensify and open the report again.
+7. Click the **Export to** button and select the **Xero** option.
+
+The new export will override the current report in Xero and retain the same report ID.
+
+# ExpensiError XRO087 No Bank Account or Incorrect Bank Account
+
+**Why does this happen?**
+
+Xero requires all bank transactions created from non-reimbursable expenses in Expensify to be posted to an active bank account. This error occurs when the destination account in Xero doesn’t exist, isn’t set, or is not the right type.
+
+## How to fix it
+
+1. Navigate to Settings > Workspaces > [workspace name] > Connections > click the **Configure** button.
+2. Select a Xero Bank Account from the dropdown that will apply to all non-reimbursable expenses exported to Xero.
+3. Click the **Save** button to sync the connection.
+4. Open the report again and click the **Export to** button and then the **Xero** option.
+
+# ExpensiError XRO052: Expenses Are Not Categorized With A Xero Account
+
+**Why does this happen?**
+
+Xero requires all expenses exported from Expensify to use a category matching an account in your chart of accounts. If a category from another source is used, Xero will reject the expense. This error occurs when an expense on the report has a category applied that is not valid.
+
+## How to fix it
+
+1. Sync your Xero connection in Expensify from Settings > Workspaces > [click workspace] > Connections, and click the **Sync Now** button.
+2. Review the expenses on the report. If any appear with a red _Category no longer valid_ violation, recategorize the expense until all expenses are violation-free.
+3. Click the **Export to** button and then the **Xero** option.
+4. If you receive the same error, continue.
+ - _Note the categories used on the expenses and check the Settings > Workspaces > [click workspace] > Categories page to confirm the exact categories used on the report are enabled and connected to Xero (you'll see a blue icon next to all connected categories)._
+5. Confirm that the categories used for expenses in the report match exactly the accounts in your Xero chart of accounts.
+6. If you make any changes in Xero or in Expensify, always sync the connection and then try to export again.
+
+# ExpensiError XRO068: Organization is not subscribed to currency x
+
+**Why does this happen?**
+
+Xero requires the currencies you’re using in Expensify to be added to your account before you can export expenses in that currency. For example, if your workspace is set to Canadian currency, all expenses submitted on that workspace will be converted to CAD. You must also have the Canadian currency added to your Xero account to export successfully. This error occurs when your Xero account does not have the currency mentioned in the error added.
+
+## How to fix it
+_Note: Not all versions of Xero allow adding currencies. To add currencies, please upgrade your Xero account to the Established [plan](https://www.xero.com/us/pricing-plans/)._
+
+1. Log into Xero.
+2. Navigate to Settings > General Settings.
+3. Under the heading Features, select Currencies.
+4. Click **Add Currency** to add the currency listed in the error message.
+5. Sync your Xero connection in Settings > Workspaces > [click workspace] > Connections.
+6. Open the report and click the **Export to** button and then the **Xero** option.
+
+# ExpensiError XRO076: This report has already been exported once to Xero, but has been voided
+
+**Why does this happen?**
+
+Xero does not allow Expensify to modify a purchase bill created from a previous export if the bill has been voided. This error occurs when the report has already been exported to Xero, and the purchase bill has been voided.
+
+## How to fix it
+_Note: Xero does not support “unvoiding” a bill, it is an irreversible action._
+
+1. From the Reports page in Expensify, locate the report associated with the voided bill.
+2. Check the box to the left of the report and click **Copy**.
+3. Open the new report and submit it through the approval workflow, then confirm it exports to Xero successfully.
+
+# ExpensiError XRO099: You have reached the limit of invoices you can approve with your Xero account.
+
+**Why does this happen?**
+
+The Early plan only allows you to enter 5 bills per month. This error occurs when you are on a trial account of Xero and have run out of your allowable exports.
+
+## How to fix it
+Please upgrade your Xero account to a Growing or Established [plan](https://www.xero.com/us/pricing-plans/) so you can continue to use the integration and export reports without error.
+
+# Why are company card expenses exported to the wrong account?
+
+Multiple factors could be causing your company card transactions to export to the wrong place in your accounting system, but the best place to start is always the same.
+
+- First, confirm that the company cards have been mapped to the correct accounts in Settings > Domains > Company Cards > click the **Edit Export** button for the card to view the account.
+- Next, confirm the expenses in question have been imported from the company card?
+ - Only expenses that have the Card+Lock icon next to them will export according to the mapping settings that you configure in the domain settings.
+
+It’s important to note that expenses imported from a card linked at the individual account level, expenses created from a SmartScanned receipt, and manually created cash expenses will export to the default bank account selected in your connection's configuration settings.
+
+**Is the report exporter a domain admin?**
+
+The user exporting the report must be a domain admin. You can check the history and comment section at the bottom of the report to see who exported the report.
+
+If your reports are being exported automatically by Concierge, the user listed as the Preferred Exporter under Settings > Workspaces > [workspaces name] > Connections > click **Configure** must be a domain admin as well.
+
+If the report exporter is not a domain admin, all company card expenses will export to the bank account set in Settings > Workspaces > [workspace name] > Connections > click **Configure** for non-reimbursable expenses.
+
+**Has the company card been mapped under the correct workspace?**
+
+If you have multiple workspaces connected to Xero, each connected workspace will have a separate list of accounts to assign the card to. Unless you choose an account listed under the same workspace as the report you are exporting, expenses will export to the default bank account.
+
+# Why do non-reimbursable expenses say 'Credit Card Misc,' instead of the merchant?
+
+Where the merchant in Expensify is an exact match to a contact you have set up in Xero then exported credit card expenses will show the vendor name. If not we use the the default name Expensify Credit Card Misc. This is done to prevent multiple variations of the same contact (e.g. Starbucks and Starbucks #1234 as is often seen in credit card statements) being created in Xero.
+
+To change merchant names to match your vendor list in Xero, we recommend using our Expense Rules feature. More information on this can be found [here](https://community.expensify.com/discussion/5654/deep-dive-using-expense-rules-to-vendor-match-when-exporting-to-an-accounting-package/p1?new=1).
diff --git a/docs/articles/expensify-classic/integrations/accounting-integrations/Accelo.md b/docs/articles/expensify-classic/integrations/accounting-integrations/Accelo.md
deleted file mode 100644
index fffe0abb43aa..000000000000
--- a/docs/articles/expensify-classic/integrations/accounting-integrations/Accelo.md
+++ /dev/null
@@ -1,74 +0,0 @@
----
-title: Accelo
-description: Help doc for Accelo integration
----
-
-
-# Overview
-Accelo is a cloud-based business management software platform tailored for professional service companies, offering streamlined operations. It enables seamless integration with Expensify, allowing users to effortlessly import expense details from Expensify into Accelo, associating them with the corresponding project, ticket, or retainer within the system.
-
-# How to Connect Expensify to Accelo
-To connect Expensify to Accelo, follow these clear steps:
-
-## Prerequisites
-Ensure you have administrator access to Accelo.
-Have a Workspace Admin role in Expensify.
-
-## Connecting Expensify to Accelo
-1. Access the Expensify Integration Server:
-- Open the Expensify Integration Server.
-2. Retrieve Your Partner User ID and Partner User Secret:
-- Important: These credentials are distinct from your regular Expensify username and password.
-- If you haven't previously set up the integration server, click where it indicates "click here."
-3. Regenerating Partner User Secret (If Necessary):
-- Note: If you've previously configured the integration server, you must regenerate your Partner User Secret. Do this by clicking "click here" to regenerate your partnerUserSecret.
-- If you currently use the Integration Server/API for another integration, remember to update that integration to use the new Secret.
-4. Configure Accelo:
-- Return to your Accelo account.
-- Navigate to your Integrations page and select the Expensify tab.
-5. Enter Expensify Integration Server Credentials:
-- Provide your Expensify Integration Server's Partner User ID and Partner User Secret.
-- Click "Save" to complete the setup.
-6. Connection Established:
-- Congratulations! Your Expensify account is now successfully connected to Accelo.
-
-With this connection in place, all Expensify users can effortlessly synchronize their expenses with Accelo, streamlining their workflow and improving efficiency.
-
-## How to upload your Accelo Project Codes as Tags in Expensify
-Once you have connected Accelo to Expensify, the next step is to upload your Accelo Project Codes as Tags in Expensify. Simply go to Go to **Settings** > **Workspaces** > **Group** > _[Workspace Name]_ > **Tags** and upload your CSV.
-If you directly integrate with Xero or QuickBooks Online, you must upload your Project Codes by appending your tags. Go to **Settings** > **Workspaces** > **Group** > _[Workspace Name]_ > **Tags** and click on “Append a custom tag list from a CSV” to upload your Project Codes via a CSV.
-
-# Deep Dive
-## Information sync between Expensify and Accelo
-The Accelo integration does a one-way sync, which means it brings expenses from Expensify into Accelo. When this happens, it transfers specific information from Expensify expenses to Accelo:
-
-| Expensify | Accelo |
-|---------------------|-----------------------|
-| Comment | Title |
-| Date | Date Incurred |
-| Category | Type |
-| Tags | Against (relevant Project, Ticket or Retainer) |
-| Distance (mileage) | Quantity |
-| Hours (time expenses) | Quantity |
-| Amount | Purchase Price and Sale Price |
-| Reimbursable? | Reimbursable? |
-| Billable? | Billable? |
-| Receipt | Attachment |
-| Tax Rate | Tax Code |
-| Attendees | Submitted By |
-
-## Expense Status
-The status of your expense report in Expensify is also synced in Accelo.
-
-| Expensify Report Status | Accelo Expense Status |
-|-------------------------|-----------------------|
-| Open | Submitted |
-| Submitted | Submitted |
-| Approved | Approved |
-| Reimbursed | Approved |
-| Rejected | Declined |
-| Archived | Approved |
-| Closed | Approved |
-
-## Importing expenses from Expensify to Accelo
-Accelo regularly checks Expensify for new expenses once every hour. It automatically brings in expenses that have been created or changed since the last sync.
diff --git a/docs/articles/expensify-classic/integrations/accounting-integrations/Certinia.md b/docs/articles/expensify-classic/integrations/accounting-integrations/Certinia.md
deleted file mode 100644
index 6c7014827ea6..000000000000
--- a/docs/articles/expensify-classic/integrations/accounting-integrations/Certinia.md
+++ /dev/null
@@ -1,152 +0,0 @@
----
-title: Certinia
-description: Guide to connecting Expensify and Certinia FFA and PSA/SRP (formerly known as FinancialForce)
----
-# Overview
-[Cetinia](https://use.expensify.com/financialforce) (formerly known as FinancialForce) is a cloud-based software solution that provides a range of financial management and accounting applications built on the Salesforce platform. There are two versions: PSA/SRP and FFA and we support both.
-
-# Before connecting to Certinia
-Install the Expensify bundle in Certinia using the relevant installer:
-* [PSA/SRP](https://login.salesforce.com/packaging/installPackage.apexp?p0=04t2M000002J0BHD%252Fpackaging%252FinstallPackage.apexp%253Fp0%253D04t2M000002J0BH)
-* [FFA](https://login.salesforce.com/packaging/installPackage.apexp?p0=04t4p000001UQVj)
-
-## Check contact details in Certinia
-First, make sure you have a user and contact in Certinia that match your main email in Expensify. Then, create contacts for all employees who will be sending expense reports. Ensure that each contact's email matches the one they use in their Expensify account.
-
-## If you use PSA/SRP
-Each report approver needs both a User and a Contact. The user does not need to have a SalesForce license. These can be free chatter users.
-Set permission controls in Certinia for your user for each contact/resource.
-* Go to Permission Controls
- - Create a new permission control
- - Set yourself (exporter) as the user
- - Select the resource (report submitter)
- - Grant all available permissions
-* Set permissions on any project you are exporting to
- - Go to **Projects** > _select a project_ > **Project Attributes** > **Allow Expenses Without Assignment**
- - Select the project > **Edit**
- - Under the Project Attributes section, check **Allow Expenses Without Assignment**
-* Set up Expense Types (categories in Expensify - _SRP only_)
- - Go to **Main Menu** > _+ symbol_ > **Expense Type GLA Mappings**
- - Click **New** to add new mappings
-
-# How to connect to Certinia
-1. Go to **Settings** > **Workspaces** > **Groups** > _[Workspace Name]_ > **Connections** in Expensify
-2. Click **Create a New Certinia (FinancialForce) Connection**
-3. Log into your Certinia account
-4. Expensify and Certinia will begin to sync (in Expensify)
-
-# How to configure export settings for Certinia
-## Preferred Exporter
-The preferred exporter is the user who will be the main exporter of reports. This person will receive the notifications for errors.
-
-## Payable Invoice Status and Date
-Reports can be exported as Complete or In Progress, using date of last expense, submitted date or exported date.
-
-## Reimbursable and non-reimbursable exports
-Both reimbursable and non-reimbursable reports are exported as payable invoices (FFA) or expense reports (PSA/SRP). If you have both Reimbursable and Non-Reimbursable expenses on a single report, we will create a separate payable invoice/expense report for each type.
-
-## Default Vendor (FFA)
-Choose from the full list of vendors from your Certinia FFA account, this will be applied to the non-reimbursable payable invoices.
-
-# How to Configure coding for Certinia
-## Company
-Select which FinancialForce company to import from/export to.
-
-## Chart of Accounts (FFA)
-Prepaid Expense Type and Profit & Loss accounts are imported to be used as categories on each expense.
-
-## Expense Type GLA Mappings (PSA/SRP)
-Your Expense Type GLA Mappings are enabled in Expensify to use as categories on each expense when using both PSA and SRP; however, PSA will not import or export categories, while SRP will.
-
-## Dimensions (FFA)
-We import four dimension levels and each has three options to select from:
-
-* Do not map: FinancialForce defaults will apply to the payable invoice, without importing into Expensify
-* Tags: These are shown in the Tag section of your workspace, and employees can select them on each expense created
-* Report fields: These will show in the Reports section of your workspace. Employees can select one to be applied at the header level i.e. the entire report.
-
-## Projects, Assignments, or Projects & Assignments (PSA/SRP)
-These can be imported as tags with **Milestones** being optional. When selecting to import only projects, we will derive the account from the project. If an assignment is selected, we will derive both the account and project from the assignment.
-
-Note: If you are using a project that does not have an assignment, the box **Allow Expenses Without Assignment** must be checked on the project in FinancialForce.
-
-## Tax
-Import tax rates from Certinia to apply to expenses.
-
-# How to configure advanced settings for Certinia
-## Auto Sync
-Auto Sync in Certinia performs daily updates to your coding. Additionally, it automatically exports reports after they receive final approval. For Non-Reimbursable expenses, syncing happens immediately upon final approval of the report. In the case of Reimbursable expenses, syncing occurs as soon as the report is reimbursed or marked as reimbursed.
-
-## Export tax as non-billable
-When exporting Billable expenses, this dictates whether you will also bill the tax component to your clients/customers.
-
-# Deep Dive
-## Multi-Currency in Certinia PSA/SRP
-When exporting to Certinia PSA/SRP you may see up to three different currencies on the expense report in Certinia, if employees are submitting expenses in more than one original currency.
-* Summary Total Reimbursement Amount: this currency is derived from the currency of the project selected on the expense.
-* Amount field on the Expense line: this currency is derived from the Expensify workspace default report currency.
-* Reimbursable Amount on the Expense line: this currency is derived from the currency of the resource with an email matching the report submitter.
-
-{% include faq-begin.md %}
-## What happens if the report can’t be exported to Certinia?
-* The preferred exporter will receive an email outlining the issue and any specific error messages
-* Any error messages preventing the export from taking place will be recorded in the report’s history
-* The report will be listed in the exporter’s Expensify Inbox as awaiting export.
-
-## If I enable Auto Sync, what happens to existing approved and reimbursed reports?
-You can activate Auto Sync without worry because it relies on Final Approval to trigger auto-export. Existing Approved reports won't be affected. However, for Approved reports that haven't been exported to Certinia, you'll need to either manually export them or mark them as manually entered.
-
-## How do I export tax?
-Tax rates are created in Expensify through the tax tracking feature under **Settings** > **Workspaces** > **Groups** > _[Workspace Name]_ > **Tax**. We export the tax amount calculated on the expenses.
-
-## How do reports map to Payable Invoices in Certinia FFA?
-* Account Name - Account associated with Expensify submitter’s email address
-* Reference 1 - Report URL
-* Invoice Description - Report title
-
-## How do reports map to Expense Reports in Certinia PSA/SRP?
-* Expense report name - Report title
-* Resource - User associated with Expensify submitter’s email address
-* Description - Report URL
-* Approver - Expensify report approver
-
-# Sync and Export Errors
-
-## ExpensiError FF0047: You must have an Ops Edit permission to edit approved records.
-This error indicates that the permission control setup between the connected user and the report submitter or region is missing Ops Edit permission.
-
-In Certinia go to Permission Controls and click the one you need to edit. Make sure that Expense Ops Edit is selected under Permissions.
-
-## ExpensiError FF0076: Could not find employee in Certinia
-Go to Contacts in Certinia and add the report creator/submitter's Expensify email address to their employee record, or create a record with that email listed.
-
-If a record already exists then search for their email address to confirm it is not associated with multiple records.
-
-## ExpensiError FF0089: Expense Reports for this Project require an Assignment
-This error indicates that the project needs to have the permissions adjusted in Certinia
-
-Go to Projects > [project name] > Project Attributes and check Allow Expense Without Assignment.
-
-## ExpensiError FF0091: Bad Field Name — [field] is invalid for [object]
-This means the field in question is not accessible to the user profile in Certinia for the user whose credentials were used to make the connection within Expensify.
-
-To correct this:
-* Go to Setup > Build > expand Create > Object within Certinia
-* Then go to Payable Invoice > Custom Fields and Relationships
-* Click View Field Accessibility
-* Find the employee profile in the list and select Hidden
-* Make sure both checkboxes for Visible are selected
-
-Once this step has been completed, sync the connection within Expensify by going to **Settings** > **Workspaces** > **Groups** > _[Workspace Name]_ > **Connections** > **Sync Now** and then attempt to export the report again.
-
-## ExpensiError FF0132: Insufficient access. Make sure you are connecting to Certinia with a user that has the 'Modify All Data' permission
-
-Log into Certinia and go to Setup > Manage Users > Users and find the user whose credentials made the connection.
-
-* Click on their profile on the far right side of the page
-* Go to System > System Permissions
-* Enable Modify All Data and save
-
-Sync the connection within Expensify by going to **Settings** > **Workspaces** > **Groups** > _[Workspace Name]_ > **Connections** > **Sync Now** and then attempt to export the report again
-
-{% include faq-end.md %}
diff --git a/docs/articles/expensify-classic/integrations/accounting-integrations/QuickBooks-Desktop.md b/docs/articles/expensify-classic/integrations/accounting-integrations/QuickBooks-Desktop.md
deleted file mode 100644
index 8fe31f3ec4f4..000000000000
--- a/docs/articles/expensify-classic/integrations/accounting-integrations/QuickBooks-Desktop.md
+++ /dev/null
@@ -1,147 +0,0 @@
----
-title: QuickBooks Desktop
-description: How to connect Expensify to QuickBooks Desktop and troubleshoot issues.
----
-# Overview
-QuickBooks Desktop is an accounting package developed by Intuit. It is designed for small and medium-sized businesses to help them manage their financial and accounting tasks. You can connect Expensify to QuickBooks Desktop to make expense management seamless.
-To connect Expensify with QuickBooks Desktop, using Right Networks as your hosting platform is best. Right Networks is a cloud-based service we recommend for this integration. If you need a Right Networks account, complete [this form](https://info.rightnetworks.com/partner-expensify) and contact a Sales Consultant to start the process.
-
-# How to connect to QuickBooks Desktop
-Before you link your Expensify policy with QuickBooks Desktop, ensure you log in as an Admin in QuickBooks. Also, check that the company file you want to connect to is the only one open.
-
-## Set up submitters in QuickBooks Desktop
-For a seamless integration, here are the steps to follow:
-* Make sure all report submitters are set up as Vendors in QuickBooks Desktop and their Expensify email is in the "Main Email" field of their Vendor record. You can do this in the vendor section of QuickBooks.
-* If you want to export reports to your users' employee records instead of vendor records, select Check or Journal Entry as your reimbursable export option.
-* To set up Expensify users as employees, activate QuickBooks Desktop Payroll. This module is necessary to access the Employee Profile tab, where you can enter the submitter's email addresses.
-
-## Enable/install the Expensify Sync Manager
-Navigate to **Settings** > **Policies** > **Group** > _[Policy Name]_ > **Connections**, select the Connect to QuickBooks Desktop radio button and click Connect to QuickBooks.
-
-**Enable the Expensify Sync Manager in Right Networks (recommended)**
-*Please note: Single-user mode in QuickBooks Desktop is required.*
-If you don't yet have an account with Right Networks, you must first contact Right Networks [here](https://info.rightnetworks.com/partner-expensify). You can enable the Expensify Sync Manager yourself from your Right Networks portal's **My Account** section or contact Right Networks for assistance.
-
-**OR, install the Expensify Sync Manager on Your Third-Party Remote Desktop.**
-To download the Sync Manager to your desktop, you must contact your third-party remote desktop provider and request permission. They might have security restrictions, so it's best to communicate with them directly to avoid potential problems with the Sync Manager. Remember that the Sync Manager program file should be stored in the same location (i.e., the same drive) as your QuickBooks Desktop program.
-
-## Complete the connection
-1. Open QuickBooks and access your desired Company File using the QuickBooks Admin credentials. Admin credentials are necessary for creating the connection due to permission requirements, but you won't need to stay logged in as an admin for syncing or exporting.
-2. Navigate to your Expensify policy settings by going to **Settings** > **Policies** > **Group** > _[Policy Name]_ > **Connections**. Copy the Token by selecting the copy icon.
-3. While QuickBooks is still running, launch the Expensify Sync Manager. Paste your Token into the Sync Manager and click **Save**.
-4. Once the Sync Manager status displays **Connected**, return to Expensify and click the *Continue* button.
-
-## Allow access
-1. Return to QuickBooks, and you'll encounter an **Application Certificate** screen. On the first page of the Certificate screen, click **Yes, always; allow access even if QuickBooks is not running** and then click **Continue**.
-2. On the second page of the Certificate screen, choose the Admin user from the dropdown menu, and then click *Done* to complete this step. Note that selecting Admin here does not require you to be logged in as an admin to use this connection; it's simply selecting the appropriate permissions.
-3. Head back to Expensify and patiently wait for the sync process to finish, then move on to the configuration.
-
-# How to configure export settings for QuickBooks Desktop
-To Configure Settings, go to **Settings** > **Policies** > **Group** > _[Policy Name]_ > **Connections** and click **Configure**.
-
-## Preferred Exporter
-This person is used in QuickBooks Desktop as the export user. They will also receive notifications for errors.
-
-## Date
-Choose either the report's submitted date, the report's exported date, or the date of the last expense on the report when exporting reports to QuickBooks Desktop.
-
-## Use unique reference numbers
-Enable this to allow use of a unique reference number for each transaction. Disable this to use the same Report ID for all expenses from a certain report.
-
-## Reimbursable expenses
-* **Vendor Bill (recommended):** A single itemized vendor bill for each Expensify report. An A/P account is required to export to a vendor bill.
-* **Check:** A single itemized check for each Expensify report.
-* **Journal Entry:** A single itemized journal entry for each Expensify report.
-
-## Non-reimbursable expenses
-**Credit Card Expenses:**
-* Each expense will appear as a separate credit card transaction.
-* The posting date will match your credit card statement.
-* To display the merchant name in the payee field in QuickBooks Desktop, ensure that a matching Vendor exists in QuickBooks. Expensify searches for an exact match during export. If no match is found, the payee is mapped to a **Credit Card Misc.** Vendor created by Expensify.
-* If you're centrally managing company cards through Domain Control, you can export expenses from each card to a specific QuickBooks account (detailed instructions available).
-
-**Debit Card Expenses:**
-* Expenses export as individual itemized checks for each Expensify report.
-* The check is written to the "vendor," which is the person who created or submitted the report in Expensify.
-
-**Vendor Bill:**
-* Each Expensify report results in a single itemized vendor bill.
-* The bill is associated with the "vendor," which is the individual responsible for creating or submitting the report in Expensify.
-
-# How to configure coding for QuickBooks Desktop
-## Categories
-Expensify's integration with QuickBooks brings in your Chart of Accounts as Categories in Expensify automatically. Here's how to manage them:
-1. After connecting, go to **Settings** > **Policies** > **Group** > _[Policy Name]_ > **Categories** to view the accounts imported from QuickBooks Desktop.
-2. You can use the enable/disable button to choose which Categories your employees can access. Additionally, you can set specific rules for each Category via the blue settings cog.
-3. Expensify offers Auto-Categorization to automatically assign expenses to the appropriate expense categories.
-4. If needed, you can edit the names of the imported Categories to simplify expense coding for your employees. Keep in mind that if you make changes to these accounts in QuickBooks Desktop, the category names in Expensify will update to match them during the next sync.
-5. _**Important:**_ Each expense must have a category selected to export to QuickBooks Desktop. The selected category must be one imported from QuickBooks Desktop; you cannot manually create categories within Expensify policy settings.
-
-## Classes
-Classes can be imported from QuickBooks as either tags (line-item level) or report fields (header level).
-
-## Customers/Projects
-You can bring in Customers/Projects from QuickBooks into Expensify in two ways: as tags (at the line-item level) or as report fields (at the header level). If you're utilizing Billable Expenses in Expensify, here's what you need to know:
-* Customers/Projects must be enabled if you're using Billable Expenses.
-* Expenses marked as "Billable" need to be tagged with a Customer/Project to successfully export them to QuickBooks.
-
-## Items
-Items can be imported from QuickBooks as categories alongside your expense accounts.
-
-{% include faq-begin.md %}
-## How do I sync my connection?
-1: Ensure that both the Expensify Sync Manager and QuickBooks Desktop are running.
-2: On the Expensify website, navigate to **Settings** > **Policies** > **Group** > _[Policy Name]_ > **Connections** > **QuickBooks Desktop**, and click **Sync now**.
-3: Wait for the syncing process to finish. Typically, this takes about 2-5 minutes, but it might take longer, depending on when you last synced and the size of your QuickBooks company file. The page will refresh automatically once syncing is complete.
-
-We recommend syncing at least once a week or whenever you make changes in QuickBooks Desktop that could impact how your reports export from Expensify. Changes could include adjustments to your Chart of Accounts, Vendors, Employees, Customers/Jobs, or Items. Remember, both the Sync Manager and QuickBooks Desktop need to be running for syncing or exporting to work.
-
-## Can I export negative expenses?
-Generally, you can export negative expenses to QuickBooks Desktop successfully, regardless of your option. However, please keep in mind that if you have *Check* selected as your export option, the report's total cannot be negative.
-
-## How does multi-currency work with QuickBooks Desktop?
-When using QuickBooks Desktop Multi-Currency, there are some limitations to consider based on your export options:
-1. **Vendor Bills and Checks:** The currency of the vendor and the currency of the account must match, but they do not have to be in the home currency.
-2. **Credit Card:** If an expense doesn't match an existing vendor in QuickBooks, it exports to the **Credit Card Misc.** vendor created by Expensify. When exporting a report in a currency other than your home currency, the transaction will be created under the vendor's currency with a 1:1 conversion. For example, a transaction in Expensify for $50 CAD will appear in QuickBooks as $50 USD.
-3. **Journal Entries:** Multi-currency exports will fail because the account currency must match both the vendor currency and the home currency.
-
-# Sync and export errors
-## Error: No Vendor Found For Email in QuickBooks
-To address this issue, ensure that each submitter's email is saved as the **Main Email** in their Vendor record within QuickBooks Desktop. Here's how to resolve it:
-1. Go to your Vendor section in QuickBooks.
-2. Verify that the email mentioned in the error matches the **Main Email** field in the respective vendor's record. It's important to note that this comparison is case-sensitive, so ensure that capitalization matches as well.
-3. If you prefer to export reports to your users' employee records instead of their vendor records, select either **Check** or **Journal Entry** as your reimbursable export option. If you are setting up Expensify users as employees, activate QuickBooks Desktop Payroll to access the Employee Profile tab where submitter email addresses need to be entered.
-4. Once you've added the correct email to the vendor record, save this change, and then sync your policy before attempting to export the report again.
-
-## Error: Do Not Have Permission to Access Company Data File
-To resolve this error, follow these steps:
-1. Log into QuickBooks Desktop as an Admin in single-user mode.
-2. Go to **Edit** > **Preferences** > **Integrated Applications** > **Company Preferences**.
-3. Select the Expensify Sync Manager and click on **Properties**.
-4. Ensure that **Allow this application to login automatically** is checked, and then click **OK**. Close all windows within QuickBooks.
-5. If you still encounter the error after following the above steps, go to **Edit** > **Preferences** > **Integrated Applications** > **Company Preferences**, and remove the Expensify Sync Manager from the list.
-6. Next, attempt to sync your policy again in Expensify. You'll be prompted to re-authorize the connection in QuickBooks.
-7. Click **Yes, always; allow access even if QuickBooks is not running.**
-8. From the dropdown, select the Admin user, and then click **Continue**. Note that selecting **Admin** here doesn't mean you always have to be logged in as an admin to use the connection; it's just required for setting up the connection.
-9. Click **Done** on the pop-up window and return to Expensify, where your policy should complete the syncing process.
-
-## Error: The Wrong QuickBooks Company is Open.
-This error suggests that the wrong company file is open in QuickBooks Desktop. To resolve this issue, follow these steps:
-1. First, go through the general troubleshooting steps as outlined.
-2. If you can confirm that the incorrect company file is open in QuickBooks, go to QuickBooks and select **File** > **Open or Restore Company** > _[Company Name]_ to open the correct company file. After doing this, try syncing your policy again.
-3. If the correct company file is open, but you're still encountering the error, completely close QuickBooks Desktop, reopen the desired company file and then attempt to sync again.
-4. If the error persists, log into QuickBooks as an admin in single-user mode. Then, go to **Edit** > **Preferences** > **Integrated Applications** > **Company Preferences** and remove the Expensify Sync Manager from the list.
-5. Next, try syncing your policy again in Expensify. You'll be prompted to re-authorize the connection in QuickBooks, allowing you to sync successfully.
-6. If the error continues even after trying the steps above, double-check that the token you see in the Sync Manager matches the token in your connection settings.
-
-## Error: The Expensify Sync Manager Could Not Be Reached.
-To resolve this error, follow these steps:
-*Note: You must be in single-user mode to sync.*
-
-1. Ensure that both the Sync Manager and QuickBooks Desktop are running.
-2. Confirm that the Sync Manager is installed in the correct location. It should be in the same location as your QuickBooks application. If QuickBooks is on your local desktop, the Sync Manager should be there, too. If QuickBooks is on a remote server, install the Sync Manager there.
-Verify that the Sync Manager's status is **Connected**.
-3. If the Sync Manager status is already **Connected**, click **Edit** and then *Save* to refresh the connection. Afterwards, try syncing your policy again.
-4. If the error persists, double-check that the token you see in the Sync Manager matches the token in your connection settings.
-
-{% include faq-end.md %}
diff --git a/docs/articles/expensify-classic/integrations/accounting-integrations/QuickBooks-Online.md b/docs/articles/expensify-classic/integrations/accounting-integrations/QuickBooks-Online.md
deleted file mode 100644
index 623e5f1dd997..000000000000
--- a/docs/articles/expensify-classic/integrations/accounting-integrations/QuickBooks-Online.md
+++ /dev/null
@@ -1,324 +0,0 @@
----
-title: QuickBooks Online
-description: Everything you need to know about using Expensify's direct integration with QuickBooks Online.
----
-# Overview
-
-The Expensify integration with QuickBooks Online brings in your expense accounts and other data and even exports reports directly to QuickBooks for easy reconciliation. Plus, with advanced features in QuickBooks Online, you can fine-tune coding settings in Expensify for automated data export to optimize your accounting workflow.
-
-## Before connecting
-
-It's crucial to understand the requirements based on your specific QuickBooks subscription:
-
-- While all the features are available in Expensify, their accessibility may vary depending on your QuickBooks Online subscription.
-- An error will occur if you try to export to QuickBooks with a feature enabled that isn't part of your subscription.
-- Please be aware that Expensify does not support the Self-Employed subscription in QuickBooks Online.
-
-![QuickBooks Online - Subscription types]({{site.url}}/assets/images/QBO1.png){:width="100%"}
-
-# How to connect to QuickBooks Online
-
-## Step 1: Setup employees in QuickBooks Online
-
-Employees must be set up as either Vendors or Employees in QuickBooks Online. Make sure to include the submitter's email in their record.
-
-If you use vendor records, you can export as Vendor Bills, Checks, or Journal Entries. If you use employee records, you can export as Checks or Journal Entries (if exporting against a liability account).
-
-Additional Options for Streamlined Setup:
-
-- Automatic Vendor Creation: Enable “Automatically Create Entities” in your connection settings to automatically generate Vendor or Employee records upon export for submitters that don't already exist in QBO.
-- Employee Setup Considerations: If setting up submitters as Employees, ensure you activate QuickBooks Online Payroll. This will grant access to the Employee Profile tab to input employee email addresses.
-
-## Step 2: Connect Expensify and QuickBooks Online
-
-- Navigate to Settings > Workspaces > Group > [Workspace Name] > Connections > QuickBooks Online. Click Connect to QuickBooks.
-- Enter your QuickBooks Online Administrator’s login information and choose the QuickBooks Online Company File you want to connect to Expensify (you can connect one Company File per Workspace). Then click Authorize.
-- Enter your QuickBooks Online Administrator’s login information and choose the QuickBooks Online Company File you want to connect to Expensify (you can connect one Company File per Workspace):
-
-## Exporting historical Reports to QuickBooks Online:
-
-After connecting QuickBooks Online to Expensify, you may receive a prompt to export all historical reports from Expensify. To export multiple reports at once, follow these steps:
-
-- Go to the Reports page on the web.
-- Tick the checkbox next to the reports you want to export.
-- Click 'Export To' and select 'QuickBooks Online' from the drop-down list.
-
-If you don't want to export specific reports, click “Mark as manually entered” on the report.
-
-# How to configure export settings for QuickBooks Online
-
-Our QuickBooks Online integration offers a range of features. This section will focus on Export Settings and how to set them up.
-
-## Preferred Exporter
-
-Any Workspace admin can export to your accounting integration, but the Preferred Exporter can be chosen to automate specific steps. You can set this role from Settings > Workspaces > Group > [Workspace Name] > Connections > Configure > Export > Preferred Exporter.
-
-The Preferred Exporter:
-
-- Is the user whose Concierge performs all automated exports on behalf of.
-- Is the only user who will see reports awaiting export in their **Home.**
-- Must be a **Domain Admin** if you have set individual GL accounts for Company Card export.
-- Must be a **Domain Admin** if this is the Preferred Workspace for any Expensify Card domain using Automatic Reconciliation.
-
-## Date
-
-When exporting reports to QuickBooks Online, you can choose the report's **submitted date**, the report's **exported date**, or the **date of the last expense on the report.**
-
-Most export options (Check, Journal Entry, and Vendor Bill) will create a single itemized entry with one date.
-Please note that if you choose a Credit Card or Debit Card for non-reimbursable expenses, we'll use the transaction date on each expense during export.
-
-# Reimbursable expenses
-
-Reimbursable expenses export to QuickBooks Online as:
-
-- Vendor Bills
-- Checks
-- Journal Entries
-
-## Vendor bill (recommended)
-
-This is a single itemized vendor bill for each Expensify report. If the accounting period is closed, we will post the vendor bill on the first day of the next open period. If you export as Vendor Bills, you can also choose to Sync reimbursed reports (set on the Advanced tab). **An A/P account is required to export to a vendor bill.**
-
-The submitter will be listed as the vendor in the vendor bill.
-
-![Vendor Bill]({{site.url}}/assets/images/QBO2-Bill.png){:width="100%"}
-
-## Check
-
-This is a single itemized check for each Expensify report. You can mark a check to be printed later in QuickBooks Online.
-
-![Check to print]({{site.url}}/assets/images/QBO3-Checktoprint.png){:width="100%"}
-
-## Journal entry
-
-This is a single itemized journal entry for each Expensify report.
-
-![Journal Entry]({{site.url}}/assets/images/QBO4-JournalEntry.png){:width="100%"}
-
-# Non-reimbursable expenses
-
-Non-reimbursable expenses export to QuickBooks Online as:
-
-- Credit Card expenses
-- Debit Card Expenses
-- Vendor Bills
-
-## Credit/debit card
-
-Using Credit/Debit Card Transactions:
-
-- Each expense will be exported as a bank transaction with its transaction date.
-- If you split an expense in Expensify, we'll consolidate it into a single credit card transaction in QuickBooks with multiple line items posted to the corresponding General Ledger accounts.
-
-Pro-Tip: To ensure the payee field in QuickBooks Online reflects the merchant name for Credit Card expenses, ensure there's a matching Vendor in QuickBooks Online. Expensify checks for an exact match during export. If none are found, the payee will be mapped to a vendor we create and labeled as Credit Card Misc. or Debit Card Misc.
-
-![Expense]({{site.url}}/assets/images/QBO5-Expense.png){:width="100%"}
-
-If you centrally manage your company cards through Domains, you can export expenses from each card to a specific account in QuickBooks.
-
-## Vendor Bill
-
-- A single detailed vendor bill is generated for each Expensify report. If the accounting period is closed, the vendor bill will be posted on the first day of the next open period. If you choose to export non-reimbursable expenses as Vendor Bills, you can assign a default vendor to the bill.
-- The export will use your default vendor if you have Default Vendor enabled. If the Default Vendor is disabled, the report's submitter will be set as the Vendor in QuickBooks.
-
-## Billable Expenses
-
-- In Expensify, you can designate expenses as billable. These will be exported to QuickBooks Online with the billable flag. This feature applies only to expenses exported as Vendor Bills or Checks. To maximize this functionality, ensure that any billable expense is associated with a Customer/Job.
-
-## Export Invoices
-
-If you are creating Invoices in Expensify and exporting these to QuickBooks Online, this is the account the invoice will appear against.
-
-# Configure coding for QuickBooks Online
-
-The coding tab is where your information is configured for Expensify; this will allow employees to code expenses and reports accurately.
-
-- Categories
-- Classes and/or Customers/Projects
-- Locations
-- Items
-- Tax
-
-## Categories
-
-QuickBooks Online expense accounts will be automatically imported into Expensify as Categories.
-
-## Account Import
-
-Equity type accounts will also be imported as categories.
-
-Important notes:
-
-- Other Current Liabilities can only be exported as Journal Entries if the submitter is set up as an Employee in QuickBooks.
-- Exchange Gain or Loss detail type does not import.
-
-Recommended steps to take after importing the expense accounts from QuickBooks to Expensify:
-
-- Go to Settings > Workspaces > Groups > [Workspace Name] > Categories to see the accounts imported from QuickBooks Online.
-- Use the enable/disable button to choose which Categories to make available to your employees, and set Category specific rules via the blue settings cog.
-- If necessary, edit the names of imported Categories to make expense coding easier for your employees. (Please Note: If you make any changes to these accounts in QuickBooks Online, the category names on Expensify's side will revert to match the name of the account in QuickBooks Online the next time you sync).
-- If you use Items in QuickBooks Online, you can import them into Expensify as Categories.
-
-Please note that each expense has to have a category selected to export to QuickBooks Online. The chosen category has to be imported from QuickBooks Online and cannot be manually created within the Workspace settings.
-
-## Classes and Customers/Projects
-
-If you use Classes or Customers/Projects in QuickBooks Online, you can import those into Expensify as Tags or Report Fields:
-
-- Tags let you apply a Class and/or Customer/Project to each expense.
-- Report Fields enables you to apply a Class and/or Customer/Project to all expenses on a report.
-
-Note: Although Projects can be imported into Expensify and coded to expenses, due to the limitations of the QuickBooks API, expenses cannot be created within the Projects module in QuickBooks.
-
-## Locations
-
-Locations can be imported into Expensify as a Report Field or, if you export reimbursable expenses as Journal Entries and non-reimbursable expenses as Credit/Debit Card, you can import Locations as Tags.
-
-## Items
-
-If you use Items in QuickBooks Online, you can import Items defined with Purchasing Information (with or without Sales Information) into Expensify as Categories.
-
-## Tax
-
-- Using our tax tracking feature, you can assign a tax rate and amount to each expense.
-- To activate tax tracking, go to connection configuration and enable it. This will automatically import purchasing taxes from QuickBooks Online into Expensify.
-- After the connection is set, navigate to Settings > Workspaces > Groups > [Workspace Name] > Tax. Here, you can view the taxes imported from QuickBooks Online.
-- Use the enable/disable button to choose which taxes are accessible to your employees.
-- Set a default tax for the Company Workspace, which will automatically apply to all new expenses.
-- Please note that, at present, tax cannot be exported to Journal Entries in QuickBooks Online.
-- Expensify performs a daily sync to ensure your information is up-to-date. This minimizes errors from outdated QuickBooks Online data and saves you time on syncing.
-
-# How to configure advanced settings for QuickBooks Online
-
-The advanced settings are where functionality for automating and customizing the QuickBooks Online integration can be enabled.
-Navigate to this section of your Workspace by following Settings > Workspaces > Group > [Workspace Name] > Connections > Configure button > Advanced tab.
-
-## Auto Sync
-With QuickBooks Online auto-sync, once a non-reimbursable report is final approved in Expensify, it's automatically queued for export to QuickBooks Online. For expenses eligible for reimbursement with a linked business bank account, they'll sync when marked as reimbursed.
-
-## Newly Imported Categories
-
-This setting determines the default status of newly imported categories from QuickBooks Online to Expensify, either enabled or disabled.
-
-## Invite Employees
-
-Enabling this automatically invites all Employees from QuickBooks Online to the connected Expensify Company Workspace. If not, you can manually invite or import them using a CSV file.
-
-## Automatically Create Entities
-
-When exporting reimbursable expenses as Vendor Bills or Journal Entries, Expensify will automatically create a vendor in QuickBooks if one doesn't exist. It will also generate a customer when exporting Invoices.
-
-## Sync Reimbursed Reports
-
-Enabling this marks the Vendor Bill as paid in QuickBooks Online when you reimburse a report via ACH direct deposit in Expensify. If reimbursing outside Expensify, marking the Vendor Bill as paid will automatically in QuickBooks Online update the report as reimbursed in Expensify. Note: After enabling this feature, select your QuickBooks Account in the drop-down, indicating the bank account for reimbursements.
-
-## Collection Account
-
-If you are exporting Invoices from Expensify to Quickbooks Online, this is the account the Invoice will appear against once marked as Paid.
-
-# Deep Dive
-
-## Preventing Duplicate Transactions in QuickBooks
-
-When importing a banking feed directly into QuickBooks Online while also importing transactions from Expensify, it's possible to encounter duplicate entries in QuickBooks. To prevent this, follow these steps:
-
-Step 1: Complete the Approval Process in Expensify
-
-- Before exporting any expenses to QuickBooks Online, ensure they are added to a report and the report receives approval. Depending on your Workspace setup, reports may require approval from one or more individuals. The approval process concludes when the last user who views the report selects "Final Approve."
-
-Step 2: Exporting Reports to QuickBooks Online
-
-- To ensure expenses exported from Expensify match seamlessly in the QuickBooks Banking platform, make sure these expenses are marked as non-reimbursable within Expensify and that “Credit Card” is selected as the non-reimbursable export option for your expenses.
-
-Step 3: Importing Your Credit Card Transactions into QuickBooks Online
-
-- After completing Steps 1 and 2, you can import your credit card transactions into QuickBooks Online. These imported banking transactions will align with the ones brought in from Expensify. QuickBooks Online will guide you through the process of matching these transactions, similar to the example below:
-
-![Transactions]({{site.url}}/assets/images/QBO7-Transactions.png){:width="100%"}
-
-## Tax in QuickBooks Online
-
-If your country applies taxes on sales (like GST, HST, or VAT), you can utilize Expensify's Tax Tracking along with your QuickBooks Online tax rates. Please note: Tax Tracking is not available for Workspaces linked to the US version of QuickBooks Online. If you need assistance applying taxes after reports are exported, contact QuickBooks.
-
-To get started:
-
-- Go to Settings > Workspaces > Group > [Workspace Name] > Connections, and click Configure.
-- Navigate to the Coding tab.
-- Turn on **Tax**.
-- Click Save. This imports the Tax Name and rate from QuickBooks Online.
-- Visit Settings > Workspaces > Group > [Workspace Name] > Tax to view the imported taxes.
-- Use the enable/disable button in the Tax tab to choose which taxes your employees can use.
-
-Remember, you can also set a default tax rate for the entire Workspace. This will be automatically applied to all new expenses. The user can still choose a different tax rate for each expense.
-
-Tax information can't be sent to Journal Entries in QuickBooks Online. Also, when dealing with multiple tax rates, where one receipt has different tax rates (like in the EU, UK, and Canada), users should split the expense into the respective parts and set the appropriate tax rate for each part.
-
-## Multi-currency
-
-When working with QuickBooks Online Multi-Currency, there are some things to remember when exporting Vendor Bills and Check! Make sure the vendor's currency and the Accounts Payable (A/P) bank account match.
-
-In QuickBooks Online, the currency conversion rates are not applied when exporting. All transactions will be exported with a 1:1 conversion rate, so for example, if a vendor's currency is CAD (Canadian Dollar) and the home currency is USD (US Dollar), the export will show these currencies without applying conversion rates.
-
-![Check]({{site.url}}/assets/images/QBO6-Check.png){:width="100%"}
-
-To correct this, you must manually update the conversion rate after the report has been exported to QuickBooks Online.
-
-Specifically for Vendor Bills:
-
-If multi-currency is enabled and the Vendor's currency is different from the Workspace currency, OR if QuickBooks Online home currency is foreign from the Workspace currency, then:
-
-- We create the Vendor Bill in the Vendor's currency (this is a QuickBooks Online requirement - we don't have a choice)
-- We set the exchange rate between the home currency and the Vendor's currency
-- We convert line item amounts to the vendor's currency
-
-Let's consider this example:
-
-- QuickBooks Online home currency is USD
-- Vendor's currency is VND
-- Workspace (report) currency is JPY
-
-Upon export, we:
-
-1. Specified the bill is in VND
-2. Set the exchange rate between VND and USD (home currency), computed at the time of export.
-3. Converted line items from JPY (currency in Expensify) to VND
-4. QuickBooks Online automatically computed the USD amount (home currency) based on the exchange rate we specified
-5. Journal Entries, Credit Card, and Debit Card:
-
-Multi-currency exports will fail as the account currency must match both the vendor and home currencies.
-
-## Report Fields
-
-Report fields are a handy way to collect specific information for a report tailored to your organization's needs. They can specify a project, business trip, client, location, and more!
-
-When integrating Expensify with Your Accounting Software, you can create your report fields in your accounting software so the next time you sync your Workspace, these fields will be imported into Expensify.
-
-To select how a specific field imports to Expensify, head to Settings > Workspaces > Group >
-[Workspace Name] > Connections > Accounting Integrations > QuickBooks Online > Configure > Coding.
-
-Here are the QuickBooks Online fields that can be mapped as a report field within Expensify:
-
-- Classes
-- Customers/Projects
-- Locations
-
-{% include faq-begin.md %}
-
-## What happens if the report can't be exported to QuickBooks Online automatically?
-
-If a report encounters an issue during automatic export to QuickBooks Online, you'll receive an email with details about the problem, including any specific error messages. These messages will also be recorded in the report's history section.
-
-The report will be placed in your Home for your attention. You can address the issues there. If you need further assistance, refer to our QuickBooks Online Export Errors page or export the report manually.
-
-## How can I ensure that I final approve reports before they're exported to QuickBooks Online?
-
-To ensure reports are reviewed before export, set up your Workspaces with the appropriate workflow in Expensify. Additionally, consider changing your Workspace settings to enforce expense Workspace workflows strictly. This guarantees that your Workspace's workflow is consistently followed.
-
-## What happens to existing approved and reimbursed reports if I enable Auto Sync?
-
-- If Auto Sync was disabled when your Workspace was linked to QuickBooks Online, enabling it won't impact existing reports that haven't been exported.
-- If a report has been exported and reimbursed via ACH, it will be automatically marked as paid in QuickBooks Online during the next sync.
-- If a report has been exported and marked as paid in QuickBooks Online, it will be automatically marked as reimbursed in Expensify during the next sync.
-- Reports that have yet to be exported to QuickBooks Online won't be automatically exported.
-
-{% include faq-end.md %}
diff --git a/docs/articles/expensify-classic/integrations/accounting-integrations/Xero.md b/docs/articles/expensify-classic/integrations/accounting-integrations/Xero.md
deleted file mode 100644
index 9dd479e90cf1..000000000000
--- a/docs/articles/expensify-classic/integrations/accounting-integrations/Xero.md
+++ /dev/null
@@ -1,262 +0,0 @@
----
-title: The Xero Integration
-description: Everything you need to know about Expensify's direct integration with Xero
----
-
-# About
-
-The integration enables seamless import of expense accounts into Expensify and sends expense reports back to Xero as purchasing bills awaiting payment or "spend money" bank transactions.
-
-# How-to Connect to Xero
-
-## Prerequisites
-
-You must be a Workspace Admin in Expensify using a Collect or Control Workspace to connect your Xero account to Expensify.
-
-## Connect Expensify and Xero
-
-1. Let's get started by heading over to your Settings. You can find it by following this path: *Settings > Workspaces > Groups > [Workspace Name] > Connections > Xero.*
-2. To connect Expensify to Xero, click on the "Connect to Xero” button, then choose "Create a new Xero connection."
-3. Next, enter your Xero login details. After that, you'll need to select the Xero organization you want to link with Expensify. Remember, you can connect one organization for each Workspace.
-
-One important note: Starting in September 2021, there's a chance for Cashbook and Ledger-type organizations in Xero. Apps like Expensify won't be able to create invoices and bills for these accounts using the Xero API. So, if you're using a Cashbook or Ledger Xero account, please be aware that this might affect your Expensify integration.
-
-# How to Configure Export Settings for Xero
-
-When you integrate Expensify with Xero you gain control over several settings that determine how your reports will be displayed in Xero. To manage these settings simply follow this path: *Settings > Workspaces > Group > [Workspace Name] > Connections > Accounting Integrations > Xero > Configure > Export*. This is where you can fine-tune how your reports appear on the Xero side, making your expense management a breeze!
-
-## Xero Organization
-
-When you have multiple organizations set up in Xero you can choose which one you'd like to connect. Here are some essential things to keep in mind:
-
-1. Organization Selection: You'll see this option only if you have multiple organizations configured in Xero.
-2. One Workspace, One Organization: Each Workspace can connect to just one organization at a time. It's a one-to-one connection.
-3. Adding New Organizations: If you create a new organization in Xero after your initial connection, you'll need to disconnect and then reconnect it to Xero. Don't forget to take a screenshot of your current settings by clicking on "Configure" and checking the Export, Coding, and Advanced tabs. This way, you can easily set everything up again.
-
-Now you can seamlessly manage your connections with Xero while staying in control of your configurations!
-
-## Preferred Exporter
-
-Any Workspace admin can export to Xero, but only the preferred exporter will see reports that are ready for export in their Home.
-
-## Reimbursable Expenses
-
-Export to Xero as bills awaiting payment with the following additional settings:
-
-- Bill date — the bill is posted on the last day of the month in which expenses were incurred.
-
-To view the bills in Xero, navigate to *Business > Purchase Overview > Awaiting Payments*. Bills will be payable to the individual who created and reported the expense.
-
-## Non-reimbursable Expenses
-
-When you export non-reimbursable expenses, like company card transactions, to Xero they'll show up as bank transactions. Each expense is neatly listed as a separate line item in the bank account of your choice. Plus the transaction date matches the date on your bank statement for seamless tracking.
-
-To check out these expenses in Xero please follow these steps:
-
-1. Head over to your Dashboard.
-2. Select your company card.
-3. Locate the specific expense you're interested in.
-
-If you're managing company cards centrally, you can export expenses from each card to a designated account in Xero using Domains. This way, you have complete control and clarity over your company's finances!
-
-# How to Configure Coding for Xero
-
-The Coding tab in Expensify is where you configure Xero information to ensure accurate expense coding by your employees. Here's how you can access these settings:
-
-1. Navigate to Settings.
-2. Go to Workspace within your specified group (Workspace Name).
-3. Click on Connections, and then hit the Configure button.
-4. Now, select the Coding tab.
-
-## Categories
-
-Xero expense accounts and those marked "Show In Expense Claims" will be automatically imported into Expensify as Categories.
-
-To manage these categories, follow these steps:
-
-1. After connecting, go to *Settings > Workspaces > Groups > [Workspace Name] > Categories*.
-2. You can enable/disable categories using the checkbox.
-3. For specific category rules (like default tax rate, maximum amount, receipts required, comments, and comment hints), click the settings cog.
-4. Note that each expense must have a category selected for it to export to Xero, and these categories need to be imported from Xero; manual creation isn't an option within Workspace settings.
-
-## Tracking Categories
-
-1. If you use Tracking categories in Xero, you can import them into Expensify as Tags, Report Fields, or the Xero contact default.
-- Tags apply a tracking category per expense.
-- Report Field applies a tracking category to the entire report.
-- Xero contact default applies the default tracking category set for the submitter in Xero.
-
-## Tax
-
-Looking to track tax in Expensify? Make sure that you have tax rates enabled in Xero and we will automatically grab those rates from Xero to allow your employees to categorize expenses with the appropriate tax rate. As an admin, you have the ability to set a default rate and also hide rates that are not applicable to the Workspace members.
-
-Tax tracking allows you to apply a tax rate and tax amount to each expense.
-1. To set this up, enable Tax tracking in your Xero configuration.
-2. After connecting, go to *Settings > Workspaces > Groups > [Workspace Name] > Tax to manage imported taxes from Xero.*
-3. You can enable/disable taxes and set default tax rates for both Workspace currency expenses and foreign currency expenses.
-
-## Billable Expenses
-
-If you bill expenses to your customers, you can track and invoice them using Expensify and Xero.
-
-1. When enabled, Xero customer contacts are imported into Expensify as Tags for expense tracking.
-- Note: In Xero, a Contact isn't a 'Customer' until they've had a bill raised against them. If you don't see your Customer imported as a tag, try raising a dummy invoice in Xero and then deleting/voiding it.
-2. After exporting to Xero, tagged billable expenses can be included on a sales invoice to your customer.
-
-Please ensure that you meet the following requirements for expenses to be placed on a sales invoice:
-1. Billable Expenses must be enabled in the Xero configuration settings.
-2. The expense must be marked as billable.
-3. The expense must be tagged with a customer.
-
-These steps should help you seamlessly manage your Xero integration within Expensify.
-
-# How to Configure Xero’s Advanced Settings
-
-If you've already set up your integration, but want to make adjustments, simply follow these steps:
-
-1. Go to Settings.
-2. Then, navigate to Workspaces within your designated group [Workspace Name].
-3. Click on Connections, and next, hit the Configure button.
-
-From there, you can dive into the "Advanced" tab to make any additional tweaks.
-
-## Auto Sync
-
-For non-reimbursable reports: Once a report has completed the approval workflow in Expensify, we'll automatically queue it for export to Xero.
-
-But, if you've added a business bank account for ACH reimbursement, any reimbursable expenses will be sent to Xero automatically when the report is marked as reimbursed or enabled for reimbursement.
-
-### Controlling Newly Imported Categories:
-
-You can decide how newly imported categories behave in Expensify:
-
-1. Enabling or disabling this control determines the status of new categories imported from Xero to Expensify. Enabled categories are visible for employees when they categorize expenses, while disabled categories remain hidden.
-
-These settings give you the flexibility to manage your expenses and Workspace in the way that best suits your needs!
-
-## Sync Reimbursed Reports
-
-This nifty setting lets you synchronize the status of your reports between Expensify and Xero. Utilizing this setting will make sure that there is no confusion or possibility that a reimbursable report is paid out twice by mistake or that a non-reimbursable report is double entered throwing off month-end reconciliation. Here's how it works:
-
-1. When you reimburse a report via ACH direct deposit within Expensify, the purchase bill will automatically be marked as paid in Xero, and Expensify will note it as reimbursed.
-2. Don't forget to pick the Xero account where the corresponding bill payment should be recorded.
-3. It's a simple way to keep everything in sync, especially when you're awaiting payment.
-
-# Deep Dive
-
-## An Automatic Export Fails
-
-Sometimes, reports may encounter issues during automatic export to Xero. Not to worry, though! Here's what happens:
-
-1. The Technical Contact, your go-to person for technical matters, will receive an email explaining the problem.
-2. You'll also find specific error messages at the bottom of the report.
-3. To get things back on track, the report will be placed in the preferred exporter’s Home. They can review it and resolve any issues.
-
-## Consider Enforcing Expense Workspace Workflows:
-
-For added control, you can adjust your Workspace settings to strictly enforce expense Workspace. This way, you guarantee that your Workspace’s workflow is always followed. By default this flow is in place, but employees can modify the person they submit their reports to if it's not strictly enforced.
-
-## Customize Purchase Bill Status (Optional):
-
-You have the flexibility to set the status of your purchase bills just the way you want. Choose from the following options:
-
-1. Draft: Keep bills in a draft state until you're ready to finalize them.
-2. Awaiting Approval: If you need approval before processing bills, this option is here for you.
-
-## Multi-Currency
-
-### Handling Multi-Currency in Xero
-
-When dealing with multi-currency transactions in Xero and exporting reimbursable expenses from Expensify here's what you need to know:
-
-1. The bill created in Xero will adopt the output currency set in your Expensify Workspace, provided that it's enabled in Xero.
-2. Your general ledger reports will automatically convert to your home currency in Xero, leveraging the currency exchange rates defined in your Xero settings. It ensures everything aligns seamlessly.
-
-Now, for non-reimbursable expenses, things work slightly differently:
-
-1. Bank transactions will use the currency specified in your bank account in Xero, regardless of the currency used in Expensify.
-2. If these currencies don't match, no worries! We apply a 1:1 exchange rate to make things smooth. To ensure a hassle-free experience, just ensure that the output currency in Expensify matches the currency specified in your Xero bank account.
-
-## Tax
-
-### Enabling Tax Tracking for Seamless Integration:
-
-To simplify tax tracking, enable it in your Xero configuration. This action will automatically bring all your Xero tax settings into Expensify, turning them into usable Taxes.
-
-### After connecting your Xero account with Expensify:
-
-1. Head to Settings.
-2. Navigate to Workspaces within your specific group [Workspace Name].
-3. Click on Tax to view the taxes that have been imported from Xero.
-
-Now, here's where you can take control:
-
-1. Use the enable/disable button to choose which taxes your employees can apply to their expenses. Customize it to fit your needs.
-2. You can set a default tax rate for expenses in your Workspace currency. Additionally, if you deal with foreign currency expenses, you have the option to set another default tax (including exempt) that will automatically apply to all new expenses in foreign currencies.
-
-This setup streamlines your tax management, making it effortless for your team to handle taxes on their expenses.
-
-## Export Invoices to Xero
-
-You can effortlessly export your invoices from Expensify to Xero and even attribute them to the right Customer. Plus, when you mark an invoice as paid in Expensify, the same status will smoothly transfer to Xero and vice versa, keeping your invoice tracking hassle-free. Let's dive in:
-
-### Setting up Invoice Export to Xero:
-
-1. Navigate to Settings.
-2. Go to Workspaces within your designated group [Workspace Name].
-3. Click on Connections, then select Configuration.
-4. Now, click on the Advanced tab.
-
-### Selecting Your Xero Invoice Collection Account:
-
-1. Scroll down until you find "Xero invoice collection account." You'll see a dropdown list of your available Accounts Receivable accounts imported from Xero.
-2. Simply choose the account where you'd like your invoices to be exported.
-
-Pro Tip: If you don't see any accounts in the dropdown, try syncing your Xero connection. To do this, go back to the Connections page and hit "Sync Now."
-
-### Exporting an Invoice to Xero:
-
-Invoices will automatically make their way to Xero when they're in the Processing or Paid state. This ensures consistent tracking of unpaid and paid invoices. However, if you have Auto Sync disabled, you'll need to manually export your invoices along with your expense reports. Here's how:
-
-1. Head to your Reports page.
-2. Use the filters to locate the invoices you want to export.
-3. Select the invoices you wish to export.
-4. Click Export to > Xero on the top right-hand side.
-
-### Matching Customers and Emails:
-
-When exporting to Xero, we match the recipient's email address with a customer record in Xero. So, make sure each customer in Xero has their email listed in their profile.
-If we can't find a match, we'll create a new customer record in Xero.
-
-### Updating Invoice Status:
-
-1. When you mark an invoice as Paid in Expensify, this status will automatically reflect in Xero.
-2. Similarly, if you mark an invoice as Paid in Xero, it will update automatically in Expensify.
-3. The payment will be recorded in the Collection account you've chosen in your Advanced Settings Configuration.
-
-And that's it! You've successfully set up and managed your invoice exports to Xero, making your tracking smooth and efficient.
-
-{% include faq-begin.md %}
-
-## Will receipt images be exported to Xero?
-
-Yes! The receipt images will be exported to Xero. To see them in Xero click the 'paper' icon in the upper right corner of the expense details and view a PDF of the Expensify report including the receipt image.
-
-## How does Auto Sync work if your workspace was initially connected to Xero with Auto Sync disabled?
-
-You can safely switch it on without affecting existing reports that haven't been exported.
-
-## How does Auto Sync work if a report has already been exported to Xero and reimbursed through ACH or marked as reimbursed in Expensify?
-
-It will be automatically marked as paid in Xero during the next sync. You may either manually update by clicking Sync Now in the Connections tab or Expensify does this on your behalf overnight every day!
-
-## How does Auto Sync work if a report has been exported to Xero and marked as paid in Xero?
-
-It will be automatically marked as reimbursed in Expensify during the next sync. If you need it updated immediately please go to the Connections tab and click Sync Now or if you can wait just let Expensify do it for you overnight.
-
-## How does Auto Sync work if a report has been exported to Xero and marked as paid in Xero?
-
-Reports that haven't been exported to Xero won't be sent automatically.
-
-
-{% include faq-end.md %}
diff --git a/docs/articles/expensify-classic/workspaces/Configure-Reimbursement-Settings.md b/docs/articles/expensify-classic/workspaces/Configure-Reimbursement-Settings.md
new file mode 100644
index 000000000000..aea84d338934
--- /dev/null
+++ b/docs/articles/expensify-classic/workspaces/Configure-Reimbursement-Settings.md
@@ -0,0 +1,55 @@
+---
+title: Configure Reimbursement Settings
+description: Set up direct or indirect reimbursements for your workspace.
+---
+
+
+Reimbursing employees in Expensify is quick, easy, and completely free. Let Expensify do the tedious work for you by taking advantage of the features available to automate employee reimbursement.
+
+# Configure a Workspace's Reimbursement Settings
+There are a few ways to reimburse employees in Expensify. The option that's best suited for you and your business will depend on a few different factors:
+- **Direct Reimbursement**: For companies with a business bank account located in the US that reimburse employees within the US.
+- **Indirect Reimbursement**: This option is available to all members, and connecting a bank account to Expensify is not required. Indirect reimbursement indicates that all reports are reimbursed outside of Expensify.
+- **Global Reimbursement**: If your company’s business bank account is in the US, Canada, the UK, Europe, or Australia, you can reimburse employees directly in nearly any country worldwide.
+
+## Set Up Direct Reimbursement
+
+Once a [business bank account is connected to Expensify](https://help.expensify.com/articles/expensify-classic/bank-accounts-and-payments/Business-Bank-Accounts-USD#how-to-add-a-verified-business-bank-account), a workspace admin can enable indirect reimbursement via **Settings > Workspaces > Workspace Name > Reimbursement > Direct**.
+
+#### Additional features available with Direct Reimbursement:
+- **Select a default reimburser for the Workspace from the dropdown menu**:
+ - The default reimburser will receive notifications to reimburse reports in Expensify.
+ - Any workspace admin who also has access to the business bank account can be added as a default reimburser.
+- **Set a default withdrawal account for the Workspace**:
+ - The default bank account is used to reimburse all of the reports submitted on the corresponding workspace.
+- **Set a manual reimbursement threshold to automate reimbursement**:
+ - If the total of a given report is less than the threshold set, reimbursement will occur automatically upon final approval.
+ - If the total of a given report is more than the threshold, it will need to be reimbursed manually.
+
+## Set Up Indirect Reimbursement
+
+A Workspace admin can enable indirect reimbursement via **Settings > Workspaces > Workspace Name > Reimbursement > Indirect**.
+
+**Additional features under Reimbursement > Indirect:**
+If you reimburse through a separate system or through payroll, Expensify can collect and export employee bank account details for you. Reach out to your Account Manager or Concierge to have the Reimbursement Details Export format added to the account.
+
+## Set Up Global Reimbursement
+
+Once [a business bank account is connected to Expensify](https://help.expensify.com/articles/expensify-classic/bank-accounts-and-payments/Business-Bank-Accounts-USD#how-to-add-a-verified-business-bank-account), a workspace admin can enable indirect reimbursement via **Settings > Workspaces > Workspace Name > Reimbursement > Direct > Enable Global Reimbursements**.
+
+More information on setting up global reimbursements can be found **[here](https://help.expensify.com/articles/expensify-classic/bank-accounts-and-payments/Global-Reimbursements)**.
+
+{% include faq-begin.md %}
+
+## How do I export employee bank account details once the Reimbursement Details Export format is added to my account?
+
+Employee bank account details can be exported from the Reports page by selecting the relevant Approved reports and then clicking **Export to > Reimbursement Details Export**.
+
+## Is it possible to change the name of a verified business bank account in Expensify?
+
+Bank account names can be updated by going to _**Settings > Accounts > Payments**_ and clicking the pencil icon next to the bank account name.
+
+## What is the benefit of setting a default reimburser?
+
+Setting a default reimburser on the Workspace ensures that all outstanding reports are reimbursed as this member will receive notifications alerting them to reports that require their action.
+{% include faq-end.md %}
diff --git a/docs/articles/expensify-classic/workspaces/Expenses.md b/docs/articles/expensify-classic/workspaces/Expense-Settings.md
similarity index 61%
rename from docs/articles/expensify-classic/workspaces/Expenses.md
rename to docs/articles/expensify-classic/workspaces/Expense-Settings.md
index 4a2dc56c430f..c3a8ab31394d 100644
--- a/docs/articles/expensify-classic/workspaces/Expenses.md
+++ b/docs/articles/expensify-classic/workspaces/Expense-Settings.md
@@ -2,19 +2,29 @@
title: Expensify Workspace Expense Settings
description: Expense Settings
---
-# Overview
+Expensify offers multiple ways to customize how expenses are created and managed at the workspace level. Whether you’re using an individual workspace or managing expenses in a group workspace, there are various expense settings you can customize.
-Expensify offers multiple ways to customize how expenses are created in your workspace. In this doc, you’ll learn how to set up expense basics, distance expenses, and time expenses.
+# Set up the expense settings on a workspace
-Whether you’re flying solo with your Individual workspace or submitting with a team on your Group workspace, we have settings to support how you use Expensify.
+You can manage the expense settings on a workspace under **Settings** > **Workspaces** > **Individual** or **Group** > [_Workspace Name_] > **Expenses**. From here you can customize the following expense-level settings:
+- **Violations**: When enabled, employee expenses that fall outside of workspace preferences are flagged as violations.
+- **Preferences**: Configure the reimbursable and billable settings for the expenses submitted to the corresponding workspace.
+- **Distance**: This is where you can set the reimbursable mileage rates for yourself or your employees.
+- **Time**: Set an hourly billable rate so members of the workspace can create time expenses for reimbursement.
-# How to manage expense settings in your workspace
+## Violations
+A workspace admin can customize the following parameters at the expense level:
+- **Max Expense Age (Days)**
+- **Max Expense Amount**
+- **Receipt Required Amount**
-Let’s cover the expense basics first! In the following sections, we’ll go through each part of managing expense settings in your workspace.
+If an expense is submitted that falls outside of those parameters, Expensify will automatically detect it as a violation and alert both the expense creator and reviewer that it needs to be corrected.
-## Controlling cash expenses
+More information on violations can be found [**here**](https://help.expensify.com/articles/expensify-classic/workspaces/Enable-and-set-up-expense-violations).
-A cash expense is any expense created manually or by uploading a receipt for SmartScan; a cash expense does not mean the expense was paid for with cash. The other type of expense you’ll most commonly see is credit card expenses, which means the expenses imported from a credit card or bank connection.
+## Preferences
+
+A cash expense is any expense created manually or by uploading a receipt for SmartScan; it does not mean the expense was paid for with cash. The other type of expense you’ll most commonly see is credit card expenses, which are expenses imported from a credit card or bank connection.
There are four options for cash expenses:
@@ -23,7 +33,7 @@ There are four options for cash expenses:
- **Forced always reimbursable** - All cash expenses are forced to be reimbursable; they cannot be marked as non-reimbursable.
- **Forced always non-reimbursable** - All cash expenses are forced to be non-reimbursable; they cannot be marked as reimbursable.
-## Setting up billable expenses
+### Billable expenses
Billable expenses refer to expenses you or your employees incur that need to be re-billed to a specific client or vendor.
@@ -37,7 +47,7 @@ Under Expense Basics, you can choose the setting that is best for you.
If your Group workspace is connected to Xero, QuickBooks Online, NetSuite, or Sage Intacct, you can export billable expenses to be invoiced to customers. To set this up, go to the Coding tab in the connection configuration settings.
-## Using eReceipts
+### eReceipts
eReceipts are full digital replacements of their paper equivalents for purchases of $75 or less.
@@ -46,65 +56,57 @@ Click the toggle to your preferred configuration.
- **Enabled** - All imported credit card expenses in US dollars of $75 or less will have eReceipts in the receipt image.
- **Disabled** - No expenses will generate an eReceipt.
-Note: _We will not generate an eReceipt for lodging expenses._
+Note: Expensify will not generate an eReceipt for lodging expenses.
-## Securing receipt images
+### Secure receipt images
Whether you’re sharing your receipts with your accountant, having an auditor review exported expenses, or simply wanting to export to keep a hard copy for yourself, receipt visibility will be an essential consideration.
Under _Public Receipt Visibility_, you can determine who can view receipts on your workspace.
- **Enabled** means receipts are viewable by anyone with the URL. They don't need to be an Expensify user or a workspace member to view receipts.
-- **Disabled** means receipts are viewable by users of Expensify, who would have access to view the receipt in the application. You must be an Expensify user with access to the report a receipt is on and logged into your account to view a receipt image via URL.
+- **Disabled** means receipts are viewable by Expensify users, who would have access to view the receipt in the application. You must be an Expensify user with access to the report a receipt is on and logged into your account to view a receipt image via URL.
-## Track mileage expenses
+## Distance Expenses
+How to set up distance expenses:
+1. Select whether you want to capture _miles_ or _kilometers_,
+2. Set the default category to be used on distance expenses,
+3. Click **Add A Mileage Rate** to add as many rates as you need,
+4. Set the reimbursable amount per mile or kilometer.
-Whether using the Individual or Group workspace, you can create distance rates to capture expenses in miles or kilometers.
+**Note:** If a rate is toggled off it is immediately disabled. This means that users are no longer able to select it when creating a new distance expense. If only one rate is available then that rate will be toggled on by default.
-Preliminary setup steps include:
+### Track tax on mileage expenses
+If you’re tracking tax in Expensify you can also track tax on distance expenses. The first step is to enable tax in the workspace. You can do this by going to **Settings** > **Workspaces** > **Individual** or **Group** > [_Workspace Name_] > **Tax**.
-1. Selecting whether you want to capture _miles_ or _kilometers_,
-2. Setting the default category to be used on distance expenses,
-3. Click **Add A Mileage Rate** to add as many rates as you need,
-4. Set the reimbursable amount per mile or kilometer.
+Once tax is enabled on a workspace level you will see a toggle to _Track Tax_ in the Distance section of the workspace settings. If tax is disabled on the workspace the Track Tax toggle will not display.
-Note: _If a rate is toggled off it is immediately disabled. This means that users are no longer able to select it when creating a new distance expense. If only one rate is available then that rate will be toggled on by default._
+When Track Tax is enabled, you will need to enter additional information about the rates you have set. This includes the _Tax Reclaimable on_ and _Tax Rate_ fields. With that information, Expensify will work out the correct tax reclaim for each expense.
-## Set an hourly rate
+If you enable tax but don’t select a tax rate or enter a tax reclaimable amount, we will not calculate any tax amount for that rate. If, at any point, you switch the tax rate or enter a different reclaimable portion for an existing distance rate, the mileage rate will need to be re-selected on expenses for the tax amount to update according to the new values.
-Using Expensify you can track time-based expenses to bill your clients at an hourly rate or allow employees to claim an hourly stipend.
+**Note:** Expensify won’t automatically track cumulative mileage. If you need to track cumulative mileage per employee, we recommend building a mileage report using our custom export formulas.
-Click the toggle under the _Time_ section to enable the feature and set a default hourly rate. After that, you and your users will be able to create time-based expenses from the [**Expenses**](https://expensify.com/expenses) page of the account.
+## Time Expenses
-# Deep dives
+Using Expensify you can track time-based expenses to bill your clients at an hourly rate or allow employees to claim an hourly stipend.
-## What is Concierge Receipt Audit for the Control Plan?
+Click the toggle under the _Time_ section to enable the feature and set a default hourly rate. Then, you and your users can create time-based expenses from the [**Expenses**](https://expensify.com/expenses) page of the account.
-Concierge Receipt Audit is a real-time audit and compliance of receipts submitted by employees and workspace users. Concierge checks every receipt for accuracy and compliance, flagging any expenses that seem fishy before expense reports are even submitted for approval. All risky expenses are highlighted for manual review, leaving you with more control over and visibility into expenses. When a report is submitted and there are risky expenses on it, you will be immediately prompted to review the risky expenses and determine the next steps.
+## Concierge Receipt Audit
-**Why you should use Concierge Receipt Audit**
+Concierge Receipt Audit is a real-time audit and compliance of receipts submitted by employees and workspace users. Concierge checks every receipt for accuracy and compliance, flagging any expenses that seem fishy before expense reports are even submitted for approval. All risky expenses are highlighted for manual review, leaving you with more control over and visibility into expenses. When a report is submitted and there are risky expenses on it, you will be immediately prompted to review the risky expenses and determine the next steps.
+**Benefits of Concierge Receipt Audit**
- To make sure you don't miss any risky expenses that need human oversight.
- To avoid needing to manually review all your company receipts.
- It's included at no extra cost with the [Control Plan](https://www.expensify.com/pricing).
- Instead of paying someone to audit your company expenses or being concerned that your expenses might be audited by a government agency.
-- It's easy to use! Concierge will alert you to the risky expense and present it to you in an easy-to-follow review tutorial.
+- It's easy -- Concierge will alert you to the risky expense and present it to you in an easy-to-follow review tutorial.
- In addition to the risky expense alerts, Expensify will include a Note with audit details on every report.
-Note: _If a report has audit alerts on it, you'll need to Review the report and Accept the alerts before it can be approved._
-
-## Tracking tax on mileage expenses
-
-If you’re tracking tax in Expensify you can also track tax on distance expenses. The first step is to enable tax in the workspace. You can do this by going to **Settings** > **Workspaces** > **Individual** or **Group** > [_Workspace Name_] > **Tax**.
-
-Once tax is enabled on a workspace level you will see a toggle to _Track Tax_ in the Distance section of the workspace settings. If tax is disabled on the workspace the Track Tax toggle will not display.
-
-When Track Tax is enabled you will need to enter additional information to the rates you have set, this includes the _Tax Reclaimable on_ and _Tax Rate_ fields. With that information, Expensify will work out the correct tax reclaim for each expense.
-
-If you enable tax but don’t select a tax rate or enter a tax reclaimable amount, we will not calculate any tax amount for that rate. If, at any point, you switch the tax rate or enter a different reclaimable portion for an existing distance rate, the mileage rate will need to be re-selected on expenses for the tax amount to update according to the new values.
-
-Note: _Expensify won’t automatically track cumulative mileage. If you need to track cumulative mileage per employee, we recommend building a mileage report using our custom export formulas._
+**Note:** If a report has audit alerts on it, you'll need to Review the report and Accept the alerts before it can be approved.
{% include faq-begin.md %}
diff --git a/docs/articles/expensify-classic/workspaces/Reimbursement.md b/docs/articles/expensify-classic/workspaces/Reimbursement.md
deleted file mode 100644
index ed2384d12006..000000000000
--- a/docs/articles/expensify-classic/workspaces/Reimbursement.md
+++ /dev/null
@@ -1,48 +0,0 @@
----
-title: Reimbursement
-description: Enable reimbursement and reimburse expense reports
----
-
-
-# Overview
-Reimbursement in Expensify is quick, easy, and completely free. Let Expensify do the tedious work for you by taking advantage of features to automate employee reimbursement.
-
-# How to Enable Reimbursement
-There are several options for reimbursing employees in Expensify. The options available will depend on which country your business bank account is domiciled in.
-
-## Direct Reimbursement
-
-Direct reimbursement is available to companies who have a verified US bank account and are reimbursing employees within the US. To use direct reimbursement, you must have a US business bank account verified in Expensify.
-
-A Workspace admin can enable direct reimbursement via **Settings > Workspaces > Workspace Name > Reimbursement > Direct**.
-
-**Additional features under Reimbursement > Direct:**
- - Select a **default reimburser** for the Workspace from the dropdown menu. The default reimburser is the person who will receive notifications to reimburse reports in Expensify. You’ll be able to choose among all Workspace Admins who have access to the business bank account.
- - Set a **default withdrawal account** for the Workspace. This will set a default bank account that report reimbursements are withdrawn from.
- - Set a **manual reimbursement threshold** to automate reimbursement. Reports whose total falls under the manual reimbursement threshhold will be reimbursed automatocally upon final approval; reports whose total falls above the threshhold will need to be reimbursed manually by the default reimburser.
-
-Expensify also offers direct global reimbursement to some companies with verified bank accounts in USD, GBP, EUR and AUD who are reimbursing employees internationally. For more information about Global Reimbursement, see LINK
-
-## Indirect Reimbursement
-
-Indirect reimbursement is available to all companies in Expensify and no bank account is required. Indirect reimbursement indicates that the report will be reimbursed outside of Expensify.
-
-A Workspace admin can enanble indirect reimbursement via **Settings > Workspaces > Workspace Name > Reimbursement > Indirect**.
-
-**Additional features under Reimbursement > Indirect:**
-If you reimburse through a seperate system or through payroll, Expensify can collect and export employee bank account details for you. Just reach out to your Account Manager or concierge@expensify.com for us to add the Reimbursement Details Export format to the account.
-
-{% include faq-begin.md %}
-
-## How do I export employee bank account details once the Reimbursement Details Export format is added to my account?
-
-Employee bank account details can be exported from the Reports page by selecting the relevant Approved reports and then clicking **Export to > Reimbursement Details Export**.
-
-## Is it possible to change the name of a verified business bank account in Expensify?
-
-Bank account names can be updated via **Settings > Accounts > Payments** and clicking the pencil icon next to the bank account name.
-
-## What is the benefit of setting a default reimburser?
-
-The main benefit of being defined as the "reimburser" in the Workspace settings is that this user will receive notifications on their Home page alerting them when reports need to be reimbursed.
-{% include faq-end.md %}
diff --git a/docs/articles/expensify-classic/workspaces/Currency.md b/docs/articles/expensify-classic/workspaces/Set-Currency.md
similarity index 80%
rename from docs/articles/expensify-classic/workspaces/Currency.md
rename to docs/articles/expensify-classic/workspaces/Set-Currency.md
index 77b5fbbb3ebc..4537f510b8b7 100644
--- a/docs/articles/expensify-classic/workspaces/Currency.md
+++ b/docs/articles/expensify-classic/workspaces/Set-Currency.md
@@ -1,18 +1,17 @@
---
-title: Report Currency
-description: Understanding expense and report currency
+title: Setting Up Report Currency
+description: Define a currency in your workspace's settings
---
# Overview
As a workspace admin, you can choose a default currency for your employees' expense reports, and we’ll automatically convert any expenses into that currency.
-Here are a few essential things to remember:
-
+Here are a few things to remember:
- Currency settings for a workspace apply to all expenses under that workspace. If you need different default currencies for certain employees, creating separate workspaces and configuring the currency settings is best.
- As an admin, the currency settings you establish in the workspace will take precedence over any currency settings individual users may have in their accounts.
- Currency is a workspace-level setting, meaning the currency you set will determine the currency for all expenses submitted on that workspace.
-# How to select the currency on a workspace
+# Select the currency on a workspace
## As an admin on a group workspace
@@ -28,11 +27,9 @@ Here are a few essential things to remember:
Please note the currency setting on an individual workspace is overridden when you submit a report on a group workspace.
-# Deep Dive
-
## Conversion Rates
-Using data from Open Exchange Rates, Expensify takes the average rate on the day the expense occurred to convert an expense from one currency to another. The conversion rate can vary depending on when the expense happened since the rate is determined after the market closes on that specific date.
+Using data from Open Exchange Rates, Expensify converts expenses from one currency to another using the average rate on the day the expense occurred. The conversion rate can vary depending on when the expense occurred since it is determined after the market closes on that specific date.
If the markets aren’t open on the day the expense takes place (i.e., on a Saturday), Expensify will use the daily average rate from the last available market day before the purchase took place.
@@ -40,7 +37,7 @@ When an expense is logged for a future date, possibly to anticipate a purchase t
## Managing expenses for employees in several different countries
-Suppose you have employees scattered across the globe who submit expense reports in various currencies. The best way to manage those expenses is to create separate group workspaces for each location or region where your employees are based.
+If you have employees scattered across the globe who submit expense reports in various currencies, the best way to manage those expenses is to create separate group workspaces for each location or region where your employees are based.
Then, set the default currency for that workspace to match the currency in which the employees are reimbursed.
diff --git a/docs/articles/new-expensify/connections/Set-Up-NetSuite-Connection.md b/docs/articles/new-expensify/connections/Set-Up-NetSuite-Connection.md
new file mode 100644
index 000000000000..5c6678e068be
--- /dev/null
+++ b/docs/articles/new-expensify/connections/Set-Up-NetSuite-Connection.md
@@ -0,0 +1,375 @@
+---
+title: Set up NetSuite connection
+description: Integrate NetSuite with Expensify
+---
+
+
+# Connect to NetSuite
+
+## Overview
+Expensify’s integration with NetSuite allows you to sync data between the two systems. Before you start connecting Expensify with NetSuite, there are a few things to note:
+
+- You must use NetSuite administrator credentials to initiate the connection
+- A Control Plan in Expensify is required to integrate with NetSuite
+- Employees don’t need NetSuite access or a NetSuite license to submit expense reports and sync them to NetSuite
+- Each NetSuite subsidiary must be connected to a separate Expensify workspace
+- The workspace currency in Expensify must match the NetSuite subsidiary's default currency
+
+## Step 1: Install the Expensify Bundle in NetSuite
+1. While logged into NetSuite as an administrator, go to **Customization > SuiteBundler > Search & Install Bundles**, then search for “Expensify”
+2. Click on the Expensify Connect bundle (Bundle ID 283395)
+3. Click **Install**
+4. If you already have the Expensify Connect bundle installed, head to **Customization > SuiteBundler > Search & Install Bundles > List**, and update it to the latest version
+5. Select "Show on Existing Custom Forms" for all available fields
+
+## Step 2: Enable Token-Based Authentication
+1. In NetSuite, go to **Setup > Company > Enable Features > SuiteCloud > Manage Authentication**
+2. Make sure “Token Based Authentication” is enabled
+3. Click **Save**
+
+
+## Step 3: Add Expensify Integration Role to a User
+1. In NetSuite, head to **Lists > Employees**, and find the user who you would like to add the Expensify Integration role to. The user you select must at least have access to the permissions included in the Expensify Integration Role, and Admin access works too, but Admin access is not required.
+2. Click **Edit > Access**, then find the Expensify Integration role in the dropdown and add it to the user
+3. Click **Save**
+
+Remember that Tokens are linked to a User and a Role, not solely to a User. It’s important to note that you cannot establish a connection with tokens using one role and then switch to another role afterward. Once you’ve initiated a connection with tokens, you must continue using the same token/user/role combination for all subsequent sync or export actions.
+
+## Step 4: Create Access Tokens
+1. In NetSuite, enter “page: tokens” in the Global Search
+2. Click **New Access Token**
+3. Select Expensify as the application (this must be the original Expensify integration from the bundle)
+4. Select the role Expensify Integration
+5. Click **Save**
+6. Copy and paste the token and token ID to a saved location on your computer (this is the only time you will see these details)
+
+## Step 5: Confirm Expense Reports are enabled in NetSuite
+Expense Reports must be enabled in order to use Expensify’s integration with NetSuite.
+
+1. In NetSuite, go to **Setup > Company > Enable Features > Employees**
+2. Confirm the checkbox next to "Expense Reports" is checked
+3. If not, click the checkbox and then click **Save** to enable Expense Reports
+
+## Step 6: Confirm Expense Categories are set up in NetSuite
+Once Expense Reports are enabled, Expense Categories can be set up in NetSuite. Expense Categories are synced to Expensify as Categories. Each Expense Category is an alias mapped to a General Ledger account so that employees can more easily categorize expenses.
+
+1. In NetSuite, go to **Setup > Accounting > Expense Categories** (a list of Expense Categories should show)
+2. If no Expense Categories are visible, click **New** to create new ones
+
+## Step 7: Confirm Journal Entry Transaction Forms are Configured Properly
+1. In NetSuite, go to **Customization > Forms > Transaction Forms**
+2. Click **Customize** or **Edit** next to the Standard Journal Entry form
+3. Click **Screen Fields > Main**. Please verify the “Created From” label has “Show” checked and the "Display Type" is set to "Normal"
+4. Click the sub-header **Lines** and verify that the “Show” column for “Receipt URL” is checked
+5. Go to **Customization > Forms > Transaction Forms** and ensure that all other transaction forms with the journal type have this same configuration
+
+## Step 8: Confirm Expense Report Transaction Forms are Configured Properly
+1. In NetSuite, go to **Customization > Forms > Transaction Forms**
+2. Click **Customize** or **Edit** next to the Standard Expense Report form, then click **Screen Fields > Main**
+3. Verify the “Created From” label has “Show” checked and the "Display Type" is set to "Normal"
+4. Click the second sub-header, **Expenses**, and verify that the "Show" column for "Receipt URL" is checked
+5. Go to **Customization > Forms > Transaction Forms** and ensure that all other transaction forms with the expense report type have this same configuration
+
+## Step 9: Confirm Vendor Bill Transactions Forms are Configured Properly
+1. In NetSuite, go to **Customization > Forms > Transaction Forms**
+2. Click **Customize** or **Edit** next to your preferred Vendor Bill form
+3. Click **Screen Fields > Main** and verify that the “Created From” label has “Show” checked and that Departments, Classes, and Locations have the “Show” label unchecked
+4. Under the **Expenses** sub-header (make sure to click the “Expenses” sub-header at the very bottom and not “Expenses & Items”), ensure “Show” is checked for Receipt URL, Department, Location, and Class
+5. Go to **Customization > Forms > Transaction Forms** and ensure that all other transaction forms with the vendor bill type have this same configuration
+
+## Step 10: Confirm Vendor Credit Transactions Forms are Configured Properly
+1. In NetSuite, go to **Customization > Forms > Transaction Forms**
+2. Click **Customize** or **Edit** next to your preferred Vendor Credit form, then click **Screen Fields > Main** and verify that the “Created From” label has “Show” checked and that Departments, Classes, and Locations have the “Show” label unchecked
+3. Under the **Expenses** sub-header (make sure to click the “Expenses” sub-header at the very bottom and not “Expenses & Items”), ensure “Show” is checked for Receipt URL, Department, Location, and Class
+4. Go to **Customization > Forms > Transaction Forms** and ensure that all other transaction forms with the vendor credit type have this same configuration
+
+## Step 11: Set up Tax Groups (only applicable if tracking taxes)
+Expensify imports NetSuite Tax Groups (not Tax Codes), which you can find in NetSuite under **Setup > Accounting > Tax Groups**.
+
+Tax Groups are an alias for Tax Codes in NetSuite and can contain one or more Tax Codes (Please note: for UK and Ireland subsidiaries, please ensure your Tax Groups do not have more than one Tax Code). We recommend naming Tax Groups so your employees can easily understand them, as the name and rate will be displayed in Expensify.
+
+To set up Tax Groups in NetSuite:
+
+1. Go to **Setup > Accounting > Tax Groups**
+2. Click **New**
+3. Select the country for your Tax Group
+4. Enter the Tax Name (this is what employees will see in Expensify)
+5. Select the subsidiary for this Tax Group
+6. Select the Tax Code from the table you wish to include in this Tax Group
+7. Click **Add**
+8. Click **Save**
+9. Create one NetSuite Tax Group for each tax rate you want to show in Expensify
+
+Ensure Tax Groups can be applied to expenses by going to **Setup > Accounting > Set Up Taxes** and setting the Tax Code Lists Include preference to “Tax Groups And Tax Codes” or “Tax Groups Only.” If this field does not display, it’s not needed for that specific country.
+
+## Step 12: Connect Expensify to NetSuite
+1. Log into Expensify as a workspace admin
+2. Click your profile image or icon in the bottom left menu
+3. Scroll down and click **Workspaces** in the left menu
+4. Select the workspace you want to connect to NetSuite
+5. Click **More features** in the left menu
+6. Scroll down to the Integrate section and enable Accounting
+7. Click **Accounting** in the left menu
+8. Click **Set up** next to NetSuite
+9. Click **Next** until you reach setup step 5 (If you followed the instructions above, then the first four setup steps will be complete)
+10. On setup step 5, enter your NetSuite Account ID, Token ID, and Token Secret (the NetSuite Account ID can be found in NetSuite by going to **Setup > Integration > Web Services Preferences**)
+11. Click **Confirm** to complete the setup
+
+After completing the setup, the NetSuite connection will sync. It can take 1-2 minutes to sync with NetSuite.
+
+Once connected, all reports exported from Expensify will be generated in NetSuite using SOAP Web Services (the term NetSuite employs when records are created through the integration).
+
+## FAQ
+### What type of Expensify plan is required to connect to NetSuite?
+You need a Control workspace to integrate with NetSuite. If you have a Collect workspace, you will need to upgrade to Control.
+
+### Page size
+Make sure your page size is set to 1000 in NetSuite for importing your customers and vendors. Go to **Setup > Integration > Web Services Preferences** and search **Page Size** to determine your page size.
+
+
+# Configure NetSuite integration
+## Step 1: Configure import settings
+
+The following section will help you determine how data will be imported from NetSuite into Expensify. To change your import settings, navigate to the Accounting settings for your workspace, then click **Import** under the NetSuite connection.
+
+### Expense Categories
+Your NetSuite Expense Categories are automatically imported into Expensify as categories. This cannot be amended, and any new categories you'd like to add must be added as Expense Categories in NetSuite.
+
+Once imported, you can turn specific Categories on or off under **Settings > Workspaces > [Workspace Name] > Categories**.
+
+### Departments, Classes, and Locations
+The NetSuite integration allows you to import departments, classes, and locations from NetSuite into Expensify as Tags, Report Fields, or using the NetSuite Employee Default.
+
+- **NetSuite Employee Default:** If default Department, Class, and Locations have been configured on NetSuite employee records, then you can choose to have the NetSuite employee default applied upon export from Expensify to NetSuite. With this selection, employees will not make a selection in Expensify.
+- **Tags:** Employees can select the department, class, or location on each individual expense. If the employee's NetSuite employee record has a default value, then each expense will be defaulted to that tag upon creation, with the option for the employee to select a different value on each expense.
+- **Report Fields:** Employees can select one department/class/location for each expense report.
+
+
+New departments, classes, and locations must be added in NetSuite. Once imported, you can turn specific tags on or off under **Settings > Workspaces > [Workspace Name] > Tags**. You can turn specific report fields on or off under **Settings > Workspaces > [Workspace Name] > Report Fields**.
+
+### Customers and Projects
+The NetSuite integration allows you to import customers and projects into Expensify as Tags or Report Fields.
+
+- **Tags:** Employees can select the customer or project on each individual expense.
+- **Report Fields:** Employees can select one department/class/location for each expense report.
+
+New customers and projects must be added in NetSuite. Once imported, you can turn specific tags on or off under **Settings > Workspaces > [Workspace Name] > Tags**. You can turn specific report fields on or off under **Settings > Workspaces > [Workspace Name] > Report Fields**.
+
+When importing customers or projects, you can also choose to enable **Cross-subsidiary customers/projects**. This setting allows you to import Customers and Projects across all NetSuite subsidiaries to a single Expensify workspace. This setting requires you to enable “Intercompany Time and Expense” in NetSuite. To enable that feature in NetSuite, go to **Setup > Company > Setup Tasks: Enable Features > Advanced Features**.
+
+### Tax
+The NetSuite integration allows users to apply a tax rate and amount to each expense for non-US NetSuite subsidiaries. To do this, import Tax Groups from NetSuite:
+
+1. In NetSuite, head to **Setup > Accounting > Tax Groups**
+2. Once imported, go to the NetSuite connection configuration page in Expensify (under **Settings > Workspaces > [Workspace Name] > Accounting > NetSuite > Import**)
+3. Enable Tax
+4. Go back to the Accounting screen, click the three dots next to NetSuite, and click **Sync now**
+5. All Tax Groups for the connected NetSuite subsidiary will be imported to Expensify as taxes.
+6. After syncing, go to **Settings > Workspace > [Workspace Name] > Tax** to see the tax groups imported from NetSuite
+
+### Custom Segments
+You can import one or more Custom Segments from NetSuite for selection in Expensify. To add a Custom Segment to your Expensify workspace:
+
+1. Go to **Settings > Workspaces > [Workspace Name] > Accounting**
+2. Click **Import** under NetSuite
+3. Click **Custom segments/records**
+4. Click **Add custom segment/record**
+
+From there, you'll walk through a simple setup wizard. You can find detailed instructions below for each setup step.
+
+1. In Step 1, you'll select whether you'd like to import a custom segment or a custom record. For a Custom Segment, continue. We have separate instructions for [Custom Records](link) and [Custom Lists](link).
+2. **Segment Name**
+ a. Log into NetSuite as an administrator
+ b. Go to **Customization > Lists, Records, & Fields > Custom Segments**
+ c. You’ll see the Segment Name on the Custom Segments page
+3. Internal ID
+ a. Ensure you have internal IDs enabled in NetSuite under **Home > Set Preferences**
+ b. Navigate back to the **Custom Segments** page
+ c. Click the **Custom Record Type** link
+ d. You’ll see the Internal ID on the Custom Record Type page
+4. **Script ID/Field ID**
+ a. If configuring Custom Segments as Report Fields, use the Field ID on the Transactions tab (under **Custom Segments > Transactions**). If no Field ID is shown, use the unified ID (just called “ID” right below the “Label”).
+ b. If configuring Custom Segments as Tags, use the Field ID on the Transaction Columns tab (under **Custom Segments > Transaction Columns**). If no Field ID is shown, use the unified ID (just called “ID” right below the “Label”).
+ c. Note that as of 2019.1, any new custom segments that you create automatically use the unified ID, and the "Use as Field ID" box is not visible. If you are editing a custom segment definition that was created before 2019.1, the "Use as Field ID" box is available. To use a unified ID for the entire custom segment definition, check the "Use as Field ID" box. When the box is checked, no field ID fields or columns are shown on the Application & Sourcing subtabs because one ID is used for all fields.
+5. Select whether you'd like to import the custom segment as Tags or Report Fields
+6. Finally, confirm that all the details look correct
+
+**Note:** Don’t use the “Filtered by” feature available for Custom Segments. Expensify can’t make these dependent on other fields. If you do have a filter selected, we suggest switching that filter in NetSuite to “Subsidiary” and enabling all subsidiaries to ensure you don’t receive any errors upon exporting reports.
+
+### Custom Records
+You can import one or more Custom Records from NetSuite for selection in Expensify. To add a Custom Record to your Expensify workspace:
+
+1. Go to **Settings > Workspaces > [Workspace Name] > Accounting**
+2. Click **Import** under NetSuite
+3. Click **Custom segments/records**
+4. Click **Add custom segment/record**
+
+From there, you'll walk through a simple setup wizard. You can find detailed instructions below for each setup step.
+
+1. In Step 1, you'll select whether you'd like to import a custom segment or a custom record. For a Custom Record, continue. We have separate instructions for [Custom Segments](link) and [Custom Lists](link).
+2. **Segment Name**
+ a. Log into NetSuite as an administrator
+ b. Go to **Customization > Lists, Records, & Fields > Custom Segments**
+ c. You’ll see the Custom Record Name on the Custom Segments page
+3. **Internal ID**
+ a. Make sure you have Internal IDs enabled in NetSuite under **Home > Set Preferences**
+ b. Navigate back to the **Custom Segment** page
+ c. Click the **Custom Record Type** hyperlink
+ d. You’ll see the Internal ID on the Custom Record Type page
+4. **Transaction Column ID**
+ a. If configuring Custom Records as Report Fields, use the Field ID on the Transactions tab (under **Custom Segments > Transactions**).
+ b. If configuring Custom Records as Tags, use the Field ID on the Transaction Columns tab (under **Custom Segments > Transaction Columns**).
+5. Select whether you'd like to import the custom record as Tags or Report Fields
+6. Finally, confirm that all the details look correct
+
+### Custom Lists
+You can import one or more Custom Lists from NetSuite for selection in Expensify. To add a Custom List to your Expensify workspace:
+
+1. Go to **Settings > Workspaces > [Workspace Name] > Accounting**
+2. Click **Import** under NetSuite
+3. Click **Custom list**
+4. Click **Add custom list**
+
+From there, you'll walk through a simple setup wizard. You can find detailed instructions below for each setup step.
+
+1. In Step 1, you'll select which Custom List you'd like to import from a pre-populated list
+2. **Transaction Line Field ID**
+ a. Log into NetSuite as an admin
+ b. Search **“Transaction Line Fields”** in the global search
+ c. Click into the desired Custom List
+ d. You'll find the transaction Line Field ID along the left-hand side of the page
+3. Select whether you'd like to import the custom list as Tags or Report Fields
+4. Finally, confirm that all the details look correct
+
+From there, you should see the values for the Custom Lists under the Tag or Report Field settings in Expensify.
+## Step 2: Configure export settings
+There are numerous options for exporting data from Expensify to NetSuite. To access these settings, head to **Settings > Workspaces > [Workspace name] > Accounting** and click **Export** under NetSuite.
+
+### Preferred Exporter
+Any workspace admin can export reports to NetSuite. For auto-export, Concierge will export on behalf of the preferred exporter. The preferred exporter will also be notified of any expense reports that fail to export to NetSuite due to an error.
+
+### Date
+You can choose which date to use for the records created in NetSuite. There are three date options:
+
+1. **Date of last expense:** This will use the date of the previous expense on the report
+2. **Submitted date:** The date the employee submitted the report
+3. **Exported date:** The date you export the report to NetSuite
+
+### Export out-of-pocket expenses as
+**Expense Reports**
+Out-of-pocket expenses will be exported to NetSuite as expense reports, which will be posted to the payables account designated in NetSuite.
+
+**Vendor Bills**
+Out-of-pocket expenses will be exported to NetSuite as vendor bills. Each report will be posted as payable to the vendor associated with the employee who submitted the report. You can also set an approval level in NetSuite for vendor bills.
+
+**Journal Entries**
+Out-of-pocket expenses will be exported to NetSuite as journal entries. All the transactions will be posted to the payable account specified in the workspace. You can also set an approval level in NetSuite for the journal entries.
+
+Note: By default, journal entry forms do not contain a customer column, so it is not possible to export customers or projects with this export option. Also, The credit line and header level classifications are pulled from the employee record.
+
+### Export company card expenses as
+**Expense Reports**
+To export company card expenses as expense reports, you will need to configure your default corporate cards in NetSuite. To do this, you must select the correct card on the NetSuite employee records (for individual accounts) or the subsidiary record (If you use a non-One World account, the default is found in your accounting preferences).
+
+To update your expense report transaction form in NetSuite:
+
+1. Go to **Customization > Forms > Transaction Forms**
+2. Click **Edit** next to the preferred expense report form
+3. Go to the **Screen Fields > Main** tab
+4. Check “Show” for "Account for Corporate Card Expenses"
+5. Go to the **Screen Fields > Expenses** tab
+6. Check “Show” for "Corporate Card"
+
+You can also select the default account on your employee record to use individual corporate cards for each employee. Make sure you add this field to your employee entity form in NetSuite. If you have multiple cards assigned to a single employee, you cannot export to each account. You can only have a single default per employee record.
+
+**Vendor Bills**
+Company card expenses will be posted as a vendor bill payable to the default vendor specified in your workspace Accounting settings. You can also set an approval level in NetSuite for the bills.
+
+
+**Journal Entries**
+Company Card expenses will be posted to the Journal Entries posting account selected in your workspace Accounting settings.
+
+Important Notes:
+
+- Expensify Card expenses will always export as Journal Entries, even if you have Expense Reports or Vendor Bills configured for non-reimbursable expenses on the Export tab
+- Journal entry forms do not contain a customer column, so it is not possible to export customers or projects with this export option
+- The credit line and header level classifications are pulled from the employee record
+
+### Export invoices to
+Select the Accounts Receivable account where you want your Invoice reports to export. In NetSuite, the invoices are linked to the customer, corresponding to the email address where the invoice was sent.
+
+### Export foreign currency amount
+Enabling this feature allows you to send the original amount of the expense rather than the converted total when exporting to NetSuite. This option is only available when exporting out-of-pocket expenses as Expense Reports.
+
+### Export to next open period
+When this feature is enabled and you try exporting an expense report to a closed NetSuite period, we will automatically export to the next open period instead of returning an error.
+
+
+## Step 3: Configure advanced settings
+To access the advanced settings of the NetSuite integration, head to **Settings > Workspaces > [Workspace name] > Accounting** and click **Advanced** under NetSuite.
+
+
+Let’s review the different advanced settings and how they interact with the integration.
+
+### Auto-sync
+We strongly recommend enabling auto-sync to ensure that the information in NetSuite and Expensify is always in sync. The following will occur when auto-sync is enabled:
+
+**Daily sync from NetSuite to Expensify:** Once a day, Expensify will sync any changes from NetSuite into Expensify. This includes any new, updated, or removed departments/classes/locations/projects/etc.
+
+**Auto-export:** When an expense report reaches its final state in Expensify, it will be automatically exported to NetSuite. The final state will either be reimbursement (if you reimburse members through Expensify) or final approval (if you reimburse members outside of Expensify).
+
+**Reimbursement-sync:** If Sync Reimbursed Reports (more details below) is enabled, then we will sync the reimbursement status of reports between Expensify and NetSuite.
+
+### Sync reimbursed reports
+When Sync reimbursed reports is enabled, the reimbursement status will be synced between Expensify and NetSuite.
+
+**If you reimburse members through Expensify:** Reimbursing an expense report will trigger auto-export to NetSuite. When the expense report is exported to NetSuite, a corresponding bill payment will also be created in NetSuite.
+
+**If you reimburse members outside of Expensify:** Expense reports will be exported to NetSuite at time of final approval. After you mark the report as paid in NetSuite, the reimbursed status will be synced back to Expensify the next time the integration syncs.
+
+To ensure this feature works properly for expense reports, make sure that the reimbursement account you choose within the settings matches the default account for Bill Payments in NetSuite. When exporting invoices, once marked as Paid, the payment is marked against the account selected after enabling the Collection Account setting.
+
+### Invite employees and set approvals
+Enabling this feature will invite all employees from the connected NetSuite subsidiary to your Expensify workspace. Once imported, Expensify will send them an email letting them know they’ve been added to a workspace.
+
+In addition to inviting employees, this feature enables a custom set of approval workflow options, which you can manage in Expensify Classic:
+
+- **Basic Approval:** A single level of approval, where all users submit directly to a Final Approver. The Final Approver defaults to the workspace owner but can be edited on the people page.
+- **Manager Approval (default):** Two levels of approval route reports first to an employee’s NetSuite expense approver or supervisor, and second to a workspace-wide Final Approver. By NetSuite convention, Expensify will map to the supervisor if no expense approver exists. The Final Approver defaults to the workspace owner but can be edited on the people page.
+- **Configure Manually:** Employees will be imported, but all levels of approval must be manually configured on the workspace’s People settings page. If you enable this setting, it’s recommended you review the newly imported employees and managers on the **Settings > Workspaces > Group > [Workspace Name] > People** page.
+
+### Auto-create employees/vendors
+With this feature enabled, Expensify will automatically create a new employee or vendor in NetSuite (if one doesn’t already exist) using the name and email of the report submitter.
+
+### Enable newly imported categories
+With this feature enabled, anytime a new Expense Category is created in NetSuite, it will be imported into Expensify as an enabled category. If the feature is disabled, then new Expense Categories will be imported into Expensify as disabled.
+
+### Setting approval levels
+You can set the NetSuite approval level for each different export type:
+
+- **Expense report approval level:** Choose from "NetSuite default preference," “Only supervisor approved,” “Only accounting approved,” or “Supervisor and accounting approved.”
+- **Vendor bill approval level and Journal entry approval level:** Choose from "NetSuite default preference," “Pending approval,” or “Approved for posting.”
+
+If you have Approval Routing selected in your accounting preference, this will override the selections in Expensify. If you do not wish to use Approval Routing in NetSuite, go to **Setup > Accounting > Accounting Preferences > Approval Routing** and ensure Vendor Bills and Journal Entries are not selected.
+
+### Custom form ID
+By default, Expensify will create entries using the preferred transaction form set in NetSuite. Alternatively, you have the option to designate a specific transaction form to be used.
+
+
+
+## FAQ
+
+### How does Auto-sync work with reimbursed reports?
+If a report is reimbursed via ACH or marked as reimbursed in Expensify and then exported to NetSuite, the report is automatically marked as paid in NetSuite.
+
+If a report is exported to NetSuite, then marked as paid in NetSuite, the report will automatically be marked as reimbursed in Expensify during the next sync.
+
+### Will enabling auto-sync affect existing approved and reimbursed reports?
+Auto-sync will only export newly approved reports to NetSuite. Any reports that were approved or reimbursed before enabling auto-sync will need to be manually exported in order to sync them to NetSuite.
+
+
+### When using multi-currency features in NetSuite, can expenses be exported with any currency?
+When using multi-currency features with NetSuite, remember these points:
+
+**Employee/Vendor currency:** The currency set for a NetSuite vendor or employee record must match the subsidiary currency for whichever subsidiary you export that user's reports to. A currency mismatch will cause export errors.
+**Bank Account Currency:** When synchronizing bill payments, your bank account’s currency must match the subsidiary’s currency. Failure to do so will result in an “Invalid Account” error.
diff --git a/docs/articles/new-expensify/connections/Set-Up-Sage-Intacct-connection.md b/docs/articles/new-expensify/connections/Set-Up-Sage-Intacct-connection.md
new file mode 100644
index 000000000000..1f5d9662bb4f
--- /dev/null
+++ b/docs/articles/new-expensify/connections/Set-Up-Sage-Intacct-connection.md
@@ -0,0 +1,317 @@
+---
+title: Set up Sage Intacct connection
+description: Integrate Sage Intacct with Expensify
+---
+
+
+# Connect to Sage Intacct
+
+## Overview
+Expensify’s integration with Sage Intacct allows you to connect using either role-based permissions or user-based permissions and exporting either expense reports or vendor bills.
+
+Checklist of items to complete:
+
+1. Create a web services user and configure permissions
+1. Enable the T&E module (only required if exporting out-of-pocket expenses as Expense Reports)
+1. Set up Employees in Sage Intacct (only required if exporting expenses as Expense Reports)
+1. Set up Expense Types (only required if exporting expenses as Expense Reports)
+1. Enable Customization Services
+1. Download the Expensify Package
+1. Upload the Expensify Package in Sage Intacct
+1. Add web services authorization
+1. Enter credentials and connect Expensify and Sage Intacct
+1. Configure integration sync options
+
+## Step 1a: Create a web services user (Connecting with User-based permissions)
+Note: If the steps in this section look different in your Sage Intacct instance, you likely use role-based permissions. If that’s the case, follow the steps [here].
+
+To connect to Sage Intacct, you’ll need to create a special web services user (please note that Sage Intacct does not charge extra for web services users).
+
+1. Go to **Company > Web Services Users > New**.
+2. Configure the user as outlined below:
+ - **User ID**: “xmlgateway_expensify”
+ - **Last Name and First Name:** “Expensify”
+ - **Email Address:** Your shared accounting team email
+ - **User Type:** “Business”
+ - **Admin Privileges:** “Full”
+ - **Status:** “Active”
+
+Next, configure correct permissions for the new web services user.
+
+1. Go to the subscription link for this user in the user list
+1. Click on the checkbox next to the Application/Module
+1. Click **Permissions**
+
+These are the permissions required for this integration when exporting out-of-pocket expenses as vendor bills:
+
+- **Administration (All)**
+- **Company (Read-only)**
+- **Cash Management (All)**
+- **General Ledger (All)**
+- **Time & Expense (All)** - Only required if exporting out-of-pocket expenses as expense reports
+- **Projects (Read-only)** - Only required if using Projects or Customers
+- **Accounts Payable (All)** - Only required if exporting any expenses expenses as vendor bills
+
+## Step 1b: Create a web services user (Connecting with Role-based permissions)
+Note: If the steps in this section look different in your Sage Intacct instance, you likely use role-based permissions. If that’s the case, follow the steps [here].
+
+**First, you'll need to create the new role:**
+
+1. In Sage Intacct, click **Company**, then click on the **+ button** next to Roles
+1. Name the role "Expensify", then click **Save**
+1. Go to **Roles > Subscriptions** and find the “Expensify” role you just created
+1. Configure correct permissions for this role by clicking the checkbox and then clicking on the Permissions hyperlink. These are the permissions required for this integration when exporting out-of-pocket expenses as vendor bills:
+ - **Administration (All)**
+ - **Company (Read-only)**
+ - **Cash Management (All)**
+ - **General Ledger (All)**
+ - **Time & Expense (All)** - Only required if exporting out-of-pocket expenses as expense reports
+ - **Projects (Read-only)** - Only required if using Projects or Customers
+ - **Accounts Payable (All)** - Only required if exporting any expenses expenses as vendor bills
+
+**Next, you’ll create a web services user and assign the role to that user:**
+
+1. Go to **Company > Web Services Users > New**
+2. Set up the user as described below:
+ - **User ID:** “xmlgateway_expensify”
+ - **Last name and First name:** “Expensify”
+ - **Email address:** your shared accounting team email
+ - **User type:** “Business”
+ - **Admin privileges:** “Full”
+ - **Status:** “Active”
+3. Assign the role to that user: click the **+ button**, then select the “Expensify” role and click **Save**
+
+
+## Step 2: Enable and configure the Time & Expenses Module
+**Note: This step is only required if exporting out-of-pocket expenses from Expensify to Sage Intacct as Expense Reports.**
+
+Enabling the T&E module is a paid subscription through Sage Intacct and the T&E module is often included in your Sage Intacct instance. For information on the costs of enabling this module, please contact your Sage Intacct account manager.
+
+**To enable the Time & Expenses module:**
+
+In Sage Intacct, go to **Company menu > Subscriptions > Time & Expenses** and toggle the switch to subscribe.
+
+**After enabling T&E, configure it as follows:**
+
+1. Ensure that **Expense types** is checked
+2. Under **Auto-numbering sequences** set the following:
+ - **Expense Report:** EXP
+ - **Employee:** EMP
+ - **Duplicate Numbers:** Select “Do not allow creation”
+ - To create the EXP sequence, click on the down arrow on the expense report line and select **Add:
+ 1. **Sequence ID:** EXP
+ 1. **Print Title:** EXPENSE REPORT
+ 1. **Starting Number:** 1
+ 1. **Next Number:** 2
+3. Select **Advanced Settings** and configure the following:
+ a. **Fixed Number Length:** 4
+ b. **Fixed Prefix:** EXP
+4. Click **Save**
+5. Under Expense Report approval settings, ensure that **Enable expense report approval** is unchecked
+6. Click **Save** to confirm your configuration
+
+
+## Step 3: Set up Employees in Sage Intacct
+**Note: This step is only required if exporting out-of-pocket expenses from Expensify to Sage Intacct as Expense Reports.**
+
+To set up employees in Sage Intacct:
+
+1. Navigate to Time & Expenses and click the **plus button** next to Employees.
+ - If you don’t see the Time & Expense option in the top ribbon, you may need to adjust your settings. Go to **Company > Roles > Time & Expenses** and enable all permissions.
+2. To create an employee, you’ll need to provide the following information:
+ - Employee ID
+ - Primary contact name
+ - Email address
+ 1. In the "Primary contact name" field, click the dropdown arrow.
+ 1. Select the employee if they’ve already been created.
+ 1. Otherwise, click **+ Add** to create a new employee.
+ 1. Fill in their Primary Email Address along with any other required information
+
+
+## Step 4: Set up Expense Types in Sage Intacct
+**Note: This step is only required if exporting out-of-pocket expenses from Expensify to Sage Intacct as Expense Reports.**
+
+Expense Types provide a user-friendly way to display the names of your expense accounts to your employees. To set up expense types in Sage Intacct:
+
+1. **Setup Your Chart of Accounts**
+ - Before configuring Expense Types, ensure your Chart of Accounts is set up. You can set up accounts in bulk by going to **Company > Open Setup > Company Setup Checklist** and clicking **Import**.
+2. **Set up Expense Types**
+ - Go to Time & Expense
+ - Open Setup and click the **plus button** next to Expense Types
+3. For each Expense Type, provide the following information:
+ - **Expense Type**
+ - **Description**
+ - **Account Number** (from your General Ledger)
+
+## Step 5: Enable Customization Services
+**Note:** If you already have Platform Services enabled, you can skip this step.
+
+To enable Customization Services, go to **Company > Subscriptions > Customization Services**.
+
+
+## Step 6: Download the Expensify Package
+1. In Expensify, go to Settings > Workspaces
+1. Click into the workspace where you'd like to connect to Sage Intacct
+ - If you already use Expensify, you can optionally create a test workspace by clicking **New Workspace** at the top-right of the Workspaces page. A test workspace allows you to have a sandbox environment for testing before implementing the integration live.
+1. Go to **Connections > Sage Intacct > Connect to Sage Intacct**
+1. Select **Download Package** (You only need to download the file; we’ll upload it from your Downloads folder later)
+
+## Step 7: Upload Package in Sage Intacct
+If you use Customization Services:
+
+1. Go to **Customization Services > Custom Packages > New Package**
+1. Click on **Choose File** and select the Package file from your downloads folder
+1. Click **Import**
+
+If you use Platform Services:
+
+1. Go to **Platform Services > Custom Packages > New Package**
+1. Click on **Choose File** and select the Package file from your downloads folder
+1. Click **Import**
+
+
+## Step 8: Add Web Services Authorization
+1. Go to **Company > Company Info > Security** in Sage Intacct and click **Edit**
+2. Scroll down to **Web Services Authorizations** and add “expensify” (all lower case) as a Sender ID
+
+## Step 9: Enter Credentials and Connect Expensify and Sage Intacct
+1. In Expensify, go to **Settings > Workspaces > [Workspace Name] > Accounting**
+1. Click **Set up** next to Sage Intacct
+1. Enter the credentials you set for your web services user in Step 1
+1. Click **Confirm**
+
+
+
+# Configure Sage Intacct integration
+
+## Step 1: Select entity (multi-entity setups only)
+If you have a multi-entity setup in Sage Intacct, you will be able to select in Expensify which Sage Intacct entity to connect each workspace to. Each Expensify workspace can either be connected to a single entity or connected at the Top Level.
+
+To select or change the Sage Intacct entity that your Expensify workspace is connected to, navigate to the Accounting settings for your workspace and click **Entity** under the Sage Intacct connection.
+
+## Step 2: Configure import settings
+The following section will help you determine how data will be imported from Sage Intacct into Expensify. To change your import settings, navigate to the Accounting settings for your workspace, then click **Import** under the Sage Intacct connection.
+
+### Expense Types / Chart of Accounts
+The categories in Expensify depend on how you choose to export out-of-pocket expenses:
+
+- If you choose to export out-of-pocket expenses as Expense Reports, your categories in Expensify will be imported from your Sage Intacct Expense Types
+- If you choose to export out-of-pocket expenses as Vendor Bills, your categories will be imported directly from your Chart of Accounts (also known as GL Codes or Account Codes).
+
+You can disable unnecessary categories in Expensify by going to **Settings > Workspaces > [Workspace Name] > Categories**. Note that every expense must be coded with a Category, or it will fail to export.
+
+### Billable Expenses
+Enabling billable expenses allows you to map your expense types or accounts to items in Sage Intacct. To do this, you’ll need to enable the correct permissions on your Sage Intacct user or role. This may vary based on the modules you use in Sage Intacct, so you should enable read-only permissions for relevant modules such as Projects, Purchasing, Inventory Control, and Order Entry.
+
+Once permissions are set, you can map categories to specific items, which will then export to Sage Intacct. When an expense is marked as Billable in Expensify, users must select the correct billable Category (Item), or there will be an error during export.
+
+
+### Standard dimensions: Departments, Classes, and Locations
+The Sage Intacct integration allows you to import standard dimensions into Expensify as tags, report fields, or using the Sage Intacct employee default.
+
+- **Sage Intacct Employee default:** This option is only available when exporting as expense reports. When this option is selected, nothing will be imported into Expensify - instead, the employee default will be applied to each expense upon export.
+- **Tags:** Employees can select the department, class, or location on each individual expense. If the employee's Sage Intacct employee record has a default value, then each expense will default to that tag, with the option for the employee to select a different value on each expense.
+- **Report Fields:** Employees can select one department/class/location for each expense report.
+
+New departments, classes, and locations must be added in Sage Intacct. Once imported, you can turn specific tags on or off under **Settings > Workspaces > [Workspace Name] > Tags**. You can turn specific report fields on or off under **Settings > Workspaces > [Workspace Name] > Report Fields**.
+
+Please note that when importing departments as tags, expense reports may show the tag name as "Tag" instead of "Department."
+
+### Customers and Projects
+The Sage Intacct integration allows you to import customers and projects into Expensify as Tags or Report Fields.
+
+- **Tags:** Employees can select the customer or project on each individual expense.
+- **Report Fields:** Employees can select one department/class/location for each expense report.
+
+New customers and projects must be added in Sage Intacct. Once imported, you can turn specific tags on or off under **Settings > Workspaces > [Workspace Name] > Tags**. You can turn specific report fields on or off under **Settings > Workspaces > [Workspace Name] > Report Fields**.
+
+
+### Tax
+The Sage Intacct integration supports native VAT and GST tax. To enable this feature, go to **Settings > Workspaces > [Workspace Name] > Accounting**, click **Import** under Sage Intacct, and enable Tax. Enabling this option will import your native tax rates from Sage Intacct into Expensify. From there, you can select default rates for each category under **Settings > Workspaces > [Workspace Name] > Categories**.
+
+For older Sage Intacct connections that don't show the Tax option, simply resync the connection by going to **Settings > Workspaces > [Workspace Name] > Accounting** and clicking the three dots next to Sage Intacct, and the tax toggle will appear.
+
+### User-Defined Dimensions
+You can add User-Defined Dimensions (UDDs) to your workspace by locating the “Integration Name” in Sage Intacct. Please note that you must be logged in as an administrator in Sage Intacct to find the required fields.
+
+To find the Integration Name in Sage Intacct:
+
+1. Go to **Platform Services > Objects > List**
+1. Set “filter by application” to “user-defined dimensions”
+1. In Expensify, go to **Settings > Workspaces > [Workspace Name] > Accounting** and click **Import** under Sage Intacct
+1. Enable User Defined Dimensions
+1. Enter the “Integration name” and choose whether to import it into Expensify as expense-level tags or as report fields
+1. Click **Save**
+
+Once imported, you can turn specific tags on or off under **Settings > Workspaces > [Workspace Name] > Tags**. You can turn specific report fields on or off under **Settings > Workspaces > [Workspace Name] > Report Fields**.
+
+
+## Step 5: Configure export settings
+To access export settings, head to **Settings > Workspaces > [Workspace name] > Accounting** and click **Export** under Sage Intacct.
+
+### Preferred exporter
+Any workspace admin can export reports to Sage Intacct. For auto-export, Concierge will export on behalf of the preferred exporter. The preferred exporter will also be notified of any expense reports that fail to export to Sage Intacct due to an error.
+
+### Export date
+You can choose which date to use for the records created in Sage Intacct. There are three date options:
+
+1. **Date of last expense:** This will use the date of the previous expense on the report
+1. **Export date:** The date you export the report to Sage Intacct
+1. **Submitted date:** The date the employee submitted the report
+
+### Export out-of-pocket expenses as
+Out-of-pocket expenses can be exported to Sage Intacct as **expense reports** or as **vendor bills**. If you choose to export as expense reports, you can optionally select a **default vendor**, which will apply to reimbursable expenses that don't have a matching vendor in Sage Intacct.
+
+### Export company card expenses as
+Company Card expenses are exported separately from out-of-pocket expenses, and can be exported to Sage Intacct as credit card charges** or as **vendor bills**.
+
+- **Credit card charges:** When exporting as credit card charges, you must select a credit card account. You can optionally select a default vendor, which will apply to company card expenses that don't have a matching vendor in Sage Intacct.
+ - Credit card charges cannot be exported to Sage Intacct at the top-level if you have multi-currency enabled, so you will need to select an individual entity if you have this setup.
+- **Vendor bills:** When exporting as vendor bills, you can select a default vendor, which will apply to company card expenses that don't have a matching vendor in Sage Intacct.
+
+If you centrally manage your company cards through Domains in Expensify Classic, you can export expenses from each individual card to a specific account in Sage Intacct in the Expensify Company Card settings.
+
+### 6. Configure advanced settings
+To access the advanced settings of the Sage Intacct integration, head to **Settings > Workspaces > [Workspace name] > Accounting** and click **Advanced** under Sage Intacct.
+
+
+Let’s review the different advanced settings and how they interact with the integration.
+
+### Auto-sync
+We strongly recommend enabling auto-sync to ensure that the information in Sage Intacct and Expensify is always in sync. The following will occur when auto-sync is enabled:
+
+**Daily sync from Sage Intacct to Expensify:** Once a day, Expensify will sync any changes from Sage Intacct into Expensify. This includes any changes or additions to your Sage Intacct dimensions.
+
+**Auto-export:** When an expense report reaches its final state in Expensify, it will be automatically exported to Sage Intacct. The final state will either be reimbursement (if you reimburse members through Expensify) or final approval (if you reimburse members outside of Expensify).
+
+**Reimbursement-sync:** If Sync Reimbursed Reports (more details below) is enabled, then we will sync the reimbursement status of reports between Expensify and Sage Intacct.
+
+### Invite employees
+Enabling this feature will invite all employees from the connected Sage Intacct entity to your Expensify workspace. Once imported, each employee who has not already been invited to that Expensify workspace will receive an email letting them know they’ve been added to the workspace.
+
+In addition to inviting employees, this feature enables a custom set of approval workflow options, which you can manage in Expensify Classic:
+
+- **Basic Approval:** A single level of approval, where all users submit directly to a Final Approver. The Final Approver defaults to the workspace owner but can be edited on the people page.
+- **Manager Approval (default):** Each user submits to their manager, who is imported from Sage Intacct. You can optionally select a final approver who each manager forwards to for second-level approval.
+- **Configure Manually:** Employees will be imported, but all levels of approval must be manually configured in Expensify. If you enable this setting, you can configure approvals by going to **Settings > Workspaces > [Workspace Name] > People**.
+
+
+### Sync reimbursed reports
+When Sync reimbursed reports is enabled, the reimbursement status will be synced between Expensify and Sage Intacct.
+
+**If you reimburse employees through Expensify:** Reimbursing an expense report will trigger auto-export to Sage Intacct. When the expense report is exported to Sage Intacct, a corresponding bill payment will also be created in Sage Intacct in the selected Cash and Cash Equivalents account. If you don't see the account you'd like to select in the dropdown list, please confirm that the account type is Cash and Cash Equivalents.
+
+**If you reimburse employees outside of Expensify:** Expense reports will be exported to Sage Intacct at time of final approval. After you mark the report as paid in Sage Intacct, the reimbursed status will be synced back to Expensify the next time the integration syncs.
+
+To ensure this feature works properly for expense reports, make sure that the account you choose within the settings matches the default account for Bill Payments in NetSuite. When exporting invoices, once marked as Paid, the payment is marked against the account selected after enabling the Collection Account setting.
+## FAQ
+
+### Why wasn't my report automatically exported to Sage Intacct?
+There are a number of factors that can cause auto-export to fail. If this happens, you will find the specific export error in the report comments for the report that failed to export. Once you’ve resolved any errors, you can manually export the report to Sage Intacct.
+
+### Will enabling auto-sync affect existing approved and reimbursed reports?
+Auto-sync will only export newly approved reports to Sage Intacct. Any reports that were approved or reimbursed before enabling auto-sync will need to be manually exported in order to sync them to Sage Intacct.
+
+
+### Can I export negative expenses to Sage Intacct?
+Yes, you can export negative expenses to Sage Intacct. If you are exporting out-of-pocket expenses as expense reports, then the total of each exported report cannot be negative.
diff --git a/docs/articles/new-expensify/connections/Set-up-QuickBooks-Online-connection.md b/docs/articles/new-expensify/connections/Set-up-QuickBooks-Online-connection.md
index 155512866a8f..79d5b17055f7 100644
--- a/docs/articles/new-expensify/connections/Set-up-QuickBooks-Online-connection.md
+++ b/docs/articles/new-expensify/connections/Set-up-QuickBooks-Online-connection.md
@@ -52,6 +52,12 @@ Log in to QuickBooks Online and ensure all of your employees are setup as either
![The QuickBooks Online Connect button]({{site.url}}/assets/images/ExpensifyHelp-QBO-3.png){:width="100%"}
+![The QuickBooks Online Connect Accounting button]({{site.url}}/assets/images/ExpensifyHelp-QBO-4.png){:width="100%"}
+
+![The QuickBooks Online Connect Connect button]({{site.url}}/assets/images/ExpensifyHelp-QBO-5.png){:width="100%"}
+
+
+
# Step 3: Configure import settings
The following steps help you determine how data will be imported from QuickBooks Online to Expensify.
diff --git a/docs/articles/new-expensify/expenses-&-payments/Duplicate-detection.md b/docs/articles/new-expensify/expenses-&-payments/Duplicate-detection.md
new file mode 100644
index 000000000000..9fab52bca76a
--- /dev/null
+++ b/docs/articles/new-expensify/expenses-&-payments/Duplicate-detection.md
@@ -0,0 +1,73 @@
+---
+title: Manage duplicate expenses
+description: Identify and manage duplicate expense requests
+---
+
+
+
+Duplicate Detection helps prevent duplicate expense requests by flagging expense requests that have the same date and amount as another request in the same member's account.
+
+When an expense has been flagged as a potential duplicate, a red dot appears in the left menu or the expense’s chat room, and it is put on “hold.”
+
+{% include info.html %}
+This feature is available exclusively for Collect & Control plans.
+{% include end-info.html %}
+
+# Review & resolve duplicates
+
+{% include selector.html values="desktop, mobile" %}
+
+{% include option.html value="desktop" %}
+1. Click the red dot in the left menu or open the expense’s chat room to open the flagged request.
+2. Click the green **Review duplicates** button at the top of the request.
+3. Review the list of potential duplicates.
+4. To resolve a duplicate, click either **Keep all** or **Keep this one**.
+ - **Keep all**: Keeps all expenses as their separate charges and removes the hold.
+ - **Keep this one**: Keeps this expense and discards its other related duplicates.
+5. If discrepancies exist between the duplicates (e.g., category, tags), choose which details to keep.
+6. Confirm your selection to merge the requests or keep all.
+
+The expenses are removed from the duplicates list and the hold is removed.
+
+{% include end-option.html %}
+
+{% include option.html value="mobile" %}
+1. Tap the red dot in the left menu or open the expense’s chat room to open the flagged request.
+2. Tap the green **Review duplicates** button at the top of the request.
+3. Review the list of potential duplicates.
+4. To resolve a duplicate, tap either **Keep all** or **Keep this one**.
+ - **Keep all**: Keeps all expenses as their separate charges and removes the hold.
+ - **Keep this one**: Keeps this expense and discards its other related duplicates.
+5. If discrepancies exist between the duplicates (e.g., category, tags), choose which details to keep.
+6. Confirm your selection to merge the requests or keep all.
+
+The expenses are removed from the duplicates list and the hold is removed.
+{% include end-option.html %}
+
+{% include end-selector.html %}
+
+
+
+
+{% include faq-begin.md %}
+**Can I review a discarded duplicate later?**
+
+Yes, approvers can review discarded duplicates to ensure accuracy and prevent fraud.
+
+**Can I edit a duplicate request once resolved?**
+
+Yes, you can edit the details of a duplicate request once it has been resolved, but the hold must be removed first.
+
+**If two expenses are SmartScanned on the same day for the same amount, will they be flagged as duplicates?**
+
+Yes, the expenses will be flagged as duplicates unless one of the following is true:
+- The expenses were split from a single expense
+- The expenses were imported from a credit card
+- Matching email receipts sent to receipts@expensify.com were received with different timestamps
+
+**What happens if Concierge flags a receipt as a duplicate?**
+
+If Concierge lets you know it has flagged a receipt as a duplicate, scanning the receipt again will trigger the same duplicate flagging. You can still find these in the [deleted](https://www.expensify.com/expenses?reportStatusList=Deleted) filter on Expensify Classic.
+{% include faq-end.md %}
+
+
diff --git a/docs/articles/new-expensify/expenses-&-payments/Send-an-invoice.md b/docs/articles/new-expensify/expenses-&-payments/Send-an-invoice.md
index 588f0da20154..6546f57073ee 100644
--- a/docs/articles/new-expensify/expenses-&-payments/Send-an-invoice.md
+++ b/docs/articles/new-expensify/expenses-&-payments/Send-an-invoice.md
@@ -38,6 +38,9 @@ Once an invoice is sent, the customer receives an automated email or text messag
4. Click **Pay Elsewhere**, which will mark the invoice as Paid.
Currently, invoices must be paid outside of Expensify. However, the ability to make payments through Expensify is coming soon.
+
+![A photo of the pay button]({{site.url}}/assets/images/ExpensifyHelp-Invoice-1.png){:width="100%"}
+
# FAQs
diff --git a/docs/assets/images/ExpensifyHelp-WorkspaceFeeds_01.png b/docs/assets/images/ExpensifyHelp-WorkspaceFeeds_01.png
new file mode 100644
index 000000000000..e7332f65e832
Binary files /dev/null and b/docs/assets/images/ExpensifyHelp-WorkspaceFeeds_01.png differ
diff --git a/docs/assets/images/ExpensifyHelp-WorkspaceFeeds_02.png b/docs/assets/images/ExpensifyHelp-WorkspaceFeeds_02.png
new file mode 100644
index 000000000000..b5c176e829c9
Binary files /dev/null and b/docs/assets/images/ExpensifyHelp-WorkspaceFeeds_02.png differ
diff --git a/docs/assets/images/ExpensifyHelp-WorkspaceFeeds_03.png b/docs/assets/images/ExpensifyHelp-WorkspaceFeeds_03.png
new file mode 100644
index 000000000000..ffed1ff6ade2
Binary files /dev/null and b/docs/assets/images/ExpensifyHelp-WorkspaceFeeds_03.png differ
diff --git a/docs/assets/images/ExpensifyHelp-WorkspaceFeeds_04.png b/docs/assets/images/ExpensifyHelp-WorkspaceFeeds_04.png
new file mode 100644
index 000000000000..88cb7d2704a8
Binary files /dev/null and b/docs/assets/images/ExpensifyHelp-WorkspaceFeeds_04.png differ
diff --git a/docs/assets/images/ExpensifyHelp-WorkspaceFeeds_05.png b/docs/assets/images/ExpensifyHelp-WorkspaceFeeds_05.png
new file mode 100644
index 000000000000..2175697461dc
Binary files /dev/null and b/docs/assets/images/ExpensifyHelp-WorkspaceFeeds_05.png differ
diff --git a/docs/assets/images/ExpensifyHelp-WorkspaceFeeds_06.png b/docs/assets/images/ExpensifyHelp-WorkspaceFeeds_06.png
new file mode 100644
index 000000000000..cce21e52e185
Binary files /dev/null and b/docs/assets/images/ExpensifyHelp-WorkspaceFeeds_06.png differ
diff --git a/docs/assets/images/ExpensifyHelp-WorkspaceFeeds_07.png b/docs/assets/images/ExpensifyHelp-WorkspaceFeeds_07.png
new file mode 100644
index 000000000000..5e9297f0c100
Binary files /dev/null and b/docs/assets/images/ExpensifyHelp-WorkspaceFeeds_07.png differ
diff --git a/docs/assets/images/Itinerary.png b/docs/assets/images/Itinerary.png
new file mode 100644
index 000000000000..ccd3bd41664b
Binary files /dev/null and b/docs/assets/images/Itinerary.png differ
diff --git a/docs/expensify-classic/hubs/connect-credit-cards/business-bank-accounts.html b/docs/expensify-classic/hubs/bank-accounts-and-payments/payments.html
similarity index 100%
rename from docs/expensify-classic/hubs/connect-credit-cards/business-bank-accounts.html
rename to docs/expensify-classic/hubs/bank-accounts-and-payments/payments.html
diff --git a/docs/expensify-classic/hubs/connect-credit-cards/deposit-accounts.html b/docs/expensify-classic/hubs/connections/accelo.html
similarity index 100%
rename from docs/expensify-classic/hubs/connect-credit-cards/deposit-accounts.html
rename to docs/expensify-classic/hubs/connections/accelo.html
diff --git a/docs/expensify-classic/hubs/expenses/expenses.html b/docs/expensify-classic/hubs/connections/certinia.html
similarity index 100%
rename from docs/expensify-classic/hubs/expenses/expenses.html
rename to docs/expensify-classic/hubs/connections/certinia.html
diff --git a/docs/expensify-classic/hubs/integrations/index.html b/docs/expensify-classic/hubs/connections/index.html
similarity index 100%
rename from docs/expensify-classic/hubs/integrations/index.html
rename to docs/expensify-classic/hubs/connections/index.html
diff --git a/docs/expensify-classic/hubs/expenses/reports.html b/docs/expensify-classic/hubs/connections/netsuite.html
similarity index 100%
rename from docs/expensify-classic/hubs/expenses/reports.html
rename to docs/expensify-classic/hubs/connections/netsuite.html
diff --git a/docs/expensify-classic/hubs/getting-started/approved-accountants.html b/docs/expensify-classic/hubs/connections/quickbooks-desktop.html
similarity index 100%
rename from docs/expensify-classic/hubs/getting-started/approved-accountants.html
rename to docs/expensify-classic/hubs/connections/quickbooks-desktop.html
diff --git a/docs/expensify-classic/hubs/getting-started/support.html b/docs/expensify-classic/hubs/connections/quickbooks-online.html
similarity index 100%
rename from docs/expensify-classic/hubs/getting-started/support.html
rename to docs/expensify-classic/hubs/connections/quickbooks-online.html
diff --git a/docs/expensify-classic/hubs/getting-started/tips-and-tricks.html b/docs/expensify-classic/hubs/connections/sage-intacct.html
similarity index 100%
rename from docs/expensify-classic/hubs/getting-started/tips-and-tricks.html
rename to docs/expensify-classic/hubs/connections/sage-intacct.html
diff --git a/docs/expensify-classic/hubs/integrations/HR-integrations.html b/docs/expensify-classic/hubs/connections/xero.html
similarity index 100%
rename from docs/expensify-classic/hubs/integrations/HR-integrations.html
rename to docs/expensify-classic/hubs/connections/xero.html
diff --git a/docs/expensify-classic/hubs/integrations/accounting-integrations.html b/docs/expensify-classic/hubs/integrations/accounting-integrations.html
deleted file mode 100644
index 86641ee60b7d..000000000000
--- a/docs/expensify-classic/hubs/integrations/accounting-integrations.html
+++ /dev/null
@@ -1,5 +0,0 @@
----
-layout: default
----
-
-{% include section.html %}
diff --git a/docs/expensify-classic/hubs/integrations/other-integrations.html b/docs/expensify-classic/hubs/integrations/other-integrations.html
deleted file mode 100644
index 86641ee60b7d..000000000000
--- a/docs/expensify-classic/hubs/integrations/other-integrations.html
+++ /dev/null
@@ -1,5 +0,0 @@
----
-layout: default
----
-
-{% include section.html %}
diff --git a/docs/expensify-classic/hubs/integrations/travel-integrations.html b/docs/expensify-classic/hubs/integrations/travel-integrations.html
deleted file mode 100644
index 86641ee60b7d..000000000000
--- a/docs/expensify-classic/hubs/integrations/travel-integrations.html
+++ /dev/null
@@ -1,5 +0,0 @@
----
-layout: default
----
-
-{% include section.html %}
diff --git a/docs/expensify-classic/hubs/workspaces/reports.html b/docs/expensify-classic/hubs/workspaces/reports.html
deleted file mode 100644
index 86641ee60b7d..000000000000
--- a/docs/expensify-classic/hubs/workspaces/reports.html
+++ /dev/null
@@ -1,5 +0,0 @@
----
-layout: default
----
-
-{% include section.html %}
diff --git a/docs/redirects.csv b/docs/redirects.csv
index c1249773bb82..897cd4e95775 100644
--- a/docs/redirects.csv
+++ b/docs/redirects.csv
@@ -217,7 +217,61 @@ https://help.expensify.com/articles/new-expensify/expenses/Set-up-your-wallet,ht
https://help.expensify.com/articles/new-expensify/expenses/Split-an-expense,https://help.expensify.com/articles/new-expensify/expenses-&-payments/Split-an-expense
https://help.expensify.com/articles/new-expensify/expenses/Track-expenses,https://help.expensify.com/articles/new-expensify/expenses-&-payments/Track-expenses
https://help.expensify.com/articles/new-expensify/expenses/Unlock-a-Business-Bank-Account,https://help.expensify.com/articles/new-expensify/expenses-&-payments/Unlock-a-Business-Bank-Account
+https://help.expensify.com/expensify-classic/hubs/integrations/HR-integrations,https://help.expensify.com/expensify-classic/hubs/connections
+https://help.expensify.com/expensify-classic/hubs/integrations/accounting-integrations,https://help.expensify.com/expensify-classic/hubs/connections
+https://help.expensify.com/expensify-classic/hubs/integrations/other-integrations,https://help.expensify.com/expensify-classic/hubs/connections
+https://help.expensify.com/expensify-classic/hubs/integrations/travel-integrations,https://help.expensify.com/expensify-classic/hubs/connections
+https://help.expensify.com/articles/expensify-classic/integrations/HR-integrations/ADP,https://help.expensify.com/articles/expensify-classic/connections/ADP
+https://help.expensify.com/articles/expensify-classic/integrations/accounting-integrations/Accelo,https://help.expensify.com/expensify-classic/hubs/connections/accelo
+https://help.expensify.com/articles/expensify-classic/integrations/travel-integrations/Additional-Travel-Integrations,https://help.expensify.com/articles/expensify-classic/connections/Additional-Travel-Integrations
+https://help.expensify.com/articles/expensify-classic/integrations/accounting-integrations/Certinia,https://help.expensify.com/expensify-classic/hubs/connections/certinia
+https://help.expensify.com/articles/expensify-classic/integrations/travel-integrations/Egencia,https://help.expensify.com/articles/expensify-classic/connections/Egencia
+https://help.expensify.com/articles/expensify-classic/integrations/travel-integrations/Global-VaTax,https://help.expensify.com/articles/expensify-classic/connections/Global-VaTax
+https://help.expensify.com/articles/expensify-classic/integrations/other-integrations/Google-Apps-SSO,https://help.expensify.com/articles/expensify-classic/connections/Google-Apps-SSO
+https://help.expensify.com/articles/expensify-classic/integrations/HR-integrations/Greenhouse,https://help.expensify.com/articles/expensify-classic/connections/Greenhouse
+https://help.expensify.com/articles/expensify-classic/integrations/HR-integrations/Gusto,https://help.expensify.com/articles/expensify-classic/connections/Gusto
+https://help.expensify.com/articles/expensify-classic/integrations/accounting-integrations/Indirect-Accounting-Integrations,https://help.expensify.com/articles/expensify-classic/connections/Indirect-Accounting-Integrations
+https://help.expensify.com/articles/expensify-classic/integrations/travel-integrations/Lyft,https://help.expensify.com/articles/expensify-classic/connections/Lyft
+https://help.expensify.com/articles/expensify-classic/integrations/travel-integrations/Navan,https://help.expensify.com/articles/expensify-classic/connections/Navan
+https://help.expensify.com/articles/expensify-classic/integrations/accounting-integrations/NetSuite,https://help.expensify.com/expensify-classic/hubs/connections/netsuite
+https://help.expensify.com/articles/expensify-classic/integrations/HR-integrations/QuickBooks-Time,https://help.expensify.com/articles/expensify-classic/connections/QuickBooks-Time
+https://help.expensify.com/articles/expensify-classic/integrations/accounting-integrations/QuickBooks-Desktop,https://help.expensify.com/expensify-classic/hubs/connections/quickbooks-desktop
+https://help.expensify.com/articles/expensify-classic/integrations/accounting-integrations/QuickBooks-Online,https://help.expensify.com/expensify-classic/hubs/connections/quickbooks-online
+https://help.expensify.com/articles/expensify-classic/integrations/HR-integrations/Rippling,https://help.expensify.com/articles/expensify-classic/connections/Rippling
+https://help.expensify.com/articles/expensify-classic/integrations/accounting-integrations/Sage-Intacct,https://help.expensify.com/expensify-classic/hubs/connections/sage-intacct
+https://help.expensify.com/articles/expensify-classic/integrations/travel-integrations/TravelPerk,https://help.expensify.com/articles/expensify-classic/connections/TravelPerk
+https://help.expensify.com/articles/expensify-classic/integrations/travel-integrations/Uber,https://help.expensify.com/articles/expensify-classic/connections/Uber
+https://help.expensify.com/articles/expensify-classic/integrations/HR-integrations/Workday,https://help.expensify.com/articles/expensify-classic/connections/Workday
+https://help.expensify.com/articles/expensify-classic/integrations/accounting-integrations/Xero,https://help.expensify.com/expensify-classic/hubs/connections/xero
+https://help.expensify.com/articles/expensify-classic/integrations/HR-integrations/Zenefits,https://help.expensify.com/articles/expensify-classic/connections/Zenefits
https://help.expensify.com/articles/expensify-classic/workspaces/tax-tracking,https://help.expensify.com/articles/expensify-classic/workspaces/Tax-Tracking
https://help.expensify.com/articles/expensify-classic/copilots-and-delegates/Approval-Workflows,https://help.expensify.com/articles/expensify-classic/reports/Assign-report-approvers-to-specific-employees
https://help.expensify.com/articles/expensify-classic/settings/Notification-Troubleshooting,https://help.expensify.com/articles/expensify-classic/settings/account-settings/Set-Notifications
https://help.expensify.com/articles/new-expensify/expenses/Validate-a-Business-Bank-Account,https://help.expensify.com/articles/new-expensify/expenses-&-payments/Validate-a-Business-Bank-Account
+https://help.expensify.com/articles/expensify-classic/workspaces/Currency,https://help.expensify.com/articles/expensify-classic/workspaces/Set-Currency
+https://help.expensify.com/articles/expensify-classic/workspaces/Expenses,https://help.expensify.com/articles/expensify-classic/workspaces/Expense-Settings
+https://help.expensify.com/articles/expensify-classic/workspaces/Reimbursement,https://help.expensify.com/articles/expensify-classic/workspaces/Configure-Reimbursement-Settings
+https://help.expensify.com/articles/expensify-classic/integrations/HR-integrations/ADP.html,https://help.expensify.com/articles/expensify-classic/connections/ADP
+https://help.expensify.com/articles/expensify-classic/integrations/accounting-integrations/Accelo.html,https://help.expensify.com/expensify-classic/hubs/connections/accelo
+https://help.expensify.com/articles/expensify-classic/integrations/travel-integrations/Additional-Travel-Integrations.html,https://help.expensify.com/articles/expensify-classic/connections/Additional-Travel-Integrations
+https://help.expensify.com/articles/expensify-classic/integrations/accounting-integrations/Certinia.html,https://help.expensify.com/expensify-classic/hubs/connections/certinia
+https://help.expensify.com/articles/expensify-classic/integrations/travel-integrations/Egencia.html,https://help.expensify.com/articles/expensify-classic/connections/Egencia
+https://help.expensify.com/articles/expensify-classic/integrations/travel-integrations/Global-VaTax.html,https://help.expensify.com/articles/expensify-classic/connections/Global-VaTax
+https://help.expensify.com/articles/expensify-classic/integrations/other-integrations/Google-Apps-SSO.html,https://help.expensify.com/articles/expensify-classic/connections/Google-Apps-SSO
+https://help.expensify.com/articles/expensify-classic/integrations/HR-integrations/Greenhouse.html,https://help.expensify.com/articles/expensify-classic/connections/Greenhouse
+https://help.expensify.com/articles/expensify-classic/integrations/HR-integrations/Gusto.html,https://help.expensify.com/articles/expensify-classic/connections/Gusto
+https://help.expensify.com/articles/expensify-classic/integrations/accounting-integrations/Indirect-Accounting-Integrations.html,https://help.expensify.com/articles/expensify-classic/connections/Indirect-Accounting-Integrations
+https://help.expensify.com/articles/expensify-classic/integrations/travel-integrations/Lyft.html,https://help.expensify.com/articles/expensify-classic/connections/Lyft
+https://help.expensify.com/articles/expensify-classic/integrations/travel-integrations/Navan.html,https://help.expensify.com/articles/expensify-classic/connections/Navan
+https://help.expensify.com/articles/expensify-classic/integrations/accounting-integrations/NetSuite.html,https://help.expensify.com/expensify-classic/hubs/connections/netsuite
+https://help.expensify.com/articles/expensify-classic/integrations/HR-integrations/QuickBooks-Time.html,https://help.expensify.com/articles/expensify-classic/connections/QuickBooks-Time
+https://help.expensify.com/articles/expensify-classic/integrations/accounting-integrations/QuickBooks-Desktop.html,https://help.expensify.com/expensify-classic/hubs/connections/quickbooks-desktop
+https://help.expensify.com/articles/expensify-classic/integrations/accounting-integrations/QuickBooks-Online.html,https://help.expensify.com/expensify-classic/hubs/connections/quickbooks-online
+https://help.expensify.com/articles/expensify-classic/integrations/HR-integrations/Rippling.html,https://help.expensify.com/articles/expensify-classic/connections/Rippling
+https://help.expensify.com/articles/expensify-classic/integrations/accounting-integrations/Sage-Intacct.html,https://help.expensify.com/expensify-classic/hubs/connections/sage-intacct
+https://help.expensify.com/articles/expensify-classic/integrations/travel-integrations/TravelPerk.html,https://help.expensify.com/articles/expensify-classic/connections/TravelPerk
+https://help.expensify.com/articles/expensify-classic/integrations/travel-integrations/Uber.html,https://help.expensify.com/articles/expensify-classic/connections/Uber
+https://help.expensify.com/articles/expensify-classic/integrations/HR-integrations/Workday.html,https://help.expensify.com/articles/expensify-classic/connections/Workday
+https://help.expensify.com/articles/expensify-classic/integrations/accounting-integrations/Xero.html,https://help.expensify.com/expensify-classic/hubs/connections/xero
+https://help.expensify.com/articles/expensify-classic/integrations/HR-integrations/Zenefits.html,https://help.expensify.com/articles/expensify-classic/connections/Zenefits
+https://help.expensify.com/articles/expensify-classic/settings/Close-or-reopen-account,https://help.expensify.com/articles/expensify-classic/settings/account-settings/Close-or-reopen-account
diff --git a/ios/NewApp_AdHoc.mobileprovision.gpg b/ios/NewApp_AdHoc.mobileprovision.gpg
index 0374529721e7..d5f3c582327d 100644
Binary files a/ios/NewApp_AdHoc.mobileprovision.gpg and b/ios/NewApp_AdHoc.mobileprovision.gpg differ
diff --git a/ios/NewApp_AdHoc_Notification_Service.mobileprovision.gpg b/ios/NewApp_AdHoc_Notification_Service.mobileprovision.gpg
index 0a8c3c896f5f..8300bd34ef76 100644
Binary files a/ios/NewApp_AdHoc_Notification_Service.mobileprovision.gpg and b/ios/NewApp_AdHoc_Notification_Service.mobileprovision.gpg differ
diff --git a/ios/NewExpensify.xcodeproj/project.pbxproj b/ios/NewExpensify.xcodeproj/project.pbxproj
index 631b63e1f8e7..ffa6882db6f7 100644
--- a/ios/NewExpensify.xcodeproj/project.pbxproj
+++ b/ios/NewExpensify.xcodeproj/project.pbxproj
@@ -391,6 +391,7 @@
FBC7D704E4E9CC08E91D7919 /* [CP] Copy Pods Resources */,
9FF963998EFF771D82D473D2 /* [CP-User] [RNFB] Core Configuration */,
A2BE84E8C8EFD6C81A2B41F1 /* [CP-User] [RNFB] Crashlytics Configuration */,
+ 498240F82C49553900C15857 /* Run Fullstory Asset Uploader */,
);
buildRules = (
);
@@ -638,6 +639,24 @@
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-NewExpensify-NewExpensifyTests/Pods-NewExpensify-NewExpensifyTests-resources.sh\"\n";
showEnvVarsInLog = 0;
};
+ 498240F82C49553900C15857 /* Run Fullstory Asset Uploader */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ );
+ name = "Run Fullstory Asset Uploader";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${PODS_ROOT}/FullStory/tools/FullStoryCommandLine\" \"${CONFIGURATION_BUILD_DIR}/${WRAPPER_NAME}\"\n";
+ };
5CF45ABA52C0BB0D7B9D139A /* [Expo] Configure project */ = {
isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
@@ -1597,7 +1616,11 @@
"$(inherited)",
"-DRN_FABRIC_ENABLED",
);
- OTHER_LDFLAGS = "$(inherited)";
+ OTHER_LDFLAGS = (
+ "$(inherited)",
+ "-Wl",
+ "-ld_classic",
+ );
PRODUCT_BUNDLE_IDENTIFIER = "";
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
SDKROOT = iphoneos;
@@ -1669,7 +1692,11 @@
"$(inherited)",
"-DRN_FABRIC_ENABLED",
);
- OTHER_LDFLAGS = "$(inherited)";
+ OTHER_LDFLAGS = (
+ "$(inherited)",
+ "-Wl",
+ "-ld_classic",
+ );
PRODUCT_BUNDLE_IDENTIFIER = "";
PRODUCT_NAME = "";
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
@@ -1751,7 +1778,11 @@
"$(inherited)",
"-DRN_FABRIC_ENABLED",
);
- OTHER_LDFLAGS = "$(inherited)";
+ OTHER_LDFLAGS = (
+ "$(inherited)",
+ "-Wl",
+ "-ld_classic",
+ );
PRODUCT_BUNDLE_IDENTIFIER = "";
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
SDKROOT = iphoneos;
@@ -1900,7 +1931,11 @@
"$(inherited)",
"-DRN_FABRIC_ENABLED",
);
- OTHER_LDFLAGS = "$(inherited)";
+ OTHER_LDFLAGS = (
+ "$(inherited)",
+ "-Wl",
+ "-ld_classic",
+ );
PRODUCT_BUNDLE_IDENTIFIER = "";
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
SDKROOT = iphoneos;
@@ -2041,7 +2076,11 @@
"$(inherited)",
"-DRN_FABRIC_ENABLED",
);
- OTHER_LDFLAGS = "$(inherited)";
+ OTHER_LDFLAGS = (
+ "$(inherited)",
+ "-Wl",
+ "-ld_classic",
+ );
PRODUCT_BUNDLE_IDENTIFIER = "";
PRODUCT_NAME = "";
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
@@ -2180,7 +2219,11 @@
"$(inherited)",
"-DRN_FABRIC_ENABLED",
);
- OTHER_LDFLAGS = "$(inherited)";
+ OTHER_LDFLAGS = (
+ "$(inherited)",
+ "-Wl",
+ "-ld_classic",
+ );
PRODUCT_BUNDLE_IDENTIFIER = "";
PRODUCT_NAME = "";
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
diff --git a/ios/NewExpensify/Info.plist b/ios/NewExpensify/Info.plist
index 5c540ee77fab..0b25496d1e50 100644
--- a/ios/NewExpensify/Info.plist
+++ b/ios/NewExpensify/Info.plist
@@ -19,7 +19,7 @@
CFBundlePackageType
APPL
CFBundleShortVersionString
-
9.0.8
+
9.0.12
CFBundleSignature
????
CFBundleURLTypes
@@ -40,7 +40,7 @@
CFBundleVersion
-
9.0.8.3
+
9.0.12.0
FullStory
OrgId
diff --git a/ios/NewExpensifyTests/Info.plist b/ios/NewExpensifyTests/Info.plist
index 34774852ffa8..d53d5c714f59 100644
--- a/ios/NewExpensifyTests/Info.plist
+++ b/ios/NewExpensifyTests/Info.plist
@@ -15,10 +15,10 @@
CFBundlePackageType
BNDL
CFBundleShortVersionString
- 9.0.8
+ 9.0.12
CFBundleSignature
????
CFBundleVersion
- 9.0.8.3
+ 9.0.12.0
diff --git a/ios/NotificationServiceExtension/Info.plist b/ios/NotificationServiceExtension/Info.plist
index bed48c74acf7..e4292dbe5091 100644
--- a/ios/NotificationServiceExtension/Info.plist
+++ b/ios/NotificationServiceExtension/Info.plist
@@ -11,9 +11,9 @@
CFBundleName
$(PRODUCT_NAME)
CFBundleShortVersionString
-
9.0.8
+
9.0.12
CFBundleVersion
-
9.0.8.3
+
9.0.12.0
NSExtension
NSExtensionPointIdentifier
diff --git a/ios/Podfile.lock b/ios/Podfile.lock
index 1318cd5a20d5..f0a560901432 100644
--- a/ios/Podfile.lock
+++ b/ios/Podfile.lock
@@ -2361,7 +2361,7 @@ PODS:
- RNGoogleSignin (10.0.1):
- GoogleSignIn (~> 7.0)
- React-Core
- - RNLiveMarkdown (0.1.103):
+ - RNLiveMarkdown (0.1.108):
- DoubleConversion
- glog
- hermes-engine
@@ -2381,9 +2381,9 @@ PODS:
- ReactCodegen
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- - RNLiveMarkdown/common (= 0.1.103)
+ - RNLiveMarkdown/common (= 0.1.108)
- Yoga
- - RNLiveMarkdown/common (0.1.103):
+ - RNLiveMarkdown/common (0.1.108):
- DoubleConversion
- glog
- hermes-engine
@@ -2552,7 +2552,7 @@ PODS:
- RNSound/Core (= 0.11.2)
- RNSound/Core (0.11.2):
- React-Core
- - RNSVG (15.3.0):
+ - RNSVG (15.4.0):
- DoubleConversion
- glog
- hermes-engine
@@ -2572,9 +2572,9 @@ PODS:
- ReactCodegen
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- - RNSVG/common (= 15.3.0)
+ - RNSVG/common (= 15.4.0)
- Yoga
- - RNSVG/common (15.3.0):
+ - RNSVG/common (15.4.0):
- DoubleConversion
- glog
- hermes-engine
@@ -3177,7 +3177,7 @@ SPEC CHECKSUMS:
RNFS: 4ac0f0ea233904cb798630b3c077808c06931688
RNGestureHandler: be8c33f01e470b19f886f32a139ced3e1555c93f
RNGoogleSignin: ccaa4a81582cf713eea562c5dd9dc1961a715fd0
- RNLiveMarkdown: 1a90510b3b87217bd7175427f4b223a1acca7d62
+ RNLiveMarkdown: b10c45358ffe5427ead4e4f347deefc920ed539d
RNLocalize: d4b8af4e442d4bcca54e68fc687a2129b4d71a81
rnmapbox-maps: 5ab6bfd249cd67262615153c648f8d809aab781c
RNPermissions: 0b1429b55af59d1d08b75a8be2459f65a8ac3f28
@@ -3186,7 +3186,7 @@ SPEC CHECKSUMS:
RNScreens: 83aa5357fbb09aa87130fbea02325b53b7260fd6
RNShare: 2a4cdfc0626ad56b0ef583d424f2038f772afe58
RNSound: 6c156f925295bdc83e8e422e7d8b38d33bc71852
- RNSVG: 8d3bf8086771755b029b034929cf913e8324ed4f
+ RNSVG: 6b65086b51556fd9723d5570a3455e865e1304a3
SDWebImage: 066c47b573f408f18caa467d71deace7c0f8280d
SDWebImageAVIFCoder: 00310d246aab3232ce77f1d8f0076f8c4b021d90
SDWebImageSVGCoder: 15a300a97ec1c8ac958f009c02220ac0402e936c
diff --git a/package-lock.json b/package-lock.json
index f1b330453272..5f951686a978 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,19 +1,19 @@
{
"name": "new.expensify",
- "version": "9.0.8-3",
+ "version": "9.0.12-0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "new.expensify",
- "version": "9.0.8-3",
+ "version": "9.0.12-0",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
"@babel/plugin-proposal-private-methods": "^7.18.6",
"@babel/plugin-proposal-private-property-in-object": "^7.21.11",
"@dotlottie/react-player": "^1.6.3",
- "@expensify/react-native-live-markdown": "0.1.103",
+ "@expensify/react-native-live-markdown": "^0.1.107",
"@expo/metro-runtime": "~3.1.1",
"@formatjs/intl-datetimeformat": "^6.10.0",
"@formatjs/intl-listformat": "^7.2.2",
@@ -55,7 +55,7 @@
"date-fns-tz": "^2.0.0",
"dom-serializer": "^0.2.2",
"domhandler": "^4.3.0",
- "expensify-common": "2.0.39",
+ "expensify-common": "2.0.49",
"expo": "51.0.17",
"expo-av": "14.0.6",
"expo-image": "1.12.12",
@@ -118,7 +118,7 @@
"react-native-screens": "3.32.0",
"react-native-share": "^10.0.2",
"react-native-sound": "^0.11.2",
- "react-native-svg": "15.3.0",
+ "react-native-svg": "15.4.0",
"react-native-tab-view": "^3.5.2",
"react-native-url-polyfill": "^2.0.0",
"react-native-view-shot": "3.8.0",
@@ -156,7 +156,7 @@
"@octokit/core": "4.0.4",
"@octokit/plugin-paginate-rest": "3.1.0",
"@octokit/plugin-throttling": "4.1.0",
- "@perf-profiler/profiler": "^0.10.10",
+ "@perf-profiler/profiler": "^0.10.11",
"@perf-profiler/reporter": "^0.9.0",
"@perf-profiler/types": "^0.8.0",
"@react-native-community/eslint-config": "3.2.0",
@@ -213,7 +213,7 @@
"diff-so-fancy": "^1.3.0",
"dotenv": "^16.0.3",
"electron": "^29.4.1",
- "electron-builder": "24.13.2",
+ "electron-builder": "25.0.0",
"eslint": "^8.57.0",
"eslint-config-airbnb-typescript": "^18.0.0",
"eslint-config-expensify": "^2.0.52",
@@ -390,9 +390,8 @@
},
"node_modules/@aw-web-design/x-default-browser": {
"version": "1.4.126",
- "resolved": "https://registry.npmjs.org/@aw-web-design/x-default-browser/-/x-default-browser-1.4.126.tgz",
- "integrity": "sha512-Xk1sIhyNC/esHGGVjL/niHLowM0csl/kFO5uawBy4IrWwy0o1G8LGt3jP6nmWGz+USxeeqbihAmp/oVZju6wug==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"default-browser-id": "3.0.0"
},
@@ -402,8 +401,7 @@
},
"node_modules/@azure/abort-controller": {
"version": "2.1.2",
- "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz",
- "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"tslib": "^2.6.2"
@@ -414,14 +412,12 @@
},
"node_modules/@azure/abort-controller/node_modules/tslib": {
"version": "2.6.3",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz",
- "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==",
+ "license": "0BSD",
"peer": true
},
"node_modules/@azure/core-auth": {
"version": "1.7.2",
- "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.7.2.tgz",
- "integrity": "sha512-Igm/S3fDYmnMq1uKS38Ae1/m37B3zigdlZw+kocwEhh5GjyKjPrXKO2J6rzpC1wAxrNil/jX9BJRqBshyjnF3g==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@azure/abort-controller": "^2.0.0",
@@ -434,14 +430,12 @@
},
"node_modules/@azure/core-auth/node_modules/tslib": {
"version": "2.6.3",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz",
- "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==",
+ "license": "0BSD",
"peer": true
},
"node_modules/@azure/core-rest-pipeline": {
"version": "1.10.1",
- "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.10.1.tgz",
- "integrity": "sha512-Kji9k6TOFRDB5ZMTw8qUf2IJ+CeJtsuMdAHox9eqpTf1cefiNMpzrfnF6sINEBZJsaVaWgQ0o48B6kcUH68niA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@azure/abort-controller": "^1.0.0",
@@ -461,8 +455,7 @@
},
"node_modules/@azure/core-rest-pipeline/node_modules/@azure/abort-controller": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.1.0.tgz",
- "integrity": "sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"tslib": "^2.2.0"
@@ -473,8 +466,7 @@
},
"node_modules/@azure/core-rest-pipeline/node_modules/form-data": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
- "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"asynckit": "^0.4.0",
@@ -487,8 +479,7 @@
},
"node_modules/@azure/core-tracing": {
"version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.1.2.tgz",
- "integrity": "sha512-dawW9ifvWAWmUm9/h+/UQ2jrdvjCJ7VJEuCJ6XVNudzcOwm53BFZH4Q845vjfgoUAM8ZxokvVNxNxAITc502YA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"tslib": "^2.6.2"
@@ -499,14 +490,12 @@
},
"node_modules/@azure/core-tracing/node_modules/tslib": {
"version": "2.6.3",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz",
- "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==",
+ "license": "0BSD",
"peer": true
},
"node_modules/@azure/core-util": {
"version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.2.0.tgz",
- "integrity": "sha512-ffGIw+Qs8bNKNLxz5UPkz4/VBM/EZY07mPve1ZYFqYUdPwFqRj0RPk0U7LZMOfT7GCck9YjuT1Rfp1PApNl1ng==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@azure/abort-controller": "^1.0.0",
@@ -518,8 +507,7 @@
},
"node_modules/@azure/core-util/node_modules/@azure/abort-controller": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.1.0.tgz",
- "integrity": "sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"tslib": "^2.2.0"
@@ -530,8 +518,7 @@
},
"node_modules/@azure/logger": {
"version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.2.tgz",
- "integrity": "sha512-l170uE7bsKpIU6B/giRc9i4NI0Mj+tANMMMxf7Zi/5cKzEqPayP7+X1WPrG7e+91JgY8N+7K7nF2WOi7iVhXvg==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"tslib": "^2.6.2"
@@ -542,14 +529,12 @@
},
"node_modules/@azure/logger/node_modules/tslib": {
"version": "2.6.3",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz",
- "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==",
+ "license": "0BSD",
"peer": true
},
"node_modules/@azure/opentelemetry-instrumentation-azure-sdk": {
"version": "1.0.0-beta.5",
- "resolved": "https://registry.npmjs.org/@azure/opentelemetry-instrumentation-azure-sdk/-/opentelemetry-instrumentation-azure-sdk-1.0.0-beta.5.tgz",
- "integrity": "sha512-fsUarKQDvjhmBO4nIfaZkfNSApm1hZBzcvpNbSrXdcUBxu7lRvKsV5DnwszX7cnhLyVOW9yl1uigtRQ1yDANjA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@azure/core-tracing": "^1.0.0",
@@ -565,8 +550,7 @@
},
"node_modules/@babel/code-frame": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz",
- "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==",
+ "license": "MIT",
"dependencies": {
"@babel/highlight": "^7.24.7",
"picocolors": "^1.0.0"
@@ -577,16 +561,14 @@
},
"node_modules/@babel/compat-data": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz",
- "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==",
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/core": {
"version": "7.24.5",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.5.tgz",
- "integrity": "sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==",
+ "license": "MIT",
"dependencies": {
"@ampproject/remapping": "^2.2.0",
"@babel/code-frame": "^7.24.2",
@@ -614,8 +596,7 @@
},
"node_modules/@babel/core/node_modules/@babel/traverse": {
"version": "7.24.5",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz",
- "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==",
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.24.2",
"@babel/generator": "^7.24.5",
@@ -641,9 +622,8 @@
},
"node_modules/@babel/eslint-parser": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.24.7.tgz",
- "integrity": "sha512-SO5E3bVxDuxyNxM5agFv480YA2HO6ohZbGxbazZdIk3KQOPOGVNw6q78I9/lbviIf95eq6tPozeYnJLbjnC8IA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
"eslint-visitor-keys": "^2.1.0",
@@ -667,8 +647,7 @@
},
"node_modules/@babel/generator": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz",
- "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==",
+ "license": "MIT",
"dependencies": {
"@babel/types": "^7.24.7",
"@jridgewell/gen-mapping": "^0.3.5",
@@ -681,8 +660,7 @@
},
"node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": {
"version": "0.3.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
- "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
+ "license": "MIT",
"dependencies": {
"@jridgewell/set-array": "^1.2.1",
"@jridgewell/sourcemap-codec": "^1.4.10",
@@ -694,8 +672,7 @@
},
"node_modules/@babel/helper-annotate-as-pure": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz",
- "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==",
+ "license": "MIT",
"dependencies": {
"@babel/types": "^7.24.7"
},
@@ -705,8 +682,7 @@
},
"node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz",
- "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==",
+ "license": "MIT",
"dependencies": {
"@babel/traverse": "^7.24.7",
"@babel/types": "^7.24.7"
@@ -717,8 +693,7 @@
},
"node_modules/@babel/helper-builder-binary-assignment-operator-visitor/node_modules/@babel/traverse": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz",
- "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==",
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.24.7",
"@babel/generator": "^7.24.7",
@@ -737,8 +712,7 @@
},
"node_modules/@babel/helper-compilation-targets": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz",
- "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==",
+ "license": "MIT",
"dependencies": {
"@babel/compat-data": "^7.24.7",
"@babel/helper-validator-option": "^7.24.7",
@@ -770,8 +744,7 @@
},
"node_modules/@babel/helper-create-class-features-plugin": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.7.tgz",
- "integrity": "sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.24.7",
"@babel/helper-environment-visitor": "^7.24.7",
@@ -799,8 +772,7 @@
},
"node_modules/@babel/helper-create-regexp-features-plugin": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.7.tgz",
- "integrity": "sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.24.7",
"regexpu-core": "^5.3.1",
@@ -844,8 +816,7 @@
},
"node_modules/@babel/helper-environment-visitor": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz",
- "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==",
+ "license": "MIT",
"dependencies": {
"@babel/types": "^7.24.7"
},
@@ -855,8 +826,7 @@
},
"node_modules/@babel/helper-function-name": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz",
- "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==",
+ "license": "MIT",
"dependencies": {
"@babel/template": "^7.24.7",
"@babel/types": "^7.24.7"
@@ -867,8 +837,7 @@
},
"node_modules/@babel/helper-hoist-variables": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz",
- "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==",
+ "license": "MIT",
"dependencies": {
"@babel/types": "^7.24.7"
},
@@ -878,8 +847,7 @@
},
"node_modules/@babel/helper-member-expression-to-functions": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.7.tgz",
- "integrity": "sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==",
+ "license": "MIT",
"dependencies": {
"@babel/traverse": "^7.24.7",
"@babel/types": "^7.24.7"
@@ -890,8 +858,7 @@
},
"node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/traverse": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz",
- "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==",
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.24.7",
"@babel/generator": "^7.24.7",
@@ -910,8 +877,7 @@
},
"node_modules/@babel/helper-module-imports": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz",
- "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==",
+ "license": "MIT",
"dependencies": {
"@babel/traverse": "^7.24.7",
"@babel/types": "^7.24.7"
@@ -922,8 +888,7 @@
},
"node_modules/@babel/helper-module-imports/node_modules/@babel/traverse": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz",
- "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==",
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.24.7",
"@babel/generator": "^7.24.7",
@@ -942,8 +907,7 @@
},
"node_modules/@babel/helper-module-transforms": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz",
- "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-environment-visitor": "^7.24.7",
"@babel/helper-module-imports": "^7.24.7",
@@ -960,8 +924,7 @@
},
"node_modules/@babel/helper-optimise-call-expression": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz",
- "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==",
+ "license": "MIT",
"dependencies": {
"@babel/types": "^7.24.7"
},
@@ -971,16 +934,14 @@
},
"node_modules/@babel/helper-plugin-utils": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz",
- "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==",
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-remap-async-to-generator": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.7.tgz",
- "integrity": "sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.24.7",
"@babel/helper-environment-visitor": "^7.24.7",
@@ -995,8 +956,7 @@
},
"node_modules/@babel/helper-replace-supers": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.7.tgz",
- "integrity": "sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-environment-visitor": "^7.24.7",
"@babel/helper-member-expression-to-functions": "^7.24.7",
@@ -1011,8 +971,7 @@
},
"node_modules/@babel/helper-simple-access": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz",
- "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==",
+ "license": "MIT",
"dependencies": {
"@babel/traverse": "^7.24.7",
"@babel/types": "^7.24.7"
@@ -1023,8 +982,7 @@
},
"node_modules/@babel/helper-simple-access/node_modules/@babel/traverse": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz",
- "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==",
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.24.7",
"@babel/generator": "^7.24.7",
@@ -1043,8 +1001,7 @@
},
"node_modules/@babel/helper-skip-transparent-expression-wrappers": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz",
- "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==",
+ "license": "MIT",
"dependencies": {
"@babel/traverse": "^7.24.7",
"@babel/types": "^7.24.7"
@@ -1055,8 +1012,7 @@
},
"node_modules/@babel/helper-skip-transparent-expression-wrappers/node_modules/@babel/traverse": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz",
- "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==",
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.24.7",
"@babel/generator": "^7.24.7",
@@ -1075,8 +1031,7 @@
},
"node_modules/@babel/helper-split-export-declaration": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz",
- "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==",
+ "license": "MIT",
"dependencies": {
"@babel/types": "^7.24.7"
},
@@ -1086,32 +1041,28 @@
},
"node_modules/@babel/helper-string-parser": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz",
- "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==",
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-identifier": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz",
- "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==",
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-option": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz",
- "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==",
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-wrap-function": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.7.tgz",
- "integrity": "sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-function-name": "^7.24.7",
"@babel/template": "^7.24.7",
@@ -1124,8 +1075,7 @@
},
"node_modules/@babel/helper-wrap-function/node_modules/@babel/traverse": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz",
- "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==",
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.24.7",
"@babel/generator": "^7.24.7",
@@ -1144,8 +1094,7 @@
},
"node_modules/@babel/helpers": {
"version": "7.24.5",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.5.tgz",
- "integrity": "sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==",
+ "license": "MIT",
"dependencies": {
"@babel/template": "^7.24.0",
"@babel/traverse": "^7.24.5",
@@ -1157,8 +1106,7 @@
},
"node_modules/@babel/helpers/node_modules/@babel/traverse": {
"version": "7.24.5",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz",
- "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==",
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.24.2",
"@babel/generator": "^7.24.5",
@@ -1177,8 +1125,7 @@
},
"node_modules/@babel/highlight": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz",
- "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-validator-identifier": "^7.24.7",
"chalk": "^2.4.2",
@@ -1191,8 +1138,7 @@
},
"node_modules/@babel/parser": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz",
- "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==",
+ "license": "MIT",
"bin": {
"parser": "bin/babel-parser.js"
},
@@ -1202,8 +1148,7 @@
},
"node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.7.tgz",
- "integrity": "sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-environment-visitor": "^7.24.7",
"@babel/helper-plugin-utils": "^7.24.7"
@@ -1217,8 +1162,7 @@
},
"node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.7.tgz",
- "integrity": "sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7"
},
@@ -1231,8 +1175,7 @@
},
"node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz",
- "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7",
"@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
@@ -1247,8 +1190,7 @@
},
"node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.7.tgz",
- "integrity": "sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-environment-visitor": "^7.24.7",
"@babel/helper-plugin-utils": "^7.24.7"
@@ -1292,8 +1234,7 @@
},
"node_modules/@babel/plugin-proposal-decorators": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.24.7.tgz",
- "integrity": "sha512-RL9GR0pUG5Kc8BUWLNDm2T5OpYwSX15r98I0IkgmRQTXuELq/OynH8xtMTMvTJFjXbMWFVTKtYkTaYQsuAwQlQ==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-create-class-features-plugin": "^7.24.7",
"@babel/helper-plugin-utils": "^7.24.7",
@@ -1337,9 +1278,7 @@
},
"node_modules/@babel/plugin-proposal-logical-assignment-operators": {
"version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz",
- "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==",
- "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead.",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.20.2",
"@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
@@ -1427,9 +1366,7 @@
},
"node_modules/@babel/plugin-proposal-private-methods": {
"version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz",
- "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==",
- "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.",
+ "license": "MIT",
"dependencies": {
"@babel/helper-create-class-features-plugin": "^7.18.6",
"@babel/helper-plugin-utils": "^7.18.6"
@@ -1443,9 +1380,7 @@
},
"node_modules/@babel/plugin-proposal-private-property-in-object": {
"version": "7.21.11",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz",
- "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==",
- "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.",
+ "license": "MIT",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.18.6",
"@babel/helper-create-class-features-plugin": "^7.21.0",
@@ -1491,8 +1426,7 @@
},
"node_modules/@babel/plugin-syntax-class-static-block": {
"version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
- "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.14.5"
},
@@ -1505,8 +1439,7 @@
},
"node_modules/@babel/plugin-syntax-decorators": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.7.tgz",
- "integrity": "sha512-Ui4uLJJrRV1lb38zg1yYTmRKmiZLiftDEvZN2iq3kd9kUFU+PttmzTbAFC2ucRk/XJmtek6G23gPsuZbhrT8fQ==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7"
},
@@ -1552,8 +1485,7 @@
},
"node_modules/@babel/plugin-syntax-flow": {
"version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.24.1.tgz",
- "integrity": "sha512-sxi2kLTI5DeW5vDtMUsk4mTPwvlUDbjOnoWayhynCwrw4QXRld4QEYwqzY8JmQXaJUtgUuCIurtSRH5sn4c7mA==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.0"
},
@@ -1566,8 +1498,7 @@
},
"node_modules/@babel/plugin-syntax-import-assertions": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz",
- "integrity": "sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7"
},
@@ -1580,8 +1511,7 @@
},
"node_modules/@babel/plugin-syntax-import-attributes": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz",
- "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7"
},
@@ -1614,8 +1544,7 @@
},
"node_modules/@babel/plugin-syntax-jsx": {
"version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz",
- "integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.0"
},
@@ -1714,8 +1643,7 @@
},
"node_modules/@babel/plugin-syntax-typescript": {
"version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz",
- "integrity": "sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.0"
},
@@ -1742,8 +1670,7 @@
},
"node_modules/@babel/plugin-transform-arrow-functions": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz",
- "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7"
},
@@ -1756,8 +1683,7 @@
},
"node_modules/@babel/plugin-transform-async-generator-functions": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.7.tgz",
- "integrity": "sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-environment-visitor": "^7.24.7",
"@babel/helper-plugin-utils": "^7.24.7",
@@ -1773,8 +1699,7 @@
},
"node_modules/@babel/plugin-transform-async-to-generator": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz",
- "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-module-imports": "^7.24.7",
"@babel/helper-plugin-utils": "^7.24.7",
@@ -1789,8 +1714,7 @@
},
"node_modules/@babel/plugin-transform-block-scoped-functions": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz",
- "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7"
},
@@ -1803,8 +1727,7 @@
},
"node_modules/@babel/plugin-transform-block-scoping": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.7.tgz",
- "integrity": "sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7"
},
@@ -1817,8 +1740,7 @@
},
"node_modules/@babel/plugin-transform-class-properties": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz",
- "integrity": "sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-create-class-features-plugin": "^7.24.7",
"@babel/helper-plugin-utils": "^7.24.7"
@@ -1832,8 +1754,7 @@
},
"node_modules/@babel/plugin-transform-class-static-block": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz",
- "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-create-class-features-plugin": "^7.24.7",
"@babel/helper-plugin-utils": "^7.24.7",
@@ -1848,8 +1769,7 @@
},
"node_modules/@babel/plugin-transform-classes": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.7.tgz",
- "integrity": "sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.24.7",
"@babel/helper-compilation-targets": "^7.24.7",
@@ -1869,8 +1789,7 @@
},
"node_modules/@babel/plugin-transform-computed-properties": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz",
- "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7",
"@babel/template": "^7.24.7"
@@ -1884,8 +1803,7 @@
},
"node_modules/@babel/plugin-transform-destructuring": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.7.tgz",
- "integrity": "sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7"
},
@@ -1898,8 +1816,7 @@
},
"node_modules/@babel/plugin-transform-dotall-regex": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz",
- "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.24.7",
"@babel/helper-plugin-utils": "^7.24.7"
@@ -1913,8 +1830,7 @@
},
"node_modules/@babel/plugin-transform-duplicate-keys": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz",
- "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7"
},
@@ -1927,8 +1843,7 @@
},
"node_modules/@babel/plugin-transform-dynamic-import": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz",
- "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7",
"@babel/plugin-syntax-dynamic-import": "^7.8.3"
@@ -1942,8 +1857,7 @@
},
"node_modules/@babel/plugin-transform-exponentiation-operator": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz",
- "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7",
"@babel/helper-plugin-utils": "^7.24.7"
@@ -1957,8 +1871,7 @@
},
"node_modules/@babel/plugin-transform-export-namespace-from": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz",
- "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7",
"@babel/plugin-syntax-export-namespace-from": "^7.8.3"
@@ -1972,8 +1885,7 @@
},
"node_modules/@babel/plugin-transform-flow-strip-types": {
"version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.24.1.tgz",
- "integrity": "sha512-iIYPIWt3dUmUKKE10s3W+jsQ3icFkw0JyRVyY1B7G4yK/nngAOHLVx8xlhA6b/Jzl/Y0nis8gjqhqKtRDQqHWQ==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.0",
"@babel/plugin-syntax-flow": "^7.24.1"
@@ -1987,8 +1899,7 @@
},
"node_modules/@babel/plugin-transform-for-of": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz",
- "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7",
"@babel/helper-skip-transparent-expression-wrappers": "^7.24.7"
@@ -2002,8 +1913,7 @@
},
"node_modules/@babel/plugin-transform-function-name": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.7.tgz",
- "integrity": "sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-compilation-targets": "^7.24.7",
"@babel/helper-function-name": "^7.24.7",
@@ -2018,8 +1928,7 @@
},
"node_modules/@babel/plugin-transform-json-strings": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz",
- "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7",
"@babel/plugin-syntax-json-strings": "^7.8.3"
@@ -2033,8 +1942,7 @@
},
"node_modules/@babel/plugin-transform-literals": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz",
- "integrity": "sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7"
},
@@ -2047,8 +1955,7 @@
},
"node_modules/@babel/plugin-transform-logical-assignment-operators": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz",
- "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7",
"@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
@@ -2062,8 +1969,7 @@
},
"node_modules/@babel/plugin-transform-member-expression-literals": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz",
- "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7"
},
@@ -2076,8 +1982,7 @@
},
"node_modules/@babel/plugin-transform-modules-amd": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz",
- "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-module-transforms": "^7.24.7",
"@babel/helper-plugin-utils": "^7.24.7"
@@ -2091,8 +1996,7 @@
},
"node_modules/@babel/plugin-transform-modules-commonjs": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.7.tgz",
- "integrity": "sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-module-transforms": "^7.24.7",
"@babel/helper-plugin-utils": "^7.24.7",
@@ -2107,8 +2011,7 @@
},
"node_modules/@babel/plugin-transform-modules-systemjs": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.7.tgz",
- "integrity": "sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-hoist-variables": "^7.24.7",
"@babel/helper-module-transforms": "^7.24.7",
@@ -2124,8 +2027,7 @@
},
"node_modules/@babel/plugin-transform-modules-umd": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz",
- "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-module-transforms": "^7.24.7",
"@babel/helper-plugin-utils": "^7.24.7"
@@ -2139,8 +2041,7 @@
},
"node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz",
- "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.24.7",
"@babel/helper-plugin-utils": "^7.24.7"
@@ -2154,8 +2055,7 @@
},
"node_modules/@babel/plugin-transform-new-target": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz",
- "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7"
},
@@ -2168,8 +2068,7 @@
},
"node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz",
- "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7",
"@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
@@ -2183,8 +2082,7 @@
},
"node_modules/@babel/plugin-transform-numeric-separator": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz",
- "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7",
"@babel/plugin-syntax-numeric-separator": "^7.10.4"
@@ -2198,8 +2096,7 @@
},
"node_modules/@babel/plugin-transform-object-rest-spread": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz",
- "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-compilation-targets": "^7.24.7",
"@babel/helper-plugin-utils": "^7.24.7",
@@ -2215,8 +2112,7 @@
},
"node_modules/@babel/plugin-transform-object-super": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz",
- "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7",
"@babel/helper-replace-supers": "^7.24.7"
@@ -2230,8 +2126,7 @@
},
"node_modules/@babel/plugin-transform-optional-catch-binding": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz",
- "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7",
"@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
@@ -2245,8 +2140,7 @@
},
"node_modules/@babel/plugin-transform-optional-chaining": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.7.tgz",
- "integrity": "sha512-tK+0N9yd4j+x/4hxF3F0e0fu/VdcxU18y5SevtyM/PCFlQvXbR0Zmlo2eBrKtVipGNFzpq56o8WsIIKcJFUCRQ==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7",
"@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
@@ -2261,8 +2155,7 @@
},
"node_modules/@babel/plugin-transform-parameters": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz",
- "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7"
},
@@ -2275,8 +2168,7 @@
},
"node_modules/@babel/plugin-transform-private-methods": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz",
- "integrity": "sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-create-class-features-plugin": "^7.24.7",
"@babel/helper-plugin-utils": "^7.24.7"
@@ -2290,8 +2182,7 @@
},
"node_modules/@babel/plugin-transform-private-property-in-object": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz",
- "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.24.7",
"@babel/helper-create-class-features-plugin": "^7.24.7",
@@ -2307,8 +2198,7 @@
},
"node_modules/@babel/plugin-transform-property-literals": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz",
- "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7"
},
@@ -2418,8 +2308,7 @@
},
"node_modules/@babel/plugin-transform-regenerator": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz",
- "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7",
"regenerator-transform": "^0.15.2"
@@ -2433,8 +2322,7 @@
},
"node_modules/@babel/plugin-transform-reserved-words": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz",
- "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7"
},
@@ -2472,8 +2360,7 @@
},
"node_modules/@babel/plugin-transform-shorthand-properties": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz",
- "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7"
},
@@ -2486,8 +2373,7 @@
},
"node_modules/@babel/plugin-transform-spread": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz",
- "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7",
"@babel/helper-skip-transparent-expression-wrappers": "^7.24.7"
@@ -2501,8 +2387,7 @@
},
"node_modules/@babel/plugin-transform-sticky-regex": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz",
- "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7"
},
@@ -2515,8 +2400,7 @@
},
"node_modules/@babel/plugin-transform-template-literals": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz",
- "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7"
},
@@ -2529,8 +2413,7 @@
},
"node_modules/@babel/plugin-transform-typeof-symbol": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.7.tgz",
- "integrity": "sha512-VtR8hDy7YLB7+Pet9IarXjg/zgCMSF+1mNS/EQEiEaUPoFXCVsHG64SIxcaaI2zJgRiv+YmgaQESUfWAdbjzgg==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7"
},
@@ -2543,8 +2426,7 @@
},
"node_modules/@babel/plugin-transform-typescript": {
"version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.1.tgz",
- "integrity": "sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.22.5",
"@babel/helper-create-class-features-plugin": "^7.24.1",
@@ -2560,8 +2442,7 @@
},
"node_modules/@babel/plugin-transform-unicode-escapes": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz",
- "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.7"
},
@@ -2574,8 +2455,7 @@
},
"node_modules/@babel/plugin-transform-unicode-property-regex": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz",
- "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.24.7",
"@babel/helper-plugin-utils": "^7.24.7"
@@ -2589,8 +2469,7 @@
},
"node_modules/@babel/plugin-transform-unicode-regex": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz",
- "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.24.7",
"@babel/helper-plugin-utils": "^7.24.7"
@@ -2604,8 +2483,7 @@
},
"node_modules/@babel/plugin-transform-unicode-sets-regex": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz",
- "integrity": "sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.24.7",
"@babel/helper-plugin-utils": "^7.24.7"
@@ -2619,8 +2497,7 @@
},
"node_modules/@babel/preset-env": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.7.tgz",
- "integrity": "sha512-1YZNsc+y6cTvWlDHidMBsQZrZfEFjRIo/BZCT906PMdzOyXtSLTgqGdrpcuTDCXyd11Am5uQULtDIcCfnTc8fQ==",
+ "license": "MIT",
"dependencies": {
"@babel/compat-data": "^7.24.7",
"@babel/helper-compilation-targets": "^7.24.7",
@@ -2713,8 +2590,7 @@
},
"node_modules/@babel/preset-env/node_modules/@babel/helper-define-polyfill-provider": {
"version": "0.6.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.1.tgz",
- "integrity": "sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-compilation-targets": "^7.22.6",
"@babel/helper-plugin-utils": "^7.22.5",
@@ -2738,8 +2614,7 @@
},
"node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs2": {
"version": "0.4.10",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.10.tgz",
- "integrity": "sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==",
+ "license": "MIT",
"dependencies": {
"@babel/compat-data": "^7.22.6",
"@babel/helper-define-polyfill-provider": "^0.6.1",
@@ -2751,8 +2626,7 @@
},
"node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs3": {
"version": "0.10.4",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz",
- "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-define-polyfill-provider": "^0.6.1",
"core-js-compat": "^3.36.1"
@@ -2763,8 +2637,7 @@
},
"node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-regenerator": {
"version": "0.6.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.1.tgz",
- "integrity": "sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-define-polyfill-provider": "^0.6.1"
},
@@ -2774,16 +2647,14 @@
},
"node_modules/@babel/preset-env/node_modules/semver": {
"version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/@babel/preset-flow": {
"version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.24.1.tgz",
- "integrity": "sha512-sWCV2G9pcqZf+JHyv/RyqEIpFypxdCSxWIxQjpdaQxenNog7cN1pr76hg8u0Fz8Qgg0H4ETkGcJnXL8d4j0PPA==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.0",
"@babel/helper-validator-option": "^7.23.5",
@@ -2798,8 +2669,7 @@
},
"node_modules/@babel/preset-modules": {
"version": "0.1.6-no-external-plugins",
- "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz",
- "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.0.0",
"@babel/types": "^7.4.4",
@@ -2829,8 +2699,7 @@
},
"node_modules/@babel/preset-typescript": {
"version": "7.24.1",
- "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.1.tgz",
- "integrity": "sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.24.0",
"@babel/helper-validator-option": "^7.23.5",
@@ -2847,8 +2716,7 @@
},
"node_modules/@babel/register": {
"version": "7.23.7",
- "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.23.7.tgz",
- "integrity": "sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==",
+ "license": "MIT",
"dependencies": {
"clone-deep": "^4.0.1",
"find-cache-dir": "^2.0.0",
@@ -2869,8 +2737,7 @@
},
"node_modules/@babel/runtime": {
"version": "7.24.6",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.6.tgz",
- "integrity": "sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==",
+ "license": "MIT",
"dependencies": {
"regenerator-runtime": "^0.14.0"
},
@@ -2884,8 +2751,7 @@
},
"node_modules/@babel/template": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz",
- "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==",
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.24.7",
"@babel/parser": "^7.24.7",
@@ -2916,8 +2782,7 @@
},
"node_modules/@babel/types": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz",
- "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-string-parser": "^7.24.7",
"@babel/helper-validator-identifier": "^7.24.7",
@@ -2929,14 +2794,12 @@
},
"node_modules/@base2/pretty-print-object": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@base2/pretty-print-object/-/pretty-print-object-1.0.1.tgz",
- "integrity": "sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA==",
- "dev": true
+ "dev": true,
+ "license": "BSD-2-Clause"
},
"node_modules/@bcoe/v8-coverage": {
"version": "0.2.3",
- "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
- "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw=="
+ "license": "MIT"
},
"node_modules/@blakeembrey/deque": {
"version": "1.0.5",
@@ -2950,9 +2813,8 @@
},
"node_modules/@callstack/reassure-cli": {
"version": "1.0.0-rc.4",
- "resolved": "https://registry.npmjs.org/@callstack/reassure-cli/-/reassure-cli-1.0.0-rc.4.tgz",
- "integrity": "sha512-AjG0k3FBUBTAUewoXOJq4J/nEGpruqeXsRodtuWm5VbyGVB5J6DGXnoyFOBgBDi4OaJKcYiLGQKseCnCU14SGw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@callstack/reassure-compare": "1.0.0-rc.4",
"@callstack/reassure-logger": "1.0.0-rc.4",
@@ -2966,9 +2828,8 @@
},
"node_modules/@callstack/reassure-cli/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,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -2981,9 +2842,8 @@
},
"node_modules/@callstack/reassure-cli/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,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -2997,9 +2857,8 @@
},
"node_modules/@callstack/reassure-cli/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,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -3009,24 +2868,21 @@
},
"node_modules/@callstack/reassure-cli/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
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@callstack/reassure-cli/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,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@callstack/reassure-cli/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,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -3036,9 +2892,8 @@
},
"node_modules/@callstack/reassure-compare": {
"version": "1.0.0-rc.4",
- "resolved": "https://registry.npmjs.org/@callstack/reassure-compare/-/reassure-compare-1.0.0-rc.4.tgz",
- "integrity": "sha512-wWAFwKmMHVxTjovxq5AntOaGWMK6K2xxYl56O21MPINEtlp51/YdXOJjcWKwKQE914vv4uJb0frOALd/zw95qA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@callstack/reassure-logger": "1.0.0-rc.4",
"markdown-table": "^2.0.0",
@@ -3048,24 +2903,21 @@
},
"node_modules/@callstack/reassure-danger": {
"version": "1.0.0-rc.4",
- "resolved": "https://registry.npmjs.org/@callstack/reassure-danger/-/reassure-danger-1.0.0-rc.4.tgz",
- "integrity": "sha512-qAMLpaVw9al/8SGWWo9ZBFLdfegdVApC9Ur6IHtYz23s2Dgz+/ILEkQq0nHTCWeCYOgktH9qG0Ac0menFCmcfg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@callstack/reassure-logger": {
"version": "1.0.0-rc.4",
- "resolved": "https://registry.npmjs.org/@callstack/reassure-logger/-/reassure-logger-1.0.0-rc.4.tgz",
- "integrity": "sha512-Fgkwdb9iErjZ56AQEN9CYTQwXUiCOgKWJ7kktnXPiHHhC0ok4J2FyNbd7jYwFzRpsJNlXUm+wk0NfCSF9rG0bg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"chalk": "4.1.2"
}
},
"node_modules/@callstack/reassure-logger/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,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -3078,9 +2930,8 @@
},
"node_modules/@callstack/reassure-logger/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,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -3094,9 +2945,8 @@
},
"node_modules/@callstack/reassure-logger/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,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -3106,24 +2956,21 @@
},
"node_modules/@callstack/reassure-logger/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
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@callstack/reassure-logger/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,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@callstack/reassure-logger/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,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -3133,9 +2980,8 @@
},
"node_modules/@callstack/reassure-measure": {
"version": "1.0.0-rc.4",
- "resolved": "https://registry.npmjs.org/@callstack/reassure-measure/-/reassure-measure-1.0.0-rc.4.tgz",
- "integrity": "sha512-wc6TC0tVfNJ+b+hJ6RExSCw7prp++Y3AsgTNb9zlB1SqRxrFACYYPA15gaOUf4i/poZuE+Ryt1iCU131rcmfeA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@callstack/reassure-logger": "1.0.0-rc.4",
"mathjs": "^12.4.2"
@@ -3146,9 +2992,8 @@
},
"node_modules/@colors/colors": {
"version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
- "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
"dev": true,
+ "license": "MIT",
"optional": true,
"engines": {
"node": ">=0.1.90"
@@ -3176,8 +3021,9 @@
},
"node_modules/@develar/schema-utils": {
"version": "2.6.5",
+ "resolved": "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz",
+ "integrity": "sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ajv": "^6.12.0",
"ajv-keywords": "^3.4.1"
@@ -3192,8 +3038,9 @@
},
"node_modules/@develar/schema-utils/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,
- "license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -3207,16 +3054,18 @@
},
"node_modules/@develar/schema-utils/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,
- "license": "MIT",
"peerDependencies": {
"ajv": "^6.9.1"
}
},
"node_modules/@develar/schema-utils/node_modules/json-schema-traverse": {
"version": "0.4.1",
- "dev": true,
- "license": "MIT"
+ "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/@discoveryjs/json-ext": {
"version": "0.5.7",
@@ -3235,18 +3084,16 @@
},
"node_modules/@dword-design/dedent": {
"version": "0.7.0",
- "resolved": "https://registry.npmjs.org/@dword-design/dedent/-/dedent-0.7.0.tgz",
- "integrity": "sha512-OFmAmzKiDUh9m7WRMYcoEOPI7b5tS5hdqQmtKDwF+ZssVJv8a+GHo9VOtFsmlw3h8Roh/9QzFWIsjSFZyQUMdg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"babel-plugin-add-module-exports": "^1.0.2"
}
},
"node_modules/@dword-design/endent": {
"version": "1.4.1",
- "resolved": "https://registry.npmjs.org/@dword-design/endent/-/endent-1.4.1.tgz",
- "integrity": "sha512-e2sCTzth5kyRdM0o+yEb5wBVzUdJL8Y6HblRGRV0Bif0knf1ZjRLhUjdCrqM+Muirb68X/xJzgdRDJVmLqgXGA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@dword-design/dedent": "^0.7.0",
"fast-json-parse": "^1.0.3",
@@ -3255,9 +3102,8 @@
},
"node_modules/@dword-design/eslint-plugin-import-alias": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/@dword-design/eslint-plugin-import-alias/-/eslint-plugin-import-alias-5.0.0.tgz",
- "integrity": "sha512-QbY2hA+YvhKiPJnAd9fOwT7gNV8OvaGLHdUsC6uVtyoUVjzx55WbUlzlEZzurlwDamXDlIB81IxbHgHT32Lx0w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/core": "^7.10.2",
"@dword-design/functions": "^6.0.0",
@@ -3274,9 +3120,8 @@
},
"node_modules/@dword-design/functions": {
"version": "6.0.0",
- "resolved": "https://registry.npmjs.org/@dword-design/functions/-/functions-6.0.0.tgz",
- "integrity": "sha512-22X9eviXAbaz8xdYrp5Tj6KjDPiT+m3fppAP+wEqA3gecAlCyExABesA1bEZ57aXrXrbhNk88M8PvdAO/PLg3A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@dword-design/endent": "^1.0.0",
"delay": "^6.0.0",
@@ -3301,9 +3146,10 @@
}
},
"node_modules/@electron/asar": {
- "version": "3.2.8",
+ "version": "3.2.10",
+ "resolved": "https://registry.npmjs.org/@electron/asar/-/asar-3.2.10.tgz",
+ "integrity": "sha512-mvBSwIBUeiRscrCeJE1LwctAriBj65eUDm0Pc11iE5gRwzkmsdbS7FnZ1XUWjpSeQWL1L5g12Fc/SchPM9DUOw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"commander": "^5.0.0",
"glob": "^7.1.6",
@@ -3318,8 +3164,9 @@
},
"node_modules/@electron/asar/node_modules/commander": {
"version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz",
+ "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 6"
}
@@ -3382,9 +3229,10 @@
}
},
"node_modules/@electron/notarize": {
- "version": "2.2.1",
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/@electron/notarize/-/notarize-2.3.2.tgz",
+ "integrity": "sha512-zfayxCe19euNwRycCty1C7lF7snk9YwfRpB5M8GLr1a4ICH63znxaPNAubrMvj0yDvVozqfgsdYpXVUnpWBDpg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"debug": "^4.1.1",
"fs-extra": "^9.0.1",
@@ -3395,9 +3243,10 @@
}
},
"node_modules/@electron/osx-sign": {
- "version": "1.0.5",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@electron/osx-sign/-/osx-sign-1.3.0.tgz",
+ "integrity": "sha512-TEXhxlYSDRr9JWK5nWdOv5MtuUdaZ412uxIIEQ0hLt80o0HYWtQJBlW5QmrQDMtebzATaOjKG9UfCzLyA90zWQ==",
"dev": true,
- "license": "BSD-2-Clause",
"dependencies": {
"compare-version": "^0.1.2",
"debug": "^4.3.4",
@@ -3416,8 +3265,9 @@
},
"node_modules/@electron/osx-sign/node_modules/fs-extra": {
"version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
+ "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -3429,8 +3279,9 @@
},
"node_modules/@electron/osx-sign/node_modules/isbinaryfile": {
"version": "4.0.10",
+ "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz",
+ "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 8.0.0"
},
@@ -3438,408 +3289,205 @@
"url": "https://github.com/sponsors/gjtorikian/"
}
},
- "node_modules/@electron/universal": {
- "version": "1.5.1",
+ "node_modules/@electron/rebuild": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/@electron/rebuild/-/rebuild-3.6.0.tgz",
+ "integrity": "sha512-zF4x3QupRU3uNGaP5X1wjpmcjfw1H87kyqZ00Tc3HvriV+4gmOGuvQjGNkrJuXdsApssdNyVwLsy+TaeTGGcVw==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@electron/asar": "^3.2.1",
- "@malept/cross-spawn-promise": "^1.1.0",
- "debug": "^4.3.1",
- "dir-compare": "^3.0.0",
- "fs-extra": "^9.0.1",
- "minimatch": "^3.0.4",
- "plist": "^3.0.4"
+ "@malept/cross-spawn-promise": "^2.0.0",
+ "chalk": "^4.0.0",
+ "debug": "^4.1.1",
+ "detect-libc": "^2.0.1",
+ "fs-extra": "^10.0.0",
+ "got": "^11.7.0",
+ "node-abi": "^3.45.0",
+ "node-api-version": "^0.2.0",
+ "node-gyp": "^9.0.0",
+ "ora": "^5.1.0",
+ "read-binary-file-arch": "^1.0.6",
+ "semver": "^7.3.5",
+ "tar": "^6.0.5",
+ "yargs": "^17.0.1"
+ },
+ "bin": {
+ "electron-rebuild": "lib/cli.js"
},
"engines": {
- "node": ">=8.6"
- }
- },
- "node_modules/@emotion/use-insertion-effect-with-fallbacks": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz",
- "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==",
- "dev": true,
- "peerDependencies": {
- "react": ">=16.8.0"
+ "node": ">=12.13.0"
}
},
- "node_modules/@es-joy/jsdoccomment": {
- "version": "0.39.4",
+ "node_modules/@electron/rebuild/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,
- "license": "MIT",
"dependencies": {
- "comment-parser": "1.3.1",
- "esquery": "^1.5.0",
- "jsdoc-type-pratt-parser": "~4.0.0"
+ "color-convert": "^2.0.1"
},
"engines": {
- "node": ">=16"
- }
- },
- "node_modules/@esbuild/aix-ppc64": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz",
- "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "aix"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/android-arm": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz",
- "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/android-arm64": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz",
- "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/android-x64": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz",
- "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/darwin-arm64": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz",
- "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/darwin-x64": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz",
- "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/freebsd-arm64": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz",
- "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/freebsd-x64": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz",
- "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=12"
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/@esbuild/linux-arm": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz",
- "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==",
- "cpu": [
- "arm"
- ],
+ "node_modules/@electron/rebuild/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,
- "optional": true,
- "os": [
- "linux"
- ],
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
"engines": {
- "node": ">=12"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/@esbuild/linux-arm64": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz",
- "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/@electron/rebuild/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,
- "optional": true,
- "os": [
- "linux"
- ],
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
"engines": {
- "node": ">=12"
+ "node": ">=7.0.0"
}
},
- "node_modules/@esbuild/linux-ia32": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz",
- "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
+ "node_modules/@electron/rebuild/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/@esbuild/linux-loong64": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz",
- "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==",
- "cpu": [
- "loong64"
- ],
+ "node_modules/@electron/rebuild/node_modules/fs-extra": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
+ "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
"dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
"engines": {
"node": ">=12"
}
},
- "node_modules/@esbuild/linux-mips64el": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz",
- "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==",
- "cpu": [
- "mips64el"
- ],
+ "node_modules/@electron/rebuild/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,
- "optional": true,
- "os": [
- "linux"
- ],
"engines": {
- "node": ">=12"
+ "node": ">=8"
}
},
- "node_modules/@esbuild/linux-ppc64": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz",
- "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==",
- "cpu": [
- "ppc64"
- ],
+ "node_modules/@electron/rebuild/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,
- "optional": true,
- "os": [
- "linux"
- ],
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
"engines": {
- "node": ">=12"
+ "node": ">=8"
}
},
- "node_modules/@esbuild/linux-riscv64": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz",
- "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==",
- "cpu": [
- "riscv64"
- ],
+ "node_modules/@electron/universal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-2.0.1.tgz",
+ "integrity": "sha512-fKpv9kg4SPmt+hY7SVBnIYULE9QJl8L3sCfcBsnqbJwwBwAeTLokJ9TRt9y7bK0JAzIW2y78TVVjvnQEms/yyA==",
"dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
+ "dependencies": {
+ "@electron/asar": "^3.2.7",
+ "@malept/cross-spawn-promise": "^2.0.0",
+ "debug": "^4.3.1",
+ "dir-compare": "^4.2.0",
+ "fs-extra": "^11.1.1",
+ "minimatch": "^9.0.3",
+ "plist": "^3.1.0"
+ },
"engines": {
- "node": ">=12"
+ "node": ">=16.4"
}
},
- "node_modules/@esbuild/linux-s390x": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz",
- "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==",
- "cpu": [
- "s390x"
- ],
+ "node_modules/@electron/universal/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
+ "dependencies": {
+ "balanced-match": "^1.0.0"
}
},
- "node_modules/@esbuild/linux-x64": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz",
- "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@electron/universal/node_modules/fs-extra": {
+ "version": "11.2.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
+ "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
"dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
"engines": {
- "node": ">=12"
+ "node": ">=14.14"
}
},
- "node_modules/@esbuild/netbsd-x64": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz",
- "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@electron/universal/node_modules/minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
"dev": true,
- "optional": true,
- "os": [
- "netbsd"
- ],
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
"engines": {
- "node": ">=12"
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/@esbuild/openbsd-x64": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz",
- "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@emotion/use-insertion-effect-with-fallbacks": {
+ "version": "1.0.1",
"dev": true,
- "optional": true,
- "os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=12"
+ "license": "MIT",
+ "peerDependencies": {
+ "react": ">=16.8.0"
}
},
- "node_modules/@esbuild/sunos-x64": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz",
- "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@es-joy/jsdoccomment": {
+ "version": "0.39.4",
"dev": true,
- "optional": true,
- "os": [
- "sunos"
- ],
+ "license": "MIT",
+ "dependencies": {
+ "comment-parser": "1.3.1",
+ "esquery": "^1.5.0",
+ "jsdoc-type-pratt-parser": "~4.0.0"
+ },
"engines": {
- "node": ">=12"
+ "node": ">=16"
}
},
- "node_modules/@esbuild/win32-arm64": {
+ "node_modules/@esbuild/darwin-arm64": {
"version": "0.20.2",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz",
- "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==",
"cpu": [
"arm64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/win32-ia32": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz",
- "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/win32-x64": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz",
- "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
+ "darwin"
],
"engines": {
"node": ">=12"
@@ -3872,18 +3520,16 @@
},
"node_modules/@eslint-community/regexpp": {
"version": "4.10.1",
- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.1.tgz",
- "integrity": "sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.0.0 || ^14.0.0 || >=16.0.0"
}
},
"node_modules/@eslint/eslintrc": {
"version": "2.1.4",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
- "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
@@ -3904,9 +3550,8 @@
},
"node_modules/@eslint/eslintrc/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,
+ "license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -3920,15 +3565,13 @@
},
"node_modules/@eslint/eslintrc/node_modules/argparse": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
+ "dev": true,
+ "license": "Python-2.0"
},
"node_modules/@eslint/eslintrc/node_modules/globals": {
"version": "13.24.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
- "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"type-fest": "^0.20.2"
},
@@ -3941,9 +3584,8 @@
},
"node_modules/@eslint/eslintrc/node_modules/js-yaml": {
"version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
},
@@ -3953,15 +3595,13 @@
},
"node_modules/@eslint/eslintrc/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
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@eslint/eslintrc/node_modules/type-fest": {
"version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=10"
},
@@ -3971,17 +3611,16 @@
},
"node_modules/@eslint/js": {
"version": "8.57.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
- "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
"node_modules/@expensify/react-native-live-markdown": {
- "version": "0.1.103",
- "resolved": "https://registry.npmjs.org/@expensify/react-native-live-markdown/-/react-native-live-markdown-0.1.103.tgz",
- "integrity": "sha512-w9jQoxBE9LghfL8UdYbG+8A+CApmER/XMH8N7/bINn7w57+FnnBa5ckPWx6/UYX7OYsmYxSaHJLQkJEXYlDRZg==",
+ "version": "0.1.108",
+ "resolved": "https://registry.npmjs.org/@expensify/react-native-live-markdown/-/react-native-live-markdown-0.1.108.tgz",
+ "integrity": "sha512-7cVw76quRJhFfyPLccaNKUX6HJPkVcLiGKSLm5EfdP07/EXO9WPsbAoQvOEN7d7AfNLBhBVXjxqkc1WzUeNbmA==",
"workspaces": [
"parser",
"example",
@@ -3997,11 +3636,10 @@
},
"node_modules/@expo/bunyan": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@expo/bunyan/-/bunyan-4.0.0.tgz",
- "integrity": "sha512-Ydf4LidRB/EBI+YrB+cVLqIseiRfjUI/AeHBgjGMtq3GroraDu81OV7zqophRgupngoL3iS3JUMDMnxO7g39qA==",
"engines": [
"node >=0.10.0"
],
+ "license": "MIT",
"dependencies": {
"uuid": "^8.0.0"
},
@@ -4012,8 +3650,7 @@
},
"node_modules/@expo/cli": {
"version": "0.18.21",
- "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.18.21.tgz",
- "integrity": "sha512-t8sFUGXRM/vafILp98H/MvIgJ5c7OG+d780Zastpzn0zfakaVDvXyw9tXskwAYi9YHJpG8/cfvght1c5fBDBoA==",
+ "license": "MIT",
"dependencies": {
"@babel/runtime": "^7.20.0",
"@expo/code-signing-certificates": "0.0.5",
@@ -4099,16 +3736,14 @@
},
"node_modules/@expo/cli/node_modules/@babel/code-frame": {
"version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
- "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "license": "MIT",
"dependencies": {
"@babel/highlight": "^7.10.4"
}
},
"node_modules/@expo/cli/node_modules/@expo/config-plugins": {
"version": "8.0.6",
- "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-8.0.6.tgz",
- "integrity": "sha512-Vmn/BSg/hBmliU/Bl+G4sExDoWd4iHXQG7ITUNR5Uar7uLko1A5vdVV+EOEUFA0f8jEZMHG3uZJUoXmr4LPaxA==",
+ "license": "MIT",
"dependencies": {
"@expo/config-types": "^51.0.0-unreleased",
"@expo/json-file": "~8.3.0",
@@ -4129,9 +3764,7 @@
},
"node_modules/@expo/cli/node_modules/@expo/config-plugins/node_modules/glob": {
"version": "7.1.6",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
- "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
+ "license": "ISC",
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -4149,13 +3782,11 @@
},
"node_modules/@expo/cli/node_modules/@expo/config-types": {
"version": "51.0.2",
- "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-51.0.2.tgz",
- "integrity": "sha512-IglkIoiDwJMY01lYkF/ZSBoe/5cR+O3+Gx6fpLFjLfgZGBTdyPkKa1g8NWoWQCk+D3cKL2MDbszT2DyRRB0YqQ=="
+ "license": "MIT"
},
"node_modules/@expo/cli/node_modules/@expo/json-file": {
"version": "8.3.3",
- "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.3.tgz",
- "integrity": "sha512-eZ5dld9AD0PrVRiIWpRkm5aIoWBw3kAyd8VkuWEy92sEthBKDDDHAnK2a0dw0Eil6j7rK7lS/Qaq/Zzngv2h5A==",
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "~7.10.4",
"json5": "^2.2.2",
@@ -4164,8 +3795,7 @@
},
"node_modules/@expo/cli/node_modules/@expo/plist": {
"version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.1.3.tgz",
- "integrity": "sha512-GW/7hVlAylYg1tUrEASclw1MMk9FP4ZwyFAY/SUTJIhPDQHtfOlXREyWV3hhrHdX/K+pS73GNgdfT6E/e+kBbg==",
+ "license": "MIT",
"dependencies": {
"@xmldom/xmldom": "~0.7.7",
"base64-js": "^1.2.3",
@@ -4174,8 +3804,7 @@
},
"node_modules/@expo/cli/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==",
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -4188,21 +3817,18 @@
},
"node_modules/@expo/cli/node_modules/arg": {
"version": "5.0.2",
- "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
- "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
+ "license": "MIT"
},
"node_modules/@expo/cli/node_modules/bplist-creator": {
"version": "0.0.7",
- "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.7.tgz",
- "integrity": "sha512-xp/tcaV3T5PCiaY04mXga7o/TE+t95gqeLmADeBI1CvZtdWTbgBt3uLpvh4UWtenKeBhCV6oVxGk38yZr2uYEA==",
+ "license": "MIT",
"dependencies": {
"stream-buffers": "~2.2.0"
}
},
"node_modules/@expo/cli/node_modules/bplist-parser": {
"version": "0.3.2",
- "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz",
- "integrity": "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==",
+ "license": "MIT",
"dependencies": {
"big-integer": "1.6.x"
},
@@ -4212,8 +3838,7 @@
},
"node_modules/@expo/cli/node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -4227,8 +3852,7 @@
},
"node_modules/@expo/cli/node_modules/cli-cursor": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
- "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==",
+ "license": "MIT",
"dependencies": {
"restore-cursor": "^2.0.0"
},
@@ -4238,8 +3862,7 @@
},
"node_modules/@expo/cli/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==",
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -4249,21 +3872,18 @@
},
"node_modules/@expo/cli/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=="
+ "license": "MIT"
},
"node_modules/@expo/cli/node_modules/escape-string-regexp": {
"version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "license": "MIT",
"engines": {
"node": ">=0.8.0"
}
},
"node_modules/@expo/cli/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==",
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^4.0.0",
@@ -4275,9 +3895,7 @@
},
"node_modules/@expo/cli/node_modules/glob": {
"version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
+ "license": "ISC",
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -4295,24 +3913,21 @@
},
"node_modules/@expo/cli/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==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@expo/cli/node_modules/jsonfile": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
- "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "license": "MIT",
"optionalDependencies": {
"graceful-fs": "^4.1.6"
}
},
"node_modules/@expo/cli/node_modules/log-symbols": {
"version": "2.2.0",
- "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
- "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
+ "license": "MIT",
"dependencies": {
"chalk": "^2.0.1"
},
@@ -4322,8 +3937,7 @@
},
"node_modules/@expo/cli/node_modules/log-symbols/node_modules/ansi-styles": {
"version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "license": "MIT",
"dependencies": {
"color-convert": "^1.9.0"
},
@@ -4333,8 +3947,7 @@
},
"node_modules/@expo/cli/node_modules/log-symbols/node_modules/chalk": {
"version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
@@ -4346,29 +3959,25 @@
},
"node_modules/@expo/cli/node_modules/log-symbols/node_modules/color-convert": {
"version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "license": "MIT",
"dependencies": {
"color-name": "1.1.3"
}
},
"node_modules/@expo/cli/node_modules/log-symbols/node_modules/color-name": {
"version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ "license": "MIT"
},
"node_modules/@expo/cli/node_modules/log-symbols/node_modules/has-flag": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/@expo/cli/node_modules/log-symbols/node_modules/supports-color": {
"version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^3.0.0"
},
@@ -4378,16 +3987,14 @@
},
"node_modules/@expo/cli/node_modules/mimic-fn": {
"version": "1.2.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
- "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/@expo/cli/node_modules/onetime": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
- "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==",
+ "license": "MIT",
"dependencies": {
"mimic-fn": "^1.0.0"
},
@@ -4397,8 +4004,7 @@
},
"node_modules/@expo/cli/node_modules/ora": {
"version": "3.4.0",
- "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz",
- "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==",
+ "license": "MIT",
"dependencies": {
"chalk": "^2.4.2",
"cli-cursor": "^2.1.0",
@@ -4413,8 +4019,7 @@
},
"node_modules/@expo/cli/node_modules/ora/node_modules/ansi-styles": {
"version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "license": "MIT",
"dependencies": {
"color-convert": "^1.9.0"
},
@@ -4424,8 +4029,7 @@
},
"node_modules/@expo/cli/node_modules/ora/node_modules/chalk": {
"version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
@@ -4437,29 +4041,25 @@
},
"node_modules/@expo/cli/node_modules/ora/node_modules/color-convert": {
"version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "license": "MIT",
"dependencies": {
"color-name": "1.1.3"
}
},
"node_modules/@expo/cli/node_modules/ora/node_modules/color-name": {
"version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ "license": "MIT"
},
"node_modules/@expo/cli/node_modules/ora/node_modules/has-flag": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/@expo/cli/node_modules/ora/node_modules/supports-color": {
"version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^3.0.0"
},
@@ -4469,8 +4069,7 @@
},
"node_modules/@expo/cli/node_modules/picomatch": {
"version": "3.0.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz",
- "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==",
+ "license": "MIT",
"engines": {
"node": ">=10"
},
@@ -4480,8 +4079,7 @@
},
"node_modules/@expo/cli/node_modules/restore-cursor": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
- "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==",
+ "license": "MIT",
"dependencies": {
"onetime": "^2.0.0",
"signal-exit": "^3.0.2"
@@ -4492,8 +4090,7 @@
},
"node_modules/@expo/cli/node_modules/strip-ansi": {
"version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "license": "MIT",
"dependencies": {
"ansi-regex": "^4.1.0"
},
@@ -4503,8 +4100,7 @@
},
"node_modules/@expo/cli/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==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -4514,16 +4110,14 @@
},
"node_modules/@expo/cli/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==",
+ "license": "MIT",
"engines": {
"node": ">= 4.0.0"
}
},
"node_modules/@expo/code-signing-certificates": {
"version": "0.0.5",
- "resolved": "https://registry.npmjs.org/@expo/code-signing-certificates/-/code-signing-certificates-0.0.5.tgz",
- "integrity": "sha512-BNhXkY1bblxKZpltzAx98G2Egj9g1Q+JRcvR7E99DOj862FTCX+ZPsAUtPTr7aHxwtrL7+fL3r0JSmM9kBm+Bw==",
+ "license": "MIT",
"dependencies": {
"node-forge": "^1.2.1",
"nullthrows": "^1.1.1"
@@ -4531,8 +4125,7 @@
},
"node_modules/@expo/config": {
"version": "9.0.1",
- "resolved": "https://registry.npmjs.org/@expo/config/-/config-9.0.1.tgz",
- "integrity": "sha512-0tjaXBstTbXmD4z+UMFBkh2SZFwilizSQhW6DlaTMnPG5ezuw93zSFEWAuEC3YzkpVtNQTmYzxAYjxwh6seOGg==",
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "~7.10.4",
"@expo/config-plugins": "~8.0.0-beta.0",
@@ -4650,16 +4243,14 @@
},
"node_modules/@expo/config/node_modules/@babel/code-frame": {
"version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
- "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "license": "MIT",
"dependencies": {
"@babel/highlight": "^7.10.4"
}
},
"node_modules/@expo/config/node_modules/@expo/config-plugins": {
"version": "8.0.0",
- "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-8.0.0.tgz",
- "integrity": "sha512-8BASsVgSKz1M3m9Y+13b6dunUhNDvW+NZvKdf9c1yXJ6R0aYJw5m0vr3fEeOsYPBObO7iJwD3//whrPcUjsOWQ==",
+ "license": "MIT",
"dependencies": {
"@expo/config-types": "^51.0.0-unreleased",
"@expo/json-file": "~8.3.0",
@@ -4680,13 +4271,11 @@
},
"node_modules/@expo/config/node_modules/@expo/config-types": {
"version": "51.0.0",
- "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-51.0.0.tgz",
- "integrity": "sha512-acn03/u8mQvBhdTQtA7CNhevMltUhbSrpI01FYBJwpVntufkU++ncQujWKlgY/OwIajcfygk1AY4xcNZ5ImkRA=="
+ "license": "MIT"
},
"node_modules/@expo/config/node_modules/@expo/json-file": {
"version": "8.3.1",
- "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.1.tgz",
- "integrity": "sha512-QIMMaqPvm8EGflp041h27OG8DDgh3RxzkEjEEvHJ9AUImgeieMCGrpDsnGOcPI4TR6MpJpLNAk5rZK4szhEwIQ==",
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "~7.10.4",
"json5": "^2.2.2",
@@ -4695,8 +4284,7 @@
},
"node_modules/@expo/config/node_modules/@expo/plist": {
"version": "0.1.1",
- "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.1.1.tgz",
- "integrity": "sha512-90qbbblHYWR/z0R+HP2t7yRx0IG5AsEL0BqTY/vXcj4emhGhm39Dbwg4BO2t6qfdLljJISzUwEtWWTl1HNHAAg==",
+ "license": "MIT",
"dependencies": {
"@xmldom/xmldom": "~0.7.7",
"base64-js": "^1.2.3",
@@ -4705,8 +4293,7 @@
},
"node_modules/@expo/config/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==",
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -4719,8 +4306,7 @@
},
"node_modules/@expo/config/node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -4734,8 +4320,7 @@
},
"node_modules/@expo/config/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==",
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -4745,21 +4330,18 @@
},
"node_modules/@expo/config/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=="
+ "license": "MIT"
},
"node_modules/@expo/config/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==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@expo/config/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==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -4769,8 +4351,7 @@
},
"node_modules/@expo/devcert": {
"version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@expo/devcert/-/devcert-1.1.2.tgz",
- "integrity": "sha512-FyWghLu7rUaZEZSTLt/XNRukm0c9GFfwP0iFaswoDWpV6alvVg+zRAfCLdIVQEz1SVcQ3zo1hMZFDrnKGvkCuQ==",
+ "license": "MIT",
"dependencies": {
"application-config-path": "^0.1.0",
"command-exists": "^1.2.4",
@@ -4789,16 +4370,14 @@
},
"node_modules/@expo/devcert/node_modules/debug": {
"version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "license": "MIT",
"dependencies": {
"ms": "^2.1.1"
}
},
"node_modules/@expo/devcert/node_modules/mkdirp": {
"version": "0.5.6",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
- "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+ "license": "MIT",
"dependencies": {
"minimist": "^1.2.6"
},
@@ -4808,9 +4387,7 @@
},
"node_modules/@expo/devcert/node_modules/rimraf": {
"version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "deprecated": "Rimraf versions prior to v4 are no longer supported",
+ "license": "ISC",
"dependencies": {
"glob": "^7.1.3"
},
@@ -4820,13 +4397,11 @@
},
"node_modules/@expo/devcert/node_modules/sudo-prompt": {
"version": "8.2.5",
- "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz",
- "integrity": "sha512-rlBo3HU/1zAJUrkY6jNxDOC9eVYliG6nS4JA8u8KAshITd07tafMc/Br7xQwCSseXwJ2iCcHCE8SNWX3q8Z+kw=="
+ "license": "MIT"
},
"node_modules/@expo/devcert/node_modules/tmp": {
"version": "0.0.33",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
- "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "license": "MIT",
"dependencies": {
"os-tmpdir": "~1.0.2"
},
@@ -4836,8 +4411,7 @@
},
"node_modules/@expo/env": {
"version": "0.3.0",
- "resolved": "https://registry.npmjs.org/@expo/env/-/env-0.3.0.tgz",
- "integrity": "sha512-OtB9XVHWaXidLbHvrVDeeXa09yvTl3+IQN884sO6PhIi2/StXfgSH/9zC7IvzrDB8kW3EBJ1PPLuCUJ2hxAT7Q==",
+ "license": "MIT",
"dependencies": {
"chalk": "^4.0.0",
"debug": "^4.3.4",
@@ -4848,8 +4422,7 @@
},
"node_modules/@expo/env/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==",
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -4862,8 +4435,7 @@
},
"node_modules/@expo/env/node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -4877,8 +4449,7 @@
},
"node_modules/@expo/env/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==",
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -4888,35 +4459,18 @@
},
"node_modules/@expo/env/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=="
- },
- "node_modules/@expo/env/node_modules/dotenv-expand": {
- "version": "11.0.6",
- "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.6.tgz",
- "integrity": "sha512-8NHi73otpWsZGBSZwwknTXS5pqMOrk9+Ssrna8xCaxkzEpU9OTf9R5ArQGVw03//Zmk9MOwLPng9WwndvpAJ5g==",
- "dependencies": {
- "dotenv": "^16.4.4"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://dotenvx.com"
- }
+ "license": "MIT"
},
"node_modules/@expo/env/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==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@expo/env/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==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -4926,8 +4480,7 @@
},
"node_modules/@expo/image-utils": {
"version": "0.5.1",
- "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.5.1.tgz",
- "integrity": "sha512-U/GsFfFox88lXULmFJ9Shfl2aQGcwoKPF7fawSCLixIKtMCpsI+1r0h+5i0nQnmt9tHuzXZDL8+Dg1z6OhkI9A==",
+ "license": "MIT",
"dependencies": {
"@expo/spawn-async": "^1.7.2",
"chalk": "^4.0.0",
@@ -4943,8 +4496,7 @@
},
"node_modules/@expo/image-utils/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==",
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -4957,8 +4509,7 @@
},
"node_modules/@expo/image-utils/node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -4972,8 +4523,7 @@
},
"node_modules/@expo/image-utils/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==",
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -4983,21 +4533,18 @@
},
"node_modules/@expo/image-utils/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=="
+ "license": "MIT"
},
"node_modules/@expo/image-utils/node_modules/crypto-random-string": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
- "integrity": "sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/@expo/image-utils/node_modules/fs-extra": {
"version": "9.0.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz",
- "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==",
+ "license": "MIT",
"dependencies": {
"at-least-node": "^1.0.0",
"graceful-fs": "^4.2.0",
@@ -5010,16 +4557,14 @@
},
"node_modules/@expo/image-utils/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==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@expo/image-utils/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==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -5029,16 +4574,14 @@
},
"node_modules/@expo/image-utils/node_modules/temp-dir": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz",
- "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/@expo/image-utils/node_modules/tempy": {
"version": "0.3.0",
- "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz",
- "integrity": "sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==",
+ "license": "MIT",
"dependencies": {
"temp-dir": "^1.0.0",
"type-fest": "^0.3.1",
@@ -5050,16 +4593,14 @@
},
"node_modules/@expo/image-utils/node_modules/type-fest": {
"version": "0.3.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz",
- "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==",
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=6"
}
},
"node_modules/@expo/image-utils/node_modules/unique-string": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
- "integrity": "sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg==",
+ "license": "MIT",
"dependencies": {
"crypto-random-string": "^1.0.0"
},
@@ -5069,8 +4610,7 @@
},
"node_modules/@expo/image-utils/node_modules/universalify": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz",
- "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==",
+ "license": "MIT",
"engines": {
"node": ">= 10.0.0"
}
@@ -5103,8 +4643,7 @@
},
"node_modules/@expo/metro-config": {
"version": "0.18.8",
- "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.18.8.tgz",
- "integrity": "sha512-YGpTlVc1/6EPzPbt0LZt92Bwrpjngulup6uHSTRbwn/heMPfFaVv1Y4VE3GAUkx7/Qwu+dTVIV0Kys4pLOAIiw==",
+ "license": "MIT",
"dependencies": {
"@babel/core": "^7.20.0",
"@babel/generator": "^7.20.5",
@@ -5128,16 +4667,14 @@
},
"node_modules/@expo/metro-config/node_modules/@babel/code-frame": {
"version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
- "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "license": "MIT",
"dependencies": {
"@babel/highlight": "^7.10.4"
}
},
"node_modules/@expo/metro-config/node_modules/@expo/json-file": {
"version": "8.3.3",
- "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.3.tgz",
- "integrity": "sha512-eZ5dld9AD0PrVRiIWpRkm5aIoWBw3kAyd8VkuWEy92sEthBKDDDHAnK2a0dw0Eil6j7rK7lS/Qaq/Zzngv2h5A==",
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "~7.10.4",
"json5": "^2.2.2",
@@ -5146,8 +4683,7 @@
},
"node_modules/@expo/metro-config/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==",
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -5160,8 +4696,7 @@
},
"node_modules/@expo/metro-config/node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -5175,8 +4710,7 @@
},
"node_modules/@expo/metro-config/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==",
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -5186,14 +4720,11 @@
},
"node_modules/@expo/metro-config/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=="
+ "license": "MIT"
},
"node_modules/@expo/metro-config/node_modules/glob": {
"version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
+ "license": "ISC",
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -5211,16 +4742,14 @@
},
"node_modules/@expo/metro-config/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==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@expo/metro-config/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==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -5237,8 +4766,7 @@
},
"node_modules/@expo/osascript": {
"version": "2.1.3",
- "resolved": "https://registry.npmjs.org/@expo/osascript/-/osascript-2.1.3.tgz",
- "integrity": "sha512-aOEkhPzDsaAfolSswObGiYW0Pf0ROfR9J2NBRLQACdQ6uJlyAMiPF45DVEVknAU9juKh0y8ZyvC9LXqLEJYohA==",
+ "license": "MIT",
"dependencies": {
"@expo/spawn-async": "^1.7.2",
"exec-async": "^2.2.0"
@@ -5249,8 +4777,7 @@
},
"node_modules/@expo/package-manager": {
"version": "1.5.2",
- "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-1.5.2.tgz",
- "integrity": "sha512-IuA9XtGBilce0q8cyxtWINqbzMB1Fia0Yrug/O53HNuRSwQguV/iqjV68bsa4z8mYerePhcFgtvISWLAlNEbUA==",
+ "license": "MIT",
"dependencies": {
"@expo/json-file": "^8.3.0",
"@expo/spawn-async": "^1.7.2",
@@ -5268,16 +4795,14 @@
},
"node_modules/@expo/package-manager/node_modules/@babel/code-frame": {
"version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
- "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "license": "MIT",
"dependencies": {
"@babel/highlight": "^7.10.4"
}
},
"node_modules/@expo/package-manager/node_modules/@expo/json-file": {
"version": "8.3.3",
- "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.3.tgz",
- "integrity": "sha512-eZ5dld9AD0PrVRiIWpRkm5aIoWBw3kAyd8VkuWEy92sEthBKDDDHAnK2a0dw0Eil6j7rK7lS/Qaq/Zzngv2h5A==",
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "~7.10.4",
"json5": "^2.2.2",
@@ -5286,16 +4811,14 @@
},
"node_modules/@expo/package-manager/node_modules/ansi-regex": {
"version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@expo/package-manager/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==",
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -5308,8 +4831,7 @@
},
"node_modules/@expo/package-manager/node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -5323,8 +4845,7 @@
},
"node_modules/@expo/package-manager/node_modules/cli-cursor": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
- "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==",
+ "license": "MIT",
"dependencies": {
"restore-cursor": "^2.0.0"
},
@@ -5334,8 +4855,7 @@
},
"node_modules/@expo/package-manager/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==",
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -5345,29 +4865,25 @@
},
"node_modules/@expo/package-manager/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=="
+ "license": "MIT"
},
"node_modules/@expo/package-manager/node_modules/escape-string-regexp": {
"version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "license": "MIT",
"engines": {
"node": ">=0.8.0"
}
},
"node_modules/@expo/package-manager/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==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@expo/package-manager/node_modules/log-symbols": {
"version": "2.2.0",
- "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
- "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
+ "license": "MIT",
"dependencies": {
"chalk": "^2.0.1"
},
@@ -5377,8 +4893,7 @@
},
"node_modules/@expo/package-manager/node_modules/log-symbols/node_modules/ansi-styles": {
"version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "license": "MIT",
"dependencies": {
"color-convert": "^1.9.0"
},
@@ -5388,8 +4903,7 @@
},
"node_modules/@expo/package-manager/node_modules/log-symbols/node_modules/chalk": {
"version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
@@ -5401,29 +4915,25 @@
},
"node_modules/@expo/package-manager/node_modules/log-symbols/node_modules/color-convert": {
"version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "license": "MIT",
"dependencies": {
"color-name": "1.1.3"
}
},
"node_modules/@expo/package-manager/node_modules/log-symbols/node_modules/color-name": {
"version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ "license": "MIT"
},
"node_modules/@expo/package-manager/node_modules/log-symbols/node_modules/has-flag": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/@expo/package-manager/node_modules/log-symbols/node_modules/supports-color": {
"version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^3.0.0"
},
@@ -5433,16 +4943,14 @@
},
"node_modules/@expo/package-manager/node_modules/mimic-fn": {
"version": "1.2.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
- "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/@expo/package-manager/node_modules/onetime": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
- "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==",
+ "license": "MIT",
"dependencies": {
"mimic-fn": "^1.0.0"
},
@@ -5452,8 +4960,7 @@
},
"node_modules/@expo/package-manager/node_modules/ora": {
"version": "3.4.0",
- "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz",
- "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==",
+ "license": "MIT",
"dependencies": {
"chalk": "^2.4.2",
"cli-cursor": "^2.1.0",
@@ -5468,8 +4975,7 @@
},
"node_modules/@expo/package-manager/node_modules/ora/node_modules/ansi-styles": {
"version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "license": "MIT",
"dependencies": {
"color-convert": "^1.9.0"
},
@@ -5479,8 +4985,7 @@
},
"node_modules/@expo/package-manager/node_modules/ora/node_modules/chalk": {
"version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
@@ -5492,29 +4997,25 @@
},
"node_modules/@expo/package-manager/node_modules/ora/node_modules/color-convert": {
"version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "license": "MIT",
"dependencies": {
"color-name": "1.1.3"
}
},
"node_modules/@expo/package-manager/node_modules/ora/node_modules/color-name": {
"version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ "license": "MIT"
},
"node_modules/@expo/package-manager/node_modules/ora/node_modules/has-flag": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/@expo/package-manager/node_modules/ora/node_modules/supports-color": {
"version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^3.0.0"
},
@@ -5524,8 +5025,7 @@
},
"node_modules/@expo/package-manager/node_modules/restore-cursor": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
- "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==",
+ "license": "MIT",
"dependencies": {
"onetime": "^2.0.0",
"signal-exit": "^3.0.2"
@@ -5536,8 +5036,7 @@
},
"node_modules/@expo/package-manager/node_modules/strip-ansi": {
"version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "license": "MIT",
"dependencies": {
"ansi-regex": "^4.1.0"
},
@@ -5547,21 +5046,18 @@
},
"node_modules/@expo/package-manager/node_modules/strip-ansi/node_modules/ansi-regex": {
"version": "4.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
- "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+ "license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/@expo/package-manager/node_modules/sudo-prompt": {
"version": "9.1.1",
- "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.1.1.tgz",
- "integrity": "sha512-es33J1g2HjMpyAhz8lOR+ICmXXAqTuKbuXuUWLhOLew20oN9oUCgCJx615U/v7aioZg7IX5lIh9x34vwneu4pA=="
+ "license": "MIT"
},
"node_modules/@expo/package-manager/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==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -5580,8 +5076,7 @@
},
"node_modules/@expo/prebuild-config": {
"version": "7.0.6",
- "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-7.0.6.tgz",
- "integrity": "sha512-Hts+iGBaG6OQ+N8IEMMgwQElzJeSTb7iUJ26xADEHkaexsucAK+V52dM8M4ceicvbZR9q8M+ebJEGj0MCNA3dQ==",
+ "license": "MIT",
"dependencies": {
"@expo/config": "~9.0.0-beta.0",
"@expo/config-plugins": "~8.0.0-beta.0",
@@ -5601,16 +5096,14 @@
},
"node_modules/@expo/prebuild-config/node_modules/@babel/code-frame": {
"version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
- "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "license": "MIT",
"dependencies": {
"@babel/highlight": "^7.10.4"
}
},
"node_modules/@expo/prebuild-config/node_modules/@expo/config-plugins": {
"version": "8.0.6",
- "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-8.0.6.tgz",
- "integrity": "sha512-Vmn/BSg/hBmliU/Bl+G4sExDoWd4iHXQG7ITUNR5Uar7uLko1A5vdVV+EOEUFA0f8jEZMHG3uZJUoXmr4LPaxA==",
+ "license": "MIT",
"dependencies": {
"@expo/config-types": "^51.0.0-unreleased",
"@expo/json-file": "~8.3.0",
@@ -5631,13 +5124,11 @@
},
"node_modules/@expo/prebuild-config/node_modules/@expo/config-types": {
"version": "51.0.2",
- "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-51.0.2.tgz",
- "integrity": "sha512-IglkIoiDwJMY01lYkF/ZSBoe/5cR+O3+Gx6fpLFjLfgZGBTdyPkKa1g8NWoWQCk+D3cKL2MDbszT2DyRRB0YqQ=="
+ "license": "MIT"
},
"node_modules/@expo/prebuild-config/node_modules/@expo/json-file": {
"version": "8.3.3",
- "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.3.tgz",
- "integrity": "sha512-eZ5dld9AD0PrVRiIWpRkm5aIoWBw3kAyd8VkuWEy92sEthBKDDDHAnK2a0dw0Eil6j7rK7lS/Qaq/Zzngv2h5A==",
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "~7.10.4",
"json5": "^2.2.2",
@@ -5646,8 +5137,7 @@
},
"node_modules/@expo/prebuild-config/node_modules/@expo/plist": {
"version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.1.3.tgz",
- "integrity": "sha512-GW/7hVlAylYg1tUrEASclw1MMk9FP4ZwyFAY/SUTJIhPDQHtfOlXREyWV3hhrHdX/K+pS73GNgdfT6E/e+kBbg==",
+ "license": "MIT",
"dependencies": {
"@xmldom/xmldom": "~0.7.7",
"base64-js": "^1.2.3",
@@ -5656,8 +5146,7 @@
},
"node_modules/@expo/prebuild-config/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==",
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -5670,8 +5159,7 @@
},
"node_modules/@expo/prebuild-config/node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -5685,8 +5173,7 @@
},
"node_modules/@expo/prebuild-config/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==",
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -5696,21 +5183,18 @@
},
"node_modules/@expo/prebuild-config/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=="
+ "license": "MIT"
},
"node_modules/@expo/prebuild-config/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==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@expo/prebuild-config/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==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -5720,8 +5204,7 @@
},
"node_modules/@expo/rudder-sdk-node": {
"version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@expo/rudder-sdk-node/-/rudder-sdk-node-1.1.1.tgz",
- "integrity": "sha512-uy/hS/awclDJ1S88w9UGpc6Nm9XnNUjzOAAib1A3PVAnGQIwebg8DpFqOthFBTlZxeuV/BKbZ5jmTbtNZkp1WQ==",
+ "license": "MIT",
"dependencies": {
"@expo/bunyan": "^4.0.0",
"@segment/loosely-validate-event": "^2.0.0",
@@ -5737,8 +5220,7 @@
},
"node_modules/@expo/rudder-sdk-node/node_modules/fetch-retry": {
"version": "4.1.1",
- "resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-4.1.1.tgz",
- "integrity": "sha512-e6eB7zN6UBSwGVwrbWVH+gdLnkW9WwHhmq2YDK1Sh30pzx1onRVGBvogTlUeWxwTa+L86NYdo4hFkh7O8ZjSnA=="
+ "license": "MIT"
},
"node_modules/@expo/sdk-runtime-versions": {
"version": "1.0.0",
@@ -5746,8 +5228,7 @@
},
"node_modules/@expo/spawn-async": {
"version": "1.7.2",
- "resolved": "https://registry.npmjs.org/@expo/spawn-async/-/spawn-async-1.7.2.tgz",
- "integrity": "sha512-QdWi16+CHB9JYP7gma19OVVg0BFkvU8zNj9GjWorYI8Iv8FUxjOCcYRuAmX4s/h91e4e7BPsskc8cSrZYho9Ew==",
+ "license": "MIT",
"dependencies": {
"cross-spawn": "^7.0.3"
},
@@ -5761,8 +5242,7 @@
},
"node_modules/@expo/xcpretty": {
"version": "4.3.1",
- "resolved": "https://registry.npmjs.org/@expo/xcpretty/-/xcpretty-4.3.1.tgz",
- "integrity": "sha512-sqXgo1SCv+j4VtYEwl/bukuOIBrVgx6euIoCat3Iyx5oeoXwEA2USCoeL0IPubflMxncA2INkqJ/Wr3NGrSgzw==",
+ "license": "BSD-3-Clause",
"dependencies": {
"@babel/code-frame": "7.10.4",
"chalk": "^4.1.0",
@@ -5775,16 +5255,14 @@
},
"node_modules/@expo/xcpretty/node_modules/@babel/code-frame": {
"version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
- "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "license": "MIT",
"dependencies": {
"@babel/highlight": "^7.10.4"
}
},
"node_modules/@expo/xcpretty/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==",
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -5797,13 +5275,11 @@
},
"node_modules/@expo/xcpretty/node_modules/argparse": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
+ "license": "Python-2.0"
},
"node_modules/@expo/xcpretty/node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -5817,8 +5293,7 @@
},
"node_modules/@expo/xcpretty/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==",
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -5828,21 +5303,18 @@
},
"node_modules/@expo/xcpretty/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=="
+ "license": "MIT"
},
"node_modules/@expo/xcpretty/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==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@expo/xcpretty/node_modules/js-yaml": {
"version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
},
@@ -5852,8 +5324,7 @@
},
"node_modules/@expo/xcpretty/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==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -5863,9 +5334,8 @@
},
"node_modules/@fal-works/esbuild-plugin-global-externals": {
"version": "2.1.2",
- "resolved": "https://registry.npmjs.org/@fal-works/esbuild-plugin-global-externals/-/esbuild-plugin-global-externals-2.1.2.tgz",
- "integrity": "sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@formatjs/ecma402-abstract": {
"version": "1.15.0",
@@ -5963,8 +5433,7 @@
},
"node_modules/@fullstory/babel-plugin-react-native": {
"version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@fullstory/babel-plugin-react-native/-/babel-plugin-react-native-1.2.1.tgz",
- "integrity": "sha512-EMAgoPOo+31eppHxQf05oAGhKKTem7rw8GHDdbNJF0c5dQWzBGNVgF72TPjcxES91UI6hbss2eqoVOhUttLEoQ==",
+ "license": "MIT",
"dependencies": {
"@babel/parser": "^7.0.0",
"@babel/types": "^7.0.0"
@@ -5972,16 +5441,14 @@
},
"node_modules/@fullstory/browser": {
"version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@fullstory/browser/-/browser-2.0.3.tgz",
- "integrity": "sha512-usjH8FB1O2LiSWoblsuKhFhlYDGpIPuyQVOx4JXtxm9QmQARdKZdNq1vPijxuDvOGjhwtVZa4JmhvByRRuDPnQ==",
+ "license": "MIT",
"dependencies": {
"@fullstory/snippet": "2.0.3"
}
},
"node_modules/@fullstory/react-native": {
"version": "1.4.2",
- "resolved": "https://registry.npmjs.org/@fullstory/react-native/-/react-native-1.4.2.tgz",
- "integrity": "sha512-Ig85ghn5UN+Tc1JWL/y4hY9vleeaVHL3f6qH9W4odDNP4XAv29+G82nIYQhBOQGoVnIQ4oQFQftir/dqAbidSw==",
+ "license": "MIT",
"dependencies": {
"@fullstory/babel-plugin-annotate-react": "^2.2.0",
"@fullstory/babel-plugin-react-native": "^1.1.0"
@@ -5999,8 +5466,13 @@
},
"node_modules/@fullstory/snippet": {
"version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@fullstory/snippet/-/snippet-2.0.3.tgz",
- "integrity": "sha512-EaCuTQSLv5FvnjHLbTxErn3sS1+nLqf1p6sA/c4PV49stBtkUakA0eLhJJdaw0WLdXyEzZXf86lRNsjEzrgGPw=="
+ "license": "ISC"
+ },
+ "node_modules/@gar/promisify": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz",
+ "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==",
+ "dev": true
},
"node_modules/@gorhom/portal": {
"version": "1.0.14",
@@ -6015,21 +5487,18 @@
},
"node_modules/@graphql-typed-document-node/core": {
"version": "3.2.0",
- "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz",
- "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==",
+ "license": "MIT",
"peerDependencies": {
"graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
}
},
"node_modules/@hapi/hoek": {
"version": "9.3.0",
- "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
- "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ=="
+ "license": "BSD-3-Clause"
},
"node_modules/@hapi/topo": {
"version": "5.1.0",
- "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz",
- "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
+ "license": "BSD-3-Clause",
"dependencies": {
"@hapi/hoek": "^9.0.0"
}
@@ -6040,10 +5509,8 @@
},
"node_modules/@humanwhocodes/config-array": {
"version": "0.11.14",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
- "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
- "deprecated": "Use @eslint/config-array instead",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"@humanwhocodes/object-schema": "^2.0.2",
"debug": "^4.3.1",
@@ -6055,9 +5522,8 @@
},
"node_modules/@humanwhocodes/module-importer": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
- "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": ">=12.22"
},
@@ -6068,10 +5534,8 @@
},
"node_modules/@humanwhocodes/object-schema": {
"version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
- "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
- "deprecated": "Use @eslint/object-schema instead",
- "dev": true
+ "dev": true,
+ "license": "BSD-3-Clause"
},
"node_modules/@invertase/react-native-apple-authentication": {
"version": "2.2.2",
@@ -6247,8 +5711,7 @@
},
"node_modules/@jest/console": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz",
- "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==",
+ "license": "MIT",
"dependencies": {
"@jest/types": "^29.6.3",
"@types/node": "*",
@@ -6321,8 +5784,7 @@
},
"node_modules/@jest/core": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz",
- "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==",
+ "license": "MIT",
"dependencies": {
"@jest/console": "^29.7.0",
"@jest/reporters": "^29.7.0",
@@ -6367,8 +5829,7 @@
},
"node_modules/@jest/core/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==",
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -6381,8 +5842,7 @@
},
"node_modules/@jest/core/node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -6396,8 +5856,7 @@
},
"node_modules/@jest/core/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==",
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -6407,21 +5866,18 @@
},
"node_modules/@jest/core/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=="
+ "license": "MIT"
},
"node_modules/@jest/core/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==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@jest/core/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==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -6454,8 +5910,7 @@
},
"node_modules/@jest/expect": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz",
- "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==",
+ "license": "MIT",
"dependencies": {
"expect": "^29.7.0",
"jest-snapshot": "^29.7.0"
@@ -6466,8 +5921,7 @@
},
"node_modules/@jest/expect-utils": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz",
- "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==",
+ "license": "MIT",
"dependencies": {
"jest-get-type": "^29.6.3"
},
@@ -6492,8 +5946,7 @@
},
"node_modules/@jest/globals": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz",
- "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==",
+ "license": "MIT",
"dependencies": {
"@jest/environment": "^29.7.0",
"@jest/expect": "^29.7.0",
@@ -6506,8 +5959,7 @@
},
"node_modules/@jest/reporters": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz",
- "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==",
+ "license": "MIT",
"dependencies": {
"@bcoe/v8-coverage": "^0.2.3",
"@jest/console": "^29.7.0",
@@ -6548,8 +6000,7 @@
},
"node_modules/@jest/reporters/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==",
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -6562,8 +6013,7 @@
},
"node_modules/@jest/reporters/node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -6577,8 +6027,7 @@
},
"node_modules/@jest/reporters/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==",
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -6588,21 +6037,18 @@
},
"node_modules/@jest/reporters/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=="
+ "license": "MIT"
},
"node_modules/@jest/reporters/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==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@jest/reporters/node_modules/istanbul-lib-instrument": {
"version": "6.0.2",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz",
- "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==",
+ "license": "BSD-3-Clause",
"dependencies": {
"@babel/core": "^7.23.9",
"@babel/parser": "^7.23.9",
@@ -6616,8 +6062,7 @@
},
"node_modules/@jest/reporters/node_modules/jest-worker": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz",
- "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==",
+ "license": "MIT",
"dependencies": {
"@types/node": "*",
"jest-util": "^29.7.0",
@@ -6630,8 +6075,7 @@
},
"node_modules/@jest/reporters/node_modules/jest-worker/node_modules/supports-color": {
"version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -6644,8 +6088,7 @@
},
"node_modules/@jest/reporters/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==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -6665,8 +6108,7 @@
},
"node_modules/@jest/source-map": {
"version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz",
- "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==",
+ "license": "MIT",
"dependencies": {
"@jridgewell/trace-mapping": "^0.3.18",
"callsites": "^3.0.0",
@@ -6678,8 +6120,7 @@
},
"node_modules/@jest/test-result": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz",
- "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==",
+ "license": "MIT",
"dependencies": {
"@jest/console": "^29.7.0",
"@jest/types": "^29.6.3",
@@ -6692,8 +6133,7 @@
},
"node_modules/@jest/test-sequencer": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz",
- "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==",
+ "license": "MIT",
"dependencies": {
"@jest/test-result": "^29.7.0",
"graceful-fs": "^4.2.9",
@@ -6706,8 +6146,7 @@
},
"node_modules/@jest/transform": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz",
- "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==",
+ "license": "MIT",
"dependencies": {
"@babel/core": "^7.11.6",
"@jest/types": "^29.6.3",
@@ -6800,8 +6239,6 @@
},
"node_modules/@jest/types": {
"version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz",
- "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==",
"license": "MIT",
"dependencies": {
"@jest/schemas": "^29.6.3",
@@ -6893,8 +6330,7 @@
},
"node_modules/@jridgewell/set-array": {
"version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
- "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
+ "license": "MIT",
"engines": {
"node": ">=6.0.0"
}
@@ -6921,13 +6357,11 @@
},
"node_modules/@jridgewell/sourcemap-codec": {
"version": "1.4.15",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
- "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
+ "license": "MIT"
},
"node_modules/@jridgewell/trace-mapping": {
"version": "0.3.25",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
- "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
+ "license": "MIT",
"dependencies": {
"@jridgewell/resolve-uri": "^3.1.0",
"@jridgewell/sourcemap-codec": "^1.4.14"
@@ -6948,9 +6382,8 @@
},
"node_modules/@kie/act-js": {
"version": "2.6.2",
- "resolved": "https://registry.npmjs.org/@kie/act-js/-/act-js-2.6.2.tgz",
- "integrity": "sha512-i366cfWluUi55rPZ6e9/aWH4tnw3Q6W1CKh9Gz6QjTvbAtS4KnUUy33I9aMXS6uwa0haw6MSahMM37vmuFCVpQ==",
"hasInstallScript": true,
+ "license": "SEE LICENSE IN LICENSE",
"dependencies": {
"@kie/mock-github": "^2.0.0",
"adm-zip": "^0.5.10",
@@ -6967,8 +6400,7 @@
},
"node_modules/@kie/mock-github": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@kie/mock-github/-/mock-github-2.0.1.tgz",
- "integrity": "sha512-G1FD/jg1KyW7a6NvKI4uEVJCK3eJnzXkh4Ikxn2is5tiNC980lavi8ak6bn1QEFEgpYcfM4DpZM3yHDfOmyLuQ==",
+ "license": "SEE LICENSE IN LICENSE",
"dependencies": {
"@octokit/openapi-types-ghec": "^18.0.0",
"ajv": "^8.11.0",
@@ -7012,9 +6444,8 @@
},
"node_modules/@leichtgewicht/ip-codec": {
"version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz",
- "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@lwc/eslint-plugin-lwc": {
"version": "1.7.2",
@@ -7080,7 +6511,9 @@
}
},
"node_modules/@malept/cross-spawn-promise": {
- "version": "1.1.1",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-2.0.0.tgz",
+ "integrity": "sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg==",
"dev": true,
"funding": [
{
@@ -7092,18 +6525,18 @@
"url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund"
}
],
- "license": "Apache-2.0",
"dependencies": {
"cross-spawn": "^7.0.1"
},
"engines": {
- "node": ">= 10"
+ "node": ">= 12.13.0"
}
},
"node_modules/@malept/flatpak-bundler": {
"version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz",
+ "integrity": "sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
"debug": "^4.1.1",
"fs-extra": "^9.0.0",
@@ -7235,9 +6668,8 @@
},
"node_modules/@mdx-js/react": {
"version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.0.1.tgz",
- "integrity": "sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/mdx": "^2.0.0"
},
@@ -7252,8 +6684,7 @@
},
"node_modules/@microsoft/applicationinsights-web-snippet": {
"version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-web-snippet/-/applicationinsights-web-snippet-1.1.2.tgz",
- "integrity": "sha512-qPoOk3MmEx3gS6hTc1/x8JWQG5g4BvRdH7iqZMENBsKCL927b7D7Mvl19bh3sW9Ucrg1fVrF+4hqShwQNdqLxQ==",
+ "license": "MIT",
"peer": true
},
"node_modules/@native-html/css-processor": {
@@ -7270,9 +6701,8 @@
},
"node_modules/@ndelangen/get-tarball": {
"version": "3.0.9",
- "resolved": "https://registry.npmjs.org/@ndelangen/get-tarball/-/get-tarball-3.0.9.tgz",
- "integrity": "sha512-9JKTEik4vq+yGosHYhZ1tiH/3WpUS0Nh0kej4Agndhox8pAdWhEx5knFVRcb/ya9knCRCs1rPxNrSXTDdfVqpA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"gunzip-maybe": "^1.4.2",
"pump": "^3.0.0",
@@ -7327,8 +6757,7 @@
},
"node_modules/@npmcli/fs": {
"version": "3.1.1",
- "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz",
- "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==",
+ "license": "ISC",
"dependencies": {
"semver": "^7.3.5"
},
@@ -7336,6 +6765,20 @@
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
+ "node_modules/@npmcli/move-file": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz",
+ "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==",
+ "deprecated": "This functionality has been moved to @npmcli/fs",
+ "dev": true,
+ "dependencies": {
+ "mkdirp": "^1.0.4",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
"node_modules/@octokit/auth-token": {
"version": "3.0.4",
"dev": true,
@@ -7420,8 +6863,7 @@
},
"node_modules/@octokit/openapi-types-ghec": {
"version": "18.1.1",
- "resolved": "https://registry.npmjs.org/@octokit/openapi-types-ghec/-/openapi-types-ghec-18.1.1.tgz",
- "integrity": "sha512-5Ri7FLYX4gJSdG+G0Q8QDca/gOLfkPN4YR2hkbVg6hEL+0N62MIsJPTyNaT9pGEXCLd1KbYV6Lh3T2ggsmyBJw=="
+ "license": "MIT"
},
"node_modules/@octokit/plugin-paginate-rest": {
"version": "3.1.0",
@@ -7529,8 +6971,7 @@
},
"node_modules/@onfido/react-native-sdk": {
"version": "10.6.0",
- "resolved": "https://registry.npmjs.org/@onfido/react-native-sdk/-/react-native-sdk-10.6.0.tgz",
- "integrity": "sha512-mNXfEjWWWgf3o/3F8orPmp24cShHsINJ1e15EeGNYOtm1XBPzq1FbEiiDp0pyuxgwpNFybGZGPjJcYpX0wwa4g==",
+ "license": "MIT",
"dependencies": {
"js-base64": "3.7.5"
},
@@ -7544,8 +6985,7 @@
},
"node_modules/@opentelemetry/api": {
"version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz",
- "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==",
+ "license": "Apache-2.0",
"peer": true,
"engines": {
"node": ">=8.0.0"
@@ -7553,8 +6993,7 @@
},
"node_modules/@opentelemetry/core": {
"version": "1.25.1",
- "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz",
- "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==",
+ "license": "Apache-2.0",
"peer": true,
"dependencies": {
"@opentelemetry/semantic-conventions": "1.25.1"
@@ -7568,8 +7007,7 @@
},
"node_modules/@opentelemetry/instrumentation": {
"version": "0.41.2",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.41.2.tgz",
- "integrity": "sha512-rxU72E0pKNH6ae2w5+xgVYZLzc5mlxAbGzF4shxMVK8YC2QQsfN38B2GPbj0jvrKWWNUElfclQ+YTykkNg/grw==",
+ "license": "Apache-2.0",
"peer": true,
"dependencies": {
"@types/shimmer": "^1.0.2",
@@ -7587,8 +7025,7 @@
},
"node_modules/@opentelemetry/resources": {
"version": "1.25.1",
- "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.25.1.tgz",
- "integrity": "sha512-pkZT+iFYIZsVn6+GzM0kSX+u3MSLCY9md+lIJOoKl/P+gJFfxJte/60Usdp8Ce4rOs8GduUpSPNe1ddGyDT1sQ==",
+ "license": "Apache-2.0",
"peer": true,
"dependencies": {
"@opentelemetry/core": "1.25.1",
@@ -7603,8 +7040,7 @@
},
"node_modules/@opentelemetry/sdk-trace-base": {
"version": "1.25.1",
- "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.25.1.tgz",
- "integrity": "sha512-C8k4hnEbc5FamuZQ92nTOp8X/diCY56XUTnMiv9UTuJitCzaNNHAVsdm5+HLCdI8SLQsLWIrG38tddMxLVoftw==",
+ "license": "Apache-2.0",
"peer": true,
"dependencies": {
"@opentelemetry/core": "1.25.1",
@@ -7620,8 +7056,7 @@
},
"node_modules/@opentelemetry/semantic-conventions": {
"version": "1.25.1",
- "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.25.1.tgz",
- "integrity": "sha512-ZDjMJJQRlyk8A1KZFCc+bCbsyrn1wTwdNt56F7twdfUfnHUZUq77/WfONCj8p72NZOyP7pNTdUWSTYC3GTbuuQ==",
+ "license": "Apache-2.0",
"peer": true,
"engines": {
"node": ">=14"
@@ -7629,9 +7064,8 @@
},
"node_modules/@peggyjs/from-mem": {
"version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@peggyjs/from-mem/-/from-mem-1.3.0.tgz",
- "integrity": "sha512-kzGoIRJjkg3KuGI4bopz9UvF3KguzfxalHRDEIdqEZUe45xezsQ6cx30e0RKuxPUexojQRBfu89Okn7f4/QXsw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"semver": "7.6.0"
},
@@ -7641,9 +7075,8 @@
},
"node_modules/@peggyjs/from-mem/node_modules/semver": {
"version": "7.6.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
- "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"lru-cache": "^6.0.0"
},
@@ -7655,13 +7088,13 @@
}
},
"node_modules/@perf-profiler/android": {
- "version": "0.12.1",
- "resolved": "https://registry.npmjs.org/@perf-profiler/android/-/android-0.12.1.tgz",
- "integrity": "sha512-t4E2tfj9UdJw5JjhFPLMzrsu3NkKSyiZyeIyd70HX9d3anWqNK47XuQV+qkDPMjWaoU+CTlj1SuNnIOqEkCpSA==",
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/@perf-profiler/android/-/android-0.13.0.tgz",
+ "integrity": "sha512-4lUQjJNHFAYB5npts5JLrPaPNpIOEAAjfpeTQOOgBNLT1NW50WWSGuvV2pAdnMi7T28cXs3aUziJJ30cNrSvNg==",
"dev": true,
"dependencies": {
"@perf-profiler/logger": "^0.3.3",
- "@perf-profiler/profiler": "^0.10.10",
+ "@perf-profiler/profiler": "^0.10.11",
"@perf-profiler/types": "^0.8.0",
"commander": "^12.0.0",
"lodash": "^4.17.21"
@@ -7680,24 +7113,24 @@
}
},
"node_modules/@perf-profiler/ios": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@perf-profiler/ios/-/ios-0.3.2.tgz",
- "integrity": "sha512-2jYyHXFO3xe5BdvU1Ttt+Uw2nAf10B3/mcx4FauJwSdJ+nlOAKIvxmZDvMcipCZZ63uc+HWsYndhziJZVQ7VUw==",
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@perf-profiler/ios/-/ios-0.3.3.tgz",
+ "integrity": "sha512-dbb9lVKOyj1VjinuxrnbfI3FT0+uhH3xclqLQH7rQFA4d93dusjC/s3RzlnCXRNPFPDy5TTmkiIg3xM/6P3/2g==",
"dev": true,
"dependencies": {
- "@perf-profiler/ios-instruments": "^0.3.2",
+ "@perf-profiler/ios-instruments": "^0.3.3",
"@perf-profiler/logger": "^0.3.3",
"@perf-profiler/types": "^0.8.0"
}
},
"node_modules/@perf-profiler/ios-instruments": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@perf-profiler/ios-instruments/-/ios-instruments-0.3.2.tgz",
- "integrity": "sha512-uox5arQscpRuGWfzBrTpsn6eJq0ErdjPlU0FMbN4Cv5akQC11ejKWmgV6y4FR/0YIET9uiiXMtnwyEBgUunYGQ==",
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@perf-profiler/ios-instruments/-/ios-instruments-0.3.3.tgz",
+ "integrity": "sha512-e3UmlWuNUOuNbJPWg6aLOVd9wRKe3RYCqwwUgxMNIAwa5QBxaVYBf2pt3+HRsYReh2qm1yvqW7LU9zP+AJ7/7g==",
"dev": true,
"dependencies": {
"@perf-profiler/logger": "^0.3.3",
- "@perf-profiler/profiler": "^0.10.10",
+ "@perf-profiler/profiler": "^0.10.11",
"@perf-profiler/types": "^0.8.0",
"commander": "^12.0.0",
"fast-xml-parser": "^4.2.7"
@@ -7738,21 +7171,20 @@
}
},
"node_modules/@perf-profiler/profiler": {
- "version": "0.10.10",
- "resolved": "https://registry.npmjs.org/@perf-profiler/profiler/-/profiler-0.10.10.tgz",
- "integrity": "sha512-kvVC6VQ7pBdthcWEcLTua+iDj0ZkcmYYL9gXHa9Dl7jYkZI4cOeslJZ1vuGfIcC168JwAVrB8UYhgoSgss/MWQ==",
+ "version": "0.10.11",
+ "resolved": "https://registry.npmjs.org/@perf-profiler/profiler/-/profiler-0.10.11.tgz",
+ "integrity": "sha512-nu/zakhG5wRi0tCw4SjTCZJh9e/x9YABAOChh3lGI6CESsFzc1Gi2Vrr+2sytN8dpiTDYCCbECC2EalD7ZKvtg==",
"dev": true,
"dependencies": {
- "@perf-profiler/android": "^0.12.1",
- "@perf-profiler/ios": "^0.3.2",
+ "@perf-profiler/android": "^0.13.0",
+ "@perf-profiler/ios": "^0.3.3",
"@perf-profiler/types": "^0.8.0"
}
},
"node_modules/@perf-profiler/reporter": {
"version": "0.9.0",
- "resolved": "https://registry.npmjs.org/@perf-profiler/reporter/-/reporter-0.9.0.tgz",
- "integrity": "sha512-wJt6ZRVM/cL+8rv9gFYgl8ZIra0uKdesfcfvsvhmrPXtxgC0O4ZdHF9hJDMtcCiHuHb8ptVq/BmEEW84CnvRIw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@perf-profiler/types": "^0.8.0",
"lodash": "^4.17.21"
@@ -7760,8 +7192,6 @@
},
"node_modules/@perf-profiler/types": {
"version": "0.8.0",
- "resolved": "https://registry.npmjs.org/@perf-profiler/types/-/types-0.8.0.tgz",
- "integrity": "sha512-TFiktv00SzLjjPp1hFYYjT9O36iGIUaF6yPLd7x/UT4CuLd0YYDUj+gvX0fbXtVtV7141tTvWbXFL5HiXGx0kw==",
"dev": true
},
"node_modules/@pkgjs/parseargs": {
@@ -7779,15 +7209,13 @@
},
"node_modules/@radix-ui/primitive": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.0.tgz",
- "integrity": "sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@radix-ui/react-compose-refs": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.0.tgz",
- "integrity": "sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==",
"dev": true,
+ "license": "MIT",
"peerDependencies": {
"@types/react": "*",
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
@@ -7800,9 +7228,8 @@
},
"node_modules/@radix-ui/react-context": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz",
- "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==",
"dev": true,
+ "license": "MIT",
"peerDependencies": {
"@types/react": "*",
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
@@ -7815,9 +7242,8 @@
},
"node_modules/@radix-ui/react-dialog": {
"version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.1.tgz",
- "integrity": "sha512-zysS+iU4YP3STKNS6USvFVqI4qqx8EpiwmT5TuCApVEBca+eRCbONi4EgzfNSuVnOXvC5UPHHMjs8RXO6DH9Bg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@radix-ui/primitive": "1.1.0",
"@radix-ui/react-compose-refs": "1.1.0",
@@ -7851,9 +7277,8 @@
},
"node_modules/@radix-ui/react-dismissable-layer": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.0.tgz",
- "integrity": "sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@radix-ui/primitive": "1.1.0",
"@radix-ui/react-compose-refs": "1.1.0",
@@ -7878,9 +7303,8 @@
},
"node_modules/@radix-ui/react-focus-guards": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.0.tgz",
- "integrity": "sha512-w6XZNUPVv6xCpZUqb/yN9DL6auvpGX3C/ee6Hdi16v2UUy25HV2Q5bcflsiDyT/g5RwbPQ/GIT1vLkeRb+ITBw==",
"dev": true,
+ "license": "MIT",
"peerDependencies": {
"@types/react": "*",
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
@@ -7893,9 +7317,8 @@
},
"node_modules/@radix-ui/react-focus-scope": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.0.tgz",
- "integrity": "sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@radix-ui/react-compose-refs": "1.1.0",
"@radix-ui/react-primitive": "2.0.0",
@@ -7918,9 +7341,8 @@
},
"node_modules/@radix-ui/react-id": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz",
- "integrity": "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@radix-ui/react-use-layout-effect": "1.1.0"
},
@@ -7936,9 +7358,8 @@
},
"node_modules/@radix-ui/react-portal": {
"version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.1.tgz",
- "integrity": "sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@radix-ui/react-primitive": "2.0.0",
"@radix-ui/react-use-layout-effect": "1.1.0"
@@ -7960,9 +7381,8 @@
},
"node_modules/@radix-ui/react-presence": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.0.tgz",
- "integrity": "sha512-Gq6wuRN/asf9H/E/VzdKoUtT8GC9PQc9z40/vEr0VCJ4u5XvvhWIrSsCB6vD2/cH7ugTdSfYq9fLJCcM00acrQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@radix-ui/react-compose-refs": "1.1.0",
"@radix-ui/react-use-layout-effect": "1.1.0"
@@ -7984,9 +7404,8 @@
},
"node_modules/@radix-ui/react-primitive": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz",
- "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@radix-ui/react-slot": "1.1.0"
},
@@ -8007,9 +7426,8 @@
},
"node_modules/@radix-ui/react-slot": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.0.tgz",
- "integrity": "sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@radix-ui/react-compose-refs": "1.1.0"
},
@@ -8025,9 +7443,8 @@
},
"node_modules/@radix-ui/react-use-callback-ref": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz",
- "integrity": "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==",
"dev": true,
+ "license": "MIT",
"peerDependencies": {
"@types/react": "*",
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
@@ -8040,9 +7457,8 @@
},
"node_modules/@radix-ui/react-use-controllable-state": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz",
- "integrity": "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@radix-ui/react-use-callback-ref": "1.1.0"
},
@@ -8058,9 +7474,8 @@
},
"node_modules/@radix-ui/react-use-escape-keydown": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz",
- "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@radix-ui/react-use-callback-ref": "1.1.0"
},
@@ -8076,9 +7491,8 @@
},
"node_modules/@radix-ui/react-use-layout-effect": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz",
- "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==",
"dev": true,
+ "license": "MIT",
"peerDependencies": {
"@types/react": "*",
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
@@ -8091,8 +7505,7 @@
},
"node_modules/@react-native-camera-roll/camera-roll": {
"version": "7.4.0",
- "resolved": "https://registry.npmjs.org/@react-native-camera-roll/camera-roll/-/camera-roll-7.4.0.tgz",
- "integrity": "sha512-y0bVpMJLaFphYvMMx1BsqgMA0kXq9CKxKYNnt4ocUvwJj5Rp4TZ233rzJoDqz1oxd56Tz5f1g+yhYN5RImKl8Q==",
+ "license": "MIT",
"engines": {
"node": ">= 18.17.0"
},
@@ -8102,8 +7515,7 @@
},
"node_modules/@react-native-clipboard/clipboard": {
"version": "1.14.0",
- "resolved": "https://registry.npmjs.org/@react-native-clipboard/clipboard/-/clipboard-1.14.0.tgz",
- "integrity": "sha512-kDLfA6HzP4T+kfGTEGdbsc2r4q0xQALshRQp8Ph/5YD5qT4CZdgkQM3oloKHIdh+AVks+QjtVHK1cZ1xb0Or7w==",
+ "license": "MIT",
"peerDependencies": {
"react": "18.2.0",
"react-native": "^0.73.0",
@@ -8113,8 +7525,7 @@
},
"node_modules/@react-native-community/cli": {
"version": "14.0.0-alpha.11",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-14.0.0-alpha.11.tgz",
- "integrity": "sha512-V32VYYa1dZJWt7ohxCYQIRa7DVGAXpw3RnP36BSfm4rqv1DD8ymDLM71PVZHoeHG6UWyNABXbTHTY+FOUYjKlQ==",
+ "license": "MIT",
"dependencies": {
"@react-native-community/cli-clean": "14.0.0-alpha.11",
"@react-native-community/cli-config": "14.0.0-alpha.11",
@@ -8142,8 +7553,7 @@
},
"node_modules/@react-native-community/cli-clean": {
"version": "14.0.0-alpha.11",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-14.0.0-alpha.11.tgz",
- "integrity": "sha512-pGhrL7xncBv6ciE6vybJHCRAz5c+ejchEdtIcuMBk3GDSP+cWh9A8jwwezMo/6zKDh1FMWSN7KxXFL0fr11Eyw==",
+ "license": "MIT",
"dependencies": {
"@react-native-community/cli-tools": "14.0.0-alpha.11",
"chalk": "^4.1.2",
@@ -8153,8 +7563,7 @@
},
"node_modules/@react-native-community/cli-clean/node_modules/@react-native-community/cli-tools": {
"version": "14.0.0-alpha.11",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-14.0.0-alpha.11.tgz",
- "integrity": "sha512-HQCfVnX9aqRdKdLxmQy4fUAUo+YhNGlBV7ZjOayPbuEGWJ4RN+vSy0Cawk7epo7hXd6vKzc7P7y3HlU6Kxs7+w==",
+ "license": "MIT",
"dependencies": {
"appdirsjs": "^1.2.4",
"chalk": "^4.1.2",
@@ -8170,8 +7579,7 @@
},
"node_modules/@react-native-community/cli-clean/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==",
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -8184,8 +7592,7 @@
},
"node_modules/@react-native-community/cli-clean/node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -8199,8 +7606,7 @@
},
"node_modules/@react-native-community/cli-clean/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==",
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -8210,29 +7616,25 @@
},
"node_modules/@react-native-community/cli-clean/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=="
+ "license": "MIT"
},
"node_modules/@react-native-community/cli-clean/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==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@react-native-community/cli-clean/node_modules/is-wsl": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
- "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/@react-native-community/cli-clean/node_modules/open": {
"version": "6.4.0",
- "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz",
- "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==",
+ "license": "MIT",
"dependencies": {
"is-wsl": "^1.1.0"
},
@@ -8242,8 +7644,7 @@
},
"node_modules/@react-native-community/cli-clean/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==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -8253,8 +7654,7 @@
},
"node_modules/@react-native-community/cli-config": {
"version": "14.0.0-alpha.11",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-14.0.0-alpha.11.tgz",
- "integrity": "sha512-6De3iEH71LnEPUTQZXORnl8J5t1p3Lsp1iweFf5oaHdYlBPqPLt2pGZxtSc09oNIOdtmYW9RHm14OM6/mJm/xA==",
+ "license": "MIT",
"dependencies": {
"@react-native-community/cli-tools": "14.0.0-alpha.11",
"chalk": "^4.1.2",
@@ -8266,8 +7666,7 @@
},
"node_modules/@react-native-community/cli-config/node_modules/@react-native-community/cli-tools": {
"version": "14.0.0-alpha.11",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-14.0.0-alpha.11.tgz",
- "integrity": "sha512-HQCfVnX9aqRdKdLxmQy4fUAUo+YhNGlBV7ZjOayPbuEGWJ4RN+vSy0Cawk7epo7hXd6vKzc7P7y3HlU6Kxs7+w==",
+ "license": "MIT",
"dependencies": {
"appdirsjs": "^1.2.4",
"chalk": "^4.1.2",
@@ -8283,8 +7682,7 @@
},
"node_modules/@react-native-community/cli-config/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==",
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -8297,13 +7695,11 @@
},
"node_modules/@react-native-community/cli-config/node_modules/argparse": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
+ "license": "Python-2.0"
},
"node_modules/@react-native-community/cli-config/node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -8317,8 +7713,7 @@
},
"node_modules/@react-native-community/cli-config/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==",
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -8328,13 +7723,11 @@
},
"node_modules/@react-native-community/cli-config/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=="
+ "license": "MIT"
},
"node_modules/@react-native-community/cli-config/node_modules/cosmiconfig": {
"version": "9.0.0",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz",
- "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==",
+ "license": "MIT",
"dependencies": {
"env-paths": "^2.2.1",
"import-fresh": "^3.3.0",
@@ -8358,24 +7751,21 @@
},
"node_modules/@react-native-community/cli-config/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==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@react-native-community/cli-config/node_modules/is-wsl": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
- "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/@react-native-community/cli-config/node_modules/js-yaml": {
"version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
},
@@ -8385,8 +7775,7 @@
},
"node_modules/@react-native-community/cli-config/node_modules/open": {
"version": "6.4.0",
- "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz",
- "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==",
+ "license": "MIT",
"dependencies": {
"is-wsl": "^1.1.0"
},
@@ -8396,8 +7785,7 @@
},
"node_modules/@react-native-community/cli-config/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==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -8407,8 +7795,7 @@
},
"node_modules/@react-native-community/cli-debugger-ui": {
"version": "12.3.6",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-12.3.6.tgz",
- "integrity": "sha512-SjUKKsx5FmcK9G6Pb6UBFT0s9JexVStK5WInmANw75Hm7YokVvHEgtprQDz2Uvy5znX5g2ujzrkIU//T15KQzA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"serve-static": "^1.13.1"
@@ -8416,8 +7803,7 @@
},
"node_modules/@react-native-community/cli-doctor": {
"version": "14.0.0-alpha.11",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-14.0.0-alpha.11.tgz",
- "integrity": "sha512-i+awVrt964+MxneGuw/6GXdzm+MJtFyS9Jpuc87HApLxOY9AC4pVjFSi6tUUjC5SlORN3zuMo87DmzgQuqBR+w==",
+ "license": "MIT",
"dependencies": {
"@react-native-community/cli-config": "14.0.0-alpha.11",
"@react-native-community/cli-platform-android": "14.0.0-alpha.11",
@@ -8439,8 +7825,7 @@
},
"node_modules/@react-native-community/cli-doctor/node_modules/@react-native-community/cli-tools": {
"version": "14.0.0-alpha.11",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-14.0.0-alpha.11.tgz",
- "integrity": "sha512-HQCfVnX9aqRdKdLxmQy4fUAUo+YhNGlBV7ZjOayPbuEGWJ4RN+vSy0Cawk7epo7hXd6vKzc7P7y3HlU6Kxs7+w==",
+ "license": "MIT",
"dependencies": {
"appdirsjs": "^1.2.4",
"chalk": "^4.1.2",
@@ -8456,8 +7841,7 @@
},
"node_modules/@react-native-community/cli-doctor/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==",
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -8470,8 +7854,7 @@
},
"node_modules/@react-native-community/cli-doctor/node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -8485,8 +7868,7 @@
},
"node_modules/@react-native-community/cli-doctor/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==",
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -8496,29 +7878,25 @@
},
"node_modules/@react-native-community/cli-doctor/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=="
+ "license": "MIT"
},
"node_modules/@react-native-community/cli-doctor/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==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@react-native-community/cli-doctor/node_modules/is-wsl": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
- "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/@react-native-community/cli-doctor/node_modules/open": {
"version": "6.4.0",
- "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz",
- "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==",
+ "license": "MIT",
"dependencies": {
"is-wsl": "^1.1.0"
},
@@ -8528,8 +7906,7 @@
},
"node_modules/@react-native-community/cli-doctor/node_modules/strip-ansi": {
"version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "license": "MIT",
"dependencies": {
"ansi-regex": "^4.1.0"
},
@@ -8539,8 +7916,7 @@
},
"node_modules/@react-native-community/cli-doctor/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==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -8550,8 +7926,7 @@
},
"node_modules/@react-native-community/cli-platform-android": {
"version": "14.0.0-alpha.11",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-14.0.0-alpha.11.tgz",
- "integrity": "sha512-DIKku0qcJ2pB75YTqBCHdJiQaMtFBkp8Hhloq57OpNMspDqLTuWjDDbcCtqD7LQb9MGpaf+b6FWUQFw9BNtVkQ==",
+ "license": "MIT",
"dependencies": {
"@react-native-community/cli-tools": "14.0.0-alpha.11",
"chalk": "^4.1.2",
@@ -8563,8 +7938,7 @@
},
"node_modules/@react-native-community/cli-platform-android/node_modules/@react-native-community/cli-tools": {
"version": "14.0.0-alpha.11",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-14.0.0-alpha.11.tgz",
- "integrity": "sha512-HQCfVnX9aqRdKdLxmQy4fUAUo+YhNGlBV7ZjOayPbuEGWJ4RN+vSy0Cawk7epo7hXd6vKzc7P7y3HlU6Kxs7+w==",
+ "license": "MIT",
"dependencies": {
"appdirsjs": "^1.2.4",
"chalk": "^4.1.2",
@@ -8580,8 +7954,7 @@
},
"node_modules/@react-native-community/cli-platform-android/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==",
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -8594,8 +7967,7 @@
},
"node_modules/@react-native-community/cli-platform-android/node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -8609,8 +7981,7 @@
},
"node_modules/@react-native-community/cli-platform-android/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==",
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -8620,29 +7991,25 @@
},
"node_modules/@react-native-community/cli-platform-android/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=="
+ "license": "MIT"
},
"node_modules/@react-native-community/cli-platform-android/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==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@react-native-community/cli-platform-android/node_modules/is-wsl": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
- "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/@react-native-community/cli-platform-android/node_modules/open": {
"version": "6.4.0",
- "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz",
- "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==",
+ "license": "MIT",
"dependencies": {
"is-wsl": "^1.1.0"
},
@@ -8652,8 +8019,7 @@
},
"node_modules/@react-native-community/cli-platform-android/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==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -8663,8 +8029,7 @@
},
"node_modules/@react-native-community/cli-platform-apple": {
"version": "14.0.0-alpha.11",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-apple/-/cli-platform-apple-14.0.0-alpha.11.tgz",
- "integrity": "sha512-tNKKte5K/tNNHy0Pxy/vJaSUw0jS7Cuo+F7tTT2ZgDmarp7IlfWnfVMKCtlSC3rR8ZCktmgPgteTf9SicSldxg==",
+ "license": "MIT",
"dependencies": {
"@react-native-community/cli-tools": "14.0.0-alpha.11",
"chalk": "^4.1.2",
@@ -8676,8 +8041,7 @@
},
"node_modules/@react-native-community/cli-platform-apple/node_modules/@react-native-community/cli-tools": {
"version": "14.0.0-alpha.11",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-14.0.0-alpha.11.tgz",
- "integrity": "sha512-HQCfVnX9aqRdKdLxmQy4fUAUo+YhNGlBV7ZjOayPbuEGWJ4RN+vSy0Cawk7epo7hXd6vKzc7P7y3HlU6Kxs7+w==",
+ "license": "MIT",
"dependencies": {
"appdirsjs": "^1.2.4",
"chalk": "^4.1.2",
@@ -8693,8 +8057,7 @@
},
"node_modules/@react-native-community/cli-platform-apple/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==",
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -8707,8 +8070,7 @@
},
"node_modules/@react-native-community/cli-platform-apple/node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -8722,8 +8084,7 @@
},
"node_modules/@react-native-community/cli-platform-apple/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==",
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -8733,29 +8094,25 @@
},
"node_modules/@react-native-community/cli-platform-apple/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=="
+ "license": "MIT"
},
"node_modules/@react-native-community/cli-platform-apple/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==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@react-native-community/cli-platform-apple/node_modules/is-wsl": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
- "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/@react-native-community/cli-platform-apple/node_modules/open": {
"version": "6.4.0",
- "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz",
- "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==",
+ "license": "MIT",
"dependencies": {
"is-wsl": "^1.1.0"
},
@@ -8765,8 +8122,7 @@
},
"node_modules/@react-native-community/cli-platform-apple/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==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -8776,22 +8132,19 @@
},
"node_modules/@react-native-community/cli-platform-ios": {
"version": "14.0.0-alpha.11",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-14.0.0-alpha.11.tgz",
- "integrity": "sha512-coHbTcymVsrOBYvch0M7JtKIRlfCc2GwXs7JEyG54CUKTfhLGDgWWTGOdAwWxiF4cDbj46Qr/4Es2AGJbmTBGA==",
+ "license": "MIT",
"dependencies": {
"@react-native-community/cli-platform-apple": "14.0.0-alpha.11"
}
},
"node_modules/@react-native-community/cli-plugin-metro": {
"version": "12.3.6",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-12.3.6.tgz",
- "integrity": "sha512-3jxSBQt4fkS+KtHCPSyB5auIT+KKIrPCv9Dk14FbvOaEh9erUWEm/5PZWmtboW1z7CYeNbFMeXm9fM2xwtVOpg==",
+ "license": "MIT",
"peer": true
},
"node_modules/@react-native-community/cli-server-api": {
"version": "12.3.6",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-12.3.6.tgz",
- "integrity": "sha512-80NIMzo8b2W+PL0Jd7NjiJW9mgaT8Y8wsIT/lh6mAvYH7mK0ecDJUYUTAAv79Tbo1iCGPAr3T295DlVtS8s4yQ==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@react-native-community/cli-debugger-ui": "12.3.6",
@@ -8807,8 +8160,7 @@
},
"node_modules/@react-native-community/cli-server-api/node_modules/@jest/types": {
"version": "26.6.2",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz",
- "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@types/istanbul-lib-coverage": "^2.0.0",
@@ -8823,8 +8175,7 @@
},
"node_modules/@react-native-community/cli-server-api/node_modules/@types/yargs": {
"version": "15.0.19",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz",
- "integrity": "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@types/yargs-parser": "*"
@@ -8832,8 +8183,7 @@
},
"node_modules/@react-native-community/cli-server-api/node_modules/ansi-regex": {
"version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=8"
@@ -8841,8 +8191,7 @@
},
"node_modules/@react-native-community/cli-server-api/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"color-convert": "^2.0.1"
@@ -8856,8 +8205,7 @@
},
"node_modules/@react-native-community/cli-server-api/node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"ansi-styles": "^4.1.0",
@@ -8872,8 +8220,7 @@
},
"node_modules/@react-native-community/cli-server-api/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"color-name": "~1.1.4"
@@ -8884,14 +8231,12 @@
},
"node_modules/@react-native-community/cli-server-api/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==",
+ "license": "MIT",
"peer": true
},
"node_modules/@react-native-community/cli-server-api/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==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=8"
@@ -8899,8 +8244,7 @@
},
"node_modules/@react-native-community/cli-server-api/node_modules/pretty-format": {
"version": "26.6.2",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz",
- "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@jest/types": "^26.6.2",
@@ -8914,14 +8258,12 @@
},
"node_modules/@react-native-community/cli-server-api/node_modules/react-is": {
"version": "17.0.2",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
- "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
+ "license": "MIT",
"peer": true
},
"node_modules/@react-native-community/cli-server-api/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"has-flag": "^4.0.0"
@@ -8932,8 +8274,7 @@
},
"node_modules/@react-native-community/cli-server-api/node_modules/ws": {
"version": "7.5.9",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
- "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=8.3.0"
@@ -8953,8 +8294,7 @@
},
"node_modules/@react-native-community/cli-tools": {
"version": "12.3.6",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-12.3.6.tgz",
- "integrity": "sha512-FPEvZn19UTMMXUp/piwKZSh8cMEfO8G3KDtOwo53O347GTcwNrKjgZGtLSPELBX2gr+YlzEft3CoRv2Qmo83fQ==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"appdirsjs": "^1.2.4",
@@ -8971,8 +8311,7 @@
},
"node_modules/@react-native-community/cli-tools/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"color-convert": "^2.0.1"
@@ -8986,8 +8325,7 @@
},
"node_modules/@react-native-community/cli-tools/node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"ansi-styles": "^4.1.0",
@@ -9002,8 +8340,7 @@
},
"node_modules/@react-native-community/cli-tools/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"color-name": "~1.1.4"
@@ -9014,14 +8351,12 @@
},
"node_modules/@react-native-community/cli-tools/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==",
+ "license": "MIT",
"peer": true
},
"node_modules/@react-native-community/cli-tools/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==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=8"
@@ -9029,8 +8364,7 @@
},
"node_modules/@react-native-community/cli-tools/node_modules/is-wsl": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
- "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=4"
@@ -9038,8 +8372,7 @@
},
"node_modules/@react-native-community/cli-tools/node_modules/open": {
"version": "6.4.0",
- "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz",
- "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"is-wsl": "^1.1.0"
@@ -9050,8 +8383,7 @@
},
"node_modules/@react-native-community/cli-tools/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"has-flag": "^4.0.0"
@@ -9062,16 +8394,14 @@
},
"node_modules/@react-native-community/cli-types": {
"version": "14.0.0-alpha.11",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-14.0.0-alpha.11.tgz",
- "integrity": "sha512-jujAIipCmgc0mHXh9G+6cVT8wPaw1m8L3OSpajNKuARtjva+jGNYmx4itRP05c+SgFqN4eASEV563nNfI4Ja/g==",
+ "license": "MIT",
"dependencies": {
"joi": "^17.2.1"
}
},
"node_modules/@react-native-community/cli/node_modules/@jest/types": {
"version": "26.6.2",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz",
- "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==",
+ "license": "MIT",
"dependencies": {
"@types/istanbul-lib-coverage": "^2.0.0",
"@types/istanbul-reports": "^3.0.0",
@@ -9085,16 +8415,14 @@
},
"node_modules/@react-native-community/cli/node_modules/@react-native-community/cli-debugger-ui": {
"version": "14.0.0-alpha.11",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-14.0.0-alpha.11.tgz",
- "integrity": "sha512-0wCNQxhCniyjyMXgR1qXliY180y/2QbvoiYpp2MleGQADr5M1b8lgI4GoyADh5kE+kX3VL0ssjgyxpmbpCD86A==",
+ "license": "MIT",
"dependencies": {
"serve-static": "^1.13.1"
}
},
"node_modules/@react-native-community/cli/node_modules/@react-native-community/cli-server-api": {
"version": "14.0.0-alpha.11",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-14.0.0-alpha.11.tgz",
- "integrity": "sha512-I7YeYI7S5wSxnQAqeG8LNqhT99FojiGIk87DU0vTp6U8hIMLcA90fUuBAyJY38AuQZ12ZJpGa8ObkhIhWzGkvg==",
+ "license": "MIT",
"dependencies": {
"@react-native-community/cli-debugger-ui": "14.0.0-alpha.11",
"@react-native-community/cli-tools": "14.0.0-alpha.11",
@@ -9109,8 +8437,7 @@
},
"node_modules/@react-native-community/cli/node_modules/@react-native-community/cli-tools": {
"version": "14.0.0-alpha.11",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-14.0.0-alpha.11.tgz",
- "integrity": "sha512-HQCfVnX9aqRdKdLxmQy4fUAUo+YhNGlBV7ZjOayPbuEGWJ4RN+vSy0Cawk7epo7hXd6vKzc7P7y3HlU6Kxs7+w==",
+ "license": "MIT",
"dependencies": {
"appdirsjs": "^1.2.4",
"chalk": "^4.1.2",
@@ -9126,24 +8453,21 @@
},
"node_modules/@react-native-community/cli/node_modules/@types/yargs": {
"version": "15.0.19",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz",
- "integrity": "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==",
+ "license": "MIT",
"dependencies": {
"@types/yargs-parser": "*"
}
},
"node_modules/@react-native-community/cli/node_modules/ansi-regex": {
"version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@react-native-community/cli/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==",
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -9156,8 +8480,7 @@
},
"node_modules/@react-native-community/cli/node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -9171,8 +8494,7 @@
},
"node_modules/@react-native-community/cli/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==",
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -9182,21 +8504,18 @@
},
"node_modules/@react-native-community/cli/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=="
+ "license": "MIT"
},
"node_modules/@react-native-community/cli/node_modules/commander": {
"version": "9.5.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
- "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==",
+ "license": "MIT",
"engines": {
"node": "^12.20.0 || >=14"
}
},
"node_modules/@react-native-community/cli/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==",
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^4.0.0",
@@ -9208,32 +8527,28 @@
},
"node_modules/@react-native-community/cli/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==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@react-native-community/cli/node_modules/is-wsl": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
- "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/@react-native-community/cli/node_modules/jsonfile": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
- "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "license": "MIT",
"optionalDependencies": {
"graceful-fs": "^4.1.6"
}
},
"node_modules/@react-native-community/cli/node_modules/open": {
"version": "6.4.0",
- "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz",
- "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==",
+ "license": "MIT",
"dependencies": {
"is-wsl": "^1.1.0"
},
@@ -9243,8 +8558,7 @@
},
"node_modules/@react-native-community/cli/node_modules/pretty-format": {
"version": "26.6.2",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz",
- "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==",
+ "license": "MIT",
"dependencies": {
"@jest/types": "^26.6.2",
"ansi-regex": "^5.0.0",
@@ -9257,13 +8571,11 @@
},
"node_modules/@react-native-community/cli/node_modules/react-is": {
"version": "17.0.2",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
- "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="
+ "license": "MIT"
},
"node_modules/@react-native-community/cli/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==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -9273,25 +8585,22 @@
},
"node_modules/@react-native-community/cli/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==",
+ "license": "MIT",
"engines": {
"node": ">= 4.0.0"
}
},
"node_modules/@react-native-community/cli/node_modules/ws": {
"version": "6.2.3",
- "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz",
- "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==",
+ "license": "MIT",
"dependencies": {
"async-limiter": "~1.0.0"
}
},
"node_modules/@react-native-community/eslint-config": {
"version": "3.2.0",
- "resolved": "https://registry.npmjs.org/@react-native-community/eslint-config/-/eslint-config-3.2.0.tgz",
- "integrity": "sha512-ZjGvoeiBtCbd506hQqwjKmkWPgynGUoJspG8/MuV/EfKnkjCtBmeJvq2n+sWbWEvL9LWXDp2GJmPzmvU5RSvKQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/core": "^7.14.0",
"@babel/eslint-parser": "^7.18.2",
@@ -9314,9 +8623,8 @@
},
"node_modules/@react-native-community/eslint-config/node_modules/@typescript-eslint/eslint-plugin": {
"version": "5.62.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz",
- "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@eslint-community/regexpp": "^4.4.0",
"@typescript-eslint/scope-manager": "5.62.0",
@@ -9348,9 +8656,8 @@
},
"node_modules/@react-native-community/eslint-config/node_modules/@typescript-eslint/parser": {
"version": "5.62.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz",
- "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"@typescript-eslint/scope-manager": "5.62.0",
"@typescript-eslint/types": "5.62.0",
@@ -9375,9 +8682,8 @@
},
"node_modules/@react-native-community/eslint-config/node_modules/@typescript-eslint/scope-manager": {
"version": "5.62.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz",
- "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@typescript-eslint/types": "5.62.0",
"@typescript-eslint/visitor-keys": "5.62.0"
@@ -9392,9 +8698,8 @@
},
"node_modules/@react-native-community/eslint-config/node_modules/@typescript-eslint/type-utils": {
"version": "5.62.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz",
- "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@typescript-eslint/typescript-estree": "5.62.0",
"@typescript-eslint/utils": "5.62.0",
@@ -9419,9 +8724,8 @@
},
"node_modules/@react-native-community/eslint-config/node_modules/@typescript-eslint/types": {
"version": "5.62.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz",
- "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
@@ -9432,9 +8736,8 @@
},
"node_modules/@react-native-community/eslint-config/node_modules/@typescript-eslint/typescript-estree": {
"version": "5.62.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz",
- "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"@typescript-eslint/types": "5.62.0",
"@typescript-eslint/visitor-keys": "5.62.0",
@@ -9459,9 +8762,8 @@
},
"node_modules/@react-native-community/eslint-config/node_modules/@typescript-eslint/visitor-keys": {
"version": "5.62.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz",
- "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@typescript-eslint/types": "5.62.0",
"eslint-visitor-keys": "^3.3.0"
@@ -9476,9 +8778,8 @@
},
"node_modules/@react-native-community/eslint-config/node_modules/eslint-config-prettier": {
"version": "8.10.0",
- "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz",
- "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==",
"dev": true,
+ "license": "MIT",
"bin": {
"eslint-config-prettier": "bin/cli.js"
},
@@ -9488,9 +8789,8 @@
},
"node_modules/@react-native-community/eslint-config/node_modules/eslint-plugin-jest": {
"version": "26.9.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.9.0.tgz",
- "integrity": "sha512-TWJxWGp1J628gxh2KhaH1H1paEdgE2J61BBF1I59c6xWeL5+D1BzMxGDN/nXAfX+aSkR5u80K+XhskK6Gwq9ng==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@typescript-eslint/utils": "^5.10.0"
},
@@ -9512,9 +8812,8 @@
},
"node_modules/@react-native-community/eslint-config/node_modules/eslint-visitor-keys": {
"version": "3.4.3",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
@@ -9529,8 +8828,7 @@
},
"node_modules/@react-native-community/geolocation": {
"version": "3.3.0",
- "resolved": "https://registry.npmjs.org/@react-native-community/geolocation/-/geolocation-3.3.0.tgz",
- "integrity": "sha512-7DFeuotH7m7ImoXffN3TmlGSFn1XjvsaphPort0XZKipssYbdHiKhVVWG+jzisvDhcXikUc6nbUJgddVBL6RDg==",
+ "license": "MIT",
"engines": {
"node": ">=18.0.0"
},
@@ -9603,8 +8901,7 @@
},
"node_modules/@react-native-mac/virtualized-lists": {
"version": "0.73.3",
- "resolved": "https://registry.npmjs.org/@react-native-mac/virtualized-lists/-/virtualized-lists-0.73.3.tgz",
- "integrity": "sha512-7UcvjGYLIU0s2FzVLUPxHYo68tqtZV6x0AH8B0Hf9mkkpENGdRIKD7wDv0kjb/GkVn+qk94u3u0kQyMNRY9UkQ==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"invariant": "^2.2.4",
@@ -9619,8 +8916,7 @@
},
"node_modules/@react-native-picker/picker": {
"version": "2.7.6",
- "resolved": "https://registry.npmjs.org/@react-native-picker/picker/-/picker-2.7.6.tgz",
- "integrity": "sha512-Cs3PxRmE2vu6TofM9vt9TV8ZYFOtEPSupNxwoorH9lpkKM9HGG8QwK2i29KOEoODpUbtudKHUTtqhMZSuX9pgA==",
+ "license": "MIT",
"peerDependencies": {
"react": "*",
"react-native": "*"
@@ -9628,8 +8924,7 @@
},
"node_modules/@react-native-windows/cli": {
"version": "0.73.2",
- "resolved": "https://registry.npmjs.org/@react-native-windows/cli/-/cli-0.73.2.tgz",
- "integrity": "sha512-55U7qhGMU9BPqWE3OMgFfyMgA2PHviWywOoQMnczQ3K5xcLqwYOXIumszA+DTjtXcQ9FZ5OIecX6jo4Nk3VR5Q==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@react-native-windows/codegen": "0.73.0",
@@ -9663,8 +8958,7 @@
},
"node_modules/@react-native-windows/cli/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"color-convert": "^2.0.1"
@@ -9678,8 +8972,7 @@
},
"node_modules/@react-native-windows/cli/node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"ansi-styles": "^4.1.0",
@@ -9694,8 +8987,7 @@
},
"node_modules/@react-native-windows/cli/node_modules/cli-cursor": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
- "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"restore-cursor": "^2.0.0"
@@ -9706,8 +8998,7 @@
},
"node_modules/@react-native-windows/cli/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"color-name": "~1.1.4"
@@ -9718,14 +9009,12 @@
},
"node_modules/@react-native-windows/cli/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==",
+ "license": "MIT",
"peer": true
},
"node_modules/@react-native-windows/cli/node_modules/escape-string-regexp": {
"version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=0.8.0"
@@ -9733,8 +9022,7 @@
},
"node_modules/@react-native-windows/cli/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"locate-path": "^5.0.0",
@@ -9746,8 +9034,7 @@
},
"node_modules/@react-native-windows/cli/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==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=8"
@@ -9755,8 +9042,7 @@
},
"node_modules/@react-native-windows/cli/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"p-locate": "^4.1.0"
@@ -9767,8 +9053,7 @@
},
"node_modules/@react-native-windows/cli/node_modules/log-symbols": {
"version": "2.2.0",
- "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
- "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"chalk": "^2.0.1"
@@ -9779,8 +9064,7 @@
},
"node_modules/@react-native-windows/cli/node_modules/log-symbols/node_modules/ansi-styles": {
"version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"color-convert": "^1.9.0"
@@ -9791,8 +9075,7 @@
},
"node_modules/@react-native-windows/cli/node_modules/log-symbols/node_modules/chalk": {
"version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"ansi-styles": "^3.2.1",
@@ -9805,8 +9088,7 @@
},
"node_modules/@react-native-windows/cli/node_modules/log-symbols/node_modules/color-convert": {
"version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"color-name": "1.1.3"
@@ -9814,14 +9096,12 @@
},
"node_modules/@react-native-windows/cli/node_modules/log-symbols/node_modules/color-name": {
"version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "license": "MIT",
"peer": true
},
"node_modules/@react-native-windows/cli/node_modules/log-symbols/node_modules/has-flag": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=4"
@@ -9829,8 +9109,7 @@
},
"node_modules/@react-native-windows/cli/node_modules/log-symbols/node_modules/supports-color": {
"version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"has-flag": "^3.0.0"
@@ -9841,8 +9120,7 @@
},
"node_modules/@react-native-windows/cli/node_modules/mimic-fn": {
"version": "1.2.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
- "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=4"
@@ -9850,8 +9128,7 @@
},
"node_modules/@react-native-windows/cli/node_modules/onetime": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
- "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"mimic-fn": "^1.0.0"
@@ -9862,8 +9139,7 @@
},
"node_modules/@react-native-windows/cli/node_modules/ora": {
"version": "3.4.0",
- "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz",
- "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"chalk": "^2.4.2",
@@ -9879,8 +9155,7 @@
},
"node_modules/@react-native-windows/cli/node_modules/ora/node_modules/ansi-styles": {
"version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"color-convert": "^1.9.0"
@@ -9891,8 +9166,7 @@
},
"node_modules/@react-native-windows/cli/node_modules/ora/node_modules/chalk": {
"version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"ansi-styles": "^3.2.1",
@@ -9905,8 +9179,7 @@
},
"node_modules/@react-native-windows/cli/node_modules/ora/node_modules/color-convert": {
"version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"color-name": "1.1.3"
@@ -9914,14 +9187,12 @@
},
"node_modules/@react-native-windows/cli/node_modules/ora/node_modules/color-name": {
"version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "license": "MIT",
"peer": true
},
"node_modules/@react-native-windows/cli/node_modules/ora/node_modules/has-flag": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=4"
@@ -9929,8 +9200,7 @@
},
"node_modules/@react-native-windows/cli/node_modules/ora/node_modules/supports-color": {
"version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"has-flag": "^3.0.0"
@@ -9941,8 +9211,7 @@
},
"node_modules/@react-native-windows/cli/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"p-try": "^2.0.0"
@@ -9956,8 +9225,7 @@
},
"node_modules/@react-native-windows/cli/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"p-limit": "^2.2.0"
@@ -9968,8 +9236,7 @@
},
"node_modules/@react-native-windows/cli/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==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=8"
@@ -9977,8 +9244,7 @@
},
"node_modules/@react-native-windows/cli/node_modules/restore-cursor": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
- "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"onetime": "^2.0.0",
@@ -9990,8 +9256,7 @@
},
"node_modules/@react-native-windows/cli/node_modules/strip-ansi": {
"version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"ansi-regex": "^4.1.0"
@@ -10002,8 +9267,7 @@
},
"node_modules/@react-native-windows/cli/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"has-flag": "^4.0.0"
@@ -10014,9 +9278,7 @@
},
"node_modules/@react-native-windows/cli/node_modules/uuid": {
"version": "3.4.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
- "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
- "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
+ "license": "MIT",
"peer": true,
"bin": {
"uuid": "bin/uuid"
@@ -10024,8 +9286,7 @@
},
"node_modules/@react-native-windows/codegen": {
"version": "0.73.0",
- "resolved": "https://registry.npmjs.org/@react-native-windows/codegen/-/codegen-0.73.0.tgz",
- "integrity": "sha512-M+R8JzUEizAE23MkBOuSdyDGv9BeZx47L6gUWlXI4fyM9LjXpdYU0g6la8ZWleiLrDtHW0JIz95w8KkghpB6hg==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@react-native-windows/fs": "0.73.0",
@@ -10047,8 +9308,7 @@
},
"node_modules/@react-native-windows/codegen/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"color-convert": "^2.0.1"
@@ -10062,8 +9322,7 @@
},
"node_modules/@react-native-windows/codegen/node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"ansi-styles": "^4.1.0",
@@ -10078,8 +9337,7 @@
},
"node_modules/@react-native-windows/codegen/node_modules/cliui": {
"version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
+ "license": "ISC",
"peer": true,
"dependencies": {
"string-width": "^4.2.0",
@@ -10089,8 +9347,7 @@
},
"node_modules/@react-native-windows/codegen/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"color-name": "~1.1.4"
@@ -10101,14 +9358,12 @@
},
"node_modules/@react-native-windows/codegen/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==",
+ "license": "MIT",
"peer": true
},
"node_modules/@react-native-windows/codegen/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==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=8"
@@ -10116,8 +9371,7 @@
},
"node_modules/@react-native-windows/codegen/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"has-flag": "^4.0.0"
@@ -10128,8 +9382,7 @@
},
"node_modules/@react-native-windows/codegen/node_modules/y18n": {
"version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "license": "ISC",
"peer": true,
"engines": {
"node": ">=10"
@@ -10137,8 +9390,7 @@
},
"node_modules/@react-native-windows/codegen/node_modules/yargs": {
"version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"cliui": "^7.0.2",
@@ -10155,8 +9407,7 @@
},
"node_modules/@react-native-windows/find-repo-root": {
"version": "0.73.0",
- "resolved": "https://registry.npmjs.org/@react-native-windows/find-repo-root/-/find-repo-root-0.73.0.tgz",
- "integrity": "sha512-ahEgLmFYNvXw5I1ETJDhNMyZ/iR+DK4iOZ9YaT4EQzEPGKgj8a/4kvStSyMa117m6yRPeM8hCrhsfsHoRCphBA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@react-native-windows/fs": "0.73.0",
@@ -10168,8 +9419,7 @@
},
"node_modules/@react-native-windows/find-repo-root/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"locate-path": "^5.0.0",
@@ -10181,8 +9431,7 @@
},
"node_modules/@react-native-windows/find-repo-root/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"p-locate": "^4.1.0"
@@ -10193,8 +9442,7 @@
},
"node_modules/@react-native-windows/find-repo-root/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"p-try": "^2.0.0"
@@ -10208,8 +9456,7 @@
},
"node_modules/@react-native-windows/find-repo-root/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"p-limit": "^2.2.0"
@@ -10220,8 +9467,7 @@
},
"node_modules/@react-native-windows/find-repo-root/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==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=8"
@@ -10229,8 +9475,7 @@
},
"node_modules/@react-native-windows/fs": {
"version": "0.73.0",
- "resolved": "https://registry.npmjs.org/@react-native-windows/fs/-/fs-0.73.0.tgz",
- "integrity": "sha512-Vg0gJavc6oO4TkTMK+s8V+1KhLlJgdtuwsUaBNRfhi+Dr/lWy7GKitV6rBn/UkG8DCt9LBmwdCZWpncxSs8CDA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"graceful-fs": "^4.2.8"
@@ -10241,8 +9486,7 @@
},
"node_modules/@react-native-windows/package-utils": {
"version": "0.73.0",
- "resolved": "https://registry.npmjs.org/@react-native-windows/package-utils/-/package-utils-0.73.0.tgz",
- "integrity": "sha512-a3CuH8RPBfIwwPYi7gjyLmvRTzjFfXpePdLAC6afXHNbc5+VR6QJJ/VPhO9kQEvUxrQCXKXRXMGsUWrg0TNTEA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@react-native-windows/find-repo-root": "0.73.0",
@@ -10256,8 +9500,7 @@
},
"node_modules/@react-native-windows/telemetry": {
"version": "0.73.1",
- "resolved": "https://registry.npmjs.org/@react-native-windows/telemetry/-/telemetry-0.73.1.tgz",
- "integrity": "sha512-xaZXwmxmIrmHrj39la8t0sTSDNs8h+oVyfACSGMvRvFLA5iniSOD4toP5Ag5skO7Z9+jROdULVv4wvi6yp4zvg==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@react-native-windows/fs": "0.73.0",
@@ -10275,8 +9518,7 @@
},
"node_modules/@react-native-windows/telemetry/node_modules/execa": {
"version": "4.1.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz",
- "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"cross-spawn": "^7.0.0",
@@ -10298,8 +9540,7 @@
},
"node_modules/@react-native-windows/telemetry/node_modules/get-stream": {
"version": "5.2.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
- "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"pump": "^3.0.0"
@@ -10313,8 +9554,7 @@
},
"node_modules/@react-native-windows/telemetry/node_modules/human-signals": {
"version": "1.1.1",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
- "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==",
+ "license": "Apache-2.0",
"peer": true,
"engines": {
"node": ">=8.12.0"
@@ -10322,8 +9562,7 @@
},
"node_modules/@react-native-windows/telemetry/node_modules/invert-kv": {
"version": "3.0.1",
- "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-3.0.1.tgz",
- "integrity": "sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=8"
@@ -10334,8 +9573,7 @@
},
"node_modules/@react-native-windows/telemetry/node_modules/lcid": {
"version": "3.1.1",
- "resolved": "https://registry.npmjs.org/lcid/-/lcid-3.1.1.tgz",
- "integrity": "sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"invert-kv": "^3.0.0"
@@ -10346,8 +9584,7 @@
},
"node_modules/@react-native-windows/telemetry/node_modules/mem": {
"version": "5.1.1",
- "resolved": "https://registry.npmjs.org/mem/-/mem-5.1.1.tgz",
- "integrity": "sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"map-age-cleaner": "^0.1.3",
@@ -10360,8 +9597,7 @@
},
"node_modules/@react-native-windows/telemetry/node_modules/os-locale": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-5.0.0.tgz",
- "integrity": "sha512-tqZcNEDAIZKBEPnHPlVDvKrp7NzgLi7jRmhKiUoa2NUmhl13FtkAGLUVR+ZsYvApBQdBfYm43A4tXXQ4IrYLBA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"execa": "^4.0.0",
@@ -10377,16 +9613,14 @@
},
"node_modules/@react-native/assets-registry": {
"version": "0.75.0-rc.4",
- "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.75.0-rc.4.tgz",
- "integrity": "sha512-cuXxygov13XYiXBwlWUYQuWD7/KjI8xryQM7zAe+Qw+v3DLhBLBnDg0lq6cez0fAD1prFH2H764tgFcz18gZtQ==",
+ "license": "MIT",
"engines": {
"node": ">=18"
}
},
"node_modules/@react-native/babel-plugin-codegen": {
"version": "0.75.0-rc.4",
- "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.75.0-rc.4.tgz",
- "integrity": "sha512-oOz3sc6/5d7caeZ/1IKnWXTr7T3gg1qlTpDyv0msT9dfy72N8ntlugQi/C1bkQcZjVCrymo6DoLVJIWVxIs38w==",
+ "license": "MIT",
"dependencies": {
"@react-native/codegen": "0.75.0-rc.4"
},
@@ -10396,8 +9630,7 @@
},
"node_modules/@react-native/babel-preset": {
"version": "0.75.0-rc.4",
- "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.75.0-rc.4.tgz",
- "integrity": "sha512-voBplFmpbS9Jgn7ofhVrpx/SX5pYyaZtavPz/6kr4VRtRVxCBnzGRldnwaW6QsCK7YHfAD+lHhrYwQwpmMQgDA==",
+ "license": "MIT",
"dependencies": {
"@babel/core": "^7.20.0",
"@babel/plugin-proposal-export-default-from": "^7.0.0",
@@ -10454,8 +9687,7 @@
},
"node_modules/@react-native/codegen": {
"version": "0.75.0-rc.4",
- "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.75.0-rc.4.tgz",
- "integrity": "sha512-fgTgnjSvUe7yNwX0YEYjApplLwRwCcSxgMgW/4khOdDrInFwRqH8DQwGatTQj9ojsBN4SdmZwoce6ibQrw5OMg==",
+ "license": "MIT",
"dependencies": {
"@babel/parser": "^7.20.0",
"glob": "^7.1.1",
@@ -10474,8 +9706,7 @@
},
"node_modules/@react-native/codegen/node_modules/mkdirp": {
"version": "0.5.6",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
- "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+ "license": "MIT",
"dependencies": {
"minimist": "^1.2.6"
},
@@ -10485,8 +9716,7 @@
},
"node_modules/@react-native/community-cli-plugin": {
"version": "0.75.0-rc.4",
- "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.75.0-rc.4.tgz",
- "integrity": "sha512-80C70EcXGCxH6Mwj6L5JF25/Kp8BGw1SfrGOCb1uU7KHtJEowU0/0cOYSe4mh5pbkpPw+rGfkmuHLiId517zZw==",
+ "license": "MIT",
"dependencies": {
"@react-native-community/cli-server-api": "14.0.0-alpha.11",
"@react-native-community/cli-tools": "14.0.0-alpha.11",
@@ -10507,8 +9737,7 @@
},
"node_modules/@react-native/community-cli-plugin/node_modules/@jest/types": {
"version": "26.6.2",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz",
- "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==",
+ "license": "MIT",
"dependencies": {
"@types/istanbul-lib-coverage": "^2.0.0",
"@types/istanbul-reports": "^3.0.0",
@@ -10522,16 +9751,14 @@
},
"node_modules/@react-native/community-cli-plugin/node_modules/@react-native-community/cli-debugger-ui": {
"version": "14.0.0-alpha.11",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-14.0.0-alpha.11.tgz",
- "integrity": "sha512-0wCNQxhCniyjyMXgR1qXliY180y/2QbvoiYpp2MleGQADr5M1b8lgI4GoyADh5kE+kX3VL0ssjgyxpmbpCD86A==",
+ "license": "MIT",
"dependencies": {
"serve-static": "^1.13.1"
}
},
"node_modules/@react-native/community-cli-plugin/node_modules/@react-native-community/cli-server-api": {
"version": "14.0.0-alpha.11",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-14.0.0-alpha.11.tgz",
- "integrity": "sha512-I7YeYI7S5wSxnQAqeG8LNqhT99FojiGIk87DU0vTp6U8hIMLcA90fUuBAyJY38AuQZ12ZJpGa8ObkhIhWzGkvg==",
+ "license": "MIT",
"dependencies": {
"@react-native-community/cli-debugger-ui": "14.0.0-alpha.11",
"@react-native-community/cli-tools": "14.0.0-alpha.11",
@@ -10546,8 +9773,7 @@
},
"node_modules/@react-native/community-cli-plugin/node_modules/@react-native-community/cli-tools": {
"version": "14.0.0-alpha.11",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-14.0.0-alpha.11.tgz",
- "integrity": "sha512-HQCfVnX9aqRdKdLxmQy4fUAUo+YhNGlBV7ZjOayPbuEGWJ4RN+vSy0Cawk7epo7hXd6vKzc7P7y3HlU6Kxs7+w==",
+ "license": "MIT",
"dependencies": {
"appdirsjs": "^1.2.4",
"chalk": "^4.1.2",
@@ -10563,16 +9789,14 @@
},
"node_modules/@react-native/community-cli-plugin/node_modules/@react-native/debugger-frontend": {
"version": "0.75.0-rc.4",
- "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.75.0-rc.4.tgz",
- "integrity": "sha512-f1rcCEdH1bLD0+tYL9dzSSwDFWER2ONtwnkfPMnljR198UU3JFfvGgxsQVMD6mJVhltfg6mTdo6Wz9o1wlF/gQ==",
+ "license": "BSD-3-Clause",
"engines": {
"node": ">=18"
}
},
"node_modules/@react-native/community-cli-plugin/node_modules/@react-native/dev-middleware": {
"version": "0.75.0-rc.4",
- "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.75.0-rc.4.tgz",
- "integrity": "sha512-8Hc+vN3BUPQ5lPeI5Mc2Myk3WaTpz4yidkdyA2Yrab2Q/weZZxgJkPQBtDCtke9qfZFGTKg6QnZIYunfeGQCpw==",
+ "license": "MIT",
"dependencies": {
"@isaacs/ttlcache": "^1.4.1",
"@react-native/debugger-frontend": "0.75.0-rc.4",
@@ -10593,8 +9817,7 @@
},
"node_modules/@react-native/community-cli-plugin/node_modules/@react-native/dev-middleware/node_modules/open": {
"version": "7.4.2",
- "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
- "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==",
+ "license": "MIT",
"dependencies": {
"is-docker": "^2.0.0",
"is-wsl": "^2.1.1"
@@ -10608,24 +9831,21 @@
},
"node_modules/@react-native/community-cli-plugin/node_modules/@types/yargs": {
"version": "15.0.19",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz",
- "integrity": "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==",
+ "license": "MIT",
"dependencies": {
"@types/yargs-parser": "*"
}
},
"node_modules/@react-native/community-cli-plugin/node_modules/ansi-regex": {
"version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@react-native/community-cli-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==",
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -10638,8 +9858,7 @@
},
"node_modules/@react-native/community-cli-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==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -10653,8 +9872,7 @@
},
"node_modules/@react-native/community-cli-plugin/node_modules/chromium-edge-launcher": {
"version": "0.2.0",
- "resolved": "https://registry.npmjs.org/chromium-edge-launcher/-/chromium-edge-launcher-0.2.0.tgz",
- "integrity": "sha512-JfJjUnq25y9yg4FABRRVPmBGWPZZi+AQXT4mxupb67766/0UlhG8PAZCz6xzEMXTbW3CsSoE8PcCWA49n35mKg==",
+ "license": "Apache-2.0",
"dependencies": {
"@types/node": "*",
"escape-string-regexp": "^4.0.0",
@@ -10666,8 +9884,7 @@
},
"node_modules/@react-native/community-cli-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==",
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -10677,34 +9894,29 @@
},
"node_modules/@react-native/community-cli-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=="
+ "license": "MIT"
},
"node_modules/@react-native/community-cli-plugin/node_modules/debug": {
"version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "license": "MIT",
"dependencies": {
"ms": "2.0.0"
}
},
"node_modules/@react-native/community-cli-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==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@react-native/community-cli-plugin/node_modules/ms": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ "license": "MIT"
},
"node_modules/@react-native/community-cli-plugin/node_modules/open": {
"version": "6.4.0",
- "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz",
- "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==",
+ "license": "MIT",
"dependencies": {
"is-wsl": "^1.1.0"
},
@@ -10714,16 +9926,14 @@
},
"node_modules/@react-native/community-cli-plugin/node_modules/open/node_modules/is-wsl": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
- "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/@react-native/community-cli-plugin/node_modules/pretty-format": {
"version": "26.6.2",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz",
- "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==",
+ "license": "MIT",
"dependencies": {
"@jest/types": "^26.6.2",
"ansi-regex": "^5.0.0",
@@ -10736,22 +9946,18 @@
},
"node_modules/@react-native/community-cli-plugin/node_modules/querystring": {
"version": "0.2.1",
- "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz",
- "integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==",
- "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.",
+ "license": "MIT",
"engines": {
"node": ">=0.4.x"
}
},
"node_modules/@react-native/community-cli-plugin/node_modules/react-is": {
"version": "17.0.2",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
- "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="
+ "license": "MIT"
},
"node_modules/@react-native/community-cli-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==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -10761,24 +9967,21 @@
},
"node_modules/@react-native/community-cli-plugin/node_modules/ws": {
"version": "6.2.3",
- "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz",
- "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==",
+ "license": "MIT",
"dependencies": {
"async-limiter": "~1.0.0"
}
},
"node_modules/@react-native/debugger-frontend": {
"version": "0.74.84",
- "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.74.84.tgz",
- "integrity": "sha512-YUEA03UNFbiYzHpYxlcS2D9+3eNT5YLGkl5yRg3nOSN6KbCc/OttGnNZme+tuSOJwjMN/vcvtDKYkTqjJw8U0A==",
+ "license": "BSD-3-Clause",
"engines": {
"node": ">=18"
}
},
"node_modules/@react-native/dev-middleware": {
"version": "0.74.84",
- "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.74.84.tgz",
- "integrity": "sha512-veYw/WmyrAOQHUiIeULzn2duJQnXDPiKq2jZ/lcmDo6jsLirpp+Q73lx09TYgy/oVoPRuV0nfmU3x9B6EV/7qQ==",
+ "license": "MIT",
"dependencies": {
"@isaacs/ttlcache": "^1.4.1",
"@react-native/debugger-frontend": "0.74.84",
@@ -10800,21 +10003,18 @@
},
"node_modules/@react-native/dev-middleware/node_modules/debug": {
"version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "license": "MIT",
"dependencies": {
"ms": "2.0.0"
}
},
"node_modules/@react-native/dev-middleware/node_modules/ms": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ "license": "MIT"
},
"node_modules/@react-native/dev-middleware/node_modules/open": {
"version": "7.4.2",
- "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
- "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==",
+ "license": "MIT",
"dependencies": {
"is-docker": "^2.0.0",
"is-wsl": "^2.1.1"
@@ -10828,32 +10028,28 @@
},
"node_modules/@react-native/dev-middleware/node_modules/ws": {
"version": "6.2.2",
- "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz",
- "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==",
+ "license": "MIT",
"dependencies": {
"async-limiter": "~1.0.0"
}
},
"node_modules/@react-native/gradle-plugin": {
"version": "0.75.0-rc.4",
- "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.75.0-rc.4.tgz",
- "integrity": "sha512-bQsTBOiz7kQutvWVLTwAup9huWvhF6ctD28pliNmSazKJemQkM9qDY8aA3xTvglGvFgsrFQQv5zHWKpski3m9g==",
+ "license": "MIT",
"engines": {
"node": ">=18"
}
},
"node_modules/@react-native/js-polyfills": {
"version": "0.75.0-rc.4",
- "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.75.0-rc.4.tgz",
- "integrity": "sha512-2Z+qpXrB8roHpBamth84r3mGCplRaage+ex7d46npHTL7GAc98Mt/vOmfqjjkdKvU5JtkPOWyjo+DZ6th/aJjA==",
+ "license": "MIT",
"engines": {
"node": ">=18"
}
},
"node_modules/@react-native/metro-babel-transformer": {
"version": "0.75.0-rc.4",
- "resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.75.0-rc.4.tgz",
- "integrity": "sha512-ZgyZnzzkvVzGlXuJDFfQzO09T2Z9JwaqqVWfi2E4IG4FHs/7a5v7cCNj3Jr1TreWzfWUOoRvuWDOXNjHR+bgmg==",
+ "license": "MIT",
"dependencies": {
"@babel/core": "^7.20.0",
"@react-native/babel-preset": "0.75.0-rc.4",
@@ -10869,9 +10065,8 @@
},
"node_modules/@react-native/metro-config": {
"version": "0.75.0-rc.4",
- "resolved": "https://registry.npmjs.org/@react-native/metro-config/-/metro-config-0.75.0-rc.4.tgz",
- "integrity": "sha512-KaQcKwQDtzvbQmNTSG7GA+NVTNjwq22vW3YHhdLJDRlMuzxRdvNAlHVZqAk/+UpPHnn4+nuy8HO7F7MXbcY6yw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@react-native/js-polyfills": "0.75.0-rc.4",
"@react-native/metro-babel-transformer": "0.75.0-rc.4",
@@ -10888,13 +10083,11 @@
},
"node_modules/@react-native/normalize-colors": {
"version": "0.74.84",
- "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.74.84.tgz",
- "integrity": "sha512-Y5W6x8cC5RuakUcTVUFNAIhUZ/tYpuqHZlRBoAuakrTwVuoNHXfQki8lj1KsYU7rW6e3VWgdEx33AfOQpdNp6A=="
+ "license": "MIT"
},
"node_modules/@react-native/virtualized-lists": {
"version": "0.75.0-rc.4",
- "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.75.0-rc.4.tgz",
- "integrity": "sha512-EjR7vldp2xblUVrjqM94gClQoqWSXdOkaU7X4pGkN7EBEg0GlC7i+0Prt40dwKSQMUfQ1e70ztIVD3I8zrmq7A==",
+ "license": "MIT",
"dependencies": {
"invariant": "^2.2.4",
"nullthrows": "^1.1.1"
@@ -10930,8 +10123,7 @@
},
"node_modules/@react-navigation/core/node_modules/react-is": {
"version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+ "license": "MIT"
},
"node_modules/@react-navigation/devtools": {
"version": "6.0.10",
@@ -10984,8 +10176,7 @@
},
"node_modules/@react-navigation/stack": {
"version": "6.3.29",
- "resolved": "https://registry.npmjs.org/@react-navigation/stack/-/stack-6.3.29.tgz",
- "integrity": "sha512-tzlGkoRgB6P7vgw7rHuWo3TL7Gzu6xh5LMf+zSdCuEiKp/qASzxYfnTEr9tOLbVs/gf+qeukEDheCSAJKVpBXw==",
+ "license": "MIT",
"dependencies": {
"@react-navigation/elements": "^1.3.30",
"color": "^4.2.3",
@@ -11002,8 +10193,7 @@
},
"node_modules/@react-navigation/stack/node_modules/@react-navigation/elements": {
"version": "1.3.30",
- "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.30.tgz",
- "integrity": "sha512-plhc8UvCZs0UkV+sI+3bisIyn78wz9O/BiWZXpounu72k/R/Sj5PuZYFJ1fi6psvriUveMCGh4LeZckAZu2qiQ==",
+ "license": "MIT",
"peerDependencies": {
"@react-navigation/native": "^6.0.0",
"react": "*",
@@ -11024,8 +10214,7 @@
},
"node_modules/@rnmapbox/maps": {
"version": "10.1.26",
- "resolved": "https://registry.npmjs.org/@rnmapbox/maps/-/maps-10.1.26.tgz",
- "integrity": "sha512-akb9zaP7K4xyaPWKlSjEMyspdUEItuVMJaL4juxMyzr5MTYpEsvzrkqwOhf8P2s99u9bD7bHtyAllt0UqpepJQ==",
+ "license": "MIT",
"dependencies": {
"@turf/along": "6.5.0",
"@turf/distance": "6.5.0",
@@ -11056,8 +10245,7 @@
},
"node_modules/@rnx-kit/chromium-edge-launcher": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@rnx-kit/chromium-edge-launcher/-/chromium-edge-launcher-1.0.0.tgz",
- "integrity": "sha512-lzD84av1ZQhYUS+jsGqJiCMaJO2dn9u+RTT9n9q6D3SaKVwWqv+7AoRKqBu19bkwyE+iFRl1ymr40QS90jVFYg==",
+ "license": "Apache-2.0",
"dependencies": {
"@types/node": "^18.0.0",
"escape-string-regexp": "^4.0.0",
@@ -11072,16 +10260,13 @@
},
"node_modules/@rnx-kit/chromium-edge-launcher/node_modules/@types/node": {
"version": "18.19.31",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.31.tgz",
- "integrity": "sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA==",
+ "license": "MIT",
"dependencies": {
"undici-types": "~5.26.4"
}
},
"node_modules/@segment/loosely-validate-event": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@segment/loosely-validate-event/-/loosely-validate-event-2.0.0.tgz",
- "integrity": "sha512-ZMCSfztDBqwotkl848ODgVcAmN4OItEWDCkshcKz0/W6gGSQayuuCtWV/MlodFivAZD793d6UgANd6wCXUfrIw==",
"dependencies": {
"component-type": "^1.2.1",
"join-component": "^1.1.0"
@@ -11115,21 +10300,18 @@
},
"node_modules/@sideway/address": {
"version": "4.1.5",
- "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz",
- "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==",
+ "license": "BSD-3-Clause",
"dependencies": {
"@hapi/hoek": "^9.0.0"
}
},
"node_modules/@sideway/formula": {
"version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz",
- "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg=="
+ "license": "BSD-3-Clause"
},
"node_modules/@sideway/pinpoint": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
- "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ=="
+ "license": "BSD-3-Clause"
},
"node_modules/@sinclair/typebox": {
"version": "0.27.8",
@@ -11148,9 +10330,8 @@
},
"node_modules/@sindresorhus/merge-streams": {
"version": "2.3.0",
- "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz",
- "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=18"
},
@@ -11174,9 +10355,8 @@
},
"node_modules/@storybook/addon-a11y": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-8.1.10.tgz",
- "integrity": "sha512-Ruags4vx0ocO9FepZPCcfxksxWUgIIYsHguh/Ktestb0LoZN6Uikg9SMmXZeNrjcMrAHLHYKF/HXP0ov/rIexg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/addon-highlight": "8.1.10",
"axe-core": "^4.2.0"
@@ -11188,9 +10368,8 @@
},
"node_modules/@storybook/addon-actions": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-8.1.10.tgz",
- "integrity": "sha512-1MjncuynvkT3rJtrkWPHLo92Pfno+LUWtaHiNDt9nXYowclTN2cT4a4gNDh6eKkB9dITHxkD7/4mxjHpFUvyrA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/core-events": "8.1.10",
"@storybook/global": "^5.0.0",
@@ -11206,9 +10385,8 @@
},
"node_modules/@storybook/addon-actions/node_modules/@storybook/core-events": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-8.1.10.tgz",
- "integrity": "sha512-aS4zsBVyJds74+rAW0IfTEjULDCQwXecVpQfv11B8/89/07s3bOPssGGoTtCTaN4pHbduywE6MxbmFvTmXOFCA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/csf": "^0.1.7",
"ts-dedent": "^2.0.0"
@@ -11220,22 +10398,20 @@
},
"node_modules/@storybook/addon-actions/node_modules/uuid": {
"version": "9.0.1",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
- "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
"dev": true,
"funding": [
"https://github.com/sponsors/broofa",
"https://github.com/sponsors/ctavan"
],
+ "license": "MIT",
"bin": {
"uuid": "dist/bin/uuid"
}
},
"node_modules/@storybook/addon-backgrounds": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-8.1.10.tgz",
- "integrity": "sha512-nX9Hmcq5U/13S2ETcjGaLqfDcaSKTNPD3RBzWUoNQuZB/bB1q4qLLncQnQfaa6uruP9k6GIFZvtXeJAs9r0POw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/global": "^5.0.0",
"memoizerific": "^1.11.3",
@@ -11248,9 +10424,8 @@
},
"node_modules/@storybook/addon-controls": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-8.1.10.tgz",
- "integrity": "sha512-98uLezKv6W/1byJL+Zri5kA1Cfi+DUBsbdjz7fFJl8xMtAGwuv9cnOueQl0ouDhqqwnZ4LWHYQsSsPPMz1Lmkg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/blocks": "8.1.10",
"dequal": "^2.0.2",
@@ -11264,9 +10439,8 @@
},
"node_modules/@storybook/addon-docs": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-8.1.10.tgz",
- "integrity": "sha512-jzmIeCoykiHg/KLPrYEDtXO/+dcQaEOqyJHS77eTzAO2iSXJlE+yva5Uwc8apG7UxDVa4Ycc1lPwMzB5GaHsGQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/core": "^7.24.4",
"@mdx-js/react": "^3.0.0",
@@ -11296,9 +10470,8 @@
},
"node_modules/@storybook/addon-docs/node_modules/@babel/traverse": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz",
- "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.24.7",
"@babel/generator": "^7.24.7",
@@ -11317,9 +10490,8 @@
},
"node_modules/@storybook/addon-docs/node_modules/@storybook/channels": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-8.1.10.tgz",
- "integrity": "sha512-CxZE4XrQoe+F+S2mo8Z9HTvFZKfKHIIiwYfoXKCryVp2U/z7ZKrely2PbfxWsrQvF3H0+oegfYYhYRHRiM21Zw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/client-logger": "8.1.10",
"@storybook/core-events": "8.1.10",
@@ -11334,9 +10506,8 @@
},
"node_modules/@storybook/addon-docs/node_modules/@storybook/client-logger": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-8.1.10.tgz",
- "integrity": "sha512-sVXCOo7jnlCgRPOcMlQGODAEt6ipPj+8xGkRUws0kie77qiDld1drLSB6R380dWc9lUrbv9E1GpxCd/Y4ZzSJQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/global": "^5.0.0"
},
@@ -11347,9 +10518,8 @@
},
"node_modules/@storybook/addon-docs/node_modules/@storybook/core-events": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-8.1.10.tgz",
- "integrity": "sha512-aS4zsBVyJds74+rAW0IfTEjULDCQwXecVpQfv11B8/89/07s3bOPssGGoTtCTaN4pHbduywE6MxbmFvTmXOFCA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/csf": "^0.1.7",
"ts-dedent": "^2.0.0"
@@ -11361,9 +10531,8 @@
},
"node_modules/@storybook/addon-docs/node_modules/@storybook/csf-tools": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-8.1.10.tgz",
- "integrity": "sha512-bm/J1jAJf1YaKhcXgOlsNN02sf8XvILXuVAvr9cFC3aFkxVoGbC2AKCss4cgXAd8EQxUNtyETkOcheB5mJ5IlA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/generator": "^7.24.4",
"@babel/parser": "^7.24.4",
@@ -11382,9 +10551,8 @@
},
"node_modules/@storybook/addon-docs/node_modules/@storybook/node-logger": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-8.1.10.tgz",
- "integrity": "sha512-djgbAROgGAvz/gr49egBxCHn1+rui57e76qa9aOMPzEBcxsGrnnKKp0uNdiNt4M7Xv6S2QHbJ2SfOlHhWmMeaA==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
@@ -11392,9 +10560,8 @@
},
"node_modules/@storybook/addon-docs/node_modules/@storybook/preview-api": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-8.1.10.tgz",
- "integrity": "sha512-0Gl8WHDtp/srrA5uBYXl7YbC8kFQA7IxVmwWN7dIS7HAXu63JZ6JfxaFcfy+kCBfZSBD7spFG4J0f5JXRDYbpg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/channels": "8.1.10",
"@storybook/client-logger": "8.1.10",
@@ -11418,9 +10585,8 @@
},
"node_modules/@storybook/addon-docs/node_modules/@storybook/types": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-8.1.10.tgz",
- "integrity": "sha512-UJ97iqI+0Mk13I6ayd3TaBfSFBkWnEauwTnFMQe1dN/L3wTh8laOBaLa0Vr3utRSnt2b5hpcw/nq7azB/Gx4Yw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/channels": "8.1.10",
"@types/express": "^4.7.0",
@@ -11433,9 +10599,8 @@
},
"node_modules/@storybook/addon-docs/node_modules/fs-extra": {
"version": "11.2.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
- "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -11447,9 +10612,8 @@
},
"node_modules/@storybook/addon-docs/node_modules/recast": {
"version": "0.23.9",
- "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.9.tgz",
- "integrity": "sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ast-types": "^0.16.1",
"esprima": "~4.0.0",
@@ -11463,9 +10627,8 @@
},
"node_modules/@storybook/addon-essentials": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-8.1.10.tgz",
- "integrity": "sha512-xgAXdl/MaKWmwqJJpw4z1YaD1V/r74VHHLqY3Z4YaU9DmlApkCa+FmZSS9QVAf7g6JNUcD1Dbtw5j62uNn+YyA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/addon-actions": "8.1.10",
"@storybook/addon-backgrounds": "8.1.10",
@@ -11489,9 +10652,8 @@
},
"node_modules/@storybook/addon-essentials/node_modules/@babel/traverse": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz",
- "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.24.7",
"@babel/generator": "^7.24.7",
@@ -11510,9 +10672,8 @@
},
"node_modules/@storybook/addon-essentials/node_modules/@storybook/channels": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-8.1.10.tgz",
- "integrity": "sha512-CxZE4XrQoe+F+S2mo8Z9HTvFZKfKHIIiwYfoXKCryVp2U/z7ZKrely2PbfxWsrQvF3H0+oegfYYhYRHRiM21Zw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/client-logger": "8.1.10",
"@storybook/core-events": "8.1.10",
@@ -11527,9 +10688,8 @@
},
"node_modules/@storybook/addon-essentials/node_modules/@storybook/client-logger": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-8.1.10.tgz",
- "integrity": "sha512-sVXCOo7jnlCgRPOcMlQGODAEt6ipPj+8xGkRUws0kie77qiDld1drLSB6R380dWc9lUrbv9E1GpxCd/Y4ZzSJQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/global": "^5.0.0"
},
@@ -11540,9 +10700,8 @@
},
"node_modules/@storybook/addon-essentials/node_modules/@storybook/core-common": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-8.1.10.tgz",
- "integrity": "sha512-+0GhgDRQwUlXu1lY77NdLnVBVycCEW0DG7eu7rvLYYkTyNRxbdl2RWsQpjr/j4sxqT6u82l9/b+RWpmsl4MgMQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/core-events": "8.1.10",
"@storybook/csf-tools": "8.1.10",
@@ -11589,9 +10748,8 @@
},
"node_modules/@storybook/addon-essentials/node_modules/@storybook/core-events": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-8.1.10.tgz",
- "integrity": "sha512-aS4zsBVyJds74+rAW0IfTEjULDCQwXecVpQfv11B8/89/07s3bOPssGGoTtCTaN4pHbduywE6MxbmFvTmXOFCA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/csf": "^0.1.7",
"ts-dedent": "^2.0.0"
@@ -11603,9 +10761,8 @@
},
"node_modules/@storybook/addon-essentials/node_modules/@storybook/csf-tools": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-8.1.10.tgz",
- "integrity": "sha512-bm/J1jAJf1YaKhcXgOlsNN02sf8XvILXuVAvr9cFC3aFkxVoGbC2AKCss4cgXAd8EQxUNtyETkOcheB5mJ5IlA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/generator": "^7.24.4",
"@babel/parser": "^7.24.4",
@@ -11624,9 +10781,8 @@
},
"node_modules/@storybook/addon-essentials/node_modules/@storybook/node-logger": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-8.1.10.tgz",
- "integrity": "sha512-djgbAROgGAvz/gr49egBxCHn1+rui57e76qa9aOMPzEBcxsGrnnKKp0uNdiNt4M7Xv6S2QHbJ2SfOlHhWmMeaA==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
@@ -11634,9 +10790,8 @@
},
"node_modules/@storybook/addon-essentials/node_modules/@storybook/preview-api": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-8.1.10.tgz",
- "integrity": "sha512-0Gl8WHDtp/srrA5uBYXl7YbC8kFQA7IxVmwWN7dIS7HAXu63JZ6JfxaFcfy+kCBfZSBD7spFG4J0f5JXRDYbpg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/channels": "8.1.10",
"@storybook/client-logger": "8.1.10",
@@ -11660,9 +10815,8 @@
},
"node_modules/@storybook/addon-essentials/node_modules/@storybook/types": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-8.1.10.tgz",
- "integrity": "sha512-UJ97iqI+0Mk13I6ayd3TaBfSFBkWnEauwTnFMQe1dN/L3wTh8laOBaLa0Vr3utRSnt2b5hpcw/nq7azB/Gx4Yw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/channels": "8.1.10",
"@types/express": "^4.7.0",
@@ -11675,9 +10829,8 @@
},
"node_modules/@storybook/addon-essentials/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,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -11690,18 +10843,16 @@
},
"node_modules/@storybook/addon-essentials/node_modules/brace-expansion": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
}
},
"node_modules/@storybook/addon-essentials/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,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -11715,9 +10866,8 @@
},
"node_modules/@storybook/addon-essentials/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,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -11727,15 +10877,13 @@
},
"node_modules/@storybook/addon-essentials/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
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@storybook/addon-essentials/node_modules/crypto-random-string": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz",
- "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"type-fest": "^1.0.1"
},
@@ -11748,9 +10896,8 @@
},
"node_modules/@storybook/addon-essentials/node_modules/crypto-random-string/node_modules/type-fest": {
"version": "1.4.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
- "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=10"
},
@@ -11760,9 +10907,8 @@
},
"node_modules/@storybook/addon-essentials/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,
+ "license": "MIT",
"dependencies": {
"commondir": "^1.0.1",
"make-dir": "^3.0.2",
@@ -11777,9 +10923,8 @@
},
"node_modules/@storybook/addon-essentials/node_modules/find-cache-dir/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,
+ "license": "MIT",
"dependencies": {
"locate-path": "^5.0.0",
"path-exists": "^4.0.0"
@@ -11790,9 +10935,8 @@
},
"node_modules/@storybook/addon-essentials/node_modules/find-cache-dir/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,
+ "license": "MIT",
"dependencies": {
"find-up": "^4.0.0"
},
@@ -11802,9 +10946,8 @@
},
"node_modules/@storybook/addon-essentials/node_modules/fs-extra": {
"version": "11.2.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
- "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -11816,9 +10959,8 @@
},
"node_modules/@storybook/addon-essentials/node_modules/glob": {
"version": "10.4.2",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.2.tgz",
- "integrity": "sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"foreground-child": "^3.1.0",
"jackspeak": "^3.1.2",
@@ -11839,18 +10981,16 @@
},
"node_modules/@storybook/addon-essentials/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,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@storybook/addon-essentials/node_modules/is-stream": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
- "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
@@ -11860,9 +11000,8 @@
},
"node_modules/@storybook/addon-essentials/node_modules/jackspeak": {
"version": "3.4.0",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz",
- "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==",
"dev": true,
+ "license": "BlueOak-1.0.0",
"dependencies": {
"@isaacs/cliui": "^8.0.2"
},
@@ -11878,9 +11017,8 @@
},
"node_modules/@storybook/addon-essentials/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,
+ "license": "MIT",
"dependencies": {
"p-locate": "^4.1.0"
},
@@ -11890,9 +11028,8 @@
},
"node_modules/@storybook/addon-essentials/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,
+ "license": "MIT",
"dependencies": {
"semver": "^6.0.0"
},
@@ -11905,18 +11042,16 @@
},
"node_modules/@storybook/addon-essentials/node_modules/make-dir/node_modules/semver": {
"version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/@storybook/addon-essentials/node_modules/minimatch": {
"version": "9.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
- "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"brace-expansion": "^2.0.1"
},
@@ -11929,18 +11064,16 @@
},
"node_modules/@storybook/addon-essentials/node_modules/minipass": {
"version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": ">=16 || 14 >=14.17"
}
},
"node_modules/@storybook/addon-essentials/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,
+ "license": "MIT",
"dependencies": {
"p-try": "^2.0.0"
},
@@ -11953,9 +11086,8 @@
},
"node_modules/@storybook/addon-essentials/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,
+ "license": "MIT",
"dependencies": {
"p-limit": "^2.2.0"
},
@@ -11965,18 +11097,16 @@
},
"node_modules/@storybook/addon-essentials/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,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@storybook/addon-essentials/node_modules/recast": {
"version": "0.23.9",
- "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.9.tgz",
- "integrity": "sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ast-types": "^0.16.1",
"esprima": "~4.0.0",
@@ -11990,9 +11120,8 @@
},
"node_modules/@storybook/addon-essentials/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,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -12002,18 +11131,16 @@
},
"node_modules/@storybook/addon-essentials/node_modules/temp-dir": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-3.0.0.tgz",
- "integrity": "sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=14.16"
}
},
"node_modules/@storybook/addon-essentials/node_modules/tempy": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.1.0.tgz",
- "integrity": "sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-stream": "^3.0.0",
"temp-dir": "^3.0.0",
@@ -12029,9 +11156,8 @@
},
"node_modules/@storybook/addon-essentials/node_modules/type-fest": {
"version": "2.19.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
- "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=12.20"
},
@@ -12041,9 +11167,8 @@
},
"node_modules/@storybook/addon-essentials/node_modules/unique-string": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz",
- "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"crypto-random-string": "^4.0.0"
},
@@ -12056,9 +11181,8 @@
},
"node_modules/@storybook/addon-essentials/node_modules/util": {
"version": "0.12.5",
- "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
- "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"inherits": "^2.0.3",
"is-arguments": "^1.0.4",
@@ -12069,9 +11193,8 @@
},
"node_modules/@storybook/addon-highlight": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-8.1.10.tgz",
- "integrity": "sha512-s9QKGtU6WGB/+CggNWg940NIi+u0tcxpPxqg/ltg3EOHr8J0NAZur6mibs3Z4Q5CXkAuNdWrvopLu+/27i1rQQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/global": "^5.0.0"
},
@@ -12082,9 +11205,8 @@
},
"node_modules/@storybook/addon-measure": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-8.1.10.tgz",
- "integrity": "sha512-akhdg3WBOBvDsolzSSvW4TIdZLMVlL9DS6rpZvhydXeX8pG0sjb+sON6VUL4h8Gs7qa8QumauXCr+Y4q1FhZhw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/global": "^5.0.0",
"tiny-invariant": "^1.3.1"
@@ -12096,9 +11218,8 @@
},
"node_modules/@storybook/addon-outline": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-8.1.10.tgz",
- "integrity": "sha512-Edn5TWpV1DcumOjx0qG9bBKja6vz210ip7O47JbRDu7IDR8lguaM2X9xbmhXhBQq4fmqvobZmfRnrSeCtSYeyQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/global": "^5.0.0",
"ts-dedent": "^2.0.0"
@@ -12110,9 +11231,8 @@
},
"node_modules/@storybook/addon-toolbars": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-8.1.10.tgz",
- "integrity": "sha512-5bRcCWrhaTX5Y91EWmHilPZ7kZaneaY414Gn5a6gsaNgaVPkSx9KD9j8M9DyXJ4yQNs265TiPWQqWrPB3Q2VgA==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
@@ -12120,9 +11240,8 @@
},
"node_modules/@storybook/addon-viewport": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-8.1.10.tgz",
- "integrity": "sha512-rJpyAwTVQa+6yqjdMDeqNKoW5aPoSzBAtMywtNMP5lHwF6NpJUvm67c/ox0//d5dPPPjlJDz2QC2COWqjviQyw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"memoizerific": "^1.11.3"
},
@@ -12133,9 +11252,8 @@
},
"node_modules/@storybook/addon-webpack5-compiler-babel": {
"version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@storybook/addon-webpack5-compiler-babel/-/addon-webpack5-compiler-babel-3.0.3.tgz",
- "integrity": "sha512-rVQTTw+oxJltbVKaejIWSHwVKOBJs3au21f/pYXhV0aiNgNhxEa3vr79t/j0j8ox8uJtzM8XYOb7FlkvGfHlwQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/core": "^7.23.7",
"babel-loader": "^9.1.3"
@@ -12146,9 +11264,8 @@
},
"node_modules/@storybook/blocks": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-8.1.10.tgz",
- "integrity": "sha512-8ZGgLIUBdSafcyaKR5Zs0CFisFCPoxZBVt3GMUCZtN+G17YhEg4+OnZs5aMZknfnh28BUnZS2STjWTGStAE5Rw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/channels": "8.1.10",
"@storybook/client-logger": "8.1.10",
@@ -12194,9 +11311,8 @@
},
"node_modules/@storybook/blocks/node_modules/@babel/traverse": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz",
- "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.24.7",
"@babel/generator": "^7.24.7",
@@ -12215,9 +11331,8 @@
},
"node_modules/@storybook/blocks/node_modules/@storybook/channels": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-8.1.10.tgz",
- "integrity": "sha512-CxZE4XrQoe+F+S2mo8Z9HTvFZKfKHIIiwYfoXKCryVp2U/z7ZKrely2PbfxWsrQvF3H0+oegfYYhYRHRiM21Zw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/client-logger": "8.1.10",
"@storybook/core-events": "8.1.10",
@@ -12232,9 +11347,8 @@
},
"node_modules/@storybook/blocks/node_modules/@storybook/client-logger": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-8.1.10.tgz",
- "integrity": "sha512-sVXCOo7jnlCgRPOcMlQGODAEt6ipPj+8xGkRUws0kie77qiDld1drLSB6R380dWc9lUrbv9E1GpxCd/Y4ZzSJQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/global": "^5.0.0"
},
@@ -12245,9 +11359,8 @@
},
"node_modules/@storybook/blocks/node_modules/@storybook/core-common": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-8.1.10.tgz",
- "integrity": "sha512-+0GhgDRQwUlXu1lY77NdLnVBVycCEW0DG7eu7rvLYYkTyNRxbdl2RWsQpjr/j4sxqT6u82l9/b+RWpmsl4MgMQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/core-events": "8.1.10",
"@storybook/csf-tools": "8.1.10",
@@ -12294,9 +11407,8 @@
},
"node_modules/@storybook/blocks/node_modules/@storybook/core-events": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-8.1.10.tgz",
- "integrity": "sha512-aS4zsBVyJds74+rAW0IfTEjULDCQwXecVpQfv11B8/89/07s3bOPssGGoTtCTaN4pHbduywE6MxbmFvTmXOFCA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/csf": "^0.1.7",
"ts-dedent": "^2.0.0"
@@ -12308,9 +11420,8 @@
},
"node_modules/@storybook/blocks/node_modules/@storybook/csf-tools": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-8.1.10.tgz",
- "integrity": "sha512-bm/J1jAJf1YaKhcXgOlsNN02sf8XvILXuVAvr9cFC3aFkxVoGbC2AKCss4cgXAd8EQxUNtyETkOcheB5mJ5IlA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/generator": "^7.24.4",
"@babel/parser": "^7.24.4",
@@ -12329,9 +11440,8 @@
},
"node_modules/@storybook/blocks/node_modules/@storybook/docs-tools": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-8.1.10.tgz",
- "integrity": "sha512-FsO/+L9CrUfAIbm9cdH9UpjTusT7L5RZxN4WCXkiF5SpAVyBoY8kar3RzTZVoh4aQxt1yGWYC+SZGjgf++xa4g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/core-common": "8.1.10",
"@storybook/core-events": "8.1.10",
@@ -12349,9 +11459,8 @@
},
"node_modules/@storybook/blocks/node_modules/@storybook/node-logger": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-8.1.10.tgz",
- "integrity": "sha512-djgbAROgGAvz/gr49egBxCHn1+rui57e76qa9aOMPzEBcxsGrnnKKp0uNdiNt4M7Xv6S2QHbJ2SfOlHhWmMeaA==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
@@ -12359,9 +11468,8 @@
},
"node_modules/@storybook/blocks/node_modules/@storybook/preview-api": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-8.1.10.tgz",
- "integrity": "sha512-0Gl8WHDtp/srrA5uBYXl7YbC8kFQA7IxVmwWN7dIS7HAXu63JZ6JfxaFcfy+kCBfZSBD7spFG4J0f5JXRDYbpg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/channels": "8.1.10",
"@storybook/client-logger": "8.1.10",
@@ -12385,9 +11493,8 @@
},
"node_modules/@storybook/blocks/node_modules/@storybook/types": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-8.1.10.tgz",
- "integrity": "sha512-UJ97iqI+0Mk13I6ayd3TaBfSFBkWnEauwTnFMQe1dN/L3wTh8laOBaLa0Vr3utRSnt2b5hpcw/nq7azB/Gx4Yw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/channels": "8.1.10",
"@types/express": "^4.7.0",
@@ -12400,9 +11507,8 @@
},
"node_modules/@storybook/blocks/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,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -12415,9 +11521,8 @@
},
"node_modules/@storybook/blocks/node_modules/assert": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz",
- "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"call-bind": "^1.0.2",
"is-nan": "^1.3.2",
@@ -12428,18 +11533,16 @@
},
"node_modules/@storybook/blocks/node_modules/brace-expansion": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
}
},
"node_modules/@storybook/blocks/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,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -12453,9 +11556,8 @@
},
"node_modules/@storybook/blocks/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,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -12465,15 +11567,13 @@
},
"node_modules/@storybook/blocks/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
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@storybook/blocks/node_modules/crypto-random-string": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz",
- "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"type-fest": "^1.0.1"
},
@@ -12486,9 +11586,8 @@
},
"node_modules/@storybook/blocks/node_modules/crypto-random-string/node_modules/type-fest": {
"version": "1.4.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
- "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=10"
},
@@ -12498,9 +11597,8 @@
},
"node_modules/@storybook/blocks/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,
+ "license": "MIT",
"dependencies": {
"commondir": "^1.0.1",
"make-dir": "^3.0.2",
@@ -12515,9 +11613,8 @@
},
"node_modules/@storybook/blocks/node_modules/find-cache-dir/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,
+ "license": "MIT",
"dependencies": {
"locate-path": "^5.0.0",
"path-exists": "^4.0.0"
@@ -12528,9 +11625,8 @@
},
"node_modules/@storybook/blocks/node_modules/find-cache-dir/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,
+ "license": "MIT",
"dependencies": {
"find-up": "^4.0.0"
},
@@ -12540,9 +11636,8 @@
},
"node_modules/@storybook/blocks/node_modules/fs-extra": {
"version": "11.2.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
- "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -12554,9 +11649,8 @@
},
"node_modules/@storybook/blocks/node_modules/glob": {
"version": "10.4.2",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.2.tgz",
- "integrity": "sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"foreground-child": "^3.1.0",
"jackspeak": "^3.1.2",
@@ -12577,18 +11671,16 @@
},
"node_modules/@storybook/blocks/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,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@storybook/blocks/node_modules/is-stream": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
- "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
@@ -12598,9 +11690,8 @@
},
"node_modules/@storybook/blocks/node_modules/jackspeak": {
"version": "3.4.0",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz",
- "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==",
"dev": true,
+ "license": "BlueOak-1.0.0",
"dependencies": {
"@isaacs/cliui": "^8.0.2"
},
@@ -12616,9 +11707,8 @@
},
"node_modules/@storybook/blocks/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,
+ "license": "MIT",
"dependencies": {
"p-locate": "^4.1.0"
},
@@ -12628,9 +11718,8 @@
},
"node_modules/@storybook/blocks/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,
+ "license": "MIT",
"dependencies": {
"semver": "^6.0.0"
},
@@ -12643,18 +11732,16 @@
},
"node_modules/@storybook/blocks/node_modules/make-dir/node_modules/semver": {
"version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/@storybook/blocks/node_modules/minimatch": {
"version": "9.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
- "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"brace-expansion": "^2.0.1"
},
@@ -12667,18 +11754,16 @@
},
"node_modules/@storybook/blocks/node_modules/minipass": {
"version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": ">=16 || 14 >=14.17"
}
},
"node_modules/@storybook/blocks/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,
+ "license": "MIT",
"dependencies": {
"p-try": "^2.0.0"
},
@@ -12691,9 +11776,8 @@
},
"node_modules/@storybook/blocks/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,
+ "license": "MIT",
"dependencies": {
"p-limit": "^2.2.0"
},
@@ -12703,18 +11787,16 @@
},
"node_modules/@storybook/blocks/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,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@storybook/blocks/node_modules/recast": {
"version": "0.23.9",
- "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.9.tgz",
- "integrity": "sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ast-types": "^0.16.1",
"esprima": "~4.0.0",
@@ -12728,9 +11810,8 @@
},
"node_modules/@storybook/blocks/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,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -12740,18 +11821,16 @@
},
"node_modules/@storybook/blocks/node_modules/temp-dir": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-3.0.0.tgz",
- "integrity": "sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=14.16"
}
},
"node_modules/@storybook/blocks/node_modules/tempy": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.1.0.tgz",
- "integrity": "sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-stream": "^3.0.0",
"temp-dir": "^3.0.0",
@@ -12767,9 +11846,8 @@
},
"node_modules/@storybook/blocks/node_modules/type-fest": {
"version": "2.19.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
- "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=12.20"
},
@@ -12779,9 +11857,8 @@
},
"node_modules/@storybook/blocks/node_modules/unique-string": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz",
- "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"crypto-random-string": "^4.0.0"
},
@@ -12794,9 +11871,8 @@
},
"node_modules/@storybook/blocks/node_modules/util": {
"version": "0.12.5",
- "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
- "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"inherits": "^2.0.3",
"is-arguments": "^1.0.4",
@@ -12807,9 +11883,8 @@
},
"node_modules/@storybook/builder-manager": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-8.1.10.tgz",
- "integrity": "sha512-dhg54zpaglR9XKNAiwMqm5/IONMCEG/hO/iTfNHJI1rAGeWhvM71cmhF+VlKUcjpTlIfHe7J19+TL+sWQJNgtg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@fal-works/esbuild-plugin-global-externals": "^2.1.2",
"@storybook/core-common": "8.1.10",
@@ -12833,9 +11908,8 @@
},
"node_modules/@storybook/builder-manager/node_modules/@babel/traverse": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz",
- "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.24.7",
"@babel/generator": "^7.24.7",
@@ -12854,9 +11928,8 @@
},
"node_modules/@storybook/builder-manager/node_modules/@storybook/channels": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-8.1.10.tgz",
- "integrity": "sha512-CxZE4XrQoe+F+S2mo8Z9HTvFZKfKHIIiwYfoXKCryVp2U/z7ZKrely2PbfxWsrQvF3H0+oegfYYhYRHRiM21Zw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/client-logger": "8.1.10",
"@storybook/core-events": "8.1.10",
@@ -12871,9 +11944,8 @@
},
"node_modules/@storybook/builder-manager/node_modules/@storybook/client-logger": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-8.1.10.tgz",
- "integrity": "sha512-sVXCOo7jnlCgRPOcMlQGODAEt6ipPj+8xGkRUws0kie77qiDld1drLSB6R380dWc9lUrbv9E1GpxCd/Y4ZzSJQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/global": "^5.0.0"
},
@@ -12884,9 +11956,8 @@
},
"node_modules/@storybook/builder-manager/node_modules/@storybook/core-common": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-8.1.10.tgz",
- "integrity": "sha512-+0GhgDRQwUlXu1lY77NdLnVBVycCEW0DG7eu7rvLYYkTyNRxbdl2RWsQpjr/j4sxqT6u82l9/b+RWpmsl4MgMQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/core-events": "8.1.10",
"@storybook/csf-tools": "8.1.10",
@@ -12933,9 +12004,8 @@
},
"node_modules/@storybook/builder-manager/node_modules/@storybook/core-events": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-8.1.10.tgz",
- "integrity": "sha512-aS4zsBVyJds74+rAW0IfTEjULDCQwXecVpQfv11B8/89/07s3bOPssGGoTtCTaN4pHbduywE6MxbmFvTmXOFCA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/csf": "^0.1.7",
"ts-dedent": "^2.0.0"
@@ -12947,9 +12017,8 @@
},
"node_modules/@storybook/builder-manager/node_modules/@storybook/csf-tools": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-8.1.10.tgz",
- "integrity": "sha512-bm/J1jAJf1YaKhcXgOlsNN02sf8XvILXuVAvr9cFC3aFkxVoGbC2AKCss4cgXAd8EQxUNtyETkOcheB5mJ5IlA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/generator": "^7.24.4",
"@babel/parser": "^7.24.4",
@@ -12968,9 +12037,8 @@
},
"node_modules/@storybook/builder-manager/node_modules/@storybook/node-logger": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-8.1.10.tgz",
- "integrity": "sha512-djgbAROgGAvz/gr49egBxCHn1+rui57e76qa9aOMPzEBcxsGrnnKKp0uNdiNt4M7Xv6S2QHbJ2SfOlHhWmMeaA==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
@@ -12978,9 +12046,8 @@
},
"node_modules/@storybook/builder-manager/node_modules/@storybook/types": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-8.1.10.tgz",
- "integrity": "sha512-UJ97iqI+0Mk13I6ayd3TaBfSFBkWnEauwTnFMQe1dN/L3wTh8laOBaLa0Vr3utRSnt2b5hpcw/nq7azB/Gx4Yw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/channels": "8.1.10",
"@types/express": "^4.7.0",
@@ -12993,9 +12060,8 @@
},
"node_modules/@storybook/builder-manager/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,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -13008,18 +12074,16 @@
},
"node_modules/@storybook/builder-manager/node_modules/brace-expansion": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
}
},
"node_modules/@storybook/builder-manager/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,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -13033,9 +12097,8 @@
},
"node_modules/@storybook/builder-manager/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,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -13045,15 +12108,13 @@
},
"node_modules/@storybook/builder-manager/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
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@storybook/builder-manager/node_modules/crypto-random-string": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz",
- "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"type-fest": "^1.0.1"
},
@@ -13066,9 +12127,8 @@
},
"node_modules/@storybook/builder-manager/node_modules/crypto-random-string/node_modules/type-fest": {
"version": "1.4.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
- "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=10"
},
@@ -13078,9 +12138,8 @@
},
"node_modules/@storybook/builder-manager/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,
+ "license": "MIT",
"dependencies": {
"commondir": "^1.0.1",
"make-dir": "^3.0.2",
@@ -13095,9 +12154,8 @@
},
"node_modules/@storybook/builder-manager/node_modules/find-cache-dir/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,
+ "license": "MIT",
"dependencies": {
"locate-path": "^5.0.0",
"path-exists": "^4.0.0"
@@ -13108,9 +12166,8 @@
},
"node_modules/@storybook/builder-manager/node_modules/find-cache-dir/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,
+ "license": "MIT",
"dependencies": {
"find-up": "^4.0.0"
},
@@ -13120,9 +12177,8 @@
},
"node_modules/@storybook/builder-manager/node_modules/fs-extra": {
"version": "11.2.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
- "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -13134,9 +12190,8 @@
},
"node_modules/@storybook/builder-manager/node_modules/glob": {
"version": "10.4.2",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.2.tgz",
- "integrity": "sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"foreground-child": "^3.1.0",
"jackspeak": "^3.1.2",
@@ -13157,18 +12212,16 @@
},
"node_modules/@storybook/builder-manager/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,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@storybook/builder-manager/node_modules/is-stream": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
- "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
@@ -13178,9 +12231,8 @@
},
"node_modules/@storybook/builder-manager/node_modules/jackspeak": {
"version": "3.4.0",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz",
- "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==",
"dev": true,
+ "license": "BlueOak-1.0.0",
"dependencies": {
"@isaacs/cliui": "^8.0.2"
},
@@ -13196,9 +12248,8 @@
},
"node_modules/@storybook/builder-manager/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,
+ "license": "MIT",
"dependencies": {
"p-locate": "^4.1.0"
},
@@ -13208,9 +12259,8 @@
},
"node_modules/@storybook/builder-manager/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,
+ "license": "MIT",
"dependencies": {
"semver": "^6.0.0"
},
@@ -13223,18 +12273,16 @@
},
"node_modules/@storybook/builder-manager/node_modules/make-dir/node_modules/semver": {
"version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/@storybook/builder-manager/node_modules/minimatch": {
"version": "9.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
- "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"brace-expansion": "^2.0.1"
},
@@ -13247,18 +12295,16 @@
},
"node_modules/@storybook/builder-manager/node_modules/minipass": {
"version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": ">=16 || 14 >=14.17"
}
},
"node_modules/@storybook/builder-manager/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,
+ "license": "MIT",
"dependencies": {
"p-try": "^2.0.0"
},
@@ -13271,9 +12317,8 @@
},
"node_modules/@storybook/builder-manager/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,
+ "license": "MIT",
"dependencies": {
"p-limit": "^2.2.0"
},
@@ -13283,18 +12328,16 @@
},
"node_modules/@storybook/builder-manager/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,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@storybook/builder-manager/node_modules/recast": {
"version": "0.23.9",
- "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.9.tgz",
- "integrity": "sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ast-types": "^0.16.1",
"esprima": "~4.0.0",
@@ -13308,9 +12351,8 @@
},
"node_modules/@storybook/builder-manager/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,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -13320,18 +12362,16 @@
},
"node_modules/@storybook/builder-manager/node_modules/temp-dir": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-3.0.0.tgz",
- "integrity": "sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=14.16"
}
},
"node_modules/@storybook/builder-manager/node_modules/tempy": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.1.0.tgz",
- "integrity": "sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-stream": "^3.0.0",
"temp-dir": "^3.0.0",
@@ -13347,9 +12387,8 @@
},
"node_modules/@storybook/builder-manager/node_modules/type-fest": {
"version": "2.19.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
- "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=12.20"
},
@@ -13359,9 +12398,8 @@
},
"node_modules/@storybook/builder-manager/node_modules/unique-string": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz",
- "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"crypto-random-string": "^4.0.0"
},
@@ -13374,9 +12412,8 @@
},
"node_modules/@storybook/builder-manager/node_modules/util": {
"version": "0.12.5",
- "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
- "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"inherits": "^2.0.3",
"is-arguments": "^1.0.4",
@@ -13387,9 +12424,8 @@
},
"node_modules/@storybook/builder-webpack5": {
"version": "8.1.6",
- "resolved": "https://registry.npmjs.org/@storybook/builder-webpack5/-/builder-webpack5-8.1.6.tgz",
- "integrity": "sha512-FP/vEUSM+/x+6Pof4d3EBaLH4dlzpH97Pzc3RsVD1qvEqVRHUyfbROh5Ud7/+X0m75M2kkpFtmlH/W9fVWzWGw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/channels": "8.1.6",
"@storybook/client-logger": "8.1.6",
@@ -13438,18 +12474,16 @@
},
"node_modules/@storybook/builder-webpack5/node_modules/@types/node": {
"version": "18.19.34",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.34.tgz",
- "integrity": "sha512-eXF4pfBNV5DAMKGbI02NnDtWrQ40hAN558/2vvS4gMpMIxaf6JmD7YjnZbq0Q9TDSSkKBamime8ewRoomHdt4g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"undici-types": "~5.26.4"
}
},
"node_modules/@storybook/builder-webpack5/node_modules/fs-extra": {
"version": "11.2.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
- "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -13461,15 +12495,13 @@
},
"node_modules/@storybook/builder-webpack5/node_modules/path-browserify": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
- "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@storybook/builder-webpack5/node_modules/style-loader": {
"version": "3.3.4",
- "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.4.tgz",
- "integrity": "sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 12.13.0"
},
@@ -13483,9 +12515,8 @@
},
"node_modules/@storybook/builder-webpack5/node_modules/util": {
"version": "0.12.5",
- "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
- "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"inherits": "^2.0.3",
"is-arguments": "^1.0.4",
@@ -13496,9 +12527,8 @@
},
"node_modules/@storybook/channels": {
"version": "8.1.6",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-8.1.6.tgz",
- "integrity": "sha512-CzDnP6qfI8OC8pGUk+wPUzLPYcKhX8XbriF2gBtwl6qVM8YfkHP2mLTiDYDwBIi0rLuUbSm/SpILXQ/ouOHOGw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/client-logger": "8.1.6",
"@storybook/core-events": "8.1.6",
@@ -13513,9 +12543,8 @@
},
"node_modules/@storybook/cli": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-8.1.10.tgz",
- "integrity": "sha512-7Fm2Qgk33sHayZ0QABqwe1Jto4yyVRVW6kTrSeP5IuLh+mn244RgxBvWtGCyL1EcWDFI7PYUFa0HxgTCq7C+OA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/core": "^7.24.4",
"@babel/types": "^7.24.0",
@@ -13565,9 +12594,8 @@
},
"node_modules/@storybook/cli/node_modules/@babel/traverse": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz",
- "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.24.7",
"@babel/generator": "^7.24.7",
@@ -13586,9 +12614,8 @@
},
"node_modules/@storybook/cli/node_modules/@storybook/channels": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-8.1.10.tgz",
- "integrity": "sha512-CxZE4XrQoe+F+S2mo8Z9HTvFZKfKHIIiwYfoXKCryVp2U/z7ZKrely2PbfxWsrQvF3H0+oegfYYhYRHRiM21Zw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/client-logger": "8.1.10",
"@storybook/core-events": "8.1.10",
@@ -13603,9 +12630,8 @@
},
"node_modules/@storybook/cli/node_modules/@storybook/client-logger": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-8.1.10.tgz",
- "integrity": "sha512-sVXCOo7jnlCgRPOcMlQGODAEt6ipPj+8xGkRUws0kie77qiDld1drLSB6R380dWc9lUrbv9E1GpxCd/Y4ZzSJQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/global": "^5.0.0"
},
@@ -13616,9 +12642,8 @@
},
"node_modules/@storybook/cli/node_modules/@storybook/core-common": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-8.1.10.tgz",
- "integrity": "sha512-+0GhgDRQwUlXu1lY77NdLnVBVycCEW0DG7eu7rvLYYkTyNRxbdl2RWsQpjr/j4sxqT6u82l9/b+RWpmsl4MgMQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/core-events": "8.1.10",
"@storybook/csf-tools": "8.1.10",
@@ -13665,9 +12690,8 @@
},
"node_modules/@storybook/cli/node_modules/@storybook/core-events": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-8.1.10.tgz",
- "integrity": "sha512-aS4zsBVyJds74+rAW0IfTEjULDCQwXecVpQfv11B8/89/07s3bOPssGGoTtCTaN4pHbduywE6MxbmFvTmXOFCA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/csf": "^0.1.7",
"ts-dedent": "^2.0.0"
@@ -13679,9 +12703,8 @@
},
"node_modules/@storybook/cli/node_modules/@storybook/csf-tools": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-8.1.10.tgz",
- "integrity": "sha512-bm/J1jAJf1YaKhcXgOlsNN02sf8XvILXuVAvr9cFC3aFkxVoGbC2AKCss4cgXAd8EQxUNtyETkOcheB5mJ5IlA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/generator": "^7.24.4",
"@babel/parser": "^7.24.4",
@@ -13700,9 +12723,8 @@
},
"node_modules/@storybook/cli/node_modules/@storybook/node-logger": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-8.1.10.tgz",
- "integrity": "sha512-djgbAROgGAvz/gr49egBxCHn1+rui57e76qa9aOMPzEBcxsGrnnKKp0uNdiNt4M7Xv6S2QHbJ2SfOlHhWmMeaA==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
@@ -13710,9 +12732,8 @@
},
"node_modules/@storybook/cli/node_modules/@storybook/types": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-8.1.10.tgz",
- "integrity": "sha512-UJ97iqI+0Mk13I6ayd3TaBfSFBkWnEauwTnFMQe1dN/L3wTh8laOBaLa0Vr3utRSnt2b5hpcw/nq7azB/Gx4Yw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/channels": "8.1.10",
"@types/express": "^4.7.0",
@@ -13725,9 +12746,8 @@
},
"node_modules/@storybook/cli/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,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -13740,18 +12760,16 @@
},
"node_modules/@storybook/cli/node_modules/brace-expansion": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
}
},
"node_modules/@storybook/cli/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,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -13765,9 +12783,8 @@
},
"node_modules/@storybook/cli/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,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -13777,15 +12794,13 @@
},
"node_modules/@storybook/cli/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
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@storybook/cli/node_modules/crypto-random-string": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz",
- "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"type-fest": "^1.0.1"
},
@@ -13798,9 +12813,8 @@
},
"node_modules/@storybook/cli/node_modules/crypto-random-string/node_modules/type-fest": {
"version": "1.4.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
- "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=10"
},
@@ -13810,9 +12824,8 @@
},
"node_modules/@storybook/cli/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,
+ "license": "MIT",
"dependencies": {
"commondir": "^1.0.1",
"make-dir": "^3.0.2",
@@ -13827,9 +12840,8 @@
},
"node_modules/@storybook/cli/node_modules/find-cache-dir/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,
+ "license": "MIT",
"dependencies": {
"locate-path": "^5.0.0",
"path-exists": "^4.0.0"
@@ -13840,9 +12852,8 @@
},
"node_modules/@storybook/cli/node_modules/find-cache-dir/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,
+ "license": "MIT",
"dependencies": {
"find-up": "^4.0.0"
},
@@ -13852,9 +12863,8 @@
},
"node_modules/@storybook/cli/node_modules/fs-extra": {
"version": "11.2.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
- "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -13866,9 +12876,8 @@
},
"node_modules/@storybook/cli/node_modules/glob": {
"version": "10.4.2",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.2.tgz",
- "integrity": "sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"foreground-child": "^3.1.0",
"jackspeak": "^3.1.2",
@@ -13889,9 +12898,8 @@
},
"node_modules/@storybook/cli/node_modules/globby": {
"version": "14.0.1",
- "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.1.tgz",
- "integrity": "sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@sindresorhus/merge-streams": "^2.1.0",
"fast-glob": "^3.3.2",
@@ -13909,18 +12917,16 @@
},
"node_modules/@storybook/cli/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,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@storybook/cli/node_modules/is-stream": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
- "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
@@ -13930,9 +12936,8 @@
},
"node_modules/@storybook/cli/node_modules/jackspeak": {
"version": "3.4.0",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz",
- "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==",
"dev": true,
+ "license": "BlueOak-1.0.0",
"dependencies": {
"@isaacs/cliui": "^8.0.2"
},
@@ -13948,9 +12953,8 @@
},
"node_modules/@storybook/cli/node_modules/jscodeshift": {
"version": "0.15.2",
- "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.15.2.tgz",
- "integrity": "sha512-FquR7Okgmc4Sd0aEDwqho3rEiKR3BdvuG9jfdHjLJ6JQoWSMpavug3AoIfnfWhxFlf+5pzQh8qjqz0DWFrNQzA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/core": "^7.23.0",
"@babel/parser": "^7.23.0",
@@ -13987,9 +12991,8 @@
},
"node_modules/@storybook/cli/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,
+ "license": "MIT",
"dependencies": {
"p-locate": "^4.1.0"
},
@@ -13999,9 +13002,8 @@
},
"node_modules/@storybook/cli/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,
+ "license": "MIT",
"dependencies": {
"semver": "^6.0.0"
},
@@ -14014,18 +13016,16 @@
},
"node_modules/@storybook/cli/node_modules/make-dir/node_modules/semver": {
"version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/@storybook/cli/node_modules/minimatch": {
"version": "9.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
- "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"brace-expansion": "^2.0.1"
},
@@ -14038,18 +13038,16 @@
},
"node_modules/@storybook/cli/node_modules/minipass": {
"version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": ">=16 || 14 >=14.17"
}
},
"node_modules/@storybook/cli/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,
+ "license": "MIT",
"dependencies": {
"p-try": "^2.0.0"
},
@@ -14062,9 +13060,8 @@
},
"node_modules/@storybook/cli/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,
+ "license": "MIT",
"dependencies": {
"p-limit": "^2.2.0"
},
@@ -14074,18 +13071,16 @@
},
"node_modules/@storybook/cli/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,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@storybook/cli/node_modules/path-type": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz",
- "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -14095,9 +13090,8 @@
},
"node_modules/@storybook/cli/node_modules/prettier": {
"version": "3.3.2",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz",
- "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==",
"dev": true,
+ "license": "MIT",
"bin": {
"prettier": "bin/prettier.cjs"
},
@@ -14110,9 +13104,8 @@
},
"node_modules/@storybook/cli/node_modules/recast": {
"version": "0.23.9",
- "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.9.tgz",
- "integrity": "sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ast-types": "^0.16.1",
"esprima": "~4.0.0",
@@ -14126,9 +13119,8 @@
},
"node_modules/@storybook/cli/node_modules/slash": {
"version": "5.1.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz",
- "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=14.16"
},
@@ -14138,9 +13130,8 @@
},
"node_modules/@storybook/cli/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,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -14150,18 +13141,16 @@
},
"node_modules/@storybook/cli/node_modules/temp-dir": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-3.0.0.tgz",
- "integrity": "sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=14.16"
}
},
"node_modules/@storybook/cli/node_modules/tempy": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.1.0.tgz",
- "integrity": "sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-stream": "^3.0.0",
"temp-dir": "^3.0.0",
@@ -14177,9 +13166,8 @@
},
"node_modules/@storybook/cli/node_modules/type-fest": {
"version": "2.19.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
- "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=12.20"
},
@@ -14189,9 +13177,8 @@
},
"node_modules/@storybook/cli/node_modules/unique-string": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz",
- "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"crypto-random-string": "^4.0.0"
},
@@ -14204,9 +13191,8 @@
},
"node_modules/@storybook/cli/node_modules/util": {
"version": "0.12.5",
- "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
- "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"inherits": "^2.0.3",
"is-arguments": "^1.0.4",
@@ -14217,9 +13203,8 @@
},
"node_modules/@storybook/client-logger": {
"version": "8.1.6",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-8.1.6.tgz",
- "integrity": "sha512-QfSoUxS1rmrBzO7o99og9g+Gkm7sTmU5ZOpTkjszjlRqfV6/77eUnUOzUikej4LqPLmlJV5fqGuvoP0aNVksDw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/global": "^5.0.0"
},
@@ -14230,9 +13215,8 @@
},
"node_modules/@storybook/codemod": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-8.1.10.tgz",
- "integrity": "sha512-HZ/vrseP/sHfbO2RZpImP5eeqOakJ0X31BIiD4uxDBIKGltMXhlPKHTI93O2YGR+vbB33otoTVRjE+ZpPmC6SA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/core": "^7.24.4",
"@babel/preset-env": "^7.24.4",
@@ -14257,9 +13241,8 @@
},
"node_modules/@storybook/codemod/node_modules/@babel/traverse": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz",
- "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.24.7",
"@babel/generator": "^7.24.7",
@@ -14278,9 +13261,8 @@
},
"node_modules/@storybook/codemod/node_modules/@storybook/channels": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-8.1.10.tgz",
- "integrity": "sha512-CxZE4XrQoe+F+S2mo8Z9HTvFZKfKHIIiwYfoXKCryVp2U/z7ZKrely2PbfxWsrQvF3H0+oegfYYhYRHRiM21Zw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/client-logger": "8.1.10",
"@storybook/core-events": "8.1.10",
@@ -14295,9 +13277,8 @@
},
"node_modules/@storybook/codemod/node_modules/@storybook/client-logger": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-8.1.10.tgz",
- "integrity": "sha512-sVXCOo7jnlCgRPOcMlQGODAEt6ipPj+8xGkRUws0kie77qiDld1drLSB6R380dWc9lUrbv9E1GpxCd/Y4ZzSJQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/global": "^5.0.0"
},
@@ -14308,9 +13289,8 @@
},
"node_modules/@storybook/codemod/node_modules/@storybook/core-events": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-8.1.10.tgz",
- "integrity": "sha512-aS4zsBVyJds74+rAW0IfTEjULDCQwXecVpQfv11B8/89/07s3bOPssGGoTtCTaN4pHbduywE6MxbmFvTmXOFCA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/csf": "^0.1.7",
"ts-dedent": "^2.0.0"
@@ -14322,9 +13302,8 @@
},
"node_modules/@storybook/codemod/node_modules/@storybook/csf-tools": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-8.1.10.tgz",
- "integrity": "sha512-bm/J1jAJf1YaKhcXgOlsNN02sf8XvILXuVAvr9cFC3aFkxVoGbC2AKCss4cgXAd8EQxUNtyETkOcheB5mJ5IlA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/generator": "^7.24.4",
"@babel/parser": "^7.24.4",
@@ -14343,9 +13322,8 @@
},
"node_modules/@storybook/codemod/node_modules/@storybook/node-logger": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-8.1.10.tgz",
- "integrity": "sha512-djgbAROgGAvz/gr49egBxCHn1+rui57e76qa9aOMPzEBcxsGrnnKKp0uNdiNt4M7Xv6S2QHbJ2SfOlHhWmMeaA==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
@@ -14353,9 +13331,8 @@
},
"node_modules/@storybook/codemod/node_modules/@storybook/types": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-8.1.10.tgz",
- "integrity": "sha512-UJ97iqI+0Mk13I6ayd3TaBfSFBkWnEauwTnFMQe1dN/L3wTh8laOBaLa0Vr3utRSnt2b5hpcw/nq7azB/Gx4Yw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/channels": "8.1.10",
"@types/express": "^4.7.0",
@@ -14368,9 +13345,8 @@
},
"node_modules/@storybook/codemod/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,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -14383,9 +13359,8 @@
},
"node_modules/@storybook/codemod/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,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -14399,9 +13374,8 @@
},
"node_modules/@storybook/codemod/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,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -14411,15 +13385,13 @@
},
"node_modules/@storybook/codemod/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
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@storybook/codemod/node_modules/fs-extra": {
"version": "11.2.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
- "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -14431,9 +13403,8 @@
},
"node_modules/@storybook/codemod/node_modules/globby": {
"version": "14.0.1",
- "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.1.tgz",
- "integrity": "sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@sindresorhus/merge-streams": "^2.1.0",
"fast-glob": "^3.3.2",
@@ -14451,18 +13422,16 @@
},
"node_modules/@storybook/codemod/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,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@storybook/codemod/node_modules/jscodeshift": {
"version": "0.15.2",
- "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.15.2.tgz",
- "integrity": "sha512-FquR7Okgmc4Sd0aEDwqho3rEiKR3BdvuG9jfdHjLJ6JQoWSMpavug3AoIfnfWhxFlf+5pzQh8qjqz0DWFrNQzA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/core": "^7.23.0",
"@babel/parser": "^7.23.0",
@@ -14499,9 +13468,8 @@
},
"node_modules/@storybook/codemod/node_modules/path-type": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz",
- "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -14511,9 +13479,8 @@
},
"node_modules/@storybook/codemod/node_modules/prettier": {
"version": "3.3.2",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz",
- "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==",
"dev": true,
+ "license": "MIT",
"bin": {
"prettier": "bin/prettier.cjs"
},
@@ -14526,9 +13493,8 @@
},
"node_modules/@storybook/codemod/node_modules/recast": {
"version": "0.23.9",
- "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.9.tgz",
- "integrity": "sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ast-types": "^0.16.1",
"esprima": "~4.0.0",
@@ -14542,9 +13508,8 @@
},
"node_modules/@storybook/codemod/node_modules/slash": {
"version": "5.1.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz",
- "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=14.16"
},
@@ -14554,9 +13519,8 @@
},
"node_modules/@storybook/codemod/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,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -14566,9 +13530,8 @@
},
"node_modules/@storybook/components": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/components/-/components-8.1.10.tgz",
- "integrity": "sha512-fL2odC3Ct3NiFJEiGLmMNB3Tw3CdUDA/+va3Ka/JEhjaRhbsND2JgriHYmED8SnX9CCqwXoxl5QA8qwl+Oyolw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@radix-ui/react-dialog": "^1.0.5",
"@radix-ui/react-slot": "^1.0.2",
@@ -14592,9 +13555,8 @@
},
"node_modules/@storybook/components/node_modules/@storybook/channels": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-8.1.10.tgz",
- "integrity": "sha512-CxZE4XrQoe+F+S2mo8Z9HTvFZKfKHIIiwYfoXKCryVp2U/z7ZKrely2PbfxWsrQvF3H0+oegfYYhYRHRiM21Zw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/client-logger": "8.1.10",
"@storybook/core-events": "8.1.10",
@@ -14609,9 +13571,8 @@
},
"node_modules/@storybook/components/node_modules/@storybook/client-logger": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-8.1.10.tgz",
- "integrity": "sha512-sVXCOo7jnlCgRPOcMlQGODAEt6ipPj+8xGkRUws0kie77qiDld1drLSB6R380dWc9lUrbv9E1GpxCd/Y4ZzSJQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/global": "^5.0.0"
},
@@ -14622,9 +13583,8 @@
},
"node_modules/@storybook/components/node_modules/@storybook/core-events": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-8.1.10.tgz",
- "integrity": "sha512-aS4zsBVyJds74+rAW0IfTEjULDCQwXecVpQfv11B8/89/07s3bOPssGGoTtCTaN4pHbduywE6MxbmFvTmXOFCA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/csf": "^0.1.7",
"ts-dedent": "^2.0.0"
@@ -14636,9 +13596,8 @@
},
"node_modules/@storybook/components/node_modules/@storybook/types": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-8.1.10.tgz",
- "integrity": "sha512-UJ97iqI+0Mk13I6ayd3TaBfSFBkWnEauwTnFMQe1dN/L3wTh8laOBaLa0Vr3utRSnt2b5hpcw/nq7azB/Gx4Yw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/channels": "8.1.10",
"@types/express": "^4.7.0",
@@ -14651,9 +13610,8 @@
},
"node_modules/@storybook/core-common": {
"version": "8.1.6",
- "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-8.1.6.tgz",
- "integrity": "sha512-OTlfJFaTOB588ibXrrFm0TAXam6E5xV1VXSjNXL+fIifx8Kjln2HNSy1JKjvcblQneYiV4J1xPCVnAIe0EGHDg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/core-events": "8.1.6",
"@storybook/csf-tools": "8.1.6",
@@ -14700,9 +13658,8 @@
},
"node_modules/@storybook/core-common/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,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -14715,18 +13672,16 @@
},
"node_modules/@storybook/core-common/node_modules/brace-expansion": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
}
},
"node_modules/@storybook/core-common/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,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -14740,9 +13695,8 @@
},
"node_modules/@storybook/core-common/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,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -14752,15 +13706,13 @@
},
"node_modules/@storybook/core-common/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
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@storybook/core-common/node_modules/crypto-random-string": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz",
- "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"type-fest": "^1.0.1"
},
@@ -14773,9 +13725,8 @@
},
"node_modules/@storybook/core-common/node_modules/crypto-random-string/node_modules/type-fest": {
"version": "1.4.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
- "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=10"
},
@@ -14785,9 +13736,8 @@
},
"node_modules/@storybook/core-common/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,
+ "license": "MIT",
"dependencies": {
"commondir": "^1.0.1",
"make-dir": "^3.0.2",
@@ -14802,9 +13752,8 @@
},
"node_modules/@storybook/core-common/node_modules/find-cache-dir/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,
+ "license": "MIT",
"dependencies": {
"locate-path": "^5.0.0",
"path-exists": "^4.0.0"
@@ -14815,9 +13764,8 @@
},
"node_modules/@storybook/core-common/node_modules/find-cache-dir/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,
+ "license": "MIT",
"dependencies": {
"find-up": "^4.0.0"
},
@@ -14827,9 +13775,8 @@
},
"node_modules/@storybook/core-common/node_modules/fs-extra": {
"version": "11.2.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
- "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -14841,40 +13788,55 @@
},
"node_modules/@storybook/core-common/node_modules/glob": {
"version": "10.3.12",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz",
- "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"foreground-child": "^3.1.0",
- "jackspeak": "^3.1.2",
- "minimatch": "^9.0.4",
- "minipass": "^7.1.2",
- "path-scurry": "^1.11.1"
+ "jackspeak": "^2.3.6",
+ "minimatch": "^9.0.1",
+ "minipass": "^7.0.4",
+ "path-scurry": "^1.10.2"
},
"bin": {
"glob": "dist/esm/bin.mjs"
},
"engines": {
- "node": ">=16 || 14 >=14.18"
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@storybook/core-common/node_modules/glob/node_modules/jackspeak": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz",
+ "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==",
+ "dev": true,
+ "dependencies": {
+ "@isaacs/cliui": "^8.0.2"
+ },
+ "engines": {
+ "node": ">=14"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
+ },
+ "optionalDependencies": {
+ "@pkgjs/parseargs": "^0.11.0"
}
},
"node_modules/@storybook/core-common/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,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@storybook/core-common/node_modules/is-stream": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
- "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
@@ -14882,29 +13844,10 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@storybook/core-common/node_modules/jackspeak": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz",
- "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==",
- "dev": true,
- "dependencies": {
- "@isaacs/cliui": "^8.0.2"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- },
- "optionalDependencies": {
- "@pkgjs/parseargs": "^0.11.0"
- }
- },
"node_modules/@storybook/core-common/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,
+ "license": "MIT",
"dependencies": {
"p-locate": "^4.1.0"
},
@@ -14914,9 +13857,8 @@
},
"node_modules/@storybook/core-common/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,
+ "license": "MIT",
"dependencies": {
"semver": "^6.0.0"
},
@@ -14929,18 +13871,16 @@
},
"node_modules/@storybook/core-common/node_modules/make-dir/node_modules/semver": {
"version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/@storybook/core-common/node_modules/minimatch": {
"version": "9.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
- "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"brace-expansion": "^2.0.1"
},
@@ -14953,18 +13893,16 @@
},
"node_modules/@storybook/core-common/node_modules/minipass": {
"version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": ">=16 || 14 >=14.17"
}
},
"node_modules/@storybook/core-common/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,
+ "license": "MIT",
"dependencies": {
"p-try": "^2.0.0"
},
@@ -14977,9 +13915,8 @@
},
"node_modules/@storybook/core-common/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,
+ "license": "MIT",
"dependencies": {
"p-limit": "^2.2.0"
},
@@ -14989,18 +13926,16 @@
},
"node_modules/@storybook/core-common/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,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@storybook/core-common/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,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -15010,18 +13945,16 @@
},
"node_modules/@storybook/core-common/node_modules/temp-dir": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-3.0.0.tgz",
- "integrity": "sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=14.16"
}
},
"node_modules/@storybook/core-common/node_modules/tempy": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.1.0.tgz",
- "integrity": "sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-stream": "^3.0.0",
"temp-dir": "^3.0.0",
@@ -15037,9 +13970,8 @@
},
"node_modules/@storybook/core-common/node_modules/type-fest": {
"version": "2.19.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
- "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=12.20"
},
@@ -15049,9 +13981,8 @@
},
"node_modules/@storybook/core-common/node_modules/unique-string": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz",
- "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"crypto-random-string": "^4.0.0"
},
@@ -15064,9 +13995,8 @@
},
"node_modules/@storybook/core-common/node_modules/util": {
"version": "0.12.5",
- "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
- "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"inherits": "^2.0.3",
"is-arguments": "^1.0.4",
@@ -15077,9 +14007,8 @@
},
"node_modules/@storybook/core-events": {
"version": "8.1.6",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-8.1.6.tgz",
- "integrity": "sha512-DaIVe4TUp/7uQdSJYGmJv9S/S364tSgZ3S3dZ1vsf1rgoUbCp5kTBtcd/fcqgukMPREgCgO9oDhmemI3SLAqzw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/csf": "^0.1.7",
"ts-dedent": "^2.0.0"
@@ -15091,9 +14020,8 @@
},
"node_modules/@storybook/core-server": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-8.1.10.tgz",
- "integrity": "sha512-jNL5/daNyo7Rcu+y/bOmSB1P65pmcaLwvpr31EUEIISaAqvgruaneS3GKHg2TR0wcxEoHaM4abqhW6iwkI/XYQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@aw-web-design/x-default-browser": "1.4.126",
"@babel/core": "^7.24.4",
@@ -15148,9 +14076,8 @@
},
"node_modules/@storybook/core-server/node_modules/@babel/traverse": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz",
- "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.24.7",
"@babel/generator": "^7.24.7",
@@ -15169,9 +14096,8 @@
},
"node_modules/@storybook/core-server/node_modules/@storybook/channels": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-8.1.10.tgz",
- "integrity": "sha512-CxZE4XrQoe+F+S2mo8Z9HTvFZKfKHIIiwYfoXKCryVp2U/z7ZKrely2PbfxWsrQvF3H0+oegfYYhYRHRiM21Zw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/client-logger": "8.1.10",
"@storybook/core-events": "8.1.10",
@@ -15186,9 +14112,8 @@
},
"node_modules/@storybook/core-server/node_modules/@storybook/client-logger": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-8.1.10.tgz",
- "integrity": "sha512-sVXCOo7jnlCgRPOcMlQGODAEt6ipPj+8xGkRUws0kie77qiDld1drLSB6R380dWc9lUrbv9E1GpxCd/Y4ZzSJQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/global": "^5.0.0"
},
@@ -15199,9 +14124,8 @@
},
"node_modules/@storybook/core-server/node_modules/@storybook/core-common": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-8.1.10.tgz",
- "integrity": "sha512-+0GhgDRQwUlXu1lY77NdLnVBVycCEW0DG7eu7rvLYYkTyNRxbdl2RWsQpjr/j4sxqT6u82l9/b+RWpmsl4MgMQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/core-events": "8.1.10",
"@storybook/csf-tools": "8.1.10",
@@ -15248,9 +14172,8 @@
},
"node_modules/@storybook/core-server/node_modules/@storybook/core-events": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-8.1.10.tgz",
- "integrity": "sha512-aS4zsBVyJds74+rAW0IfTEjULDCQwXecVpQfv11B8/89/07s3bOPssGGoTtCTaN4pHbduywE6MxbmFvTmXOFCA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/csf": "^0.1.7",
"ts-dedent": "^2.0.0"
@@ -15262,9 +14185,8 @@
},
"node_modules/@storybook/core-server/node_modules/@storybook/csf-tools": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-8.1.10.tgz",
- "integrity": "sha512-bm/J1jAJf1YaKhcXgOlsNN02sf8XvILXuVAvr9cFC3aFkxVoGbC2AKCss4cgXAd8EQxUNtyETkOcheB5mJ5IlA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/generator": "^7.24.4",
"@babel/parser": "^7.24.4",
@@ -15283,9 +14205,8 @@
},
"node_modules/@storybook/core-server/node_modules/@storybook/node-logger": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-8.1.10.tgz",
- "integrity": "sha512-djgbAROgGAvz/gr49egBxCHn1+rui57e76qa9aOMPzEBcxsGrnnKKp0uNdiNt4M7Xv6S2QHbJ2SfOlHhWmMeaA==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
@@ -15293,9 +14214,8 @@
},
"node_modules/@storybook/core-server/node_modules/@storybook/preview-api": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-8.1.10.tgz",
- "integrity": "sha512-0Gl8WHDtp/srrA5uBYXl7YbC8kFQA7IxVmwWN7dIS7HAXu63JZ6JfxaFcfy+kCBfZSBD7spFG4J0f5JXRDYbpg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/channels": "8.1.10",
"@storybook/client-logger": "8.1.10",
@@ -15319,9 +14239,8 @@
},
"node_modules/@storybook/core-server/node_modules/@storybook/types": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-8.1.10.tgz",
- "integrity": "sha512-UJ97iqI+0Mk13I6ayd3TaBfSFBkWnEauwTnFMQe1dN/L3wTh8laOBaLa0Vr3utRSnt2b5hpcw/nq7azB/Gx4Yw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/channels": "8.1.10",
"@types/express": "^4.7.0",
@@ -15334,18 +14253,16 @@
},
"node_modules/@storybook/core-server/node_modules/@types/node": {
"version": "18.19.39",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.39.tgz",
- "integrity": "sha512-nPwTRDKUctxw3di5b4TfT3I0sWDiWoPQCZjXhvdkINntwr8lcoVCKsTgnXeRubKIlfnV+eN/HYk6Jb40tbcEAQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"undici-types": "~5.26.4"
}
},
"node_modules/@storybook/core-server/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,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -15358,18 +14275,16 @@
},
"node_modules/@storybook/core-server/node_modules/brace-expansion": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
}
},
"node_modules/@storybook/core-server/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,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -15383,9 +14298,8 @@
},
"node_modules/@storybook/core-server/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,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -15395,15 +14309,13 @@
},
"node_modules/@storybook/core-server/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
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@storybook/core-server/node_modules/crypto-random-string": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz",
- "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"type-fest": "^1.0.1"
},
@@ -15416,9 +14328,8 @@
},
"node_modules/@storybook/core-server/node_modules/crypto-random-string/node_modules/type-fest": {
"version": "1.4.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
- "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=10"
},
@@ -15428,18 +14339,16 @@
},
"node_modules/@storybook/core-server/node_modules/diff": {
"version": "5.2.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz",
- "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==",
"dev": true,
+ "license": "BSD-3-Clause",
"engines": {
"node": ">=0.3.1"
}
},
"node_modules/@storybook/core-server/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,
+ "license": "MIT",
"dependencies": {
"commondir": "^1.0.1",
"make-dir": "^3.0.2",
@@ -15454,9 +14363,8 @@
},
"node_modules/@storybook/core-server/node_modules/find-cache-dir/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,
+ "license": "MIT",
"dependencies": {
"locate-path": "^5.0.0",
"path-exists": "^4.0.0"
@@ -15467,9 +14375,8 @@
},
"node_modules/@storybook/core-server/node_modules/find-cache-dir/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,
+ "license": "MIT",
"dependencies": {
"find-up": "^4.0.0"
},
@@ -15479,9 +14386,8 @@
},
"node_modules/@storybook/core-server/node_modules/fs-extra": {
"version": "11.2.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
- "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -15493,9 +14399,8 @@
},
"node_modules/@storybook/core-server/node_modules/glob": {
"version": "10.4.2",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.2.tgz",
- "integrity": "sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"foreground-child": "^3.1.0",
"jackspeak": "^3.1.2",
@@ -15516,9 +14421,8 @@
},
"node_modules/@storybook/core-server/node_modules/globby": {
"version": "14.0.1",
- "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.1.tgz",
- "integrity": "sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@sindresorhus/merge-streams": "^2.1.0",
"fast-glob": "^3.3.2",
@@ -15536,18 +14440,16 @@
},
"node_modules/@storybook/core-server/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,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@storybook/core-server/node_modules/is-stream": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
- "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
@@ -15557,9 +14459,8 @@
},
"node_modules/@storybook/core-server/node_modules/jackspeak": {
"version": "3.4.0",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz",
- "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==",
"dev": true,
+ "license": "BlueOak-1.0.0",
"dependencies": {
"@isaacs/cliui": "^8.0.2"
},
@@ -15575,9 +14476,8 @@
},
"node_modules/@storybook/core-server/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,
+ "license": "MIT",
"dependencies": {
"p-locate": "^4.1.0"
},
@@ -15587,9 +14487,8 @@
},
"node_modules/@storybook/core-server/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,
+ "license": "MIT",
"dependencies": {
"semver": "^6.0.0"
},
@@ -15602,18 +14501,16 @@
},
"node_modules/@storybook/core-server/node_modules/make-dir/node_modules/semver": {
"version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/@storybook/core-server/node_modules/minimatch": {
"version": "9.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
- "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"brace-expansion": "^2.0.1"
},
@@ -15626,18 +14523,16 @@
},
"node_modules/@storybook/core-server/node_modules/minipass": {
"version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": ">=16 || 14 >=14.17"
}
},
"node_modules/@storybook/core-server/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,
+ "license": "MIT",
"dependencies": {
"p-try": "^2.0.0"
},
@@ -15650,9 +14545,8 @@
},
"node_modules/@storybook/core-server/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,
+ "license": "MIT",
"dependencies": {
"p-limit": "^2.2.0"
},
@@ -15662,18 +14556,16 @@
},
"node_modules/@storybook/core-server/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,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@storybook/core-server/node_modules/path-type": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz",
- "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -15683,9 +14575,8 @@
},
"node_modules/@storybook/core-server/node_modules/recast": {
"version": "0.23.9",
- "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.9.tgz",
- "integrity": "sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ast-types": "^0.16.1",
"esprima": "~4.0.0",
@@ -15699,9 +14590,8 @@
},
"node_modules/@storybook/core-server/node_modules/slash": {
"version": "5.1.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz",
- "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=14.16"
},
@@ -15711,9 +14601,8 @@
},
"node_modules/@storybook/core-server/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,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -15723,18 +14612,16 @@
},
"node_modules/@storybook/core-server/node_modules/temp-dir": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-3.0.0.tgz",
- "integrity": "sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=14.16"
}
},
"node_modules/@storybook/core-server/node_modules/tempy": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.1.0.tgz",
- "integrity": "sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-stream": "^3.0.0",
"temp-dir": "^3.0.0",
@@ -15750,9 +14637,8 @@
},
"node_modules/@storybook/core-server/node_modules/type-fest": {
"version": "2.19.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
- "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=12.20"
},
@@ -15762,9 +14648,8 @@
},
"node_modules/@storybook/core-server/node_modules/unique-string": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz",
- "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"crypto-random-string": "^4.0.0"
},
@@ -15777,9 +14662,8 @@
},
"node_modules/@storybook/core-server/node_modules/util": {
"version": "0.12.5",
- "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
- "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"inherits": "^2.0.3",
"is-arguments": "^1.0.4",
@@ -15790,9 +14674,8 @@
},
"node_modules/@storybook/core-webpack": {
"version": "8.1.6",
- "resolved": "https://registry.npmjs.org/@storybook/core-webpack/-/core-webpack-8.1.6.tgz",
- "integrity": "sha512-KjcAEDpHnX0M/7/hUckmZghvb+8FwrShQ2On92jkeL1HgKwzk9HUxFowMJAn1arYfkUT45q9g7HfqSmon36f5Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/core-common": "8.1.6",
"@storybook/node-logger": "8.1.6",
@@ -15807,27 +14690,24 @@
},
"node_modules/@storybook/core-webpack/node_modules/@types/node": {
"version": "18.19.34",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.34.tgz",
- "integrity": "sha512-eXF4pfBNV5DAMKGbI02NnDtWrQ40hAN558/2vvS4gMpMIxaf6JmD7YjnZbq0Q9TDSSkKBamime8ewRoomHdt4g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"undici-types": "~5.26.4"
}
},
"node_modules/@storybook/csf": {
"version": "0.1.9",
- "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.9.tgz",
- "integrity": "sha512-JlZ6v/iFn+iKohKGpYXnMeNeTiiAMeFoDhYnPLIC8GnyyIWqEI9wJYrOK9i9rxlJ8NZAH/ojGC/u/xVC41qSgQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"type-fest": "^2.19.0"
}
},
"node_modules/@storybook/csf-plugin": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-8.1.10.tgz",
- "integrity": "sha512-EwW9Olw85nKamUH/2YrkD+bxDvDP4TJ2MqS1qR3UU+lBP/HMQA2zFAgiW1TUmmdHmhAeiDOXbDhijxMa30sppQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/csf-tools": "8.1.10",
"unplugin": "^1.3.1"
@@ -15839,9 +14719,8 @@
},
"node_modules/@storybook/csf-plugin/node_modules/@babel/traverse": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz",
- "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.24.7",
"@babel/generator": "^7.24.7",
@@ -15860,9 +14739,8 @@
},
"node_modules/@storybook/csf-plugin/node_modules/@storybook/channels": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-8.1.10.tgz",
- "integrity": "sha512-CxZE4XrQoe+F+S2mo8Z9HTvFZKfKHIIiwYfoXKCryVp2U/z7ZKrely2PbfxWsrQvF3H0+oegfYYhYRHRiM21Zw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/client-logger": "8.1.10",
"@storybook/core-events": "8.1.10",
@@ -15877,9 +14755,8 @@
},
"node_modules/@storybook/csf-plugin/node_modules/@storybook/client-logger": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-8.1.10.tgz",
- "integrity": "sha512-sVXCOo7jnlCgRPOcMlQGODAEt6ipPj+8xGkRUws0kie77qiDld1drLSB6R380dWc9lUrbv9E1GpxCd/Y4ZzSJQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/global": "^5.0.0"
},
@@ -15890,9 +14767,8 @@
},
"node_modules/@storybook/csf-plugin/node_modules/@storybook/core-events": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-8.1.10.tgz",
- "integrity": "sha512-aS4zsBVyJds74+rAW0IfTEjULDCQwXecVpQfv11B8/89/07s3bOPssGGoTtCTaN4pHbduywE6MxbmFvTmXOFCA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/csf": "^0.1.7",
"ts-dedent": "^2.0.0"
@@ -15904,9 +14780,8 @@
},
"node_modules/@storybook/csf-plugin/node_modules/@storybook/csf-tools": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-8.1.10.tgz",
- "integrity": "sha512-bm/J1jAJf1YaKhcXgOlsNN02sf8XvILXuVAvr9cFC3aFkxVoGbC2AKCss4cgXAd8EQxUNtyETkOcheB5mJ5IlA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/generator": "^7.24.4",
"@babel/parser": "^7.24.4",
@@ -15925,9 +14800,8 @@
},
"node_modules/@storybook/csf-plugin/node_modules/@storybook/types": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-8.1.10.tgz",
- "integrity": "sha512-UJ97iqI+0Mk13I6ayd3TaBfSFBkWnEauwTnFMQe1dN/L3wTh8laOBaLa0Vr3utRSnt2b5hpcw/nq7azB/Gx4Yw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/channels": "8.1.10",
"@types/express": "^4.7.0",
@@ -15940,9 +14814,8 @@
},
"node_modules/@storybook/csf-plugin/node_modules/fs-extra": {
"version": "11.2.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
- "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -15954,9 +14827,8 @@
},
"node_modules/@storybook/csf-plugin/node_modules/recast": {
"version": "0.23.9",
- "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.9.tgz",
- "integrity": "sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ast-types": "^0.16.1",
"esprima": "~4.0.0",
@@ -15970,9 +14842,8 @@
},
"node_modules/@storybook/csf-tools": {
"version": "8.1.6",
- "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-8.1.6.tgz",
- "integrity": "sha512-jrKfHFNhiLBhWWW4/fm2wgKEVg55e6QuYUHY16KGd7PdPuzm+2Pt7jIl5V9yIj6a59YbjeMpT6jWPKbFx2TuCw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/generator": "^7.24.4",
"@babel/parser": "^7.24.4",
@@ -15991,9 +14862,8 @@
},
"node_modules/@storybook/csf-tools/node_modules/@babel/traverse": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz",
- "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.24.7",
"@babel/generator": "^7.24.7",
@@ -16012,9 +14882,8 @@
},
"node_modules/@storybook/csf-tools/node_modules/fs-extra": {
"version": "11.2.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
- "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -16026,9 +14895,8 @@
},
"node_modules/@storybook/csf-tools/node_modules/recast": {
"version": "0.23.9",
- "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.9.tgz",
- "integrity": "sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ast-types": "^0.16.1",
"esprima": "~4.0.0",
@@ -16042,9 +14910,8 @@
},
"node_modules/@storybook/csf/node_modules/type-fest": {
"version": "2.19.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
- "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=12.20"
},
@@ -16054,15 +14921,13 @@
},
"node_modules/@storybook/docs-mdx": {
"version": "3.1.0-next.0",
- "resolved": "https://registry.npmjs.org/@storybook/docs-mdx/-/docs-mdx-3.1.0-next.0.tgz",
- "integrity": "sha512-t4syFIeSyufieNovZbLruPt2DmRKpbwL4fERCZ1MifWDRIORCKLc4NCEHy+IqvIqd71/SJV2k4B51nF7vlJfmQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@storybook/docs-tools": {
"version": "8.1.6",
- "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-8.1.6.tgz",
- "integrity": "sha512-IhqQHSJ5nEBEJ162P/6/6c45toLinWpAkB7pwbAoP00djZSzfHNdQ4HfpZSGfD4GUJIvzsqMzUlyqCKLAoRPPA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/core-common": "8.1.6",
"@storybook/core-events": "8.1.6",
@@ -16080,9 +14945,8 @@
},
"node_modules/@storybook/docs-tools/node_modules/assert": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz",
- "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"call-bind": "^1.0.2",
"is-nan": "^1.3.2",
@@ -16093,9 +14957,8 @@
},
"node_modules/@storybook/docs-tools/node_modules/util": {
"version": "0.12.5",
- "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
- "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"inherits": "^2.0.3",
"is-arguments": "^1.0.4",
@@ -16106,15 +14969,13 @@
},
"node_modules/@storybook/global": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/@storybook/global/-/global-5.0.0.tgz",
- "integrity": "sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@storybook/icons": {
"version": "1.2.9",
- "resolved": "https://registry.npmjs.org/@storybook/icons/-/icons-1.2.9.tgz",
- "integrity": "sha512-cOmylsz25SYXaJL/gvTk/dl3pyk7yBFRfeXTsHvTA3dfhoU/LWSq0NKL9nM7WBasJyn6XPSGnLS4RtKXLw5EUg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=14.0.0"
},
@@ -16125,9 +14986,8 @@
},
"node_modules/@storybook/manager": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-8.1.10.tgz",
- "integrity": "sha512-dQmRBfT4CABIPhv0kL25qKcQk2SiU5mIZ1DuVzckIbZW+iYEOAusyJ/0HExM9leCrymaW3BgZGlHbIXL7EvZtw==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
@@ -16135,9 +14995,8 @@
},
"node_modules/@storybook/manager-api": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-8.1.10.tgz",
- "integrity": "sha512-9aZ+zoNrTo1BJskVmCKE/yqlBXmWaKVZh1W/+/xu3WL9wdm/tBlozRvQwegIZlRVvUOxtjOg28Vd2hySYL58zg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/channels": "8.1.10",
"@storybook/client-logger": "8.1.10",
@@ -16162,9 +15021,8 @@
},
"node_modules/@storybook/manager-api/node_modules/@storybook/channels": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-8.1.10.tgz",
- "integrity": "sha512-CxZE4XrQoe+F+S2mo8Z9HTvFZKfKHIIiwYfoXKCryVp2U/z7ZKrely2PbfxWsrQvF3H0+oegfYYhYRHRiM21Zw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/client-logger": "8.1.10",
"@storybook/core-events": "8.1.10",
@@ -16179,9 +15037,8 @@
},
"node_modules/@storybook/manager-api/node_modules/@storybook/client-logger": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-8.1.10.tgz",
- "integrity": "sha512-sVXCOo7jnlCgRPOcMlQGODAEt6ipPj+8xGkRUws0kie77qiDld1drLSB6R380dWc9lUrbv9E1GpxCd/Y4ZzSJQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/global": "^5.0.0"
},
@@ -16192,9 +15049,8 @@
},
"node_modules/@storybook/manager-api/node_modules/@storybook/core-events": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-8.1.10.tgz",
- "integrity": "sha512-aS4zsBVyJds74+rAW0IfTEjULDCQwXecVpQfv11B8/89/07s3bOPssGGoTtCTaN4pHbduywE6MxbmFvTmXOFCA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/csf": "^0.1.7",
"ts-dedent": "^2.0.0"
@@ -16206,9 +15062,8 @@
},
"node_modules/@storybook/manager-api/node_modules/@storybook/types": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-8.1.10.tgz",
- "integrity": "sha512-UJ97iqI+0Mk13I6ayd3TaBfSFBkWnEauwTnFMQe1dN/L3wTh8laOBaLa0Vr3utRSnt2b5hpcw/nq7azB/Gx4Yw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/channels": "8.1.10",
"@types/express": "^4.7.0",
@@ -16221,9 +15076,8 @@
},
"node_modules/@storybook/node-logger": {
"version": "8.1.6",
- "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-8.1.6.tgz",
- "integrity": "sha512-IZEiTLFHu8Oom/vdEGpisSw5CfU+cw6/fTaX1P3EVClFOWVuy8/3X5MPu4wJH3jPym6E2DBduIUFeRsiuq61gA==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
@@ -16231,9 +15085,8 @@
},
"node_modules/@storybook/preset-react-webpack": {
"version": "8.1.6",
- "resolved": "https://registry.npmjs.org/@storybook/preset-react-webpack/-/preset-react-webpack-8.1.6.tgz",
- "integrity": "sha512-5x5h30Nm8pTguiWAS/Vb1mYSIsoNs2JydXCekIKOVd752Iq+/cDQio6A7gIE6zbtPgfofoa7fuvweiuT6NG2bw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/core-webpack": "8.1.6",
"@storybook/docs-tools": "8.1.6",
@@ -16270,9 +15123,8 @@
},
"node_modules/@storybook/preset-react-webpack/node_modules/@storybook/react": {
"version": "8.1.6",
- "resolved": "https://registry.npmjs.org/@storybook/react/-/react-8.1.6.tgz",
- "integrity": "sha512-2CSc3MLeaY7QaYAQLwaXRboKkgQnWrSZAo/WTJcSHUr2YFxH5+iECB0Kci12GqaJklhhgmfTfVZ4Jo9ZJ6LQfg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/client-logger": "8.1.6",
"@storybook/docs-tools": "8.1.6",
@@ -16316,9 +15168,8 @@
},
"node_modules/@storybook/preset-react-webpack/node_modules/@storybook/react-dom-shim": {
"version": "8.1.6",
- "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-8.1.6.tgz",
- "integrity": "sha512-qP5nkAmpGFy/gshO+bVjRo1rgo/6UVDElgOd2dlUtYnfdPONiOfWko2XGYKKfxa6Cp7KU35JlZz/kHGqWG31zQ==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
@@ -16330,18 +15181,16 @@
},
"node_modules/@storybook/preset-react-webpack/node_modules/@types/node": {
"version": "18.19.30",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.30.tgz",
- "integrity": "sha512-453z1zPuJLVDbyahaa1sSD5C2sht6ZpHp5rgJNs+H8YGqhluCXcuOUmBYsAo0Tos0cHySJ3lVUGbGgLlqIkpyg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"undici-types": "~5.26.4"
}
},
"node_modules/@storybook/preset-react-webpack/node_modules/fs-extra": {
"version": "11.2.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
- "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -16353,9 +15202,8 @@
},
"node_modules/@storybook/preset-react-webpack/node_modules/type-fest": {
"version": "2.19.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
- "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=12.20"
},
@@ -16365,9 +15213,8 @@
},
"node_modules/@storybook/preview": {
"version": "8.1.6",
- "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-8.1.6.tgz",
- "integrity": "sha512-o9OgOmO10GyX1ZC7WiapYqGdst4TOCPLqWSu3H2nL4ZT7BQLUQfCy30kyoMO7KyxCgc5K5rcqG7qZ/N0tfUgRg==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
@@ -16375,9 +15222,8 @@
},
"node_modules/@storybook/preview-api": {
"version": "8.1.6",
- "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-8.1.6.tgz",
- "integrity": "sha512-g9EvVg/DYqmjMh1uivJBJnSIvURyuK4LLabYicQNmYdQJscAeXX2bpMcA4aeci9BBm9B2RP7JbSnq7DbXZaJYA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/channels": "8.1.6",
"@storybook/client-logger": "8.1.6",
@@ -16401,9 +15247,8 @@
},
"node_modules/@storybook/react": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/react/-/react-8.1.10.tgz",
- "integrity": "sha512-y0ycq19tTLLk+4rB+nfCPCtoFBWC0QvmMaJY32dbAjWPk+UNFGhWdqjg0oP1NwXYL18WnhRzlyz1Rojw0aXk1w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/client-logger": "8.1.10",
"@storybook/docs-tools": "8.1.10",
@@ -16447,9 +15292,8 @@
},
"node_modules/@storybook/react-docgen-typescript-plugin": {
"version": "1.0.6--canary.9.0c3f3b7.0",
- "resolved": "https://registry.npmjs.org/@storybook/react-docgen-typescript-plugin/-/react-docgen-typescript-plugin-1.0.6--canary.9.0c3f3b7.0.tgz",
- "integrity": "sha512-KUqXC3oa9JuQ0kZJLBhVdS4lOneKTOopnNBK4tUAgoxWQ3u/IjzdueZjFr7gyBrXMoU6duutk3RQR9u8ZpYJ4Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"debug": "^4.1.1",
"endent": "^2.0.1",
@@ -16466,9 +15310,8 @@
},
"node_modules/@storybook/react-docgen-typescript-plugin/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,
+ "license": "MIT",
"dependencies": {
"commondir": "^1.0.1",
"make-dir": "^3.0.2",
@@ -16483,9 +15326,8 @@
},
"node_modules/@storybook/react-docgen-typescript-plugin/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,
+ "license": "MIT",
"dependencies": {
"locate-path": "^5.0.0",
"path-exists": "^4.0.0"
@@ -16496,9 +15338,8 @@
},
"node_modules/@storybook/react-docgen-typescript-plugin/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,
+ "license": "MIT",
"dependencies": {
"p-locate": "^4.1.0"
},
@@ -16508,9 +15349,8 @@
},
"node_modules/@storybook/react-docgen-typescript-plugin/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,
+ "license": "MIT",
"dependencies": {
"semver": "^6.0.0"
},
@@ -16523,9 +15363,8 @@
},
"node_modules/@storybook/react-docgen-typescript-plugin/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,
+ "license": "MIT",
"dependencies": {
"p-try": "^2.0.0"
},
@@ -16538,9 +15377,8 @@
},
"node_modules/@storybook/react-docgen-typescript-plugin/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,
+ "license": "MIT",
"dependencies": {
"p-limit": "^2.2.0"
},
@@ -16550,18 +15388,16 @@
},
"node_modules/@storybook/react-docgen-typescript-plugin/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,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@storybook/react-docgen-typescript-plugin/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,
+ "license": "MIT",
"dependencies": {
"find-up": "^4.0.0"
},
@@ -16571,18 +15407,16 @@
},
"node_modules/@storybook/react-docgen-typescript-plugin/node_modules/semver": {
"version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/@storybook/react-dom-shim": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-8.1.10.tgz",
- "integrity": "sha512-+HS75Pq8jb3xkVq0hK33D84aGfbJCURRB+GN2vfTMmmjguQt7z2+MnGqRgrUCt6h2rxU3VdPg9OBnYi/UC0Zrg==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
@@ -16594,9 +15428,8 @@
},
"node_modules/@storybook/react-webpack5": {
"version": "8.1.6",
- "resolved": "https://registry.npmjs.org/@storybook/react-webpack5/-/react-webpack5-8.1.6.tgz",
- "integrity": "sha512-jpRpa85efcv+9Kl1vIuwz+QC/Ug522Tx3oAT2FZTc1ZdIBrjeT+jY0tmEDjemRuadFMpjHvrXyW1HDItP5groQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/builder-webpack5": "8.1.6",
"@storybook/preset-react-webpack": "8.1.6",
@@ -16624,9 +15457,8 @@
},
"node_modules/@storybook/react-webpack5/node_modules/@storybook/react": {
"version": "8.1.6",
- "resolved": "https://registry.npmjs.org/@storybook/react/-/react-8.1.6.tgz",
- "integrity": "sha512-2CSc3MLeaY7QaYAQLwaXRboKkgQnWrSZAo/WTJcSHUr2YFxH5+iECB0Kci12GqaJklhhgmfTfVZ4Jo9ZJ6LQfg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/client-logger": "8.1.6",
"@storybook/docs-tools": "8.1.6",
@@ -16670,9 +15502,8 @@
},
"node_modules/@storybook/react-webpack5/node_modules/@storybook/react-dom-shim": {
"version": "8.1.6",
- "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-8.1.6.tgz",
- "integrity": "sha512-qP5nkAmpGFy/gshO+bVjRo1rgo/6UVDElgOd2dlUtYnfdPONiOfWko2XGYKKfxa6Cp7KU35JlZz/kHGqWG31zQ==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
@@ -16684,18 +15515,16 @@
},
"node_modules/@storybook/react-webpack5/node_modules/@types/node": {
"version": "18.19.28",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.28.tgz",
- "integrity": "sha512-J5cOGD9n4x3YGgVuaND6khm5x07MMdAKkRyXnjVR6KFhLMNh2yONGiP7Z+4+tBOt5mK+GvDTiacTOVGGpqiecw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"undici-types": "~5.26.4"
}
},
"node_modules/@storybook/react-webpack5/node_modules/type-fest": {
"version": "2.19.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
- "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=12.20"
},
@@ -16705,9 +15534,8 @@
},
"node_modules/@storybook/react/node_modules/@babel/traverse": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz",
- "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.24.7",
"@babel/generator": "^7.24.7",
@@ -16726,9 +15554,8 @@
},
"node_modules/@storybook/react/node_modules/@storybook/channels": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-8.1.10.tgz",
- "integrity": "sha512-CxZE4XrQoe+F+S2mo8Z9HTvFZKfKHIIiwYfoXKCryVp2U/z7ZKrely2PbfxWsrQvF3H0+oegfYYhYRHRiM21Zw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/client-logger": "8.1.10",
"@storybook/core-events": "8.1.10",
@@ -16743,9 +15570,8 @@
},
"node_modules/@storybook/react/node_modules/@storybook/client-logger": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-8.1.10.tgz",
- "integrity": "sha512-sVXCOo7jnlCgRPOcMlQGODAEt6ipPj+8xGkRUws0kie77qiDld1drLSB6R380dWc9lUrbv9E1GpxCd/Y4ZzSJQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/global": "^5.0.0"
},
@@ -16756,9 +15582,8 @@
},
"node_modules/@storybook/react/node_modules/@storybook/core-common": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-8.1.10.tgz",
- "integrity": "sha512-+0GhgDRQwUlXu1lY77NdLnVBVycCEW0DG7eu7rvLYYkTyNRxbdl2RWsQpjr/j4sxqT6u82l9/b+RWpmsl4MgMQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/core-events": "8.1.10",
"@storybook/csf-tools": "8.1.10",
@@ -16805,9 +15630,8 @@
},
"node_modules/@storybook/react/node_modules/@storybook/core-events": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-8.1.10.tgz",
- "integrity": "sha512-aS4zsBVyJds74+rAW0IfTEjULDCQwXecVpQfv11B8/89/07s3bOPssGGoTtCTaN4pHbduywE6MxbmFvTmXOFCA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/csf": "^0.1.7",
"ts-dedent": "^2.0.0"
@@ -16819,9 +15643,8 @@
},
"node_modules/@storybook/react/node_modules/@storybook/csf-tools": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-8.1.10.tgz",
- "integrity": "sha512-bm/J1jAJf1YaKhcXgOlsNN02sf8XvILXuVAvr9cFC3aFkxVoGbC2AKCss4cgXAd8EQxUNtyETkOcheB5mJ5IlA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/generator": "^7.24.4",
"@babel/parser": "^7.24.4",
@@ -16840,9 +15663,8 @@
},
"node_modules/@storybook/react/node_modules/@storybook/docs-tools": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-8.1.10.tgz",
- "integrity": "sha512-FsO/+L9CrUfAIbm9cdH9UpjTusT7L5RZxN4WCXkiF5SpAVyBoY8kar3RzTZVoh4aQxt1yGWYC+SZGjgf++xa4g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/core-common": "8.1.10",
"@storybook/core-events": "8.1.10",
@@ -16860,9 +15682,8 @@
},
"node_modules/@storybook/react/node_modules/@storybook/node-logger": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-8.1.10.tgz",
- "integrity": "sha512-djgbAROgGAvz/gr49egBxCHn1+rui57e76qa9aOMPzEBcxsGrnnKKp0uNdiNt4M7Xv6S2QHbJ2SfOlHhWmMeaA==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
@@ -16870,9 +15691,8 @@
},
"node_modules/@storybook/react/node_modules/@storybook/preview-api": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-8.1.10.tgz",
- "integrity": "sha512-0Gl8WHDtp/srrA5uBYXl7YbC8kFQA7IxVmwWN7dIS7HAXu63JZ6JfxaFcfy+kCBfZSBD7spFG4J0f5JXRDYbpg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/channels": "8.1.10",
"@storybook/client-logger": "8.1.10",
@@ -16896,9 +15716,8 @@
},
"node_modules/@storybook/react/node_modules/@storybook/types": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-8.1.10.tgz",
- "integrity": "sha512-UJ97iqI+0Mk13I6ayd3TaBfSFBkWnEauwTnFMQe1dN/L3wTh8laOBaLa0Vr3utRSnt2b5hpcw/nq7azB/Gx4Yw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/channels": "8.1.10",
"@types/express": "^4.7.0",
@@ -16911,18 +15730,16 @@
},
"node_modules/@storybook/react/node_modules/@types/node": {
"version": "18.19.39",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.39.tgz",
- "integrity": "sha512-nPwTRDKUctxw3di5b4TfT3I0sWDiWoPQCZjXhvdkINntwr8lcoVCKsTgnXeRubKIlfnV+eN/HYk6Jb40tbcEAQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"undici-types": "~5.26.4"
}
},
"node_modules/@storybook/react/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,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -16935,9 +15752,8 @@
},
"node_modules/@storybook/react/node_modules/assert": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz",
- "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"call-bind": "^1.0.2",
"is-nan": "^1.3.2",
@@ -16948,18 +15764,16 @@
},
"node_modules/@storybook/react/node_modules/brace-expansion": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
}
},
"node_modules/@storybook/react/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,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -16973,9 +15787,8 @@
},
"node_modules/@storybook/react/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,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -16985,15 +15798,13 @@
},
"node_modules/@storybook/react/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
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@storybook/react/node_modules/crypto-random-string": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz",
- "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"type-fest": "^1.0.1"
},
@@ -17006,9 +15817,8 @@
},
"node_modules/@storybook/react/node_modules/crypto-random-string/node_modules/type-fest": {
"version": "1.4.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
- "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=10"
},
@@ -17018,9 +15828,8 @@
},
"node_modules/@storybook/react/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,
+ "license": "MIT",
"dependencies": {
"commondir": "^1.0.1",
"make-dir": "^3.0.2",
@@ -17035,9 +15844,8 @@
},
"node_modules/@storybook/react/node_modules/find-cache-dir/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,
+ "license": "MIT",
"dependencies": {
"locate-path": "^5.0.0",
"path-exists": "^4.0.0"
@@ -17048,9 +15856,8 @@
},
"node_modules/@storybook/react/node_modules/find-cache-dir/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,
+ "license": "MIT",
"dependencies": {
"find-up": "^4.0.0"
},
@@ -17060,9 +15867,8 @@
},
"node_modules/@storybook/react/node_modules/fs-extra": {
"version": "11.2.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
- "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -17074,9 +15880,8 @@
},
"node_modules/@storybook/react/node_modules/glob": {
"version": "10.4.2",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.2.tgz",
- "integrity": "sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"foreground-child": "^3.1.0",
"jackspeak": "^3.1.2",
@@ -17097,18 +15902,16 @@
},
"node_modules/@storybook/react/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,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@storybook/react/node_modules/is-stream": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
- "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
@@ -17118,9 +15921,8 @@
},
"node_modules/@storybook/react/node_modules/jackspeak": {
"version": "3.4.0",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz",
- "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==",
"dev": true,
+ "license": "BlueOak-1.0.0",
"dependencies": {
"@isaacs/cliui": "^8.0.2"
},
@@ -17136,9 +15938,8 @@
},
"node_modules/@storybook/react/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,
+ "license": "MIT",
"dependencies": {
"p-locate": "^4.1.0"
},
@@ -17148,9 +15949,8 @@
},
"node_modules/@storybook/react/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,
+ "license": "MIT",
"dependencies": {
"semver": "^6.0.0"
},
@@ -17163,18 +15963,16 @@
},
"node_modules/@storybook/react/node_modules/make-dir/node_modules/semver": {
"version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/@storybook/react/node_modules/minimatch": {
"version": "9.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
- "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"brace-expansion": "^2.0.1"
},
@@ -17187,18 +15985,16 @@
},
"node_modules/@storybook/react/node_modules/minipass": {
"version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": ">=16 || 14 >=14.17"
}
},
"node_modules/@storybook/react/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,
+ "license": "MIT",
"dependencies": {
"p-try": "^2.0.0"
},
@@ -17211,9 +16007,8 @@
},
"node_modules/@storybook/react/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,
+ "license": "MIT",
"dependencies": {
"p-limit": "^2.2.0"
},
@@ -17223,18 +16018,16 @@
},
"node_modules/@storybook/react/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,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@storybook/react/node_modules/recast": {
"version": "0.23.9",
- "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.9.tgz",
- "integrity": "sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ast-types": "^0.16.1",
"esprima": "~4.0.0",
@@ -17248,9 +16041,8 @@
},
"node_modules/@storybook/react/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,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -17260,18 +16052,16 @@
},
"node_modules/@storybook/react/node_modules/temp-dir": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-3.0.0.tgz",
- "integrity": "sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=14.16"
}
},
"node_modules/@storybook/react/node_modules/tempy": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.1.0.tgz",
- "integrity": "sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-stream": "^3.0.0",
"temp-dir": "^3.0.0",
@@ -17287,9 +16077,8 @@
},
"node_modules/@storybook/react/node_modules/type-fest": {
"version": "2.19.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
- "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=12.20"
},
@@ -17299,9 +16088,8 @@
},
"node_modules/@storybook/react/node_modules/unique-string": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz",
- "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"crypto-random-string": "^4.0.0"
},
@@ -17314,9 +16102,8 @@
},
"node_modules/@storybook/react/node_modules/util": {
"version": "0.12.5",
- "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
- "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"inherits": "^2.0.3",
"is-arguments": "^1.0.4",
@@ -17327,9 +16114,8 @@
},
"node_modules/@storybook/router": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/router/-/router-8.1.10.tgz",
- "integrity": "sha512-JDEgZ0vVDx0GLz+dKD+R1xqWwjqsCdA2F+s3/si7upHqkFRWU5ocextZ63oKsRnCoaeUh6OavAU4EdkrKiQtQw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/client-logger": "8.1.10",
"memoizerific": "^1.11.3",
@@ -17342,9 +16128,8 @@
},
"node_modules/@storybook/router/node_modules/@storybook/client-logger": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-8.1.10.tgz",
- "integrity": "sha512-sVXCOo7jnlCgRPOcMlQGODAEt6ipPj+8xGkRUws0kie77qiDld1drLSB6R380dWc9lUrbv9E1GpxCd/Y4ZzSJQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/global": "^5.0.0"
},
@@ -17355,9 +16140,8 @@
},
"node_modules/@storybook/telemetry": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-8.1.10.tgz",
- "integrity": "sha512-pwiMWrq85D0AnaAgYNfB2w2BDgqnetQ+tXwsUAw4fUEFwA4oPU6r0uqekRbNNE6wmSSYjiiFP3JgknBFqjd2hg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/client-logger": "8.1.10",
"@storybook/core-common": "8.1.10",
@@ -17375,9 +16159,8 @@
},
"node_modules/@storybook/telemetry/node_modules/@babel/traverse": {
"version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz",
- "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.24.7",
"@babel/generator": "^7.24.7",
@@ -17396,9 +16179,8 @@
},
"node_modules/@storybook/telemetry/node_modules/@storybook/channels": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-8.1.10.tgz",
- "integrity": "sha512-CxZE4XrQoe+F+S2mo8Z9HTvFZKfKHIIiwYfoXKCryVp2U/z7ZKrely2PbfxWsrQvF3H0+oegfYYhYRHRiM21Zw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/client-logger": "8.1.10",
"@storybook/core-events": "8.1.10",
@@ -17413,9 +16195,8 @@
},
"node_modules/@storybook/telemetry/node_modules/@storybook/client-logger": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-8.1.10.tgz",
- "integrity": "sha512-sVXCOo7jnlCgRPOcMlQGODAEt6ipPj+8xGkRUws0kie77qiDld1drLSB6R380dWc9lUrbv9E1GpxCd/Y4ZzSJQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/global": "^5.0.0"
},
@@ -17426,9 +16207,8 @@
},
"node_modules/@storybook/telemetry/node_modules/@storybook/core-common": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-8.1.10.tgz",
- "integrity": "sha512-+0GhgDRQwUlXu1lY77NdLnVBVycCEW0DG7eu7rvLYYkTyNRxbdl2RWsQpjr/j4sxqT6u82l9/b+RWpmsl4MgMQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/core-events": "8.1.10",
"@storybook/csf-tools": "8.1.10",
@@ -17475,9 +16255,8 @@
},
"node_modules/@storybook/telemetry/node_modules/@storybook/core-events": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-8.1.10.tgz",
- "integrity": "sha512-aS4zsBVyJds74+rAW0IfTEjULDCQwXecVpQfv11B8/89/07s3bOPssGGoTtCTaN4pHbduywE6MxbmFvTmXOFCA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/csf": "^0.1.7",
"ts-dedent": "^2.0.0"
@@ -17489,9 +16268,8 @@
},
"node_modules/@storybook/telemetry/node_modules/@storybook/csf-tools": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-8.1.10.tgz",
- "integrity": "sha512-bm/J1jAJf1YaKhcXgOlsNN02sf8XvILXuVAvr9cFC3aFkxVoGbC2AKCss4cgXAd8EQxUNtyETkOcheB5mJ5IlA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/generator": "^7.24.4",
"@babel/parser": "^7.24.4",
@@ -17510,9 +16288,8 @@
},
"node_modules/@storybook/telemetry/node_modules/@storybook/node-logger": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-8.1.10.tgz",
- "integrity": "sha512-djgbAROgGAvz/gr49egBxCHn1+rui57e76qa9aOMPzEBcxsGrnnKKp0uNdiNt4M7Xv6S2QHbJ2SfOlHhWmMeaA==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
@@ -17520,9 +16297,8 @@
},
"node_modules/@storybook/telemetry/node_modules/@storybook/types": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-8.1.10.tgz",
- "integrity": "sha512-UJ97iqI+0Mk13I6ayd3TaBfSFBkWnEauwTnFMQe1dN/L3wTh8laOBaLa0Vr3utRSnt2b5hpcw/nq7azB/Gx4Yw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/channels": "8.1.10",
"@types/express": "^4.7.0",
@@ -17535,9 +16311,8 @@
},
"node_modules/@storybook/telemetry/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,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -17550,18 +16325,16 @@
},
"node_modules/@storybook/telemetry/node_modules/brace-expansion": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
}
},
"node_modules/@storybook/telemetry/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,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -17575,9 +16348,8 @@
},
"node_modules/@storybook/telemetry/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,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -17587,15 +16359,13 @@
},
"node_modules/@storybook/telemetry/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
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@storybook/telemetry/node_modules/crypto-random-string": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz",
- "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"type-fest": "^1.0.1"
},
@@ -17608,9 +16378,8 @@
},
"node_modules/@storybook/telemetry/node_modules/crypto-random-string/node_modules/type-fest": {
"version": "1.4.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
- "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=10"
},
@@ -17620,9 +16389,8 @@
},
"node_modules/@storybook/telemetry/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,
+ "license": "MIT",
"dependencies": {
"commondir": "^1.0.1",
"make-dir": "^3.0.2",
@@ -17637,9 +16405,8 @@
},
"node_modules/@storybook/telemetry/node_modules/find-cache-dir/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,
+ "license": "MIT",
"dependencies": {
"locate-path": "^5.0.0",
"path-exists": "^4.0.0"
@@ -17650,9 +16417,8 @@
},
"node_modules/@storybook/telemetry/node_modules/find-cache-dir/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,
+ "license": "MIT",
"dependencies": {
"find-up": "^4.0.0"
},
@@ -17662,9 +16428,8 @@
},
"node_modules/@storybook/telemetry/node_modules/fs-extra": {
"version": "11.2.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
- "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -17676,9 +16441,8 @@
},
"node_modules/@storybook/telemetry/node_modules/glob": {
"version": "10.4.2",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.2.tgz",
- "integrity": "sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"foreground-child": "^3.1.0",
"jackspeak": "^3.1.2",
@@ -17699,18 +16463,16 @@
},
"node_modules/@storybook/telemetry/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,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@storybook/telemetry/node_modules/is-stream": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
- "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
@@ -17720,9 +16482,8 @@
},
"node_modules/@storybook/telemetry/node_modules/jackspeak": {
"version": "3.4.0",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz",
- "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==",
"dev": true,
+ "license": "BlueOak-1.0.0",
"dependencies": {
"@isaacs/cliui": "^8.0.2"
},
@@ -17738,9 +16499,8 @@
},
"node_modules/@storybook/telemetry/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,
+ "license": "MIT",
"dependencies": {
"p-locate": "^4.1.0"
},
@@ -17750,9 +16510,8 @@
},
"node_modules/@storybook/telemetry/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,
+ "license": "MIT",
"dependencies": {
"semver": "^6.0.0"
},
@@ -17765,18 +16524,16 @@
},
"node_modules/@storybook/telemetry/node_modules/make-dir/node_modules/semver": {
"version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/@storybook/telemetry/node_modules/minimatch": {
"version": "9.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
- "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"brace-expansion": "^2.0.1"
},
@@ -17789,18 +16546,16 @@
},
"node_modules/@storybook/telemetry/node_modules/minipass": {
"version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": ">=16 || 14 >=14.17"
}
},
"node_modules/@storybook/telemetry/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,
+ "license": "MIT",
"dependencies": {
"p-try": "^2.0.0"
},
@@ -17813,9 +16568,8 @@
},
"node_modules/@storybook/telemetry/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,
+ "license": "MIT",
"dependencies": {
"p-limit": "^2.2.0"
},
@@ -17825,18 +16579,16 @@
},
"node_modules/@storybook/telemetry/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,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@storybook/telemetry/node_modules/recast": {
"version": "0.23.9",
- "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.9.tgz",
- "integrity": "sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ast-types": "^0.16.1",
"esprima": "~4.0.0",
@@ -17850,9 +16602,8 @@
},
"node_modules/@storybook/telemetry/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,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -17862,18 +16613,16 @@
},
"node_modules/@storybook/telemetry/node_modules/temp-dir": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-3.0.0.tgz",
- "integrity": "sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=14.16"
}
},
"node_modules/@storybook/telemetry/node_modules/tempy": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.1.0.tgz",
- "integrity": "sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-stream": "^3.0.0",
"temp-dir": "^3.0.0",
@@ -17889,9 +16638,8 @@
},
"node_modules/@storybook/telemetry/node_modules/type-fest": {
"version": "2.19.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
- "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=12.20"
},
@@ -17901,9 +16649,8 @@
},
"node_modules/@storybook/telemetry/node_modules/unique-string": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz",
- "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"crypto-random-string": "^4.0.0"
},
@@ -17916,9 +16663,8 @@
},
"node_modules/@storybook/telemetry/node_modules/util": {
"version": "0.12.5",
- "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
- "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"inherits": "^2.0.3",
"is-arguments": "^1.0.4",
@@ -17929,9 +16675,8 @@
},
"node_modules/@storybook/theming": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-8.1.10.tgz",
- "integrity": "sha512-W7mth4hwdTqWLneqYCyUnIEiDg4vSokoad8HEodPz6JC9XUPUX3Yi2W4W3xFvqrW4Z5RXfuJ53iG2HN+0AgaQw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@emotion/use-insertion-effect-with-fallbacks": "^1.0.1",
"@storybook/client-logger": "8.1.10",
@@ -17957,9 +16702,8 @@
},
"node_modules/@storybook/theming/node_modules/@storybook/client-logger": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-8.1.10.tgz",
- "integrity": "sha512-sVXCOo7jnlCgRPOcMlQGODAEt6ipPj+8xGkRUws0kie77qiDld1drLSB6R380dWc9lUrbv9E1GpxCd/Y4ZzSJQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/global": "^5.0.0"
},
@@ -17970,9 +16714,8 @@
},
"node_modules/@storybook/types": {
"version": "8.1.6",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-8.1.6.tgz",
- "integrity": "sha512-cWpS9+x1pxCO39spR8QmumMK2ub2p5cvMtrRvWaIjBFPbCwm2CvjBXFWIra2veBCZTxUKJ9VWxvi7pzRHjN/nw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/channels": "8.1.6",
"@types/express": "^4.7.0",
@@ -18579,8 +17322,7 @@
},
"node_modules/@types/babel__core": {
"version": "7.20.5",
- "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
- "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
+ "license": "MIT",
"dependencies": {
"@babel/parser": "^7.20.7",
"@babel/types": "^7.20.7",
@@ -18622,9 +17364,8 @@
},
"node_modules/@types/bonjour": {
"version": "3.5.13",
- "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz",
- "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/node": "*"
}
@@ -18663,9 +17404,8 @@
},
"node_modules/@types/connect-history-api-fallback": {
"version": "1.5.4",
- "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz",
- "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/express-serve-static-core": "*",
"@types/node": "*"
@@ -18673,56 +17413,50 @@
},
"node_modules/@types/cross-spawn": {
"version": "6.0.6",
- "resolved": "https://registry.npmjs.org/@types/cross-spawn/-/cross-spawn-6.0.6.tgz",
- "integrity": "sha512-fXRhhUkG4H3TQk5dBhQ7m/JDdSNHKwR2BBia62lhwEIq9xGiQKLxd6LymNhn47SjXhsUEPmxi+PKw2OkW4LLjA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/debug": {
"version": "4.1.12",
+ "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz",
+ "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@types/ms": "*"
}
},
"node_modules/@types/detect-port": {
"version": "1.3.5",
- "resolved": "https://registry.npmjs.org/@types/detect-port/-/detect-port-1.3.5.tgz",
- "integrity": "sha512-Rf3/lB9WkDfIL9eEKaSYKc+1L/rNVYBjThk22JTqQw0YozXarX8YljFAz+HCoC6h4B4KwCMsBPZHaFezwT4BNA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/diff": {
"version": "5.2.1",
- "resolved": "https://registry.npmjs.org/@types/diff/-/diff-5.2.1.tgz",
- "integrity": "sha512-uxpcuwWJGhe2AR1g8hD9F5OYGCqjqWnBUQFD8gMZsDbv8oPHzxJF6iMO6n8Tk0AdzlxoaaoQhOYlIg/PukVU8g==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/doctrine": {
"version": "0.0.3",
- "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz",
- "integrity": "sha512-w5jZ0ee+HaPOaX25X2/2oGR/7rgAQSYII7X7pp0m9KgBfMP7uKfMfTvcpl5Dj+eDBbpxKGiqE+flqDr6XTd2RA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/ejs": {
"version": "3.1.5",
- "resolved": "https://registry.npmjs.org/@types/ejs/-/ejs-3.1.5.tgz",
- "integrity": "sha512-nv+GSx77ZtXiJzwKdsASqi+YQ5Z7vwHsTP0JY2SiQgjGckkBRKZnk8nIM+7oUZ1VCtuTz0+By4qVR7fqzp/Dfg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/emscripten": {
"version": "1.39.10",
- "resolved": "https://registry.npmjs.org/@types/emscripten/-/emscripten-1.39.10.tgz",
- "integrity": "sha512-TB/6hBkYQJxsZHSqyeuO1Jt0AB/bW6G7rHt9g7lML7SOF6lbgcHvw/Lr+69iqN0qxgXLhWKScAon73JNnptuDw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/escodegen": {
"version": "0.0.6",
- "resolved": "https://registry.npmjs.org/@types/escodegen/-/escodegen-0.0.6.tgz",
- "integrity": "sha512-AjwI4MvWx3HAOaZqYsjKWyEObT9lcVV0Y0V8nXo6cXzN8ZiMxVhf6F3d/UNvXVGKrEzL/Dluc5p+y9GkzlTWig==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/eslint": {
"version": "8.4.6",
@@ -18746,9 +17480,8 @@
},
"node_modules/@types/express": {
"version": "4.17.21",
- "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz",
- "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/body-parser": "*",
"@types/express-serve-static-core": "^4.17.33",
@@ -18758,9 +17491,8 @@
},
"node_modules/@types/express-serve-static-core": {
"version": "4.19.0",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.0.tgz",
- "integrity": "sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/node": "*",
"@types/qs": "*",
@@ -18770,8 +17502,9 @@
},
"node_modules/@types/fs-extra": {
"version": "9.0.13",
+ "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz",
+ "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@types/node": "*"
}
@@ -18791,8 +17524,7 @@
},
"node_modules/@types/graceful-fs": {
"version": "4.1.9",
- "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz",
- "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==",
+ "license": "MIT",
"dependencies": {
"@types/node": "*"
}
@@ -18803,9 +17535,8 @@
},
"node_modules/@types/hast": {
"version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz",
- "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/unist": "*"
}
@@ -18829,9 +17560,8 @@
},
"node_modules/@types/http-errors": {
"version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz",
- "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/http-proxy": {
"version": "1.17.9",
@@ -18916,9 +17646,8 @@
},
"node_modules/@types/json5": {
"version": "0.0.29",
- "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
- "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/keyv": {
"version": "3.1.4",
@@ -18942,15 +17671,13 @@
},
"node_modules/@types/mdx": {
"version": "2.0.13",
- "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz",
- "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/mime": {
"version": "1.3.5",
- "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz",
- "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/minimatch": {
"version": "3.0.5",
@@ -18959,8 +17686,9 @@
},
"node_modules/@types/ms": {
"version": "0.7.34",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz",
+ "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==",
+ "dev": true
},
"node_modules/@types/node": {
"version": "20.11.5",
@@ -18971,17 +17699,15 @@
},
"node_modules/@types/node-forge": {
"version": "1.3.11",
- "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz",
- "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==",
+ "license": "MIT",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/normalize-package-data": {
"version": "2.4.4",
- "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz",
- "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/parse-json": {
"version": "4.0.0",
@@ -18990,8 +17716,9 @@
},
"node_modules/@types/plist": {
"version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/@types/plist/-/plist-3.0.5.tgz",
+ "integrity": "sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA==",
"dev": true,
- "license": "MIT",
"optional": true,
"dependencies": {
"@types/node": "*",
@@ -19000,9 +17727,8 @@
},
"node_modules/@types/pretty-hrtime": {
"version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@types/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz",
- "integrity": "sha512-nj39q0wAIdhwn7DGUyT9irmsKK1tV0bd5WFEhgpqNTMFZ8cE+jieuTphCW0tfdm47S2zVT5mr09B28b1chmQMA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/prop-types": {
"version": "15.7.5",
@@ -19067,9 +17793,8 @@
},
"node_modules/@types/react-is": {
"version": "18.3.0",
- "resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-18.3.0.tgz",
- "integrity": "sha512-KZJpHUkAdzyKj/kUHJDc6N7KyidftICufJfOFpiG6haL/BDQNQt5i4n1XDUL/nDZAtGLHDSWRYpLzKTAKSvX6w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/react": "*"
}
@@ -19103,9 +17828,8 @@
},
"node_modules/@types/resolve": {
"version": "1.20.6",
- "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.6.tgz",
- "integrity": "sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/responselike": {
"version": "1.0.0",
@@ -19117,9 +17841,8 @@
},
"node_modules/@types/retry": {
"version": "0.12.2",
- "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz",
- "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/scheduler": {
"version": "0.16.2",
@@ -19132,9 +17855,8 @@
},
"node_modules/@types/send": {
"version": "0.17.4",
- "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz",
- "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/mime": "^1",
"@types/node": "*"
@@ -19142,18 +17864,16 @@
},
"node_modules/@types/serve-index": {
"version": "1.9.4",
- "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz",
- "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/express": "*"
}
},
"node_modules/@types/serve-static": {
"version": "1.15.7",
- "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz",
- "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/http-errors": "*",
"@types/node": "*",
@@ -19167,15 +17887,13 @@
},
"node_modules/@types/shimmer": {
"version": "1.0.5",
- "resolved": "https://registry.npmjs.org/@types/shimmer/-/shimmer-1.0.5.tgz",
- "integrity": "sha512-9Hp0ObzwwO57DpLFF0InUjUm/II8GmKAvzbefxQTihCb7KI6yc9yzf0nLc4mVdby5N4DRCgQM2wCup9KTieeww==",
+ "license": "MIT",
"peer": true
},
"node_modules/@types/sockjs": {
"version": "0.3.36",
- "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz",
- "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/node": "*"
}
@@ -19190,9 +17908,8 @@
},
"node_modules/@types/unist": {
"version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
- "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/urijs": {
"version": "1.19.19",
@@ -19200,14 +17917,14 @@
},
"node_modules/@types/uuid": {
"version": "9.0.8",
- "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz",
- "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/verror": {
- "version": "1.10.9",
+ "version": "1.10.10",
+ "resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.10.tgz",
+ "integrity": "sha512-l4MM0Jppn18hb9xmM6wwD1uTdShpf9Pn80aXTStnK1C94gtPvJcV2FrDmbOQUAQfJ1cKZHktkQUDwEqaAKXMMg==",
"dev": true,
- "license": "MIT",
"optional": true
},
"node_modules/@types/webpack": {
@@ -19232,17 +17949,14 @@
},
"node_modules/@types/ws": {
"version": "8.5.10",
- "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz",
- "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/yargs": {
"version": "17.0.32",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz",
- "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==",
"license": "MIT",
"dependencies": {
"@types/yargs-parser": "*"
@@ -19250,8 +17964,6 @@
},
"node_modules/@types/yargs-parser": {
"version": "21.0.3",
- "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
- "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==",
"license": "MIT"
},
"node_modules/@types/yauzl": {
@@ -19265,9 +17977,8 @@
},
"node_modules/@typescript-eslint/eslint-plugin": {
"version": "7.13.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.13.1.tgz",
- "integrity": "sha512-kZqi+WZQaZfPKnsflLJQCz6Ze9FFSMfXrrIOcyargekQxG37ES7DJNpJUE9Q/X5n3yTIP/WPutVNzgknQ7biLg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@eslint-community/regexpp": "^4.10.0",
"@typescript-eslint/scope-manager": "7.13.1",
@@ -19298,9 +18009,8 @@
},
"node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": {
"version": "7.13.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.13.1.tgz",
- "integrity": "sha512-h5MzFBD5a/Gh/fvNdp9pTfqJAbuQC4sCN2WzuXme71lqFJsZtLbjxfSk4r3p02WIArOF9N94pdsLiGutpDbrXQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
"@typescript-eslint/scope-manager": "7.13.1",
@@ -19320,9 +18030,8 @@
},
"node_modules/@typescript-eslint/parser": {
"version": "7.13.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.13.1.tgz",
- "integrity": "sha512-1ELDPlnLvDQ5ybTSrMhRTFDfOQEOXNM+eP+3HT/Yq7ruWpciQw+Avi73pdEbA4SooCawEWo3dtYbF68gN7Ed1A==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"@typescript-eslint/scope-manager": "7.13.1",
"@typescript-eslint/types": "7.13.1",
@@ -19348,9 +18057,8 @@
},
"node_modules/@typescript-eslint/scope-manager": {
"version": "7.13.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.13.1.tgz",
- "integrity": "sha512-adbXNVEs6GmbzaCpymHQ0MB6E4TqoiVbC0iqG3uijR8ZYfpAXMGttouQzF4Oat3P2GxDVIrg7bMI/P65LiQZdg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@typescript-eslint/types": "7.13.1",
"@typescript-eslint/visitor-keys": "7.13.1"
@@ -19365,9 +18073,8 @@
},
"node_modules/@typescript-eslint/type-utils": {
"version": "7.13.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.13.1.tgz",
- "integrity": "sha512-aWDbLu1s9bmgPGXSzNCxELu+0+HQOapV/y+60gPXafR8e2g1Bifxzevaa+4L2ytCWm+CHqpELq4CSoN9ELiwCg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@typescript-eslint/typescript-estree": "7.13.1",
"@typescript-eslint/utils": "7.13.1",
@@ -19392,9 +18099,8 @@
},
"node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": {
"version": "7.13.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.13.1.tgz",
- "integrity": "sha512-h5MzFBD5a/Gh/fvNdp9pTfqJAbuQC4sCN2WzuXme71lqFJsZtLbjxfSk4r3p02WIArOF9N94pdsLiGutpDbrXQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
"@typescript-eslint/scope-manager": "7.13.1",
@@ -19414,9 +18120,8 @@
},
"node_modules/@typescript-eslint/types": {
"version": "7.13.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.13.1.tgz",
- "integrity": "sha512-7K7HMcSQIAND6RBL4kDl24sG/xKM13cA85dc7JnmQXw2cBDngg7c19B++JzvJHRG3zG36n9j1i451GBzRuHchw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^18.18.0 || >=20.0.0"
},
@@ -19427,9 +18132,8 @@
},
"node_modules/@typescript-eslint/typescript-estree": {
"version": "7.13.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.13.1.tgz",
- "integrity": "sha512-uxNr51CMV7npU1BxZzYjoVz9iyjckBduFBP0S5sLlh1tXYzHzgZ3BR9SVsNed+LmwKrmnqN3Kdl5t7eZ5TS1Yw==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"@typescript-eslint/types": "7.13.1",
"@typescript-eslint/visitor-keys": "7.13.1",
@@ -19455,18 +18159,16 @@
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
}
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
"version": "9.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
- "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"brace-expansion": "^2.0.1"
},
@@ -19479,9 +18181,8 @@
},
"node_modules/@typescript-eslint/utils": {
"version": "5.62.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz",
- "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@types/json-schema": "^7.0.9",
@@ -19505,9 +18206,8 @@
},
"node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": {
"version": "5.62.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz",
- "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@typescript-eslint/types": "5.62.0",
"@typescript-eslint/visitor-keys": "5.62.0"
@@ -19522,9 +18222,8 @@
},
"node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": {
"version": "5.62.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz",
- "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
@@ -19535,9 +18234,8 @@
},
"node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": {
"version": "5.62.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz",
- "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"@typescript-eslint/types": "5.62.0",
"@typescript-eslint/visitor-keys": "5.62.0",
@@ -19562,9 +18260,8 @@
},
"node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": {
"version": "5.62.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz",
- "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@typescript-eslint/types": "5.62.0",
"eslint-visitor-keys": "^3.3.0"
@@ -19579,9 +18276,8 @@
},
"node_modules/@typescript-eslint/utils/node_modules/eslint-visitor-keys": {
"version": "3.4.3",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
@@ -19591,9 +18287,8 @@
},
"node_modules/@typescript-eslint/visitor-keys": {
"version": "7.13.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.13.1.tgz",
- "integrity": "sha512-k/Bfne7lrP7hcb7m9zSsgcBmo+8eicqqfNAJ7uUY+jkTFpKeH2FSkWpFRtimBxgkyvqfu9jTPRbYOvud6isdXA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@typescript-eslint/types": "7.13.1",
"eslint-visitor-keys": "^3.4.3"
@@ -19608,9 +18303,8 @@
},
"node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": {
"version": "3.4.3",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
@@ -19620,8 +18314,7 @@
},
"node_modules/@ua/react-native-airship": {
"version": "17.2.1",
- "resolved": "https://registry.npmjs.org/@ua/react-native-airship/-/react-native-airship-17.2.1.tgz",
- "integrity": "sha512-+C5fuPU4MMEpN7I5NbrR8F8awPyaHC732ONxMAZhrjVbfNVuZlpCwptz1xmiRkfiH/nzxhF5uvf+CiOKVYamPQ==",
+ "license": "Apache-2.0",
"engines": {
"node": ">= 16.0.0"
},
@@ -19632,14 +18325,12 @@
},
"node_modules/@ungap/structured-clone": {
"version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
- "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/@urql/core": {
"version": "2.3.6",
- "resolved": "https://registry.npmjs.org/@urql/core/-/core-2.3.6.tgz",
- "integrity": "sha512-PUxhtBh7/8167HJK6WqBv6Z0piuiaZHQGYbhwpNL9aIQmLROPEdaUYkY4wh45wPQXcTpnd11l0q3Pw+TI11pdw==",
+ "license": "MIT",
"dependencies": {
"@graphql-typed-document-node/core": "^3.1.0",
"wonka": "^4.0.14"
@@ -19650,8 +18341,7 @@
},
"node_modules/@urql/exchange-retry": {
"version": "0.3.0",
- "resolved": "https://registry.npmjs.org/@urql/exchange-retry/-/exchange-retry-0.3.0.tgz",
- "integrity": "sha512-hHqer2mcdVC0eYnVNbWyi28AlGOPb2vjH3lP3/Bc8Lc8BjhMsDwFMm7WhoP5C1+cfbr/QJ6Er3H/L08wznXxfg==",
+ "license": "MIT",
"dependencies": {
"@urql/core": ">=2.3.1",
"wonka": "^4.0.14"
@@ -19849,9 +18539,8 @@
},
"node_modules/@webpack-cli/configtest": {
"version": "2.1.1",
- "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz",
- "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=14.15.0"
},
@@ -19862,9 +18551,8 @@
},
"node_modules/@webpack-cli/info": {
"version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz",
- "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=14.15.0"
},
@@ -19875,9 +18563,8 @@
},
"node_modules/@webpack-cli/serve": {
"version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz",
- "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=14.15.0"
},
@@ -19919,9 +18606,8 @@
},
"node_modules/@yarnpkg/esbuild-plugin-pnp": {
"version": "3.0.0-rc.15",
- "resolved": "https://registry.npmjs.org/@yarnpkg/esbuild-plugin-pnp/-/esbuild-plugin-pnp-3.0.0-rc.15.tgz",
- "integrity": "sha512-kYzDJO5CA9sy+on/s2aIW0411AklfCi8Ck/4QDivOqsMKpStZA2SsR+X27VTggGwpStWaLrjJcDcdDMowtG8MA==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"tslib": "^2.4.0"
},
@@ -19934,9 +18620,8 @@
},
"node_modules/@yarnpkg/fslib": {
"version": "2.10.3",
- "resolved": "https://registry.npmjs.org/@yarnpkg/fslib/-/fslib-2.10.3.tgz",
- "integrity": "sha512-41H+Ga78xT9sHvWLlFOZLIhtU6mTGZ20pZ29EiZa97vnxdohJD2AF42rCoAoWfqUz486xY6fhjMH+DYEM9r14A==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"@yarnpkg/libzip": "^2.3.0",
"tslib": "^1.13.0"
@@ -19947,15 +18632,13 @@
},
"node_modules/@yarnpkg/fslib/node_modules/tslib": {
"version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
+ "dev": true,
+ "license": "0BSD"
},
"node_modules/@yarnpkg/libzip": {
"version": "2.3.0",
- "resolved": "https://registry.npmjs.org/@yarnpkg/libzip/-/libzip-2.3.0.tgz",
- "integrity": "sha512-6xm38yGVIa6mKm/DUCF2zFFJhERh/QWp1ufm4cNUvxsONBmfPg8uZ9pZBdOmF6qFGr/HlT6ABBkCSx/dlEtvWg==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"@types/emscripten": "^1.39.6",
"tslib": "^1.13.0"
@@ -19966,21 +18649,19 @@
},
"node_modules/@yarnpkg/libzip/node_modules/tslib": {
"version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
+ "dev": true,
+ "license": "0BSD"
},
"node_modules/@yarnpkg/lockfile": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz",
- "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==",
"dev": true,
"license": "BSD-2-Clause"
},
"node_modules/7zip-bin": {
"version": "5.2.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.2.0.tgz",
+ "integrity": "sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A==",
+ "dev": true
},
"node_modules/abab": {
"version": "2.0.6",
@@ -19988,8 +18669,8 @@
},
"node_modules/abbrev": {
"version": "1.1.1",
- "license": "ISC",
- "optional": true
+ "devOptional": true,
+ "license": "ISC"
},
"node_modules/abort-controller": {
"version": "3.0.0",
@@ -20083,9 +18764,8 @@
},
"node_modules/address": {
"version": "1.2.2",
- "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz",
- "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 10.0.0"
}
@@ -20107,10 +18787,21 @@
"node": ">= 6.0.0"
}
},
+ "node_modules/agentkeepalive": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz",
+ "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==",
+ "dev": true,
+ "dependencies": {
+ "humanize-ms": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 8.0.0"
+ }
+ },
"node_modules/aggregate-error": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
- "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
+ "license": "MIT",
"dependencies": {
"clean-stack": "^2.0.0",
"indent-string": "^4.0.0"
@@ -20232,8 +18923,7 @@
},
"node_modules/ansi-fragments": {
"version": "0.2.1",
- "resolved": "https://registry.npmjs.org/ansi-fragments/-/ansi-fragments-0.2.1.tgz",
- "integrity": "sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==",
+ "license": "MIT",
"dependencies": {
"colorette": "^1.0.7",
"slice-ansi": "^2.0.0",
@@ -20242,24 +18932,21 @@
},
"node_modules/ansi-fragments/node_modules/astral-regex": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
- "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/ansi-fragments/node_modules/is-fullwidth-code-point": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/ansi-fragments/node_modules/slice-ansi": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
- "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^3.2.0",
"astral-regex": "^1.0.0",
@@ -20271,8 +18958,7 @@
},
"node_modules/ansi-fragments/node_modules/strip-ansi": {
"version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "license": "MIT",
"dependencies": {
"ansi-regex": "^4.1.0"
},
@@ -20324,29 +19010,32 @@
}
},
"node_modules/app-builder-bin": {
- "version": "4.0.0",
- "dev": true,
- "license": "MIT"
+ "version": "5.0.0-alpha.4",
+ "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-5.0.0-alpha.4.tgz",
+ "integrity": "sha512-4MitKmOtfTdMONrtRoiaqJ6HtlVZXgrNX1PNdEzEHSAoXU85x7s+mo0IhAS9K9qgjyTVuLrM1E/HAMp5qGyoOA==",
+ "dev": true
},
"node_modules/app-builder-lib": {
- "version": "24.13.2",
+ "version": "25.0.0",
+ "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-25.0.0.tgz",
+ "integrity": "sha512-GIx0n/QvbeObY8rQTTp08UPn4pS9xSGZLq6cPRy/CyX/mTNN9pO/uU28MWgqjnYXk0bf/595vzDdAijuDyz5Zw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@develar/schema-utils": "~2.6.5",
- "@electron/notarize": "2.2.1",
- "@electron/osx-sign": "1.0.5",
- "@electron/universal": "1.5.1",
+ "@electron/notarize": "2.3.2",
+ "@electron/osx-sign": "1.3.0",
+ "@electron/rebuild": "3.6.0",
+ "@electron/universal": "2.0.1",
"@malept/flatpak-bundler": "^0.4.0",
"@types/fs-extra": "9.0.13",
"async-exit-hook": "^2.0.1",
"bluebird-lst": "^1.0.9",
- "builder-util": "24.13.1",
- "builder-util-runtime": "9.2.4",
+ "builder-util": "25.0.0",
+ "builder-util-runtime": "9.2.5",
"chromium-pickle-js": "^0.2.0",
"debug": "^4.3.4",
"ejs": "^3.1.8",
- "electron-publish": "24.13.1",
+ "electron-publish": "25.0.0",
"form-data": "^4.0.0",
"fs-extra": "^10.1.0",
"hosted-git-info": "^4.1.0",
@@ -20354,8 +19043,9 @@
"isbinaryfile": "^5.0.0",
"js-yaml": "^4.1.0",
"lazy-val": "^1.0.5",
- "minimatch": "^5.1.1",
- "read-config-file": "6.3.2",
+ "minimatch": "^10.0.0",
+ "read-config-file": "6.4.0",
+ "resedit": "^1.7.0",
"sanitize-filename": "^1.6.3",
"semver": "^7.3.8",
"tar": "^6.1.12",
@@ -20365,27 +19055,30 @@
"node": ">=14.0.0"
},
"peerDependencies": {
- "dmg-builder": "24.13.2",
- "electron-builder-squirrel-windows": "24.13.2"
+ "dmg-builder": "25.0.0",
+ "electron-builder-squirrel-windows": "25.0.0"
}
},
"node_modules/app-builder-lib/node_modules/argparse": {
"version": "2.0.1",
- "dev": true,
- "license": "Python-2.0"
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
},
"node_modules/app-builder-lib/node_modules/brace-expansion": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
}
},
"node_modules/app-builder-lib/node_modules/form-data": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
"dev": true,
- "license": "MIT",
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
@@ -20397,8 +19090,9 @@
},
"node_modules/app-builder-lib/node_modules/fs-extra": {
"version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
+ "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -20410,8 +19104,9 @@
},
"node_modules/app-builder-lib/node_modules/js-yaml": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
},
@@ -20420,36 +19115,36 @@
}
},
"node_modules/app-builder-lib/node_modules/minimatch": {
- "version": "5.1.6",
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz",
+ "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==",
"dev": true,
- "license": "ISC",
"dependencies": {
"brace-expansion": "^2.0.1"
},
"engines": {
- "node": ">=10"
+ "node": "20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/app-root-dir": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/app-root-dir/-/app-root-dir-1.0.2.tgz",
- "integrity": "sha512-jlpIfsOoNoafl92Sz//64uQHGSyMrD2vYG5d8o2a4qGvyNCvXur7bzIsWtAC/6flI2RYAp3kv8rsfBtaLm7w0g==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/appdirsjs": {
"version": "1.2.7",
- "resolved": "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.7.tgz",
- "integrity": "sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw=="
+ "license": "MIT"
},
"node_modules/application-config-path": {
"version": "0.1.1",
- "resolved": "https://registry.npmjs.org/application-config-path/-/application-config-path-0.1.1.tgz",
- "integrity": "sha512-zy9cHePtMP0YhwG+CfHm0bgwdnga2X3gZexpdCwEj//dpb+TKajtiC8REEUJUSq6Ab4f9cgNy2l8ObXzCXFkEw=="
+ "license": "MIT"
},
"node_modules/applicationinsights": {
"version": "2.7.3",
- "resolved": "https://registry.npmjs.org/applicationinsights/-/applicationinsights-2.7.3.tgz",
- "integrity": "sha512-JY8+kTEkjbA+kAVNWDtpfW2lqsrDALfDXuxOs74KLPu2y13fy/9WB52V4LfYVTVcW1/jYOXjTxNS2gPZIDh1iw==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@azure/core-auth": "^1.5.0",
@@ -20480,13 +19175,14 @@
},
"node_modules/aproba": {
"version": "1.2.0",
- "license": "ISC",
- "optional": true
+ "devOptional": true,
+ "license": "ISC"
},
"node_modules/archiver": {
"version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.2.tgz",
+ "integrity": "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"archiver-utils": "^2.1.0",
@@ -20503,8 +19199,9 @@
},
"node_modules/archiver-utils": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz",
+ "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"glob": "^7.1.4",
@@ -20524,8 +19221,9 @@
},
"node_modules/archiver/node_modules/readable-stream": {
"version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"inherits": "^2.0.3",
@@ -20583,9 +19281,8 @@
},
"node_modules/aria-hidden": {
"version": "1.2.4",
- "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz",
- "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"tslib": "^2.0.0"
},
@@ -20595,9 +19292,8 @@
},
"node_modules/aria-query": {
"version": "5.3.0",
- "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz",
- "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"dequal": "^2.0.3"
}
@@ -20627,8 +19323,7 @@
},
"node_modules/array-buffer-byte-length": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz",
- "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==",
+ "license": "MIT",
"dependencies": {
"call-bind": "^1.0.5",
"is-array-buffer": "^3.0.4"
@@ -20750,8 +19445,7 @@
},
"node_modules/arraybuffer.prototype.slice": {
"version": "1.0.3",
- "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz",
- "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==",
+ "license": "MIT",
"dependencies": {
"array-buffer-byte-length": "^1.0.1",
"call-bind": "^1.0.5",
@@ -20801,8 +19495,9 @@
},
"node_modules/assert-plus": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
"dev": true,
- "license": "MIT",
"optional": true,
"engines": {
"node": ">=0.8"
@@ -20828,9 +19523,8 @@
},
"node_modules/ast-types": {
"version": "0.16.1",
- "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.16.1.tgz",
- "integrity": "sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"tslib": "^2.0.1"
},
@@ -20845,8 +19539,9 @@
},
"node_modules/astral-regex": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
"dev": true,
- "license": "MIT",
"optional": true,
"engines": {
"node": ">=8"
@@ -20854,8 +19549,6 @@
},
"node_modules/async": {
"version": "3.2.4",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
- "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==",
"dev": true,
"license": "MIT"
},
@@ -20866,16 +19559,16 @@
},
"node_modules/async-exit-hook": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz",
+ "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.12.0"
}
},
"node_modules/async-hook-jl": {
"version": "1.7.6",
- "resolved": "https://registry.npmjs.org/async-hook-jl/-/async-hook-jl-1.7.6.tgz",
- "integrity": "sha512-gFaHkFfSxTjvoxDMYqDuGHlcRyUuamF8s+ZTtJdDzqjws4mCt7v0vuV79/E2Wr2/riMQgtG4/yUtXWs1gZ7JMg==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"stack-chain": "^1.3.7"
@@ -20890,8 +19583,7 @@
},
"node_modules/async-listener": {
"version": "0.6.10",
- "resolved": "https://registry.npmjs.org/async-listener/-/async-listener-0.6.10.tgz",
- "integrity": "sha512-gpuo6xOyF4D5DE5WvyqZdPA3NGhiT6Qf07l7DCB0wwDEsLvDIbCr6j9S5aj5Ch96dLace5tXVzWBZkxU/c5ohw==",
+ "license": "BSD-2-Clause",
"peer": true,
"dependencies": {
"semver": "^5.3.0",
@@ -20903,8 +19595,7 @@
},
"node_modules/async-listener/node_modules/semver": {
"version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "license": "ISC",
"peer": true,
"bin": {
"semver": "bin/semver"
@@ -20942,8 +19633,7 @@
},
"node_modules/available-typed-arrays": {
"version": "1.0.7",
- "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
- "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
+ "license": "MIT",
"dependencies": {
"possible-typed-array-names": "^1.0.0"
},
@@ -21049,8 +19739,7 @@
},
"node_modules/babel-core": {
"version": "7.0.0-bridge.0",
- "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz",
- "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==",
+ "license": "MIT",
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
@@ -21105,8 +19794,7 @@
},
"node_modules/babel-jest": {
"version": "29.4.1",
- "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.4.1.tgz",
- "integrity": "sha512-xBZa/pLSsF/1sNpkgsiT3CmY7zV1kAsZ9OxxtrFqYucnOuRftXAfcJqcDVyOPeN4lttWTwhLdu0T9f8uvoPEUg==",
+ "license": "MIT",
"dependencies": {
"@jest/transform": "^29.4.1",
"@types/babel__core": "^7.1.14",
@@ -21341,9 +20029,8 @@
},
"node_modules/babel-plugin-add-module-exports": {
"version": "1.0.4",
- "resolved": "https://registry.npmjs.org/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-1.0.4.tgz",
- "integrity": "sha512-g+8yxHUZ60RcyaUpfNzy56OtWW+x9cyEe9j+CranqLiqbju2yf/Cy6ZtYK40EZxtrdHllzlVZgLmcOUCTlJ7Jg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/babel-plugin-istanbul": {
"version": "6.1.1",
@@ -21361,8 +20048,7 @@
},
"node_modules/babel-plugin-jest-hoist": {
"version": "29.6.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz",
- "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==",
+ "license": "MIT",
"dependencies": {
"@babel/template": "^7.3.3",
"@babel/types": "^7.3.3",
@@ -21467,8 +20153,7 @@
},
"node_modules/babel-plugin-react-compiler": {
"version": "0.0.0-experimental-696af53-20240625",
- "resolved": "https://registry.npmjs.org/babel-plugin-react-compiler/-/babel-plugin-react-compiler-0.0.0-experimental-696af53-20240625.tgz",
- "integrity": "sha512-OUDKms8qmcm5bX0D+sJWC1YcKcd7AZ2aJ7eY6gkR+Xr7PDfkXLbqAld4Qs9B0ntjVbUMEtW/PjlQrxDtY4raHg==",
+ "license": "MIT",
"dependencies": {
"@babel/generator": "7.2.0",
"@babel/types": "^7.19.0",
@@ -21481,8 +20166,7 @@
},
"node_modules/babel-plugin-react-compiler/node_modules/@babel/generator": {
"version": "7.2.0",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.2.0.tgz",
- "integrity": "sha512-BA75MVfRlFQG2EZgFYIwyT1r6xSkwfP2bdkY/kLZusEYWiJs4xCowab/alaEaT0wSvmVuXGqiefeBlP+7V1yKg==",
+ "license": "MIT",
"dependencies": {
"@babel/types": "^7.2.0",
"jsesc": "^2.5.1",
@@ -21493,8 +20177,7 @@
},
"node_modules/babel-plugin-react-compiler/node_modules/@jest/types": {
"version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
- "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
+ "license": "MIT",
"dependencies": {
"@types/istanbul-lib-coverage": "^2.0.0",
"@types/istanbul-reports": "^1.1.1",
@@ -21506,8 +20189,7 @@
},
"node_modules/babel-plugin-react-compiler/node_modules/@types/istanbul-reports": {
"version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz",
- "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==",
+ "license": "MIT",
"dependencies": {
"@types/istanbul-lib-coverage": "*",
"@types/istanbul-lib-report": "*"
@@ -21515,16 +20197,14 @@
},
"node_modules/babel-plugin-react-compiler/node_modules/@types/yargs": {
"version": "13.0.12",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz",
- "integrity": "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==",
+ "license": "MIT",
"dependencies": {
"@types/yargs-parser": "*"
}
},
"node_modules/babel-plugin-react-compiler/node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -21538,8 +20218,7 @@
},
"node_modules/babel-plugin-react-compiler/node_modules/chalk/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==",
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -21552,8 +20231,7 @@
},
"node_modules/babel-plugin-react-compiler/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==",
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -21563,21 +20241,18 @@
},
"node_modules/babel-plugin-react-compiler/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=="
+ "license": "MIT"
},
"node_modules/babel-plugin-react-compiler/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==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/babel-plugin-react-compiler/node_modules/pretty-format": {
"version": "24.9.0",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz",
- "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==",
+ "license": "MIT",
"dependencies": {
"@jest/types": "^24.9.0",
"ansi-regex": "^4.0.0",
@@ -21590,21 +20265,18 @@
},
"node_modules/babel-plugin-react-compiler/node_modules/react-is": {
"version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+ "license": "MIT"
},
"node_modules/babel-plugin-react-compiler/node_modules/source-map": {
"version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/babel-plugin-react-compiler/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==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -21614,8 +20286,7 @@
},
"node_modules/babel-plugin-react-compiler/node_modules/zod-validation-error": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-2.1.0.tgz",
- "integrity": "sha512-VJh93e2wb4c3tWtGgTa0OF/dTt/zoPCPzXq4V11ZjxmEAFaPi/Zss1xIZdEB5RD8GD00U0/iVXgqkF77RV7pdQ==",
+ "license": "MIT",
"engines": {
"node": ">=18.0.0"
},
@@ -21697,8 +20368,7 @@
},
"node_modules/babel-preset-expo": {
"version": "11.0.11",
- "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-11.0.11.tgz",
- "integrity": "sha512-5AM8FE6mH4IKda08brCzZs9uJU+1K2L/F+7dxWZCprxIlpvNOexqb9TeO/l8m8z1511jmuiAfML6at+46ls+tg==",
+ "license": "MIT",
"dependencies": {
"@babel/plugin-proposal-decorators": "^7.12.9",
"@babel/plugin-transform-export-namespace-from": "^7.22.11",
@@ -21714,8 +20384,7 @@
},
"node_modules/babel-preset-expo/node_modules/@react-native/babel-plugin-codegen": {
"version": "0.74.84",
- "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.74.84.tgz",
- "integrity": "sha512-UR4uiii5szIJA84mSC6GJOfYKDq7/ThyetOQT62+BBcyGeHVtHlNLNRzgaMeLqIQaT8Fq4pccMI+7QqLOMXzdw==",
+ "license": "MIT",
"dependencies": {
"@react-native/codegen": "0.74.84"
},
@@ -21725,8 +20394,7 @@
},
"node_modules/babel-preset-expo/node_modules/@react-native/babel-preset": {
"version": "0.74.84",
- "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.74.84.tgz",
- "integrity": "sha512-WUfu6Y4aGuVdocQZvx33BJiQWFH6kRCHYbZfBn2psgFrSRLgQWEQrDCxqPFObNAVSayM0rNhp2FvI5K/Eyeqlg==",
+ "license": "MIT",
"dependencies": {
"@babel/core": "^7.20.0",
"@babel/plugin-proposal-async-generator-functions": "^7.0.0",
@@ -21781,8 +20449,7 @@
},
"node_modules/babel-preset-expo/node_modules/@react-native/codegen": {
"version": "0.74.84",
- "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.74.84.tgz",
- "integrity": "sha512-0hXlnu9i0o8v+gXKQi+x6T471L85kCDwW4WrJiYAeOheWrQdNNW6rC3g8+LL7HXAf7QcHGU/8/d57iYfdVK2BQ==",
+ "license": "MIT",
"dependencies": {
"@babel/parser": "^7.20.0",
"glob": "^7.1.1",
@@ -21801,26 +20468,22 @@
},
"node_modules/babel-preset-expo/node_modules/babel-plugin-react-native-web": {
"version": "0.19.12",
- "resolved": "https://registry.npmjs.org/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.19.12.tgz",
- "integrity": "sha512-eYZ4+P6jNcB37lObWIg0pUbi7+3PKoU1Oie2j0C8UF3cXyXoR74tO2NBjI/FORb2LJyItJZEAmjU5pSaJYEL1w=="
+ "license": "MIT"
},
"node_modules/babel-preset-expo/node_modules/hermes-estree": {
"version": "0.19.1",
- "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.19.1.tgz",
- "integrity": "sha512-daLGV3Q2MKk8w4evNMKwS8zBE/rcpA800nu1Q5kM08IKijoSnPe9Uo1iIxzPKRkn95IxxsgBMPeYHt3VG4ej2g=="
+ "license": "MIT"
},
"node_modules/babel-preset-expo/node_modules/hermes-parser": {
"version": "0.19.1",
- "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.19.1.tgz",
- "integrity": "sha512-Vp+bXzxYJWrpEuJ/vXxUsLnt0+y4q9zyi4zUlkLqD8FKv4LjIfOvP69R/9Lty3dCyKh0E2BU7Eypqr63/rKT/A==",
+ "license": "MIT",
"dependencies": {
"hermes-estree": "0.19.1"
}
},
"node_modules/babel-preset-expo/node_modules/mkdirp": {
"version": "0.5.6",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
- "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+ "license": "MIT",
"dependencies": {
"minimist": "^1.2.6"
},
@@ -21830,8 +20493,7 @@
},
"node_modules/babel-preset-jest": {
"version": "29.6.3",
- "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz",
- "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==",
+ "license": "MIT",
"dependencies": {
"babel-plugin-jest-hoist": "^29.6.3",
"babel-preset-current-node-syntax": "^1.0.0"
@@ -22008,8 +20670,7 @@
},
"node_modules/better-opn": {
"version": "3.0.2",
- "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz",
- "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==",
+ "license": "MIT",
"dependencies": {
"open": "^8.0.4"
},
@@ -22105,13 +20766,15 @@
},
"node_modules/bluebird": {
"version": "3.7.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
+ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
+ "dev": true
},
"node_modules/bluebird-lst": {
"version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz",
+ "integrity": "sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"bluebird": "^3.5.5"
}
@@ -22172,9 +20835,8 @@
},
"node_modules/bonjour-service": {
"version": "1.2.1",
- "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz",
- "integrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.3",
"multicast-dns": "^7.2.5"
@@ -22203,9 +20865,8 @@
},
"node_modules/bplist-parser": {
"version": "0.2.0",
- "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz",
- "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"big-integer": "^1.6.44"
},
@@ -22237,8 +20898,6 @@
},
"node_modules/browser-assert": {
"version": "1.2.1",
- "resolved": "https://registry.npmjs.org/browser-assert/-/browser-assert-1.2.1.tgz",
- "integrity": "sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==",
"dev": true
},
"node_modules/browserify-aes": {
@@ -22337,8 +20996,6 @@
},
"node_modules/browserslist": {
"version": "4.23.0",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz",
- "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==",
"funding": [
{
"type": "opencollective",
@@ -22353,6 +21010,7 @@
"url": "https://github.com/sponsors/ai"
}
],
+ "license": "MIT",
"dependencies": {
"caniuse-lite": "^1.0.30001587",
"electron-to-chromium": "^1.4.668",
@@ -22368,9 +21026,8 @@
},
"node_modules/bs-logger": {
"version": "0.2.6",
- "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz",
- "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"fast-json-stable-stringify": "2.x"
},
@@ -22409,8 +21066,7 @@
},
"node_modules/buffer-alloc": {
"version": "1.2.0",
- "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
- "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
+ "license": "MIT",
"dependencies": {
"buffer-alloc-unsafe": "^1.1.0",
"buffer-fill": "^1.0.0"
@@ -22418,8 +21074,7 @@
},
"node_modules/buffer-alloc-unsafe": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
- "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg=="
+ "license": "MIT"
},
"node_modules/buffer-crc32": {
"version": "0.2.13",
@@ -22429,21 +21084,9 @@
"node": "*"
}
},
- "node_modules/buffer-equal": {
- "version": "1.0.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/buffer-fill": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
- "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ=="
+ "license": "MIT"
},
"node_modules/buffer-from": {
"version": "1.1.2",
@@ -22454,15 +21097,16 @@
"license": "MIT"
},
"node_modules/builder-util": {
- "version": "24.13.1",
+ "version": "25.0.0",
+ "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-25.0.0.tgz",
+ "integrity": "sha512-cI8zIsipo/gciZ5jGEA1qYL5Em1N6cWoNMpeJWZAfOs3H9s5zQWKnAS7rTdlJpsJ88gEmL5/32yeXUF2Uzxw6w==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@types/debug": "^4.1.6",
"7zip-bin": "~5.2.0",
- "app-builder-bin": "4.0.0",
+ "app-builder-bin": "v5.0.0-alpha.4",
"bluebird-lst": "^1.0.9",
- "builder-util-runtime": "9.2.4",
+ "builder-util-runtime": "9.2.5",
"chalk": "^4.1.2",
"cross-spawn": "^7.0.3",
"debug": "^4.3.4",
@@ -22477,9 +21121,10 @@
}
},
"node_modules/builder-util-runtime": {
- "version": "9.2.4",
+ "version": "9.2.5",
+ "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.2.5.tgz",
+ "integrity": "sha512-HjIDfhvqx/8B3TDN4GbABQcgpewTU4LMRTQPkVpKYV3lsuxEJoIfvg09GyWTNmfVNSUAYf+fbTN//JX4TH20pg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"debug": "^4.3.4",
"sax": "^1.2.4"
@@ -22490,8 +21135,9 @@
},
"node_modules/builder-util/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,
- "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -22504,13 +21150,15 @@
},
"node_modules/builder-util/node_modules/argparse": {
"version": "2.0.1",
- "dev": true,
- "license": "Python-2.0"
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
},
"node_modules/builder-util/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,
- "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -22524,8 +21172,9 @@
},
"node_modules/builder-util/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,
- "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -22535,13 +21184,15 @@
},
"node_modules/builder-util/node_modules/color-name": {
"version": "1.1.4",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
},
"node_modules/builder-util/node_modules/fs-extra": {
"version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
+ "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -22553,16 +21204,18 @@
},
"node_modules/builder-util/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,
- "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/builder-util/node_modules/js-yaml": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
},
@@ -22572,8 +21225,9 @@
},
"node_modules/builder-util/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,
- "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -22598,14 +21252,12 @@
},
"node_modules/builtins": {
"version": "1.0.3",
- "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz",
- "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ=="
+ "license": "MIT"
},
"node_modules/bundle-name": {
"version": "4.1.0",
- "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz",
- "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"run-applescript": "^7.0.0"
},
@@ -22640,8 +21292,7 @@
},
"node_modules/cacache": {
"version": "18.0.3",
- "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.3.tgz",
- "integrity": "sha512-qXCd4rh6I07cnDqh8V48/94Tc/WSfj+o3Gn6NZ0aZovS255bUx8O13uKxRFd2eWG0xgsco7+YItQNPaa5E85hg==",
+ "license": "ISC",
"dependencies": {
"@npmcli/fs": "^3.1.0",
"fs-minipass": "^3.0.0",
@@ -22662,16 +21313,14 @@
},
"node_modules/cacache/node_modules/brace-expansion": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
}
},
"node_modules/cacache/node_modules/fs-minipass": {
"version": "3.0.3",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz",
- "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==",
+ "license": "ISC",
"dependencies": {
"minipass": "^7.0.3"
},
@@ -22681,8 +21330,7 @@
},
"node_modules/cacache/node_modules/glob": {
"version": "10.4.2",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.2.tgz",
- "integrity": "sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==",
+ "license": "ISC",
"dependencies": {
"foreground-child": "^3.1.0",
"jackspeak": "^3.1.2",
@@ -22703,8 +21351,7 @@
},
"node_modules/cacache/node_modules/jackspeak": {
"version": "3.4.0",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz",
- "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==",
+ "license": "BlueOak-1.0.0",
"dependencies": {
"@isaacs/cliui": "^8.0.2"
},
@@ -22720,16 +21367,14 @@
},
"node_modules/cacache/node_modules/lru-cache": {
"version": "10.3.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.3.0.tgz",
- "integrity": "sha512-CQl19J/g+Hbjbv4Y3mFNNXFEL/5t/KCg8POCuUqd4rMKjGG+j1ybER83hxV58zL+dFI1PTkt3GNFSHRt+d8qEQ==",
+ "license": "ISC",
"engines": {
"node": "14 || >=16.14"
}
},
"node_modules/cacache/node_modules/minimatch": {
"version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "license": "ISC",
"dependencies": {
"brace-expansion": "^2.0.1"
},
@@ -22742,8 +21387,7 @@
},
"node_modules/cacache/node_modules/minipass": {
"version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+ "license": "ISC",
"engines": {
"node": ">=16 || 14 >=14.17"
}
@@ -22808,8 +21452,7 @@
},
"node_modules/call-bind": {
"version": "1.0.7",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
- "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
+ "license": "MIT",
"dependencies": {
"es-define-property": "^1.0.0",
"es-errors": "^1.3.0",
@@ -22885,8 +21528,6 @@
},
"node_modules/caniuse-lite": {
"version": "1.0.30001603",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001603.tgz",
- "integrity": "sha512-iL2iSS0eDILMb9n5yKQoTBim9jMZ0Yrk8g0N9K7UzYyWnfIKzXBZD5ngpM37ZcL/cv0Mli8XtVMRYMQAfFpi5Q==",
"funding": [
{
"type": "opencollective",
@@ -22900,7 +21541,8 @@
"type": "github",
"url": "https://github.com/sponsors/ai"
}
- ]
+ ],
+ "license": "CC-BY-4.0"
},
"node_modules/canvas": {
"version": "2.11.2",
@@ -22922,9 +21564,8 @@
},
"node_modules/case-sensitive-paths-webpack-plugin": {
"version": "2.4.0",
- "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz",
- "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -22984,17 +21625,15 @@
},
"node_modules/charenc": {
"version": "0.0.2",
- "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
- "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==",
+ "license": "BSD-3-Clause",
"engines": {
"node": "*"
}
},
"node_modules/chokidar": {
"version": "3.6.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
- "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
"devOptional": true,
+ "license": "MIT",
"dependencies": {
"anymatch": "~3.1.2",
"braces": "~3.0.2",
@@ -23046,8 +21685,7 @@
},
"node_modules/chromium-edge-launcher": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/chromium-edge-launcher/-/chromium-edge-launcher-1.0.0.tgz",
- "integrity": "sha512-pgtgjNKZ7i5U++1g1PWv75umkHvhVTDOQIZ+sjeUX9483S7Y6MUvO0lrd7ShGlQlFHMN4SwKTCq/X8hWrbv2KA==",
+ "license": "Apache-2.0",
"peer": true,
"dependencies": {
"@types/node": "*",
@@ -23060,8 +21698,9 @@
},
"node_modules/chromium-pickle-js": {
"version": "0.2.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz",
+ "integrity": "sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==",
+ "dev": true
},
"node_modules/ci-info": {
"version": "3.8.0",
@@ -23086,17 +21725,15 @@
},
"node_modules/citty": {
"version": "0.1.6",
- "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz",
- "integrity": "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"consola": "^3.2.3"
}
},
"node_modules/cjs-module-lexer": {
"version": "1.2.3",
- "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz",
- "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ=="
+ "license": "MIT"
},
"node_modules/class-utils": {
"version": "0.3.6",
@@ -23190,8 +21827,10 @@
},
"node_modules/classnames": {
"version": "2.5.0",
- "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.0.tgz",
- "integrity": "sha512-FQuRlyKinxrb5gwJlfVASbSrDlikDJ07426TrfPsdGLvtochowmkbnSFdQGJ2aoXrSetq5KqGV9emvWpy+91xA=="
+ "license": "MIT",
+ "workspaces": [
+ "benchmarks"
+ ]
},
"node_modules/clean-css": {
"version": "5.3.2",
@@ -23205,8 +21844,7 @@
},
"node_modules/clean-stack": {
"version": "2.2.0",
- "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
- "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -23227,8 +21865,7 @@
},
"node_modules/cli-cursor": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
- "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "license": "MIT",
"dependencies": {
"restore-cursor": "^3.1.0"
},
@@ -23248,9 +21885,8 @@
},
"node_modules/cli-table3": {
"version": "0.6.5",
- "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz",
- "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"string-width": "^4.2.0"
},
@@ -23263,8 +21899,9 @@
},
"node_modules/cli-truncate": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz",
+ "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==",
"dev": true,
- "license": "MIT",
"optional": true,
"dependencies": {
"slice-ansi": "^3.0.0",
@@ -23279,8 +21916,7 @@
},
"node_modules/clipboard": {
"version": "2.0.11",
- "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz",
- "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==",
+ "license": "MIT",
"dependencies": {
"good-listener": "^1.2.2",
"select": "^1.1.2",
@@ -23289,8 +21925,7 @@
},
"node_modules/cliui": {
"version": "8.0.1",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
- "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+ "license": "ISC",
"dependencies": {
"string-width": "^4.2.0",
"strip-ansi": "^6.0.1",
@@ -23342,8 +21977,7 @@
},
"node_modules/cls-hooked": {
"version": "4.2.2",
- "resolved": "https://registry.npmjs.org/cls-hooked/-/cls-hooked-4.2.2.tgz",
- "integrity": "sha512-J4Xj5f5wq/4jAvcdgoGsL3G103BtWpZrMo8NEinRltN+xpTZdI+M38pyQqhuFU/P792xkMFvnKSf+Lm81U1bxw==",
+ "license": "BSD-2-Clause",
"peer": true,
"dependencies": {
"async-hook-jl": "^1.7.6",
@@ -23356,8 +21990,7 @@
},
"node_modules/cls-hooked/node_modules/semver": {
"version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "license": "ISC",
"peer": true,
"bin": {
"semver": "bin/semver"
@@ -23440,8 +22073,8 @@
},
"node_modules/color-support": {
"version": "1.1.3",
+ "devOptional": true,
"license": "ISC",
- "optional": true,
"bin": {
"color-support": "bin.js"
}
@@ -23462,8 +22095,7 @@
},
"node_modules/colorette": {
"version": "1.4.0",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz",
- "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g=="
+ "license": "MIT"
},
"node_modules/combined-stream": {
"version": "1.0.8",
@@ -23481,9 +22113,8 @@
},
"node_modules/commander": {
"version": "6.2.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz",
- "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 6"
}
@@ -23507,17 +22138,17 @@
},
"node_modules/compare-version": {
"version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz",
+ "integrity": "sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/complex.js": {
"version": "2.1.1",
- "resolved": "https://registry.npmjs.org/complex.js/-/complex.js-2.1.1.tgz",
- "integrity": "sha512-8njCHOTtFFLtegk6zQo0kkVX1rngygb/KQI6z1qZxlFI3scluC+LVTCFbrkWjBv4vvLlbQ9t88IPMC6k95VTTg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "*"
},
@@ -23533,16 +22164,16 @@
},
"node_modules/component-type": {
"version": "1.2.2",
- "resolved": "https://registry.npmjs.org/component-type/-/component-type-1.2.2.tgz",
- "integrity": "sha512-99VUHREHiN5cLeHm3YLq312p6v+HUEcwtLCAtelvUDI6+SH5g5Cr85oNR2S1o6ywzL0ykMbuwLzM2ANocjEOIA==",
+ "license": "MIT",
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/compress-commons": {
"version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz",
+ "integrity": "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"buffer-crc32": "^0.2.13",
@@ -23556,8 +22187,9 @@
},
"node_modules/compress-commons/node_modules/readable-stream": {
"version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"inherits": "^2.0.3",
@@ -23611,9 +22243,8 @@
},
"node_modules/concurrently": {
"version": "8.2.2",
- "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz",
- "integrity": "sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"chalk": "^4.1.2",
"date-fns": "^2.30.0",
@@ -23638,9 +22269,8 @@
},
"node_modules/concurrently/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,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -23653,9 +22283,8 @@
},
"node_modules/concurrently/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,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -23669,9 +22298,8 @@
},
"node_modules/concurrently/node_modules/chalk/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,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -23681,9 +22309,8 @@
},
"node_modules/concurrently/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,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -23693,24 +22320,21 @@
},
"node_modules/concurrently/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
+ "dev": true,
+ "license": "MIT"
},
"node_modules/concurrently/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,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/concurrently/node_modules/supports-color": {
"version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -23722,47 +22346,64 @@
}
},
"node_modules/config-file-ts": {
- "version": "0.2.6",
+ "version": "0.2.8-rc1",
+ "resolved": "https://registry.npmjs.org/config-file-ts/-/config-file-ts-0.2.8-rc1.tgz",
+ "integrity": "sha512-GtNECbVI82bT4RiDIzBSVuTKoSHufnU7Ce7/42bkWZJZFLjmDF2WBpVsvRkhKCfKBnTBb3qZrBwPpFBU/Myvhg==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "glob": "^10.3.10",
- "typescript": "^5.3.3"
+ "glob": "^10.3.12",
+ "typescript": "^5.4.3"
}
},
"node_modules/config-file-ts/node_modules/brace-expansion": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
}
},
"node_modules/config-file-ts/node_modules/glob": {
- "version": "10.3.10",
+ "version": "10.4.5",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
+ "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
"dev": true,
- "license": "ISC",
"dependencies": {
"foreground-child": "^3.1.0",
- "jackspeak": "^2.3.5",
- "minimatch": "^9.0.1",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
- "path-scurry": "^1.10.1"
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^1.11.1"
},
"bin": {
"glob": "dist/esm/bin.mjs"
},
- "engines": {
- "node": ">=16 || 14 >=14.17"
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/config-file-ts/node_modules/jackspeak": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
+ "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
+ "dev": true,
+ "dependencies": {
+ "@isaacs/cliui": "^8.0.2"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
+ },
+ "optionalDependencies": {
+ "@pkgjs/parseargs": "^0.11.0"
}
},
"node_modules/config-file-ts/node_modules/minimatch": {
- "version": "9.0.3",
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
"dev": true,
- "license": "ISC",
"dependencies": {
"brace-expansion": "^2.0.1"
},
@@ -23774,9 +22415,10 @@
}
},
"node_modules/config-file-ts/node_modules/minipass": {
- "version": "7.0.4",
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
"dev": true,
- "license": "ISC",
"engines": {
"node": ">=16 || 14 >=14.17"
}
@@ -23853,9 +22495,8 @@
},
"node_modules/consola": {
"version": "3.2.3",
- "resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz",
- "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^14.18.0 || >=16.10.0"
}
@@ -23865,8 +22506,8 @@
},
"node_modules/console-control-strings": {
"version": "1.1.0",
- "license": "ISC",
- "optional": true
+ "devOptional": true,
+ "license": "ISC"
},
"node_modules/constants-browserify": {
"version": "1.0.0",
@@ -23909,8 +22550,7 @@
},
"node_modules/continuation-local-storage": {
"version": "3.2.1",
- "resolved": "https://registry.npmjs.org/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz",
- "integrity": "sha512-jx44cconVqkCEEyLSKWwkvUXwO561jXMa3LPjTPsm5QR22PA0/mhe33FT4Xb5y74JDvt/Cq+5lm8S8rskLv9ZA==",
+ "license": "BSD-2-Clause",
"peer": true,
"dependencies": {
"async-listener": "^0.6.0",
@@ -23919,8 +22559,7 @@
},
"node_modules/convert-source-map": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
- "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="
+ "license": "MIT"
},
"node_modules/cookie": {
"version": "0.5.0",
@@ -24056,8 +22695,7 @@
},
"node_modules/core-js-compat": {
"version": "3.36.1",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.1.tgz",
- "integrity": "sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==",
+ "license": "MIT",
"dependencies": {
"browserslist": "^4.23.0"
},
@@ -24095,8 +22733,9 @@
},
"node_modules/crc": {
"version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz",
+ "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==",
"dev": true,
- "license": "MIT",
"optional": true,
"dependencies": {
"buffer": "^5.1.0"
@@ -24104,8 +22743,9 @@
},
"node_modules/crc-32": {
"version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz",
+ "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==",
"dev": true,
- "license": "Apache-2.0",
"peer": true,
"bin": {
"crc32": "bin/crc32.njs"
@@ -24116,8 +22756,9 @@
},
"node_modules/crc32-stream": {
"version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.3.tgz",
+ "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"crc-32": "^1.2.0",
@@ -24129,8 +22770,9 @@
},
"node_modules/crc32-stream/node_modules/readable-stream": {
"version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"inherits": "^2.0.3",
@@ -24202,8 +22844,7 @@
},
"node_modules/crypt": {
"version": "0.0.2",
- "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
- "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==",
+ "license": "BSD-3-Clause",
"engines": {
"node": "*"
}
@@ -24234,8 +22875,7 @@
},
"node_modules/crypto-random-string": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
- "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -24487,14 +23127,12 @@
},
"node_modules/csv-parse": {
"version": "5.5.5",
- "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-5.5.5.tgz",
- "integrity": "sha512-erCk7tyU3yLWAhk6wvKxnyPtftuy/6Ak622gOO7BCJ05+TYffnPCJF905wmOQm+BpkX54OdAl8pveJwUdpnCXQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/dag-map": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/dag-map/-/dag-map-1.0.2.tgz",
- "integrity": "sha512-+LSAiGFwQ9dRnRdOeaj7g47ZFJcOUPukAP8J3A3fuZ1g9Y44BG+P1sgApjLXTQPOzC4+7S9Wr8kXsfpINM4jpw=="
+ "license": "MIT"
},
"node_modules/damerau-levenshtein": {
"version": "1.0.8",
@@ -24503,8 +23141,7 @@
},
"node_modules/data-view-buffer": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz",
- "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==",
+ "license": "MIT",
"dependencies": {
"call-bind": "^1.0.6",
"es-errors": "^1.3.0",
@@ -24519,8 +23156,7 @@
},
"node_modules/data-view-byte-length": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz",
- "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==",
+ "license": "MIT",
"dependencies": {
"call-bind": "^1.0.7",
"es-errors": "^1.3.0",
@@ -24535,8 +23171,7 @@
},
"node_modules/data-view-byte-offset": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz",
- "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==",
+ "license": "MIT",
"dependencies": {
"call-bind": "^1.0.6",
"es-errors": "^1.3.0",
@@ -24572,8 +23207,7 @@
},
"node_modules/dayjs": {
"version": "1.11.11",
- "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.11.tgz",
- "integrity": "sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg=="
+ "license": "MIT"
},
"node_modules/debounce": {
"version": "1.2.1",
@@ -24639,9 +23273,8 @@
},
"node_modules/dedent": {
"version": "0.7.0",
- "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
- "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/deep-equal": {
"version": "2.0.5",
@@ -24670,8 +23303,7 @@
},
"node_modules/deep-extend": {
"version": "0.6.0",
- "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
- "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
+ "license": "MIT",
"engines": {
"node": ">=4.0.0"
}
@@ -24690,9 +23322,8 @@
},
"node_modules/default-browser": {
"version": "5.2.1",
- "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz",
- "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"bundle-name": "^4.1.0",
"default-browser-id": "^5.0.0"
@@ -24706,9 +23337,8 @@
},
"node_modules/default-browser-id": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz",
- "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"bplist-parser": "^0.2.0",
"untildify": "^4.0.0"
@@ -24722,9 +23352,8 @@
},
"node_modules/default-browser/node_modules/default-browser-id": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz",
- "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=18"
},
@@ -24763,8 +23392,7 @@
},
"node_modules/define-data-property": {
"version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
- "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
+ "license": "MIT",
"dependencies": {
"es-define-property": "^1.0.0",
"es-errors": "^1.3.0",
@@ -24786,8 +23414,7 @@
},
"node_modules/define-properties": {
"version": "1.2.1",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
- "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
+ "license": "MIT",
"dependencies": {
"define-data-property": "^1.0.1",
"has-property-descriptors": "^1.0.0",
@@ -24814,9 +23441,8 @@
},
"node_modules/defu": {
"version": "6.1.4",
- "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz",
- "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/del": {
"version": "4.1.1",
@@ -24890,9 +23516,8 @@
},
"node_modules/delay": {
"version": "6.0.0",
- "resolved": "https://registry.npmjs.org/delay/-/delay-6.0.0.tgz",
- "integrity": "sha512-2NJozoOHQ4NuZuVIr5CWd0iiLVIRSDepakaovIN+9eIDHEhdCAEvSy2cuf1DCrPPQLvHmbqTHODlhHg8UCy4zw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=16"
},
@@ -24909,13 +23534,12 @@
},
"node_modules/delegate": {
"version": "3.2.0",
- "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz",
- "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw=="
+ "license": "MIT"
},
"node_modules/delegates": {
"version": "1.0.0",
- "license": "MIT",
- "optional": true
+ "devOptional": true,
+ "license": "MIT"
},
"node_modules/denodeify": {
"version": "1.2.1",
@@ -24967,25 +23591,23 @@
},
"node_modules/detect-indent": {
"version": "6.1.0",
- "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz",
- "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/detect-libc": {
"version": "2.0.1",
+ "devOptional": true,
"license": "Apache-2.0",
- "optional": true,
"engines": {
"node": ">=8"
}
},
"node_modules/detect-newline": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
- "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -24997,15 +23619,13 @@
},
"node_modules/detect-node-es": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz",
- "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/detect-package-manager": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/detect-package-manager/-/detect-package-manager-2.0.1.tgz",
- "integrity": "sha512-j/lJHyoLlWi6G1LDdLgvUtz60Zo5GEj+sVYtTVXnYLDPuzgC3llMxonXym9zIwhhUII8vjdw0LXxavpLqTbl1A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"execa": "^5.1.1"
},
@@ -25015,9 +23635,8 @@
},
"node_modules/detect-port": {
"version": "1.6.1",
- "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.6.1.tgz",
- "integrity": "sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"address": "^1.0.1",
"debug": "4"
@@ -25032,8 +23651,7 @@
},
"node_modules/diagnostic-channel": {
"version": "1.1.1",
- "resolved": "https://registry.npmjs.org/diagnostic-channel/-/diagnostic-channel-1.1.1.tgz",
- "integrity": "sha512-r2HV5qFkUICyoaKlBEpLKHjxMXATUf/l+h8UZPGBHGLy4DDiY2sOLcIctax4eRnTw5wH2jTMExLntGPJ8eOJxw==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"semver": "^7.5.3"
@@ -25041,8 +23659,7 @@
},
"node_modules/diagnostic-channel-publishers": {
"version": "1.0.7",
- "resolved": "https://registry.npmjs.org/diagnostic-channel-publishers/-/diagnostic-channel-publishers-1.0.7.tgz",
- "integrity": "sha512-SEECbY5AiVt6DfLkhkaHNeshg1CogdLLANA8xlG/TKvS+XUgvIKl7VspJGYiEdL5OUyzMVnr7o0AwB7f+/Mjtg==",
+ "license": "MIT",
"peer": true,
"peerDependencies": {
"diagnostic-channel": "*"
@@ -25058,8 +23675,7 @@
},
"node_modules/diff-sequences": {
"version": "29.6.3",
- "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
- "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
+ "license": "MIT",
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
@@ -25090,12 +23706,13 @@
"license": "MIT"
},
"node_modules/dir-compare": {
- "version": "3.3.0",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/dir-compare/-/dir-compare-4.2.0.tgz",
+ "integrity": "sha512-2xMCmOoMrdQIPHdsTawECdNPwlVFB9zGcz3kuhmBO6U3oU+UQjsue0i8ayLKpgBcm+hcXPMVSGUN9d+pvJ6+VQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "buffer-equal": "^1.0.0",
- "minimatch": "^3.0.4"
+ "minimatch": "^3.0.5",
+ "p-limit": "^3.1.0 "
}
},
"node_modules/dir-glob": {
@@ -25109,13 +23726,14 @@
}
},
"node_modules/dmg-builder": {
- "version": "24.13.2",
+ "version": "25.0.0",
+ "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-25.0.0.tgz",
+ "integrity": "sha512-kXETWCy/JIXS8PHYc8Y0EdSWO02gpf4jleW74hkIp6o9WWTjAdBRw2fAcRBNIEBUJtVHFrgCYsEWh0wKFUB0+A==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "app-builder-lib": "24.13.2",
- "builder-util": "24.13.1",
- "builder-util-runtime": "9.2.4",
+ "app-builder-lib": "25.0.0",
+ "builder-util": "25.0.0",
+ "builder-util-runtime": "9.2.5",
"fs-extra": "^10.1.0",
"iconv-lite": "^0.6.2",
"js-yaml": "^4.1.0"
@@ -25126,13 +23744,15 @@
},
"node_modules/dmg-builder/node_modules/argparse": {
"version": "2.0.1",
- "dev": true,
- "license": "Python-2.0"
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
},
"node_modules/dmg-builder/node_modules/fs-extra": {
"version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
+ "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -25144,8 +23764,9 @@
},
"node_modules/dmg-builder/node_modules/js-yaml": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
},
@@ -25155,8 +23776,9 @@
},
"node_modules/dmg-license": {
"version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/dmg-license/-/dmg-license-1.0.11.tgz",
+ "integrity": "sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==",
"dev": true,
- "license": "MIT",
"optional": true,
"os": [
"darwin"
@@ -25180,8 +23802,9 @@
},
"node_modules/dmg-license/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,
- "license": "MIT",
"optional": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
@@ -25196,15 +23819,15 @@
},
"node_modules/dmg-license/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,
- "license": "MIT",
"optional": true
},
"node_modules/dns-packet": {
"version": "5.6.1",
- "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz",
- "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@leichtgewicht/ip-codec": "^2.0.1"
},
@@ -25313,8 +23936,7 @@
},
"node_modules/dotenv": {
"version": "16.4.5",
- "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz",
- "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==",
+ "license": "BSD-2-Clause",
"engines": {
"node": ">=12"
},
@@ -25323,22 +23945,28 @@
}
},
"node_modules/dotenv-expand": {
- "version": "5.1.0",
- "dev": true,
- "license": "BSD-2-Clause"
+ "version": "11.0.6",
+ "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.6.tgz",
+ "integrity": "sha512-8NHi73otpWsZGBSZwwknTXS5pqMOrk9+Ssrna8xCaxkzEpU9OTf9R5ArQGVw03//Zmk9MOwLPng9WwndvpAJ5g==",
+ "dependencies": {
+ "dotenv": "^16.4.4"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://dotenvx.com"
+ }
},
"node_modules/duplexer": {
"version": "0.1.2",
- "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
- "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==",
"dev": true,
"license": "MIT"
},
"node_modules/duplexify": {
"version": "3.7.1",
- "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
- "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"end-of-stream": "^1.0.0",
"inherits": "^2.0.1",
@@ -25360,9 +23988,8 @@
},
"node_modules/ejs": {
"version": "3.1.10",
- "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz",
- "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"jake": "^10.8.5"
},
@@ -25375,10 +24002,9 @@
},
"node_modules/electron": {
"version": "29.4.1",
- "resolved": "https://registry.npmjs.org/electron/-/electron-29.4.1.tgz",
- "integrity": "sha512-YQvMAtdmjMF1yGfQFuO/KOmy+04SKot85NalppK/8zxKwOKrrK6dJBp+nJWteqBwRAKiasSrC1lDalF6hZct/w==",
"dev": true,
"hasInstallScript": true,
+ "license": "MIT",
"dependencies": {
"@electron/get": "^2.0.0",
"@types/node": "^20.9.0",
@@ -25392,19 +24018,20 @@
}
},
"node_modules/electron-builder": {
- "version": "24.13.2",
+ "version": "25.0.0",
+ "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-25.0.0.tgz",
+ "integrity": "sha512-3nEqF6KnoM206mLz1C70VXWCzXmH2boL82wkpgLB1GXgK3dly6ay/cepI+2BmQT4iWkIHeG8qH9bPjPj0hn+1A==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "app-builder-lib": "24.13.2",
- "builder-util": "24.13.1",
- "builder-util-runtime": "9.2.4",
+ "app-builder-lib": "25.0.0",
+ "builder-util": "25.0.0",
+ "builder-util-runtime": "9.2.5",
"chalk": "^4.1.2",
- "dmg-builder": "24.13.2",
+ "dmg-builder": "25.0.0",
"fs-extra": "^10.1.0",
"is-ci": "^3.0.0",
"lazy-val": "^1.0.5",
- "read-config-file": "6.3.2",
+ "read-config-file": "6.4.0",
"simple-update-notifier": "2.0.0",
"yargs": "^17.6.2"
},
@@ -25417,21 +24044,23 @@
}
},
"node_modules/electron-builder-squirrel-windows": {
- "version": "24.13.2",
+ "version": "25.0.0",
+ "resolved": "https://registry.npmjs.org/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-25.0.0.tgz",
+ "integrity": "sha512-bfARwAdye1UkFQZ7NedHZBcOek2lvDDeg/pCaXT4Nrki7gdwrvVY/Be/QJm7Smc6IR/mviozbL9ykUHQ/FSsbw==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
- "app-builder-lib": "24.13.2",
+ "app-builder-lib": "25.0.0",
"archiver": "^5.3.1",
- "builder-util": "24.13.1",
+ "builder-util": "25.0.0",
"fs-extra": "^10.1.0"
}
},
"node_modules/electron-builder-squirrel-windows/node_modules/fs-extra": {
"version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
+ "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"graceful-fs": "^4.2.0",
@@ -25520,13 +24149,14 @@
}
},
"node_modules/electron-publish": {
- "version": "24.13.1",
+ "version": "25.0.0",
+ "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-25.0.0.tgz",
+ "integrity": "sha512-8wq3pVLq9bpd/jNKJGIXbeL8B8AovLojtCDkVSuSgrLtxEndqy5JfuadUKPAgbmh1zjholNAHsfHH9FS5yeYAg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@types/fs-extra": "^9.0.11",
- "builder-util": "24.13.1",
- "builder-util-runtime": "9.2.4",
+ "builder-util": "25.0.0",
+ "builder-util-runtime": "9.2.5",
"chalk": "^4.1.2",
"fs-extra": "^10.1.0",
"lazy-val": "^1.0.5",
@@ -25535,8 +24165,9 @@
},
"node_modules/electron-publish/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,
- "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -25549,8 +24180,9 @@
},
"node_modules/electron-publish/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,
- "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -25564,8 +24196,9 @@
},
"node_modules/electron-publish/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,
- "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -25575,13 +24208,15 @@
},
"node_modules/electron-publish/node_modules/color-name": {
"version": "1.1.4",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
},
"node_modules/electron-publish/node_modules/fs-extra": {
"version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
+ "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -25593,16 +24228,18 @@
},
"node_modules/electron-publish/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,
- "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/electron-publish/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,
- "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -25612,8 +24249,7 @@
},
"node_modules/electron-to-chromium": {
"version": "1.4.723",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.723.tgz",
- "integrity": "sha512-rxFVtrMGMFROr4qqU6n95rUi9IlfIm+lIAt+hOToy/9r6CDv0XiEcQdC3VP71y1pE5CFTzKV0RvxOGYCPWWHPw=="
+ "license": "ISC"
},
"node_modules/elliptic": {
"version": "6.5.4",
@@ -25634,8 +24270,7 @@
},
"node_modules/emitter-listener": {
"version": "1.1.2",
- "resolved": "https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.1.2.tgz",
- "integrity": "sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==",
+ "license": "BSD-2-Clause",
"peer": true,
"dependencies": {
"shimmer": "^1.2.0"
@@ -25674,6 +24309,15 @@
"node": ">= 0.8"
}
},
+ "node_modules/encoding": {
+ "version": "0.1.13",
+ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
+ "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
+ "optional": true,
+ "dependencies": {
+ "iconv-lite": "^0.6.2"
+ }
+ },
"node_modules/end-of-stream": {
"version": "1.4.4",
"license": "MIT",
@@ -25683,9 +24327,8 @@
},
"node_modules/endent": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/endent/-/endent-2.1.0.tgz",
- "integrity": "sha512-r8VyPX7XL8U01Xgnb1CjZ3XV+z90cXIJ9JPE/R9SEC9vpw2P6CfsRPJmp20DppC5N7ZAMCmjYkJIa744Iyg96w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"dedent": "^0.7.0",
"fast-json-parse": "^1.0.3",
@@ -25712,8 +24355,7 @@
},
"node_modules/env-editor": {
"version": "0.4.2",
- "resolved": "https://registry.npmjs.org/env-editor/-/env-editor-0.4.2.tgz",
- "integrity": "sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -25737,8 +24379,7 @@
},
"node_modules/eol": {
"version": "0.9.1",
- "resolved": "https://registry.npmjs.org/eol/-/eol-0.9.1.tgz",
- "integrity": "sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg=="
+ "license": "MIT"
},
"node_modules/err-code": {
"version": "2.0.3",
@@ -25771,8 +24412,7 @@
},
"node_modules/errorhandler": {
"version": "1.5.1",
- "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz",
- "integrity": "sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==",
+ "license": "MIT",
"dependencies": {
"accepts": "~1.3.7",
"escape-html": "~1.0.3"
@@ -25783,8 +24423,7 @@
},
"node_modules/es-abstract": {
"version": "1.23.3",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz",
- "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==",
+ "license": "MIT",
"dependencies": {
"array-buffer-byte-length": "^1.0.1",
"arraybuffer.prototype.slice": "^1.0.3",
@@ -25842,8 +24481,7 @@
},
"node_modules/es-abstract/node_modules/object.assign": {
"version": "4.1.5",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz",
- "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==",
+ "license": "MIT",
"dependencies": {
"call-bind": "^1.0.5",
"define-properties": "^1.2.1",
@@ -25859,8 +24497,7 @@
},
"node_modules/es-define-property": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
- "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
+ "license": "MIT",
"dependencies": {
"get-intrinsic": "^1.2.4"
},
@@ -25870,8 +24507,7 @@
},
"node_modules/es-errors": {
"version": "1.3.0",
- "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
- "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "license": "MIT",
"engines": {
"node": ">= 0.4"
}
@@ -25917,13 +24553,11 @@
},
"node_modules/es-module-lexer": {
"version": "1.5.0",
- "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.0.tgz",
- "integrity": "sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw=="
+ "license": "MIT"
},
"node_modules/es-object-atoms": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz",
- "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==",
+ "license": "MIT",
"dependencies": {
"es-errors": "^1.3.0"
},
@@ -25933,8 +24567,7 @@
},
"node_modules/es-set-tostringtag": {
"version": "2.0.3",
- "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz",
- "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==",
+ "license": "MIT",
"dependencies": {
"get-intrinsic": "^1.2.4",
"has-tostringtag": "^1.0.2",
@@ -25974,10 +24607,9 @@
},
"node_modules/esbuild": {
"version": "0.20.2",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz",
- "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==",
"dev": true,
"hasInstallScript": true,
+ "license": "MIT",
"bin": {
"esbuild": "bin/esbuild"
},
@@ -26012,15 +24644,13 @@
},
"node_modules/esbuild-plugin-alias": {
"version": "0.2.1",
- "resolved": "https://registry.npmjs.org/esbuild-plugin-alias/-/esbuild-plugin-alias-0.2.1.tgz",
- "integrity": "sha512-jyfL/pwPqaFXyKnj8lP8iLk6Z0m099uXR45aSN8Av1XD4vhvQutxxPzgA2bTcAwQpa1zCXDcWOlhFgyP3GKqhQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/esbuild-register": {
"version": "3.5.0",
- "resolved": "https://registry.npmjs.org/esbuild-register/-/esbuild-register-3.5.0.tgz",
- "integrity": "sha512-+4G/XmakeBAsvJuDugJvtyF1x+XJT4FMocynNpxrvEBViirpfUn2PgNpCHedfWhF4WokNsO/OvMKrmJOIJsI5A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"debug": "^4.3.4"
},
@@ -26041,9 +24671,8 @@
},
"node_modules/escape-latex": {
"version": "1.2.0",
- "resolved": "https://registry.npmjs.org/escape-latex/-/escape-latex-1.2.0.tgz",
- "integrity": "sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/escape-string-regexp": {
"version": "4.0.0",
@@ -26057,8 +24686,7 @@
},
"node_modules/escodegen": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz",
- "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==",
+ "license": "BSD-2-Clause",
"dependencies": {
"esprima": "^4.0.1",
"estraverse": "^5.2.0",
@@ -26077,9 +24705,8 @@
},
"node_modules/eslint": {
"version": "8.57.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
- "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1",
@@ -26178,9 +24805,8 @@
},
"node_modules/eslint-config-airbnb-typescript": {
"version": "18.0.0",
- "resolved": "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-18.0.0.tgz",
- "integrity": "sha512-oc+Lxzgzsu8FQyFVa4QFaVKiitTYiiW3frB9KYW5OWdPrqFc7FzxgB20hP4cHMlr+MBzGcLl3jnCOVOydL9mIg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"eslint-config-airbnb-base": "^15.0.0"
},
@@ -26192,9 +24818,8 @@
},
"node_modules/eslint-config-expensify": {
"version": "2.0.52",
- "resolved": "https://registry.npmjs.org/eslint-config-expensify/-/eslint-config-expensify-2.0.52.tgz",
- "integrity": "sha512-TUhtgsb+EUsfqhEGhSbUVgIypEhZjloYC8PEPxKKniaaG14SW/z1G3C5E4NJQ05xVdRwJ4H+shF7ZzOYbVcraQ==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"@lwc/eslint-plugin-lwc": "^1.7.2",
"@typescript-eslint/parser": "^7.12.0",
@@ -26215,9 +24840,8 @@
},
"node_modules/eslint-config-expensify/node_modules/@typescript-eslint/scope-manager": {
"version": "7.12.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.12.0.tgz",
- "integrity": "sha512-itF1pTnN6F3unPak+kutH9raIkL3lhH1YRPGgt7QQOh43DQKVJXmWkpb+vpc/TiDHs6RSd9CTbDsc/Y+Ygq7kg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@typescript-eslint/types": "7.12.0",
"@typescript-eslint/visitor-keys": "7.12.0"
@@ -26232,9 +24856,8 @@
},
"node_modules/eslint-config-expensify/node_modules/@typescript-eslint/types": {
"version": "7.12.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.12.0.tgz",
- "integrity": "sha512-o+0Te6eWp2ppKY3mLCU+YA9pVJxhUJE15FV7kxuD9jgwIAa+w/ycGJBMrYDTpVGUM/tgpa9SeMOugSabWFq7bg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^18.18.0 || >=20.0.0"
},
@@ -26245,9 +24868,8 @@
},
"node_modules/eslint-config-expensify/node_modules/@typescript-eslint/typescript-estree": {
"version": "7.12.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.12.0.tgz",
- "integrity": "sha512-5bwqLsWBULv1h6pn7cMW5dXX/Y2amRqLaKqsASVwbBHMZSnHqE/HN4vT4fE0aFsiwxYvr98kqOWh1a8ZKXalCQ==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"@typescript-eslint/types": "7.12.0",
"@typescript-eslint/visitor-keys": "7.12.0",
@@ -26273,9 +24895,8 @@
},
"node_modules/eslint-config-expensify/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
"version": "9.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
- "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"brace-expansion": "^2.0.1"
},
@@ -26288,9 +24909,8 @@
},
"node_modules/eslint-config-expensify/node_modules/@typescript-eslint/utils": {
"version": "7.12.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.12.0.tgz",
- "integrity": "sha512-Y6hhwxwDx41HNpjuYswYp6gDbkiZ8Hin9Bf5aJQn1bpTs3afYY4GX+MPYxma8jtoIV2GRwTM/UJm/2uGCVv+DQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
"@typescript-eslint/scope-manager": "7.12.0",
@@ -26310,9 +24930,8 @@
},
"node_modules/eslint-config-expensify/node_modules/@typescript-eslint/visitor-keys": {
"version": "7.12.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.12.0.tgz",
- "integrity": "sha512-uZk7DevrQLL3vSnfFl5bj4sL75qC9D6EdjemIdbtkuUmIheWpuiiylSY01JxJE7+zGrOWDZrp1WxOuDntvKrHQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@typescript-eslint/types": "7.12.0",
"eslint-visitor-keys": "^3.4.3"
@@ -26327,18 +24946,16 @@
},
"node_modules/eslint-config-expensify/node_modules/brace-expansion": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
}
},
"node_modules/eslint-config-expensify/node_modules/eslint-visitor-keys": {
"version": "3.4.3",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
@@ -26348,9 +24965,8 @@
},
"node_modules/eslint-config-prettier": {
"version": "9.1.0",
- "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz",
- "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==",
"dev": true,
+ "license": "MIT",
"bin": {
"eslint-config-prettier": "bin/cli.js"
},
@@ -26468,9 +25084,8 @@
},
"node_modules/eslint-plugin-ft-flow": {
"version": "2.0.3",
- "resolved": "https://registry.npmjs.org/eslint-plugin-ft-flow/-/eslint-plugin-ft-flow-2.0.3.tgz",
- "integrity": "sha512-Vbsd/b+LYA99jUbsL6viEUWShFaYQt2YQs3QN3f+aeszOhh2sgdcU0mjzDyD4yyBvMc8qy2uwvBBWfMzEX06tg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"lodash": "^4.17.21",
"string-natural-compare": "^3.0.1"
@@ -26534,9 +25149,8 @@
},
"node_modules/eslint-plugin-import/node_modules/json5": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
- "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"minimist": "^1.2.0"
},
@@ -26554,18 +25168,16 @@
},
"node_modules/eslint-plugin-import/node_modules/strip-bom": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/eslint-plugin-import/node_modules/tsconfig-paths": {
"version": "3.15.0",
- "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
- "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/json5": "^0.0.29",
"json5": "^1.0.2",
@@ -26575,9 +25187,8 @@
},
"node_modules/eslint-plugin-jest": {
"version": "28.6.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-28.6.0.tgz",
- "integrity": "sha512-YG28E1/MIKwnz+e2H7VwYPzHUYU4aMa19w0yGcwXnnmJH6EfgHahTJ2un3IyraUxNfnz/KUhJAFXNNwWPo12tg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@typescript-eslint/utils": "^6.0.0 || ^7.0.0"
},
@@ -26600,9 +25211,8 @@
},
"node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/utils": {
"version": "7.13.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.13.1.tgz",
- "integrity": "sha512-h5MzFBD5a/Gh/fvNdp9pTfqJAbuQC4sCN2WzuXme71lqFJsZtLbjxfSk4r3p02WIArOF9N94pdsLiGutpDbrXQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
"@typescript-eslint/scope-manager": "7.13.1",
@@ -26694,9 +25304,8 @@
},
"node_modules/eslint-plugin-prettier": {
"version": "4.2.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz",
- "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"prettier-linter-helpers": "^1.0.0"
},
@@ -26744,9 +25353,8 @@
},
"node_modules/eslint-plugin-react-compiler": {
"version": "0.0.0-experimental-0998c1e-20240625",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react-compiler/-/eslint-plugin-react-compiler-0.0.0-experimental-0998c1e-20240625.tgz",
- "integrity": "sha512-npq2RomExoQI3jETs4OrifaygyJYgOcX/q74Q9OC7GmffLh5zSJaQpzjs2fi61NMNkJyIvTBD0C6sKTGGcetOw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/core": "^7.24.4",
"@babel/parser": "^7.24.4",
@@ -26764,15 +25372,13 @@
},
"node_modules/eslint-plugin-react-compiler/node_modules/hermes-estree": {
"version": "0.20.1",
- "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.20.1.tgz",
- "integrity": "sha512-SQpZK4BzR48kuOg0v4pb3EAGNclzIlqMj3Opu/mu7bbAoFw6oig6cEt/RAi0zTFW/iW6Iz9X9ggGuZTAZ/yZHg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/eslint-plugin-react-compiler/node_modules/hermes-parser": {
"version": "0.20.1",
- "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.20.1.tgz",
- "integrity": "sha512-BL5P83cwCogI8D7rrDCgsFY0tdYUtmFP9XaXtl2IQjC+2Xo+4okjfXintlTxcIwl4qeGddEl28Z11kbVIw0aNA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"hermes-estree": "0.20.1"
}
@@ -26790,9 +25396,8 @@
},
"node_modules/eslint-plugin-react-native": {
"version": "4.1.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react-native/-/eslint-plugin-react-native-4.1.0.tgz",
- "integrity": "sha512-QLo7rzTBOl43FvVqDdq5Ql9IoElIuTdjrz9SKAXCvULvBoRZ44JGSkx9z4999ZusCsb4rK3gjS8gOGyeYqZv2Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"eslint-plugin-react-native-globals": "^0.1.1"
},
@@ -26818,9 +25423,8 @@
},
"node_modules/eslint-plugin-react-native-globals": {
"version": "0.1.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react-native-globals/-/eslint-plugin-react-native-globals-0.1.2.tgz",
- "integrity": "sha512-9aEPf1JEpiTjcFAmmyw8eiIXmcNZOqaZyHO77wgm0/dWfT/oxC1SrIq8ET38pMxHYrcB6Uew+TzUVsBeczF88g==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/eslint-plugin-react/node_modules/doctrine": {
"version": "2.1.0",
@@ -26867,9 +25471,8 @@
},
"node_modules/eslint-plugin-storybook": {
"version": "0.8.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-storybook/-/eslint-plugin-storybook-0.8.0.tgz",
- "integrity": "sha512-CZeVO5EzmPY7qghO2t64oaFM+8FTaD4uzOEjHKp516exyTKo+skKAL9GI3QALS2BXhyALJjNtwbmr1XinGE8bA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/csf": "^0.0.1",
"@typescript-eslint/utils": "^5.62.0",
@@ -26893,9 +25496,8 @@
},
"node_modules/eslint-plugin-testing-library": {
"version": "6.2.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-6.2.2.tgz",
- "integrity": "sha512-1E94YOTUDnOjSLyvOwmbVDzQi/WkKm3WVrMXu6SmBr6DN95xTGZmI6HJ/eOkSXh/DlheRsxaPsJvZByDBhWLVQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@typescript-eslint/utils": "^5.58.0"
},
@@ -26909,9 +25511,8 @@
},
"node_modules/eslint-plugin-you-dont-need-lodash-underscore": {
"version": "6.14.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-you-dont-need-lodash-underscore/-/eslint-plugin-you-dont-need-lodash-underscore-6.14.0.tgz",
- "integrity": "sha512-3zkkU/O1agczP7szJGHmisZJS/AknfVl6mb0Zqoc95dvFsdmfK+cbhrn+Ffy0UWB1pgDJwQr7kIO3rPstWs3Dw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"kebab-case": "^1.0.0"
},
@@ -26976,9 +25577,8 @@
},
"node_modules/eslint/node_modules/argparse": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
+ "dev": true,
+ "license": "Python-2.0"
},
"node_modules/eslint/node_modules/chalk": {
"version": "4.1.2",
@@ -27013,9 +25613,8 @@
},
"node_modules/eslint/node_modules/eslint-scope": {
"version": "7.2.2",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
- "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"esrecurse": "^4.3.0",
"estraverse": "^5.2.0"
@@ -27029,9 +25628,8 @@
},
"node_modules/eslint/node_modules/eslint-visitor-keys": {
"version": "3.4.3",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
@@ -27041,9 +25639,8 @@
},
"node_modules/eslint/node_modules/glob-parent": {
"version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"is-glob": "^4.0.3"
},
@@ -27075,18 +25672,16 @@
},
"node_modules/eslint/node_modules/is-path-inside": {
"version": "3.0.3",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
- "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/eslint/node_modules/js-yaml": {
"version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
},
@@ -27123,9 +25718,8 @@
},
"node_modules/espree": {
"version": "9.6.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
- "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"acorn": "^8.9.0",
"acorn-jsx": "^5.3.2",
@@ -27140,9 +25734,8 @@
},
"node_modules/espree/node_modules/acorn": {
"version": "8.12.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz",
- "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==",
"dev": true,
+ "license": "MIT",
"bin": {
"acorn": "bin/acorn"
},
@@ -27152,9 +25745,8 @@
},
"node_modules/espree/node_modules/eslint-visitor-keys": {
"version": "3.4.3",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
@@ -27244,8 +25836,7 @@
},
"node_modules/exec-async": {
"version": "2.2.0",
- "resolved": "https://registry.npmjs.org/exec-async/-/exec-async-2.2.0.tgz",
- "integrity": "sha512-87OpwcEiMia/DeiKFzaQNBNFeN3XkkpYIh9FyOqq5mS2oKv3CBE67PXoEKcr6nodWdXNogTiQ0jE2NGuoffXPw=="
+ "license": "MIT"
},
"node_modules/execa": {
"version": "5.1.1",
@@ -27270,8 +25861,6 @@
},
"node_modules/exit": {
"version": "0.1.2",
- "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
- "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
"engines": {
"node": ">= 0.8.0"
}
@@ -27403,8 +25992,7 @@
},
"node_modules/expect": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz",
- "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==",
+ "license": "MIT",
"dependencies": {
"@jest/expect-utils": "^29.7.0",
"jest-get-type": "^29.6.3",
@@ -27417,9 +26005,9 @@
}
},
"node_modules/expensify-common": {
- "version": "2.0.39",
- "resolved": "https://registry.npmjs.org/expensify-common/-/expensify-common-2.0.39.tgz",
- "integrity": "sha512-HyW7MiS8+ZWO2xye5TSsiKJfIsaGl0M2RlI+txJNF9GWeroA6kaXybTY1Ppq+cS+a7+MU/KMQh7GNnIMrvkf+w==",
+ "version": "2.0.49",
+ "resolved": "https://registry.npmjs.org/expensify-common/-/expensify-common-2.0.49.tgz",
+ "integrity": "sha512-67QbRuR2XEl2RoNLSbyqGWATIbOXPV42azAfs2sqNT6iyWKcOgHUqRkWPhxA0GmSW35lwq66bvgPVsQUfMGCow==",
"dependencies": {
"awesome-phonenumber": "^5.4.0",
"classnames": "2.5.0",
@@ -27433,13 +26021,13 @@
"react-dom": "16.12.0",
"semver": "^7.6.2",
"simply-deferred": "git+https://github.com/Expensify/simply-deferred.git#77a08a95754660c7bd6e0b6979fdf84e8e831bf5",
- "ua-parser-js": "^1.0.37"
+ "ua-parser-js": "^1.0.38"
}
},
"node_modules/expensify-common/node_modules/ua-parser-js": {
- "version": "1.0.37",
- "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.37.tgz",
- "integrity": "sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==",
+ "version": "1.0.38",
+ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.38.tgz",
+ "integrity": "sha512-Aq5ppTOfvrCMgAPneW1HfWj66Xi7XL+/mIy996R1/CLS/rcyJQm6QZdsKrUeivDFQ+Oc9Wyuwor8Ze8peEoUoQ==",
"funding": [
{
"type": "opencollective",
@@ -27460,8 +26048,7 @@
},
"node_modules/expo": {
"version": "51.0.17",
- "resolved": "https://registry.npmjs.org/expo/-/expo-51.0.17.tgz",
- "integrity": "sha512-VqLrdVMLdjCUhNuWWGdexqkiscnudY7OACafBrfqIFOejAeKceEaBU5YQIlNlOsKuB7PBMqDkhdZ+dG93Ul4ig==",
+ "license": "MIT",
"dependencies": {
"@babel/runtime": "^7.20.0",
"@expo/cli": "0.18.21",
@@ -27485,8 +26072,7 @@
},
"node_modules/expo-asset": {
"version": "10.0.10",
- "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-10.0.10.tgz",
- "integrity": "sha512-0qoTIihB79k+wGus9wy0JMKq7DdenziVx3iUkGvMAy2azscSgWH6bd2gJ9CGnhC6JRd3qTMFBL0ou/fx7WZl7A==",
+ "license": "MIT",
"dependencies": {
"expo-constants": "~16.0.0",
"invariant": "^2.2.4",
@@ -27498,16 +26084,14 @@
},
"node_modules/expo-av": {
"version": "14.0.6",
- "resolved": "https://registry.npmjs.org/expo-av/-/expo-av-14.0.6.tgz",
- "integrity": "sha512-8FHKgMYo49C5hhgG0ssRRd454VQ82TuujhMdlz7ScJBihEXa89kWKpfk9bXrvetFtrJoAmYuGxsXCJCygZhxfA==",
+ "license": "MIT",
"peerDependencies": {
"expo": "*"
}
},
"node_modules/expo-constants": {
"version": "16.0.2",
- "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-16.0.2.tgz",
- "integrity": "sha512-9tNY3OVO0jfiMzl7ngb6IOyR5VFzNoN5OOazUWoeGfmMqVB5kltTemRvKraK9JRbBKIw+SOYLEmF0sEqgFZ6OQ==",
+ "license": "MIT",
"dependencies": {
"@expo/config": "~9.0.0",
"@expo/env": "~0.3.0"
@@ -27518,16 +26102,14 @@
},
"node_modules/expo-file-system": {
"version": "17.0.1",
- "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-17.0.1.tgz",
- "integrity": "sha512-dYpnZJqTGj6HCYJyXAgpFkQWsiCH3HY1ek2cFZVHFoEc5tLz9gmdEgTF6nFHurvmvfmXqxi7a5CXyVm0aFYJBw==",
+ "license": "MIT",
"peerDependencies": {
"expo": "*"
}
},
"node_modules/expo-font": {
"version": "12.0.7",
- "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-12.0.7.tgz",
- "integrity": "sha512-rbSdpjtT/A3M+u9xchR9tdD+5VGSxptUis7ngX5zfAVp3O5atOcPNSA82Jeo15HkrQE+w/upfFBOvi56lsGdsQ==",
+ "license": "MIT",
"dependencies": {
"fontfaceobserver": "^2.1.0"
},
@@ -27537,24 +26119,21 @@
},
"node_modules/expo-image": {
"version": "1.12.12",
- "resolved": "https://registry.npmjs.org/expo-image/-/expo-image-1.12.12.tgz",
- "integrity": "sha512-zZutUhKYqcqTH12o87pGCVLsuQeRK2vaNwxa8beznbDnmWevm3dmbOTCxaOhGgjyDxwcdwDa483Q4IKCXL6tBw==",
+ "license": "MIT",
"peerDependencies": {
"expo": "*"
}
},
"node_modules/expo-image-loader": {
"version": "4.7.0",
- "resolved": "https://registry.npmjs.org/expo-image-loader/-/expo-image-loader-4.7.0.tgz",
- "integrity": "sha512-cx+MxxsAMGl9AiWnQUzrkJMJH4eNOGlu7XkLGnAXSJrRoIiciGaKqzeaD326IyCTV+Z1fXvIliSgNW+DscvD8g==",
+ "license": "MIT",
"peerDependencies": {
"expo": "*"
}
},
"node_modules/expo-image-manipulator": {
"version": "12.0.5",
- "resolved": "https://registry.npmjs.org/expo-image-manipulator/-/expo-image-manipulator-12.0.5.tgz",
- "integrity": "sha512-zJ8yINjckYw/yfoSuICt4yJ9xr112+W9e5QVXwK3nCAHr7sv45RQ5sxte0qppf594TPl+UoV6Tjim7WpoKipRQ==",
+ "license": "MIT",
"dependencies": {
"expo-image-loader": "~4.7.0"
},
@@ -27564,16 +26143,14 @@
},
"node_modules/expo-keep-awake": {
"version": "13.0.2",
- "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-13.0.2.tgz",
- "integrity": "sha512-kKiwkVg/bY0AJ5q1Pxnm/GvpeB6hbNJhcFsoOWDh2NlpibhCLaHL826KHUM+WsnJRbVRxJ+K9vbPRHEMvFpVyw==",
+ "license": "MIT",
"peerDependencies": {
"expo": "*"
}
},
"node_modules/expo-modules-autolinking": {
"version": "1.11.1",
- "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-1.11.1.tgz",
- "integrity": "sha512-2dy3lTz76adOl7QUvbreMCrXyzUiF8lygI7iFJLjgIQIVH+43KnFWE5zBumpPbkiaq0f0uaFpN9U0RGQbnKiMw==",
+ "license": "MIT",
"dependencies": {
"chalk": "^4.1.0",
"commander": "^7.2.0",
@@ -27587,8 +26164,7 @@
},
"node_modules/expo-modules-autolinking/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==",
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -27601,8 +26177,7 @@
},
"node_modules/expo-modules-autolinking/node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -27616,8 +26191,7 @@
},
"node_modules/expo-modules-autolinking/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==",
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -27627,29 +26201,25 @@
},
"node_modules/expo-modules-autolinking/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=="
+ "license": "MIT"
},
"node_modules/expo-modules-autolinking/node_modules/commander": {
"version": "7.2.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
- "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
+ "license": "MIT",
"engines": {
"node": ">= 10"
}
},
"node_modules/expo-modules-autolinking/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==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/expo-modules-autolinking/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==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -27659,24 +26229,21 @@
},
"node_modules/expo-modules-core": {
"version": "1.12.18",
- "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-1.12.18.tgz",
- "integrity": "sha512-YhIOJsMNjPvP0tmTbC1MRlxl5q7l21uQQDr1rlXEWHNmI2AEMW0gfr2wXrlB2Tz/oOIx8YqREsj3i0VsYXEaCA==",
+ "license": "MIT",
"dependencies": {
"invariant": "^2.2.4"
}
},
"node_modules/expo/node_modules/@babel/code-frame": {
"version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
- "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "license": "MIT",
"dependencies": {
"@babel/highlight": "^7.10.4"
}
},
"node_modules/expo/node_modules/@expo/config-plugins": {
"version": "8.0.6",
- "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-8.0.6.tgz",
- "integrity": "sha512-Vmn/BSg/hBmliU/Bl+G4sExDoWd4iHXQG7ITUNR5Uar7uLko1A5vdVV+EOEUFA0f8jEZMHG3uZJUoXmr4LPaxA==",
+ "license": "MIT",
"dependencies": {
"@expo/config-types": "^51.0.0-unreleased",
"@expo/json-file": "~8.3.0",
@@ -27697,13 +26264,11 @@
},
"node_modules/expo/node_modules/@expo/config-types": {
"version": "51.0.2",
- "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-51.0.2.tgz",
- "integrity": "sha512-IglkIoiDwJMY01lYkF/ZSBoe/5cR+O3+Gx6fpLFjLfgZGBTdyPkKa1g8NWoWQCk+D3cKL2MDbszT2DyRRB0YqQ=="
+ "license": "MIT"
},
"node_modules/expo/node_modules/@expo/json-file": {
"version": "8.3.3",
- "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.3.tgz",
- "integrity": "sha512-eZ5dld9AD0PrVRiIWpRkm5aIoWBw3kAyd8VkuWEy92sEthBKDDDHAnK2a0dw0Eil6j7rK7lS/Qaq/Zzngv2h5A==",
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "~7.10.4",
"json5": "^2.2.2",
@@ -27712,8 +26277,7 @@
},
"node_modules/expo/node_modules/@expo/plist": {
"version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.1.3.tgz",
- "integrity": "sha512-GW/7hVlAylYg1tUrEASclw1MMk9FP4ZwyFAY/SUTJIhPDQHtfOlXREyWV3hhrHdX/K+pS73GNgdfT6E/e+kBbg==",
+ "license": "MIT",
"dependencies": {
"@xmldom/xmldom": "~0.7.7",
"base64-js": "^1.2.3",
@@ -27722,8 +26286,7 @@
},
"node_modules/expo/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==",
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -27736,8 +26299,7 @@
},
"node_modules/expo/node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -27751,8 +26313,7 @@
},
"node_modules/expo/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==",
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -27762,21 +26323,18 @@
},
"node_modules/expo/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=="
+ "license": "MIT"
},
"node_modules/expo/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==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/expo/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==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -27784,6 +26342,12 @@
"node": ">=8"
}
},
+ "node_modules/exponential-backoff": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz",
+ "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==",
+ "dev": true
+ },
"node_modules/express": {
"version": "4.18.1",
"license": "MIT",
@@ -27947,11 +26511,12 @@
},
"node_modules/extsprintf": {
"version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz",
+ "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==",
"dev": true,
"engines": [
"node >=0.6.0"
],
- "license": "MIT",
"optional": true
},
"node_modules/fast-deep-equal": {
@@ -27969,8 +26534,7 @@
},
"node_modules/fast-glob": {
"version": "3.3.2",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
- "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+ "license": "MIT",
"dependencies": {
"@nodelib/fs.stat": "^2.0.2",
"@nodelib/fs.walk": "^1.2.3",
@@ -28014,8 +26578,6 @@
},
"node_modules/fast-xml-parser": {
"version": "4.3.6",
- "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.3.6.tgz",
- "integrity": "sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==",
"funding": [
{
"type": "github",
@@ -28026,6 +26588,7 @@
"url": "https://paypal.me/naturalintelligence"
}
],
+ "license": "MIT",
"dependencies": {
"strnum": "^1.0.5"
},
@@ -28100,9 +26663,8 @@
},
"node_modules/fetch-retry": {
"version": "5.0.6",
- "resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-5.0.6.tgz",
- "integrity": "sha512-3yurQZ2hD9VISAhJJP9bpYFNQrHHBXE2JxxjY5aLEcDi46RmAzJE2OC9FAde0yis5ElW0jTTzs0zfg/Cca4XqQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/file-entry-cache": {
"version": "6.0.1",
@@ -28117,9 +26679,8 @@
},
"node_modules/file-system-cache": {
"version": "2.3.0",
- "resolved": "https://registry.npmjs.org/file-system-cache/-/file-system-cache-2.3.0.tgz",
- "integrity": "sha512-l4DMNdsIPsVnKrgEXbJwDJsA5mB8rGwHYERMgqQx/xAUtChPJMre1bXBzDEqqVbWv9AIbFezXMxeEkZDSrXUOQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"fs-extra": "11.1.1",
"ramda": "0.29.0"
@@ -28127,9 +26688,8 @@
},
"node_modules/file-system-cache/node_modules/fs-extra": {
"version": "11.1.1",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
- "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -28352,24 +26912,21 @@
},
"node_modules/flow-parser": {
"version": "0.230.0",
- "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.230.0.tgz",
- "integrity": "sha512-ZAfKaarESYYcP/RoLdM91vX0u/1RR7jI5TJaFLnxwRlC2mp0o+Rw7ipIY7J6qpIpQYtAobWb/J6S0XPeu0gO8g==",
+ "license": "MIT",
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/focus-trap": {
"version": "7.5.4",
- "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.5.4.tgz",
- "integrity": "sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==",
+ "license": "MIT",
"dependencies": {
"tabbable": "^6.2.0"
}
},
"node_modules/focus-trap-react": {
"version": "10.2.3",
- "resolved": "https://registry.npmjs.org/focus-trap-react/-/focus-trap-react-10.2.3.tgz",
- "integrity": "sha512-YXBpFu/hIeSu6NnmV2xlXzOYxuWkoOtar9jzgp3lOmjWLWY59C/b8DtDHEAV4SPU07Nd/t+nS/SBNGkhUBFmEw==",
+ "license": "MIT",
"dependencies": {
"focus-trap": "^7.5.4",
"tabbable": "^6.2.0"
@@ -28400,8 +26957,7 @@
},
"node_modules/fontfaceobserver": {
"version": "2.3.0",
- "resolved": "https://registry.npmjs.org/fontfaceobserver/-/fontfaceobserver-2.3.0.tgz",
- "integrity": "sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg=="
+ "license": "BSD-2-Clause"
},
"node_modules/for-each": {
"version": "0.3.3",
@@ -28419,8 +26975,7 @@
},
"node_modules/foreground-child": {
"version": "3.1.1",
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
- "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
+ "license": "ISC",
"dependencies": {
"cross-spawn": "^7.0.0",
"signal-exit": "^4.0.1"
@@ -28434,8 +26989,7 @@
},
"node_modules/foreground-child/node_modules/signal-exit": {
"version": "4.1.0",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "license": "ISC",
"engines": {
"node": ">=14"
},
@@ -28445,9 +26999,8 @@
},
"node_modules/fork-ts-checker-webpack-plugin": {
"version": "8.0.0",
- "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-8.0.0.tgz",
- "integrity": "sha512-mX3qW3idpueT2klaQXBzrIM/pHw+T0B/V9KHEvNrqijTq9NFnMZU6oreVxDYcf33P8a5cW+67PjodNHthGnNVg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.16.7",
"chalk": "^4.1.2",
@@ -28473,9 +27026,8 @@
},
"node_modules/fork-ts-checker-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,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -28488,9 +27040,8 @@
},
"node_modules/fork-ts-checker-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,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -28504,9 +27055,8 @@
},
"node_modules/fork-ts-checker-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,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -28516,15 +27066,13 @@
},
"node_modules/fork-ts-checker-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
+ "dev": true,
+ "license": "MIT"
},
"node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": {
"version": "10.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
- "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -28536,18 +27084,16 @@
},
"node_modules/fork-ts-checker-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,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/fork-ts-checker-webpack-plugin/node_modules/memfs": {
"version": "3.5.3",
- "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz",
- "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==",
"dev": true,
+ "license": "Unlicense",
"dependencies": {
"fs-monkey": "^1.0.4"
},
@@ -28557,9 +27103,8 @@
},
"node_modules/fork-ts-checker-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,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -28569,8 +27114,7 @@
},
"node_modules/form-data": {
"version": "3.0.1",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
- "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
+ "license": "MIT",
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
@@ -28589,9 +27133,8 @@
},
"node_modules/fraction.js": {
"version": "4.3.4",
- "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.4.tgz",
- "integrity": "sha512-pwiTgt0Q7t+GHZA4yaLjObx4vXmmdcS0iSJ19o8d/goUGgItX9UZWKWNnLHehxviD8wU2IWRsnR8cD5+yOJP2Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "*"
},
@@ -28613,8 +27156,7 @@
},
"node_modules/freeport-async": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/freeport-async/-/freeport-async-2.0.0.tgz",
- "integrity": "sha512-K7od3Uw45AJg00XUmy15+Hae2hOcgKcmN3/EF6Y7i01O0gaqiRx8sUSpsb9+BRNL8RPBrhzPsVfy8q9ADlJuWQ==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -28656,9 +27198,8 @@
},
"node_modules/fs-monkey": {
"version": "1.0.6",
- "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz",
- "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==",
- "dev": true
+ "dev": true,
+ "license": "Unlicense"
},
"node_modules/fs.realpath": {
"version": "1.0.0",
@@ -28684,8 +27225,7 @@
},
"node_modules/function.prototype.name": {
"version": "1.1.6",
- "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz",
- "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==",
+ "license": "MIT",
"dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.2.0",
@@ -28756,8 +27296,7 @@
},
"node_modules/get-intrinsic": {
"version": "1.2.4",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
- "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
+ "license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
"function-bind": "^1.1.2",
@@ -28774,8 +27313,7 @@
},
"node_modules/get-monorepo-packages": {
"version": "1.2.0",
- "resolved": "https://registry.npmjs.org/get-monorepo-packages/-/get-monorepo-packages-1.2.0.tgz",
- "integrity": "sha512-aDP6tH+eM3EuVSp3YyCutOcFS4Y9AhRRH9FAd+cjtR/g63Hx+DCXdKoP1ViRPUJz5wm+BOEXB4FhoffGHxJ7jQ==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"globby": "^7.1.1",
@@ -28784,8 +27322,7 @@
},
"node_modules/get-monorepo-packages/node_modules/array-union": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
- "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"array-uniq": "^1.0.1"
@@ -28796,8 +27333,7 @@
},
"node_modules/get-monorepo-packages/node_modules/dir-glob": {
"version": "2.2.2",
- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz",
- "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"path-type": "^3.0.0"
@@ -28808,8 +27344,7 @@
},
"node_modules/get-monorepo-packages/node_modules/globby": {
"version": "7.1.1",
- "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz",
- "integrity": "sha512-yANWAN2DUcBtuus5Cpd+SKROzXHs2iVXFZt/Ykrfz6SAXqacLX25NZpltE+39ceMexYF4TtEadjuSTw8+3wX4g==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"array-union": "^1.0.1",
@@ -28825,14 +27360,12 @@
},
"node_modules/get-monorepo-packages/node_modules/ignore": {
"version": "3.3.10",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz",
- "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
+ "license": "MIT",
"peer": true
},
"node_modules/get-monorepo-packages/node_modules/load-json-file": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
- "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"graceful-fs": "^4.1.2",
@@ -28846,8 +27379,7 @@
},
"node_modules/get-monorepo-packages/node_modules/parse-json": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"error-ex": "^1.3.1",
@@ -28859,8 +27391,7 @@
},
"node_modules/get-monorepo-packages/node_modules/path-type": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
- "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"pify": "^3.0.0"
@@ -28871,8 +27402,7 @@
},
"node_modules/get-monorepo-packages/node_modules/pify": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=4"
@@ -28880,8 +27410,7 @@
},
"node_modules/get-monorepo-packages/node_modules/slash": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
- "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=0.10.0"
@@ -28889,8 +27418,7 @@
},
"node_modules/get-monorepo-packages/node_modules/strip-bom": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=4"
@@ -28898,18 +27426,16 @@
},
"node_modules/get-nonce": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz",
- "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/get-npm-tarball-url": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/get-npm-tarball-url/-/get-npm-tarball-url-2.1.0.tgz",
- "integrity": "sha512-ro+DiMu5DXgRBabqXupW38h7WPZ9+Ad8UjwhvsmmN8w1sU7ab0nzAXvVZ4kqYg57OrqomRtJvepX5/xvFKNtjA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12.17"
}
@@ -28923,8 +27449,7 @@
},
"node_modules/get-port": {
"version": "3.2.0",
- "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz",
- "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -28941,8 +27466,7 @@
},
"node_modules/get-symbol-description": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz",
- "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==",
+ "license": "MIT",
"dependencies": {
"call-bind": "^1.0.5",
"es-errors": "^1.3.0",
@@ -28971,9 +27495,8 @@
},
"node_modules/giget": {
"version": "1.2.3",
- "resolved": "https://registry.npmjs.org/giget/-/giget-1.2.3.tgz",
- "integrity": "sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"citty": "^0.1.6",
"consola": "^3.2.3",
@@ -28990,9 +27513,8 @@
},
"node_modules/github-slugger": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz",
- "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/gl-matrix": {
"version": "3.4.3",
@@ -29086,8 +27608,7 @@
},
"node_modules/good-listener": {
"version": "1.2.2",
- "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz",
- "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==",
+ "license": "MIT",
"dependencies": {
"delegate": "^3.1.2"
}
@@ -29137,16 +27658,14 @@
},
"node_modules/graphql": {
"version": "15.8.0",
- "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz",
- "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==",
+ "license": "MIT",
"engines": {
"node": ">= 10.x"
}
},
"node_modules/graphql-tag": {
"version": "2.12.6",
- "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz",
- "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==",
+ "license": "MIT",
"dependencies": {
"tslib": "^2.1.0"
},
@@ -29163,9 +27682,8 @@
},
"node_modules/gunzip-maybe": {
"version": "1.4.2",
- "resolved": "https://registry.npmjs.org/gunzip-maybe/-/gunzip-maybe-1.4.2.tgz",
- "integrity": "sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"browserify-zlib": "^0.1.4",
"is-deflate": "^1.0.0",
@@ -29180,18 +27698,16 @@
},
"node_modules/gunzip-maybe/node_modules/browserify-zlib": {
"version": "0.1.4",
- "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz",
- "integrity": "sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"pako": "~0.2.0"
}
},
"node_modules/gunzip-maybe/node_modules/pako": {
"version": "0.2.9",
- "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
- "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/gzip-size": {
"version": "6.0.0",
@@ -29214,9 +27730,8 @@
},
"node_modules/handlebars": {
"version": "4.7.8",
- "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz",
- "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"minimist": "^1.2.5",
"neo-async": "^2.6.2",
@@ -29279,8 +27794,7 @@
},
"node_modules/has-property-descriptors": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
- "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
+ "license": "MIT",
"dependencies": {
"es-define-property": "^1.0.0"
},
@@ -29290,8 +27804,7 @@
},
"node_modules/has-proto": {
"version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
- "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
+ "license": "MIT",
"engines": {
"node": ">= 0.4"
},
@@ -29311,8 +27824,7 @@
},
"node_modules/has-tostringtag": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
- "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
+ "license": "MIT",
"dependencies": {
"has-symbols": "^1.0.3"
},
@@ -29325,8 +27837,8 @@
},
"node_modules/has-unicode": {
"version": "2.0.1",
- "license": "ISC",
- "optional": true
+ "devOptional": true,
+ "license": "ISC"
},
"node_modules/has-value": {
"version": "1.0.0",
@@ -29438,8 +27950,7 @@
},
"node_modules/hasown": {
"version": "2.0.2",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
- "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "license": "MIT",
"dependencies": {
"function-bind": "^1.1.2"
},
@@ -29449,9 +27960,8 @@
},
"node_modules/hast-util-heading-rank": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/hast-util-heading-rank/-/hast-util-heading-rank-3.0.0.tgz",
- "integrity": "sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/hast": "^3.0.0"
},
@@ -29462,9 +27972,8 @@
},
"node_modules/hast-util-is-element": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz",
- "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/hast": "^3.0.0"
},
@@ -29475,9 +27984,8 @@
},
"node_modules/hast-util-to-string": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-3.0.0.tgz",
- "integrity": "sha512-OGkAxX1Ua3cbcW6EJ5pT/tslVb90uViVkcJ4ZZIMW/R33DX/AkcJcRrPebPwJkHYwlDHXz4aIwvAAaAdtrACFA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/hast": "^3.0.0"
},
@@ -29495,21 +28003,18 @@
},
"node_modules/hermes-estree": {
"version": "0.22.0",
- "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.22.0.tgz",
- "integrity": "sha512-FLBt5X9OfA8BERUdc6aZS36Xz3rRuB0Y/mfocSADWEJfomc1xfene33GdyAmtTkKTBXTN/EgAy+rjTKkkZJHlw=="
+ "license": "MIT"
},
"node_modules/hermes-parser": {
"version": "0.22.0",
- "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.22.0.tgz",
- "integrity": "sha512-gn5RfZiEXCsIWsFGsKiykekktUoh0PdFWYocXsUdZIyWSckT6UIyPcyyUIPSR3kpnELWeK3n3ztAse7Mat6PSA==",
+ "license": "MIT",
"dependencies": {
"hermes-estree": "0.22.0"
}
},
"node_modules/hermes-profile-transformer": {
"version": "0.0.6",
- "resolved": "https://registry.npmjs.org/hermes-profile-transformer/-/hermes-profile-transformer-0.0.6.tgz",
- "integrity": "sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"source-map": "^0.7.3"
@@ -29520,8 +28025,7 @@
},
"node_modules/hermes-profile-transformer/node_modules/source-map": {
"version": "0.7.4",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
- "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
+ "license": "BSD-3-Clause",
"peer": true,
"engines": {
"node": ">= 8"
@@ -29545,13 +28049,13 @@
},
"node_modules/hoist-non-react-statics/node_modules/react-is": {
"version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+ "license": "MIT"
},
"node_modules/hosted-git-info": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
+ "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
"dev": true,
- "license": "ISC",
"dependencies": {
"lru-cache": "^6.0.0"
},
@@ -29576,8 +28080,6 @@
},
"node_modules/html-entities": {
"version": "2.5.2",
- "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz",
- "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==",
"funding": [
{
"type": "github",
@@ -29587,12 +28089,12 @@
"type": "patreon",
"url": "https://patreon.com/mdevils"
}
- ]
+ ],
+ "license": "MIT"
},
"node_modules/html-escaper": {
"version": "2.0.2",
- "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
- "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg=="
+ "license": "MIT"
},
"node_modules/html-minifier-terser": {
"version": "6.1.0",
@@ -29812,6 +28314,15 @@
"node": ">=10.17.0"
}
},
+ "node_modules/humanize-ms": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
+ "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "^2.0.0"
+ }
+ },
"node_modules/hyperdyperid": {
"version": "1.2.0",
"dev": true,
@@ -29826,8 +28337,9 @@
},
"node_modules/iconv-corefoundation": {
"version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz",
+ "integrity": "sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==",
"dev": true,
- "license": "MIT",
"optional": true,
"os": [
"darwin"
@@ -29874,8 +28386,7 @@
},
"node_modules/ignore": {
"version": "5.3.1",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
- "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
+ "license": "MIT",
"engines": {
"node": ">= 4"
}
@@ -29895,8 +28406,7 @@
},
"node_modules/immediate": {
"version": "3.0.6",
- "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
- "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ=="
+ "license": "MIT"
},
"node_modules/import-fresh": {
"version": "3.3.0",
@@ -29921,8 +28431,7 @@
},
"node_modules/import-in-the-middle": {
"version": "1.4.2",
- "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.4.2.tgz",
- "integrity": "sha512-9WOz1Yh/cvO/p69sxRmhyQwrIGGSp7EIdcb+fFNVi7CzQGQB8U1/1XrKVSbEd/GNOAeM0peJtmi7+qphe7NvAw==",
+ "license": "Apache-2.0",
"peer": true,
"dependencies": {
"acorn": "^8.8.2",
@@ -29933,8 +28442,7 @@
},
"node_modules/import-in-the-middle/node_modules/acorn": {
"version": "8.11.3",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
- "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
+ "license": "MIT",
"peer": true,
"bin": {
"acorn": "bin/acorn"
@@ -29945,8 +28453,7 @@
},
"node_modules/import-in-the-middle/node_modules/acorn-import-assertions": {
"version": "1.9.0",
- "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz",
- "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==",
+ "license": "MIT",
"peer": true,
"peerDependencies": {
"acorn": "^8"
@@ -30044,6 +28551,12 @@
"node": ">=8"
}
},
+ "node_modules/infer-owner": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
+ "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==",
+ "dev": true
+ },
"node_modules/inflight": {
"version": "1.0.6",
"license": "ISC",
@@ -30058,8 +28571,7 @@
},
"node_modules/ini": {
"version": "1.3.8",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
- "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
+ "license": "ISC"
},
"node_modules/inline-style-prefixer": {
"version": "6.0.1",
@@ -30070,8 +28582,7 @@
},
"node_modules/internal-ip": {
"version": "4.3.0",
- "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz",
- "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==",
+ "license": "MIT",
"dependencies": {
"default-gateway": "^4.2.0",
"ipaddr.js": "^1.9.0"
@@ -30082,8 +28593,7 @@
},
"node_modules/internal-ip/node_modules/cross-spawn": {
"version": "6.0.5",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
- "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "license": "MIT",
"dependencies": {
"nice-try": "^1.0.4",
"path-key": "^2.0.1",
@@ -30097,8 +28607,7 @@
},
"node_modules/internal-ip/node_modules/default-gateway": {
"version": "4.2.0",
- "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz",
- "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==",
+ "license": "BSD-2-Clause",
"dependencies": {
"execa": "^1.0.0",
"ip-regex": "^2.1.0"
@@ -30109,8 +28618,7 @@
},
"node_modules/internal-ip/node_modules/execa": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
- "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+ "license": "MIT",
"dependencies": {
"cross-spawn": "^6.0.0",
"get-stream": "^4.0.0",
@@ -30126,8 +28634,7 @@
},
"node_modules/internal-ip/node_modules/get-stream": {
"version": "4.1.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
- "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "license": "MIT",
"dependencies": {
"pump": "^3.0.0"
},
@@ -30137,16 +28644,14 @@
},
"node_modules/internal-ip/node_modules/is-stream": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/internal-ip/node_modules/npm-run-path": {
"version": "2.0.2",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
- "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==",
+ "license": "MIT",
"dependencies": {
"path-key": "^2.0.0"
},
@@ -30156,24 +28661,21 @@
},
"node_modules/internal-ip/node_modules/path-key": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
- "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/internal-ip/node_modules/semver": {
"version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "license": "ISC",
"bin": {
"semver": "bin/semver"
}
},
"node_modules/internal-ip/node_modules/shebang-command": {
"version": "1.2.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
- "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+ "license": "MIT",
"dependencies": {
"shebang-regex": "^1.0.0"
},
@@ -30183,16 +28685,14 @@
},
"node_modules/internal-ip/node_modules/shebang-regex": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
- "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/internal-ip/node_modules/which": {
"version": "1.3.1",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "license": "ISC",
"dependencies": {
"isexe": "^2.0.0"
},
@@ -30202,8 +28702,7 @@
},
"node_modules/internal-slot": {
"version": "1.0.7",
- "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz",
- "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==",
+ "license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
"hasown": "^2.0.0",
@@ -30215,9 +28714,8 @@
},
"node_modules/interpret": {
"version": "3.1.1",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz",
- "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10.13.0"
}
@@ -30236,10 +28734,28 @@
"node": ">=0.10.0"
}
},
+ "node_modules/ip-address": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz",
+ "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==",
+ "dev": true,
+ "dependencies": {
+ "jsbn": "1.1.0",
+ "sprintf-js": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/ip-address/node_modules/sprintf-js": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz",
+ "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==",
+ "dev": true
+ },
"node_modules/ip-regex": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
- "integrity": "sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -30253,9 +28769,8 @@
},
"node_modules/is-absolute-url": {
"version": "4.0.1",
- "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-4.0.1.tgz",
- "integrity": "sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
@@ -30291,8 +28806,7 @@
},
"node_modules/is-array-buffer": {
"version": "3.0.4",
- "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz",
- "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==",
+ "license": "MIT",
"dependencies": {
"call-bind": "^1.0.2",
"get-intrinsic": "^1.2.1"
@@ -30359,8 +28873,7 @@
},
"node_modules/is-buffer": {
"version": "1.1.6",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
- "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
+ "license": "MIT"
},
"node_modules/is-builtin-module": {
"version": "3.2.1",
@@ -30388,8 +28901,9 @@
},
"node_modules/is-ci": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz",
+ "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ci-info": "^3.2.0"
},
@@ -30420,8 +28934,7 @@
},
"node_modules/is-data-view": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz",
- "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==",
+ "license": "MIT",
"dependencies": {
"is-typed-array": "^1.1.13"
},
@@ -30447,9 +28960,8 @@
},
"node_modules/is-deflate": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-deflate/-/is-deflate-1.0.0.tgz",
- "integrity": "sha512-YDoFpuZWu1VRXlsnlYMzKyVRITXj7Ej/V9gXQ2/pAe7X1J7M/RNOqaIYi6qUn+B7nGyB9pDXrv02dsB58d2ZAQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/is-descriptor": {
"version": "1.0.2",
@@ -30562,18 +29074,16 @@
},
"node_modules/is-gzip": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-gzip/-/is-gzip-1.0.0.tgz",
- "integrity": "sha512-rcfALRIb1YewtnksfRIHGcIY93QnK8BIQ/2c9yDYcG/Y6+vRoJuTWBmmSEbyLLYtXm7q35pHOHbZFQBaLrhlWQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/is-inside-container": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz",
- "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-docker": "^3.0.0"
},
@@ -30589,9 +29099,8 @@
},
"node_modules/is-inside-container/node_modules/is-docker": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
- "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==",
"dev": true,
+ "license": "MIT",
"bin": {
"is-docker": "cli.js"
},
@@ -30604,16 +29113,14 @@
},
"node_modules/is-interactive": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz",
- "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/is-invalid-path": {
"version": "0.1.0",
- "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz",
- "integrity": "sha512-aZMG0T3F34mTg4eTdszcGXx54oiZ4NtHSft3hWNJMGJXUUqdIj3cOZuHcU0nCWWcY3jd7yRe/3AEm3vSNTpBGQ==",
+ "license": "MIT",
"dependencies": {
"is-glob": "^2.0.0"
},
@@ -30623,16 +29130,14 @@
},
"node_modules/is-invalid-path/node_modules/is-extglob": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
- "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==",
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/is-invalid-path/node_modules/is-glob": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
- "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==",
+ "license": "MIT",
"dependencies": {
"is-extglob": "^1.0.0"
},
@@ -30640,6 +29145,12 @@
"node": ">=0.10.0"
}
},
+ "node_modules/is-lambda": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz",
+ "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==",
+ "dev": true
+ },
"node_modules/is-map": {
"version": "2.0.2",
"dev": true,
@@ -30650,9 +29161,8 @@
},
"node_modules/is-nan": {
"version": "1.3.2",
- "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz",
- "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"call-bind": "^1.0.0",
"define-properties": "^1.1.3"
@@ -30666,8 +29176,7 @@
},
"node_modules/is-negative-zero": {
"version": "2.0.3",
- "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
- "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
+ "license": "MIT",
"engines": {
"node": ">= 0.4"
},
@@ -30677,9 +29186,8 @@
},
"node_modules/is-network-error": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz",
- "integrity": "sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=16"
},
@@ -30772,8 +29280,7 @@
},
"node_modules/is-shared-array-buffer": {
"version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz",
- "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==",
+ "license": "MIT",
"dependencies": {
"call-bind": "^1.0.7"
},
@@ -30822,8 +29329,7 @@
},
"node_modules/is-typed-array": {
"version": "1.1.13",
- "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz",
- "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==",
+ "license": "MIT",
"dependencies": {
"which-typed-array": "^1.1.14"
},
@@ -30836,8 +29342,7 @@
},
"node_modules/is-unicode-supported": {
"version": "0.1.0",
- "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
- "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
+ "license": "MIT",
"engines": {
"node": ">=10"
},
@@ -30851,8 +29356,7 @@
},
"node_modules/is-valid-path": {
"version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz",
- "integrity": "sha512-+kwPrVDu9Ms03L90Qaml+79+6DZHqHyRoANI6IsZJ/g8frhnfchDOBCa0RbQ6/kdHt5CS5OeIEyrYznNuVN+8A==",
+ "license": "MIT",
"dependencies": {
"is-invalid-path": "^0.1.0"
},
@@ -30914,8 +29418,9 @@
},
"node_modules/isbinaryfile": {
"version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.2.tgz",
+ "integrity": "sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 18.0.0"
},
@@ -30964,8 +29469,7 @@
},
"node_modules/istanbul-lib-report": {
"version": "3.0.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
- "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
+ "license": "BSD-3-Clause",
"dependencies": {
"istanbul-lib-coverage": "^3.0.0",
"make-dir": "^4.0.0",
@@ -30977,16 +29481,14 @@
},
"node_modules/istanbul-lib-report/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==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/istanbul-lib-report/node_modules/make-dir": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
- "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
+ "license": "MIT",
"dependencies": {
"semver": "^7.5.3"
},
@@ -30999,8 +29501,7 @@
},
"node_modules/istanbul-lib-report/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==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -31010,8 +29511,7 @@
},
"node_modules/istanbul-lib-source-maps": {
"version": "4.0.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
- "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
+ "license": "BSD-3-Clause",
"dependencies": {
"debug": "^4.1.1",
"istanbul-lib-coverage": "^3.0.0",
@@ -31023,8 +29523,7 @@
},
"node_modules/istanbul-reports": {
"version": "3.1.7",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz",
- "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==",
+ "license": "BSD-3-Clause",
"dependencies": {
"html-escaper": "^2.0.0",
"istanbul-lib-report": "^3.0.0"
@@ -31150,8 +29649,7 @@
},
"node_modules/jest": {
"version": "29.4.1",
- "resolved": "https://registry.npmjs.org/jest/-/jest-29.4.1.tgz",
- "integrity": "sha512-cknimw7gAXPDOmj0QqztlxVtBVCw2lYY9CeIE5N6kD+kET1H4H79HSNISJmijb1HF+qk+G+ploJgiDi5k/fRlg==",
+ "license": "MIT",
"dependencies": {
"@jest/core": "^29.4.1",
"@jest/types": "^29.4.1",
@@ -31175,8 +29673,7 @@
},
"node_modules/jest-changed-files": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz",
- "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==",
+ "license": "MIT",
"dependencies": {
"execa": "^5.0.0",
"jest-util": "^29.7.0",
@@ -31188,9 +29685,8 @@
},
"node_modules/jest-circus": {
"version": "29.4.1",
- "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.4.1.tgz",
- "integrity": "sha512-v02NuL5crMNY4CGPHBEflLzl4v91NFb85a+dH9a1pUNx6Xjggrd8l9pPy4LZ1VYNRXlb+f65+7O/MSIbLir6pA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/environment": "^29.4.1",
"@jest/expect": "^29.4.1",
@@ -31282,8 +29778,7 @@
},
"node_modules/jest-cli": {
"version": "29.4.1",
- "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.4.1.tgz",
- "integrity": "sha512-jz7GDIhtxQ37M+9dlbv5K+/FVcIo1O/b1sX3cJgzlQUf/3VG25nvuWzlDC4F1FLLzUThJeWLu8I7JF9eWpuURQ==",
+ "license": "MIT",
"dependencies": {
"@jest/core": "^29.4.1",
"@jest/test-result": "^29.4.1",
@@ -31315,8 +29810,7 @@
},
"node_modules/jest-cli/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==",
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -31329,8 +29823,7 @@
},
"node_modules/jest-cli/node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -31344,8 +29837,7 @@
},
"node_modules/jest-cli/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==",
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -31355,21 +29847,18 @@
},
"node_modules/jest-cli/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=="
+ "license": "MIT"
},
"node_modules/jest-cli/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==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/jest-cli/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==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -31379,8 +29868,7 @@
},
"node_modules/jest-config": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz",
- "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==",
+ "license": "MIT",
"dependencies": {
"@babel/core": "^7.11.6",
"@jest/test-sequencer": "^29.7.0",
@@ -31423,8 +29911,7 @@
},
"node_modules/jest-config/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==",
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -31437,8 +29924,7 @@
},
"node_modules/jest-config/node_modules/babel-jest": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz",
- "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==",
+ "license": "MIT",
"dependencies": {
"@jest/transform": "^29.7.0",
"@types/babel__core": "^7.1.14",
@@ -31457,8 +29943,7 @@
},
"node_modules/jest-config/node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -31472,8 +29957,7 @@
},
"node_modules/jest-config/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==",
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -31483,13 +29967,11 @@
},
"node_modules/jest-config/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=="
+ "license": "MIT"
},
"node_modules/jest-config/node_modules/dedent": {
"version": "1.5.3",
- "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz",
- "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==",
+ "license": "MIT",
"peerDependencies": {
"babel-plugin-macros": "^3.1.0"
},
@@ -31501,16 +29983,14 @@
},
"node_modules/jest-config/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==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/jest-config/node_modules/jest-circus": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz",
- "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==",
+ "license": "MIT",
"dependencies": {
"@jest/environment": "^29.7.0",
"@jest/expect": "^29.7.0",
@@ -31539,8 +30019,7 @@
},
"node_modules/jest-config/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==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -31550,8 +30029,7 @@
},
"node_modules/jest-diff": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz",
- "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==",
+ "license": "MIT",
"dependencies": {
"chalk": "^4.0.0",
"diff-sequences": "^29.6.3",
@@ -31622,8 +30100,7 @@
},
"node_modules/jest-docblock": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz",
- "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==",
+ "license": "MIT",
"dependencies": {
"detect-newline": "^3.0.0"
},
@@ -31633,8 +30110,7 @@
},
"node_modules/jest-each": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz",
- "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==",
+ "license": "MIT",
"dependencies": {
"@jest/types": "^29.6.3",
"chalk": "^4.0.0",
@@ -31922,8 +30398,7 @@
},
"node_modules/jest-expo": {
"version": "51.0.3",
- "resolved": "https://registry.npmjs.org/jest-expo/-/jest-expo-51.0.3.tgz",
- "integrity": "sha512-r49OuS9X2S/dH+lSfNmarBS2L/tgvBhzOgKHYFyDJWo+Bb5uVs7Rg/GZal/RD/NDkKFJuByGAaW1F6zHYnjZnw==",
+ "license": "MIT",
"dependencies": {
"@expo/config": "~9.0.0-beta.0",
"@expo/json-file": "^8.3.0",
@@ -31944,16 +30419,14 @@
},
"node_modules/jest-expo/node_modules/@babel/code-frame": {
"version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
- "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "license": "MIT",
"dependencies": {
"@babel/highlight": "^7.10.4"
}
},
"node_modules/jest-expo/node_modules/@expo/json-file": {
"version": "8.3.1",
- "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.1.tgz",
- "integrity": "sha512-QIMMaqPvm8EGflp041h27OG8DDgh3RxzkEjEEvHJ9AUImgeieMCGrpDsnGOcPI4TR6MpJpLNAk5rZK4szhEwIQ==",
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "~7.10.4",
"json5": "^2.2.2",
@@ -31969,8 +30442,7 @@
},
"node_modules/jest-haste-map": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz",
- "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==",
+ "license": "MIT",
"dependencies": {
"@jest/types": "^29.6.3",
"@types/graceful-fs": "^4.1.3",
@@ -31993,16 +30465,14 @@
},
"node_modules/jest-haste-map/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==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/jest-haste-map/node_modules/jest-worker": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz",
- "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==",
+ "license": "MIT",
"dependencies": {
"@types/node": "*",
"jest-util": "^29.7.0",
@@ -32015,8 +30485,7 @@
},
"node_modules/jest-haste-map/node_modules/supports-color": {
"version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -32029,8 +30498,7 @@
},
"node_modules/jest-leak-detector": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz",
- "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==",
+ "license": "MIT",
"dependencies": {
"jest-get-type": "^29.6.3",
"pretty-format": "^29.7.0"
@@ -32041,8 +30509,7 @@
},
"node_modules/jest-matcher-utils": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz",
- "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==",
+ "license": "MIT",
"dependencies": {
"chalk": "^4.0.0",
"jest-diff": "^29.7.0",
@@ -32223,8 +30690,7 @@
},
"node_modules/jest-resolve": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz",
- "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==",
+ "license": "MIT",
"dependencies": {
"chalk": "^4.0.0",
"graceful-fs": "^4.2.9",
@@ -32242,8 +30708,7 @@
},
"node_modules/jest-resolve-dependencies": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz",
- "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==",
+ "license": "MIT",
"dependencies": {
"jest-regex-util": "^29.6.3",
"jest-snapshot": "^29.7.0"
@@ -32312,8 +30777,7 @@
},
"node_modules/jest-runner": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz",
- "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==",
+ "license": "MIT",
"dependencies": {
"@jest/console": "^29.7.0",
"@jest/environment": "^29.7.0",
@@ -32343,8 +30807,7 @@
},
"node_modules/jest-runner/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==",
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -32357,8 +30820,7 @@
},
"node_modules/jest-runner/node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -32372,8 +30834,7 @@
},
"node_modules/jest-runner/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==",
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -32383,21 +30844,18 @@
},
"node_modules/jest-runner/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=="
+ "license": "MIT"
},
"node_modules/jest-runner/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==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/jest-runner/node_modules/jest-worker": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz",
- "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==",
+ "license": "MIT",
"dependencies": {
"@types/node": "*",
"jest-util": "^29.7.0",
@@ -32410,8 +30868,7 @@
},
"node_modules/jest-runner/node_modules/jest-worker/node_modules/supports-color": {
"version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -32424,8 +30881,7 @@
},
"node_modules/jest-runner/node_modules/source-map-support": {
"version": "0.5.13",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
- "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
+ "license": "MIT",
"dependencies": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
@@ -32433,8 +30889,7 @@
},
"node_modules/jest-runner/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==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -32444,8 +30899,7 @@
},
"node_modules/jest-runtime": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz",
- "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==",
+ "license": "MIT",
"dependencies": {
"@jest/environment": "^29.7.0",
"@jest/fake-timers": "^29.7.0",
@@ -32534,8 +30988,7 @@
},
"node_modules/jest-snapshot": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz",
- "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==",
+ "license": "MIT",
"dependencies": {
"@babel/core": "^7.11.6",
"@babel/generator": "^7.7.2",
@@ -32564,8 +31017,7 @@
},
"node_modules/jest-snapshot/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==",
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -32578,8 +31030,7 @@
},
"node_modules/jest-snapshot/node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -32593,8 +31044,7 @@
},
"node_modules/jest-snapshot/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==",
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -32604,21 +31054,18 @@
},
"node_modules/jest-snapshot/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=="
+ "license": "MIT"
},
"node_modules/jest-snapshot/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==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/jest-snapshot/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==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -32710,8 +31157,7 @@
},
"node_modules/jest-validate": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz",
- "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==",
+ "license": "MIT",
"dependencies": {
"@jest/types": "^29.6.3",
"camelcase": "^6.2.0",
@@ -33002,8 +31448,7 @@
},
"node_modules/jest-watcher": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz",
- "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==",
+ "license": "MIT",
"dependencies": {
"@jest/test-result": "^29.7.0",
"@jest/types": "^29.6.3",
@@ -33085,8 +31530,7 @@
},
"node_modules/jest-worker": {
"version": "27.5.1",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
- "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "license": "MIT",
"dependencies": {
"@types/node": "*",
"merge-stream": "^2.0.0",
@@ -33098,16 +31542,14 @@
},
"node_modules/jest-worker/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==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/jest-worker/node_modules/supports-color": {
"version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -33120,8 +31562,7 @@
},
"node_modules/jimp-compact": {
"version": "0.16.1",
- "resolved": "https://registry.npmjs.org/jimp-compact/-/jimp-compact-0.16.1.tgz",
- "integrity": "sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww=="
+ "license": "MIT"
},
"node_modules/jiti": {
"version": "1.20.0",
@@ -33133,8 +31574,7 @@
},
"node_modules/joi": {
"version": "17.13.3",
- "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz",
- "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==",
+ "license": "BSD-3-Clause",
"dependencies": {
"@hapi/hoek": "^9.3.0",
"@hapi/topo": "^5.1.0",
@@ -33145,8 +31585,7 @@
},
"node_modules/join-component": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/join-component/-/join-component-1.1.0.tgz",
- "integrity": "sha512-bF7vcQxbODoGK1imE2P9GS9aw4zD0Sd+Hni68IMZLj7zRnquH7dXUmMw9hDI5S/Jzt7q+IyTXN0rSg2GI0IKhQ=="
+ "license": "MIT"
},
"node_modules/jquery": {
"version": "3.6.0",
@@ -33171,6 +31610,12 @@
"js-yaml": "bin/js-yaml.js"
}
},
+ "node_modules/jsbn": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz",
+ "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==",
+ "dev": true
+ },
"node_modules/jsc-android": {
"version": "250231.0.0",
"license": "BSD-2-Clause"
@@ -33181,8 +31626,7 @@
},
"node_modules/jscodeshift": {
"version": "0.14.0",
- "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.14.0.tgz",
- "integrity": "sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA==",
+ "license": "MIT",
"dependencies": {
"@babel/core": "^7.13.16",
"@babel/parser": "^7.13.16",
@@ -33213,8 +31657,7 @@
},
"node_modules/jscodeshift/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==",
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -33227,8 +31670,7 @@
},
"node_modules/jscodeshift/node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -33242,8 +31684,7 @@
},
"node_modules/jscodeshift/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==",
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -33253,21 +31694,18 @@
},
"node_modules/jscodeshift/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=="
+ "license": "MIT"
},
"node_modules/jscodeshift/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==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/jscodeshift/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==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -33312,8 +31750,7 @@
},
"node_modules/json-schema-deref-sync": {
"version": "0.13.0",
- "resolved": "https://registry.npmjs.org/json-schema-deref-sync/-/json-schema-deref-sync-0.13.0.tgz",
- "integrity": "sha512-YBOEogm5w9Op337yb6pAT6ZXDqlxAsQCanM3grid8lMWNxRJO/zWEJi3ZzqDL8boWfwhTFym5EFrNgWwpqcBRg==",
+ "license": "MIT",
"dependencies": {
"clone": "^2.1.2",
"dag-map": "~1.0.0",
@@ -33330,16 +31767,14 @@
},
"node_modules/json-schema-deref-sync/node_modules/clone": {
"version": "2.1.2",
- "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
- "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==",
+ "license": "MIT",
"engines": {
"node": ">=0.8"
}
},
"node_modules/json-schema-deref-sync/node_modules/md5": {
"version": "2.2.1",
- "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz",
- "integrity": "sha512-PlGG4z5mBANDGCKsYQe0CaUYHdZYZt8ZPZLmEt+Urf0W4GlpTX4HescwHU+dc9+Z/G/vZKYZYFrwgm9VxK6QOQ==",
+ "license": "BSD-3-Clause",
"dependencies": {
"charenc": "~0.0.1",
"crypt": "~0.0.1",
@@ -33448,8 +31883,6 @@
},
"node_modules/klaw-sync": {
"version": "6.0.0",
- "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz",
- "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -33478,9 +31911,8 @@
},
"node_modules/launch-editor": {
"version": "2.6.1",
- "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz",
- "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"picocolors": "^1.0.0",
"shell-quote": "^1.8.1"
@@ -33495,9 +31927,8 @@
},
"node_modules/lazy-universal-dotenv": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/lazy-universal-dotenv/-/lazy-universal-dotenv-4.0.0.tgz",
- "integrity": "sha512-aXpZJRnTkpK6gQ/z4nk+ZBLd/Qdp118cvPruLSIQzQNRhKwEcdXCOzXuF55VDqIiuAaY3UGZ10DJtvZzDcvsxg==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"app-root-dir": "^1.0.2",
"dotenv": "^16.0.0",
@@ -33509,22 +31940,23 @@
},
"node_modules/lazy-universal-dotenv/node_modules/dotenv-expand": {
"version": "10.0.0",
- "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-10.0.0.tgz",
- "integrity": "sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==",
"dev": true,
+ "license": "BSD-2-Clause",
"engines": {
"node": ">=12"
}
},
"node_modules/lazy-val": {
"version": "1.0.5",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz",
+ "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==",
+ "dev": true
},
"node_modules/lazystream": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz",
+ "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"readable-stream": "^2.0.5"
@@ -33564,8 +31996,7 @@
},
"node_modules/lie": {
"version": "3.1.1",
- "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz",
- "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==",
+ "license": "MIT",
"dependencies": {
"immediate": "~3.0.5"
}
@@ -33591,8 +32022,7 @@
},
"node_modules/lightningcss": {
"version": "1.19.0",
- "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.19.0.tgz",
- "integrity": "sha512-yV5UR7og+Og7lQC+70DA7a8ta1uiOPnWPJfxa0wnxylev5qfo4P+4iMpzWAdYWOca4jdNQZii+bDL/l+4hUXIA==",
+ "license": "MPL-2.0",
"dependencies": {
"detect-libc": "^1.0.3"
},
@@ -33616,11 +32046,10 @@
},
"node_modules/lightningcss-darwin-arm64": {
"version": "1.19.0",
- "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.19.0.tgz",
- "integrity": "sha512-wIJmFtYX0rXHsXHSr4+sC5clwblEMji7HHQ4Ub1/CznVRxtCFha6JIt5JZaNf8vQrfdZnBxLLC6R8pC818jXqg==",
"cpu": [
"arm64"
],
+ "license": "MPL-2.0",
"optional": true,
"os": [
"darwin"
@@ -33633,143 +32062,9 @@
"url": "https://opencollective.com/parcel"
}
},
- "node_modules/lightningcss-darwin-x64": {
- "version": "1.19.0",
- "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.19.0.tgz",
- "integrity": "sha512-Lif1wD6P4poaw9c/4Uh2z+gmrWhw/HtXFoeZ3bEsv6Ia4tt8rOJBdkfVaUJ6VXmpKHALve+iTyP2+50xY1wKPw==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-arm-gnueabihf": {
- "version": "1.19.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.19.0.tgz",
- "integrity": "sha512-P15VXY5682mTXaiDtbnLYQflc8BYb774j2R84FgDLJTN6Qp0ZjWEFyN1SPqyfTj2B2TFjRHRUvQSSZ7qN4Weig==",
- "cpu": [
- "arm"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-arm64-gnu": {
- "version": "1.19.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.19.0.tgz",
- "integrity": "sha512-zwXRjWqpev8wqO0sv0M1aM1PpjHz6RVIsBcxKszIG83Befuh4yNysjgHVplF9RTU7eozGe3Ts7r6we1+Qkqsww==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-arm64-musl": {
- "version": "1.19.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.19.0.tgz",
- "integrity": "sha512-vSCKO7SDnZaFN9zEloKSZM5/kC5gbzUjoJQ43BvUpyTFUX7ACs/mDfl2Eq6fdz2+uWhUh7vf92c4EaaP4udEtA==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-x64-gnu": {
- "version": "1.19.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.19.0.tgz",
- "integrity": "sha512-0AFQKvVzXf9byrXUq9z0anMGLdZJS+XSDqidyijI5njIwj6MdbvX2UZK/c4FfNmeRa2N/8ngTffoIuOUit5eIQ==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-x64-musl": {
- "version": "1.19.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.19.0.tgz",
- "integrity": "sha512-SJoM8CLPt6ECCgSuWe+g0qo8dqQYVcPiW2s19dxkmSI5+Uu1GIRzyKA0b7QqmEXolA+oSJhQqCmJpzjY4CuZAg==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-win32-x64-msvc": {
- "version": "1.19.0",
- "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.19.0.tgz",
- "integrity": "sha512-C+VuUTeSUOAaBZZOPT7Etn/agx/MatzJzGRkeV+zEABmPuntv1zihncsi+AyGmjkkzq3wVedEy7h0/4S84mUtg==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
"node_modules/lightningcss/node_modules/detect-libc": {
"version": "1.0.3",
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
- "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==",
+ "license": "Apache-2.0",
"bin": {
"detect-libc": "bin/detect-libc.js"
},
@@ -33844,8 +32139,7 @@
},
"node_modules/localforage": {
"version": "1.10.0",
- "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz",
- "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==",
+ "license": "Apache-2.0",
"dependencies": {
"lie": "3.1.1"
}
@@ -33879,20 +32173,23 @@
},
"node_modules/lodash.defaults": {
"version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
+ "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==",
"dev": true,
- "license": "MIT",
"peer": true
},
"node_modules/lodash.difference": {
"version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz",
+ "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==",
"dev": true,
- "license": "MIT",
"peer": true
},
"node_modules/lodash.flatten": {
"version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz",
+ "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==",
"dev": true,
- "license": "MIT",
"peer": true
},
"node_modules/lodash.isequal": {
@@ -33901,15 +32198,15 @@
},
"node_modules/lodash.isplainobject": {
"version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
+ "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==",
"dev": true,
- "license": "MIT",
"peer": true
},
"node_modules/lodash.memoize": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
- "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/lodash.merge": {
"version": "4.6.2",
@@ -33922,14 +32219,14 @@
},
"node_modules/lodash.union": {
"version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz",
+ "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==",
"dev": true,
- "license": "MIT",
"peer": true
},
"node_modules/log-symbols": {
"version": "4.1.0",
- "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
- "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
+ "license": "MIT",
"dependencies": {
"chalk": "^4.1.0",
"is-unicode-supported": "^0.1.0"
@@ -33943,8 +32240,7 @@
},
"node_modules/log-symbols/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==",
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -33957,8 +32253,7 @@
},
"node_modules/log-symbols/node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -33972,8 +32267,7 @@
},
"node_modules/log-symbols/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==",
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -33983,21 +32277,18 @@
},
"node_modules/log-symbols/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=="
+ "license": "MIT"
},
"node_modules/log-symbols/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==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/log-symbols/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==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -34007,8 +32298,7 @@
},
"node_modules/logkitty": {
"version": "0.7.1",
- "resolved": "https://registry.npmjs.org/logkitty/-/logkitty-0.7.1.tgz",
- "integrity": "sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==",
+ "license": "MIT",
"dependencies": {
"ansi-fragments": "^0.2.1",
"dayjs": "^1.8.15",
@@ -34020,8 +32310,7 @@
},
"node_modules/logkitty/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==",
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -34034,16 +32323,14 @@
},
"node_modules/logkitty/node_modules/camelcase": {
"version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/logkitty/node_modules/cliui": {
"version": "6.0.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
- "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+ "license": "ISC",
"dependencies": {
"string-width": "^4.2.0",
"strip-ansi": "^6.0.0",
@@ -34052,8 +32339,7 @@
},
"node_modules/logkitty/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==",
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -34063,13 +32349,11 @@
},
"node_modules/logkitty/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=="
+ "license": "MIT"
},
"node_modules/logkitty/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==",
+ "license": "MIT",
"dependencies": {
"locate-path": "^5.0.0",
"path-exists": "^4.0.0"
@@ -34080,8 +32364,7 @@
},
"node_modules/logkitty/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==",
+ "license": "MIT",
"dependencies": {
"p-locate": "^4.1.0"
},
@@ -34091,8 +32374,7 @@
},
"node_modules/logkitty/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==",
+ "license": "MIT",
"dependencies": {
"p-try": "^2.0.0"
},
@@ -34105,8 +32387,7 @@
},
"node_modules/logkitty/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==",
+ "license": "MIT",
"dependencies": {
"p-limit": "^2.2.0"
},
@@ -34116,16 +32397,14 @@
},
"node_modules/logkitty/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==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/logkitty/node_modules/wrap-ansi": {
"version": "6.2.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
- "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
@@ -34137,8 +32416,7 @@
},
"node_modules/logkitty/node_modules/yargs": {
"version": "15.4.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
- "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
+ "license": "MIT",
"dependencies": {
"cliui": "^6.0.0",
"decamelize": "^1.2.0",
@@ -34158,8 +32436,7 @@
},
"node_modules/logkitty/node_modules/yargs-parser": {
"version": "18.1.3",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
- "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+ "license": "ISC",
"dependencies": {
"camelcase": "^5.0.0",
"decamelize": "^1.2.0"
@@ -34187,8 +32464,7 @@
},
"node_modules/lottie-react-native": {
"version": "6.5.1",
- "resolved": "https://registry.npmjs.org/lottie-react-native/-/lottie-react-native-6.5.1.tgz",
- "integrity": "sha512-pjih71P6qX6Ax5ucUBA+YJO7+fnveI581Bd8LmYeARm3spq3AnoGzEkrWaieM8odnK6WI4d5dwEJsxge/QjFPw==",
+ "license": "Apache-2.0",
"peerDependencies": {
"@dotlottie/react-player": "^1.6.1",
"@lottiefiles/react-lottie-player": "^3.5.3",
@@ -34244,9 +32520,8 @@
},
"node_modules/magic-string": {
"version": "0.30.10",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz",
- "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jridgewell/sourcemap-codec": "^1.4.15"
}
@@ -34288,6 +32563,173 @@
"url": "https://github.com/wojtekmaj/make-event-props?sponsor=1"
}
},
+ "node_modules/make-fetch-happen": {
+ "version": "10.2.1",
+ "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz",
+ "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==",
+ "dev": true,
+ "dependencies": {
+ "agentkeepalive": "^4.2.1",
+ "cacache": "^16.1.0",
+ "http-cache-semantics": "^4.1.0",
+ "http-proxy-agent": "^5.0.0",
+ "https-proxy-agent": "^5.0.0",
+ "is-lambda": "^1.0.1",
+ "lru-cache": "^7.7.1",
+ "minipass": "^3.1.6",
+ "minipass-collect": "^1.0.2",
+ "minipass-fetch": "^2.0.3",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.4",
+ "negotiator": "^0.6.3",
+ "promise-retry": "^2.0.1",
+ "socks-proxy-agent": "^7.0.0",
+ "ssri": "^9.0.0"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "node_modules/make-fetch-happen/node_modules/@npmcli/fs": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz",
+ "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==",
+ "dev": true,
+ "dependencies": {
+ "@gar/promisify": "^1.1.3",
+ "semver": "^7.3.5"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "node_modules/make-fetch-happen/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/make-fetch-happen/node_modules/cacache": {
+ "version": "16.1.3",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz",
+ "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==",
+ "dev": true,
+ "dependencies": {
+ "@npmcli/fs": "^2.1.0",
+ "@npmcli/move-file": "^2.0.0",
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.1.0",
+ "glob": "^8.0.1",
+ "infer-owner": "^1.0.4",
+ "lru-cache": "^7.7.1",
+ "minipass": "^3.1.6",
+ "minipass-collect": "^1.0.2",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.4",
+ "mkdirp": "^1.0.4",
+ "p-map": "^4.0.0",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^3.0.2",
+ "ssri": "^9.0.0",
+ "tar": "^6.1.11",
+ "unique-filename": "^2.0.0"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "node_modules/make-fetch-happen/node_modules/glob": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
+ "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
+ "dev": true,
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^5.0.1",
+ "once": "^1.3.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/make-fetch-happen/node_modules/lru-cache": {
+ "version": "7.18.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
+ "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/make-fetch-happen/node_modules/minimatch": {
+ "version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+ "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/make-fetch-happen/node_modules/minipass-collect": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz",
+ "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==",
+ "dev": true,
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/make-fetch-happen/node_modules/ssri": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz",
+ "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==",
+ "dev": true,
+ "dependencies": {
+ "minipass": "^3.1.1"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "node_modules/make-fetch-happen/node_modules/unique-filename": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz",
+ "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==",
+ "dev": true,
+ "dependencies": {
+ "unique-slug": "^3.0.0"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "node_modules/make-fetch-happen/node_modules/unique-slug": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz",
+ "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==",
+ "dev": true,
+ "dependencies": {
+ "imurmurhash": "^0.1.4"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
"node_modules/makeerror": {
"version": "1.0.12",
"license": "BSD-3-Clause",
@@ -34297,8 +32739,7 @@
},
"node_modules/map-age-cleaner": {
"version": "0.1.3",
- "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
- "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"p-defer": "^1.0.0"
@@ -34317,9 +32758,8 @@
},
"node_modules/map-or-similar": {
"version": "1.5.0",
- "resolved": "https://registry.npmjs.org/map-or-similar/-/map-or-similar-1.5.0.tgz",
- "integrity": "sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/map-visit": {
"version": "1.0.0",
@@ -34362,9 +32802,8 @@
},
"node_modules/markdown-table": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz",
- "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"repeat-string": "^1.0.0"
},
@@ -34375,9 +32814,8 @@
},
"node_modules/markdown-to-jsx": {
"version": "7.3.2",
- "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.3.2.tgz",
- "integrity": "sha512-B+28F5ucp83aQm+OxNrPkS8z0tMKaeHiy0lHJs3LqCyDQFtWuenaIrkaVTgAm1pf1AU85LXltva86hlaT17i8Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 10"
},
@@ -34402,9 +32840,8 @@
},
"node_modules/mathjs": {
"version": "12.4.3",
- "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-12.4.3.tgz",
- "integrity": "sha512-oHdGPDbp7gO873xxG90RLq36IuicuKvbpr/bBG5g9c8Obm/VsKVrK9uoRZZHUodohzlnmCEqfDzbR3LH6m+aAQ==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"@babel/runtime": "^7.24.4",
"complex.js": "^2.1.1",
@@ -34425,8 +32862,7 @@
},
"node_modules/md5": {
"version": "2.3.0",
- "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz",
- "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==",
+ "license": "BSD-3-Clause",
"dependencies": {
"charenc": "0.0.2",
"crypt": "0.0.2",
@@ -34435,8 +32871,7 @@
},
"node_modules/md5-file": {
"version": "3.2.3",
- "resolved": "https://registry.npmjs.org/md5-file/-/md5-file-3.2.3.tgz",
- "integrity": "sha512-3Tkp1piAHaworfcCgH0jKbTvj1jWWFgbvh2cXaNCgHwyTCBxxvD1Y04rmfpvdPm1P4oXMOpm6+2H7sr7v9v8Fw==",
+ "license": "MIT",
"dependencies": {
"buffer-alloc": "^1.1.0"
},
@@ -34458,8 +32893,7 @@
},
"node_modules/md5hex": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/md5hex/-/md5hex-1.0.0.tgz",
- "integrity": "sha512-c2YOUbp33+6thdCUi34xIyOU/a7bvGKj/3DB1iaPMTuPHf/Q2d5s4sn1FaCOO43XkXggnb08y5W2PU8UNYNLKQ=="
+ "license": "MIT"
},
"node_modules/mdn-data": {
"version": "2.0.14",
@@ -34474,8 +32908,7 @@
},
"node_modules/mem": {
"version": "4.3.0",
- "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
- "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"map-age-cleaner": "^0.1.1",
@@ -34546,17 +32979,15 @@
},
"node_modules/memoizerific": {
"version": "1.11.3",
- "resolved": "https://registry.npmjs.org/memoizerific/-/memoizerific-1.11.3.tgz",
- "integrity": "sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"map-or-similar": "^1.5.0"
}
},
"node_modules/memory-cache": {
"version": "0.2.0",
- "resolved": "https://registry.npmjs.org/memory-cache/-/memory-cache-0.2.0.tgz",
- "integrity": "sha512-OcjA+jzjOYzKmKS6IQVALHLVz+rNTMPoJvCztFaZxwG14wtAW7VRZjwTQu06vKCYOxh4jVnik7ya0SXTB0W+xA=="
+ "license": "BSD-2-Clause"
},
"node_modules/memory-fs": {
"version": "0.4.1",
@@ -35196,8 +33627,7 @@
},
"node_modules/minipass-collect": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz",
- "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==",
+ "license": "ISC",
"dependencies": {
"minipass": "^7.0.3"
},
@@ -35207,16 +33637,31 @@
},
"node_modules/minipass-collect/node_modules/minipass": {
"version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+ "license": "ISC",
"engines": {
"node": ">=16 || 14 >=14.17"
}
},
+ "node_modules/minipass-fetch": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz",
+ "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==",
+ "dev": true,
+ "dependencies": {
+ "minipass": "^3.1.6",
+ "minipass-sized": "^1.0.3",
+ "minizlib": "^2.1.2"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ },
+ "optionalDependencies": {
+ "encoding": "^0.1.13"
+ }
+ },
"node_modules/minipass-flush": {
"version": "1.0.5",
- "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz",
- "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
+ "license": "ISC",
"dependencies": {
"minipass": "^3.0.0"
},
@@ -35226,8 +33671,19 @@
},
"node_modules/minipass-pipeline": {
"version": "1.2.4",
- "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
- "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
+ "license": "ISC",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/minipass-sized": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz",
+ "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==",
+ "dev": true,
"dependencies": {
"minipass": "^3.0.0"
},
@@ -35295,14 +33751,12 @@
},
"node_modules/mkdirp-classic": {
"version": "0.5.3",
- "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
- "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/module-details-from-path": {
"version": "1.0.3",
- "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz",
- "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==",
+ "license": "MIT",
"peer": true
},
"node_modules/mrmime": {
@@ -35319,9 +33773,8 @@
},
"node_modules/multicast-dns": {
"version": "7.2.5",
- "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz",
- "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"dns-packet": "^5.2.2",
"thunky": "^1.0.2"
@@ -35336,8 +33789,7 @@
},
"node_modules/mustache": {
"version": "4.2.0",
- "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz",
- "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==",
+ "license": "MIT",
"peer": true,
"bin": {
"mustache": "bin/mustache"
@@ -35345,8 +33797,7 @@
},
"node_modules/mv": {
"version": "2.1.1",
- "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz",
- "integrity": "sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==",
+ "license": "MIT",
"optional": true,
"dependencies": {
"mkdirp": "~0.5.1",
@@ -35359,9 +33810,7 @@
},
"node_modules/mv/node_modules/glob": {
"version": "6.0.4",
- "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
- "integrity": "sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
+ "license": "ISC",
"optional": true,
"dependencies": {
"inflight": "^1.0.4",
@@ -35376,8 +33825,7 @@
},
"node_modules/mv/node_modules/mkdirp": {
"version": "0.5.6",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
- "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+ "license": "MIT",
"optional": true,
"dependencies": {
"minimist": "^1.2.6"
@@ -35388,9 +33836,7 @@
},
"node_modules/mv/node_modules/rimraf": {
"version": "2.4.5",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz",
- "integrity": "sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==",
- "deprecated": "Rimraf versions prior to v4 are no longer supported",
+ "license": "ISC",
"optional": true,
"dependencies": {
"glob": "^6.0.1"
@@ -35456,14 +33902,12 @@
},
"node_modules/natural-compare-lite": {
"version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz",
- "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/ncp": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz",
- "integrity": "sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==",
+ "license": "MIT",
"optional": true,
"bin": {
"ncp": "bin/ncp"
@@ -35482,8 +33926,7 @@
},
"node_modules/nested-error-stacks": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz",
- "integrity": "sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A=="
+ "license": "MIT"
},
"node_modules/nice-try": {
"version": "1.0.5",
@@ -35499,8 +33942,7 @@
},
"node_modules/nocache": {
"version": "3.0.4",
- "resolved": "https://registry.npmjs.org/nocache/-/nocache-3.0.4.tgz",
- "integrity": "sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==",
+ "license": "MIT",
"engines": {
"node": ">=12.0.0"
}
@@ -35518,16 +33960,38 @@
"node": ">= 10.13"
}
},
+ "node_modules/node-abi": {
+ "version": "3.65.0",
+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.65.0.tgz",
+ "integrity": "sha512-ThjYBfoDNr08AWx6hGaRbfPwxKV9kVzAzOzlLKbk2CuqXE2xnCh+cbAGnwM3t8Lq4v9rUB7VfondlkBckcJrVA==",
+ "dev": true,
+ "dependencies": {
+ "semver": "^7.3.5"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/node-abort-controller": {
"version": "3.1.1",
"license": "MIT"
},
"node_modules/node-addon-api": {
"version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz",
+ "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==",
"dev": true,
- "license": "MIT",
"optional": true
},
+ "node_modules/node-api-version": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/node-api-version/-/node-api-version-0.2.0.tgz",
+ "integrity": "sha512-fthTTsi8CxaBXMaBAD7ST2uylwvsnYxh2PfaScwpMhos6KlSFajXQPcM4ogNE1q2s3Lbz9GCGqeIHC+C6OZnKg==",
+ "dev": true,
+ "dependencies": {
+ "semver": "^7.3.5"
+ }
+ },
"node_modules/node-dir": {
"version": "0.1.17",
"license": "MIT",
@@ -35558,9 +34022,8 @@
},
"node_modules/node-fetch-native": {
"version": "1.6.4",
- "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.4.tgz",
- "integrity": "sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/node-fetch/node_modules/tr46": {
"version": "0.0.3",
@@ -35585,6 +34048,95 @@
"node": ">= 6.13.0"
}
},
+ "node_modules/node-gyp": {
+ "version": "9.4.1",
+ "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.1.tgz",
+ "integrity": "sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==",
+ "dev": true,
+ "dependencies": {
+ "env-paths": "^2.2.0",
+ "exponential-backoff": "^3.1.1",
+ "glob": "^7.1.4",
+ "graceful-fs": "^4.2.6",
+ "make-fetch-happen": "^10.0.3",
+ "nopt": "^6.0.0",
+ "npmlog": "^6.0.0",
+ "rimraf": "^3.0.2",
+ "semver": "^7.3.5",
+ "tar": "^6.1.2",
+ "which": "^2.0.2"
+ },
+ "bin": {
+ "node-gyp": "bin/node-gyp.js"
+ },
+ "engines": {
+ "node": "^12.13 || ^14.13 || >=16"
+ }
+ },
+ "node_modules/node-gyp/node_modules/are-we-there-yet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz",
+ "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==",
+ "deprecated": "This package is no longer supported.",
+ "dev": true,
+ "dependencies": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^3.6.0"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "node_modules/node-gyp/node_modules/gauge": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz",
+ "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==",
+ "deprecated": "This package is no longer supported.",
+ "dev": true,
+ "dependencies": {
+ "aproba": "^1.0.3 || ^2.0.0",
+ "color-support": "^1.1.3",
+ "console-control-strings": "^1.1.0",
+ "has-unicode": "^2.0.1",
+ "signal-exit": "^3.0.7",
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1",
+ "wide-align": "^1.1.5"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "node_modules/node-gyp/node_modules/npmlog": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz",
+ "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==",
+ "deprecated": "This package is no longer supported.",
+ "dev": true,
+ "dependencies": {
+ "are-we-there-yet": "^3.0.0",
+ "console-control-strings": "^1.1.0",
+ "gauge": "^4.0.3",
+ "set-blocking": "^2.0.0"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "node_modules/node-gyp/node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "dev": true,
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
"node_modules/node-int64": {
"version": "0.4.0",
"license": "MIT"
@@ -35637,13 +34189,11 @@
},
"node_modules/node-releases": {
"version": "2.0.14",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
- "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw=="
+ "license": "MIT"
},
"node_modules/node-stream-zip": {
"version": "1.15.0",
- "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz",
- "integrity": "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==",
+ "license": "MIT",
"engines": {
"node": ">=0.12.0"
},
@@ -35652,6 +34202,21 @@
"url": "https://github.com/sponsors/antelle"
}
},
+ "node_modules/nopt": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz",
+ "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==",
+ "dev": true,
+ "dependencies": {
+ "abbrev": "^1.0.0"
+ },
+ "bin": {
+ "nopt": "bin/nopt.js"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
"node_modules/normalize-package-data": {
"version": "2.5.0",
"license": "BSD-2-Clause",
@@ -35700,8 +34265,7 @@
},
"node_modules/npm-package-arg": {
"version": "7.0.0",
- "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-7.0.0.tgz",
- "integrity": "sha512-xXxr8y5U0kl8dVkz2oK7yZjPBvqM2fwaO5l3Yg13p03v8+E3qQcD0JNhHzjL1vyGgxcKkD0cco+NLR72iuPk3g==",
+ "license": "ISC",
"dependencies": {
"hosted-git-info": "^3.0.2",
"osenv": "^0.1.5",
@@ -35711,8 +34275,7 @@
},
"node_modules/npm-package-arg/node_modules/hosted-git-info": {
"version": "3.0.8",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz",
- "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==",
+ "license": "ISC",
"dependencies": {
"lru-cache": "^6.0.0"
},
@@ -35722,8 +34285,7 @@
},
"node_modules/npm-package-arg/node_modules/semver": {
"version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "license": "ISC",
"bin": {
"semver": "bin/semver"
}
@@ -35776,9 +34338,8 @@
},
"node_modules/nypm": {
"version": "0.3.8",
- "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.3.8.tgz",
- "integrity": "sha512-IGWlC6So2xv6V4cIDmoV0SwwWx7zLG086gyqkyumteH2fIgCAM4nDVFB2iDRszDvmdSVW9xb1N+2KjQ6C7d4og==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"citty": "^0.1.6",
"consola": "^3.2.3",
@@ -35795,9 +34356,8 @@
},
"node_modules/nypm/node_modules/execa": {
"version": "8.0.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz",
- "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"cross-spawn": "^7.0.3",
"get-stream": "^8.0.1",
@@ -35818,9 +34378,8 @@
},
"node_modules/nypm/node_modules/get-stream": {
"version": "8.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz",
- "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=16"
},
@@ -35830,18 +34389,16 @@
},
"node_modules/nypm/node_modules/human-signals": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz",
- "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": ">=16.17.0"
}
},
"node_modules/nypm/node_modules/is-stream": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
- "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
@@ -35851,9 +34408,8 @@
},
"node_modules/nypm/node_modules/mimic-fn": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
- "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -35863,9 +34419,8 @@
},
"node_modules/nypm/node_modules/npm-run-path": {
"version": "5.3.0",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz",
- "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"path-key": "^4.0.0"
},
@@ -35878,9 +34433,8 @@
},
"node_modules/nypm/node_modules/onetime": {
"version": "6.0.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
- "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"mimic-fn": "^4.0.0"
},
@@ -35893,9 +34447,8 @@
},
"node_modules/nypm/node_modules/path-key": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
- "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -35905,9 +34458,8 @@
},
"node_modules/nypm/node_modules/signal-exit": {
"version": "4.1.0",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": ">=14"
},
@@ -35917,9 +34469,8 @@
},
"node_modules/nypm/node_modules/strip-final-newline": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
- "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -36021,8 +34572,7 @@
},
"node_modules/object-inspect": {
"version": "1.13.1",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
- "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
+ "license": "MIT",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -36065,8 +34615,8 @@
"dev": true,
"license": "MIT",
"dependencies": {
- "call-bind": "^1.0.5",
- "define-properties": "^1.2.1",
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
"has-symbols": "^1.0.3",
"object-keys": "^1.1.1"
},
@@ -36168,9 +34718,8 @@
},
"node_modules/ohash": {
"version": "1.1.3",
- "resolved": "https://registry.npmjs.org/ohash/-/ohash-1.1.3.tgz",
- "integrity": "sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/on-finished": {
"version": "2.4.1",
@@ -36262,9 +34811,8 @@
},
"node_modules/optionator": {
"version": "0.9.4",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
- "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"deep-is": "^0.1.3",
"fast-levenshtein": "^2.0.6",
@@ -36279,8 +34827,7 @@
},
"node_modules/ora": {
"version": "5.4.1",
- "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz",
- "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
+ "license": "MIT",
"dependencies": {
"bl": "^4.1.0",
"chalk": "^4.1.0",
@@ -36301,8 +34848,7 @@
},
"node_modules/ora/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==",
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -36315,8 +34861,7 @@
},
"node_modules/ora/node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -36330,8 +34875,7 @@
},
"node_modules/ora/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==",
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -36341,21 +34885,18 @@
},
"node_modules/ora/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=="
+ "license": "MIT"
},
"node_modules/ora/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==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/ora/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==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -36369,8 +34910,7 @@
},
"node_modules/os-homedir": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
- "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==",
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -36394,9 +34934,7 @@
},
"node_modules/osenv": {
"version": "0.1.5",
- "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
- "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
- "deprecated": "This package is no longer supported.",
+ "license": "ISC",
"dependencies": {
"os-homedir": "^1.0.0",
"os-tmpdir": "^1.0.0"
@@ -36412,8 +34950,7 @@
},
"node_modules/p-defer": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
- "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=4"
@@ -36428,8 +34965,7 @@
},
"node_modules/p-is-promise": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz",
- "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=6"
@@ -36463,8 +34999,7 @@
},
"node_modules/p-map": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
- "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
+ "license": "MIT",
"dependencies": {
"aggregate-error": "^3.0.0"
},
@@ -36477,9 +35012,8 @@
},
"node_modules/p-retry": {
"version": "6.2.0",
- "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.0.tgz",
- "integrity": "sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/retry": "0.12.2",
"is-network-error": "^1.0.0",
@@ -36501,8 +35035,7 @@
},
"node_modules/package-json-from-dist": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz",
- "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw=="
+ "license": "BlueOak-1.0.0"
},
"node_modules/pako": {
"version": "1.0.11",
@@ -36555,8 +35088,7 @@
},
"node_modules/parse-png": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/parse-png/-/parse-png-2.1.0.tgz",
- "integrity": "sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==",
+ "license": "MIT",
"dependencies": {
"pngjs": "^3.3.0"
},
@@ -36566,8 +35098,7 @@
},
"node_modules/parse-png/node_modules/pngjs": {
"version": "3.4.0",
- "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz",
- "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==",
+ "license": "MIT",
"engines": {
"node": ">=4.0.0"
}
@@ -36597,8 +35128,7 @@
},
"node_modules/password-prompt": {
"version": "1.1.3",
- "resolved": "https://registry.npmjs.org/password-prompt/-/password-prompt-1.1.3.tgz",
- "integrity": "sha512-HkrjG2aJlvF0t2BMH0e2LB/EHf3Lcq3fNMzy4GYHcQblAvOl+QQji1Lx7WRBMqpVK8p+KR7bCg7oqAMXtdgqyw==",
+ "license": "0BSD",
"dependencies": {
"ansi-escapes": "^4.3.2",
"cross-spawn": "^7.0.3"
@@ -36606,8 +35136,6 @@
},
"node_modules/patch-package": {
"version": "8.0.0",
- "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-8.0.0.tgz",
- "integrity": "sha512-da8BVIhzjtgScwDJ2TtKsfT5JFWz1hYoBl9rUQ1f38MC2HwnEIkK8VN3dKMKcP7P7bvvgzNDbfNHtx3MsQb5vA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -36637,8 +35165,6 @@
},
"node_modules/patch-package/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,
"license": "MIT",
"dependencies": {
@@ -36653,8 +35179,6 @@
},
"node_modules/patch-package/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,
"license": "MIT",
"dependencies": {
@@ -36670,8 +35194,6 @@
},
"node_modules/patch-package/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,
"license": "MIT",
"dependencies": {
@@ -36683,15 +35205,11 @@
},
"node_modules/patch-package/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,
"license": "MIT"
},
"node_modules/patch-package/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,
"license": "MIT",
"engines": {
@@ -36700,8 +35218,6 @@
},
"node_modules/patch-package/node_modules/open": {
"version": "7.4.2",
- "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
- "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -36717,8 +35233,6 @@
},
"node_modules/patch-package/node_modules/rimraf": {
"version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -36730,8 +35244,6 @@
},
"node_modules/patch-package/node_modules/slash": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
- "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
"dev": true,
"license": "MIT",
"engines": {
@@ -36740,8 +35252,6 @@
},
"node_modules/patch-package/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,
"license": "MIT",
"dependencies": {
@@ -36753,8 +35263,6 @@
},
"node_modules/patch-package/node_modules/tmp": {
"version": "0.0.33",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
- "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -36805,8 +35313,7 @@
},
"node_modules/path-scurry": {
"version": "1.11.1",
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
- "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
+ "license": "BlueOak-1.0.0",
"dependencies": {
"lru-cache": "^10.2.0",
"minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
@@ -36820,8 +35327,7 @@
},
"node_modules/path-scurry/node_modules/lru-cache": {
"version": "10.2.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz",
- "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==",
+ "license": "ISC",
"engines": {
"node": "14 || >=16.14"
}
@@ -36846,8 +35352,7 @@
},
"node_modules/path2d-polyfill": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/path2d-polyfill/-/path2d-polyfill-2.0.1.tgz",
- "integrity": "sha512-ad/3bsalbbWhmBo0D6FZ4RNMwsLsPpL6gnvhuSaU5Vm7b06Kr5ubSltQQ0T7YKsiJQO+g22zJ4dJKNTXIyOXtA==",
+ "license": "MIT",
"optional": true,
"engines": {
"node": ">=8"
@@ -36855,9 +35360,8 @@
},
"node_modules/pathe": {
"version": "1.1.2",
- "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz",
- "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/pbf": {
"version": "3.2.1",
@@ -36886,8 +35390,7 @@
},
"node_modules/pdfjs-dist": {
"version": "3.11.174",
- "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-3.11.174.tgz",
- "integrity": "sha512-TdTZPf1trZ8/UFu5Cx/GXB7GZM30LT+wWUNfsi6Bq8ePLnb+woNKtDymI2mxZYBpMbonNFqKmiz684DIfnd8dA==",
+ "license": "Apache-2.0",
"engines": {
"node": ">=18"
},
@@ -36896,11 +35399,20 @@
"path2d-polyfill": "^2.0.1"
}
},
+ "node_modules/pe-library": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/pe-library/-/pe-library-0.4.0.tgz",
+ "integrity": "sha512-JAmVv2jGxmczplhHO7UoFGJ+pM/yMBpny3vNjwNFuaeQfzKlekQidZ8Ss8EJ0qee8wEQN4lY2IwtWx2oRfMsag==",
+ "dev": true,
+ "engines": {
+ "node": ">=12",
+ "npm": ">=6"
+ }
+ },
"node_modules/peek-stream": {
"version": "1.1.3",
- "resolved": "https://registry.npmjs.org/peek-stream/-/peek-stream-1.1.3.tgz",
- "integrity": "sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"buffer-from": "^1.0.0",
"duplexify": "^3.5.0",
@@ -36909,9 +35421,8 @@
},
"node_modules/peggy": {
"version": "4.0.3",
- "resolved": "https://registry.npmjs.org/peggy/-/peggy-4.0.3.tgz",
- "integrity": "sha512-v7/Pt6kGYsfXsCrfb52q7/yg5jaAwiVaUMAPLPvy4DJJU6Wwr72t6nDIqIDkGfzd1B4zeVuTnQT0RGeOhe/uSA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@peggyjs/from-mem": "1.3.0",
"commander": "^12.1.0",
@@ -36926,9 +35437,8 @@
},
"node_modules/peggy/node_modules/commander": {
"version": "12.1.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz",
- "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=18"
}
@@ -36940,8 +35450,7 @@
},
"node_modules/picocolors": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
+ "license": "ISC"
},
"node_modules/picomatch": {
"version": "2.3.1",
@@ -36979,17 +35488,15 @@
},
"node_modules/pirates": {
"version": "4.0.6",
- "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
- "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
+ "license": "MIT",
"engines": {
"node": ">= 6"
}
},
"node_modules/pkg-dir": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz",
- "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"find-up": "^5.0.0"
},
@@ -37057,14 +35564,24 @@
}
},
"node_modules/plist": {
- "version": "3.0.6",
- "license": "MIT",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz",
+ "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==",
"dependencies": {
+ "@xmldom/xmldom": "^0.8.8",
"base64-js": "^1.5.1",
"xmlbuilder": "^15.1.1"
},
"engines": {
- "node": ">=6"
+ "node": ">=10.4.0"
+ }
+ },
+ "node_modules/plist/node_modules/@xmldom/xmldom": {
+ "version": "0.8.10",
+ "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz",
+ "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==",
+ "engines": {
+ "node": ">=10.0.0"
}
},
"node_modules/plist/node_modules/xmlbuilder": {
@@ -37083,9 +35600,8 @@
},
"node_modules/polished": {
"version": "4.3.1",
- "resolved": "https://registry.npmjs.org/polished/-/polished-4.3.1.tgz",
- "integrity": "sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/runtime": "^7.17.8"
},
@@ -37143,16 +35659,13 @@
},
"node_modules/possible-typed-array-names": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz",
- "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==",
+ "license": "MIT",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/postcss": {
"version": "8.4.38",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz",
- "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==",
"funding": [
{
"type": "opencollective",
@@ -37167,6 +35680,7 @@
"url": "https://github.com/sponsors/ai"
}
],
+ "license": "MIT",
"dependencies": {
"nanoid": "^3.3.7",
"picocolors": "^1.0.0",
@@ -37221,9 +35735,8 @@
"node_modules/prettier-fallback": {
"name": "prettier",
"version": "3.3.2",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz",
- "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==",
"dev": true,
+ "license": "MIT",
"bin": {
"prettier": "bin/prettier.cjs"
},
@@ -37236,9 +35749,8 @@
},
"node_modules/prettier-linter-helpers": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
- "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"fast-diff": "^1.1.2"
},
@@ -37248,8 +35760,7 @@
},
"node_modules/pretty-bytes": {
"version": "5.6.0",
- "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz",
- "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==",
+ "license": "MIT",
"engines": {
"node": ">=6"
},
@@ -37289,9 +35800,8 @@
},
"node_modules/pretty-hrtime": {
"version": "1.0.3",
- "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz",
- "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.8"
}
@@ -37321,6 +35831,12 @@
"asap": "~2.0.3"
}
},
+ "node_modules/promise-inflight": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
+ "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==",
+ "dev": true
+ },
"node_modules/promise-retry": {
"version": "2.0.1",
"dev": true,
@@ -37363,8 +35879,7 @@
},
"node_modules/prop-types/node_modules/react-is": {
"version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+ "license": "MIT"
},
"node_modules/propagate": {
"version": "2.0.1",
@@ -37422,9 +35937,8 @@
},
"node_modules/pumpify": {
"version": "1.5.1",
- "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
- "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"duplexify": "^3.6.0",
"inherits": "^2.0.3",
@@ -37433,9 +35947,8 @@
},
"node_modules/pumpify/node_modules/pump": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
- "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"end-of-stream": "^1.1.0",
"once": "^1.3.1"
@@ -37450,8 +35963,6 @@
},
"node_modules/pure-rand": {
"version": "6.0.4",
- "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz",
- "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==",
"funding": [
{
"type": "individual",
@@ -37461,7 +35972,8 @@
"type": "opencollective",
"url": "https://opencollective.com/fast-check"
}
- ]
+ ],
+ "license": "MIT"
},
"node_modules/pusher-js": {
"version": "8.3.0",
@@ -37496,8 +36008,6 @@
},
"node_modules/qrcode-terminal": {
"version": "0.11.0",
- "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.11.0.tgz",
- "integrity": "sha512-Uu7ii+FQy4Qf82G4xu7ShHhjhGahEpCWc3x8UavY3CTcWV+ufmmCtwkr7ZKsX42jdL0kr1B5FKUeqJvAn51jzQ==",
"bin": {
"qrcode-terminal": "bin/qrcode-terminal.js"
}
@@ -37744,9 +36254,8 @@
},
"node_modules/ramda": {
"version": "0.29.0",
- "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.29.0.tgz",
- "integrity": "sha512-BBea6L67bYLtdbOqfp8f58fPMqEwx0doL+pAi8TZyp2YWz8R9G8z9x75CZI8W+ftqhFHCpEX2cRnUUXK130iKA==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/ramda"
@@ -37813,8 +36322,7 @@
},
"node_modules/rc": {
"version": "1.2.8",
- "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
- "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "license": "(BSD-2-Clause OR MIT OR Apache-2.0)",
"dependencies": {
"deep-extend": "^0.6.0",
"ini": "~1.3.0",
@@ -37827,16 +36335,14 @@
},
"node_modules/rc/node_modules/strip-json-comments": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
- "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/react": {
"version": "19.0.0-rc-fb9a90fa48-20240614",
- "resolved": "https://registry.npmjs.org/react/-/react-19.0.0-rc-fb9a90fa48-20240614.tgz",
- "integrity": "sha512-nvE3Gy+IOIfH/DXhkyxFVQSrITarFcQz4+shzC/McxQXEUSonpw2oDy/Wi9hdDtV3hlP12VYuDL95iiBREedNQ==",
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -37867,9 +36373,8 @@
},
"node_modules/react-colorful": {
"version": "5.6.1",
- "resolved": "https://registry.npmjs.org/react-colorful/-/react-colorful-5.6.1.tgz",
- "integrity": "sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==",
"dev": true,
+ "license": "MIT",
"peerDependencies": {
"react": ">=16.8.0",
"react-dom": ">=16.8.0"
@@ -37877,9 +36382,8 @@
},
"node_modules/react-compiler-healthcheck": {
"version": "0.0.0-experimental-b130d5f-20240625",
- "resolved": "https://registry.npmjs.org/react-compiler-healthcheck/-/react-compiler-healthcheck-0.0.0-experimental-b130d5f-20240625.tgz",
- "integrity": "sha512-vf3Ipg+f19yOYQeRP938e5jWNEpwR6EX5pwBZdJUF9rt11vJ3ckgUVcF5qGWUU/7DB0N9MH1koBqwqMYabrBiQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/core": "^7.24.4",
"@babel/parser": "^7.24.4",
@@ -37899,9 +36403,8 @@
},
"node_modules/react-compiler-healthcheck/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,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -37914,9 +36417,8 @@
},
"node_modules/react-compiler-healthcheck/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,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -37930,9 +36432,8 @@
},
"node_modules/react-compiler-healthcheck/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,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -37942,24 +36443,21 @@
},
"node_modules/react-compiler-healthcheck/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
+ "dev": true,
+ "license": "MIT"
},
"node_modules/react-compiler-healthcheck/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,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/react-compiler-healthcheck/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,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -37973,8 +36471,7 @@
},
"node_modules/react-content-loader": {
"version": "7.0.0",
- "resolved": "https://registry.npmjs.org/react-content-loader/-/react-content-loader-7.0.0.tgz",
- "integrity": "sha512-xaBwpO7eiJyEc4ndym+g6wcruV9W2y3DKqbw4U48QFBsv0IeAVZO+aCUb8GptlDLWM8n5zi2HcFSGlj5r+53Tg==",
+ "license": "MIT",
"engines": {
"node": ">=10"
},
@@ -37984,8 +36481,7 @@
},
"node_modules/react-devtools-core": {
"version": "5.3.1",
- "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-5.3.1.tgz",
- "integrity": "sha512-7FSb9meX0btdBQLwdFOwt6bGqvRPabmVMMslv8fgoSPqXyuGpgQe36kx8gR86XPw7aV1yVouTp6fyZ0EH+NfUw==",
+ "license": "MIT",
"dependencies": {
"shell-quote": "^1.6.1",
"ws": "^7"
@@ -37993,8 +36489,7 @@
},
"node_modules/react-devtools-core/node_modules/ws": {
"version": "7.5.10",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
- "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
+ "license": "MIT",
"engines": {
"node": ">=8.3.0"
},
@@ -38013,9 +36508,8 @@
},
"node_modules/react-docgen": {
"version": "7.0.3",
- "resolved": "https://registry.npmjs.org/react-docgen/-/react-docgen-7.0.3.tgz",
- "integrity": "sha512-i8aF1nyKInZnANZ4uZrH49qn1paRgBZ7wZiCNBMnenlPzEv0mRl+ShpTVEI6wZNl8sSc79xZkivtgLKQArcanQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/core": "^7.18.9",
"@babel/traverse": "^7.18.9",
@@ -38034,24 +36528,21 @@
},
"node_modules/react-docgen-typescript": {
"version": "2.2.2",
- "resolved": "https://registry.npmjs.org/react-docgen-typescript/-/react-docgen-typescript-2.2.2.tgz",
- "integrity": "sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==",
"dev": true,
+ "license": "MIT",
"peerDependencies": {
"typescript": ">= 4.3.x"
}
},
"node_modules/react-docgen/node_modules/@types/doctrine": {
"version": "0.0.9",
- "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.9.tgz",
- "integrity": "sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/react-docgen/node_modules/strip-indent": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz",
- "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"min-indent": "^1.0.1"
},
@@ -38064,8 +36555,7 @@
},
"node_modules/react-dom": {
"version": "19.0.0-rc-fb9a90fa48-20240614",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0-rc-fb9a90fa48-20240614.tgz",
- "integrity": "sha512-PoEsPe32F7KPLYOBvZfjylEI1B67N44PwY3lyvpmBkhlluLnLz0jH8q2Wg9YidAi6z0k3iUnNRm5x10wurzt9Q==",
+ "license": "MIT",
"dependencies": {
"scheduler": "0.25.0-rc-fb9a90fa48-20240614"
},
@@ -38075,9 +36565,8 @@
},
"node_modules/react-element-to-jsx-string": {
"version": "15.0.0",
- "resolved": "https://registry.npmjs.org/react-element-to-jsx-string/-/react-element-to-jsx-string-15.0.0.tgz",
- "integrity": "sha512-UDg4lXB6BzlobN60P8fHWVPX3Kyw8ORrTeBtClmIlGdkOOE+GYQSFvmEU5iLLpwp/6v42DINwNcwOhOLfQ//FQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@base2/pretty-print-object": "1.0.1",
"is-plain-object": "5.0.0",
@@ -38090,9 +36579,8 @@
},
"node_modules/react-element-to-jsx-string/node_modules/react-is": {
"version": "18.1.0",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz",
- "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/react-error-boundary": {
"version": "4.0.11",
@@ -38106,8 +36594,7 @@
},
"node_modules/react-fast-pdf": {
"version": "1.0.14",
- "resolved": "https://registry.npmjs.org/react-fast-pdf/-/react-fast-pdf-1.0.14.tgz",
- "integrity": "sha512-iWomykxvnZtokIKpRK5xpaRfXz9ufrY7AVANtIBYsAZtX5/7VDlpIQwieljfMZwFc96TyceCnneufsgXpykTQw==",
+ "license": "MIT",
"dependencies": {
"react-pdf": "^7.7.0",
"react-window": "^1.8.10"
@@ -38135,8 +36622,7 @@
},
"node_modules/react-is": {
"version": "18.3.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
- "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="
+ "license": "MIT"
},
"node_modules/react-map-gl": {
"version": "7.1.3",
@@ -38162,8 +36648,7 @@
},
"node_modules/react-native": {
"version": "0.75.0-rc.4",
- "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.75.0-rc.4.tgz",
- "integrity": "sha512-gVrz7X/p8z/++/Tk+38HomXyFjFBMOcKouvtOZG5GKhtkHw6aHLMwtEycXljfPs5TLvJbMROvzBtSDRvwAoBfw==",
+ "license": "MIT",
"dependencies": {
"@jest/create-cache-key-function": "^29.6.3",
"@react-native-community/cli": "14.0.0-alpha.11",
@@ -38289,9 +36774,10 @@
},
"node_modules/react-native-config": {
"version": "1.5.0",
- "resolved": "https://registry.npmjs.org/react-native-config/-/react-native-config-1.5.0.tgz",
- "integrity": "sha512-slecooA/0tCwhb+RuWEbwLqtKirGh9vWPRpgDfH7uPAraCciqHNH2XjS9ylW+Spn4FUrHg5KWTqUGs9BdBADHg==",
+ "license": "MIT",
"peerDependencies": {
+ "react": "*",
+ "react-native": "*",
"react-native-windows": ">=0.61"
},
"peerDependenciesMeta": {
@@ -38309,8 +36795,7 @@
},
"node_modules/react-native-device-info": {
"version": "10.3.1",
- "resolved": "https://registry.npmjs.org/react-native-device-info/-/react-native-device-info-10.3.1.tgz",
- "integrity": "sha512-KZU1luB7UrpRT8vYdWOoGJA0e2uAvF5J1Da90QMfLrtYBm1U0tbrlYO99qLCBRq7nQvBISlhqpqikzaS0vDYYw==",
+ "license": "MIT",
"peerDependencies": {
"react-native": "*"
}
@@ -38363,8 +36848,7 @@
},
"node_modules/react-native-gesture-handler": {
"version": "2.16.0",
- "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.16.0.tgz",
- "integrity": "sha512-1hFkx7RIfeJSyTQQ0Nkv4icFVZ5+XjQkd47OgZMBFzoB7ecL+nFSz8KLi3OCWOhq+nbHpSPlSG5VF3CQNCJpWA==",
+ "license": "MIT",
"dependencies": {
"@egjs/hammerjs": "^2.0.17",
"hoist-non-react-statics": "^3.3.0",
@@ -38417,12 +36901,11 @@
"node_modules/react-native-image-size": {
"version": "1.1.3",
"resolved": "git+ssh://git@github.com/Expensify/react-native-image-size.git#bf3ad41a61c4f6f80ed4d497599ef5247a2dd002",
- "license": "MIT"
+ "integrity": "sha512-uIZLaqqjSivO+iBGx3VpZRSn/cYy18ct6S1H35gK8n74eJFb/Ds6qUJ+jGw5PUt0KEzw+aXLgPq6gHDXT5Q29A=="
},
"node_modules/react-native-key-command": {
"version": "1.0.8",
- "resolved": "https://registry.npmjs.org/react-native-key-command/-/react-native-key-command-1.0.8.tgz",
- "integrity": "sha512-9iih5hio+4RIYCYP2ZKoJb7w+eGo6E506okTBi+7oenu2oGwhTifBC30GU51Ea+h4SJgUufoQARbUvgjyLbI3w==",
+ "license": "MIT",
"dependencies": {
"eventemitter3": "^5.0.1",
"underscore": "^1.13.4"
@@ -38440,8 +36923,7 @@
},
"node_modules/react-native-keyboard-controller": {
"version": "1.12.5",
- "resolved": "https://registry.npmjs.org/react-native-keyboard-controller/-/react-native-keyboard-controller-1.12.5.tgz",
- "integrity": "sha512-eU3fgALo+Dm5OxYg97yRcL+NCupkYFrLZ63kSRf2DQWJwPHipdNUMNP4s2dv8eEfuzVtcFkoQENwUVcTsCZ8MA==",
+ "license": "MIT",
"peerDependencies": {
"react": "*",
"react-native": "*",
@@ -38484,8 +36966,7 @@
},
"node_modules/react-native-macos": {
"version": "0.73.24",
- "resolved": "https://registry.npmjs.org/react-native-macos/-/react-native-macos-0.73.24.tgz",
- "integrity": "sha512-XD2KjU8NqwdIUo1whkupv6xqlNF/kjKTQMeF2Mpfb24oUzqhXc4B83WOS0HF3lKArusMvi+RpPz6rvmbBJHPLw==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@jest/create-cache-key-function": "^29.6.3",
@@ -38539,8 +37020,7 @@
},
"node_modules/react-native-macos/node_modules/@jest/types": {
"version": "26.6.2",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz",
- "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@types/istanbul-lib-coverage": "^2.0.0",
@@ -38555,8 +37035,7 @@
},
"node_modules/react-native-macos/node_modules/@react-native-community/cli": {
"version": "12.3.6",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-12.3.6.tgz",
- "integrity": "sha512-647OSi6xBb8FbwFqX9zsJxOzu685AWtrOUWHfOkbKD+5LOpGORw+GQo0F9rWZnB68rLQyfKUZWJeaD00pGv5fw==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@react-native-community/cli-clean": "12.3.6",
@@ -38587,8 +37066,7 @@
},
"node_modules/react-native-macos/node_modules/@react-native-community/cli-clean": {
"version": "12.3.6",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-12.3.6.tgz",
- "integrity": "sha512-gUU29ep8xM0BbnZjwz9MyID74KKwutq9x5iv4BCr2im6nly4UMf1B1D+V225wR7VcDGzbgWjaezsJShLLhC5ig==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@react-native-community/cli-tools": "12.3.6",
@@ -38598,8 +37076,7 @@
},
"node_modules/react-native-macos/node_modules/@react-native-community/cli-config": {
"version": "12.3.6",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-12.3.6.tgz",
- "integrity": "sha512-JGWSYQ9EAK6m2v0abXwFLEfsqJ1zkhzZ4CV261QZF9MoUNB6h57a274h1MLQR9mG6Tsh38wBUuNfEPUvS1vYew==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@react-native-community/cli-tools": "12.3.6",
@@ -38612,8 +37089,7 @@
},
"node_modules/react-native-macos/node_modules/@react-native-community/cli-doctor": {
"version": "12.3.6",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-12.3.6.tgz",
- "integrity": "sha512-fvBDv2lTthfw4WOQKkdTop2PlE9GtfrlNnpjB818MhcdEnPjfQw5YaTUcnNEGsvGomdCs1MVRMgYXXwPSN6OvQ==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@react-native-community/cli-config": "12.3.6",
@@ -38636,8 +37112,7 @@
},
"node_modules/react-native-macos/node_modules/@react-native-community/cli-hermes": {
"version": "12.3.6",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-12.3.6.tgz",
- "integrity": "sha512-sNGwfOCl8OAIjWCkwuLpP8NZbuO0dhDI/2W7NeOGDzIBsf4/c4MptTrULWtGIH9okVPLSPX0NnRyGQ+mSwWyuQ==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@react-native-community/cli-platform-android": "12.3.6",
@@ -38648,8 +37123,7 @@
},
"node_modules/react-native-macos/node_modules/@react-native-community/cli-platform-android": {
"version": "12.3.6",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-12.3.6.tgz",
- "integrity": "sha512-DeDDAB8lHpuGIAPXeeD9Qu2+/wDTFPo99c8uSW49L0hkmZJixzvvvffbGQAYk32H0TmaI7rzvzH+qzu7z3891g==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@react-native-community/cli-tools": "12.3.6",
@@ -38662,8 +37136,7 @@
},
"node_modules/react-native-macos/node_modules/@react-native-community/cli-platform-ios": {
"version": "12.3.6",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-12.3.6.tgz",
- "integrity": "sha512-3eZ0jMCkKUO58wzPWlvAPRqezVKm9EPZyaPyHbRPWU8qw7JqkvnRlWIaYDGpjCJgVW4k2hKsEursLtYKb188tg==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@react-native-community/cli-tools": "12.3.6",
@@ -38676,8 +37149,7 @@
},
"node_modules/react-native-macos/node_modules/@react-native-community/cli-types": {
"version": "12.3.6",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-12.3.6.tgz",
- "integrity": "sha512-xPqTgcUtZowQ8WKOkI9TLGBwH2bGggOC4d2FFaIRST3gTcjrEeGRNeR5aXCzJFIgItIft8sd7p2oKEdy90+01Q==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"joi": "^17.2.1"
@@ -38685,8 +37157,7 @@
},
"node_modules/react-native-macos/node_modules/@react-native/assets-registry": {
"version": "0.73.1",
- "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.73.1.tgz",
- "integrity": "sha512-2FgAbU7uKM5SbbW9QptPPZx8N9Ke2L7bsHb+EhAanZjFZunA9PaYtyjUQ1s7HD+zDVqOQIvjkpXSv7Kejd2tqg==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=18"
@@ -38694,8 +37165,7 @@
},
"node_modules/react-native-macos/node_modules/@react-native/babel-plugin-codegen": {
"version": "0.73.4",
- "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.73.4.tgz",
- "integrity": "sha512-XzRd8MJGo4Zc5KsphDHBYJzS1ryOHg8I2gOZDAUCGcwLFhdyGu1zBNDJYH2GFyDrInn9TzAbRIf3d4O+eltXQQ==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@react-native/codegen": "0.73.3"
@@ -38706,8 +37176,7 @@
},
"node_modules/react-native-macos/node_modules/@react-native/babel-preset": {
"version": "0.73.21",
- "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.73.21.tgz",
- "integrity": "sha512-WlFttNnySKQMeujN09fRmrdWqh46QyJluM5jdtDNrkl/2Hx6N4XeDUGhABvConeK95OidVO7sFFf7sNebVXogA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@babel/core": "^7.20.0",
@@ -38762,8 +37231,7 @@
},
"node_modules/react-native-macos/node_modules/@react-native/codegen": {
"version": "0.73.3",
- "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.73.3.tgz",
- "integrity": "sha512-sxslCAAb8kM06vGy9Jyh4TtvjhcP36k/rvj2QE2Jdhdm61KvfafCATSIsOfc0QvnduWFcpXUPvAVyYwuv7PYDg==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@babel/parser": "^7.20.0",
@@ -38783,8 +37251,7 @@
},
"node_modules/react-native-macos/node_modules/@react-native/community-cli-plugin": {
"version": "0.73.17",
- "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.73.17.tgz",
- "integrity": "sha512-F3PXZkcHg+1ARIr6FRQCQiB7ZAA+MQXGmq051metRscoLvgYJwj7dgC8pvgy0kexzUkHu5BNKrZeySzUft3xuQ==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@react-native-community/cli-server-api": "12.3.6",
@@ -38805,8 +37272,7 @@
},
"node_modules/react-native-macos/node_modules/@react-native/debugger-frontend": {
"version": "0.73.3",
- "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.73.3.tgz",
- "integrity": "sha512-RgEKnWuoo54dh7gQhV7kvzKhXZEhpF9LlMdZolyhGxHsBqZ2gXdibfDlfcARFFifPIiaZ3lXuOVVa4ei+uPgTw==",
+ "license": "BSD-3-Clause",
"peer": true,
"engines": {
"node": ">=18"
@@ -38814,8 +37280,7 @@
},
"node_modules/react-native-macos/node_modules/@react-native/dev-middleware": {
"version": "0.73.8",
- "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.73.8.tgz",
- "integrity": "sha512-oph4NamCIxkMfUL/fYtSsE+JbGOnrlawfQ0kKtDQ5xbOjPKotKoXqrs1eGwozNKv7FfQ393stk1by9a6DyASSg==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@isaacs/ttlcache": "^1.4.1",
@@ -38836,8 +37301,7 @@
},
"node_modules/react-native-macos/node_modules/@react-native/gradle-plugin": {
"version": "0.73.4",
- "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.73.4.tgz",
- "integrity": "sha512-PMDnbsZa+tD55Ug+W8CfqXiGoGneSSyrBZCMb5JfiB3AFST3Uj5e6lw8SgI/B6SKZF7lG0BhZ6YHZsRZ5MlXmg==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=18"
@@ -38845,8 +37309,7 @@
},
"node_modules/react-native-macos/node_modules/@react-native/js-polyfills": {
"version": "0.73.1",
- "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.73.1.tgz",
- "integrity": "sha512-ewMwGcumrilnF87H4jjrnvGZEaPFCAC4ebraEK+CurDDmwST/bIicI4hrOAv+0Z0F7DEK4O4H7r8q9vH7IbN4g==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=18"
@@ -38854,8 +37317,7 @@
},
"node_modules/react-native-macos/node_modules/@react-native/metro-babel-transformer": {
"version": "0.73.15",
- "resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.73.15.tgz",
- "integrity": "sha512-LlkSGaXCz+xdxc9819plmpsl4P4gZndoFtpjN3GMBIu6f7TBV0GVbyJAU4GE8fuAWPVSVL5ArOcdkWKSbI1klw==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@babel/core": "^7.20.0",
@@ -38872,14 +37334,12 @@
},
"node_modules/react-native-macos/node_modules/@react-native/normalize-colors": {
"version": "0.73.2",
- "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.73.2.tgz",
- "integrity": "sha512-bRBcb2T+I88aG74LMVHaKms2p/T8aQd8+BZ7LuuzXlRfog1bMWWn/C5i0HVuvW4RPtXQYgIlGiXVDy9Ir1So/w==",
+ "license": "MIT",
"peer": true
},
"node_modules/react-native-macos/node_modules/@types/yargs": {
"version": "15.0.19",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz",
- "integrity": "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@types/yargs-parser": "*"
@@ -38887,8 +37347,7 @@
},
"node_modules/react-native-macos/node_modules/ansi-regex": {
"version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=8"
@@ -38896,8 +37355,7 @@
},
"node_modules/react-native-macos/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"color-convert": "^2.0.1"
@@ -38911,8 +37369,7 @@
},
"node_modules/react-native-macos/node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"ansi-styles": "^4.1.0",
@@ -38927,8 +37384,7 @@
},
"node_modules/react-native-macos/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"color-name": "~1.1.4"
@@ -38939,14 +37395,12 @@
},
"node_modules/react-native-macos/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==",
+ "license": "MIT",
"peer": true
},
"node_modules/react-native-macos/node_modules/commander": {
"version": "9.5.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
- "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": "^12.20.0 || >=14"
@@ -38954,8 +37408,7 @@
},
"node_modules/react-native-macos/node_modules/cosmiconfig": {
"version": "5.2.1",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
- "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"import-fresh": "^2.0.0",
@@ -38969,8 +37422,7 @@
},
"node_modules/react-native-macos/node_modules/debug": {
"version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"ms": "2.0.0"
@@ -38978,8 +37430,7 @@
},
"node_modules/react-native-macos/node_modules/deprecated-react-native-prop-types": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-5.0.0.tgz",
- "integrity": "sha512-cIK8KYiiGVOFsKdPMmm1L3tA/Gl+JopXL6F5+C7x39MyPsQYnP57Im/D6bNUzcborD7fcMwiwZqcBdBXXZucYQ==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@react-native/normalize-colors": "^0.73.0",
@@ -38992,8 +37443,7 @@
},
"node_modules/react-native-macos/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"locate-path": "^5.0.0",
@@ -39005,8 +37455,7 @@
},
"node_modules/react-native-macos/node_modules/flow-parser": {
"version": "0.206.0",
- "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.206.0.tgz",
- "integrity": "sha512-HVzoK3r6Vsg+lKvlIZzaWNBVai+FXTX1wdYhz/wVlH13tb/gOdLXmlTqy6odmTBhT5UoWUbq0k8263Qhr9d88w==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=0.4.0"
@@ -39014,8 +37463,7 @@
},
"node_modules/react-native-macos/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"graceful-fs": "^4.2.0",
@@ -39028,8 +37476,7 @@
},
"node_modules/react-native-macos/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==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=8"
@@ -39037,14 +37484,12 @@
},
"node_modules/react-native-macos/node_modules/hermes-estree": {
"version": "0.15.0",
- "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.15.0.tgz",
- "integrity": "sha512-lLYvAd+6BnOqWdnNbP/Q8xfl8LOGw4wVjfrNd9Gt8eoFzhNBRVD95n4l2ksfMVOoxuVyegs85g83KS9QOsxbVQ==",
+ "license": "MIT",
"peer": true
},
"node_modules/react-native-macos/node_modules/hermes-parser": {
"version": "0.15.0",
- "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.15.0.tgz",
- "integrity": "sha512-Q1uks5rjZlE9RjMMjSUCkGrEIPI5pKJILeCtK1VmTj7U4pf3wVPoo+cxfu+s4cBAPy2JzikIIdCZgBoR6x7U1Q==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"hermes-estree": "0.15.0"
@@ -39052,8 +37497,7 @@
},
"node_modules/react-native-macos/node_modules/import-fresh": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
- "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"caller-path": "^2.0.0",
@@ -39065,8 +37509,7 @@
},
"node_modules/react-native-macos/node_modules/jsonfile": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
- "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "license": "MIT",
"peer": true,
"optionalDependencies": {
"graceful-fs": "^4.1.6"
@@ -39074,8 +37517,7 @@
},
"node_modules/react-native-macos/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"p-locate": "^4.1.0"
@@ -39086,8 +37528,7 @@
},
"node_modules/react-native-macos/node_modules/mkdirp": {
"version": "0.5.6",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
- "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"minimist": "^1.2.6"
@@ -39098,14 +37539,12 @@
},
"node_modules/react-native-macos/node_modules/ms": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "license": "MIT",
"peer": true
},
"node_modules/react-native-macos/node_modules/open": {
"version": "7.4.2",
- "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
- "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"is-docker": "^2.0.0",
@@ -39120,8 +37559,7 @@
},
"node_modules/react-native-macos/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"p-try": "^2.0.0"
@@ -39135,8 +37573,7 @@
},
"node_modules/react-native-macos/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"p-limit": "^2.2.0"
@@ -39147,8 +37584,7 @@
},
"node_modules/react-native-macos/node_modules/parse-json": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"error-ex": "^1.3.1",
@@ -39160,8 +37596,7 @@
},
"node_modules/react-native-macos/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==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=8"
@@ -39169,8 +37604,7 @@
},
"node_modules/react-native-macos/node_modules/pretty-format": {
"version": "26.6.2",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz",
- "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@jest/types": "^26.6.2",
@@ -39184,8 +37618,7 @@
},
"node_modules/react-native-macos/node_modules/promise": {
"version": "8.3.0",
- "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz",
- "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"asap": "~2.0.6"
@@ -39193,8 +37626,7 @@
},
"node_modules/react-native-macos/node_modules/react-devtools-core": {
"version": "4.28.5",
- "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.28.5.tgz",
- "integrity": "sha512-cq/o30z9W2Wb4rzBefjv5fBalHU0rJGZCHAkf/RHSBWSSYwh8PlQTqqOJmgIIbBtpj27T6FIPXeomIjZtCNVqA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"shell-quote": "^1.6.1",
@@ -39203,8 +37635,7 @@
},
"node_modules/react-native-macos/node_modules/react-devtools-core/node_modules/ws": {
"version": "7.5.9",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
- "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=8.3.0"
@@ -39224,14 +37655,12 @@
},
"node_modules/react-native-macos/node_modules/react-is": {
"version": "17.0.2",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
- "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
+ "license": "MIT",
"peer": true
},
"node_modules/react-native-macos/node_modules/resolve-from": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
- "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=4"
@@ -39239,8 +37668,7 @@
},
"node_modules/react-native-macos/node_modules/scheduler": {
"version": "0.24.0-canary-efb381bbf-20230505",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.24.0-canary-efb381bbf-20230505.tgz",
- "integrity": "sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"loose-envify": "^1.1.0"
@@ -39248,8 +37676,7 @@
},
"node_modules/react-native-macos/node_modules/strip-ansi": {
"version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"ansi-regex": "^4.1.0"
@@ -39260,8 +37687,7 @@
},
"node_modules/react-native-macos/node_modules/strip-ansi/node_modules/ansi-regex": {
"version": "4.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
- "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=6"
@@ -39269,8 +37695,7 @@
},
"node_modules/react-native-macos/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"has-flag": "^4.0.0"
@@ -39281,8 +37706,7 @@
},
"node_modules/react-native-macos/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==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">= 4.0.0"
@@ -39290,8 +37714,7 @@
},
"node_modules/react-native-macos/node_modules/ws": {
"version": "6.2.2",
- "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz",
- "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"async-limiter": "~1.0.0"
@@ -39311,8 +37734,7 @@
},
"node_modules/react-native-onyx": {
"version": "2.0.56",
- "resolved": "https://registry.npmjs.org/react-native-onyx/-/react-native-onyx-2.0.56.tgz",
- "integrity": "sha512-3rn1+J4tli9zPS9w5x6tOAUz01wVHkiTFgtHoIwjD7HdLUO/9nk6H8JX6Oqb9Vzq2XQOSavUFRepIHnGvzNtgg==",
+ "license": "MIT",
"dependencies": {
"ascii-table": "0.0.9",
"fast-equals": "^4.0.3",
@@ -39347,8 +37769,7 @@
},
"node_modules/react-native-pager-view": {
"version": "6.3.3",
- "resolved": "https://registry.npmjs.org/react-native-pager-view/-/react-native-pager-view-6.3.3.tgz",
- "integrity": "sha512-HViKBlfN/kBJUSu5mRL/V9Bkf1j7uDZozGAjbzh4o9XYo11qVcIK7IwvfzqrkNerVSDy/cAmZcXbcyWnII8xMA==",
+ "license": "MIT",
"peerDependencies": {
"react": "*",
"react-native": "*"
@@ -39376,8 +37797,7 @@
},
"node_modules/react-native-permissions": {
"version": "3.10.1",
- "resolved": "https://registry.npmjs.org/react-native-permissions/-/react-native-permissions-3.10.1.tgz",
- "integrity": "sha512-Gc5BxxpjZn4QNUDiVeHOO0vXh3AH7ToolmwTJozqC6DsxV7NAf3ttap+8BSmzDR8WxuAM3Cror+YNiBhHJx7/w==",
+ "license": "MIT",
"peerDependencies": {
"react": ">=16.13.1",
"react-native": ">=0.63.3",
@@ -39393,7 +37813,6 @@
"version": "8.1.0",
"resolved": "git+ssh://git@github.com/Expensify/react-native-picker-select.git#da50d2c5c54e268499047f9cc98b8df4196c1ddf",
"integrity": "sha512-iASqj8cXSQY+P3ZhfW1eoVcK0UB+TRTddrNSQ3lmIH0a4lYO3m4XJC+cnoCjjPl/sTzUaShpOnpBfqMueR6UMA==",
- "license": "MIT",
"dependencies": {
"lodash.isequal": "^4.5.0"
},
@@ -39403,8 +37822,7 @@
},
"node_modules/react-native-plaid-link-sdk": {
"version": "11.11.0",
- "resolved": "https://registry.npmjs.org/react-native-plaid-link-sdk/-/react-native-plaid-link-sdk-11.11.0.tgz",
- "integrity": "sha512-Kmimhr6iOwCtIzsW7gygz48TzaZsdjnpgstJ2PM1q+THulOnx+BnkFu8UpLIGGkVe19E4wkxOAYL8kJ8vefNSQ==",
+ "license": "MIT",
"peerDependencies": {
"react": "*",
"react-native": "*"
@@ -39427,7 +37845,6 @@
"version": "8.0.6",
"resolved": "git+ssh://git@github.com/margelo/react-native-quick-sqlite.git#abc91857d4b3efb2020ec43abd2a508563b64316",
"integrity": "sha512-/tBM6Oh8ye3d+hIhURRA9hlBausKqQmscgyt4ZcKluPjBti0bgLb0cyL8Gyd0cbCakaVgym25VyGjaeicV/01A==",
- "license": "MIT",
"peerDependencies": {
"react": "*",
"react-native": "*"
@@ -39435,8 +37852,7 @@
},
"node_modules/react-native-reanimated": {
"version": "3.13.0",
- "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-3.13.0.tgz",
- "integrity": "sha512-7vl3NMEiuVIV0vYjr/TbL9bXVes+GcfnhK/A3X02LQ+QFbSZp1xfAxOmePabgyjyz3GIALeXcx5fldo3kOM3gA==",
+ "license": "MIT",
"dependencies": {
"@babel/plugin-transform-arrow-functions": "^7.0.0-0",
"@babel/plugin-transform-nullish-coalescing-operator": "^7.0.0-0",
@@ -39455,8 +37871,7 @@
},
"node_modules/react-native-release-profiler": {
"version": "0.2.1",
- "resolved": "https://registry.npmjs.org/react-native-release-profiler/-/react-native-release-profiler-0.2.1.tgz",
- "integrity": "sha512-gDOwEXypd4Gu++nlKyaVLHPfwrVkkdBrsjMrQORYTTDqcrD/OfuNZ8YK7p+u5LUNjnPD4WmBF88C5dEW7iM1lg==",
+ "license": "MIT",
"workspaces": [
"example"
],
@@ -39484,8 +37899,7 @@
},
"node_modules/react-native-release-profiler/node_modules/hermes-profile-transformer": {
"version": "0.0.9",
- "resolved": "https://registry.npmjs.org/hermes-profile-transformer/-/hermes-profile-transformer-0.0.9.tgz",
- "integrity": "sha512-JYPUE9zA+W/hpTIGBV+t2ODvntataLLMfntoEcpEpKFDwdR6+Quk9SwLnWX9y2A3ZII6N4T8w3TUBC2ejsEGBw==",
+ "license": "MIT",
"dependencies": {
"source-map": "^0.7.3"
},
@@ -39495,8 +37909,7 @@
},
"node_modules/react-native-release-profiler/node_modules/source-map": {
"version": "0.7.4",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
- "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
+ "license": "BSD-3-Clause",
"engines": {
"node": ">= 8"
}
@@ -39544,8 +37957,7 @@
},
"node_modules/react-native-safe-area-context": {
"version": "4.10.8",
- "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.10.8.tgz",
- "integrity": "sha512-Jx1lovhvIdYygg0UsMCBUJN0Wvj9GlA5bbcBLzjZf93uJpNHzaiHC4hR280+sNVK1+/pMHEyEkXVHDZE5JWn0w==",
+ "license": "MIT",
"peerDependencies": {
"react": "*",
"react-native": "*"
@@ -39553,8 +37965,7 @@
},
"node_modules/react-native-screens": {
"version": "3.32.0",
- "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-3.32.0.tgz",
- "integrity": "sha512-wybqZAHX7v8ipOXhh90CqGLkBHw5JYqKNRBX7R/b0c2WQisTOgu0M0yGwBMM6LyXRBT+4k3NTGHdDbpJVpq0yQ==",
+ "license": "MIT",
"dependencies": {
"react-freeze": "^1.0.0",
"warn-once": "^0.1.0"
@@ -39579,12 +37990,13 @@
}
},
"node_modules/react-native-svg": {
- "version": "15.3.0",
- "resolved": "https://registry.npmjs.org/react-native-svg/-/react-native-svg-15.3.0.tgz",
- "integrity": "sha512-mBHu/fdlzUbpGX8SZFxgbKvK/sgqLfDLP8uh8G7Us+zJgdjO8OSEeqHQs+kPRdQmdLJQiqPJX2WXgCl7ToTWqw==",
+ "version": "15.4.0",
+ "resolved": "https://registry.npmjs.org/react-native-svg/-/react-native-svg-15.4.0.tgz",
+ "integrity": "sha512-zkBEbme/Dba4yqreg/oI2P6/6LrLywWY7HhaSwpU7Pb5COpTd2fV6/ShsgZz8GRFFdidUPwWmx01FITUsjhkmw==",
"dependencies": {
"css-select": "^5.1.0",
- "css-tree": "^1.1.3"
+ "css-tree": "^1.1.3",
+ "warn-once": "0.1.1"
},
"peerDependencies": {
"react": "*",
@@ -39626,8 +38038,7 @@
},
"node_modules/react-native-vision-camera": {
"version": "4.0.0-beta.13",
- "resolved": "https://registry.npmjs.org/react-native-vision-camera/-/react-native-vision-camera-4.0.0-beta.13.tgz",
- "integrity": "sha512-a5ypYsr9XsERfx2UCmL1oSMC/Irra6X0Ixv0/hCgM/2ndt/aK94A6FwONr1kA/GRyU67ekOhk8HwUfxx+hi6dQ==",
+ "license": "MIT",
"peerDependencies": {
"react": "*",
"react-native": "*",
@@ -39641,8 +38052,7 @@
},
"node_modules/react-native-web": {
"version": "0.19.12",
- "resolved": "https://registry.npmjs.org/react-native-web/-/react-native-web-0.19.12.tgz",
- "integrity": "sha512-o2T0oztoVDQjztt4YksO9S1XRjoH/AqcSvifgWLrPJgGVbMWsfhILgl6lfUdEamVZzZSVV/2gqDVMAk/qq7mZw==",
+ "license": "MIT",
"dependencies": {
"@babel/runtime": "^7.18.6",
"@react-native/normalize-colors": "^0.74.1",
@@ -39681,8 +38091,7 @@
},
"node_modules/react-native-webview": {
"version": "13.8.6",
- "resolved": "https://registry.npmjs.org/react-native-webview/-/react-native-webview-13.8.6.tgz",
- "integrity": "sha512-jtZ9OgB2AN6rhDwto6dNL3PtOtl/SI4VN93pZEPbMLvRjqHfxiUrilGllL5fKAXq5Ry5FJyfUi82A4Ii8olZ7A==",
+ "license": "MIT",
"dependencies": {
"escape-string-regexp": "2.0.0",
"invariant": "2.2.4"
@@ -39701,8 +38110,7 @@
},
"node_modules/react-native-windows": {
"version": "0.73.11",
- "resolved": "https://registry.npmjs.org/react-native-windows/-/react-native-windows-0.73.11.tgz",
- "integrity": "sha512-SS9GysV9qAOCk88TujvxzHOuc8JR3xjAgCYOu9wsZ0ZBBZsNQlNb7rV0pfvXD2O11tq+C1zF+L0Z44bJ+lMZ0g==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@babel/runtime": "^7.0.0",
@@ -39757,8 +38165,7 @@
},
"node_modules/react-native-windows/node_modules/@jest/types": {
"version": "26.6.2",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz",
- "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@types/istanbul-lib-coverage": "^2.0.0",
@@ -39773,8 +38180,7 @@
},
"node_modules/react-native-windows/node_modules/@react-native-community/cli": {
"version": "12.3.6",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-12.3.6.tgz",
- "integrity": "sha512-647OSi6xBb8FbwFqX9zsJxOzu685AWtrOUWHfOkbKD+5LOpGORw+GQo0F9rWZnB68rLQyfKUZWJeaD00pGv5fw==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@react-native-community/cli-clean": "12.3.6",
@@ -39805,8 +38211,7 @@
},
"node_modules/react-native-windows/node_modules/@react-native-community/cli-clean": {
"version": "12.3.6",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-12.3.6.tgz",
- "integrity": "sha512-gUU29ep8xM0BbnZjwz9MyID74KKwutq9x5iv4BCr2im6nly4UMf1B1D+V225wR7VcDGzbgWjaezsJShLLhC5ig==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@react-native-community/cli-tools": "12.3.6",
@@ -39816,8 +38221,7 @@
},
"node_modules/react-native-windows/node_modules/@react-native-community/cli-config": {
"version": "12.3.6",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-12.3.6.tgz",
- "integrity": "sha512-JGWSYQ9EAK6m2v0abXwFLEfsqJ1zkhzZ4CV261QZF9MoUNB6h57a274h1MLQR9mG6Tsh38wBUuNfEPUvS1vYew==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@react-native-community/cli-tools": "12.3.6",
@@ -39830,8 +38234,7 @@
},
"node_modules/react-native-windows/node_modules/@react-native-community/cli-doctor": {
"version": "12.3.6",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-12.3.6.tgz",
- "integrity": "sha512-fvBDv2lTthfw4WOQKkdTop2PlE9GtfrlNnpjB818MhcdEnPjfQw5YaTUcnNEGsvGomdCs1MVRMgYXXwPSN6OvQ==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@react-native-community/cli-config": "12.3.6",
@@ -39854,8 +38257,7 @@
},
"node_modules/react-native-windows/node_modules/@react-native-community/cli-hermes": {
"version": "12.3.6",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-12.3.6.tgz",
- "integrity": "sha512-sNGwfOCl8OAIjWCkwuLpP8NZbuO0dhDI/2W7NeOGDzIBsf4/c4MptTrULWtGIH9okVPLSPX0NnRyGQ+mSwWyuQ==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@react-native-community/cli-platform-android": "12.3.6",
@@ -39866,8 +38268,7 @@
},
"node_modules/react-native-windows/node_modules/@react-native-community/cli-platform-android": {
"version": "12.3.6",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-12.3.6.tgz",
- "integrity": "sha512-DeDDAB8lHpuGIAPXeeD9Qu2+/wDTFPo99c8uSW49L0hkmZJixzvvvffbGQAYk32H0TmaI7rzvzH+qzu7z3891g==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@react-native-community/cli-tools": "12.3.6",
@@ -39880,8 +38281,7 @@
},
"node_modules/react-native-windows/node_modules/@react-native-community/cli-platform-ios": {
"version": "12.3.6",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-12.3.6.tgz",
- "integrity": "sha512-3eZ0jMCkKUO58wzPWlvAPRqezVKm9EPZyaPyHbRPWU8qw7JqkvnRlWIaYDGpjCJgVW4k2hKsEursLtYKb188tg==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@react-native-community/cli-tools": "12.3.6",
@@ -39894,8 +38294,7 @@
},
"node_modules/react-native-windows/node_modules/@react-native-community/cli-types": {
"version": "12.3.6",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-12.3.6.tgz",
- "integrity": "sha512-xPqTgcUtZowQ8WKOkI9TLGBwH2bGggOC4d2FFaIRST3gTcjrEeGRNeR5aXCzJFIgItIft8sd7p2oKEdy90+01Q==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"joi": "^17.2.1"
@@ -39903,8 +38302,7 @@
},
"node_modules/react-native-windows/node_modules/@react-native/assets-registry": {
"version": "0.73.1",
- "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.73.1.tgz",
- "integrity": "sha512-2FgAbU7uKM5SbbW9QptPPZx8N9Ke2L7bsHb+EhAanZjFZunA9PaYtyjUQ1s7HD+zDVqOQIvjkpXSv7Kejd2tqg==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=18"
@@ -39912,8 +38310,7 @@
},
"node_modules/react-native-windows/node_modules/@react-native/babel-plugin-codegen": {
"version": "0.73.4",
- "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.73.4.tgz",
- "integrity": "sha512-XzRd8MJGo4Zc5KsphDHBYJzS1ryOHg8I2gOZDAUCGcwLFhdyGu1zBNDJYH2GFyDrInn9TzAbRIf3d4O+eltXQQ==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@react-native/codegen": "0.73.3"
@@ -39924,8 +38321,7 @@
},
"node_modules/react-native-windows/node_modules/@react-native/babel-preset": {
"version": "0.73.21",
- "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.73.21.tgz",
- "integrity": "sha512-WlFttNnySKQMeujN09fRmrdWqh46QyJluM5jdtDNrkl/2Hx6N4XeDUGhABvConeK95OidVO7sFFf7sNebVXogA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@babel/core": "^7.20.0",
@@ -39980,8 +38376,7 @@
},
"node_modules/react-native-windows/node_modules/@react-native/codegen": {
"version": "0.73.3",
- "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.73.3.tgz",
- "integrity": "sha512-sxslCAAb8kM06vGy9Jyh4TtvjhcP36k/rvj2QE2Jdhdm61KvfafCATSIsOfc0QvnduWFcpXUPvAVyYwuv7PYDg==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@babel/parser": "^7.20.0",
@@ -40001,8 +38396,7 @@
},
"node_modules/react-native-windows/node_modules/@react-native/community-cli-plugin": {
"version": "0.73.17",
- "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.73.17.tgz",
- "integrity": "sha512-F3PXZkcHg+1ARIr6FRQCQiB7ZAA+MQXGmq051metRscoLvgYJwj7dgC8pvgy0kexzUkHu5BNKrZeySzUft3xuQ==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@react-native-community/cli-server-api": "12.3.6",
@@ -40023,8 +38417,7 @@
},
"node_modules/react-native-windows/node_modules/@react-native/debugger-frontend": {
"version": "0.73.3",
- "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.73.3.tgz",
- "integrity": "sha512-RgEKnWuoo54dh7gQhV7kvzKhXZEhpF9LlMdZolyhGxHsBqZ2gXdibfDlfcARFFifPIiaZ3lXuOVVa4ei+uPgTw==",
+ "license": "BSD-3-Clause",
"peer": true,
"engines": {
"node": ">=18"
@@ -40032,8 +38425,7 @@
},
"node_modules/react-native-windows/node_modules/@react-native/dev-middleware": {
"version": "0.73.8",
- "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.73.8.tgz",
- "integrity": "sha512-oph4NamCIxkMfUL/fYtSsE+JbGOnrlawfQ0kKtDQ5xbOjPKotKoXqrs1eGwozNKv7FfQ393stk1by9a6DyASSg==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@isaacs/ttlcache": "^1.4.1",
@@ -40054,8 +38446,7 @@
},
"node_modules/react-native-windows/node_modules/@react-native/gradle-plugin": {
"version": "0.73.4",
- "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.73.4.tgz",
- "integrity": "sha512-PMDnbsZa+tD55Ug+W8CfqXiGoGneSSyrBZCMb5JfiB3AFST3Uj5e6lw8SgI/B6SKZF7lG0BhZ6YHZsRZ5MlXmg==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=18"
@@ -40063,8 +38454,7 @@
},
"node_modules/react-native-windows/node_modules/@react-native/js-polyfills": {
"version": "0.73.1",
- "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.73.1.tgz",
- "integrity": "sha512-ewMwGcumrilnF87H4jjrnvGZEaPFCAC4ebraEK+CurDDmwST/bIicI4hrOAv+0Z0F7DEK4O4H7r8q9vH7IbN4g==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=18"
@@ -40072,8 +38462,7 @@
},
"node_modules/react-native-windows/node_modules/@react-native/metro-babel-transformer": {
"version": "0.73.15",
- "resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.73.15.tgz",
- "integrity": "sha512-LlkSGaXCz+xdxc9819plmpsl4P4gZndoFtpjN3GMBIu6f7TBV0GVbyJAU4GE8fuAWPVSVL5ArOcdkWKSbI1klw==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@babel/core": "^7.20.0",
@@ -40090,14 +38479,12 @@
},
"node_modules/react-native-windows/node_modules/@react-native/normalize-colors": {
"version": "0.73.2",
- "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.73.2.tgz",
- "integrity": "sha512-bRBcb2T+I88aG74LMVHaKms2p/T8aQd8+BZ7LuuzXlRfog1bMWWn/C5i0HVuvW4RPtXQYgIlGiXVDy9Ir1So/w==",
+ "license": "MIT",
"peer": true
},
"node_modules/react-native-windows/node_modules/@react-native/virtualized-lists": {
"version": "0.73.4",
- "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.73.4.tgz",
- "integrity": "sha512-HpmLg1FrEiDtrtAbXiwCgXFYyloK/dOIPIuWW3fsqukwJEWAiTzm1nXGJ7xPU5XTHiWZ4sKup5Ebaj8z7iyWog==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"invariant": "^2.2.4",
@@ -40112,8 +38499,7 @@
},
"node_modules/react-native-windows/node_modules/@types/yargs": {
"version": "15.0.19",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz",
- "integrity": "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@types/yargs-parser": "*"
@@ -40121,8 +38507,7 @@
},
"node_modules/react-native-windows/node_modules/ansi-regex": {
"version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=8"
@@ -40130,8 +38515,7 @@
},
"node_modules/react-native-windows/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"color-convert": "^2.0.1"
@@ -40145,8 +38529,7 @@
},
"node_modules/react-native-windows/node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"ansi-styles": "^4.1.0",
@@ -40161,8 +38544,7 @@
},
"node_modules/react-native-windows/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"color-name": "~1.1.4"
@@ -40173,14 +38555,12 @@
},
"node_modules/react-native-windows/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==",
+ "license": "MIT",
"peer": true
},
"node_modules/react-native-windows/node_modules/commander": {
"version": "9.5.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
- "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": "^12.20.0 || >=14"
@@ -40188,8 +38568,7 @@
},
"node_modules/react-native-windows/node_modules/cosmiconfig": {
"version": "5.2.1",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
- "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"import-fresh": "^2.0.0",
@@ -40203,8 +38582,7 @@
},
"node_modules/react-native-windows/node_modules/debug": {
"version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"ms": "2.0.0"
@@ -40212,8 +38590,7 @@
},
"node_modules/react-native-windows/node_modules/deprecated-react-native-prop-types": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-5.0.0.tgz",
- "integrity": "sha512-cIK8KYiiGVOFsKdPMmm1L3tA/Gl+JopXL6F5+C7x39MyPsQYnP57Im/D6bNUzcborD7fcMwiwZqcBdBXXZucYQ==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@react-native/normalize-colors": "^0.73.0",
@@ -40226,8 +38603,7 @@
},
"node_modules/react-native-windows/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"locate-path": "^5.0.0",
@@ -40239,8 +38615,7 @@
},
"node_modules/react-native-windows/node_modules/flow-parser": {
"version": "0.206.0",
- "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.206.0.tgz",
- "integrity": "sha512-HVzoK3r6Vsg+lKvlIZzaWNBVai+FXTX1wdYhz/wVlH13tb/gOdLXmlTqy6odmTBhT5UoWUbq0k8263Qhr9d88w==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=0.4.0"
@@ -40248,8 +38623,7 @@
},
"node_modules/react-native-windows/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"graceful-fs": "^4.2.0",
@@ -40262,8 +38636,7 @@
},
"node_modules/react-native-windows/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==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=8"
@@ -40271,14 +38644,12 @@
},
"node_modules/react-native-windows/node_modules/hermes-estree": {
"version": "0.15.0",
- "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.15.0.tgz",
- "integrity": "sha512-lLYvAd+6BnOqWdnNbP/Q8xfl8LOGw4wVjfrNd9Gt8eoFzhNBRVD95n4l2ksfMVOoxuVyegs85g83KS9QOsxbVQ==",
+ "license": "MIT",
"peer": true
},
"node_modules/react-native-windows/node_modules/hermes-parser": {
"version": "0.15.0",
- "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.15.0.tgz",
- "integrity": "sha512-Q1uks5rjZlE9RjMMjSUCkGrEIPI5pKJILeCtK1VmTj7U4pf3wVPoo+cxfu+s4cBAPy2JzikIIdCZgBoR6x7U1Q==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"hermes-estree": "0.15.0"
@@ -40286,8 +38657,7 @@
},
"node_modules/react-native-windows/node_modules/import-fresh": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
- "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"caller-path": "^2.0.0",
@@ -40299,8 +38669,7 @@
},
"node_modules/react-native-windows/node_modules/jsonfile": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
- "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "license": "MIT",
"peer": true,
"optionalDependencies": {
"graceful-fs": "^4.1.6"
@@ -40308,8 +38677,7 @@
},
"node_modules/react-native-windows/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"p-locate": "^4.1.0"
@@ -40320,8 +38688,7 @@
},
"node_modules/react-native-windows/node_modules/mkdirp": {
"version": "0.5.6",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
- "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"minimist": "^1.2.6"
@@ -40332,14 +38699,12 @@
},
"node_modules/react-native-windows/node_modules/ms": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "license": "MIT",
"peer": true
},
"node_modules/react-native-windows/node_modules/open": {
"version": "7.4.2",
- "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
- "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"is-docker": "^2.0.0",
@@ -40354,8 +38719,7 @@
},
"node_modules/react-native-windows/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"p-try": "^2.0.0"
@@ -40369,8 +38733,7 @@
},
"node_modules/react-native-windows/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"p-limit": "^2.2.0"
@@ -40381,8 +38744,7 @@
},
"node_modules/react-native-windows/node_modules/parse-json": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"error-ex": "^1.3.1",
@@ -40394,8 +38756,7 @@
},
"node_modules/react-native-windows/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==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=8"
@@ -40403,8 +38764,7 @@
},
"node_modules/react-native-windows/node_modules/pretty-format": {
"version": "26.6.2",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz",
- "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"@jest/types": "^26.6.2",
@@ -40418,8 +38778,7 @@
},
"node_modules/react-native-windows/node_modules/promise": {
"version": "8.3.0",
- "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz",
- "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"asap": "~2.0.6"
@@ -40427,8 +38786,7 @@
},
"node_modules/react-native-windows/node_modules/react-devtools-core": {
"version": "4.28.5",
- "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.28.5.tgz",
- "integrity": "sha512-cq/o30z9W2Wb4rzBefjv5fBalHU0rJGZCHAkf/RHSBWSSYwh8PlQTqqOJmgIIbBtpj27T6FIPXeomIjZtCNVqA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"shell-quote": "^1.6.1",
@@ -40437,8 +38795,7 @@
},
"node_modules/react-native-windows/node_modules/react-devtools-core/node_modules/ws": {
"version": "7.5.9",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
- "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=8.3.0"
@@ -40458,14 +38815,12 @@
},
"node_modules/react-native-windows/node_modules/react-is": {
"version": "17.0.2",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
- "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
+ "license": "MIT",
"peer": true
},
"node_modules/react-native-windows/node_modules/resolve-from": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
- "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=4"
@@ -40473,8 +38828,7 @@
},
"node_modules/react-native-windows/node_modules/scheduler": {
"version": "0.24.0-canary-efb381bbf-20230505",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.24.0-canary-efb381bbf-20230505.tgz",
- "integrity": "sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"loose-envify": "^1.1.0"
@@ -40482,8 +38836,7 @@
},
"node_modules/react-native-windows/node_modules/strip-ansi": {
"version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"ansi-regex": "^4.1.0"
@@ -40494,8 +38847,7 @@
},
"node_modules/react-native-windows/node_modules/strip-ansi/node_modules/ansi-regex": {
"version": "4.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
- "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=6"
@@ -40503,8 +38855,7 @@
},
"node_modules/react-native-windows/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==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"has-flag": "^4.0.0"
@@ -40515,8 +38866,7 @@
},
"node_modules/react-native-windows/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==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">= 4.0.0"
@@ -40524,8 +38874,7 @@
},
"node_modules/react-native-windows/node_modules/ws": {
"version": "6.2.2",
- "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz",
- "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"async-limiter": "~1.0.0"
@@ -40533,8 +38882,7 @@
},
"node_modules/react-native/node_modules/@jest/types": {
"version": "26.6.2",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz",
- "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==",
+ "license": "MIT",
"dependencies": {
"@types/istanbul-lib-coverage": "^2.0.0",
"@types/istanbul-reports": "^3.0.0",
@@ -40548,29 +38896,25 @@
},
"node_modules/react-native/node_modules/@react-native/normalize-colors": {
"version": "0.75.0-rc.4",
- "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.75.0-rc.4.tgz",
- "integrity": "sha512-yzeH6Q0wsq0FijmCPPTTsgfCfzeBbM6I+2PAwjVYpNgemsmcURJMiRhTZQLuvBsKoO+OYVpl2vzp9kiWYw40yw=="
+ "license": "MIT"
},
"node_modules/react-native/node_modules/@types/yargs": {
"version": "15.0.19",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz",
- "integrity": "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==",
+ "license": "MIT",
"dependencies": {
"@types/yargs-parser": "*"
}
},
"node_modules/react-native/node_modules/ansi-regex": {
"version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/react-native/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==",
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -40583,8 +38927,7 @@
},
"node_modules/react-native/node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -40598,8 +38941,7 @@
},
"node_modules/react-native/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==",
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -40609,21 +38951,18 @@
},
"node_modules/react-native/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=="
+ "license": "MIT"
},
"node_modules/react-native/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==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/react-native/node_modules/mkdirp": {
"version": "0.5.6",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
- "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+ "license": "MIT",
"dependencies": {
"minimist": "^1.2.6"
},
@@ -40633,8 +38972,7 @@
},
"node_modules/react-native/node_modules/pretty-format": {
"version": "26.6.2",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz",
- "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==",
+ "license": "MIT",
"dependencies": {
"@jest/types": "^26.6.2",
"ansi-regex": "^5.0.0",
@@ -40654,13 +38992,11 @@
},
"node_modules/react-native/node_modules/react-is": {
"version": "17.0.2",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
- "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="
+ "license": "MIT"
},
"node_modules/react-native/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==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -40677,8 +39013,7 @@
},
"node_modules/react-pdf": {
"version": "7.7.3",
- "resolved": "https://registry.npmjs.org/react-pdf/-/react-pdf-7.7.3.tgz",
- "integrity": "sha512-a2VfDl8hiGjugpqezBTUzJHYLNB7IS7a2t7GD52xMI9xHg8LdVaTMsnM9ZlNmKadnStT/tvX5IfV0yLn+JvYmw==",
+ "license": "MIT",
"dependencies": {
"clsx": "^2.0.0",
"dequal": "^2.0.3",
@@ -40745,17 +39080,15 @@
},
"node_modules/react-refresh": {
"version": "0.14.2",
- "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz",
- "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==",
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/react-remove-scroll": {
"version": "2.5.7",
- "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz",
- "integrity": "sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"react-remove-scroll-bar": "^2.3.4",
"react-style-singleton": "^2.2.1",
@@ -40778,9 +39111,8 @@
},
"node_modules/react-remove-scroll-bar": {
"version": "2.3.6",
- "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz",
- "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"react-style-singleton": "^2.2.1",
"tslib": "^2.0.0"
@@ -40820,9 +39152,8 @@
},
"node_modules/react-style-singleton": {
"version": "2.2.1",
- "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz",
- "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"get-nonce": "^1.0.0",
"invariant": "^2.2.4",
@@ -40843,8 +39174,7 @@
},
"node_modules/react-test-renderer": {
"version": "19.0.0-rc-fb9a90fa48-20240614",
- "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-19.0.0-rc-fb9a90fa48-20240614.tgz",
- "integrity": "sha512-cV3mGgsKTJCB8f4tZxWIp0ot4PMgx791XTkwpapf06ZlUk5BCP3C1CbIqRXcKeiQODvFJClZX26TFTPAklTq7A==",
+ "license": "MIT",
"dependencies": {
"react-is": "19.0.0-rc-fb9a90fa48-20240614",
"scheduler": "0.25.0-rc-fb9a90fa48-20240614"
@@ -40855,8 +39185,7 @@
},
"node_modules/react-test-renderer/node_modules/react-is": {
"version": "19.0.0-rc-fb9a90fa48-20240614",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.0.0-rc-fb9a90fa48-20240614.tgz",
- "integrity": "sha512-60qI7v1B9RhmZwjTCnAgzcuABOQsIH20vTbETQPaze96s1lY2lSawv9dvXAfF8Z1MIqOppWSKLNOshF0WsZ3OA=="
+ "license": "MIT"
},
"node_modules/react-web-config": {
"version": "1.0.0",
@@ -41265,8 +39594,7 @@
},
"node_modules/react-window": {
"version": "1.8.10",
- "resolved": "https://registry.npmjs.org/react-window/-/react-window-1.8.10.tgz",
- "integrity": "sha512-Y0Cx+dnU6NLa5/EvoHukUD0BklJ8qITCtVEPY1C/nL8wwoZ0b5aEw8Ff1dOVHw7fCzMt55XfJDd8S8W8LCaUCg==",
+ "license": "MIT",
"dependencies": {
"@babel/runtime": "^7.0.0",
"memoize-one": ">=3.1.1 <6"
@@ -41279,6 +39607,18 @@
"react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0"
}
},
+ "node_modules/read-binary-file-arch": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/read-binary-file-arch/-/read-binary-file-arch-1.0.6.tgz",
+ "integrity": "sha512-BNg9EN3DD3GsDXX7Aa8O4p92sryjkmzYYgmgTAc6CA4uGLEDzFfxOxugu21akOxpcXHiEgsYkC6nPsQvLLLmEg==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^4.3.4"
+ },
+ "bin": {
+ "read-binary-file-arch": "cli.js"
+ }
+ },
"node_modules/read-cmd-shim": {
"version": "4.0.0",
"license": "ISC",
@@ -41287,16 +39627,17 @@
}
},
"node_modules/read-config-file": {
- "version": "6.3.2",
+ "version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.4.0.tgz",
+ "integrity": "sha512-uB5QOBeF84PT61GlV11OTV4jUGHAO3iDEOP6v9ygxhG6Bs9PLg7WsjNT6mtIX2G+x8lJTr4ZWNeG6LDTKkNf2Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "config-file-ts": "^0.2.4",
- "dotenv": "^9.0.2",
- "dotenv-expand": "^5.1.0",
+ "config-file-ts": "0.2.8-rc1",
+ "dotenv": "^16.4.5",
+ "dotenv-expand": "^11.0.6",
"js-yaml": "^4.1.0",
- "json5": "^2.2.0",
- "lazy-val": "^1.0.4"
+ "json5": "^2.2.3",
+ "lazy-val": "^1.0.5"
},
"engines": {
"node": ">=12.0.0"
@@ -41304,21 +39645,15 @@
},
"node_modules/read-config-file/node_modules/argparse": {
"version": "2.0.1",
- "dev": true,
- "license": "Python-2.0"
- },
- "node_modules/read-config-file/node_modules/dotenv": {
- "version": "9.0.2",
- "dev": true,
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=10"
- }
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
},
"node_modules/read-config-file/node_modules/js-yaml": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
},
@@ -41328,9 +39663,8 @@
},
"node_modules/read-pkg-up": {
"version": "7.0.1",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
- "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"find-up": "^4.1.0",
"read-pkg": "^5.2.0",
@@ -41345,9 +39679,8 @@
},
"node_modules/read-pkg-up/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,
+ "license": "MIT",
"dependencies": {
"locate-path": "^5.0.0",
"path-exists": "^4.0.0"
@@ -41358,9 +39691,8 @@
},
"node_modules/read-pkg-up/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,
+ "license": "MIT",
"dependencies": {
"p-locate": "^4.1.0"
},
@@ -41370,9 +39702,8 @@
},
"node_modules/read-pkg-up/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,
+ "license": "MIT",
"dependencies": {
"p-try": "^2.0.0"
},
@@ -41385,9 +39716,8 @@
},
"node_modules/read-pkg-up/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,
+ "license": "MIT",
"dependencies": {
"p-limit": "^2.2.0"
},
@@ -41397,18 +39727,16 @@
},
"node_modules/read-pkg-up/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,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/read-pkg-up/node_modules/read-pkg": {
"version": "5.2.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
- "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/normalize-package-data": "^2.4.0",
"normalize-package-data": "^2.5.0",
@@ -41421,18 +39749,16 @@
},
"node_modules/read-pkg-up/node_modules/read-pkg/node_modules/type-fest": {
"version": "0.6.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
- "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=8"
}
},
"node_modules/read-pkg-up/node_modules/type-fest": {
"version": "0.8.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
- "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=8"
}
@@ -41456,8 +39782,9 @@
},
"node_modules/readdir-glob": {
"version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz",
+ "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==",
"dev": true,
- "license": "Apache-2.0",
"peer": true,
"dependencies": {
"minimatch": "^5.1.0"
@@ -41465,8 +39792,9 @@
},
"node_modules/readdir-glob/node_modules/brace-expansion": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"balanced-match": "^1.0.0"
@@ -41474,8 +39802,9 @@
},
"node_modules/readdir-glob/node_modules/minimatch": {
"version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+ "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
"dev": true,
- "license": "ISC",
"peer": true,
"dependencies": {
"brace-expansion": "^2.0.1"
@@ -41497,14 +39826,12 @@
},
"node_modules/readline": {
"version": "1.3.0",
- "resolved": "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz",
- "integrity": "sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg=="
+ "license": "BSD"
},
"node_modules/reassure": {
"version": "1.0.0-rc.4",
- "resolved": "https://registry.npmjs.org/reassure/-/reassure-1.0.0-rc.4.tgz",
- "integrity": "sha512-iiiutuSS8uaov8ZQjH/q4H6TLKJbqscPFjPcFsqaTklyTUHqW1z/p/G6esziQa7X7VpA9xqqmfhrhK0zdMZywQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@callstack/reassure-cli": "1.0.0-rc.4",
"@callstack/reassure-compare": "1.0.0-rc.4",
@@ -41518,8 +39845,7 @@
},
"node_modules/recast": {
"version": "0.21.5",
- "resolved": "https://registry.npmjs.org/recast/-/recast-0.21.5.tgz",
- "integrity": "sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg==",
+ "license": "MIT",
"dependencies": {
"ast-types": "0.15.2",
"esprima": "~4.0.0",
@@ -41532,8 +39858,7 @@
},
"node_modules/recast/node_modules/ast-types": {
"version": "0.15.2",
- "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.15.2.tgz",
- "integrity": "sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg==",
+ "license": "MIT",
"dependencies": {
"tslib": "^2.0.1"
},
@@ -41543,9 +39868,8 @@
},
"node_modules/rechoir": {
"version": "0.8.0",
- "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz",
- "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"resolve": "^1.20.0"
},
@@ -41611,8 +39935,7 @@
},
"node_modules/regenerator-transform": {
"version": "0.15.2",
- "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz",
- "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==",
+ "license": "MIT",
"dependencies": {
"@babel/runtime": "^7.8.4"
}
@@ -41631,8 +39954,7 @@
},
"node_modules/regexp.prototype.flags": {
"version": "1.5.2",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz",
- "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==",
+ "license": "MIT",
"dependencies": {
"call-bind": "^1.0.6",
"define-properties": "^1.2.1",
@@ -41690,9 +40012,8 @@
},
"node_modules/rehype-external-links": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/rehype-external-links/-/rehype-external-links-3.0.0.tgz",
- "integrity": "sha512-yp+e5N9V3C6bwBeAC4n796kc86M4gJCdlVhiMTxIrJG5UHDMh+PJANf9heqORJbt1nrCbDwIlAZKjANIaVBbvw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/hast": "^3.0.0",
"@ungap/structured-clone": "^1.0.0",
@@ -41708,9 +40029,8 @@
},
"node_modules/rehype-slug": {
"version": "6.0.0",
- "resolved": "https://registry.npmjs.org/rehype-slug/-/rehype-slug-6.0.0.tgz",
- "integrity": "sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/hast": "^3.0.0",
"github-slugger": "^2.0.0",
@@ -41737,8 +40057,7 @@
},
"node_modules/remove-trailing-slash": {
"version": "0.1.1",
- "resolved": "https://registry.npmjs.org/remove-trailing-slash/-/remove-trailing-slash-0.1.1.tgz",
- "integrity": "sha512-o4S4Qh6L2jpnCy83ysZDau+VORNvnFw07CKSAymkd6ICNVEPisMyzlc00KlvvicsxKck94SEwhDnMNdICzO+tA=="
+ "license": "MIT"
},
"node_modules/renderkid": {
"version": "3.0.0",
@@ -41813,8 +40132,7 @@
},
"node_modules/require-in-the-middle": {
"version": "7.3.0",
- "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.3.0.tgz",
- "integrity": "sha512-nQFEv9gRw6SJAwWD2LrL0NmQvAcO7FBwJbwmr2ttPAacfy0xuiOjE5zt+zM4xDyuyvUaxBi/9gb2SoCyNEVJcw==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"debug": "^4.1.1",
@@ -41831,8 +40149,6 @@
},
"node_modules/requireg": {
"version": "0.2.2",
- "resolved": "https://registry.npmjs.org/requireg/-/requireg-0.2.2.tgz",
- "integrity": "sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg==",
"dependencies": {
"nested-error-stacks": "~2.0.1",
"rc": "~1.2.7",
@@ -41844,8 +40160,7 @@
},
"node_modules/requireg/node_modules/resolve": {
"version": "1.7.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz",
- "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==",
+ "license": "MIT",
"dependencies": {
"path-parse": "^1.0.5"
}
@@ -41862,6 +40177,19 @@
"version": "1.0.0",
"license": "MIT"
},
+ "node_modules/resedit": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/resedit/-/resedit-1.7.0.tgz",
+ "integrity": "sha512-dbsZ0gk5opWPFlKMqvxCrLCuMZUVmsW3yTPT0tT4mYwo5fjQM8c4HMN9ZJt6dRDqDV/78m9SU4rv24PN4NiYaA==",
+ "dev": true,
+ "dependencies": {
+ "pe-library": "^0.4.0"
+ },
+ "engines": {
+ "node": ">=12",
+ "npm": ">=6"
+ }
+ },
"node_modules/reselect": {
"version": "4.1.7",
"dev": true,
@@ -41869,8 +40197,7 @@
},
"node_modules/resolve": {
"version": "1.22.8",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
- "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
+ "license": "MIT",
"dependencies": {
"is-core-module": "^2.13.0",
"path-parse": "^1.0.7",
@@ -41937,8 +40264,7 @@
},
"node_modules/restore-cursor": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
- "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "license": "MIT",
"dependencies": {
"onetime": "^5.1.0",
"signal-exit": "^3.0.2"
@@ -41957,9 +40283,8 @@
},
"node_modules/retry": {
"version": "0.13.1",
- "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
- "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 4"
}
@@ -42026,9 +40351,8 @@
},
"node_modules/run-applescript": {
"version": "7.0.0",
- "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz",
- "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=18"
},
@@ -42063,17 +40387,15 @@
},
"node_modules/rxjs": {
"version": "7.8.1",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
- "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"tslib": "^2.1.0"
}
},
"node_modules/safe-array-concat": {
"version": "1.1.2",
- "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz",
- "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==",
+ "license": "MIT",
"dependencies": {
"call-bind": "^1.0.7",
"get-intrinsic": "^1.2.4",
@@ -42093,8 +40415,7 @@
},
"node_modules/safe-json-stringify": {
"version": "1.2.0",
- "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz",
- "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==",
+ "license": "MIT",
"optional": true
},
"node_modules/safe-regex": {
@@ -42107,8 +40428,7 @@
},
"node_modules/safe-regex-test": {
"version": "1.0.3",
- "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz",
- "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==",
+ "license": "MIT",
"dependencies": {
"call-bind": "^1.0.6",
"es-errors": "^1.3.0",
@@ -42127,8 +40447,9 @@
},
"node_modules/sanitize-filename": {
"version": "1.6.3",
+ "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz",
+ "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==",
"dev": true,
- "license": "WTFPL OR ISC",
"dependencies": {
"truncate-utf8-bytes": "^1.0.0"
}
@@ -42149,8 +40470,7 @@
},
"node_modules/scheduler": {
"version": "0.25.0-rc-fb9a90fa48-20240614",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0-rc-fb9a90fa48-20240614.tgz",
- "integrity": "sha512-HHqQ/SqbeiDfXXVKgNxTpbQTD4n7IUb4hZATvHjp03jr3TF7igehCyHdOjeYTrzIseLO93cTTfSb5f4qWcirMQ=="
+ "license": "MIT"
},
"node_modules/schema-utils": {
"version": "3.3.0",
@@ -42200,8 +40520,7 @@
},
"node_modules/select": {
"version": "1.1.2",
- "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz",
- "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA=="
+ "license": "MIT"
},
"node_modules/select-hose": {
"version": "2.0.0",
@@ -42210,8 +40529,7 @@
},
"node_modules/selfsigned": {
"version": "2.4.1",
- "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz",
- "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==",
+ "license": "MIT",
"dependencies": {
"@types/node-forge": "^1.3.0",
"node-forge": "^1"
@@ -42222,8 +40540,7 @@
},
"node_modules/semver": {
"version": "7.6.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
- "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
@@ -42310,8 +40627,7 @@
},
"node_modules/serialize-javascript": {
"version": "6.0.2",
- "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
- "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
+ "license": "BSD-3-Clause",
"dependencies": {
"randombytes": "^2.1.0"
}
@@ -42405,8 +40721,7 @@
},
"node_modules/set-function-length": {
"version": "1.2.2",
- "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
- "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
+ "license": "MIT",
"dependencies": {
"define-data-property": "^1.1.4",
"es-errors": "^1.3.0",
@@ -42421,8 +40736,7 @@
},
"node_modules/set-function-name": {
"version": "2.0.2",
- "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
- "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
+ "license": "MIT",
"dependencies": {
"define-data-property": "^1.1.4",
"es-errors": "^1.3.0",
@@ -42542,8 +40856,7 @@
},
"node_modules/shelljs": {
"version": "0.8.5",
- "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz",
- "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==",
+ "license": "BSD-3-Clause",
"peer": true,
"dependencies": {
"glob": "^7.0.0",
@@ -42559,8 +40872,7 @@
},
"node_modules/shelljs/node_modules/interpret": {
"version": "1.4.0",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",
- "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">= 0.10"
@@ -42568,8 +40880,6 @@
},
"node_modules/shelljs/node_modules/rechoir": {
"version": "0.6.2",
- "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
- "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==",
"peer": true,
"dependencies": {
"resolve": "^1.1.6"
@@ -42580,8 +40890,7 @@
},
"node_modules/shimmer": {
"version": "1.2.1",
- "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz",
- "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==",
+ "license": "BSD-2-Clause",
"peer": true
},
"node_modules/side-channel": {
@@ -42653,8 +40962,7 @@
},
"node_modules/simple-git": {
"version": "3.24.0",
- "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.24.0.tgz",
- "integrity": "sha512-QqAKee9Twv+3k8IFOFfPB2hnk6as6Y6ACUpwCtQvRYBAes23Wv3SZlHVobAzqcE8gfsisCvPw3HGW3HYM+VYYw==",
+ "license": "MIT",
"dependencies": {
"@kwsites/file-exists": "^1.1.1",
"@kwsites/promise-deferred": "^1.1.1",
@@ -42740,8 +41048,9 @@
},
"node_modules/slice-ansi": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz",
+ "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==",
"dev": true,
- "license": "MIT",
"optional": true,
"dependencies": {
"ansi-styles": "^4.0.0",
@@ -42754,8 +41063,9 @@
},
"node_modules/slice-ansi/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,
- "license": "MIT",
"optional": true,
"dependencies": {
"color-convert": "^2.0.1"
@@ -42769,8 +41079,9 @@
},
"node_modules/slice-ansi/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,
- "license": "MIT",
"optional": true,
"dependencies": {
"color-name": "~1.1.4"
@@ -42781,8 +41092,9 @@
},
"node_modules/slice-ansi/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,
- "license": "MIT",
"optional": true
},
"node_modules/slugify": {
@@ -42794,9 +41106,9 @@
},
"node_modules/smart-buffer": {
"version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
+ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
"dev": true,
- "license": "MIT",
- "optional": true,
"engines": {
"node": ">= 6.0.0",
"npm": ">= 3.0.0"
@@ -42992,6 +41304,34 @@
"websocket-driver": "^0.7.4"
}
},
+ "node_modules/socks": {
+ "version": "2.8.3",
+ "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz",
+ "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==",
+ "dev": true,
+ "dependencies": {
+ "ip-address": "^9.0.5",
+ "smart-buffer": "^4.2.0"
+ },
+ "engines": {
+ "node": ">= 10.0.0",
+ "npm": ">= 3.0.0"
+ }
+ },
+ "node_modules/socks-proxy-agent": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz",
+ "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==",
+ "dev": true,
+ "dependencies": {
+ "agent-base": "^6.0.2",
+ "debug": "^4.3.3",
+ "socks": "^2.6.2"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
"node_modules/sort-asc": {
"version": "0.2.0",
"license": "MIT",
@@ -43041,17 +41381,15 @@
},
"node_modules/source-map-generator": {
"version": "0.8.0",
- "resolved": "https://registry.npmjs.org/source-map-generator/-/source-map-generator-0.8.0.tgz",
- "integrity": "sha512-psgxdGMwl5MZM9S3FWee4EgsEaIjahYV5AzGnwUvPhWeITz/j6rKpysQHlQ4USdxvINlb8lKfWGIXwfkrgtqkA==",
"dev": true,
+ "license": "BSD-3-Clause",
"engines": {
"node": ">= 10"
}
},
"node_modules/source-map-js": {
"version": "1.2.0",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
- "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
+ "license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
}
@@ -43083,9 +41421,8 @@
},
"node_modules/space-separated-tokens": {
"version": "2.0.2",
- "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
- "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -43093,8 +41430,6 @@
},
"node_modules/spawn-command": {
"version": "0.0.2",
- "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz",
- "integrity": "sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==",
"dev": true
},
"node_modules/spdx-correct": {
@@ -43164,8 +41499,7 @@
},
"node_modules/split": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
- "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
+ "license": "MIT",
"dependencies": {
"through": "2"
},
@@ -43196,8 +41530,7 @@
},
"node_modules/ssri": {
"version": "10.0.6",
- "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz",
- "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==",
+ "license": "ISC",
"dependencies": {
"minipass": "^7.0.3"
},
@@ -43207,8 +41540,7 @@
},
"node_modules/ssri/node_modules/minipass": {
"version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+ "license": "ISC",
"engines": {
"node": ">=16 || 14 >=14.17"
}
@@ -43220,8 +41552,7 @@
},
"node_modules/stack-chain": {
"version": "1.3.7",
- "resolved": "https://registry.npmjs.org/stack-chain/-/stack-chain-1.3.7.tgz",
- "integrity": "sha512-D8cWtWVdIe/jBA7v5p5Hwl5yOSOrmZPWDPe2KxQ5UAGD+nxbxU0lKXA4h85Ta6+qgdKVL3vUxsbIZjc1kBG7ug==",
+ "license": "MIT",
"peer": true
},
"node_modules/stack-generator": {
@@ -43295,8 +41626,9 @@
},
"node_modules/stat-mode": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz",
+ "integrity": "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 6"
}
@@ -43398,15 +41730,13 @@
},
"node_modules/store2": {
"version": "2.14.3",
- "resolved": "https://registry.npmjs.org/store2/-/store2-2.14.3.tgz",
- "integrity": "sha512-4QcZ+yx7nzEFiV4BMLnr/pRa5HYzNITX2ri0Zh6sT9EyQHbBHacC6YigllUPU9X3D0f/22QCgfokpKs52YRrUg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/storybook": {
"version": "8.1.10",
- "resolved": "https://registry.npmjs.org/storybook/-/storybook-8.1.10.tgz",
- "integrity": "sha512-HHlZibyc/QkcQj8aEnYnYwEl+ItNZ/uRbCdkvJzu/vIWYon5jUg30mHFIGZprgLSt27CxOs30Et8yT9z4VhwjA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@storybook/cli": "8.1.10"
},
@@ -43447,9 +41777,8 @@
},
"node_modules/stream-shift": {
"version": "1.0.3",
- "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz",
- "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/strict-uri-encode": {
"version": "2.0.0",
@@ -43478,9 +41807,8 @@
},
"node_modules/string-natural-compare": {
"version": "3.0.1",
- "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz",
- "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/string-width": {
"version": "4.2.3",
@@ -43527,8 +41855,7 @@
},
"node_modules/string.prototype.trim": {
"version": "1.2.9",
- "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz",
- "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==",
+ "license": "MIT",
"dependencies": {
"call-bind": "^1.0.7",
"define-properties": "^1.2.1",
@@ -43544,8 +41871,7 @@
},
"node_modules/string.prototype.trimend": {
"version": "1.0.8",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz",
- "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==",
+ "license": "MIT",
"dependencies": {
"call-bind": "^1.0.7",
"define-properties": "^1.2.1",
@@ -43557,8 +41883,7 @@
},
"node_modules/string.prototype.trimstart": {
"version": "1.0.8",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",
- "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",
+ "license": "MIT",
"dependencies": {
"call-bind": "^1.0.7",
"define-properties": "^1.2.1",
@@ -43663,13 +41988,11 @@
},
"node_modules/strnum": {
"version": "1.0.5",
- "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz",
- "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA=="
+ "license": "MIT"
},
"node_modules/structured-headers": {
"version": "0.4.1",
- "resolved": "https://registry.npmjs.org/structured-headers/-/structured-headers-0.4.1.tgz",
- "integrity": "sha512-0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg=="
+ "license": "MIT"
},
"node_modules/style-loader": {
"version": "2.0.0",
@@ -43735,8 +42058,7 @@
},
"node_modules/sudo-prompt": {
"version": "9.2.1",
- "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.2.1.tgz",
- "integrity": "sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw=="
+ "license": "MIT"
},
"node_modules/sumchecker": {
"version": "3.0.1",
@@ -43835,8 +42157,7 @@
},
"node_modules/supports-hyperlinks": {
"version": "2.3.0",
- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz",
- "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0",
"supports-color": "^7.0.0"
@@ -43847,16 +42168,14 @@
},
"node_modules/supports-hyperlinks/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==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/supports-hyperlinks/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==",
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -43928,21 +42247,18 @@
},
"node_modules/tabbable": {
"version": "6.2.0",
- "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz",
- "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew=="
+ "license": "MIT"
},
"node_modules/tapable": {
"version": "2.2.1",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
- "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
+ "license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/tar": {
"version": "6.2.1",
- "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz",
- "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==",
+ "license": "ISC",
"dependencies": {
"chownr": "^2.0.0",
"fs-minipass": "^2.0.0",
@@ -43957,9 +42273,8 @@
},
"node_modules/tar-fs": {
"version": "2.1.1",
- "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
- "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"chownr": "^1.1.1",
"mkdirp-classic": "^0.5.2",
@@ -43969,9 +42284,8 @@
},
"node_modules/tar-fs/node_modules/chownr": {
"version": "1.1.4",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
- "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/tar-stream": {
"version": "2.2.0",
@@ -44010,17 +42324,15 @@
},
"node_modules/telejson": {
"version": "7.2.0",
- "resolved": "https://registry.npmjs.org/telejson/-/telejson-7.2.0.tgz",
- "integrity": "sha512-1QTEcJkJEhc8OnStBx/ILRu5J2p0GjvWsBx56bmZRqnrkdBMUe+nX92jxV+p3dB4CP6PZCdJMQJwCggkNBMzkQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"memoizerific": "^1.11.3"
}
},
"node_modules/temp": {
"version": "0.8.4",
- "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz",
- "integrity": "sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==",
+ "license": "MIT",
"dependencies": {
"rimraf": "~2.6.2"
},
@@ -44037,8 +42349,9 @@
},
"node_modules/temp-file": {
"version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.4.0.tgz",
+ "integrity": "sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"async-exit-hook": "^2.0.1",
"fs-extra": "^10.0.0"
@@ -44046,8 +42359,9 @@
},
"node_modules/temp-file/node_modules/fs-extra": {
"version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
+ "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -44059,8 +42373,7 @@
},
"node_modules/temp/node_modules/rimraf": {
"version": "2.6.3",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
- "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+ "license": "ISC",
"dependencies": {
"glob": "^7.1.3"
},
@@ -44070,8 +42383,7 @@
},
"node_modules/tempy": {
"version": "0.7.1",
- "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.7.1.tgz",
- "integrity": "sha512-vXPxwOyaNVi9nyczO16mxmHGpl6ASC5/TVhRRHpqeYHvKQm58EaWNvZXxAhR0lYYnBOQFjXjhzeLsaXdjxLjRg==",
+ "license": "MIT",
"dependencies": {
"del": "^6.0.0",
"is-stream": "^2.0.0",
@@ -44088,8 +42400,7 @@
},
"node_modules/tempy/node_modules/del": {
"version": "6.1.1",
- "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz",
- "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==",
+ "license": "MIT",
"dependencies": {
"globby": "^11.0.1",
"graceful-fs": "^4.2.4",
@@ -44109,16 +42420,14 @@
},
"node_modules/tempy/node_modules/is-path-inside": {
"version": "3.0.3",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
- "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/tempy/node_modules/type-fest": {
"version": "0.16.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz",
- "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==",
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=10"
},
@@ -44128,8 +42437,7 @@
},
"node_modules/terminal-link": {
"version": "2.1.1",
- "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz",
- "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==",
+ "license": "MIT",
"dependencies": {
"ansi-escapes": "^4.2.1",
"supports-hyperlinks": "^2.0.0"
@@ -44143,8 +42451,7 @@
},
"node_modules/terser": {
"version": "5.30.3",
- "resolved": "https://registry.npmjs.org/terser/-/terser-5.30.3.tgz",
- "integrity": "sha512-STdUgOUx8rLbMGO9IOwHLpCqolkDITFFQSMYYwKE1N2lY6MVSaeoi10z/EhWxRc6ybqoVmKSkhKYH/XUpl7vSA==",
+ "license": "BSD-2-Clause",
"dependencies": {
"@jridgewell/source-map": "^0.3.3",
"acorn": "^8.8.2",
@@ -44160,8 +42467,7 @@
},
"node_modules/terser-webpack-plugin": {
"version": "5.3.10",
- "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz",
- "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==",
+ "license": "MIT",
"dependencies": {
"@jridgewell/trace-mapping": "^0.3.20",
"jest-worker": "^27.4.5",
@@ -44262,8 +42568,7 @@
},
"node_modules/through": {
"version": "2.3.8",
- "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
- "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="
+ "license": "MIT"
},
"node_modules/through2": {
"version": "2.0.5",
@@ -44275,9 +42580,8 @@
},
"node_modules/thunky": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz",
- "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/time-analytics-webpack-plugin": {
"version": "0.1.17",
@@ -44380,14 +42684,12 @@
},
"node_modules/tiny-invariant": {
"version": "1.3.3",
- "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz",
- "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg=="
+ "license": "MIT"
},
"node_modules/tinycolor2": {
"version": "1.6.0",
- "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz",
- "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/tinyqueue": {
"version": "2.0.3",
@@ -44395,16 +42697,18 @@
},
"node_modules/tmp": {
"version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz",
+ "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=14.14"
}
},
"node_modules/tmp-promise": {
"version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz",
+ "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"tmp": "^0.2.0"
}
@@ -44472,9 +42776,8 @@
},
"node_modules/tocbot": {
"version": "4.28.2",
- "resolved": "https://registry.npmjs.org/tocbot/-/tocbot-4.28.2.tgz",
- "integrity": "sha512-/MaSa9xI6mIo84IxqqliSCtPlH0oy7sLcY9s26qPMyH/2CxtZ2vNAXYlIdEQ7kjAkCQnc0rbLygf//F5c663oQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/toidentifier": {
"version": "1.0.1",
@@ -44513,8 +42816,7 @@
},
"node_modules/traverse": {
"version": "0.6.9",
- "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.9.tgz",
- "integrity": "sha512-7bBrcF+/LQzSgFmT0X5YclVqQxtv7TDJ1f8Wj7ibBu/U6BMLeOpUxuZjV7rMc44UtKxlnMFigdhFAIszSX1DMg==",
+ "license": "MIT",
"dependencies": {
"gopd": "^1.0.1",
"typedarray.prototype.slice": "^1.0.3",
@@ -44537,25 +42839,24 @@
},
"node_modules/trim-right": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
- "integrity": "sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==",
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/truncate-utf8-bytes": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz",
+ "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==",
"dev": true,
- "license": "WTFPL",
"dependencies": {
"utf8-byte-length": "^1.0.1"
}
},
"node_modules/ts-api-utils": {
"version": "1.3.0",
- "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz",
- "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=16"
},
@@ -44577,9 +42878,8 @@
},
"node_modules/ts-jest": {
"version": "29.1.2",
- "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.2.tgz",
- "integrity": "sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"bs-logger": "0.x",
"fast-json-stable-stringify": "2.x",
@@ -44620,9 +42920,8 @@
},
"node_modules/ts-jest/node_modules/yargs-parser": {
"version": "21.1.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
- "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": ">=12"
}
@@ -44694,9 +42993,8 @@
},
"node_modules/ts-regex-builder": {
"version": "1.7.1",
- "resolved": "https://registry.npmjs.org/ts-regex-builder/-/ts-regex-builder-1.7.1.tgz",
- "integrity": "sha512-FaxtsuQ9jLT+p0Uefmi8WCjRcCQ64kHyzfAD0MO2BjYXV92qpnEFgdT1TIetUj4WiucuYCEjCq+n6xGxp7DkNQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 18.0.0"
}
@@ -44707,9 +43005,8 @@
},
"node_modules/tsconfig-paths": {
"version": "4.2.0",
- "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz",
- "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"json5": "^2.2.2",
"minimist": "^1.2.6",
@@ -44786,9 +43083,8 @@
},
"node_modules/type-fest": {
"version": "4.20.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.20.0.tgz",
- "integrity": "sha512-MBh+PHUHHisjXf4tlx0CFWoMdjx8zCMLJHOjnV1prABYZFHqtFOyauCIK2/7w4oIfwkF8iNhLtnJEfVY2vn3iw==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=16"
},
@@ -44809,8 +43105,7 @@
},
"node_modules/typed-array-buffer": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz",
- "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==",
+ "license": "MIT",
"dependencies": {
"call-bind": "^1.0.7",
"es-errors": "^1.3.0",
@@ -44822,8 +43117,7 @@
},
"node_modules/typed-array-byte-length": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz",
- "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==",
+ "license": "MIT",
"dependencies": {
"call-bind": "^1.0.7",
"for-each": "^0.3.3",
@@ -44840,8 +43134,7 @@
},
"node_modules/typed-array-byte-offset": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz",
- "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==",
+ "license": "MIT",
"dependencies": {
"available-typed-arrays": "^1.0.7",
"call-bind": "^1.0.7",
@@ -44859,8 +43152,7 @@
},
"node_modules/typed-array-length": {
"version": "1.0.6",
- "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz",
- "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==",
+ "license": "MIT",
"dependencies": {
"call-bind": "^1.0.7",
"for-each": "^0.3.3",
@@ -44878,17 +43170,15 @@
},
"node_modules/typed-function": {
"version": "4.2.1",
- "resolved": "https://registry.npmjs.org/typed-function/-/typed-function-4.2.1.tgz",
- "integrity": "sha512-EGjWssW7Tsk4DGfE+5yluuljS1OGYWiI1J6e8puZz9nTMM51Oug8CD5Zo4gWMsOhq5BI+1bF+rWTm4Vbj3ivRA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 18"
}
},
"node_modules/typedarray.prototype.slice": {
"version": "1.0.3",
- "resolved": "https://registry.npmjs.org/typedarray.prototype.slice/-/typedarray.prototype.slice-1.0.3.tgz",
- "integrity": "sha512-8WbVAQAUlENo1q3c3zZYuy5k9VzBQvp8AX9WOtbvyWlLM1v5JaSRmjubLjzHF4JFtptjH/5c/i95yaElvcjC0A==",
+ "license": "MIT",
"dependencies": {
"call-bind": "^1.0.7",
"define-properties": "^1.2.1",
@@ -44906,9 +43196,8 @@
},
"node_modules/typescript": {
"version": "5.4.5",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
- "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
"devOptional": true,
+ "license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -44947,15 +43236,13 @@
},
"node_modules/ufo": {
"version": "1.5.3",
- "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.3.tgz",
- "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/uglify-js": {
"version": "3.17.4",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz",
- "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==",
"dev": true,
+ "license": "BSD-2-Clause",
"optional": true,
"bin": {
"uglifyjs": "bin/uglifyjs"
@@ -45024,9 +43311,8 @@
},
"node_modules/unicorn-magic": {
"version": "0.1.0",
- "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz",
- "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=18"
},
@@ -45056,8 +43342,7 @@
},
"node_modules/unique-filename": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz",
- "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==",
+ "license": "ISC",
"dependencies": {
"unique-slug": "^4.0.0"
},
@@ -45067,8 +43352,7 @@
},
"node_modules/unique-slug": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz",
- "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==",
+ "license": "ISC",
"dependencies": {
"imurmurhash": "^0.1.4"
},
@@ -45078,8 +43362,7 @@
},
"node_modules/unique-string": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
- "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
+ "license": "MIT",
"dependencies": {
"crypto-random-string": "^2.0.0"
},
@@ -45089,9 +43372,8 @@
},
"node_modules/unist-util-is": {
"version": "6.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz",
- "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/unist": "^3.0.0"
},
@@ -45102,9 +43384,8 @@
},
"node_modules/unist-util-visit": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
- "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/unist": "^3.0.0",
"unist-util-is": "^6.0.0",
@@ -45117,9 +43398,8 @@
},
"node_modules/unist-util-visit-parents": {
"version": "6.0.1",
- "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz",
- "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/unist": "^3.0.0",
"unist-util-is": "^6.0.0"
@@ -45150,9 +43430,8 @@
},
"node_modules/unplugin": {
"version": "1.10.1",
- "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.10.1.tgz",
- "integrity": "sha512-d6Mhq8RJeGA8UfKCu54Um4lFA0eSaRa3XxdAJg8tIdxbu1ubW0hBCZUL7yI2uGyYCRndvbK8FLHzqy2XKfeMsg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"acorn": "^8.11.3",
"chokidar": "^3.6.0",
@@ -45165,9 +43444,8 @@
},
"node_modules/unplugin/node_modules/acorn": {
"version": "8.12.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz",
- "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==",
"dev": true,
+ "license": "MIT",
"bin": {
"acorn": "bin/acorn"
},
@@ -45177,18 +43455,16 @@
},
"node_modules/unplugin/node_modules/webpack-sources": {
"version": "3.2.3",
- "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
- "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10.13.0"
}
},
"node_modules/unplugin/node_modules/webpack-virtual-modules": {
"version": "0.6.2",
- "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz",
- "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/unset-value": {
"version": "1.0.0",
@@ -45241,9 +43517,8 @@
},
"node_modules/untildify": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz",
- "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -45259,8 +43534,6 @@
},
"node_modules/update-browserslist-db": {
"version": "1.0.13",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
- "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
"funding": [
{
"type": "opencollective",
@@ -45275,6 +43548,7 @@
"url": "https://github.com/sponsors/ai"
}
],
+ "license": "MIT",
"dependencies": {
"escalade": "^3.1.1",
"picocolors": "^1.0.0"
@@ -45312,8 +43586,7 @@
},
"node_modules/url-join": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz",
- "integrity": "sha512-EGXjXJZhIHiQMK2pQukuFcL303nskqIRzWvPvV5O8miOfwoUb9G+a/Cld60kUyeaybEI94wvVClT10DtfeAExA=="
+ "license": "MIT"
},
"node_modules/url-parse": {
"version": "1.5.10",
@@ -45337,9 +43610,8 @@
},
"node_modules/use-callback-ref": {
"version": "1.3.2",
- "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz",
- "integrity": "sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"tslib": "^2.0.0"
},
@@ -45372,9 +43644,8 @@
},
"node_modules/use-sidecar": {
"version": "1.1.2",
- "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz",
- "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"detect-node-es": "^1.1.0",
"tslib": "^2.0.0"
@@ -45394,8 +43665,7 @@
},
"node_modules/username": {
"version": "5.1.0",
- "resolved": "https://registry.npmjs.org/username/-/username-5.1.0.tgz",
- "integrity": "sha512-PCKbdWw85JsYMvmCv5GH3kXmM66rCd9m1hBEDutPNv94b/pqCMT4NtcKyeWYvLFiE8b+ha1Jdl8XAaUdPn5QTg==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"execa": "^1.0.0",
@@ -45407,8 +43677,7 @@
},
"node_modules/username/node_modules/cross-spawn": {
"version": "6.0.5",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
- "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"nice-try": "^1.0.4",
@@ -45423,8 +43692,7 @@
},
"node_modules/username/node_modules/execa": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
- "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"cross-spawn": "^6.0.0",
@@ -45441,8 +43709,7 @@
},
"node_modules/username/node_modules/get-stream": {
"version": "4.1.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
- "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"pump": "^3.0.0"
@@ -45453,8 +43720,7 @@
},
"node_modules/username/node_modules/is-stream": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=0.10.0"
@@ -45462,8 +43728,7 @@
},
"node_modules/username/node_modules/npm-run-path": {
"version": "2.0.2",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
- "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"path-key": "^2.0.0"
@@ -45474,8 +43739,7 @@
},
"node_modules/username/node_modules/path-key": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
- "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=4"
@@ -45483,8 +43747,7 @@
},
"node_modules/username/node_modules/semver": {
"version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "license": "ISC",
"peer": true,
"bin": {
"semver": "bin/semver"
@@ -45492,8 +43755,7 @@
},
"node_modules/username/node_modules/shebang-command": {
"version": "1.2.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
- "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"shebang-regex": "^1.0.0"
@@ -45504,8 +43766,7 @@
},
"node_modules/username/node_modules/shebang-regex": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
- "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=0.10.0"
@@ -45513,8 +43774,7 @@
},
"node_modules/username/node_modules/which": {
"version": "1.3.1",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "license": "ISC",
"peer": true,
"dependencies": {
"isexe": "^2.0.0"
@@ -45528,9 +43788,10 @@
"license": "MIT"
},
"node_modules/utf8-byte-length": {
- "version": "1.0.4",
- "dev": true,
- "license": "WTFPL"
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.5.tgz",
+ "integrity": "sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==",
+ "dev": true
},
"node_modules/util": {
"version": "0.11.1",
@@ -45579,8 +43840,7 @@
},
"node_modules/v8-to-istanbul": {
"version": "9.2.0",
- "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz",
- "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==",
+ "license": "ISC",
"dependencies": {
"@jridgewell/trace-mapping": "^0.3.12",
"@types/istanbul-lib-coverage": "^2.0.1",
@@ -45591,9 +43851,7 @@
}
},
"node_modules/valid-url": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz",
- "integrity": "sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA=="
+ "version": "1.0.9"
},
"node_modules/validate-npm-package-license": {
"version": "3.0.4",
@@ -45605,8 +43863,7 @@
},
"node_modules/validate-npm-package-name": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz",
- "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==",
+ "license": "ISC",
"dependencies": {
"builtins": "^1.0.3"
}
@@ -45620,8 +43877,9 @@
},
"node_modules/verror": {
"version": "1.10.1",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz",
+ "integrity": "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==",
"dev": true,
- "license": "MIT",
"optional": true,
"dependencies": {
"assert-plus": "^1.0.0",
@@ -45683,8 +43941,7 @@
},
"node_modules/warning": {
"version": "4.0.3",
- "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz",
- "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==",
+ "license": "MIT",
"dependencies": {
"loose-envify": "^1.0.0"
}
@@ -46140,9 +44397,8 @@
},
"node_modules/webpack-cli": {
"version": "5.1.4",
- "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz",
- "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@discoveryjs/json-ext": "^0.5.0",
"@webpack-cli/configtest": "^2.1.1",
@@ -46190,18 +44446,16 @@
},
"node_modules/webpack-cli/node_modules/commander": {
"version": "10.0.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
- "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=14"
}
},
"node_modules/webpack-dev-middleware": {
"version": "6.1.3",
- "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.1.3.tgz",
- "integrity": "sha512-A4ChP0Qj8oGociTs6UdlRUGANIGrCDL3y+pmQMc+dSsraXHCatFpmMey4mYELA+juqwUqwQsUgJJISXl1KWmiw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"colorette": "^2.0.10",
"memfs": "^3.4.12",
@@ -46227,9 +44481,8 @@
},
"node_modules/webpack-dev-middleware/node_modules/ajv-keywords": {
"version": "5.1.0",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
- "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.3"
},
@@ -46239,15 +44492,13 @@
},
"node_modules/webpack-dev-middleware/node_modules/colorette": {
"version": "2.0.20",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
- "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/webpack-dev-middleware/node_modules/memfs": {
"version": "3.5.3",
- "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz",
- "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==",
"dev": true,
+ "license": "Unlicense",
"dependencies": {
"fs-monkey": "^1.0.4"
},
@@ -46257,9 +44508,8 @@
},
"node_modules/webpack-dev-middleware/node_modules/schema-utils": {
"version": "4.2.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz",
- "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/json-schema": "^7.0.9",
"ajv": "^8.9.0",
@@ -46276,9 +44526,8 @@
},
"node_modules/webpack-dev-server": {
"version": "5.0.4",
- "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.0.4.tgz",
- "integrity": "sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/bonjour": "^3.5.13",
"@types/connect-history-api-fallback": "^1.5.4",
@@ -46335,9 +44584,8 @@
},
"node_modules/webpack-dev-server/node_modules/ajv-keywords": {
"version": "5.1.0",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
- "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.3"
},
@@ -46347,24 +44595,21 @@
},
"node_modules/webpack-dev-server/node_modules/brace-expansion": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
}
},
"node_modules/webpack-dev-server/node_modules/colorette": {
"version": "2.0.20",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
- "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/webpack-dev-server/node_modules/define-lazy-prop": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz",
- "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -46374,9 +44619,8 @@
},
"node_modules/webpack-dev-server/node_modules/glob": {
"version": "10.3.12",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz",
- "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"foreground-child": "^3.1.0",
"jackspeak": "^2.3.6",
@@ -46404,9 +44648,8 @@
},
"node_modules/webpack-dev-server/node_modules/is-wsl": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz",
- "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-inside-container": "^1.0.0"
},
@@ -46419,9 +44662,8 @@
},
"node_modules/webpack-dev-server/node_modules/minimatch": {
"version": "9.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
- "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"brace-expansion": "^2.0.1"
},
@@ -46434,18 +44676,16 @@
},
"node_modules/webpack-dev-server/node_modules/minipass": {
"version": "7.0.4",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz",
- "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": ">=16 || 14 >=14.17"
}
},
"node_modules/webpack-dev-server/node_modules/open": {
"version": "10.1.0",
- "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz",
- "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"default-browser": "^5.2.1",
"define-lazy-prop": "^3.0.0",
@@ -46461,9 +44701,8 @@
},
"node_modules/webpack-dev-server/node_modules/rimraf": {
"version": "5.0.5",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz",
- "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"glob": "^10.3.7"
},
@@ -46479,9 +44718,8 @@
},
"node_modules/webpack-dev-server/node_modules/schema-utils": {
"version": "4.2.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz",
- "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/json-schema": "^7.0.9",
"ajv": "^8.9.0",
@@ -46498,9 +44736,8 @@
},
"node_modules/webpack-dev-server/node_modules/webpack-dev-middleware": {
"version": "7.2.1",
- "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.2.1.tgz",
- "integrity": "sha512-hRLz+jPQXo999Nx9fXVdKlg/aehsw1ajA9skAneGmT03xwmyuhvF93p6HUKKbWhXdcERtGTzUCtIQr+2IQegrA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"colorette": "^2.0.10",
"memfs": "^4.6.0",
@@ -46527,9 +44764,8 @@
},
"node_modules/webpack-hot-middleware": {
"version": "2.26.1",
- "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.26.1.tgz",
- "integrity": "sha512-khZGfAeJx6I8K9zKohEWWYN6KDlVw2DHownoe+6Vtwj1LP9WFgegXnVMSkZ/dBEBtXFwrkkydsaPFlB7f8wU2A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-html-community": "0.0.8",
"html-entities": "^2.1.0",
@@ -46558,9 +44794,8 @@
},
"node_modules/webpack-virtual-modules": {
"version": "0.5.0",
- "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz",
- "integrity": "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/webpack/node_modules/@types/estree": {
"version": "1.0.1",
@@ -46725,8 +44960,7 @@
},
"node_modules/which-typed-array": {
"version": "1.1.15",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz",
- "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==",
+ "license": "MIT",
"dependencies": {
"available-typed-arrays": "^1.0.7",
"call-bind": "^1.0.7",
@@ -46743,8 +44977,8 @@
},
"node_modules/wide-align": {
"version": "1.1.5",
+ "devOptional": true,
"license": "ISC",
- "optional": true,
"dependencies": {
"string-width": "^1.0.2 || 2 || 3 || 4"
}
@@ -46762,23 +44996,20 @@
},
"node_modules/wonka": {
"version": "4.0.15",
- "resolved": "https://registry.npmjs.org/wonka/-/wonka-4.0.15.tgz",
- "integrity": "sha512-U0IUQHKXXn6PFo9nqsHphVCE5m3IntqZNB9Jjn7EB1lrR7YTDY3YWgFvEvwniTzXSvOH/XMzAZaIfJF/LvHYXg=="
+ "license": "MIT"
},
"node_modules/word-wrap": {
"version": "1.2.5",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
- "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/wordwrap": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
- "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/wrap-ansi": {
"version": "7.0.0",
@@ -46917,8 +45148,7 @@
},
"node_modules/xml-formatter": {
"version": "2.6.1",
- "resolved": "https://registry.npmjs.org/xml-formatter/-/xml-formatter-2.6.1.tgz",
- "integrity": "sha512-dOiGwoqm8y22QdTNI7A+N03tyVfBlQ0/oehAzxIZtwnFAHGeSlrfjF73YQvzSsa/Kt6+YZasKsrdu6OIpuBggw==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"xml-parser-xo": "^3.2.0"
@@ -46929,8 +45159,7 @@
},
"node_modules/xml-parser": {
"version": "1.2.1",
- "resolved": "https://registry.npmjs.org/xml-parser/-/xml-parser-1.2.1.tgz",
- "integrity": "sha512-lPUzzmS0zdwcNtyNndCl2IwH172ozkUDqmfmH3FcuDzHVl552Kr6oNfsvteHabqTWhsrMgpijqZ/yT7Wo1/Pzw==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"debug": "^2.2.0"
@@ -46938,8 +45167,7 @@
},
"node_modules/xml-parser-xo": {
"version": "3.2.0",
- "resolved": "https://registry.npmjs.org/xml-parser-xo/-/xml-parser-xo-3.2.0.tgz",
- "integrity": "sha512-8LRU6cq+d7mVsoDaMhnkkt3CTtAs4153p49fRo+HIB3I1FD1o5CeXRjRH29sQevIfVJIcPjKSsPU/+Ujhq09Rg==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">= 10"
@@ -46947,8 +45175,7 @@
},
"node_modules/xml-parser/node_modules/debug": {
"version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "license": "MIT",
"peer": true,
"dependencies": {
"ms": "2.0.0"
@@ -46956,8 +45183,7 @@
},
"node_modules/xml-parser/node_modules/ms": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "license": "MIT",
"peer": true
},
"node_modules/xml2js": {
@@ -46991,8 +45217,7 @@
},
"node_modules/xpath": {
"version": "0.0.27",
- "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.27.tgz",
- "integrity": "sha512-fg03WRxtkCV6ohClePNAECYsmpKKTv5L8y/X3Dn1hQrec3POx2jHZ/0P2qQ6HvsrU1BmeqXcof3NGGueG6LxwQ==",
+ "license": "MIT",
"peer": true,
"engines": {
"node": ">=0.6.0"
@@ -47022,8 +45247,7 @@
},
"node_modules/yargs": {
"version": "17.7.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
- "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+ "license": "MIT",
"dependencies": {
"cliui": "^8.0.1",
"escalade": "^3.1.1",
@@ -47039,8 +45263,7 @@
},
"node_modules/yargs-parser": {
"version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
+ "license": "ISC",
"peer": true,
"engines": {
"node": ">=10"
@@ -47048,16 +45271,14 @@
},
"node_modules/yargs/node_modules/y18n": {
"version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "license": "ISC",
"engines": {
"node": ">=10"
}
},
"node_modules/yargs/node_modules/yargs-parser": {
"version": "21.1.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
- "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "license": "ISC",
"engines": {
"node": ">=12"
}
@@ -47091,8 +45312,9 @@
},
"node_modules/zip-stream": {
"version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.1.tgz",
+ "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"archiver-utils": "^3.0.4",
@@ -47105,8 +45327,9 @@
},
"node_modules/zip-stream/node_modules/archiver-utils": {
"version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz",
+ "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"glob": "^7.2.3",
@@ -47126,8 +45349,10 @@
},
"node_modules/zip-stream/node_modules/glob": {
"version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
"dev": true,
- "license": "ISC",
"peer": true,
"dependencies": {
"fs.realpath": "^1.0.0",
@@ -47146,8 +45371,9 @@
},
"node_modules/zip-stream/node_modules/readable-stream": {
"version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"dev": true,
- "license": "MIT",
"peer": true,
"dependencies": {
"inherits": "^2.0.3",
@@ -47160,17 +45386,15 @@
},
"node_modules/zod": {
"version": "3.23.8",
- "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz",
- "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==",
+ "license": "MIT",
"funding": {
"url": "https://github.com/sponsors/colinhacks"
}
},
"node_modules/zod-validation-error": {
"version": "3.3.0",
- "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-3.3.0.tgz",
- "integrity": "sha512-Syib9oumw1NTqEv4LT0e6U83Td9aVRk9iTXPUQr1otyV1PuXQKOvOwhMNqZIq5hluzHP2pMgnOmHEo7kPdI2mw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=18.0.0"
},
diff --git a/package.json b/package.json
index a22f2dd03fc0..afcdd69c42f6 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "new.expensify",
- "version": "9.0.8-3",
+ "version": "9.0.12-0",
"author": "Expensify, Inc.",
"homepage": "https://new.expensify.com",
"description": "New Expensify is the next generation of Expensify: a reimagination of payments based atop a foundation of chat.",
@@ -68,7 +68,7 @@
"@babel/plugin-proposal-private-methods": "^7.18.6",
"@babel/plugin-proposal-private-property-in-object": "^7.21.11",
"@dotlottie/react-player": "^1.6.3",
- "@expensify/react-native-live-markdown": "0.1.103",
+ "@expensify/react-native-live-markdown": "^0.1.107",
"@expo/metro-runtime": "~3.1.1",
"@formatjs/intl-datetimeformat": "^6.10.0",
"@formatjs/intl-listformat": "^7.2.2",
@@ -110,7 +110,7 @@
"date-fns-tz": "^2.0.0",
"dom-serializer": "^0.2.2",
"domhandler": "^4.3.0",
- "expensify-common": "2.0.39",
+ "expensify-common": "2.0.49",
"expo": "51.0.17",
"expo-av": "14.0.6",
"expo-image": "1.12.12",
@@ -173,7 +173,7 @@
"react-native-screens": "3.32.0",
"react-native-share": "^10.0.2",
"react-native-sound": "^0.11.2",
- "react-native-svg": "15.3.0",
+ "react-native-svg": "15.4.0",
"react-native-tab-view": "^3.5.2",
"react-native-url-polyfill": "^2.0.0",
"react-native-view-shot": "3.8.0",
@@ -211,7 +211,7 @@
"@octokit/core": "4.0.4",
"@octokit/plugin-paginate-rest": "3.1.0",
"@octokit/plugin-throttling": "4.1.0",
- "@perf-profiler/profiler": "^0.10.10",
+ "@perf-profiler/profiler": "^0.10.11",
"@perf-profiler/reporter": "^0.9.0",
"@perf-profiler/types": "^0.8.0",
"@react-native-community/eslint-config": "3.2.0",
@@ -268,7 +268,7 @@
"diff-so-fancy": "^1.3.0",
"dotenv": "^16.0.3",
"electron": "^29.4.1",
- "electron-builder": "24.13.2",
+ "electron-builder": "25.0.0",
"eslint": "^8.57.0",
"eslint-config-airbnb-typescript": "^18.0.0",
"eslint-config-expensify": "^2.0.52",
diff --git a/patches/@perf-profiler+android+0.12.1.patch b/patches/@perf-profiler+android+0.12.1.patch
deleted file mode 100644
index e6e4a90d6ab4..000000000000
--- a/patches/@perf-profiler+android+0.12.1.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/node_modules/@perf-profiler/android/dist/src/commands/platforms/UnixProfiler.js b/node_modules/@perf-profiler/android/dist/src/commands/platforms/UnixProfiler.js
-index 59aeed9..ee1d8a6 100644
---- a/node_modules/@perf-profiler/android/dist/src/commands/platforms/UnixProfiler.js
-+++ b/node_modules/@perf-profiler/android/dist/src/commands/platforms/UnixProfiler.js
-@@ -28,7 +28,7 @@ exports.CppProfilerName = `BAMPerfProfiler`;
- // into the Flipper plugin directory
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
- // @ts-expect-error
--const binaryFolder = global.Flipper
-+const binaryFolder = (global.Flipper || process.env.AWS)
- ? `${__dirname}/bin`
- : `${__dirname}/../../..${__dirname.includes("dist") ? "/.." : ""}/cpp-profiler/bin`;
- class UnixProfiler {
-diff --git a/node_modules/@perf-profiler/android/src/commands/platforms/UnixProfiler.ts b/node_modules/@perf-profiler/android/src/commands/platforms/UnixProfiler.ts
-index ccacf09..1eea659 100644
---- a/node_modules/@perf-profiler/android/src/commands/platforms/UnixProfiler.ts
-+++ b/node_modules/@perf-profiler/android/src/commands/platforms/UnixProfiler.ts
-@@ -26,7 +26,7 @@ export const CppProfilerName = `BAMPerfProfiler`;
- // into the Flipper plugin directory
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
- // @ts-expect-error
--const binaryFolder = global.Flipper
-+const binaryFolder = (global.Flipper || process.env.AWS)
- ? `${__dirname}/bin`
- : `${__dirname}/../../..${__dirname.includes("dist") ? "/.." : ""}/cpp-profiler/bin`;
-
diff --git a/patches/react-compiler-healthcheck+0.0.0-experimental-b130d5f-20240625.patch b/patches/react-compiler-healthcheck+0.0.0-experimental-b130d5f-20240625+001+initial.patch
similarity index 100%
rename from patches/react-compiler-healthcheck+0.0.0-experimental-b130d5f-20240625.patch
rename to patches/react-compiler-healthcheck+0.0.0-experimental-b130d5f-20240625+001+initial.patch
diff --git a/patches/react-compiler-healthcheck+0.0.0-experimental-b130d5f-20240625+002+enable-ref-identifiers.patch b/patches/react-compiler-healthcheck+0.0.0-experimental-b130d5f-20240625+002+enable-ref-identifiers.patch
new file mode 100644
index 000000000000..6caa4ad4c373
--- /dev/null
+++ b/patches/react-compiler-healthcheck+0.0.0-experimental-b130d5f-20240625+002+enable-ref-identifiers.patch
@@ -0,0 +1,28 @@
+diff --git a/node_modules/react-compiler-healthcheck/dist/index.js b/node_modules/react-compiler-healthcheck/dist/index.js
+index 4bf23db..fa2ab22 100755
+--- a/node_modules/react-compiler-healthcheck/dist/index.js
++++ b/node_modules/react-compiler-healthcheck/dist/index.js
+@@ -69088,6 +69088,9 @@ const COMPILER_OPTIONS = {
+ compilationMode: "infer",
+ panicThreshold: "critical_errors",
+ logger: logger,
++ environment: {
++ enableTreatRefLikeIdentifiersAsRefs: true,
++ },
+ };
+ function isActionableDiagnostic(detail) {
+ switch (detail.severity) {
+diff --git a/node_modules/react-compiler-healthcheck/src/checks/reactCompiler.ts b/node_modules/react-compiler-healthcheck/src/checks/reactCompiler.ts
+index 09c9b9b..d2418e0 100644
+--- a/node_modules/react-compiler-healthcheck/src/checks/reactCompiler.ts
++++ b/node_modules/react-compiler-healthcheck/src/checks/reactCompiler.ts
+@@ -51,6 +51,9 @@ const COMPILER_OPTIONS: Partial = {
+ compilationMode: "infer",
+ panicThreshold: "critical_errors",
+ logger,
++ environment: {
++ enableTreatRefLikeIdentifiersAsRefs: true,
++ },
+ };
+
+ function isActionableDiagnostic(detail: CompilerErrorDetailOptions) {
diff --git a/patches/react-compiler-healthcheck+0.0.0-experimental-b130d5f-20240625+003+json.patch b/patches/react-compiler-healthcheck+0.0.0-experimental-b130d5f-20240625+003+json.patch
new file mode 100644
index 000000000000..a3de7a365889
--- /dev/null
+++ b/patches/react-compiler-healthcheck+0.0.0-experimental-b130d5f-20240625+003+json.patch
@@ -0,0 +1,73 @@
+diff --git a/node_modules/react-compiler-healthcheck/dist/index.js b/node_modules/react-compiler-healthcheck/dist/index.js
+index fa2ab22..93be1fb 100755
+--- a/node_modules/react-compiler-healthcheck/dist/index.js
++++ b/node_modules/react-compiler-healthcheck/dist/index.js
+@@ -69157,16 +69157,28 @@ var reactCompilerCheck = {
+ compile(source, path);
+ }
+ },
+- report(verbose) {
++ report(verbose, json) {
+ const totalComponents =
+ SucessfulCompilation.length +
+ countUniqueLocInEvents(OtherFailures) +
+ countUniqueLocInEvents(ActionableFailures);
+- console.log(
+- chalk.green(
+- `Successfully compiled ${SucessfulCompilation.length} out of ${totalComponents} components.`
+- )
+- );
++ if (!json) {
++ console.log(
++ chalk.green(
++ `Successfully compiled ${SucessfulCompilation.length} out of ${totalComponents} components.`
++ )
++ );
++ }
++
++ if (json) {
++ const extractFileName = (output) => output.fnLoc.filename;
++ const successfulFiles = SucessfulCompilation.map(extractFileName);
++ const unsuccessfulFiles = [...new Set([...OtherFailures, ...ActionableFailures].map(extractFileName))];
++ console.log(JSON.stringify({
++ success: successfulFiles,
++ failure: unsuccessfulFiles,
++ }));
++ }
+
+ if (verbose) {
+ for (const compilation of [...SucessfulCompilation, ...ActionableFailures, ...OtherFailures]) {
+@@ -69253,10 +69265,17 @@ function main() {
+ default: false,
+ alias: 'v',
+ })
++ .option('json', {
++ description: 'print a list of compiled/not-compiled files as JSON',
++ type: 'boolean',
++ default: false,
++ alias: 'j',
++ })
+ .parseSync();
+ const spinner = ora("Checking").start();
+ let src = argv.src;
+ let verbose = argv.verbose;
++ let json = argv.json;
+ const globOptions = {
+ onlyFiles: true,
+ ignore: [
+@@ -69276,9 +69295,12 @@ function main() {
+ libraryCompatCheck.run(source, path);
+ }
+ spinner.stop();
+- reactCompilerCheck.report(verbose);
+- strictModeCheck.report();
+- libraryCompatCheck.report();
++ reactCompilerCheck.report(verbose, json);
++ // using json option we only want to get list of files
++ if (!json) {
++ strictModeCheck.report();
++ libraryCompatCheck.report();
++ }
+ });
+ }
+ main();
diff --git a/patches/react-native+0.75.0-rc.4+014+iOS-fix-adjustFontSizeToFit-new-architecture.patch b/patches/react-native+0.75.0-rc.4+014+iOS-fix-adjustFontSizeToFit-new-architecture.patch
new file mode 100644
index 000000000000..7fe379f6da2c
--- /dev/null
+++ b/patches/react-native+0.75.0-rc.4+014+iOS-fix-adjustFontSizeToFit-new-architecture.patch
@@ -0,0 +1,16 @@
+diff --git a/node_modules/react-native/Libraries/Text/Text/NSTextStorage+FontScaling.m b/node_modules/react-native/Libraries/Text/Text/NSTextStorage+FontScaling.m
+index ee391a2..cdd6358 100644
+--- a/node_modules/react-native/Libraries/Text/Text/NSTextStorage+FontScaling.m
++++ b/node_modules/react-native/Libraries/Text/Text/NSTextStorage+FontScaling.m
+@@ -19,6 +19,11 @@ - (void)scaleFontSizeToFitSize:(CGSize)size
+ minimumFontSize:(CGFloat)minimumFontSize
+ maximumFontSize:(CGFloat)maximumFontSize
+ {
++ // Don't scale the font if it already fits
++ if ([self compareToSize:size thresholdRatio:0.01] & RCTTextSizeComparisonSmaller) {
++ return;
++ }
++
+ CGFloat bottomRatio = 1.0 / 128.0;
+ CGFloat topRatio = 128.0;
+ CGFloat ratio = 1.0;
diff --git a/patches/react-native+0.75.0-rc.4+015+textInputClear.patch b/patches/react-native+0.75.0-rc.4+015+textInputClear.patch
new file mode 100644
index 000000000000..1cadce6a0783
--- /dev/null
+++ b/patches/react-native+0.75.0-rc.4+015+textInputClear.patch
@@ -0,0 +1,66 @@
+diff --git a/node_modules/react-native/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm b/node_modules/react-native/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm
+index 7ce04da..123968f 100644
+--- a/node_modules/react-native/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm
++++ b/node_modules/react-native/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm
+@@ -452,6 +452,12 @@ - (void)blur
+ [_backedTextInputView resignFirstResponder];
+ }
+
++- (void)clear
++{
++ [self setTextAndSelection:_mostRecentEventCount value:@"" start:0 end:0];
++ _mostRecentEventCount++;
++}
++
+ - (void)setTextAndSelection:(NSInteger)eventCount
+ value:(NSString *__nullable)value
+ start:(NSInteger)start
+diff --git a/node_modules/react-native/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputNativeCommands.h b/node_modules/react-native/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputNativeCommands.h
+index fe3376a..6a9a45f 100644
+--- a/node_modules/react-native/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputNativeCommands.h
++++ b/node_modules/react-native/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputNativeCommands.h
+@@ -14,6 +14,7 @@ NS_ASSUME_NONNULL_BEGIN
+ @protocol RCTTextInputViewProtocol
+ - (void)focus;
+ - (void)blur;
++- (void)clear;
+ - (void)setTextAndSelection:(NSInteger)eventCount
+ value:(NSString *__nullable)value
+ start:(NSInteger)start
+@@ -49,6 +50,19 @@ RCTTextInputHandleCommand(id componentView, const NSSt
+ return;
+ }
+
++ if ([commandName isEqualToString:@"clear"]) {
++#if RCT_DEBUG
++ if ([args count] != 0) {
++ RCTLogError(
++ @"%@ command %@ received %d arguments, expected %d.", @"TextInput", commandName, (int)[args count], 0);
++ return;
++ }
++#endif
++
++ [componentView clear];
++ return;
++ }
++
+ if ([commandName isEqualToString:@"setTextAndSelection"]) {
+ #if RCT_DEBUG
+ if ([args count] != 4) {
+diff --git a/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java b/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java
+index 8496a7d..e6bcfc4 100644
+--- a/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java
++++ b/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java
+@@ -331,6 +331,12 @@ public class ReactTextInputManager extends BaseViewManager)
+ #import
+ #else
++#ifdef USE_FRAMEWORKS
++#import
++#else
+ #import
+ #endif
++#endif
+
+ // copied from RCTFollyConvert
+ folly::dynamic PLKConvertIdToFollyDynamic(id json)
+diff --git a/node_modules/react-native-plaid-link-sdk/react-native-plaid-link-sdk.podspec b/node_modules/react-native-plaid-link-sdk/react-native-plaid-link-sdk.podspec
+index 7c60081..4a13a3c 100644
+--- a/node_modules/react-native-plaid-link-sdk/react-native-plaid-link-sdk.podspec
++++ b/node_modules/react-native-plaid-link-sdk/react-native-plaid-link-sdk.podspec
+@@ -21,6 +21,13 @@ Pod::Spec.new do |s|
+ # we don't want this to be seen by Swift
+ s.private_header_files = 'ios/PLKFabricHelpers.h'
+
++ if ENV['USE_FRAMEWORKS'] == '1'
++ s.pod_target_xcconfig = {
++ "OTHER_CFLAGS" => "$(inherited) -DUSE_FRAMEWORKS",
++ "OTHER_CPLUSPLUSFLAGS" => "$(inherited) -DUSE_FRAMEWORKS",
++ }
++ end
++
+ if fabric_enabled
+ install_modules_dependencies(s)
+ else
diff --git a/patches/react-native-svg+15.3.0+001+rn75-fixes.patch b/patches/react-native-svg+15.3.0+001+rn75-fixes.patch
deleted file mode 100644
index 8266b638c4d9..000000000000
--- a/patches/react-native-svg+15.3.0+001+rn75-fixes.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/node_modules/react-native-svg/common/cpp/react/renderer/components/rnsvg/RNSVGImageState.h b/node_modules/react-native-svg/common/cpp/react/renderer/components/rnsvg/RNSVGImageState.h
-index 746b801..ac571a4 100644
---- a/node_modules/react-native-svg/common/cpp/react/renderer/components/rnsvg/RNSVGImageState.h
-+++ b/node_modules/react-native-svg/common/cpp/react/renderer/components/rnsvg/RNSVGImageState.h
-@@ -14,6 +14,7 @@
- #ifdef ANDROID
- #include
- #include
-+#include
- #endif
-
- namespace facebook {
diff --git a/patches/react-native-web+0.19.12+003+image-header-support.patch b/patches/react-native-web+0.19.12+003+image-header-support.patch
index 6652f0345cc4..d0a490a4ed70 100644
--- a/patches/react-native-web+0.19.12+003+image-header-support.patch
+++ b/patches/react-native-web+0.19.12+003+image-header-support.patch
@@ -1,5 +1,5 @@
diff --git a/node_modules/react-native-web/dist/exports/Image/index.js b/node_modules/react-native-web/dist/exports/Image/index.js
-index 9649d27..3281cc8 100644
+index 9649d27..66ef95c 100644
--- a/node_modules/react-native-web/dist/exports/Image/index.js
+++ b/node_modules/react-native-web/dist/exports/Image/index.js
@@ -135,7 +135,22 @@ function resolveAssetUri(source) {
@@ -47,7 +47,7 @@ index 9649d27..3281cc8 100644
});
}
function abortPendingRequest() {
-@@ -279,10 +288,78 @@ var Image = /*#__PURE__*/React.forwardRef((props, ref) => {
+@@ -279,10 +288,79 @@ var Image = /*#__PURE__*/React.forwardRef((props, ref) => {
suppressHydrationWarning: true
}), hiddenImage, createTintColorSVG(tintColor, filterRef.current));
});
@@ -64,24 +64,20 @@ index 9649d27..3281cc8 100644
+ var _React$useState3 = React.useState(''),
+ blobUri = _React$useState3[0],
+ setBlobUri = _React$useState3[1];
-+ var request = React.useRef({
-+ cancel: () => {},
-+ source: {
-+ uri: '',
-+ headers: {}
-+ },
-+ promise: Promise.resolve('')
-+ });
++ var request = React.useRef(null);
+ var onError = props.onError,
+ onLoadStart = props.onLoadStart,
+ onLoadEnd = props.onLoadEnd;
+ React.useEffect(() => {
-+ if (!hasSourceDiff(nextSource, request.current.source)) {
++ if (request.current !== null && !hasSourceDiff(nextSource, request.current.source)) {
+ return;
+ }
+
+ // When source changes we want to clean up any old/running requests
-+ request.current.cancel();
++ if (request.current !== null) {
++ request.current.cancel();
++ }
++
+ if (onLoadStart) {
+ onLoadStart();
+ }
@@ -96,7 +92,12 @@ index 9649d27..3281cc8 100644
+ }, [nextSource, onLoadStart, onError, onLoadEnd]);
+
+ // Cancel any request on unmount
-+ React.useEffect(() => request.current.cancel, []);
++ React.useEffect(() => () => {
++ if (request.current !== null) {
++ request.current.cancel();
++ request.current = null;
++ }
++ }, []);
+ var propsToPass = _objectSpread(_objectSpread({}, props), {}, {
+ // `onLoadStart` is called from the current component
+ // We skip passing it down to prevent BaseImage raising it a 2nd time
diff --git a/scripts/applyPatches.sh b/scripts/applyPatches.sh
index 9145629015ee..4ce023755258 100755
--- a/scripts/applyPatches.sh
+++ b/scripts/applyPatches.sh
@@ -11,7 +11,7 @@ source "$SCRIPTS_DIR/shellUtils.sh"
function patchPackage {
OS="$(uname)"
if [[ "$OS" == "Darwin" || "$OS" == "Linux" ]]; then
- npx patch-package --error-on-fail
+ npx patch-package --error-on-fail --color=always
else
error "Unsupported OS: $OS"
exit 1
diff --git a/scripts/symbolicate-profile.ts b/scripts/symbolicate-profile.ts
index a100c05029dd..a58c2894edb6 100755
--- a/scripts/symbolicate-profile.ts
+++ b/scripts/symbolicate-profile.ts
@@ -32,7 +32,7 @@ if (Object.keys(argsMap).length === 0 || argsMap.help !== undefined) {
Logger.log('Options:');
Logger.log(' --profile= The .cpuprofile file to symbolicate');
Logger.log(' --platform= The platform for which the source map was uploaded');
- Logger.log(' --gh-token Token to use for requests send to the GitHub API. By default tries to pick up from the environment variable GITHUB_TOKEN');
+ Logger.log(' --ghToken Token to use for requests send to the GitHub API. By default tries to pick up from the environment variable GITHUB_TOKEN');
Logger.log(' --help Display this help message');
process.exit(0);
}
@@ -53,7 +53,7 @@ if (argsMap.platform === undefined) {
const githubToken = argsMap.ghToken ?? process.env.GITHUB_TOKEN;
if (githubToken === undefined) {
- Logger.error('No GitHub token provided. Either set a GITHUB_TOKEN environment variable or pass it using --gh-token');
+ Logger.error('No GitHub token provided. Either set a GITHUB_TOKEN environment variable or pass it using --ghToken');
process.exit(1);
}
diff --git a/src/CONST.ts b/src/CONST.ts
index 3f141905e84c..c7a6741da314 100755
--- a/src/CONST.ts
+++ b/src/CONST.ts
@@ -182,6 +182,8 @@ const CONST = {
MERCHANT_NAME_MAX_LENGTH: 255,
+ MASKED_PAN_PREFIX: 'XXXXXXXXXXXX',
+
REQUEST_PREVIEW: {
MAX_LENGTH: 83,
},
@@ -364,9 +366,8 @@ const CONST = {
VIOLATIONS: 'violations',
DUPE_DETECTION: 'dupeDetection',
P2P_DISTANCE_REQUESTS: 'p2pDistanceRequests',
- WORKFLOWS_DELAYED_SUBMISSION: 'workflowsDelayedSubmission',
+ WORKFLOWS_ADVANCED_APPROVAL: 'workflowsAdvancedApproval',
SPOTNANA_TRAVEL: 'spotnanaTravel',
- NETSUITE_ON_NEW_EXPENSIFY: 'netsuiteOnNewExpensify',
REPORT_FIELDS_FEATURE: 'reportFieldsFeature',
WORKSPACE_FEEDS: 'workspaceFeeds',
NETSUITE_USA_TAX: 'netsuiteUsaTax',
@@ -664,6 +665,7 @@ const CONST = {
MEMBER: 'member',
},
MAX_COUNT_BEFORE_FOCUS_UPDATE: 30,
+ MIN_INITIAL_REPORT_ACTION_COUNT: 15,
SPLIT_REPORTID: '-2',
ACTIONS: {
LIMIT: 50,
@@ -842,6 +844,8 @@ const CONST = {
IOU: 'iou',
TASK: 'task',
INVOICE: 'invoice',
+ },
+ UNSUPPORTED_TYPE: {
PAYCHECK: 'paycheck',
BILL: 'bill',
},
@@ -903,7 +907,11 @@ const CONST = {
},
},
NEXT_STEP: {
- FINISHED: 'Finished!',
+ ICONS: {
+ HOURGLASS: 'hourglass',
+ CHECKMARK: 'checkmark',
+ STOPWATCH: 'stopwatch',
+ },
},
COMPOSER: {
MAX_LINES: 16,
@@ -2245,6 +2253,10 @@ const CONST = {
PHYSICAL: 'physical',
VIRTUAL: 'virtual',
},
+ FREQUENCY_SETTING: {
+ DAILY: 'daily',
+ MONTHLY: 'monthly',
+ },
},
AVATAR_ROW_SIZE: {
DEFAULT: 4,
@@ -2346,6 +2358,8 @@ const CONST = {
POLICY_ID_FROM_PATH: /\/w\/([a-zA-Z0-9]+)(\/|$)/,
SHORT_MENTION: new RegExp(`@[\\w\\-\\+\\'#@]+(?:\\.[\\w\\-\\'\\+]+)*(?![^\`]*\`)`, 'gim'),
+
+ REPORT_ID_FROM_PATH: /\/r\/(\d+)/,
},
PRONOUNS: {
@@ -2366,6 +2380,7 @@ const CONST = {
WORKSPACE_WORKFLOWS: 'WorkspaceWorkflows',
WORKSPACE_BANK_ACCOUNT: 'WorkspaceBankAccount',
WORKSPACE_SETTINGS: 'WorkspaceSettings',
+ WORKSPACE_FEATURES: 'WorkspaceFeatures',
},
get EXPENSIFY_EMAILS() {
return [
@@ -3855,6 +3870,9 @@ const CONST = {
ENABLED: 'ENABLED',
DISABLED: 'DISABLED',
},
+ STRIPE_GBP_AUTH_STATUSES: {
+ SUCCEEDED: 'succeeded',
+ },
TAB: {
NEW_CHAT_TAB_ID: 'NewChatTab',
NEW_CHAT: 'chat',
@@ -4076,6 +4094,14 @@ const CONST = {
},
REVIEW_DUPLICATES_ORDER: ['merchant', 'category', 'tag', 'description', 'taxCode', 'billable', 'reimbursable'],
+ REPORT_VIOLATIONS: {
+ FIELD_REQUIRED: 'fieldRequired',
+ },
+
+ REPORT_VIOLATIONS_EXCLUDED_FIELDS: {
+ TEXT_TITLE: 'text_title',
+ },
+
/** Context menu types */
CONTEXT_MENU_TYPES: {
LINK: 'LINK',
@@ -5140,6 +5166,7 @@ const CONST = {
SESSION_STORAGE_KEYS: {
INITIAL_URL: 'INITIAL_URL',
ACTIVE_WORKSPACE_ID: 'ACTIVE_WORKSPACE_ID',
+ RETRY_LAZY_REFRESHED: 'RETRY_LAZY_REFRESHED',
},
RESERVATION_TYPE: {
@@ -5186,12 +5213,16 @@ const CONST = {
REPORT: 'report',
},
ACTION_TYPES: {
- DONE: 'done',
- PAID: 'paid',
VIEW: 'view',
REVIEW: 'review',
+ DONE: 'done',
+ PAID: 'paid',
+ },
+ BULK_ACTION_TYPES: {
+ EXPORT: 'export',
HOLD: 'hold',
UNHOLD: 'unhold',
+ DELETE: 'delete',
},
TRANSACTION_TYPE: {
CASH: 'cash',
@@ -5222,14 +5253,6 @@ const CONST = {
ACTION: 'action',
TAX_AMOUNT: 'taxAmount',
},
- BULK_ACTION_TYPES: {
- DELETE: 'delete',
- HOLD: 'hold',
- UNHOLD: 'unhold',
- SUBMIT: 'submit',
- APPROVE: 'approve',
- PAY: 'pay',
- },
SYNTAX_OPERATORS: {
AND: 'and',
OR: 'or',
@@ -5277,8 +5300,10 @@ const CONST = {
PAYMENT_CARD_CURRENCY: {
USD: 'USD',
AUD: 'AUD',
+ GBP: 'GBP',
NZD: 'NZD',
},
+ GBP_AUTHENTICATION_COMPLETE: '3DS-authentication-complete',
SUBSCRIPTION_PRICE_FACTOR: 2,
FEEDBACK_SURVEY_OPTIONS: {
@@ -5309,28 +5334,69 @@ const CONST = {
EXCLUDE_FROM_LAST_VISITED_PATH: [SCREENS.NOT_FOUND, SCREENS.SAML_SIGN_IN, SCREENS.VALIDATE_LOGIN] as string[],
+ CANCELLATION_TYPE: {
+ MANUAL: 'manual',
+ AUTOMATIC: 'automatic',
+ NONE: 'none',
+ },
EMPTY_STATE_MEDIA: {
ANIMATION: 'animation',
ILLUSTRATION: 'illustration',
VIDEO: 'video',
},
-
- UPGRADE_FEATURE_INTRO_MAPPING: [
- {
- id: 'reportFields',
- alias: 'report-fields',
- name: 'Report Fields',
- title: 'workspace.upgrade.reportFields.title',
- description: 'workspace.upgrade.reportFields.description',
- icon: 'Pencil',
- },
- ],
-
+ get UPGRADE_FEATURE_INTRO_MAPPING() {
+ return {
+ reportFields: {
+ id: 'reportFields' as const,
+ alias: 'report-fields',
+ name: 'Report Fields',
+ title: 'workspace.upgrade.reportFields.title' as const,
+ description: 'workspace.upgrade.reportFields.description' as const,
+ icon: 'Pencil',
+ },
+ [this.POLICY.CONNECTIONS.NAME.NETSUITE]: {
+ id: this.POLICY.CONNECTIONS.NAME.NETSUITE,
+ alias: 'netsuite',
+ name: this.POLICY.CONNECTIONS.NAME_USER_FRIENDLY.netsuite,
+ title: `workspace.upgrade.${this.POLICY.CONNECTIONS.NAME.NETSUITE}.title` as const,
+ description: `workspace.upgrade.${this.POLICY.CONNECTIONS.NAME.NETSUITE}.description` as const,
+ icon: 'NetSuiteSquare',
+ },
+ [this.POLICY.CONNECTIONS.NAME.SAGE_INTACCT]: {
+ id: this.POLICY.CONNECTIONS.NAME.SAGE_INTACCT,
+ alias: 'sage-intacct',
+ name: this.POLICY.CONNECTIONS.NAME_USER_FRIENDLY.intacct,
+ title: `workspace.upgrade.${this.POLICY.CONNECTIONS.NAME.SAGE_INTACCT}.title` as const,
+ description: `workspace.upgrade.${this.POLICY.CONNECTIONS.NAME.SAGE_INTACCT}.description` as const,
+ icon: 'IntacctSquare',
+ },
+ glCodes: {
+ id: 'glCodes' as const,
+ alias: 'gl-codes',
+ name: 'GL codes',
+ title: 'workspace.upgrade.glCodes.title' as const,
+ description: 'workspace.upgrade.glCodes.description' as const,
+ icon: 'Tag',
+ },
+ glAndPayrollCodes: {
+ id: 'glAndPayrollCodes' as const,
+ alias: 'gl-and-payroll-codes',
+ name: 'GL & Payroll codes',
+ title: 'workspace.upgrade.glAndPayrollCodes.title' as const,
+ description: 'workspace.upgrade.glAndPayrollCodes.description' as const,
+ icon: 'FolderOpen',
+ },
+ };
+ },
REPORT_FIELD_TYPES: {
TEXT: 'text',
DATE: 'date',
LIST: 'dropdown',
},
+
+ NAVIGATION_ACTIONS: {
+ RESET: 'RESET',
+ },
} as const;
type Country = keyof typeof CONST.ALL_COUNTRIES;
@@ -5341,7 +5407,8 @@ type IOURequestType = ValueOf;
type FeedbackSurveyOptionID = ValueOf, 'ID'>>;
type SubscriptionType = ValueOf;
+type CancellationType = ValueOf;
-export type {Country, IOUAction, IOUType, RateAndUnit, OnboardingPurposeType, IOURequestType, SubscriptionType, FeedbackSurveyOptionID};
+export type {Country, IOUAction, IOUType, RateAndUnit, OnboardingPurposeType, IOURequestType, SubscriptionType, FeedbackSurveyOptionID, CancellationType};
export default CONST;
diff --git a/src/ONYXKEYS.ts b/src/ONYXKEYS.ts
index c71990212334..00f37508612d 100755
--- a/src/ONYXKEYS.ts
+++ b/src/ONYXKEYS.ts
@@ -134,7 +134,7 @@ const ONYXKEYS = {
NVP_LAST_PAYMENT_METHOD: 'nvp_private_lastPaymentMethod',
/** This NVP holds to most recent waypoints that a person has used when creating a distance expense */
- NVP_RECENT_WAYPOINTS: 'expensify_recentWaypoints',
+ NVP_RECENT_WAYPOINTS: 'nvp_expensify_recentWaypoints',
/** This NVP contains the choice that the user made on the engagement modal */
NVP_INTRO_SELECTED: 'nvp_introSelected',
@@ -320,6 +320,9 @@ const ONYXKEYS = {
/** Onboarding Purpose selected by the user during Onboarding flow */
ONBOARDING_PURPOSE_SELECTED: 'onboardingPurposeSelected',
+ /** Onboarding error message to be displayed to the user */
+ ONBOARDING_ERROR_MESSAGE: 'onboardingErrorMessage',
+
/** Onboarding policyID selected by the user during Onboarding flow */
ONBOARDING_POLICY_ID: 'onboardingPolicyID',
@@ -382,6 +385,8 @@ const ONYXKEYS = {
/** Stores the information about the state of issuing a new card */
ISSUE_NEW_EXPENSIFY_CARD: 'issueNewExpensifyCard',
+ NVP_PRIVATE_CANCELLATION_DETAILS: 'nvp_private_cancellationDetails',
+
/** Collection Keys */
COLLECTION: {
DOWNLOAD: 'download_',
@@ -417,6 +422,7 @@ const ONYXKEYS = {
REPORT_IS_COMPOSER_FULL_SIZE: 'reportIsComposerFullSize_',
REPORT_USER_IS_TYPING: 'reportUserIsTyping_',
REPORT_USER_IS_LEAVING_ROOM: 'reportUserIsLeavingRoom_',
+ REPORT_VIOLATIONS: 'reportViolations_',
SECURITY_GROUP: 'securityGroup_',
TRANSACTION: 'transactions_',
TRANSACTION_VIOLATIONS: 'transactionViolations_',
@@ -449,8 +455,11 @@ const ONYXKEYS = {
*/
WORKSPACE_CARDS_LIST: 'card_',
- /** The bank account that Expensify Card payments will be reconciled against */
+ /** Stores which connection is set up to use Continuous Reconciliation */
SHARED_NVP_EXPENSIFY_CARD_CONTINUOUS_RECONCILIATION_CONNECTION: 'sharedNVP_expensifyCard_continuousReconciliationConnection_',
+
+ /** The value that indicates whether Continuous Reconciliation should be used on the domain */
+ SHARED_NVP_EXPENSIFY_CARD_USE_CONTINUOUS_RECONCILIATION: 'sharedNVP_expensifyCard_useContinuousReconciliation_',
},
/** List of Form ids */
@@ -558,6 +567,8 @@ const ONYXKEYS = {
WORKSPACE_NEW_TAX_FORM: 'workspaceNewTaxForm',
WORKSPACE_NEW_TAX_FORM_DRAFT: 'workspaceNewTaxFormDraft',
WORKSPACE_TAX_NAME_FORM: 'workspaceTaxNameForm',
+ WORKSPACE_TAX_CODE_FORM: 'workspaceTaxCodeForm',
+ WORKSPACE_TAX_CODE_FORM_DRAFT: 'workspaceTaxCodeFormDraft',
WORKSPACE_TAX_NAME_FORM_DRAFT: 'workspaceTaxNameFormDraft',
WORKSPACE_TAX_VALUE_FORM: 'workspaceTaxValueForm',
WORKSPACE_TAX_VALUE_FORM_DRAFT: 'workspaceTaxValueFormDraft',
@@ -567,6 +578,10 @@ const ONYXKEYS = {
SUBSCRIPTION_SIZE_FORM_DRAFT: 'subscriptionSizeFormDraft',
ISSUE_NEW_EXPENSIFY_CARD_FORM: 'issueNewExpensifyCard',
ISSUE_NEW_EXPENSIFY_CARD_FORM_DRAFT: 'issueNewExpensifyCardDraft',
+ EDIT_EXPENSIFY_CARD_NAME_FORM: 'editExpensifyCardName',
+ EDIT_EXPENSIFY_CARD_NAME_DRAFT_FORM: 'editExpensifyCardNameDraft',
+ EDIT_EXPENSIFY_CARD_LIMIT_FORM: 'editExpensifyCardLimit',
+ EDIT_EXPENSIFY_CARD_LIMIT_DRAFT_FORM: 'editExpensifyCardLimitDraft',
SAGE_INTACCT_CREDENTIALS_FORM: 'sageIntacctCredentialsForm',
SAGE_INTACCT_CREDENTIALS_FORM_DRAFT: 'sageIntacctCredentialsFormDraft',
NETSUITE_CUSTOM_FIELD_FORM: 'netSuiteCustomFieldForm',
@@ -581,6 +596,8 @@ const ONYXKEYS = {
NETSUITE_CUSTOM_FORM_ID_FORM_DRAFT: 'netsuiteCustomFormIDFormDraft',
SAGE_INTACCT_DIMENSION_TYPE_FORM: 'sageIntacctDimensionTypeForm',
SAGE_INTACCT_DIMENSION_TYPE_FORM_DRAFT: 'sageIntacctDimensionTypeFormDraft',
+ SEARCH_ADVANCED_FILTERS_FORM: 'searchAdvancedFiltersForm',
+ SEARCH_ADVANCED_FILTERS_FORM_DRAFT: 'searchAdvancedFiltersFormDraft',
},
} as const;
@@ -639,10 +656,13 @@ type OnyxFormValuesMapping = {
[ONYXKEYS.FORMS.POLICY_DISTANCE_RATE_EDIT_FORM]: FormTypes.PolicyDistanceRateEditForm;
[ONYXKEYS.FORMS.POLICY_DISTANCE_RATE_TAX_RECLAIMABLE_ON_EDIT_FORM]: FormTypes.PolicyDistanceRateTaxReclaimableOnEditForm;
[ONYXKEYS.FORMS.WORKSPACE_TAX_NAME_FORM]: FormTypes.WorkspaceTaxNameForm;
+ [ONYXKEYS.FORMS.WORKSPACE_TAX_CODE_FORM]: FormTypes.WorkspaceTaxCodeForm;
[ONYXKEYS.FORMS.WORKSPACE_TAX_VALUE_FORM]: FormTypes.WorkspaceTaxValueForm;
[ONYXKEYS.FORMS.NEW_CHAT_NAME_FORM]: FormTypes.NewChatNameForm;
[ONYXKEYS.FORMS.SUBSCRIPTION_SIZE_FORM]: FormTypes.SubscriptionSizeForm;
[ONYXKEYS.FORMS.ISSUE_NEW_EXPENSIFY_CARD_FORM]: FormTypes.IssueNewExpensifyCardForm;
+ [ONYXKEYS.FORMS.EDIT_EXPENSIFY_CARD_NAME_FORM]: FormTypes.EditExpensifyCardNameForm;
+ [ONYXKEYS.FORMS.EDIT_EXPENSIFY_CARD_LIMIT_FORM]: FormTypes.EditExpensifyCardLimitForm;
[ONYXKEYS.FORMS.SAGE_INTACCT_CREDENTIALS_FORM]: FormTypes.SageIntactCredentialsForm;
[ONYXKEYS.FORMS.NETSUITE_CUSTOM_FIELD_FORM]: FormTypes.NetSuiteCustomFieldForm;
[ONYXKEYS.FORMS.NETSUITE_CUSTOM_LIST_ADD_FORM]: FormTypes.NetSuiteCustomFieldForm;
@@ -650,6 +670,7 @@ type OnyxFormValuesMapping = {
[ONYXKEYS.FORMS.NETSUITE_TOKEN_INPUT_FORM]: FormTypes.NetSuiteTokenInputForm;
[ONYXKEYS.FORMS.NETSUITE_CUSTOM_FORM_ID_FORM]: FormTypes.NetSuiteCustomFormIDForm;
[ONYXKEYS.FORMS.SAGE_INTACCT_DIMENSION_TYPE_FORM]: FormTypes.SageIntacctDimensionForm;
+ [ONYXKEYS.FORMS.SEARCH_ADVANCED_FILTERS_FORM]: FormTypes.SearchAdvancedFiltersForm;
};
type OnyxFormDraftValuesMapping = {
@@ -680,6 +701,7 @@ type OnyxCollectionValuesMapping = {
[ONYXKEYS.COLLECTION.REPORT_IS_COMPOSER_FULL_SIZE]: boolean;
[ONYXKEYS.COLLECTION.REPORT_USER_IS_TYPING]: OnyxTypes.ReportUserIsTyping;
[ONYXKEYS.COLLECTION.REPORT_USER_IS_LEAVING_ROOM]: boolean;
+ [ONYXKEYS.COLLECTION.REPORT_VIOLATIONS]: OnyxTypes.ReportViolations;
[ONYXKEYS.COLLECTION.SECURITY_GROUP]: OnyxTypes.SecurityGroup;
[ONYXKEYS.COLLECTION.TRANSACTION]: OnyxTypes.Transaction;
[ONYXKEYS.COLLECTION.TRANSACTION_DRAFT]: OnyxTypes.Transaction;
@@ -698,7 +720,8 @@ type OnyxCollectionValuesMapping = {
[ONYXKEYS.COLLECTION.SHARED_NVP_PRIVATE_USER_BILLING_GRACE_PERIOD_END]: OnyxTypes.BillingGraceEndPeriod;
[ONYXKEYS.COLLECTION.SHARED_NVP_PRIVATE_EXPENSIFY_CARD_SETTINGS]: OnyxTypes.ExpensifyCardSettings;
[ONYXKEYS.COLLECTION.WORKSPACE_CARDS_LIST]: OnyxTypes.WorkspaceCardsList;
- [ONYXKEYS.COLLECTION.SHARED_NVP_EXPENSIFY_CARD_CONTINUOUS_RECONCILIATION_CONNECTION]: OnyxTypes.BankAccount;
+ [ONYXKEYS.COLLECTION.SHARED_NVP_EXPENSIFY_CARD_CONTINUOUS_RECONCILIATION_CONNECTION]: OnyxTypes.PolicyConnectionName;
+ [ONYXKEYS.COLLECTION.SHARED_NVP_EXPENSIFY_CARD_USE_CONTINUOUS_RECONCILIATION]: boolean;
};
type OnyxValuesMapping = {
@@ -805,10 +828,12 @@ type OnyxValuesMapping = {
[ONYXKEYS.MAX_CANVAS_HEIGHT]: number;
[ONYXKEYS.MAX_CANVAS_WIDTH]: number;
[ONYXKEYS.ONBOARDING_PURPOSE_SELECTED]: string;
+ [ONYXKEYS.ONBOARDING_ERROR_MESSAGE]: string;
[ONYXKEYS.ONBOARDING_POLICY_ID]: string;
[ONYXKEYS.ONBOARDING_ADMINS_CHAT_REPORT_ID]: string;
[ONYXKEYS.IS_SEARCHING_FOR_REPORTS]: boolean;
[ONYXKEYS.LAST_VISITED_PATH]: string | undefined;
+ [ONYXKEYS.VERIFY_3DS_SUBSCRIPTION]: string;
[ONYXKEYS.RECENTLY_USED_REPORT_FIELDS]: OnyxTypes.RecentlyUsedReportFields;
[ONYXKEYS.UPDATE_REQUIRED]: boolean;
[ONYXKEYS.RESET_REQUIRED]: boolean;
@@ -830,6 +855,7 @@ type OnyxValuesMapping = {
[ONYXKEYS.NVP_BILLING_FUND_ID]: number;
[ONYXKEYS.NVP_PRIVATE_AMOUNT_OWED]: number;
[ONYXKEYS.NVP_PRIVATE_OWNER_BILLING_GRACE_PERIOD_END]: number;
+ [ONYXKEYS.NVP_PRIVATE_CANCELLATION_DETAILS]: OnyxTypes.CancellationDetails[];
};
type OnyxValues = OnyxValuesMapping & OnyxCollectionValuesMapping & OnyxFormValuesMapping & OnyxFormDraftValuesMapping;
diff --git a/src/ROUTES.ts b/src/ROUTES.ts
index f13724bf4322..827e0f3b748d 100644
--- a/src/ROUTES.ts
+++ b/src/ROUTES.ts
@@ -36,7 +36,7 @@ const ROUTES = {
ALL_SETTINGS: 'all-settings',
- SEARCH: {
+ SEARCH_CENTRAL_PANE: {
route: '/search/:query',
getRoute: (searchQuery: SearchQuery, queryParams?: AuthScreensParamList['Search_Central_Pane']) => {
const {sortBy, sortOrder} = queryParams ?? {};
@@ -49,14 +49,20 @@ const ROUTES = {
},
},
+ SEARCH_ADVANCED_FILTERS: 'search/filters',
+
+ SEARCH_ADVANCED_FILTERS_DATE: 'search/filters/date',
+
+ SEARCH_ADVANCED_FILTERS_TYPE: 'search/filters/type',
+
SEARCH_REPORT: {
- route: '/search/:query/view/:reportID',
+ route: 'search/:query/view/:reportID',
getRoute: (query: string, reportID: string) => `search/${query}/view/${reportID}` as const,
},
TRANSACTION_HOLD_REASON_RHP: {
- route: '/search/:query/hold/:transactionID',
- getRoute: (query: string, transactionID: string) => `search/${query}/hold/${transactionID}` as const,
+ route: 'search/:query/hold',
+ getRoute: (query: string) => `search/${query}/hold` as const,
},
// This is a utility route used to go to the user's concierge chat, or the sign-in page if the user's not authenticated
@@ -117,6 +123,7 @@ const ROUTES = {
SETTINGS_SUBSCRIPTION_CHANGE_BILLING_CURRENCY: 'settings/subscription/change-billing-currency',
SETTINGS_SUBSCRIPTION_CHANGE_PAYMENT_CURRENCY: 'settings/subscription/add-payment-card/change-payment-currency',
SETTINGS_SUBSCRIPTION_DISABLE_AUTO_RENEW_SURVEY: 'settings/subscription/disable-auto-renew-survey',
+ SETTINGS_SUBSCRIPTION_REQUEST_EARLY_CANCELLATION: 'settings/subscription/request-early-cancellation-survey',
SETTINGS_PRIORITY_MODE: 'settings/preferences/priority-mode',
SETTINGS_LANGUAGE: 'settings/preferences/language',
SETTINGS_THEME: 'settings/preferences/theme',
@@ -613,21 +620,33 @@ const ROUTES = {
route: 'settings/workspaces/:policyID/workflows',
getRoute: (policyID: string) => `settings/workspaces/${policyID}/workflows` as const,
},
- WORKSPACE_WORKFLOWS_PAYER: {
- route: 'workspace/:policyID/settings/workflows/payer',
- getRoute: (policyId: string) => `workspace/${policyId}/settings/workflows/payer` as const,
+ WORKSPACE_WORKFLOWS_APPROVALS_NEW: {
+ route: 'settings/workspaces/:policyID/workflows/approvals/new',
+ getRoute: (policyID: string) => `settings/workspaces/${policyID}/workflows/approvals/new` as const,
+ },
+ WORKSPACE_WORKFLOWS_APPROVALS_EDIT: {
+ route: 'settings/workspaces/:policyID/workflows/approvals/:firstApproverEmail/edit',
+ getRoute: (policyID: string, firstApproverEmail: string) => `settings/workspaces/${policyID}/workflows/approvals/${encodeURIComponent(firstApproverEmail)}/edit` as const,
+ },
+ WORKSPACE_WORKFLOWS_APPROVALS_EXPENSES_FROM: {
+ route: 'settings/workspaces/:policyID/workflows/approvals/expenses-from',
+ getRoute: (policyID: string) => `settings/workspaces/${policyID}/workflows/approvals/expenses-from` as const,
},
- WORKSPACE_WORKFLOWS_APPROVER: {
- route: 'settings/workspaces/:policyID/settings/workflows/approver',
- getRoute: (policyID: string) => `settings/workspaces/${policyID}/settings/workflows/approver` as const,
+ WORKSPACE_WORKFLOWS_APPROVALS_APPROVER: {
+ route: 'settings/workspaces/:policyID/workflows/approvals/approver',
+ getRoute: (policyID: string) => `settings/workspaces/${policyID}/workflows/approvals/approver` as const,
+ },
+ WORKSPACE_WORKFLOWS_PAYER: {
+ route: 'settings/workspaces/:policyID/workflows/payer',
+ getRoute: (policyId: string) => `settings/workspaces/${policyId}/workflows/payer` as const,
},
WORKSPACE_WORKFLOWS_AUTOREPORTING_FREQUENCY: {
- route: 'settings/workspaces/:policyID/settings/workflows/auto-reporting-frequency',
- getRoute: (policyID: string) => `settings/workspaces/${policyID}/settings/workflows/auto-reporting-frequency` as const,
+ route: 'settings/workspaces/:policyID/workflows/auto-reporting-frequency',
+ getRoute: (policyID: string) => `settings/workspaces/${policyID}/workflows/auto-reporting-frequency` as const,
},
WORKSPACE_WORKFLOWS_AUTOREPORTING_MONTHLY_OFFSET: {
- route: 'settings/workspaces/:policyID/settings/workflows/auto-reporting-frequency/monthly-offset',
- getRoute: (policyID: string) => `settings/workspaces/${policyID}/settings/workflows/auto-reporting-frequency/monthly-offset` as const,
+ route: 'settings/workspaces/:policyID/workflows/auto-reporting-frequency/monthly-offset',
+ getRoute: (policyID: string) => `settings/workspaces/${policyID}/workflows/auto-reporting-frequency/monthly-offset` as const,
},
WORKSPACE_CARD: {
route: 'settings/workspaces/:policyID/card',
@@ -700,7 +719,8 @@ const ROUTES = {
},
WORKSPACE_UPGRADE: {
route: 'settings/workspaces/:policyID/upgrade/:featureName',
- getRoute: (policyID: string, featureName: string) => `settings/workspaces/${policyID}/upgrade/${encodeURIComponent(featureName)}` as const,
+ getRoute: (policyID: string, featureName: string, backTo?: string) =>
+ getUrlWithBackToParam(`settings/workspaces/${policyID}/upgrade/${encodeURIComponent(featureName)}` as const, backTo),
},
WORKSPACE_CATEGORIES_SETTINGS: {
route: 'settings/workspaces/:policyID/categories/settings',
@@ -815,6 +835,10 @@ const ROUTES = {
route: 'settings/workspaces/:policyID/tax/:taxID/value',
getRoute: (policyID: string, taxID: string) => `settings/workspaces/${policyID}/tax/${encodeURIComponent(taxID)}/value` as const,
},
+ WORKSPACE_TAX_CODE: {
+ route: 'settings/workspaces/:policyID/tax/:taxID/tax-code',
+ getRoute: (policyID: string, taxID: string) => `settings/workspaces/${policyID}/tax/${encodeURIComponent(taxID)}/tax-code` as const,
+ },
WORKSPACE_REPORT_FIELDS: {
route: 'settings/workspaces/:policyID/reportFields',
getRoute: (policyID: string) => `settings/workspaces/${policyID}/reportFields` as const,
@@ -856,6 +880,18 @@ const ROUTES = {
route: 'settings/workspaces/:policyID/expensify-card/:cardID',
getRoute: (policyID: string, cardID: string, backTo?: string) => getUrlWithBackToParam(`settings/workspaces/${policyID}/expensify-card/${cardID}`, backTo),
},
+ WORKSPACE_EXPENSIFY_CARD_NAME: {
+ route: 'settings/workspaces/:policyID/expensify-card/:cardID/edit/name',
+ getRoute: (policyID: string, cardID: string) => `settings/workspaces/${policyID}/expensify-card/${cardID}/edit/name` as const,
+ },
+ WORKSPACE_EXPENSIFY_CARD_LIMIT: {
+ route: 'settings/workspaces/:policyID/expensify-card/:cardID/edit/limit',
+ getRoute: (policyID: string, cardID: string) => `settings/workspaces/${policyID}/expensify-card/${cardID}/edit/limit` as const,
+ },
+ WORKSPACE_EXPENSIFY_CARD_LIMIT_TYPE: {
+ route: 'settings/workspaces/:policyID/expensify-card/:cardID/edit/limit-type',
+ getRoute: (policyID: string, cardID: string) => `settings/workspaces/${policyID}/expensify-card/${cardID}/edit/limit-type` as const,
+ },
WORKSPACE_EXPENSIFY_CARD_ISSUE_NEW: {
route: 'settings/workspaces/:policyID/expensify-card/issue-new',
getRoute: (policyID: string) => `settings/workspaces/${policyID}/expensify-card/issue-new` as const,
@@ -864,6 +900,18 @@ const ROUTES = {
route: 'settings/workspaces/:policyID/expensify-card/choose-bank-account',
getRoute: (policyID: string) => `settings/workspaces/${policyID}/expensify-card/choose-bank-account` as const,
},
+ WORKSPACE_EXPENSIFY_CARD_SETTINGS: {
+ route: 'settings/workspaces/:policyID/expensify-card/settings',
+ getRoute: (policyID: string) => `settings/workspaces/${policyID}/expensify-card/settings` as const,
+ },
+ WORKSPACE_EXPENSIFY_CARD_SETTINGS_ACCOUNT: {
+ route: 'settings/workspaces/:policyID/expensify-card/settings/account',
+ getRoute: (policyID: string) => `settings/workspaces/${policyID}/expensify-card/settings/account` as const,
+ },
+ WORKSPACE_EXPENSIFY_CARD_SETTINGS_FREQUENCY: {
+ route: 'settings/workspaces/:policyID/expensify-card/settings/frequency',
+ getRoute: (policyID: string) => `settings/workspaces/${policyID}/expensify-card/settings/frequency` as const,
+ },
WORKSPACE_DISTANCE_RATES: {
route: 'settings/workspaces/:policyID/distance-rates',
getRoute: (policyID: string) => `settings/workspaces/${policyID}/distance-rates` as const,
@@ -933,8 +981,8 @@ const ROUTES = {
getRoute: (threadReportID: string) => `r/${threadReportID}/duplicates/review/tax-code` as const,
},
TRANSACTION_DUPLICATE_REVIEW_DESCRIPTION_PAGE: {
- route: 'r/:threadReportID/duplicates/confirm',
- getRoute: (threadReportID: string) => `r/${threadReportID}/duplicates/confirm` as const,
+ route: 'r/:threadReportID/duplicates/review/description',
+ getRoute: (threadReportID: string) => `r/${threadReportID}/duplicates/review/description` as const,
},
TRANSACTION_DUPLICATE_REVIEW_REIMBURSABLE_PAGE: {
route: 'r/:threadReportID/duplicates/review/reimbursable',
@@ -944,7 +992,10 @@ const ROUTES = {
route: 'r/:threadReportID/duplicates/review/billable',
getRoute: (threadReportID: string) => `r/${threadReportID}/duplicates/review/billable` as const,
},
-
+ TRANSACTION_DUPLICATE_CONFIRMATION_PAGE: {
+ route: 'r/:threadReportID/duplicates/confirm',
+ getRoute: (threadReportID: string) => `r/${threadReportID}/duplicates/confirm` as const,
+ },
POLICY_ACCOUNTING_XERO_IMPORT: {
route: 'settings/workspaces/:policyID/accounting/xero/import',
getRoute: (policyID: string) => `settings/workspaces/${policyID}/accounting/xero/import` as const,
diff --git a/src/SCREENS.ts b/src/SCREENS.ts
index 3a0bb2248303..74d4a628e696 100644
--- a/src/SCREENS.ts
+++ b/src/SCREENS.ts
@@ -30,6 +30,9 @@ const SCREENS = {
SEARCH: {
CENTRAL_PANE: 'Search_Central_Pane',
REPORT_RHP: 'Search_Report_RHP',
+ ADVANCED_FILTERS_RHP: 'Search_Advanced_Filters_RHP',
+ ADVANCED_FILTERS_DATE_RHP: 'Search_Advanced_Filters_Date_RHP',
+ ADVANCED_FILTERS_TYPE_RHP: 'Search_Advanced_Filters_Type_RHP',
TRANSACTION_HOLD_REASON_RHP: 'Search_Transaction_Hold_Reason_RHP',
BOTTOM_TAB: 'Search_Bottom_Tab',
},
@@ -108,6 +111,7 @@ const SCREENS = {
DISABLE_AUTO_RENEW_SURVEY: 'Settings_Subscription_DisableAutoRenewSurvey',
CHANGE_BILLING_CURRENCY: 'Settings_Subscription_Change_Billing_Currency',
CHANGE_PAYMENT_CURRENCY: 'Settings_Subscription_Change_Payment_Currency',
+ REQUEST_EARLY_CANCELLATION: 'Settings_Subscription_RequestEarlyCancellation',
},
},
SAVE_THE_WORLD: {
@@ -145,6 +149,7 @@ const SCREENS = {
TRANSACTION_DUPLICATE: 'TransactionDuplicate',
TRAVEL: 'Travel',
SEARCH_REPORT: 'SearchReport',
+ SEARCH_ADVANCED_FILTERS: 'SearchAdvancedFilters',
SETTINGS_CATEGORIES: 'SettingsCategories',
RESTRICTED_ACTION: 'RestrictedAction',
REPORT_EXPORT: 'Report_Export',
@@ -195,6 +200,7 @@ const SCREENS = {
TAX_CODE: 'Transaction_Duplicate_Tax_Code',
REIMBURSABLE: 'Transaction_Duplicate_Reimburable',
BILLABLE: 'Transaction_Duplicate_Billable',
+ CONFIRMATION: 'Transaction_Duplicate_Confirmation',
},
IOU_SEND: {
@@ -346,8 +352,14 @@ const SCREENS = {
RATE_AND_UNIT_UNIT: 'Workspace_RateAndUnit_Unit',
EXPENSIFY_CARD: 'Workspace_ExpensifyCard',
EXPENSIFY_CARD_DETAILS: 'Workspace_ExpensifyCard_Details',
+ EXPENSIFY_CARD_LIMIT: 'Workspace_ExpensifyCard_Limit',
EXPENSIFY_CARD_ISSUE_NEW: 'Workspace_ExpensifyCard_New',
+ EXPENSIFY_CARD_NAME: 'Workspace_ExpensifyCard_Name',
+ EXPENSIFY_CARD_LIMIT_TYPE: 'Workspace_ExpensifyCard_LimitType',
EXPENSIFY_CARD_BANK_ACCOUNT: 'Workspace_ExpensifyCard_BankAccount',
+ EXPENSIFY_CARD_SETTINGS: 'Workspace_ExpensifyCard_Settings',
+ EXPENSIFY_CARD_SETTINGS_ACCOUNT: 'Workspace_ExpensifyCard_Settings_Account',
+ EXPENSIFY_CARD_SETTINGS_FREQUENCY: 'Workspace_ExpensifyCard_Settings_Frequency',
BILLS: 'Workspace_Bills',
INVOICES: 'Workspace_Invoices',
TRAVEL: 'Workspace_Travel',
@@ -371,6 +383,7 @@ const SCREENS = {
TAX_EDIT: 'Workspace_Tax_Edit',
TAX_NAME: 'Workspace_Tax_Name',
TAX_VALUE: 'Workspace_Tax_Value',
+ TAX_CODE: 'Workspace_Tax_Code',
TAXES_SETTINGS: 'Workspace_Taxes_Settings',
TAXES_SETTINGS_CUSTOM_TAX_NAME: 'Workspace_Taxes_Settings_CustomTaxName',
TAXES_SETTINGS_WORKSPACE_CURRENCY_DEFAULT: 'Workspace_Taxes_Settings_WorkspaceCurrency',
@@ -384,7 +397,10 @@ const SCREENS = {
ADDRESS: 'Workspace_Profile_Address',
WORKFLOWS: 'Workspace_Workflows',
WORKFLOWS_PAYER: 'Workspace_Workflows_Payer',
- WORKFLOWS_APPROVER: 'Workspace_Workflows_Approver',
+ WORKFLOWS_APPROVALS_NEW: 'Workspace_Approvals_New',
+ WORKFLOWS_APPROVALS_EDIT: 'Workspace_Approvals_Edit',
+ WORKFLOWS_APPROVALS_EXPENSES_FROM: 'Workspace_Workflows_Approvals_Expenses_From',
+ WORKFLOWS_APPROVALS_APPROVER: 'Workspace_Workflows_Approvals_Approver',
WORKFLOWS_AUTO_REPORTING_FREQUENCY: 'Workspace_Workflows_Auto_Reporting_Frequency',
WORKFLOWS_AUTO_REPORTING_MONTHLY_OFFSET: 'Workspace_Workflows_Auto_Reporting_Monthly_Offset',
DESCRIPTION: 'Workspace_Profile_Description',
diff --git a/src/components/AttachmentModal.tsx b/src/components/AttachmentModal.tsx
index b6ea09f32436..f0c5e29bc3ba 100644
--- a/src/components/AttachmentModal.tsx
+++ b/src/components/AttachmentModal.tsx
@@ -1,5 +1,5 @@
import {Str} from 'expensify-common';
-import React, {memo, useCallback, useEffect, useMemo, useState} from 'react';
+import React, {memo, useCallback, useEffect, useMemo, useRef, useState} from 'react';
import {Animated, Keyboard, View} from 'react-native';
import {GestureHandlerRootView} from 'react-native-gesture-handler';
import {withOnyx} from 'react-native-onyx';
@@ -28,6 +28,7 @@ import ROUTES from '@src/ROUTES';
import type * as OnyxTypes from '@src/types/onyx';
import {isEmptyObject} from '@src/types/utils/EmptyObject';
import type ModalType from '@src/types/utils/ModalType';
+import viewRef from '@src/types/utils/viewRef';
import AttachmentCarousel from './Attachments/AttachmentCarousel';
import AttachmentCarouselPagerContext from './Attachments/AttachmentCarousel/Pager/AttachmentCarouselPagerContext';
import AttachmentView from './Attachments/AttachmentView';
@@ -455,6 +456,8 @@ function AttachmentModal({
[closeModal, nope, sourceForAttachmentView],
);
+ const submitRef = useRef(null);
+
return (
<>
{
+ if (!submitRef.current) {
+ return false;
+ }
+ return submitRef.current;
+ }}
>
{shouldUseNarrowLayout && }
@@ -541,6 +550,7 @@ function AttachmentModal({
{({safeAreaPaddingBottomStyle}) => (
void;
+};
+
+type OnPressHandler = PressableProps['onPress'];
+
+function TransparentOverlay({resetSuggestions}: TransparentOverlayProps) {
+ const {translate} = useLocalize();
+ const styles = useThemeStyles();
+
+ const onResetSuggestions = useCallback>(
+ (event) => {
+ event?.preventDefault();
+ resetSuggestions();
+ },
+ [resetSuggestions],
+ );
+
+ const handlePointerDown = useCallback((e: PointerEvent) => {
+ e?.preventDefault();
+ }, []);
+
+ return (
+
+
+
+ );
+}
+
+export default TransparentOverlay;
diff --git a/src/components/AutoCompleteSuggestions/AutoCompleteSuggestionsPortal/index.native.tsx b/src/components/AutoCompleteSuggestions/AutoCompleteSuggestionsPortal/index.native.tsx
index 9848d77e479e..9ac43c4d8830 100644
--- a/src/components/AutoCompleteSuggestions/AutoCompleteSuggestionsPortal/index.native.tsx
+++ b/src/components/AutoCompleteSuggestions/AutoCompleteSuggestionsPortal/index.native.tsx
@@ -4,9 +4,10 @@ import {View} from 'react-native';
import BaseAutoCompleteSuggestions from '@components/AutoCompleteSuggestions/BaseAutoCompleteSuggestions';
import useStyleUtils from '@hooks/useStyleUtils';
import getBottomSuggestionPadding from './getBottomSuggestionPadding';
+import TransparentOverlay from './TransparentOverlay/TransparentOverlay';
import type {AutoCompleteSuggestionsPortalProps} from './types';
-function AutoCompleteSuggestionsPortal({left = 0, width = 0, bottom = 0, ...props}: AutoCompleteSuggestionsPortalProps) {
+function AutoCompleteSuggestionsPortal({left = 0, width = 0, bottom = 0, resetSuggestions = () => {}, ...props}: AutoCompleteSuggestionsPortalProps) {
const StyleUtils = useStyleUtils();
const styles = useMemo(() => StyleUtils.getBaseAutoCompleteSuggestionContainerStyle({left, width, bottom: bottom + getBottomSuggestionPadding()}), [StyleUtils, left, width, bottom]);
@@ -16,6 +17,7 @@ function AutoCompleteSuggestionsPortal({left = 0, width = 0, bottom
return (
+
{/* eslint-disable-next-line react/jsx-props-no-spreading */}
diff --git a/src/components/AutoCompleteSuggestions/AutoCompleteSuggestionsPortal/index.tsx b/src/components/AutoCompleteSuggestions/AutoCompleteSuggestionsPortal/index.tsx
index 2d1d533c2859..d26dd0422368 100644
--- a/src/components/AutoCompleteSuggestions/AutoCompleteSuggestionsPortal/index.tsx
+++ b/src/components/AutoCompleteSuggestions/AutoCompleteSuggestionsPortal/index.tsx
@@ -5,6 +5,7 @@ import {View} from 'react-native';
import BaseAutoCompleteSuggestions from '@components/AutoCompleteSuggestions/BaseAutoCompleteSuggestions';
import useStyleUtils from '@hooks/useStyleUtils';
import getBottomSuggestionPadding from './getBottomSuggestionPadding';
+import TransparentOverlay from './TransparentOverlay/TransparentOverlay';
import type {AutoCompleteSuggestionsPortalProps} from './types';
/**
@@ -14,7 +15,13 @@ import type {AutoCompleteSuggestionsPortalProps} from './types';
* On the native platform, tapping on auto-complete suggestions will not blur the main input.
*/
-function AutoCompleteSuggestionsPortal({left = 0, width = 0, bottom = 0, ...props}: AutoCompleteSuggestionsPortalProps): ReactElement | null | false {
+function AutoCompleteSuggestionsPortal({
+ left = 0,
+ width = 0,
+ bottom = 0,
+ resetSuggestions = () => {},
+ ...props
+}: AutoCompleteSuggestionsPortalProps): ReactElement | null | false {
const StyleUtils = useStyleUtils();
const bodyElement = document.querySelector('body');
@@ -31,7 +38,10 @@ function AutoCompleteSuggestionsPortal({left = 0, width = 0, bottom
!!width &&
bodyElement &&
ReactDOM.createPortal(
- {componentToRender} ,
+ <>
+
+ {componentToRender}
+ >,
bodyElement,
)
);
diff --git a/src/components/AutoCompleteSuggestions/index.tsx b/src/components/AutoCompleteSuggestions/index.tsx
index 1aa486eccd4d..41a01fa27c46 100644
--- a/src/components/AutoCompleteSuggestions/index.tsx
+++ b/src/components/AutoCompleteSuggestions/index.tsx
@@ -34,6 +34,13 @@ function isEnoughSpaceToRenderMenuAboveCursor({y, cursorCoordinates, scrollValue
return y + (cursorCoordinates.y - scrollValue) > contentHeight + topInset + CONST.AUTO_COMPLETE_SUGGESTER.SUGGESTION_BOX_MAX_SAFE_DISTANCE;
}
+const initialContainerState = {
+ width: 0,
+ left: 0,
+ bottom: 0,
+ cursorCoordinates: {x: 0, y: 0},
+};
+
/**
* On the mobile-web platform, when long-pressing on auto-complete suggestions,
* we need to prevent focus shifting to avoid blurring the main input (which makes the suggestions picker close and fires the onSelect callback).
@@ -48,12 +55,7 @@ function AutoCompleteSuggestions({measureParentContainerAndReportCu
const prevLeftValue = React.useRef(0);
const {windowHeight, windowWidth, isSmallScreenWidth} = useWindowDimensions();
const [suggestionHeight, setSuggestionHeight] = React.useState(0);
- const [containerState, setContainerState] = React.useState({
- width: 0,
- left: 0,
- bottom: 0,
- cursorCoordinates: {x: 0, y: 0},
- });
+ const [containerState, setContainerState] = React.useState(initialContainerState);
const StyleUtils = useStyleUtils();
const insets = useSafeAreaInsets();
const {keyboardHeight} = useKeyboardState();
@@ -80,6 +82,11 @@ function AutoCompleteSuggestions({measureParentContainerAndReportCu
return;
}
+ if (!windowHeight || !windowWidth || !suggestionsLength) {
+ setContainerState(initialContainerState);
+ return;
+ }
+
measureParentContainerAndReportCursor(({x, y, width, scrollValue, cursorCoordinates}: MeasureParentContainerAndCursor) => {
const xCoordinatesOfCursor = x + cursorCoordinates.x;
const bigScreenLeftOffset =
diff --git a/src/components/AutoCompleteSuggestions/types.ts b/src/components/AutoCompleteSuggestions/types.ts
index 48bb6b713032..57347cd65abe 100644
--- a/src/components/AutoCompleteSuggestions/types.ts
+++ b/src/components/AutoCompleteSuggestions/types.ts
@@ -42,6 +42,9 @@ type AutoCompleteSuggestionsProps = {
/** Measures the parent container's position and dimensions. Also add a cursor coordinates */
measureParentContainerAndReportCursor?: (props: MeasureParentContainerAndCursorCallback) => void;
+
+ /** Reset the emoji suggestions */
+ resetSuggestions?: () => void;
};
export type {AutoCompleteSuggestionsProps, RenderSuggestionMenuItemProps, MeasureParentContainerAndCursorCallback, MeasureParentContainerAndCursor};
diff --git a/src/components/AvatarWithImagePicker.tsx b/src/components/AvatarWithImagePicker.tsx
index 15a004ba9b87..919a4a67ebc6 100644
--- a/src/components/AvatarWithImagePicker.tsx
+++ b/src/components/AvatarWithImagePicker.tsx
@@ -1,4 +1,4 @@
-import React, {useEffect, useRef, useState} from 'react';
+import React, {useCallback, useEffect, useRef, useState} from 'react';
import {StyleSheet, View} from 'react-native';
import type {ImageStyle, StyleProp, ViewStyle} from 'react-native';
import useLocalize from '@hooks/useLocalize';
@@ -195,15 +195,15 @@ function AvatarWithImagePicker({
/**
* Check if the attachment extension is allowed.
*/
- const isValidExtension = (image: FileObject): boolean => {
+ const isValidExtension = useCallback((image: FileObject): boolean => {
const {fileExtension} = FileUtils.splitExtensionFromFileName(image?.name ?? '');
return CONST.AVATAR_ALLOWED_EXTENSIONS.some((extension) => extension === fileExtension.toLowerCase());
- };
+ }, []);
/**
* Check if the attachment size is less than allowed size.
*/
- const isValidSize = (image: FileObject): boolean => (image?.size ?? 0) < CONST.AVATAR_MAX_ATTACHMENT_SIZE;
+ const isValidSize = useCallback((image: FileObject): boolean => (image?.size ?? 0) < CONST.AVATAR_MAX_ATTACHMENT_SIZE, []);
/**
* Check if the attachment resolution matches constraints.
@@ -216,37 +216,40 @@ function AvatarWithImagePicker({
/**
* Validates if an image has a valid resolution and opens an avatar crop modal
*/
- const showAvatarCropModal = (image: FileObject) => {
- if (!isValidExtension(image)) {
- setError('avatarWithImagePicker.notAllowedExtension', {allowedExtensions: CONST.AVATAR_ALLOWED_EXTENSIONS});
- return;
- }
- if (!isValidSize(image)) {
- setError('avatarWithImagePicker.sizeExceeded', {maxUploadSizeInMB: CONST.AVATAR_MAX_ATTACHMENT_SIZE / (1024 * 1024)});
- return;
- }
-
- isValidResolution(image).then((isValid) => {
- if (!isValid) {
- setError('avatarWithImagePicker.resolutionConstraints', {
- minHeightInPx: CONST.AVATAR_MIN_HEIGHT_PX,
- minWidthInPx: CONST.AVATAR_MIN_WIDTH_PX,
- maxHeightInPx: CONST.AVATAR_MAX_HEIGHT_PX,
- maxWidthInPx: CONST.AVATAR_MAX_WIDTH_PX,
- });
+ const showAvatarCropModal = useCallback(
+ (image: FileObject) => {
+ if (!isValidExtension(image)) {
+ setError('avatarWithImagePicker.notAllowedExtension', {allowedExtensions: CONST.AVATAR_ALLOWED_EXTENSIONS});
+ return;
+ }
+ if (!isValidSize(image)) {
+ setError('avatarWithImagePicker.sizeExceeded', {maxUploadSizeInMB: CONST.AVATAR_MAX_ATTACHMENT_SIZE / (1024 * 1024)});
return;
}
- setIsAvatarCropModalOpen(true);
- setError(null, {});
- setIsMenuVisible(false);
- setImageData({
- uri: image.uri ?? '',
- name: image.name ?? '',
- type: image.type ?? '',
+ isValidResolution(image).then((isValid) => {
+ if (!isValid) {
+ setError('avatarWithImagePicker.resolutionConstraints', {
+ minHeightInPx: CONST.AVATAR_MIN_HEIGHT_PX,
+ minWidthInPx: CONST.AVATAR_MIN_WIDTH_PX,
+ maxHeightInPx: CONST.AVATAR_MAX_HEIGHT_PX,
+ maxWidthInPx: CONST.AVATAR_MAX_WIDTH_PX,
+ });
+ return;
+ }
+
+ setIsAvatarCropModalOpen(true);
+ setError(null, {});
+ setIsMenuVisible(false);
+ setImageData({
+ uri: image.uri ?? '',
+ name: image.name ?? '',
+ type: image.type ?? '',
+ });
});
- });
- };
+ },
+ [isValidExtension, isValidSize],
+ );
const hideAvatarCropModal = () => {
setIsAvatarCropModalOpen(false);
@@ -302,61 +305,26 @@ function AvatarWithImagePicker({
});
}, [isMenuVisible, windowWidth]);
+ const onPressAvatar = useCallback(
+ (openPicker: OpenPicker) => {
+ if (isUsingDefaultAvatar) {
+ openPicker({
+ onPicked: showAvatarCropModal,
+ });
+ return;
+ }
+ if (disabled && enablePreview && onViewPhotoPress) {
+ onViewPhotoPress();
+ return;
+ }
+ setIsMenuVisible((prev) => !prev);
+ },
+ [disabled, enablePreview, isUsingDefaultAvatar, onViewPhotoPress, showAvatarCropModal],
+ );
+
return (
-
-
- {
- if (disabled && enablePreview && onViewPhotoPress) {
- onViewPhotoPress();
- return;
- }
- setIsMenuVisible((prev) => !prev);
- }}
- accessibilityRole={CONST.ACCESSIBILITY_ROLE.IMAGEBUTTON}
- accessibilityLabel={translate('avatarWithImagePicker.editImage')}
- disabled={isAvatarCropModalOpen || (disabled && !enablePreview)}
- disabledStyle={disabledStyle}
- style={[styles.pRelative, avatarStyle, type === CONST.ICON_TYPE_AVATAR && styles.alignSelfCenter]}
- ref={anchorRef}
- >
-
- {source ? (
-
- ) : (
-
- )}
-
- {!disabled && (
-
-
-
- )}
-
-
-
setIsMenuVisible(false)}
- onItemSelected={(item, index) => {
- setIsMenuVisible(false);
- // In order for the file picker to open dynamically, the click
- // function must be called from within an event handler that was initiated
- // by the user on Safari.
- if (index === 0 && Browser.isSafari()) {
- openPicker({
- onPicked: showAvatarCropModal,
- });
- }
- }}
- menuItems={menuItems}
- anchorPosition={shouldUseStyleUtilityForAnchorPosition ? styles.popoverMenuOffset(windowWidth) : popoverPosition}
- anchorAlignment={{horizontal: CONST.MODAL.ANCHOR_ORIGIN_HORIZONTAL.LEFT, vertical: CONST.MODAL.ANCHOR_ORIGIN_VERTICAL.TOP}}
- withoutOverlay
- anchorRef={anchorRef}
- />
+ <>
+
+
+ onPressAvatar(openPicker)}
+ accessibilityRole={CONST.ACCESSIBILITY_ROLE.IMAGEBUTTON}
+ accessibilityLabel={translate('avatarWithImagePicker.editImage')}
+ disabled={isAvatarCropModalOpen || (disabled && !enablePreview)}
+ disabledStyle={disabledStyle}
+ style={[styles.pRelative, avatarStyle, type === CONST.ICON_TYPE_AVATAR && styles.alignSelfCenter]}
+ ref={anchorRef}
+ >
+
+ {source ? (
+
+ ) : (
+
+ )}
+
+ {!disabled && (
+
+
+
+ )}
+
+
+
+ setIsMenuVisible(false)}
+ onItemSelected={(item, index) => {
+ setIsMenuVisible(false);
+ // In order for the file picker to open dynamically, the click
+ // function must be called from within an event handler that was initiated
+ // by the user on Safari.
+ if (index === 0 && Browser.isSafari()) {
+ openPicker({
+ onPicked: showAvatarCropModal,
+ });
+ }
+ }}
+ menuItems={menuItems}
+ anchorPosition={shouldUseStyleUtilityForAnchorPosition ? styles.popoverMenuOffset(windowWidth) : popoverPosition}
+ anchorAlignment={{horizontal: CONST.MODAL.ANCHOR_ORIGIN_HORIZONTAL.LEFT, vertical: CONST.MODAL.ANCHOR_ORIGIN_VERTICAL.TOP}}
+ withoutOverlay
+ anchorRef={anchorRef}
+ />
+ >
);
}}
diff --git a/src/components/Checkbox.tsx b/src/components/Checkbox.tsx
index 5445816f067b..6da170da3a67 100644
--- a/src/components/Checkbox.tsx
+++ b/src/components/Checkbox.tsx
@@ -44,6 +44,9 @@ type CheckboxProps = Partial & {
/** An accessibility label for the checkbox */
accessibilityLabel: string;
+
+ /** stop propagation of the mouse down event */
+ shouldStopMouseDownPropagation?: boolean;
};
function Checkbox(
@@ -60,6 +63,7 @@ function Checkbox(
caretSize = 14,
onPress,
accessibilityLabel,
+ shouldStopMouseDownPropagation,
}: CheckboxProps,
ref: ForwardedRef,
) {
@@ -89,7 +93,12 @@ function Checkbox(
{
+ if (shouldStopMouseDownPropagation) {
+ e.stopPropagation();
+ }
+ onMouseDown?.(e);
+ }}
ref={ref}
style={[StyleUtils.getCheckboxPressableStyle(containerBorderRadius + 2), style]} // to align outline on focus, border-radius of pressable should be 2px more than Checkbox
onKeyDown={handleSpaceKey}
diff --git a/src/components/Composer/index.native.tsx b/src/components/Composer/index.native.tsx
index c5f2e07eef80..d5dc4c12afc0 100644
--- a/src/components/Composer/index.native.tsx
+++ b/src/components/Composer/index.native.tsx
@@ -38,7 +38,7 @@ function Composer(
ref: ForwardedRef,
) {
const textInput = useRef(null);
- const {isFocused, shouldResetFocus} = useResetComposerFocus(textInput);
+ const {isFocused, shouldResetFocusRef} = useResetComposerFocus(textInput);
const textContainsOnlyEmojis = useMemo(() => EmojiUtils.containsOnlyEmojis(value ?? ''), [value]);
const theme = useTheme();
const markdownStyle = useMarkdownStyle(value, !isGroupPolicyReport ? excludeReportMentionStyle : excludeNoStyles);
@@ -95,7 +95,7 @@ function Composer(
onBlur={(e) => {
if (!isFocused) {
// eslint-disable-next-line react-compiler/react-compiler
- shouldResetFocus.current = true; // detect the input is blurred when the page is hidden
+ shouldResetFocusRef.current = true; // detect the input is blurred when the page is hidden
}
props?.onBlur?.(e);
}}
diff --git a/src/components/ConnectToNetSuiteButton/index.tsx b/src/components/ConnectToNetSuiteButton/index.tsx
index b741d584a49e..928bc01f12c1 100644
--- a/src/components/ConnectToNetSuiteButton/index.tsx
+++ b/src/components/ConnectToNetSuiteButton/index.tsx
@@ -1,5 +1,6 @@
import React, {useRef, useState} from 'react';
import type {View} from 'react-native';
+import {useOnyx} from 'react-native-onyx';
import AccountingConnectionConfirmationModal from '@components/AccountingConnectionConfirmationModal';
import Button from '@components/Button';
import * as Expensicons from '@components/Icon/Expensicons';
@@ -11,8 +12,10 @@ import useWindowDimensions from '@hooks/useWindowDimensions';
import {removePolicyConnection} from '@libs/actions/connections';
import {getAdminPoliciesConnectedToNetSuite} from '@libs/actions/Policy/Policy';
import Navigation from '@libs/Navigation/Navigation';
+import {isControlPolicy} from '@libs/PolicyUtils';
import type {AnchorPosition} from '@styles/index';
import CONST from '@src/CONST';
+import ONYXKEYS from '@src/ONYXKEYS';
import ROUTES from '@src/ROUTES';
import type {ConnectToNetSuiteButtonProps} from './types';
@@ -20,6 +23,7 @@ function ConnectToNetSuiteButton({policyID, shouldDisconnectIntegrationBeforeCon
const styles = useThemeStyles();
const {translate} = useLocalize();
const {isOffline} = useNetwork();
+ const [policy] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY}${policyID}`);
const [isDisconnectModalOpen, setIsDisconnectModalOpen] = useState(false);
@@ -51,6 +55,11 @@ function ConnectToNetSuiteButton({policyID, shouldDisconnectIntegrationBeforeCon
<>
{
+ if (!isControlPolicy(policy)) {
+ Navigation.navigate(ROUTES.WORKSPACE_UPGRADE.getRoute(policyID, CONST.UPGRADE_FEATURE_INTRO_MAPPING.netsuite.alias));
+ return;
+ }
+
if (shouldDisconnectIntegrationBeforeConnecting && integrationToDisconnect) {
setIsDisconnectModalOpen(true);
return;
diff --git a/src/components/ConnectToSageIntacctButton/index.tsx b/src/components/ConnectToSageIntacctButton/index.tsx
index 89e256f813a1..6c6523ad6e75 100644
--- a/src/components/ConnectToSageIntacctButton/index.tsx
+++ b/src/components/ConnectToSageIntacctButton/index.tsx
@@ -1,5 +1,6 @@
import React, {useRef, useState} from 'react';
import type {View} from 'react-native';
+import {useOnyx} from 'react-native-onyx';
import AccountingConnectionConfirmationModal from '@components/AccountingConnectionConfirmationModal';
import Button from '@components/Button';
import * as Expensicons from '@components/Icon/Expensicons';
@@ -11,8 +12,10 @@ import useWindowDimensions from '@hooks/useWindowDimensions';
import {removePolicyConnection} from '@libs/actions/connections';
import {getAdminPoliciesConnectedToSageIntacct} from '@libs/actions/Policy/Policy';
import Navigation from '@libs/Navigation/Navigation';
+import {isControlPolicy} from '@libs/PolicyUtils';
import type {AnchorPosition} from '@styles/index';
import CONST from '@src/CONST';
+import ONYXKEYS from '@src/ONYXKEYS';
import ROUTES from '@src/ROUTES';
import type {PolicyConnectionName} from '@src/types/onyx/Policy';
@@ -27,6 +30,8 @@ function ConnectToSageIntacctButton({policyID, shouldDisconnectIntegrationBefore
const {translate} = useLocalize();
const {isOffline} = useNetwork();
+ const [policy] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY}${policyID}`);
+
const [isDisconnectModalOpen, setIsDisconnectModalOpen] = useState(false);
const hasPoliciesConnectedToSageIntacct = !!getAdminPoliciesConnectedToSageIntacct().length;
@@ -57,6 +62,11 @@ function ConnectToSageIntacctButton({policyID, shouldDisconnectIntegrationBefore
<>
{
+ if (!isControlPolicy(policy)) {
+ Navigation.navigate(ROUTES.WORKSPACE_UPGRADE.getRoute(policyID, CONST.UPGRADE_FEATURE_INTRO_MAPPING.intacct.alias));
+ return;
+ }
+
if (shouldDisconnectIntegrationBeforeConnecting && integrationToDisconnect) {
setIsDisconnectModalOpen(true);
return;
diff --git a/src/components/DecisionModal.tsx b/src/components/DecisionModal.tsx
index 065099867e14..a9bd0b204d79 100644
--- a/src/components/DecisionModal.tsx
+++ b/src/components/DecisionModal.tsx
@@ -21,7 +21,7 @@ type DecisionModalProps = {
secondOptionText: string;
/** onSubmit callback fired after clicking on first button */
- onFirstOptionSubmit: () => void;
+ onFirstOptionSubmit?: () => void;
/** onSubmit callback fired after clicking on second button */
onSecondOptionSubmit: () => void;
diff --git a/src/components/EReceiptThumbnail.tsx b/src/components/EReceiptThumbnail.tsx
index a8d636db460b..8e0f589cc34d 100644
--- a/src/components/EReceiptThumbnail.tsx
+++ b/src/components/EReceiptThumbnail.tsx
@@ -57,8 +57,7 @@ const backgroundImages = {
function EReceiptThumbnail({transaction, borderRadius, fileExtension, isReceiptThumbnail = false, centerIconV = true, iconSize = 'large'}: EReceiptThumbnailProps) {
const styles = useThemeStyles();
const StyleUtils = useStyleUtils();
- const {tripIcon, tripBGColor} = TripReservationUtils.getTripEReceiptData(transaction);
- const colorCode = tripBGColor ?? (isReceiptThumbnail ? StyleUtils.getFileExtensionColorCode(fileExtension) : StyleUtils.getEReceiptColorCode(transaction));
+ const colorCode = isReceiptThumbnail ? StyleUtils.getFileExtensionColorCode(fileExtension) : StyleUtils.getEReceiptColorCode(transaction);
const backgroundImage = useMemo(() => backgroundImages[colorCode], [colorCode]);
@@ -68,6 +67,7 @@ function EReceiptThumbnail({transaction, borderRadius, fileExtension, isReceiptT
const transactionDetails = ReportUtils.getTransactionDetails(transaction);
const transactionMCCGroup = transactionDetails?.mccGroup;
const MCCIcon = transactionMCCGroup ? MCCIcons[`${transactionMCCGroup}`] : undefined;
+ const tripIcon = TripReservationUtils.getTripEReceiptIcon(transaction);
let receiptIconWidth: number = variables.eReceiptIconWidth;
let receiptIconHeight: number = variables.eReceiptIconHeight;
@@ -143,7 +143,7 @@ function EReceiptThumbnail({transaction, borderRadius, fileExtension, isReceiptT
fill={primaryColor}
/>
) : null}
- {tripIcon ? (
+ {!MCCIcon && tripIcon ? (
void;
+
+ /** Reset the emoji suggestions */
+ resetSuggestions: () => void;
};
/**
@@ -49,6 +52,7 @@ function EmojiSuggestions({
preferredSkinToneIndex,
highlightedEmojiIndex = 0,
measureParentContainerAndReportCursor = () => {},
+ resetSuggestions,
}: EmojiSuggestionsProps) {
const styles = useThemeStyles();
const StyleUtils = useStyleUtils();
@@ -93,6 +97,7 @@ function EmojiSuggestions({
isSuggestionPickerLarge={isEmojiPickerLarge}
accessibilityLabelExtractor={keyExtractor}
measureParentContainerAndReportCursor={measureParentContainerAndReportCursor}
+ resetSuggestions={resetSuggestions}
/>
);
}
diff --git a/src/components/EmptyStateComponent/index.tsx b/src/components/EmptyStateComponent/index.tsx
index a8ad9d0f3154..41d1a42931c6 100644
--- a/src/components/EmptyStateComponent/index.tsx
+++ b/src/components/EmptyStateComponent/index.tsx
@@ -14,7 +14,18 @@ import type {EmptyStateComponentProps, VideoLoadedEventType} from './types';
const VIDEO_ASPECT_RATIO = 400 / 225;
-function EmptyStateComponent({SkeletonComponent, headerMediaType, headerMedia, buttonText, buttonAction, title, subtitle, headerStyles, headerContentStyles}: EmptyStateComponentProps) {
+function EmptyStateComponent({
+ SkeletonComponent,
+ headerMediaType,
+ headerMedia,
+ buttonText,
+ buttonAction,
+ title,
+ subtitle,
+ headerStyles,
+ headerContentStyles,
+ emptyStateContentStyles,
+}: EmptyStateComponentProps) {
const styles = useThemeStyles();
const {isSmallScreenWidth} = useWindowDimensions();
const [videoAspectRatio, setVideoAspectRatio] = useState(VIDEO_ASPECT_RATIO);
@@ -76,7 +87,7 @@ function EmptyStateComponent({SkeletonComponent, headerMediaType, headerMedia, b
/>
-
+
{HeaderComponent}
{title}
diff --git a/src/components/EmptyStateComponent/types.ts b/src/components/EmptyStateComponent/types.ts
index 326b25542f42..96a60fa98513 100644
--- a/src/components/EmptyStateComponent/types.ts
+++ b/src/components/EmptyStateComponent/types.ts
@@ -19,6 +19,7 @@ type SharedProps = {
headerStyles?: StyleProp;
headerMediaType: T;
headerContentStyles?: StyleProp;
+ emptyStateContentStyles?: StyleProp;
};
type MediaType = SharedProps & {
diff --git a/src/components/FeedbackSurvey.tsx b/src/components/FeedbackSurvey.tsx
index a7b0732be1fb..db5db3ee447d 100644
--- a/src/components/FeedbackSurvey.tsx
+++ b/src/components/FeedbackSurvey.tsx
@@ -25,6 +25,15 @@ type FeedbackSurveyProps = {
/** Styles for the option row element */
optionRowStyles?: StyleProp;
+
+ /** Optional text to render over the submit button */
+ footerText?: React.ReactNode;
+
+ /** Indicates whether note field is required */
+ isNoteRequired?: boolean;
+
+ /** Indicates whether a loading indicator should be shown */
+ isLoading?: boolean;
};
type Option = {
@@ -39,7 +48,7 @@ const OPTIONS: Option[] = [
{key: CONST.FEEDBACK_SURVEY_OPTIONS.BUSINESS_CLOSING.ID, label: CONST.FEEDBACK_SURVEY_OPTIONS.BUSINESS_CLOSING.TRANSLATION_KEY},
];
-function FeedbackSurvey({title, description, onSubmit, optionRowStyles}: FeedbackSurveyProps) {
+function FeedbackSurvey({title, description, onSubmit, optionRowStyles, footerText, isNoteRequired, isLoading}: FeedbackSurveyProps) {
const {translate} = useLocalize();
const styles = useThemeStyles();
const theme = useTheme();
@@ -55,7 +64,7 @@ function FeedbackSurvey({title, description, onSubmit, optionRowStyles}: Feedbac
};
const handleSubmit = () => {
- if (!reason) {
+ if (!reason || (isNoteRequired && !note.trim())) {
setShouldShowReasonError(true);
return;
}
@@ -89,12 +98,15 @@ function FeedbackSurvey({title, description, onSubmit, optionRowStyles}: Feedbac
)}
+ {!!footerText && footerText}
diff --git a/src/components/FocusTrap/BOTTOM_TAB_SCREENS.ts b/src/components/FocusTrap/BOTTOM_TAB_SCREENS.ts
index e6af466b12c5..b472b80e5cbd 100644
--- a/src/components/FocusTrap/BOTTOM_TAB_SCREENS.ts
+++ b/src/components/FocusTrap/BOTTOM_TAB_SCREENS.ts
@@ -1,6 +1,6 @@
-import type {BottomTabName} from '@libs/Navigation/types';
+import NAVIGATORS from '@src/NAVIGATORS';
import SCREENS from '@src/SCREENS';
-const BOTTOM_TAB_SCREENS: BottomTabName[] = [SCREENS.HOME, SCREENS.SETTINGS.ROOT];
+const BOTTOM_TAB_SCREENS = [SCREENS.HOME, SCREENS.SETTINGS.ROOT, NAVIGATORS.BOTTOM_TAB_NAVIGATOR];
export default BOTTOM_TAB_SCREENS;
diff --git a/src/components/FocusTrap/FocusTrapForModal/FocusTrapForModalProps.ts b/src/components/FocusTrap/FocusTrapForModal/FocusTrapForModalProps.ts
index 6bc2350a6c55..5793885dacd1 100644
--- a/src/components/FocusTrap/FocusTrapForModal/FocusTrapForModalProps.ts
+++ b/src/components/FocusTrap/FocusTrapForModal/FocusTrapForModalProps.ts
@@ -1,6 +1,11 @@
+import type FocusTrap from 'focus-trap-react';
+
+type FocusTrapOptions = Exclude;
+
type FocusTrapForModalProps = {
children: React.ReactNode;
active: boolean;
+ initialFocus?: FocusTrapOptions['initialFocus'];
};
export default FocusTrapForModalProps;
diff --git a/src/components/FocusTrap/FocusTrapForModal/index.web.tsx b/src/components/FocusTrap/FocusTrapForModal/index.web.tsx
index 00dcedd32aa2..2608c58a4d23 100644
--- a/src/components/FocusTrap/FocusTrapForModal/index.web.tsx
+++ b/src/components/FocusTrap/FocusTrapForModal/index.web.tsx
@@ -4,14 +4,14 @@ import sharedTrapStack from '@components/FocusTrap/sharedTrapStack';
import ReportActionComposeFocusManager from '@libs/ReportActionComposeFocusManager';
import type FocusTrapForModalProps from './FocusTrapForModalProps';
-function FocusTrapForModal({children, active}: FocusTrapForModalProps) {
+function FocusTrapForModal({children, active, initialFocus = false}: FocusTrapForModalProps) {
return (
{
if (ReportActionComposeFocusManager.isFocused()) {
diff --git a/src/components/FocusTrap/FocusTrapForScreen/index.web.tsx b/src/components/FocusTrap/FocusTrapForScreen/index.web.tsx
index e7fe135c952c..cd8dc3ddaa0a 100644
--- a/src/components/FocusTrap/FocusTrapForScreen/index.web.tsx
+++ b/src/components/FocusTrap/FocusTrapForScreen/index.web.tsx
@@ -6,6 +6,7 @@ import sharedTrapStack from '@components/FocusTrap/sharedTrapStack';
import TOP_TAB_SCREENS from '@components/FocusTrap/TOP_TAB_SCREENS';
import WIDE_LAYOUT_INACTIVE_SCREENS from '@components/FocusTrap/WIDE_LAYOUT_INACTIVE_SCREENS';
import useWindowDimensions from '@hooks/useWindowDimensions';
+import canFocusInputOnScreenFocus from '@libs/canFocusInputOnScreenFocus';
import CONST from '@src/CONST';
import type FocusTrapProps from './FocusTrapProps';
@@ -42,6 +43,10 @@ function FocusTrapForScreen({children}: FocusTrapProps) {
fallbackFocus: document.body,
delayInitialFocus: CONST.ANIMATED_TRANSITION,
initialFocus: (focusTrapContainers) => {
+ if (!canFocusInputOnScreenFocus()) {
+ return false;
+ }
+
const isFocusedElementInsideContainer = focusTrapContainers?.some((container) => container.contains(document.activeElement));
if (isFocusedElementInsideContainer) {
return false;
diff --git a/src/components/FocusTrap/WIDE_LAYOUT_INACTIVE_SCREENS.ts b/src/components/FocusTrap/WIDE_LAYOUT_INACTIVE_SCREENS.ts
index 551a30cba46e..82e7d4f30a85 100644
--- a/src/components/FocusTrap/WIDE_LAYOUT_INACTIVE_SCREENS.ts
+++ b/src/components/FocusTrap/WIDE_LAYOUT_INACTIVE_SCREENS.ts
@@ -1,7 +1,10 @@
import NAVIGATORS from '@src/NAVIGATORS';
import SCREENS from '@src/SCREENS';
-// Screens that should not have active focus trap when rendered on wide screen in order to allow Tab navigation in LHP and RHP
+/**
+ * Screens displayed in the BottomTab and CentralPane displayed side by side that should not have active
+ * focus trap when rendered on a wide screen to allow navigation between them using the keyboard
+ */
const WIDE_LAYOUT_INACTIVE_SCREENS: string[] = [
NAVIGATORS.BOTTOM_TAB_NAVIGATOR,
SCREENS.HOME,
@@ -14,13 +17,11 @@ const WIDE_LAYOUT_INACTIVE_SCREENS: string[] = [
SCREENS.SETTINGS.ABOUT,
SCREENS.SETTINGS.WORKSPACES,
SCREENS.SETTINGS.SUBSCRIPTION.ROOT,
+ SCREENS.WORKSPACE.ACCOUNTING.ROOT,
SCREENS.WORKSPACE.INITIAL,
SCREENS.WORKSPACE.PROFILE,
SCREENS.WORKSPACE.CARD,
SCREENS.WORKSPACE.WORKFLOWS,
- SCREENS.WORKSPACE.WORKFLOWS_APPROVER,
- SCREENS.WORKSPACE.WORKFLOWS_AUTO_REPORTING_FREQUENCY,
- SCREENS.WORKSPACE.WORKFLOWS_AUTO_REPORTING_MONTHLY_OFFSET,
SCREENS.WORKSPACE.REIMBURSE,
SCREENS.WORKSPACE.BILLS,
SCREENS.WORKSPACE.INVOICES,
diff --git a/src/components/FormHelpMessage.tsx b/src/components/FormHelpMessage.tsx
index 01a5a1eaf3a8..92cdc658b2d7 100644
--- a/src/components/FormHelpMessage.tsx
+++ b/src/components/FormHelpMessage.tsx
@@ -10,7 +10,7 @@ import Text from './Text';
type FormHelpMessageProps = {
/** Error or hint text. Ignored when children is not empty */
- message?: string;
+ message?: string | React.ReactNode;
/** Children to render next to dot indicator */
children?: React.ReactNode;
diff --git a/src/components/HybridAppMiddleware/index.ios.tsx b/src/components/HybridAppMiddleware/index.ios.tsx
index c348cc86c974..1ea8e62ab17e 100644
--- a/src/components/HybridAppMiddleware/index.ios.tsx
+++ b/src/components/HybridAppMiddleware/index.ios.tsx
@@ -59,6 +59,11 @@ function HybridAppMiddleware({children, authenticated}: HybridAppMiddlewareProps
return;
}
+ if (!NativeModules.HybridAppModule) {
+ Log.hmmm(`[HybridApp] Onboarding status has changed, but the HybridAppModule is not defined`);
+ return;
+ }
+
Log.info(`[HybridApp] Onboarding status has changed. Propagating new value to OldDot`, true, {completedHybridAppOnboarding});
NativeModules.HybridAppModule.completeOnboarding(completedHybridAppOnboarding);
}, [completedHybridAppOnboarding]);
diff --git a/src/components/Icon/Expensicons.ts b/src/components/Icon/Expensicons.ts
index 487df5594212..0b9306d1c977 100644
--- a/src/components/Icon/Expensicons.ts
+++ b/src/components/Icon/Expensicons.ts
@@ -27,6 +27,7 @@ import Bolt from '@assets/images/bolt.svg';
import Briefcase from '@assets/images/briefcase.svg';
import Bug from '@assets/images/bug.svg';
import Building from '@assets/images/building.svg';
+import CalendarSolid from '@assets/images/calendar-solid.svg';
import Calendar from '@assets/images/calendar.svg';
import Camera from '@assets/images/camera.svg';
import CarWithKey from '@assets/images/car-with-key.svg';
@@ -372,4 +373,5 @@ export {
CheckCircle,
CheckmarkCircle,
NetSuiteSquare,
+ CalendarSolid,
};
diff --git a/src/components/Icon/Illustrations.ts b/src/components/Icon/Illustrations.ts
index 6499e8eceb6e..ccbf4b3a5da9 100644
--- a/src/components/Icon/Illustrations.ts
+++ b/src/components/Icon/Illustrations.ts
@@ -1,3 +1,4 @@
+import EmptyCardState from '@assets/images/emptystate__expensifycard.svg';
import ExpensifyCardIllustration from '@assets/images/expensifyCard/cardIllustration.svg';
import LaptopwithSecondScreenandHourglass from '@assets/images/LaptopwithSecondScreenandHourglass.svg';
import Abracadabra from '@assets/images/product-illustrations/abracadabra.svg';
@@ -115,6 +116,7 @@ export {
ConciergeExclamation,
CreditCardsBlue,
EmailAddress,
+ EmptyCardState,
EmptyStateExpenses,
FolderOpen,
HandCard,
diff --git a/src/components/LHNOptionsList/OptionRowLHNData.tsx b/src/components/LHNOptionsList/OptionRowLHNData.tsx
index bb5fdb580aa7..2afd9e10b80c 100644
--- a/src/components/LHNOptionsList/OptionRowLHNData.tsx
+++ b/src/components/LHNOptionsList/OptionRowLHNData.tsx
@@ -36,6 +36,7 @@ function OptionRowLHNData({
const optionItemRef = useRef();
const shouldDisplayViolations = canUseViolations && ReportUtils.shouldDisplayTransactionThreadViolations(fullReport, transactionViolations, parentReportAction);
+ const shouldDisplayReportViolations = ReportUtils.isReportOwner(fullReport) && ReportUtils.hasReportViolations(reportID);
const optionItem = useMemo(() => {
// Note: ideally we'd have this as a dependent selector in onyx!
@@ -46,7 +47,7 @@ function OptionRowLHNData({
preferredLocale: preferredLocale ?? CONST.LOCALES.DEFAULT,
policy,
parentReportAction,
- hasViolations: !!shouldDisplayViolations,
+ hasViolations: !!shouldDisplayViolations || shouldDisplayReportViolations,
transactionViolations,
});
if (deepEqual(item, optionItemRef.current)) {
@@ -71,6 +72,7 @@ function OptionRowLHNData({
transactionViolations,
canUseViolations,
receiptTransactions,
+ shouldDisplayReportViolations,
]);
return (
diff --git a/src/components/MapView/MapView.tsx b/src/components/MapView/MapView.tsx
index 59102e55c930..974f58636977 100644
--- a/src/components/MapView/MapView.tsx
+++ b/src/components/MapView/MapView.tsx
@@ -157,7 +157,8 @@ const MapView = forwardRef(
}
};
const centerMap = useCallback(() => {
- if (directionCoordinates && directionCoordinates.length > 1) {
+ const waypointCoordinates = waypoints?.map((waypoint) => waypoint.coordinate) ?? [];
+ if (waypointCoordinates.length > 1 || (directionCoordinates ?? []).length > 1) {
const {southWest, northEast} = utils.getBounds(waypoints?.map((waypoint) => waypoint.coordinate) ?? [], directionCoordinates);
cameraRef.current?.fitBounds(southWest, northEast, mapPadding, CONST.MAPBOX.ANIMATION_DURATION_ON_CENTER_ME);
return;
diff --git a/src/components/MapView/MapView.website.tsx b/src/components/MapView/MapView.website.tsx
index c8f4e9bb38fc..618dd5b24cf5 100644
--- a/src/components/MapView/MapView.website.tsx
+++ b/src/components/MapView/MapView.website.tsx
@@ -194,7 +194,8 @@ const MapView = forwardRef(
if (!mapRef) {
return;
}
- if (directionCoordinates && directionCoordinates.length > 1) {
+ const waypointCoordinates = waypoints?.map((waypoint) => waypoint.coordinate) ?? [];
+ if (waypointCoordinates.length > 1 || (directionCoordinates ?? []).length > 1) {
const {northEast, southWest} = utils.getBounds(waypoints?.map((waypoint) => waypoint.coordinate) ?? [], directionCoordinates);
const map = mapRef?.getMap();
map?.fitBounds([southWest, northEast], {padding: mapPadding, animate: true, duration: CONST.MAPBOX.ANIMATION_DURATION_ON_CENTER_ME});
diff --git a/src/components/MentionSuggestions.tsx b/src/components/MentionSuggestions.tsx
index 1142a90c87d1..bdc19316d491 100644
--- a/src/components/MentionSuggestions.tsx
+++ b/src/components/MentionSuggestions.tsx
@@ -55,6 +55,9 @@ type MentionSuggestionsProps = {
/** Measures the parent container's position and dimensions. Also add cursor coordinates */
measureParentContainerAndReportCursor: (callback: MeasureParentContainerAndCursorCallback) => void;
+
+ /** Reset the emoji suggestions */
+ resetSuggestions: () => void;
};
/**
@@ -62,7 +65,15 @@ type MentionSuggestionsProps = {
*/
const keyExtractor = (item: Mention) => item.alternateText;
-function MentionSuggestions({prefix, mentions, highlightedMentionIndex = 0, onSelect, isMentionPickerLarge, measureParentContainerAndReportCursor = () => {}}: MentionSuggestionsProps) {
+function MentionSuggestions({
+ prefix,
+ mentions,
+ highlightedMentionIndex = 0,
+ onSelect,
+ isMentionPickerLarge,
+ measureParentContainerAndReportCursor = () => {},
+ resetSuggestions,
+}: MentionSuggestionsProps) {
const theme = useTheme();
const styles = useThemeStyles();
const StyleUtils = useStyleUtils();
@@ -149,6 +160,7 @@ function MentionSuggestions({prefix, mentions, highlightedMentionIndex = 0, onSe
isSuggestionPickerLarge={isMentionPickerLarge}
accessibilityLabelExtractor={keyExtractor}
measureParentContainerAndReportCursor={measureParentContainerAndReportCursor}
+ resetSuggestions={resetSuggestions}
/>
);
}
diff --git a/src/components/MenuItem.tsx b/src/components/MenuItem.tsx
index 473806aac3af..6a211e452f9a 100644
--- a/src/components/MenuItem.tsx
+++ b/src/components/MenuItem.tsx
@@ -160,7 +160,7 @@ type MenuItemBaseProps = {
errorTextStyle?: StyleProp;
/** Hint to display at the bottom of the component */
- hintText?: string;
+ hintText?: string | ReactNode;
/** Should the error text red dot indicator be shown */
shouldShowRedDotIndicator?: boolean;
@@ -538,7 +538,7 @@ function MenuItem(
...(Array.isArray(wrapperStyle) ? wrapperStyle : [wrapperStyle]),
!focused && (isHovered || pressed) && hoverAndPressStyle,
shouldGreyOutWhenDisabled && disabled && styles.buttonOpacityDisabled,
- isHovered && interactive && !pressed && styles.hoveredComponentBG,
+ isHovered && interactive && !focused && !pressed && styles.hoveredComponentBG,
] as StyleProp
}
disabledStyle={shouldUseDefaultCursorWhenDisabled && [styles.cursorDefault]}
@@ -653,7 +653,7 @@ function MenuItem(
)}
{(!!title || !!shouldShowTitleIcon) && (
-
+
{!!title && (shouldRenderAsHTML || (shouldParseTitle && !!html.length)) && (
diff --git a/src/components/Modal/BaseModal.tsx b/src/components/Modal/BaseModal.tsx
index d88dde545f3b..88ad2f6d5e00 100644
--- a/src/components/Modal/BaseModal.tsx
+++ b/src/components/Modal/BaseModal.tsx
@@ -50,6 +50,7 @@ function BaseModal(
shouldEnableNewFocusManagement = false,
restoreFocusType,
shouldUseModalPaddingStyle = true,
+ initialFocus = false,
}: BaseModalProps,
ref: React.ForwardedRef,
) {
@@ -255,7 +256,10 @@ function BaseModal(
customBackdrop={shouldUseCustomBackdrop ? : undefined}
>
-
+
;
+
type PopoverAnchorPosition = {
top?: number;
right?: number;
@@ -87,6 +90,9 @@ type BaseModalProps = Partial & {
/** Should we apply padding style in modal itself. If this value is false, we will handle it in ScreenWrapper */
shouldUseModalPaddingStyle?: boolean;
+
+ /** Used to set the element that should receive the initial focus */
+ initialFocus?: FocusTrapOptions['initialFocus'];
};
export default BaseModalProps;
diff --git a/src/components/MoneyReportHeader.tsx b/src/components/MoneyReportHeader.tsx
index 51c64650477a..d1b22b28c342 100644
--- a/src/components/MoneyReportHeader.tsx
+++ b/src/components/MoneyReportHeader.tsx
@@ -118,12 +118,12 @@ function MoneyReportHeader({policy, report: moneyRequestReport, transactionThrea
const shouldShowSubmitButton = isDraft && reimbursableSpend !== 0 && !allHavePendingRTERViolation;
- const shouldShowExportIntegrationButton = !shouldShowPayButton && !shouldShowSubmitButton && connectedIntegration && !!policy;
+ const isAdmin = policy?.role === CONST.POLICY.ROLE.ADMIN;
+ const shouldShowExportIntegrationButton = !shouldShowPayButton && !shouldShowSubmitButton && connectedIntegration && isAdmin;
const shouldShowSettlementButton = (shouldShowPayButton || shouldShowApproveButton) && !allHavePendingRTERViolation && !shouldShowExportIntegrationButton;
const shouldDisableSubmitButton = shouldShowSubmitButton && !ReportUtils.isAllowedToSubmitDraftExpenseReport(moneyRequestReport);
- const shouldShowMarkAsCashButton = isDraft && allHavePendingRTERViolation;
const isFromPaidPolicy = policyType === CONST.POLICY.TYPE.TEAM || policyType === CONST.POLICY.TYPE.CORPORATE;
const shouldShowStatusBar = allHavePendingRTERViolation || hasOnlyHeldExpenses || hasScanningReceipt;
const shouldShowNextStep = !ReportUtils.isClosedExpenseReportWithNoExpenses(moneyRequestReport) && isFromPaidPolicy && !!nextStep?.message?.length && !shouldShowStatusBar;
@@ -303,7 +303,7 @@ function MoneyReportHeader({policy, report: moneyRequestReport, transactionThrea
/>
)}
- {shouldShowMarkAsCashButton && !shouldUseNarrowLayout && (
+ {allHavePendingRTERViolation && !shouldUseNarrowLayout && (
)}
- {shouldShowMarkAsCashButton && shouldUseNarrowLayout && (
+ {allHavePendingRTERViolation && shouldUseNarrowLayout && (
setIsHoldMenuVisible(false)}
isVisible={isHoldMenuVisible}
paymentType={paymentType}
diff --git a/src/components/MoneyReportHeaderStatusBar.tsx b/src/components/MoneyReportHeaderStatusBar.tsx
index a6267f3fe374..455f9e443610 100644
--- a/src/components/MoneyReportHeaderStatusBar.tsx
+++ b/src/components/MoneyReportHeaderStatusBar.tsx
@@ -1,11 +1,15 @@
import React, {useMemo} from 'react';
import {View} from 'react-native';
-import useLocalize from '@hooks/useLocalize';
+import type {ValueOf} from 'type-fest';
+import useTheme from '@hooks/useTheme';
import useThemeStyles from '@hooks/useThemeStyles';
import * as NextStepUtils from '@libs/NextStepUtils';
+import variables from '@styles/variables';
import CONST from '@src/CONST';
import type ReportNextStep from '@src/types/onyx/ReportNextStep';
-import Badge from './Badge';
+import type IconAsset from '@src/types/utils/IconAsset';
+import Icon from './Icon';
+import * as Expensicons from './Icon/Expensicons';
import RenderHTML from './RenderHTML';
type MoneyReportHeaderStatusBarProps = {
@@ -13,10 +17,17 @@ type MoneyReportHeaderStatusBarProps = {
nextStep: ReportNextStep;
};
+type IconName = ValueOf;
+type IconMap = Record;
+const iconMap: IconMap = {
+ [CONST.NEXT_STEP.ICONS.HOURGLASS]: Expensicons.Hourglass,
+ [CONST.NEXT_STEP.ICONS.CHECKMARK]: Expensicons.Checkmark,
+ [CONST.NEXT_STEP.ICONS.STOPWATCH]: Expensicons.Stopwatch,
+};
+
function MoneyReportHeaderStatusBar({nextStep}: MoneyReportHeaderStatusBarProps) {
const styles = useThemeStyles();
- const {translate} = useLocalize();
-
+ const theme = useTheme();
const messageContent = useMemo(() => {
const messageArray = nextStep.message;
return NextStepUtils.parseMessage(messageArray);
@@ -25,9 +36,11 @@ function MoneyReportHeaderStatusBar({nextStep}: MoneyReportHeaderStatusBarProps)
return (
-
diff --git a/src/components/MoneyRequestConfirmationList.tsx b/src/components/MoneyRequestConfirmationList.tsx
index ae8cbe4298f2..84caa618f0f8 100755
--- a/src/components/MoneyRequestConfirmationList.tsx
+++ b/src/components/MoneyRequestConfirmationList.tsx
@@ -1,7 +1,7 @@
import {useFocusEffect, useIsFocused} from '@react-navigation/native';
import lodashIsEqual from 'lodash/isEqual';
import React, {memo, useCallback, useEffect, useMemo, useRef, useState} from 'react';
-import {View} from 'react-native';
+import {InteractionManager, View} from 'react-native';
import {withOnyx} from 'react-native-onyx';
import type {OnyxEntry} from 'react-native-onyx';
import useCurrentUserPersonalDetails from '@hooks/useCurrentUserPersonalDetails';
@@ -11,6 +11,7 @@ import {MouseProvider} from '@hooks/useMouseContext';
import usePermissions from '@hooks/usePermissions';
import usePrevious from '@hooks/usePrevious';
import useThemeStyles from '@hooks/useThemeStyles';
+import blurActiveElement from '@libs/Accessibility/blurActiveElement';
import * as CurrencyUtils from '@libs/CurrencyUtils';
import DistanceRequestUtils from '@libs/DistanceRequestUtils';
import type {MileageRate} from '@libs/DistanceRequestUtils';
@@ -325,6 +326,20 @@ function MoneyRequestConfirmationList({
// eslint-disable-next-line react-compiler/react-compiler, react-hooks/exhaustive-deps -- we don't want this effect to run if it's just setFormError that changes
}, [isFocused, transaction, shouldDisplayFieldError, hasSmartScanFailed, didConfirmSplit]);
+ const isFirstUpdatedDistanceAmount = useRef(false);
+
+ useEffect(() => {
+ if (isFirstUpdatedDistanceAmount.current) {
+ return;
+ }
+ if (!isDistanceRequest) {
+ return;
+ }
+ const amount = DistanceRequestUtils.getDistanceRequestAmount(distance, unit ?? CONST.CUSTOM_UNITS.DISTANCE_UNIT_MILES, rate ?? 0);
+ IOU.setMoneyRequestAmount(transactionID, amount, currency ?? '');
+ isFirstUpdatedDistanceAmount.current = true;
+ }, [distance, rate, unit, transactionID, currency, isDistanceRequest]);
+
useEffect(() => {
if (!shouldCalculateDistanceAmount) {
return;
@@ -740,11 +755,12 @@ function MoneyRequestConfirmationList({
);
const focusTimeoutRef = useRef(null);
- const confirmButtonRef = useRef(null);
useFocusEffect(
useCallback(() => {
focusTimeoutRef.current = setTimeout(() => {
- confirmButtonRef.current?.focus();
+ InteractionManager.runAfterInteractions(() => {
+ blurActiveElement();
+ });
}, CONST.ANIMATED_TRANSITION);
return () => focusTimeoutRef.current && clearTimeout(focusTimeoutRef.current);
}, []),
@@ -781,7 +797,6 @@ function MoneyRequestConfirmationList({
/>
) : (
!state, false);
- const [isAttachmentInvalid, setIsAttachmentInvalid] = useState(false);
- const [invalidAttachmentPrompt, setInvalidAttachmentPrompt] = useState(translate('attachmentPicker.protectedPDFNotSupported'));
-
// A flag for showing the tags field
// TODO: remove the !isTypeInvoice from this condition after BE supports tags for invoices: https://github.com/Expensify/App/issues/41281
const shouldShowTags = useMemo(() => isPolicyExpenseChat && OptionsListUtils.hasEnabledTags(policyTagLists) && !isTypeInvoice, [isPolicyExpenseChat, isTypeInvoice, policyTagLists]);
@@ -547,16 +543,6 @@ function MoneyRequestConfirmationListFooter({
{
- setIsAttachmentInvalid(true);
- setInvalidAttachmentPrompt(translate('attachmentPicker.protectedPDFNotSupported'));
- }}
- onLoadError={() => {
- setInvalidAttachmentPrompt(translate('attachmentPicker.errorWhileSelectingCorruptedAttachment'));
- setIsAttachmentInvalid(true);
- }}
/>
) : (
@@ -591,7 +577,6 @@ function MoneyRequestConfirmationListFooter({
translate,
shouldDisplayReceipt,
resolvedReceiptImage,
- isAttachmentInvalid,
isThumbnail,
resolvedThumbnail,
receiptThumbnail,
@@ -602,10 +587,6 @@ function MoneyRequestConfirmationListFooter({
],
);
- const navigateBack = () => {
- Navigation.goBack(ROUTES.MONEY_REQUEST_CREATE_TAB_SCAN.getRoute(CONST.IOU.ACTION.CREATE, iouType, transactionID, reportID));
- };
-
return (
<>
{isTypeInvoice && (
@@ -655,15 +636,6 @@ function MoneyRequestConfirmationListFooter({
/>
)}
{shouldShowAllFields && supplementaryFields}
-
>
);
}
diff --git a/src/components/MoneyRequestHeader.tsx b/src/components/MoneyRequestHeader.tsx
index b30e9da50701..cd54c64a652f 100644
--- a/src/components/MoneyRequestHeader.tsx
+++ b/src/components/MoneyRequestHeader.tsx
@@ -9,7 +9,6 @@ import useThemeStyles from '@hooks/useThemeStyles';
import useWindowDimensions from '@hooks/useWindowDimensions';
import Navigation from '@libs/Navigation/Navigation';
import * as ReportActionsUtils from '@libs/ReportActionsUtils';
-import * as ReportUtils from '@libs/ReportUtils';
import * as TransactionUtils from '@libs/TransactionUtils';
import variables from '@styles/variables';
import * as IOU from '@userActions/IOU';
@@ -58,15 +57,11 @@ function MoneyRequestHeader({report, parentReportAction, policy, shouldUseNarrow
const theme = useTheme();
const {translate} = useLocalize();
const [shouldShowHoldMenu, setShouldShowHoldMenu] = useState(false);
- const isSelfDMTrackExpenseReport = ReportUtils.isTrackExpenseReport(report) && ReportUtils.isSelfDM(parentReport);
- const moneyRequestReport = !isSelfDMTrackExpenseReport ? parentReport : undefined;
- const isDraft = ReportUtils.isOpenExpenseReport(moneyRequestReport);
const isOnHold = TransactionUtils.isOnHold(transaction);
const isDuplicate = TransactionUtils.isDuplicate(transaction?.transactionID ?? '');
const {isSmallScreenWidth} = useWindowDimensions();
const hasAllPendingRTERViolations = TransactionUtils.allHavePendingRTERViolation([transaction?.transactionID ?? '-1']);
- const shouldShowMarkAsCashButton = isDraft && hasAllPendingRTERViolations;
const markAsCash = useCallback(() => {
TransactionActions.markAsCash(transaction?.transactionID ?? '-1', report.reportID);
@@ -142,7 +137,7 @@ function MoneyRequestHeader({report, parentReportAction, policy, shouldUseNarrow
shouldShowBackButton={shouldUseNarrowLayout}
onBackButtonPress={onBackButtonPress}
>
- {shouldShowMarkAsCashButton && !shouldUseNarrowLayout && (
+ {hasAllPendingRTERViolations && !shouldUseNarrowLayout && (
)}
- {shouldShowMarkAsCashButton && shouldUseNarrowLayout && (
+ {hasAllPendingRTERViolations && shouldUseNarrowLayout && (
{
- if (onLoadError) {
- onLoadError();
- }
if ('message' in error && typeof error.message === 'string' && error.message.match(/password/i) && onPassword) {
onPassword();
return;
}
+ if (onLoadError) {
+ onLoadError();
+ }
setFailedToLoad(true);
}}
+ onLoadComplete={() => {
+ if (!onLoadSuccess) {
+ return;
+ }
+ onLoadSuccess();
+ }}
/>
)}
{failedToLoad && }
diff --git a/src/components/PDFThumbnail/index.tsx b/src/components/PDFThumbnail/index.tsx
index 8e79c027cf03..f064229f0739 100644
--- a/src/components/PDFThumbnail/index.tsx
+++ b/src/components/PDFThumbnail/index.tsx
@@ -12,7 +12,7 @@ if (!pdfjs.GlobalWorkerOptions.workerSrc) {
pdfjs.GlobalWorkerOptions.workerSrc = URL.createObjectURL(new Blob([pdfWorkerSource], {type: 'text/javascript'}));
}
-function PDFThumbnail({previewSourceURL, style, isAuthTokenRequired = false, enabled = true, onPassword, onLoadError}: PDFThumbnailProps) {
+function PDFThumbnail({previewSourceURL, style, isAuthTokenRequired = false, enabled = true, onPassword, onLoadError, onLoadSuccess}: PDFThumbnailProps) {
const styles = useThemeStyles();
const [failedToLoad, setFailedToLoad] = useState(false);
@@ -30,6 +30,12 @@ function PDFThumbnail({previewSourceURL, style, isAuthTokenRequired = false, ena
onLoad={() => {
setFailedToLoad(false);
}}
+ onLoadSuccess={() => {
+ if (!onLoadSuccess) {
+ return;
+ }
+ onLoadSuccess();
+ }}
onLoadError={() => {
if (onLoadError) {
onLoadError();
@@ -43,7 +49,7 @@ function PDFThumbnail({previewSourceURL, style, isAuthTokenRequired = false, ena
),
- [isAuthTokenRequired, previewSourceURL, onPassword, onLoadError],
+ [isAuthTokenRequired, previewSourceURL, onPassword, onLoadError, onLoadSuccess],
);
return (
diff --git a/src/components/PDFThumbnail/types.ts b/src/components/PDFThumbnail/types.ts
index 349669ecc33e..3d79e7c026d2 100644
--- a/src/components/PDFThumbnail/types.ts
+++ b/src/components/PDFThumbnail/types.ts
@@ -18,6 +18,9 @@ type PDFThumbnailProps = {
/** Callback to call if PDF can't be loaded(corrupted) */
onLoadError?: () => void;
+
+ /** Callback to call if PDF is loaded */
+ onLoadSuccess?: () => void;
};
export default PDFThumbnailProps;
diff --git a/src/components/PopoverMenu.tsx b/src/components/PopoverMenu.tsx
index be7540a7534b..cb7d75a0ba8b 100644
--- a/src/components/PopoverMenu.tsx
+++ b/src/components/PopoverMenu.tsx
@@ -110,7 +110,7 @@ function PopoverMenu({
const [currentMenuItems, setCurrentMenuItems] = useState(menuItems);
const currentMenuItemsFocusedIndex = currentMenuItems?.findIndex((option) => option.isSelected);
- const [enteredSubMenuIndexes, setEnteredSubMenuIndexes] = useState(CONST.EMPTY_ARRAY);
+ const [enteredSubMenuIndexes, setEnteredSubMenuIndexes] = useState([]);
const [focusedIndex, setFocusedIndex] = useArrowKeyFocusManager({initialFocusedIndex: currentMenuItemsFocusedIndex, maxIndex: currentMenuItems.length - 1, isActive: isVisible});
@@ -158,7 +158,7 @@ function PopoverMenu({
onPress={() => {
setCurrentMenuItems(previousMenuItems);
setFocusedIndex(-1);
- setEnteredSubMenuIndexes((prevState) => prevState.slice(0, -1));
+ enteredSubMenuIndexes.splice(-1);
}}
/>
);
@@ -195,7 +195,7 @@ function PopoverMenu({
if (menuItems.length === 0) {
return;
}
- setEnteredSubMenuIndexes(CONST.EMPTY_ARRAY);
+ setEnteredSubMenuIndexes([]);
setCurrentMenuItems(menuItems);
}, [menuItems]);
@@ -206,7 +206,7 @@ function PopoverMenu({
anchorAlignment={anchorAlignment}
onClose={() => {
setCurrentMenuItems(menuItems);
- setEnteredSubMenuIndexes(CONST.EMPTY_ARRAY);
+ setEnteredSubMenuIndexes([]);
onClose();
}}
isVisible={isVisible}
diff --git a/src/components/ProcessMoneyReportHoldMenu.tsx b/src/components/ProcessMoneyReportHoldMenu.tsx
index 872464d8a5b0..4afa7aa4972c 100644
--- a/src/components/ProcessMoneyReportHoldMenu.tsx
+++ b/src/components/ProcessMoneyReportHoldMenu.tsx
@@ -1,6 +1,7 @@
import React, {useMemo} from 'react';
import type {OnyxEntry} from 'react-native-onyx';
import useLocalize from '@hooks/useLocalize';
+import useResponsiveLayout from '@hooks/useResponsiveLayout';
import Navigation from '@libs/Navigation/Navigation';
import {isLinkedTransactionHeld} from '@libs/ReportActionsUtils';
import * as IOU from '@userActions/IOU';
@@ -20,9 +21,6 @@ type ProcessMoneyReportHoldMenuProps = {
/** Full amount of expense report to pay */
fullAmount: string;
- /** Is the window width narrow, like on a mobile device? */
- isSmallScreenWidth: boolean;
-
/** Whether modal is visible */
isVisible: boolean;
@@ -49,7 +47,6 @@ function ProcessMoneyReportHoldMenu({
requestType,
nonHeldAmount,
fullAmount,
- isSmallScreenWidth = false,
onClose,
isVisible,
paymentType,
@@ -59,6 +56,7 @@ function ProcessMoneyReportHoldMenu({
}: ProcessMoneyReportHoldMenuProps) {
const {translate} = useLocalize();
const isApprove = requestType === CONST.IOU.REPORT_ACTION_TYPE.APPROVE;
+ const {isSmallScreenWidth} = useResponsiveLayout();
const onSubmit = (full: boolean) => {
if (isApprove) {
diff --git a/src/components/ProfilingToolMenu/BaseProfilingToolMenu.tsx b/src/components/ProfilingToolMenu/BaseProfilingToolMenu.tsx
index 5593ad627e92..13f7924fbab7 100644
--- a/src/components/ProfilingToolMenu/BaseProfilingToolMenu.tsx
+++ b/src/components/ProfilingToolMenu/BaseProfilingToolMenu.tsx
@@ -14,6 +14,7 @@ import useThemeStyles from '@hooks/useThemeStyles';
import toggleProfileTool from '@libs/actions/ProfilingTool';
import getPlatform from '@libs/getPlatform';
import Log from '@libs/Log';
+import {Memoize} from '@libs/memoize';
import CONFIG from '@src/CONFIG';
import CONST from '@src/CONST';
import ONYXKEYS from '@src/ONYXKEYS';
@@ -53,6 +54,7 @@ function BaseProfilingToolMenu({isProfilingInProgress = false, pathToBeUsed, dis
const [sharePath, setSharePath] = useState('');
const [totalMemory, setTotalMemory] = useState(0);
const [usedMemory, setUsedMemory] = useState(0);
+ const [memoizeStats, setMemoizeStats] = useState>();
const {translate} = useLocalize();
// eslint-disable-next-line @lwc/lwc/no-async-await
@@ -64,11 +66,13 @@ function BaseProfilingToolMenu({isProfilingInProgress = false, pathToBeUsed, dis
const amountOfUsedMemory = await DeviceInfo.getUsedMemory();
setTotalMemory(amountOfTotalMemory);
setUsedMemory(amountOfUsedMemory);
+ setMemoizeStats(Memoize.stopMonitoring());
}, []);
const onToggleProfiling = useCallback(() => {
const shouldProfiling = !isProfilingInProgress;
if (shouldProfiling) {
+ Memoize.startMonitoring();
startProfiling();
} else {
stop();
@@ -87,8 +91,9 @@ function BaseProfilingToolMenu({isProfilingInProgress = false, pathToBeUsed, dis
platform: getPlatform(),
totalMemory: formatBytes(totalMemory, 2),
usedMemory: formatBytes(usedMemory, 2),
+ memoizeStats,
}),
- [totalMemory, usedMemory],
+ [memoizeStats, totalMemory, usedMemory],
);
useEffect(() => {
diff --git a/src/components/PromotedActionsBar.tsx b/src/components/PromotedActionsBar.tsx
index 1aefe941011b..e3c795045048 100644
--- a/src/components/PromotedActionsBar.tsx
+++ b/src/components/PromotedActionsBar.tsx
@@ -27,7 +27,7 @@ type PromotedAction = {
type BasePromotedActions = typeof CONST.PROMOTED_ACTIONS.PIN | typeof CONST.PROMOTED_ACTIONS.SHARE | typeof CONST.PROMOTED_ACTIONS.JOIN;
type PromotedActionsType = Record PromotedAction> & {
- message: (params: {accountID?: number; login?: string}) => PromotedAction;
+ message: (params: {reportID?: string; accountID?: number; login?: string}) => PromotedAction;
} & {
hold: (params: {isTextHold: boolean; reportAction: ReportAction | undefined}) => PromotedAction;
};
@@ -50,11 +50,16 @@ const PromotedActions = {
ReportActions.joinRoom(report);
}),
}),
- message: ({accountID, login}) => ({
+ message: ({reportID, accountID, login}) => ({
key: CONST.PROMOTED_ACTIONS.MESSAGE,
icon: Expensicons.CommentBubbles,
text: Localize.translateLocal('common.message'),
onSelected: () => {
+ if (reportID) {
+ Navigation.dismissModal(reportID);
+ return;
+ }
+
// The accountID might be optimistic, so we should use the login if we have it
if (login) {
ReportActions.navigateToAndOpenReport([login]);
diff --git a/src/components/QRCode.tsx b/src/components/QRCode.tsx
index 3accb19acfaf..e949049cb942 100644
--- a/src/components/QRCode.tsx
+++ b/src/components/QRCode.tsx
@@ -1,7 +1,7 @@
import React from 'react';
import type {ImageSourcePropType} from 'react-native';
import QRCodeLibrary from 'react-native-qrcode-svg';
-import type {Svg} from 'react-native-svg';
+import type {Svg, SvgProps} from 'react-native-svg';
import useTheme from '@hooks/useTheme';
import CONST from '@src/CONST';
@@ -19,6 +19,22 @@ type QRCodeProps = {
*/
logo?: ImageSourcePropType;
+ /**
+ * If the logo to be displayed in the middle of the QR code is an SVG, then this prop needs to be used
+ * instead of standard `logo`.
+ */
+ svgLogo?: React.FC;
+
+ /**
+ * Background color to be used for logo.
+ */
+ logoBackgroundColor?: string;
+
+ /**
+ * Fill color to be used for logos of type SVG.
+ */
+ svgLogoFillColor?: string;
+
/** The size ratio of logo to QR code */
logoRatio?: QRCodeLogoRatio;
@@ -35,21 +51,36 @@ type QRCodeProps = {
backgroundColor?: string;
/**
- * Function to retrieve the internal component ref and be able to call it's
+ * Function to retrieve the internal component ref and be able to call its
* methods
*/
getRef?: (ref: Svg) => Svg;
};
-function QRCode({url, logo, getRef, size = 120, color, backgroundColor, logoRatio = CONST.QR.DEFAULT_LOGO_SIZE_RATIO, logoMarginRatio = CONST.QR.DEFAULT_LOGO_MARGIN_RATIO}: QRCodeProps) {
+function QRCode({
+ url,
+ logo,
+ svgLogo,
+ svgLogoFillColor,
+ logoBackgroundColor,
+ getRef,
+ size = 120,
+ color,
+ backgroundColor,
+ logoRatio = CONST.QR.DEFAULT_LOGO_SIZE_RATIO,
+ logoMarginRatio = CONST.QR.DEFAULT_LOGO_MARGIN_RATIO,
+}: QRCodeProps) {
const theme = useTheme();
+
return (
) {
+function QRShare({url, title, subtitle, logo, svgLogo, svgLogoFillColor, logoBackgroundColor, logoRatio, logoMarginRatio}: QRShareProps, ref: ForwardedRef) {
const styles = useThemeStyles();
const theme = useTheme();
+ const {isSmallScreenWidth} = useResponsiveLayout();
+ const {windowWidth} = useWindowDimensions();
+ const qrCodeContainerWidth = isSmallScreenWidth ? windowWidth : variables.sideBarWidth;
- const [qrCodeSize, setQrCodeSize] = useState();
+ const [qrCodeSize, setQrCodeSize] = useState(qrCodeContainerWidth - styles.ph5.paddingHorizontal * 2 - variables.qrShareHorizontalPadding * 2);
const svgRef = useRef();
useImperativeHandle(
@@ -48,6 +53,9 @@ function QRShare({url, title, subtitle, logo, logoRatio, logoMarginRatio}: QRSha
(svgRef.current = svg)}
url={url}
+ svgLogo={svgLogo}
+ svgLogoFillColor={svgLogoFillColor}
+ logoBackgroundColor={logoBackgroundColor}
logo={logo}
size={qrCodeSize}
logoRatio={logoRatio}
diff --git a/src/components/QRShare/types.ts b/src/components/QRShare/types.ts
index db9afdf73c2a..8f086e19a51f 100644
--- a/src/components/QRShare/types.ts
+++ b/src/components/QRShare/types.ts
@@ -1,5 +1,6 @@
+import type React from 'react';
import type {ImageSourcePropType} from 'react-native';
-import type {Svg} from 'react-native-svg';
+import type {Svg, SvgProps} from 'react-native-svg';
import type {QRCodeLogoMarginRatio, QRCodeLogoRatio} from '@components/QRCode';
type QRShareProps = {
@@ -18,11 +19,27 @@ type QRShareProps = {
* */
subtitle?: string;
+ /**
+ * If the logo to be displayed in the middle of the QR code is an SVG, then this prop needs to be used
+ * instead of standard `logo`
+ */
+ svgLogo?: React.FC;
+
/**
* The logo which will be display in the middle of the QR code
*/
logo?: ImageSourcePropType;
+ /**
+ * Background color to be used for logo.
+ */
+ logoBackgroundColor?: string;
+
+ /**
+ * Fill color to be used for logos of type SVG
+ */
+ svgLogoFillColor?: string;
+
/**
* The size ratio of logo to QR code
*/
diff --git a/src/components/ReportActionItem/MoneyReportView.tsx b/src/components/ReportActionItem/MoneyReportView.tsx
index 30cd52135397..7c2e29bd983d 100644
--- a/src/components/ReportActionItem/MoneyReportView.tsx
+++ b/src/components/ReportActionItem/MoneyReportView.tsx
@@ -2,6 +2,7 @@ import {Str} from 'expensify-common';
import React, {useMemo} from 'react';
import type {StyleProp, TextStyle} from 'react-native';
import {View} from 'react-native';
+import {useOnyx} from 'react-native-onyx';
import type {OnyxEntry} from 'react-native-onyx';
import Icon from '@components/Icon';
import * as Expensicons from '@components/Icon/Expensicons';
@@ -19,6 +20,7 @@ import * as ReportUtils from '@libs/ReportUtils';
import AnimatedEmptyStateBackground from '@pages/home/report/AnimatedEmptyStateBackground';
import variables from '@styles/variables';
import * as reportActions from '@src/libs/actions/Report';
+import ONYXKEYS from '@src/ONYXKEYS';
import ROUTES from '@src/ROUTES';
import type {Policy, PolicyReportField, Report} from '@src/types/onyx';
@@ -62,6 +64,8 @@ function MoneyReportView({report, policy, isCombinedReport = false, shouldShowTo
StyleUtils.getColorStyle(theme.textSupporting),
];
+ const [violations] = useOnyx(`${ONYXKEYS.COLLECTION.REPORT_VIOLATIONS}${report.reportID}`);
+
const sortedPolicyReportFields = useMemo((): PolicyReportField[] => {
const fields = ReportUtils.getAvailableReportFields(report, Object.values(policy?.fieldList ?? {}));
return fields.sort(({orderWeight: firstOrderWeight}, {orderWeight: secondOrderWeight}) => firstOrderWeight - secondOrderWeight);
@@ -72,10 +76,6 @@ function MoneyReportView({report, policy, isCombinedReport = false, shouldShowTo
const shouldShowReportField =
!ReportUtils.isClosedExpenseReportWithNoExpenses(report) && ReportUtils.isPaidGroupPolicyExpenseReport(report) && (!isCombinedReport || !isOnlyTitleFieldEnabled);
- if (!shouldShowReportField && !shouldShowBreakdown && !shouldShowTotal) {
- return null;
- }
-
return (
<>
@@ -83,6 +83,7 @@ function MoneyReportView({report, policy, isCombinedReport = false, shouldShowTo
{!ReportUtils.isClosedExpenseReportWithNoExpenses(report) && (
<>
{ReportUtils.isPaidGroupPolicyExpenseReport(report) &&
+ policy?.areReportFieldsEnabled &&
(!isCombinedReport || !isOnlyTitleFieldEnabled) &&
sortedPolicyReportFields.map((reportField) => {
if (ReportUtils.isReportFieldOfTypeTitle(reportField)) {
@@ -93,13 +94,16 @@ function MoneyReportView({report, policy, isCombinedReport = false, shouldShowTo
const isFieldDisabled = ReportUtils.isReportFieldDisabled(report, reportField, policy);
const fieldKey = ReportUtils.getReportFieldKey(reportField.fieldID);
+ const violation = ReportUtils.getFieldViolation(violations, reportField);
+ const violationTranslation = ReportUtils.getFieldViolationTranslation(reportField, violation);
+
return (
reportActions.clearReportFieldErrors(report.reportID, reportField)}
+ onClose={() => reportActions.clearReportFieldKeyErrors(report.reportID, fieldKey)}
>
{}}
hoverAndPressStyle={false}
titleWithTooltips={[]}
+ brickRoadIndicator={violation ? 'error' : undefined}
+ errorText={violationTranslation}
/>
);
@@ -191,10 +197,12 @@ function MoneyReportView({report, policy, isCombinedReport = false, shouldShowTo
>
)}
-
+ {(shouldShowReportField || shouldShowBreakdown || shouldShowTotal) && (
+
+ )}
>
);
}
diff --git a/src/components/ReportActionItem/MoneyRequestPreview/MoneyRequestPreviewContent.tsx b/src/components/ReportActionItem/MoneyRequestPreview/MoneyRequestPreviewContent.tsx
index 6d37396c8e59..45174c3316be 100644
--- a/src/components/ReportActionItem/MoneyRequestPreview/MoneyRequestPreviewContent.tsx
+++ b/src/components/ReportActionItem/MoneyRequestPreview/MoneyRequestPreviewContent.tsx
@@ -296,7 +296,7 @@ function MoneyRequestPreviewContent({
} else if ('reimbursable' in comparisonResult.change) {
Navigation.navigate(ROUTES.TRANSACTION_DUPLICATE_REVIEW_REIMBURSABLE_PAGE.getRoute(route.params?.threadReportID));
} else {
- // Navigation to confirm screen will be done in seperate PR
+ Navigation.navigate(ROUTES.TRANSACTION_DUPLICATE_CONFIRMATION_PAGE.getRoute(route.params?.threadReportID));
}
};
diff --git a/src/components/ReportActionItem/MoneyRequestView.tsx b/src/components/ReportActionItem/MoneyRequestView.tsx
index 635d7e05ecf4..6d9b8f75fcc9 100644
--- a/src/components/ReportActionItem/MoneyRequestView.tsx
+++ b/src/components/ReportActionItem/MoneyRequestView.tsx
@@ -78,10 +78,16 @@ type MoneyRequestViewOnyxPropsWithoutTransaction = {
type MoneyRequestViewPropsWithoutTransaction = MoneyRequestViewOnyxPropsWithoutTransaction & {
/** The report currently being looked at */
- report: OnyxTypes.Report;
+ report: OnyxEntry;
/** Whether we should display the animated banner above the component */
shouldShowAnimatedBackground: boolean;
+
+ /** Whether we should show Money Request with disabled all fields */
+ readonly?: boolean;
+
+ /** Updated transaction to show in duplicate transaction flow */
+ updatedTransaction?: OnyxEntry;
};
type MoneyRequestViewProps = MoneyRequestViewTransactionOnyxProps & MoneyRequestViewPropsWithoutTransaction;
@@ -109,6 +115,8 @@ function MoneyRequestView({
transactionViolations,
shouldShowAnimatedBackground,
distanceRates,
+ readonly = false,
+ updatedTransaction,
}: MoneyRequestViewProps) {
const theme = useTheme();
const styles = useThemeStyles();
@@ -120,7 +128,7 @@ function MoneyRequestView({
selector: (chatReportValue) => chatReportValue && {reportID: chatReportValue.reportID, errorFields: chatReportValue.errorFields},
});
- const parentReportAction = parentReportActions?.[report.parentReportActionID ?? '-1'];
+ const parentReportAction = parentReportActions?.[report?.parentReportActionID ?? '-1'];
const isTrackExpense = ReportUtils.isTrackExpenseReport(report);
const {canUseViolations, canUseP2PDistanceRequests} = usePermissions(isTrackExpense ? CONST.IOU.TYPE.TRACK : undefined);
const moneyRequestReport = parentReport;
@@ -148,14 +156,17 @@ function MoneyRequestView({
const isInvoice = ReportUtils.isInvoiceReport(moneyRequestReport);
const isPaidReport = ReportActionsUtils.isPayAction(parentReportAction);
const taxRates = policy?.taxRates;
- const formattedTaxAmount = CurrencyUtils.convertToDisplayString(transactionTaxAmount, transactionCurrency);
+
+ const formattedTaxAmount = updatedTransaction?.taxAmount
+ ? CurrencyUtils.convertToDisplayString(updatedTransaction?.taxAmount, transactionCurrency)
+ : CurrencyUtils.convertToDisplayString(transactionTaxAmount, transactionCurrency);
const taxRatesDescription = taxRates?.name;
- const taxRateTitle = TransactionUtils.getTaxName(policy, transaction);
+ const taxRateTitle = updatedTransaction ? TransactionUtils.getTaxName(policy, updatedTransaction) : TransactionUtils.getTaxName(policy, transaction);
// Flags for allowing or disallowing editing an expense
const isSettled = ReportUtils.isSettled(moneyRequestReport?.reportID);
- const isCancelled = moneyRequestReport && moneyRequestReport.isCancelledIOU;
+ const isCancelled = moneyRequestReport && moneyRequestReport?.isCancelledIOU;
// Used for non-restricted fields such as: description, category, tag, billable, etc.
const canEdit = ReportActionsUtils.isMoneyRequestAction(parentReportAction) && ReportUtils.canEditMoneyRequest(parentReportAction);
@@ -187,7 +198,7 @@ function MoneyRequestView({
// transactionTag can be an empty string
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
const shouldShowTag = isPolicyExpenseChat && (transactionTag || OptionsListUtils.hasEnabledTags(policyTagLists));
- const shouldShowBillable = isPolicyExpenseChat && (!!transactionBillable || !(policy?.disabledFields?.defaultBillable ?? true));
+ const shouldShowBillable = isPolicyExpenseChat && (!!transactionBillable || !(policy?.disabledFields?.defaultBillable ?? true) || !!updatedTransaction?.billable);
const shouldShowTax = isTaxTrackingEnabled(isPolicyExpenseChat, policy, isDistanceRequest);
const tripID = ReportUtils.getTripIDFromTransactionParentReport(parentReport);
@@ -221,13 +232,20 @@ function MoneyRequestView({
amountTitle = translate('iou.receiptStatusTitle');
}
+ const updatedTransactionDescription = useMemo(() => {
+ if (!updatedTransaction) {
+ return undefined;
+ }
+ return TransactionUtils.getDescription(updatedTransaction ?? null);
+ }, [updatedTransaction]);
+
const saveBillable = useCallback(
(newBillable: boolean) => {
// If the value hasn't changed, don't request to save changes on the server and just close the modal
if (newBillable === TransactionUtils.getBillable(transaction)) {
return;
}
- IOU.updateMoneyRequestBillable(transaction?.transactionID ?? '-1', report?.reportID, newBillable, policy, policyTagList, policyCategories);
+ IOU.updateMoneyRequestBillable(transaction?.transactionID ?? '-1', report?.reportID ?? '-1', newBillable, policy, policyTagList, policyCategories);
},
[transaction, report, policy, policyTagList, policyCategories],
);
@@ -257,7 +275,6 @@ function MoneyRequestView({
if (hasReceipt) {
receiptURIs = ReceiptUtils.getThumbnailAndImageURIs(transaction);
}
-
const pendingAction = transaction?.pendingAction;
const getPendingFieldAction = (fieldPath: TransactionPendingFieldsKey) => transaction?.pendingFields?.[fieldPath] ?? pendingAction;
@@ -282,6 +299,10 @@ function MoneyRequestView({
const {isError, translationPath} = fieldChecks[field] ?? {};
+ if (readonly) {
+ return '';
+ }
+
// Return form errors if there are any
if (hasErrors && isError && translationPath) {
return translate(translationPath);
@@ -295,7 +316,7 @@ function MoneyRequestView({
return '';
},
- [transactionAmount, isSettled, isCancelled, isPolicyExpenseChat, isEmptyMerchant, transactionDate, hasErrors, hasViolations, translate, getViolationsForField],
+ [transactionAmount, isSettled, isCancelled, isPolicyExpenseChat, isEmptyMerchant, transactionDate, readonly, hasErrors, hasViolations, translate, getViolationsForField],
);
const distanceRequestFields = canUseP2PDistanceRequests ? (
@@ -307,7 +328,9 @@ function MoneyRequestView({
interactive={canEditDistance}
shouldShowRightIcon={canEditDistance}
titleStyle={styles.flex1}
- onPress={() => Navigation.navigate(ROUTES.MONEY_REQUEST_STEP_DISTANCE.getRoute(CONST.IOU.ACTION.EDIT, iouType, transaction?.transactionID ?? '-1', report.reportID))}
+ onPress={() =>
+ Navigation.navigate(ROUTES.MONEY_REQUEST_STEP_DISTANCE.getRoute(CONST.IOU.ACTION.EDIT, iouType, transaction?.transactionID ?? '-1', report?.reportID ?? '-1'))
+ }
/>
{/* TODO: correct the pending field action https://github.com/Expensify/App/issues/36987 */}
@@ -332,7 +355,7 @@ function MoneyRequestView({
interactive={canEditDistance}
shouldShowRightIcon={canEditDistance}
titleStyle={styles.flex1}
- onPress={() => Navigation.navigate(ROUTES.MONEY_REQUEST_STEP_DISTANCE.getRoute(CONST.IOU.ACTION.EDIT, iouType, transaction?.transactionID ?? '-1', report.reportID))}
+ onPress={() => Navigation.navigate(ROUTES.MONEY_REQUEST_STEP_DISTANCE.getRoute(CONST.IOU.ACTION.EDIT, iouType, transaction?.transactionID ?? '-1', report?.reportID ?? '-1'))}
/>
);
@@ -368,7 +391,7 @@ function MoneyRequestView({
tagListName: name,
},
PolicyUtils.hasDependentTags(policy, policyTagList),
- TransactionUtils.getTagForDisplay(transaction, index),
+ TransactionUtils.getTagForDisplay(updatedTransaction ?? transaction, index),
);
return (
- Navigation.navigate(ROUTES.MONEY_REQUEST_STEP_TAG.getRoute(CONST.IOU.ACTION.EDIT, iouType, orderWeight, transaction?.transactionID ?? '', report.reportID))
+ Navigation.navigate(ROUTES.MONEY_REQUEST_STEP_TAG.getRoute(CONST.IOU.ACTION.EDIT, iouType, orderWeight, transaction?.transactionID ?? '', report?.reportID ?? '-1'))
}
brickRoadIndicator={tagError ? CONST.BRICK_ROAD_INDICATOR_STATUS.ERROR : undefined}
errorText={tagError}
@@ -410,6 +433,14 @@ function MoneyRequestView({
if (!transaction?.transactionID) {
return;
}
+
+ const isCreateChatErrored = !!report?.errorFields?.createChat;
+ if ((isCreateChatErrored || !!report?.isOptimisticReport) && parentReportAction) {
+ const urlToNavigateBack = IOU.cleanUpMoneyRequest(transaction.transactionID, parentReportAction, true);
+ Navigation.goBack(urlToNavigateBack);
+ return;
+ }
+
if (transaction.pendingAction === CONST.RED_BRICK_ROAD_PENDING_ACTION.ADD) {
if (chatReport?.reportID && ReportUtils.getAddWorkspaceRoomOrChatReportErrors(chatReport)) {
Report.navigateToConciergeChatAndDeleteReport(chatReport.reportID, true, true);
@@ -420,7 +451,7 @@ function MoneyRequestView({
}
}
Transaction.clearError(transaction.transactionID);
- ReportActions.clearAllRelatedReportActionErrors(report.reportID, parentReportAction);
+ ReportActions.clearAllRelatedReportActionErrors(report?.reportID ?? '-1', parentReportAction);
}}
>
{hasReceipt && (
@@ -442,14 +473,14 @@ function MoneyRequestView({
{shouldShowReceiptEmptyState && (
Navigation.navigate(
ROUTES.MONEY_REQUEST_STEP_SCAN.getRoute(
CONST.IOU.ACTION.EDIT,
iouType,
transaction?.transactionID ?? '-1',
- report.reportID,
+ report?.reportID ?? '-1',
Navigation.getActiveRouteWithoutParams(),
),
)
@@ -465,9 +496,11 @@ function MoneyRequestView({
titleIcon={Expensicons.Checkmark}
description={amountDescription}
titleStyle={styles.textHeadlineH2}
- interactive={canEditAmount}
+ interactive={canEditAmount && !readonly}
shouldShowRightIcon={canEditAmount}
- onPress={() => Navigation.navigate(ROUTES.MONEY_REQUEST_STEP_AMOUNT.getRoute(CONST.IOU.ACTION.EDIT, iouType, transaction?.transactionID ?? '-1', report.reportID))}
+ onPress={() =>
+ Navigation.navigate(ROUTES.MONEY_REQUEST_STEP_AMOUNT.getRoute(CONST.IOU.ACTION.EDIT, iouType, transaction?.transactionID ?? '-1', report?.reportID ?? '-1'))
+ }
brickRoadIndicator={getErrorForField('amount') ? CONST.BRICK_ROAD_INDICATOR_STATUS.ERROR : undefined}
errorText={getErrorForField('amount')}
/>
@@ -476,12 +509,12 @@ function MoneyRequestView({
- Navigation.navigate(ROUTES.MONEY_REQUEST_STEP_DESCRIPTION.getRoute(CONST.IOU.ACTION.EDIT, iouType, transaction?.transactionID ?? '-1', report.reportID))
+ Navigation.navigate(ROUTES.MONEY_REQUEST_STEP_DESCRIPTION.getRoute(CONST.IOU.ACTION.EDIT, iouType, transaction?.transactionID ?? '-1', report?.reportID ?? '-1'))
}
wrapperStyle={[styles.pv2, styles.taskDescriptionMenuItem]}
brickRoadIndicator={getErrorForField('comment') ? CONST.BRICK_ROAD_INDICATOR_STATUS.ERROR : undefined}
@@ -495,12 +528,12 @@ function MoneyRequestView({
- Navigation.navigate(ROUTES.MONEY_REQUEST_STEP_MERCHANT.getRoute(CONST.IOU.ACTION.EDIT, iouType, transaction?.transactionID ?? '-1', report.reportID))
+ Navigation.navigate(ROUTES.MONEY_REQUEST_STEP_MERCHANT.getRoute(CONST.IOU.ACTION.EDIT, iouType, transaction?.transactionID ?? '-1', report?.reportID ?? '-1'))
}
wrapperStyle={[styles.taskDescriptionMenuItem]}
brickRoadIndicator={getErrorForField('merchant') ? CONST.BRICK_ROAD_INDICATOR_STATUS.ERROR : undefined}
@@ -513,10 +546,12 @@ function MoneyRequestView({
Navigation.navigate(ROUTES.MONEY_REQUEST_STEP_DATE.getRoute(CONST.IOU.ACTION.EDIT, iouType, transaction?.transactionID ?? '-1', report.reportID))}
+ onPress={() =>
+ Navigation.navigate(ROUTES.MONEY_REQUEST_STEP_DATE.getRoute(CONST.IOU.ACTION.EDIT, iouType, transaction?.transactionID ?? '-1', report?.reportID ?? '-1' ?? '-1'))
+ }
brickRoadIndicator={getErrorForField('date') ? CONST.BRICK_ROAD_INDICATOR_STATUS.ERROR : undefined}
errorText={getErrorForField('date')}
/>
@@ -525,12 +560,12 @@ function MoneyRequestView({
- Navigation.navigate(ROUTES.MONEY_REQUEST_STEP_CATEGORY.getRoute(CONST.IOU.ACTION.EDIT, iouType, transaction?.transactionID ?? '-1', report.reportID))
+ Navigation.navigate(ROUTES.MONEY_REQUEST_STEP_CATEGORY.getRoute(CONST.IOU.ACTION.EDIT, iouType, transaction?.transactionID ?? '-1', report?.reportID ?? '-1'))
}
brickRoadIndicator={getErrorForField('category') ? CONST.BRICK_ROAD_INDICATOR_STATUS.ERROR : undefined}
errorText={getErrorForField('category')}
@@ -553,11 +588,11 @@ function MoneyRequestView({
- Navigation.navigate(ROUTES.MONEY_REQUEST_STEP_TAX_RATE.getRoute(CONST.IOU.ACTION.EDIT, iouType, transaction?.transactionID ?? '-1', report.reportID))
+ Navigation.navigate(ROUTES.MONEY_REQUEST_STEP_TAX_RATE.getRoute(CONST.IOU.ACTION.EDIT, iouType, transaction?.transactionID ?? '-1', report?.reportID ?? '-1'))
}
brickRoadIndicator={getErrorForField('tax') ? CONST.BRICK_ROAD_INDICATOR_STATUS.ERROR : undefined}
errorText={getErrorForField('tax')}
@@ -569,11 +604,13 @@ function MoneyRequestView({
- Navigation.navigate(ROUTES.MONEY_REQUEST_STEP_TAX_AMOUNT.getRoute(CONST.IOU.ACTION.EDIT, iouType, transaction?.transactionID ?? '-1', report.reportID))
+ Navigation.navigate(
+ ROUTES.MONEY_REQUEST_STEP_TAX_AMOUNT.getRoute(CONST.IOU.ACTION.EDIT, iouType, transaction?.transactionID ?? '-1', report?.reportID ?? '-1'),
+ )
}
/>
@@ -602,9 +639,9 @@ function MoneyRequestView({
)}
@@ -617,30 +654,30 @@ MoneyRequestView.displayName = 'MoneyRequestView';
export default withOnyx({
policy: {
- key: ({report}) => `${ONYXKEYS.COLLECTION.POLICY}${report.policyID}`,
+ key: ({report}) => `${ONYXKEYS.COLLECTION.POLICY}${report?.policyID ?? ''}`,
},
policyCategories: {
- key: ({report}) => `${ONYXKEYS.COLLECTION.POLICY_CATEGORIES}${report.policyID}`,
+ key: ({report}) => `${ONYXKEYS.COLLECTION.POLICY_CATEGORIES}${report?.policyID ?? ''}`,
},
policyTagList: {
- key: ({report}) => `${ONYXKEYS.COLLECTION.POLICY_TAGS}${report.policyID}`,
+ key: ({report}) => `${ONYXKEYS.COLLECTION.POLICY_TAGS}${report?.policyID ?? ''}`,
},
parentReport: {
- key: ({report}) => `${ONYXKEYS.COLLECTION.REPORT}${report.parentReportID}`,
+ key: ({report}) => `${ONYXKEYS.COLLECTION.REPORT}${report?.parentReportID ?? ''}`,
},
parentReportActions: {
- key: ({report}) => `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${report ? report.parentReportID : '-1'}`,
+ key: ({report}) => `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${report ? report?.parentReportID : '-1'}`,
canEvict: false,
},
distanceRates: {
- key: ({report}) => `${ONYXKEYS.COLLECTION.POLICY}${report.policyID}`,
+ key: ({report}) => `${ONYXKEYS.COLLECTION.POLICY}${report?.policyID}`,
selector: (policy: OnyxEntry) => DistanceRequestUtils.getMileageRates(policy, true),
},
})(
withOnyx({
transaction: {
key: ({report, parentReportActions}) => {
- const parentReportAction = parentReportActions?.[report.parentReportActionID ?? '-1'];
+ const parentReportAction = parentReportActions?.[report?.parentReportActionID ?? '-1'];
const originalMessage =
parentReportAction && ReportActionsUtils.isMoneyRequestAction(parentReportAction) ? ReportActionsUtils.getOriginalMessage(parentReportAction) : undefined;
const transactionID = originalMessage?.IOUTransactionID ?? -1;
@@ -649,7 +686,7 @@ export default withOnyx {
- const parentReportAction = parentReportActions?.[report.parentReportActionID ?? '-1'];
+ const parentReportAction = parentReportActions?.[report?.parentReportActionID ?? '-1'];
const originalMessage =
parentReportAction && ReportActionsUtils.isMoneyRequestAction(parentReportAction) ? ReportActionsUtils.getOriginalMessage(parentReportAction) : undefined;
const transactionID = originalMessage?.IOUTransactionID ?? -1;
diff --git a/src/components/ReportActionItem/ReportPreview.tsx b/src/components/ReportActionItem/ReportPreview.tsx
index 053f2774279e..7a527610422b 100644
--- a/src/components/ReportActionItem/ReportPreview.tsx
+++ b/src/components/ReportActionItem/ReportPreview.tsx
@@ -19,7 +19,6 @@ import useNetwork from '@hooks/useNetwork';
import usePermissions from '@hooks/usePermissions';
import useTheme from '@hooks/useTheme';
import useThemeStyles from '@hooks/useThemeStyles';
-import useWindowDimensions from '@hooks/useWindowDimensions';
import ControlSelection from '@libs/ControlSelection';
import * as CurrencyUtils from '@libs/CurrencyUtils';
import * as DeviceCapabilities from '@libs/DeviceCapabilities';
@@ -131,7 +130,6 @@ function ReportPreview({
const [requestType, setRequestType] = useState();
const [nonHeldAmount, fullAmount] = ReportUtils.getNonHeldAndFullAmount(iouReport, policy);
const hasOnlyHeldExpenses = ReportUtils.hasOnlyHeldExpenses(iouReport?.reportID ?? '');
- const {isSmallScreenWidth} = useWindowDimensions();
const [paymentType, setPaymentType] = useState();
const managerID = iouReport?.managerID ?? action.childManagerAccountID ?? 0;
@@ -157,6 +155,7 @@ function ReportPreview({
hasMissingSmartscanFields ||
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
(canUseViolations && (ReportUtils.hasViolations(iouReportID, transactionViolations) || ReportUtils.hasWarningTypeViolations(iouReportID, transactionViolations))) ||
+ (ReportUtils.isReportOwner(iouReport) && ReportUtils.hasReportViolations(iouReportID)) ||
ReportUtils.hasActionsWithErrors(iouReportID);
const lastThreeTransactionsWithReceipts = transactionsWithReceipts.slice(-3);
const lastThreeReceipts = lastThreeTransactionsWithReceipts.map((transaction) => ({...ReceiptUtils.getThumbnailAndImageURIs(transaction), transaction}));
@@ -341,7 +340,8 @@ function ReportPreview({
*/
const connectedIntegration = PolicyUtils.getConnectedIntegration(policy);
- const shouldShowExportIntegrationButton = !shouldShowPayButton && !shouldShowSubmitButton && connectedIntegration;
+ const isAdmin = policy?.role === CONST.POLICY.ROLE.ADMIN;
+ const shouldShowExportIntegrationButton = !shouldShowPayButton && !shouldShowSubmitButton && connectedIntegration && isAdmin;
return (
setIsHoldMenuVisible(false)}
isVisible={isHoldMenuVisible}
paymentType={paymentType}
diff --git a/src/components/RoomHeaderAvatars.tsx b/src/components/RoomHeaderAvatars.tsx
index ac3b9c4d1396..a1c7ace5f8f9 100644
--- a/src/components/RoomHeaderAvatars.tsx
+++ b/src/components/RoomHeaderAvatars.tsx
@@ -7,6 +7,7 @@ import CONST from '@src/CONST';
import ROUTES from '@src/ROUTES';
import type {Icon} from '@src/types/onyx/OnyxCommon';
import Avatar from './Avatar';
+import * as Expensicons from './Icon/Expensicons';
import PressableWithoutFocus from './Pressable/PressableWithoutFocus';
import Text from './Text';
@@ -41,6 +42,7 @@ function RoomHeaderAvatars({icons, reportID}: RoomHeaderAvatarsProps) {
onPress={() => navigateToAvatarPage(icons[0])}
accessibilityRole={CONST.ACCESSIBILITY_ROLE.IMAGEBUTTON}
accessibilityLabel={icons[0].name ?? ''}
+ disabled={icons[0].source === Expensicons.FallbackAvatar}
>
navigateToAvatarPage(icon)}
accessibilityRole={CONST.ACCESSIBILITY_ROLE.IMAGEBUTTON}
accessibilityLabel={icon.name ?? ''}
+ disabled={icon.source === Expensicons.FallbackAvatar}
>
void): DropdownOption {
+ return {
+ icon: Expensicons.Download,
+ text,
+ value: CONST.SEARCH.BULK_ACTION_TYPES.EXPORT,
+ shouldCloseModalOnSelect: true,
+ onSelected,
+ };
+}
+
+export default getDownloadOption;
diff --git a/src/components/Search/SearchContext.tsx b/src/components/Search/SearchContext.tsx
index 3911780d3965..367a03e081cd 100644
--- a/src/components/Search/SearchContext.tsx
+++ b/src/components/Search/SearchContext.tsx
@@ -6,7 +6,7 @@ const defaultSearchContext = {
currentSearchHash: -1,
selectedTransactionIDs: [],
setCurrentSearchHash: () => {},
- setSelectedTransactionIds: () => {},
+ setSelectedTransactionIDs: () => {},
};
const Context = React.createContext(defaultSearchContext);
@@ -27,7 +27,7 @@ function SearchContextProvider({children}: ChildrenProps) {
[searchContextData],
);
- const setSelectedTransactionIds = useCallback(
+ const setSelectedTransactionIDs = useCallback(
(selectedTransactionIDs: string[]) => {
setSearchContextData({
...searchContextData,
@@ -41,9 +41,9 @@ function SearchContextProvider({children}: ChildrenProps) {
() => ({
...searchContextData,
setCurrentSearchHash,
- setSelectedTransactionIds,
+ setSelectedTransactionIDs,
}),
- [searchContextData, setCurrentSearchHash, setSelectedTransactionIds],
+ [searchContextData, setCurrentSearchHash, setSelectedTransactionIDs],
);
return {children} ;
diff --git a/src/components/Search/SearchListWithHeader.tsx b/src/components/Search/SearchListWithHeader.tsx
index 283b68bf17af..bd4b843bbd60 100644
--- a/src/components/Search/SearchListWithHeader.tsx
+++ b/src/components/Search/SearchListWithHeader.tsx
@@ -1,6 +1,7 @@
import type {ForwardedRef} from 'react';
import React, {forwardRef, useCallback, useEffect, useMemo, useState} from 'react';
import ConfirmModal from '@components/ConfirmModal';
+import DecisionModal from '@components/DecisionModal';
import * as Expensicons from '@components/Icon/Expensicons';
import MenuItem from '@components/MenuItem';
import Modal from '@components/Modal';
@@ -11,7 +12,7 @@ import useWindowDimensions from '@hooks/useWindowDimensions';
import * as SearchActions from '@libs/actions/Search';
import * as SearchUtils from '@libs/SearchUtils';
import CONST from '@src/CONST';
-import type {SearchDataTypes, SearchQuery} from '@src/types/onyx/SearchResults';
+import type {SearchDataTypes, SearchQuery, SearchReport} from '@src/types/onyx/SearchResults';
import SearchPageHeader from './SearchPageHeader';
import type {SelectedTransactionInfo, SelectedTransactions} from './types';
@@ -25,20 +26,20 @@ type SearchListWithHeaderProps = Omit mapToTransactionItemWithSelectionInfo(tranaction, selectedItems)),
- isSelected: item.transactions.every((transaction) => !!selectedItems[transaction.keyForList]?.isSelected),
+ transactions: item.transactions?.map((transaction) => mapToTransactionItemWithSelectionInfo(transaction, selectedTransactions)),
+ isSelected: item.transactions.every((transaction) => !!selectedTransactions[transaction.keyForList]?.isSelected),
};
}
@@ -50,30 +51,44 @@ function SearchListWithHeader(
const {translate} = useLocalize();
const [isModalVisible, setIsModalVisible] = useState(false);
const [longPressedItem, setLongPressedItem] = useState(null);
- const [selectedItems, setSelectedItems] = useState({});
- const [selectedItemsToDelete, setSelectedItemsToDelete] = useState([]);
+ const [selectedTransactions, setSelectedTransactions] = useState({});
+ const [selectedTransactionsToDelete, setSelectedTransactionsToDelete] = useState([]);
const [deleteExpensesConfirmModalVisible, setDeleteExpensesConfirmModalVisible] = useState(false);
+ const [offlineModalVisible, setOfflineModalVisible] = useState(false);
+ const [downloadErrorModalVisible, setDownloadErrorModalVisible] = useState(false);
+
+ const selectedReports: Array = useMemo(() => {
+ if (searchType !== CONST.SEARCH.DATA_TYPES.REPORT) {
+ return [];
+ }
+
+ return data
+ .filter(
+ (item) => !SearchUtils.isTransactionListItemType(item) && item.reportID && item.transactions.every((transaction) => selectedTransactions[transaction.keyForList]?.isSelected),
+ )
+ .map((item) => item.reportID);
+ }, [selectedTransactions, data, searchType]);
const handleOnSelectDeleteOption = (itemsToDelete: string[]) => {
- setSelectedItemsToDelete(itemsToDelete);
+ setSelectedTransactionsToDelete(itemsToDelete);
setDeleteExpensesConfirmModalVisible(true);
};
const handleOnCancelConfirmModal = () => {
- setSelectedItemsToDelete([]);
+ setSelectedTransactionsToDelete([]);
setDeleteExpensesConfirmModalVisible(false);
};
- const clearSelectedItems = () => setSelectedItems({});
+ const clearSelectedItems = () => setSelectedTransactions({});
const handleDeleteExpenses = () => {
- if (selectedItemsToDelete.length === 0) {
+ if (selectedTransactionsToDelete.length === 0) {
return;
}
clearSelectedItems();
setDeleteExpensesConfirmModalVisible(false);
- SearchActions.deleteMoneyRequestOnSearch(hash, selectedItemsToDelete);
+ SearchActions.deleteMoneyRequestOnSearch(hash, selectedTransactionsToDelete);
};
useEffect(() => {
@@ -87,34 +102,34 @@ function SearchListWithHeader(
return;
}
- setSelectedItems((prev) => {
+ setSelectedTransactions((prev) => {
if (prev[item.keyForList]?.isSelected) {
const {[item.keyForList]: omittedTransaction, ...transactions} = prev;
return transactions;
}
- return {...prev, [item.keyForList]: {isSelected: true, canDelete: item.canDelete, action: item.action}};
+ return {...prev, [item.keyForList]: {isSelected: true, canDelete: item.canDelete, canHold: item.canHold, canUnhold: item.canUnhold, action: item.action}};
});
return;
}
- if (item.transactions.every((transaction) => selectedItems[transaction.keyForList]?.isSelected)) {
- const reducedSelectedItems: SelectedTransactions = {...selectedItems};
+ if (item.transactions.every((transaction) => selectedTransactions[transaction.keyForList]?.isSelected)) {
+ const reducedSelectedTransactions: SelectedTransactions = {...selectedTransactions};
item.transactions.forEach((transaction) => {
- delete reducedSelectedItems[transaction.keyForList];
+ delete reducedSelectedTransactions[transaction.keyForList];
});
- setSelectedItems(reducedSelectedItems);
+ setSelectedTransactions(reducedSelectedTransactions);
return;
}
- setSelectedItems({
- ...selectedItems,
+ setSelectedTransactions({
+ ...selectedTransactions,
...Object.fromEntries(item.transactions.map(mapTransactionItemToSelectedEntry)),
});
},
- [selectedItems],
+ [selectedTransactions],
);
const openBottomModal = (item: TransactionListItemType | ReportListItemType | null) => {
@@ -144,13 +159,13 @@ function SearchListWithHeader(
return;
}
- setSelectedItems({});
- }, [setSelectedItems, isMobileSelectionModeActive]);
+ setSelectedTransactions({});
+ }, [setSelectedTransactions, isMobileSelectionModeActive]);
const toggleAllTransactions = () => {
const areItemsOfReportType = searchType === CONST.SEARCH.DATA_TYPES.REPORT;
const flattenedItems = areItemsOfReportType ? (data as ReportListItemType[]).flatMap((item) => item.transactions) : data;
- const isAllSelected = flattenedItems.length === Object.keys(selectedItems).length;
+ const isAllSelected = flattenedItems.length === Object.keys(selectedTransactions).length;
if (isAllSelected) {
clearSelectedItems();
@@ -158,26 +173,29 @@ function SearchListWithHeader(
}
if (areItemsOfReportType) {
- setSelectedItems(Object.fromEntries((data as ReportListItemType[]).flatMap((item) => item.transactions.map(mapTransactionItemToSelectedEntry))));
+ setSelectedTransactions(Object.fromEntries((data as ReportListItemType[]).flatMap((item) => item.transactions.map(mapTransactionItemToSelectedEntry))));
return;
}
- setSelectedItems(Object.fromEntries((data as TransactionListItemType[]).map(mapTransactionItemToSelectedEntry)));
+ setSelectedTransactions(Object.fromEntries((data as TransactionListItemType[]).map(mapTransactionItemToSelectedEntry)));
};
- const sortedSelectedData = useMemo(() => data.map((item) => mapToItemWithSelectionInfo(item, selectedItems)), [data, selectedItems]);
+ const sortedSelectedData = useMemo(() => data.map((item) => mapToItemWithSelectionInfo(item, selectedTransactions)), [data, selectedTransactions]);
return (
<>
setOfflineModalVisible(true)}
+ setDownloadErrorModalOpen={() => setDownloadErrorModalVisible(true)}
/>
// eslint-disable-next-line react/jsx-props-no-spreading
@@ -195,12 +213,30 @@ function SearchListWithHeader(
isVisible={deleteExpensesConfirmModalVisible}
onConfirm={handleDeleteExpenses}
onCancel={handleOnCancelConfirmModal}
- title={translate('iou.deleteExpense', {count: selectedItemsToDelete.length})}
- prompt={translate('iou.deleteConfirmation', {count: selectedItemsToDelete.length})}
+ title={translate('iou.deleteExpense', {count: selectedTransactionsToDelete.length})}
+ prompt={translate('iou.deleteConfirmation', {count: selectedTransactionsToDelete.length})}
confirmText={translate('common.delete')}
cancelText={translate('common.cancel')}
danger
/>
+ setOfflineModalVisible(false)}
+ secondOptionText={translate('common.buttonConfirm')}
+ isVisible={offlineModalVisible}
+ onClose={() => setOfflineModalVisible(false)}
+ />
+ setDownloadErrorModalVisible(false)}
+ secondOptionText={translate('common.buttonConfirm')}
+ isVisible={downloadErrorModalVisible}
+ onClose={() => setDownloadErrorModalVisible(false)}
+ />
;
clearSelectedItems?: () => void;
hash: number;
onSelectDeleteOption?: (itemsToDelete: string[]) => void;
isMobileSelectionModeActive?: boolean;
setIsMobileSelectionModeActive?: (isMobileSelectionModeActive: boolean) => void;
+ setOfflineModalOpen?: () => void;
+ setDownloadErrorModalOpen?: () => void;
};
type SearchHeaderOptionValue = DeepValueOf | undefined;
-function SearchPageHeader({query, selectedItems = {}, hash, clearSelectedItems, onSelectDeleteOption, isMobileSelectionModeActive, setIsMobileSelectionModeActive}: SearchPageHeaderProps) {
+function SearchPageHeader({
+ query,
+ selectedTransactions = {},
+ hash,
+ clearSelectedItems,
+ onSelectDeleteOption,
+ isMobileSelectionModeActive,
+ setIsMobileSelectionModeActive,
+ setOfflineModalOpen,
+ setDownloadErrorModalOpen,
+ selectedReports,
+}: SearchPageHeaderProps) {
const {translate} = useLocalize();
const theme = useTheme();
const styles = useThemeStyles();
const {isOffline} = useNetwork();
+ const {activeWorkspaceID} = useActiveWorkspace();
const {isSmallScreenWidth} = useResponsiveLayout();
+ const {setSelectedTransactionIDs} = useSearchContext();
+
const headerContent: {[key in SearchQuery]: {icon: IconAsset; title: string}} = {
all: {icon: Illustrations.MoneyReceipts, title: translate('common.expenses')},
shared: {icon: Illustrations.SendMoney, title: translate('common.shared')},
@@ -43,57 +65,93 @@ function SearchPageHeader({query, selectedItems = {}, hash, clearSelectedItems,
finished: {icon: Illustrations.CheckmarkCircle, title: translate('common.finished')},
};
- const selectedItemsKeys = Object.keys(selectedItems ?? []);
+ const selectedTransactionsKeys = Object.keys(selectedTransactions ?? []);
const headerButtonsOptions = useMemo(() => {
- const options: Array> = [];
-
- if (selectedItemsKeys.length === 0) {
- return options;
+ if (selectedTransactionsKeys.length === 0) {
+ return [];
}
- const itemsToDelete = Object.keys(selectedItems ?? {}).filter((id) => selectedItems[id].canDelete);
+ const options: Array> = [];
- if (itemsToDelete.length > 0) {
- options.push({
- icon: Expensicons.Trashcan,
- text: translate('search.bulkActions.delete'),
- value: CONST.SEARCH.BULK_ACTION_TYPES.DELETE,
- shouldCloseModalOnSelect: true,
- onSelected: () => onSelectDeleteOption?.(itemsToDelete),
+ // Because of some problems with the lib we use for download on native we are only enabling download for web, we should remove the SearchActionOptionsUtils files when https://github.com/Expensify/App/issues/45511 is done
+ const downloadOption = getDownloadOption(translate('common.download'), () => {
+ if (isOffline) {
+ setOfflineModalOpen?.();
+ return;
+ }
+
+ SearchActions.exportSearchItemsToCSV(query, selectedReports, selectedTransactionsKeys, [activeWorkspaceID ?? ''], () => {
+ setDownloadErrorModalOpen?.();
});
+ });
+
+ if (downloadOption) {
+ options.push(downloadOption);
}
- const itemsToHold = selectedItemsKeys.filter((id) => selectedItems[id].action === CONST.SEARCH.BULK_ACTION_TYPES.HOLD);
+ const shouldShowHoldOption = !isOffline && selectedTransactionsKeys.every((id) => selectedTransactions[id].canHold);
- if (itemsToHold.length > 0) {
+ if (shouldShowHoldOption) {
options.push({
icon: Expensicons.Stopwatch,
text: translate('search.bulkActions.hold'),
value: CONST.SEARCH.BULK_ACTION_TYPES.HOLD,
+ shouldCloseModalOnSelect: true,
onSelected: () => {
+ if (isOffline) {
+ setOfflineModalOpen?.();
+ return;
+ }
+
clearSelectedItems?.();
if (isMobileSelectionModeActive) {
setIsMobileSelectionModeActive?.(false);
}
- SearchActions.holdMoneyRequestOnSearch(hash, itemsToHold, '');
+ setSelectedTransactionIDs(selectedTransactionsKeys);
+ Navigation.navigate(ROUTES.TRANSACTION_HOLD_REASON_RHP.getRoute(query));
},
});
}
- const itemsToUnhold = selectedItemsKeys.filter((id) => selectedItems[id].action === CONST.SEARCH.BULK_ACTION_TYPES.UNHOLD);
+ const shouldShowUnholdOption = !isOffline && selectedTransactionsKeys.every((id) => selectedTransactions[id].canUnhold);
- if (itemsToUnhold.length > 0) {
+ if (shouldShowUnholdOption) {
options.push({
icon: Expensicons.Stopwatch,
text: translate('search.bulkActions.unhold'),
value: CONST.SEARCH.BULK_ACTION_TYPES.UNHOLD,
+ shouldCloseModalOnSelect: true,
onSelected: () => {
+ if (isOffline) {
+ setOfflineModalOpen?.();
+ return;
+ }
+
clearSelectedItems?.();
if (isMobileSelectionModeActive) {
setIsMobileSelectionModeActive?.(false);
}
- SearchActions.unholdMoneyRequestOnSearch(hash, itemsToUnhold);
+ SearchActions.unholdMoneyRequestOnSearch(hash, selectedTransactionsKeys);
+ },
+ });
+ }
+
+ const shouldShowDeleteOption = !isOffline && selectedTransactionsKeys.every((id) => selectedTransactions[id].canDelete);
+
+ if (shouldShowDeleteOption) {
+ options.push({
+ icon: Expensicons.Trashcan,
+ text: translate('search.bulkActions.delete'),
+ value: CONST.SEARCH.BULK_ACTION_TYPES.DELETE,
+ shouldCloseModalOnSelect: true,
+ onSelected: () => {
+ if (isOffline) {
+ setOfflineModalOpen?.();
+ return;
+ }
+
+ onSelectDeleteOption?.(selectedTransactionsKeys);
},
});
}
@@ -118,8 +176,8 @@ function SearchPageHeader({query, selectedItems = {}, hash, clearSelectedItems,
return options;
}, [
- selectedItemsKeys,
- selectedItems,
+ selectedTransactionsKeys,
+ selectedTransactions,
translate,
onSelectDeleteOption,
clearSelectedItems,
@@ -129,7 +187,14 @@ function SearchPageHeader({query, selectedItems = {}, hash, clearSelectedItems,
theme.icon,
styles.colorMuted,
styles.fontWeightNormal,
+ query,
+ isOffline,
+ setOfflineModalOpen,
+ setDownloadErrorModalOpen,
+ activeWorkspaceID,
+ selectedReports,
styles.textWrap,
+ setSelectedTransactionIDs,
]);
if (isSmallScreenWidth) {
@@ -137,7 +202,7 @@ function SearchPageHeader({query, selectedItems = {}, hash, clearSelectedItems,
return (
);
}
@@ -156,10 +221,9 @@ function SearchPageHeader({query, selectedItems = {}, hash, clearSelectedItems,
shouldAlwaysShowDropdownMenu
pressOnEnter
buttonSize={CONST.DROPDOWN_BUTTON_SIZE.MEDIUM}
- customText={translate('workspace.common.selected', {selectedNumber: selectedItemsKeys.length})}
+ customText={translate('workspace.common.selected', {selectedNumber: selectedTransactionsKeys.length})}
options={headerButtonsOptions}
isSplitButton={false}
- isDisabled={isOffline}
/>
)}
diff --git a/src/components/Search/index.tsx b/src/components/Search/index.tsx
index 78992496f031..ae38baf8f264 100644
--- a/src/components/Search/index.tsx
+++ b/src/components/Search/index.tsx
@@ -1,6 +1,5 @@
import {useNavigation} from '@react-navigation/native';
import type {StackNavigationProp} from '@react-navigation/stack';
-import lodashMemoize from 'lodash/memoize';
import React, {useCallback, useEffect, useRef} from 'react';
import type {OnyxEntry} from 'react-native-onyx';
import {useOnyx} from 'react-native-onyx';
@@ -13,6 +12,7 @@ import useWindowDimensions from '@hooks/useWindowDimensions';
import * as SearchActions from '@libs/actions/Search';
import * as DeviceCapabilities from '@libs/DeviceCapabilities';
import Log from '@libs/Log';
+import memoize from '@libs/memoize';
import * as ReportUtils from '@libs/ReportUtils';
import * as SearchUtils from '@libs/SearchUtils';
import Navigation from '@navigation/Navigation';
@@ -74,15 +74,14 @@ function Search({query, policyIDs, sortBy, sortOrder, isMobileSelectionModeActiv
[isLargeScreenWidth],
);
- const getItemHeightMemoized = lodashMemoize(
- (item: TransactionListItemType | ReportListItemType) => getItemHeight(item),
- (item) => {
+ const getItemHeightMemoized = memoize((item: TransactionListItemType | ReportListItemType) => getItemHeight(item), {
+ transformKey: ([item]) => {
// List items are displayed differently on "L"arge and "N"arrow screens so the height will differ
// in addition the same items might be displayed as part of different Search screens ("Expenses", "All", "Finished")
const screenSizeHash = isLargeScreenWidth ? 'L' : 'N';
return `${hash}-${item.keyForList}-${screenSizeHash}`;
},
- );
+ });
// save last non-empty search results to avoid ugly flash of loading screen when hash changes and onyx returns empty data
if (currentSearchResults?.data && currentSearchResults !== lastSearchResultsRef.current) {
@@ -101,10 +100,11 @@ function Search({query, policyIDs, sortBy, sortOrder, isMobileSelectionModeActiv
// eslint-disable-next-line react-compiler/react-compiler, react-hooks/exhaustive-deps
}, [hash, isOffline]);
- const isLoadingItems = !isOffline && searchResults?.data === undefined;
- const isLoadingMoreItems = !isLoadingItems && searchResults?.search?.isLoading && searchResults?.search?.offset > 0;
+ const isDataLoaded = searchResults?.data !== undefined;
+ const shouldShowLoadingState = !isOffline && !isDataLoaded;
+ const shouldShowLoadingMoreItems = !shouldShowLoadingState && searchResults?.search?.isLoading && searchResults?.search?.offset > 0;
- if (isLoadingItems) {
+ if (shouldShowLoadingState) {
return (
<>
{
- if (!searchResults?.search?.hasMoreResults || isLoadingItems || isLoadingMoreItems) {
+ if (!searchResults?.search?.hasMoreResults || shouldShowLoadingState || shouldShowLoadingMoreItems) {
return;
}
const currentOffset = searchResults?.search?.offset ?? 0;
@@ -224,7 +224,7 @@ function Search({query, policyIDs, sortBy, sortOrder, isMobileSelectionModeActiv
setIsMobileSelectionModeActive={setIsMobileSelectionModeActive}
isMobileSelectionModeActive={isMobileSelectionModeActive}
listFooterContent={
- isLoadingMoreItems ? (
+ shouldShowLoadingMoreItems ? (
void;
- setSelectedTransactionIds: (selectedTransactionIds: string[]) => void;
+ setSelectedTransactionIDs: (selectedTransactionIds: string[]) => void;
};
type ASTNode = {
diff --git a/src/components/SelectionList/BaseSelectionList.tsx b/src/components/SelectionList/BaseSelectionList.tsx
index 6cc6b403dc7a..f93779b81c85 100644
--- a/src/components/SelectionList/BaseSelectionList.tsx
+++ b/src/components/SelectionList/BaseSelectionList.tsx
@@ -80,6 +80,7 @@ function BaseSelectionList(
customListHeaderHeight = 0,
listHeaderWrapperStyle,
isRowMultilineSupported = false,
+ isAlternateTextMultilineSupported = false,
textInputRef,
headerMessageStyle,
shouldHideListOnInitialRender = true,
@@ -94,6 +95,7 @@ function BaseSelectionList(
updateCellsBatchingPeriod = 50,
removeClippedSubviews = true,
shouldDelayFocus = true,
+ shouldUpdateFocusedIndex = false,
onLongPressRow,
isMobileSelectionModeActive,
}: BaseSelectionListProps,
@@ -288,8 +290,9 @@ function BaseSelectionList(
* Logic to run when a row is selected, either with click/press or keyboard hotkeys.
*
* @param item - the list item
+ * @param indexToFocus - the list item index to focus
*/
- const selectRow = (item: TItem) => {
+ const selectRow = (item: TItem, indexToFocus?: number) => {
// In single-selection lists we don't care about updating the focused index, because the list is closed after selecting an item
if (canSelectMultiple) {
if (sections.length > 1) {
@@ -309,6 +312,10 @@ function BaseSelectionList(
}
}
+ if (shouldUpdateFocusedIndex && typeof indexToFocus === 'number') {
+ setFocusedIndex(indexToFocus);
+ }
+
if (shouldDebounceRowSelect) {
debouncedOnSelectRow(item);
} else {
@@ -452,7 +459,7 @@ function BaseSelectionList(
canSelectMultiple={canSelectMultiple}
onLongPressRow={onLongPressRow}
isMobileSelectionModeActive={isMobileSelectionModeActive}
- onSelectRow={() => selectRow(item)}
+ onSelectRow={() => selectRow(item, index)}
onCheckboxPress={handleOnCheckboxPress()}
onDismissError={() => onDismissError?.(item)}
shouldPreventDefaultFocusOnSelectRow={shouldPreventDefaultFocusOnSelectRow}
@@ -461,6 +468,7 @@ function BaseSelectionList(
rightHandSideComponent={rightHandSideComponent}
keyForList={item.keyForList ?? ''}
isMultilineSupported={isRowMultilineSupported}
+ isAlternateTextMultilineSupported={isAlternateTextMultilineSupported}
onFocus={() => {
if (isDisabled) {
return;
diff --git a/src/components/SelectionList/RadioListItem.tsx b/src/components/SelectionList/RadioListItem.tsx
index 48ca474f6c60..f2df90592618 100644
--- a/src/components/SelectionList/RadioListItem.tsx
+++ b/src/components/SelectionList/RadioListItem.tsx
@@ -2,6 +2,7 @@ import React from 'react';
import {View} from 'react-native';
import TextWithTooltip from '@components/TextWithTooltip';
import useThemeStyles from '@hooks/useThemeStyles';
+import variables from '@styles/variables';
import CONST from '@src/CONST';
import BaseListItem from './BaseListItem';
import type {ListItem, RadioListItemProps} from './types';
@@ -16,6 +17,7 @@ function RadioListItem({
shouldPreventEnterKeySubmit,
rightHandSideComponent,
isMultilineSupported = false,
+ isAlternateTextMultilineSupported = false,
onFocus,
shouldSyncFocus,
}: RadioListItemProps) {
@@ -23,6 +25,7 @@ function RadioListItem({
const fullTitle = isMultilineSupported ? item.text?.trimStart() : item.text;
const indentsLength = (item.text?.length ?? 0) - (fullTitle?.length ?? 0);
const paddingLeft = Math.floor(indentsLength / CONST.INDENTS.length) * styles.ml3.marginLeft;
+ const alternateTextMaxWidth = variables.sideBarWidth - styles.ph5.paddingHorizontal * 2 - styles.ml3.marginLeft - variables.iconSizeNormal;
return (
({
pendingAction={item.pendingAction}
>
<>
+ {!!item.leftElement && item.leftElement}
({
)}
diff --git a/src/components/SelectionList/Search/ActionCell.tsx b/src/components/SelectionList/Search/ActionCell.tsx
index 7888a8b26114..f535c0342e55 100644
--- a/src/components/SelectionList/Search/ActionCell.tsx
+++ b/src/components/SelectionList/Search/ActionCell.tsx
@@ -1,19 +1,15 @@
-import React, {useCallback} from 'react';
+import React from 'react';
import {View} from 'react-native';
import Badge from '@components/Badge';
import Button from '@components/Button';
import * as Expensicons from '@components/Icon/Expensicons';
-import {useSearchContext} from '@components/Search/SearchContext';
import useLocalize from '@hooks/useLocalize';
import useStyleUtils from '@hooks/useStyleUtils';
import useTheme from '@hooks/useTheme';
import useThemeStyles from '@hooks/useThemeStyles';
-import Navigation from '@navigation/Navigation';
import variables from '@styles/variables';
-import * as SearchActions from '@userActions/Search';
import CONST from '@src/CONST';
import type {TranslationPaths} from '@src/languages/types';
-import ROUTES from '@src/ROUTES';
import type {SearchTransactionAction} from '@src/types/onyx/SearchResults';
const actionTranslationsMap: Record = {
@@ -21,13 +17,10 @@ const actionTranslationsMap: Record =
review: 'common.review',
done: 'common.done',
paid: 'iou.settledExpensify',
- hold: 'iou.hold',
- unhold: 'iou.unhold',
};
type ActionCellProps = {
action?: SearchTransactionAction;
- transactionID?: string;
isLargeScreenWidth?: boolean;
isSelected?: boolean;
goToItem: () => void;
@@ -35,34 +28,12 @@ type ActionCellProps = {
parentAction?: string;
};
-function ActionCell({
- action = CONST.SEARCH.ACTION_TYPES.VIEW,
- transactionID,
- isLargeScreenWidth = true,
- isSelected = false,
- goToItem,
- isChildListItem = false,
- parentAction = '',
-}: ActionCellProps) {
+function ActionCell({action = CONST.SEARCH.ACTION_TYPES.VIEW, isLargeScreenWidth = true, isSelected = false, goToItem, isChildListItem = false, parentAction = ''}: ActionCellProps) {
const {translate} = useLocalize();
const theme = useTheme();
const styles = useThemeStyles();
const StyleUtils = useStyleUtils();
- const {currentSearchHash} = useSearchContext();
-
- const onButtonPress = useCallback(() => {
- if (!transactionID) {
- return;
- }
-
- if (action === CONST.SEARCH.ACTION_TYPES.HOLD) {
- Navigation.navigate(ROUTES.TRANSACTION_HOLD_REASON_RHP.getRoute(CONST.SEARCH.TAB.ALL, transactionID));
- } else if (action === CONST.SEARCH.ACTION_TYPES.UNHOLD) {
- SearchActions.unholdMoneyRequestOnSearch(currentSearchHash, [transactionID]);
- }
- }, [action, currentSearchHash, transactionID]);
-
const text = translate(actionTranslationsMap[action]);
const shouldUseViewAction = action === CONST.SEARCH.ACTION_TYPES.VIEW || (parentAction === CONST.SEARCH.ACTION_TYPES.PAID && action === CONST.SEARCH.ACTION_TYPES.PAID);
@@ -119,16 +90,6 @@ function ActionCell({
/>
);
}
- return (
-
- );
}
ActionCell.displayName = 'ActionCell';
diff --git a/src/components/SelectionList/Search/ExpenseItemHeaderNarrow.tsx b/src/components/SelectionList/Search/ExpenseItemHeaderNarrow.tsx
index cfffa2629f43..640285dc73a4 100644
--- a/src/components/SelectionList/Search/ExpenseItemHeaderNarrow.tsx
+++ b/src/components/SelectionList/Search/ExpenseItemHeaderNarrow.tsx
@@ -1,5 +1,6 @@
import React, {memo} from 'react';
import {View} from 'react-native';
+import type {StyleProp, ViewStyle} from 'react-native';
import Icon from '@components/Icon';
import * as Expensicons from '@components/Icon/Expensicons';
import {PressableWithFeedback} from '@components/Pressable';
@@ -19,7 +20,7 @@ type ExpenseItemHeaderNarrowProps = {
participantFromDisplayName: string;
participantToDisplayName: string;
action?: SearchTransactionAction;
- transactionID?: string;
+ containerStyle?: StyleProp;
onButtonPress: () => void;
canSelectMultiple?: boolean;
isSelected?: boolean;
@@ -36,19 +37,19 @@ function ExpenseItemHeaderNarrow({
onButtonPress,
action,
canSelectMultiple,
+ containerStyle,
isDisabledCheckbox,
isSelected,
isDisabled,
handleCheckboxPress,
text,
- transactionID,
}: ExpenseItemHeaderNarrowProps) {
const styles = useThemeStyles();
const StyleUtils = useStyleUtils();
const theme = useTheme();
return (
-
+
{canSelectMultiple && (
diff --git a/src/components/SelectionList/Search/ReportListItem.tsx b/src/components/SelectionList/Search/ReportListItem.tsx
index e6358698d414..be8ddfe43822 100644
--- a/src/components/SelectionList/Search/ReportListItem.tsx
+++ b/src/components/SelectionList/Search/ReportListItem.tsx
@@ -71,7 +71,14 @@ function ReportListItem({
return;
}
- const listItemPressableStyle = [styles.selectionListPressableItemWrapper, styles.pv3, item.isSelected && styles.activeComponentBG, isFocused && styles.sidebarLinkActive, styles.ph3];
+ const listItemPressableStyle = [
+ styles.selectionListPressableItemWrapper,
+ styles.pv1half,
+ styles.ph0,
+ styles.overflowHidden,
+ item.isSelected && styles.activeComponentBG,
+ isFocused && styles.sidebarLinkActive,
+ ];
const handleOnButtonPress = () => {
onSelectRow(item);
@@ -144,10 +151,11 @@ function ReportListItem({
participantToDisplayName={participantToDisplayName}
action={reportItem.action}
onButtonPress={handleOnButtonPress}
+ containerStyle={[styles.ph3, styles.pt1half, styles.mb1half]}
/>
)}
-
-
+
+
{canSelectMultiple && (
({
containerStyle={[StyleUtils.getCheckboxContainerStyle(20), StyleUtils.getMultiselectListStyles(!!item.isSelected, !!item.isDisabled)]}
disabled={!!isDisabled || item.isDisabledCheckbox}
accessibilityLabel={item.text ?? ''}
+ shouldStopMouseDownPropagation
style={[styles.cursorUnset, StyleUtils.getCheckboxPressableStyle(), item.isDisabledCheckbox && styles.cursorDisabled, !isLargeScreenWidth && styles.mr3]}
/>
)}
@@ -191,11 +200,11 @@ function ReportListItem({
}}
onCheckboxPress={() => onCheckboxPress?.(transaction as unknown as TItem)}
showItemHeaderOnNarrowLayout={false}
- containerStyle={styles.mt3}
+ containerStyle={[transaction.isSelected && styles.activeComponentBG, styles.ph3, styles.pv1half]}
isChildListItem
isDisabled={!!isDisabled}
canSelectMultiple={!!canSelectMultiple}
- isButtonSelected={item.isSelected}
+ isButtonSelected={transaction.isSelected}
shouldShowTransactionCheckbox
/>
))}
diff --git a/src/components/SelectionList/Search/TransactionListItemRow.tsx b/src/components/SelectionList/Search/TransactionListItemRow.tsx
index e4087666c8b0..4f83814374ba 100644
--- a/src/components/SelectionList/Search/TransactionListItemRow.tsx
+++ b/src/components/SelectionList/Search/TransactionListItemRow.tsx
@@ -268,7 +268,6 @@ function TransactionListItemRow({
isDisabled={item.isDisabled}
isDisabledCheckbox={item.isDisabledCheckbox}
handleCheckboxPress={onCheckboxPress}
- transactionID={item.transactionID}
/>
)}
@@ -430,7 +429,6 @@ function TransactionListItemRow({
= {
/** Whether to wrap long text up to 2 lines */
isMultilineSupported?: boolean;
+ /** Whether to wrap the alternate text up to 2 lines */
+ isAlternateTextMultilineSupported?: boolean;
+
/** Handles what to do when the item is focused */
onFocus?: () => void;
@@ -99,6 +102,9 @@ type ListItem = {
/** User login */
login?: string | null;
+ /** Element to show on the left side of the item */
+ leftElement?: ReactNode;
+
/** Element to show on the right side of the item */
rightElement?: ReactNode;
@@ -128,6 +134,9 @@ type ListItem = {
/** Whether to wrap long text up to 2 lines */
isMultilineSupported?: boolean;
+ /** Whether to wrap the alternate text up to 2 lines */
+ isAlternateTextMultilineSupported?: boolean;
+
/** The search value from the selection list */
searchText?: string | null;
@@ -305,6 +314,9 @@ type BaseSelectionListProps = Partial & {
/** Whether to debounce `onRowSelect` */
shouldDebounceRowSelect?: boolean;
+ /** Whether to update the focused index on a row select */
+ shouldUpdateFocusedIndex?: boolean;
+
/** Optional callback function triggered upon pressing a checkbox. If undefined and the list displays checkboxes, checkbox interactions are managed by onSelectRow, allowing for pressing anywhere on the list. */
onCheckboxPress?: (item: TItem) => void;
@@ -437,6 +449,9 @@ type BaseSelectionListProps = Partial & {
/** Whether to wrap long text up to 2 lines */
isRowMultilineSupported?: boolean;
+ /** Whether to wrap the alternate text up to 2 lines */
+ isAlternateTextMultilineSupported?: boolean;
+
/** Ref for textInput */
textInputRef?: MutableRefObject | ((ref: TextInput | null) => void);
diff --git a/src/components/Skeletons/CardRowSkeleton.tsx b/src/components/Skeletons/CardRowSkeleton.tsx
new file mode 100644
index 000000000000..82c382048415
--- /dev/null
+++ b/src/components/Skeletons/CardRowSkeleton.tsx
@@ -0,0 +1,81 @@
+import React from 'react';
+import {Circle, Rect} from 'react-native-svg';
+import useThemeStyles from '@hooks/useThemeStyles';
+import useWindowDimensions from '@hooks/useWindowDimensions';
+import variables from '@styles/variables';
+import ItemListSkeletonView from './ItemListSkeletonView';
+
+type CardRowSkeletonProps = {
+ shouldAnimate?: boolean;
+ fixedNumItems?: number;
+ gradientOpacityEnabled?: boolean;
+};
+
+const barHeight = 7;
+const longBarWidth = 120;
+const shortBarWidth = 60;
+const leftPaneWidth = variables.sideBarWidth;
+const gapWidth = 12;
+const rightSideElementWidth = 50;
+const centralPanePadding = 50;
+const rightButtonWidth = 20;
+
+function CardRowSkeleton({shouldAnimate = true, fixedNumItems, gradientOpacityEnabled = false}: CardRowSkeletonProps) {
+ const styles = useThemeStyles();
+ const {windowWidth, isSmallScreenWidth} = useWindowDimensions();
+
+ return (
+ (
+ <>
+
+
+
+
+
+ {!isSmallScreenWidth && (
+ <>
+
+
+
+ >
+ )}
+ >
+ )}
+ />
+ );
+}
+
+CardRowSkeleton.displayName = 'CardRowSkeleton';
+
+export default CardRowSkeleton;
diff --git a/src/components/Tooltip/EducationalTooltip/BaseEducationalTooltip.tsx b/src/components/Tooltip/EducationalTooltip/BaseEducationalTooltip.tsx
index 50a1c9024293..cb158150fc88 100644
--- a/src/components/Tooltip/EducationalTooltip/BaseEducationalTooltip.tsx
+++ b/src/components/Tooltip/EducationalTooltip/BaseEducationalTooltip.tsx
@@ -1,5 +1,5 @@
import React, {memo, useEffect, useRef} from 'react';
-import type {LayoutEvent} from 'react-native';
+import type {LayoutChangeEvent} from 'react-native';
import GenericTooltip from '@components/Tooltip/GenericTooltip';
import type TooltipProps from '@components/Tooltip/types';
import getBounds from './getBounds';
@@ -44,7 +44,7 @@ function BaseEducationalTooltip({children, ...props}: TooltipProps) {
// eslint-disable-next-line react-compiler/react-compiler
hideTooltipRef.current = hideTooltip;
return React.cloneElement(children as React.ReactElement, {
- onLayout: (e: LayoutEvent) => {
+ onLayout: (e: LayoutChangeEvent) => {
updateTargetBounds(getBounds(e));
showTooltip();
},
diff --git a/src/components/Tooltip/EducationalTooltip/getBounds/index.native.ts b/src/components/Tooltip/EducationalTooltip/getBounds/index.native.ts
index e0f06785d338..44e34ba5ff21 100644
--- a/src/components/Tooltip/EducationalTooltip/getBounds/index.native.ts
+++ b/src/components/Tooltip/EducationalTooltip/getBounds/index.native.ts
@@ -1,6 +1,6 @@
-import type {LayoutEvent} from 'react-native';
+import type {LayoutChangeEvent} from 'react-native';
import type GetBounds from './types';
-const getBounds: GetBounds = (layoutEvent: LayoutEvent) => layoutEvent.nativeEvent.layout;
+const getBounds: GetBounds = (event: LayoutChangeEvent) => event.nativeEvent.layout;
export default getBounds;
diff --git a/src/components/Tooltip/EducationalTooltip/getBounds/index.ts b/src/components/Tooltip/EducationalTooltip/getBounds/index.ts
index be728b519c51..d94949277740 100644
--- a/src/components/Tooltip/EducationalTooltip/getBounds/index.ts
+++ b/src/components/Tooltip/EducationalTooltip/getBounds/index.ts
@@ -1,6 +1,6 @@
-import type {LayoutEvent} from 'react-native';
+import type {LayoutChangeEvent} from 'react-native';
import type GetBounds from './types';
-const getBounds: GetBounds = (layoutEvent: LayoutEvent) => (layoutEvent.nativeEvent.target as HTMLElement).getBoundingClientRect();
+const getBounds: GetBounds = (event: LayoutChangeEvent) => (event.nativeEvent.target as HTMLElement).getBoundingClientRect();
export default getBounds;
diff --git a/src/components/Tooltip/EducationalTooltip/getBounds/types.ts b/src/components/Tooltip/EducationalTooltip/getBounds/types.ts
index 5edf6f60e0c6..081962166ff1 100644
--- a/src/components/Tooltip/EducationalTooltip/getBounds/types.ts
+++ b/src/components/Tooltip/EducationalTooltip/getBounds/types.ts
@@ -1,5 +1,5 @@
-import type {LayoutEvent, LayoutRectangle} from 'react-native';
+import type {LayoutChangeEvent, LayoutRectangle} from 'react-native';
-type GetBounds = (layoutEvent: LayoutEvent) => LayoutRectangle;
+type GetBounds = (event: LayoutChangeEvent) => LayoutRectangle;
export default GetBounds;
diff --git a/src/components/VideoPlayer/BaseVideoPlayer.tsx b/src/components/VideoPlayer/BaseVideoPlayer.tsx
index c6a244be3fcb..8c04830bed2f 100644
--- a/src/components/VideoPlayer/BaseVideoPlayer.tsx
+++ b/src/components/VideoPlayer/BaseVideoPlayer.tsx
@@ -59,7 +59,7 @@ function BaseVideoPlayer({
shareVideoPlayerElements,
currentVideoPlayerRef,
updateCurrentlyPlayingURL,
- videoResumeTryNumber,
+ videoResumeTryNumberRef,
setCurrentlyPlayingURL,
} = usePlaybackContext();
const {isFullScreenRef} = useFullScreenContext();
@@ -83,10 +83,10 @@ function BaseVideoPlayer({
const isUploading = CONST.ATTACHMENT_LOCAL_URL_PREFIX.some((prefix) => url.startsWith(prefix));
const videoStateRef = useRef(null);
const {updateVolume} = useVolumeContext();
- const {videoPopoverMenuPlayerRef, setCurrentPlaybackSpeed} = useVideoPopoverMenuContext();
+ const {videoPopoverMenuPlayerRef, currentPlaybackSpeed, setCurrentPlaybackSpeed} = useVideoPopoverMenuContext();
const togglePlayCurrentVideo = useCallback(() => {
- videoResumeTryNumber.current = 0;
+ videoResumeTryNumberRef.current = 0;
if (!isCurrentlyURLSet) {
updateCurrentlyPlayingURL(url);
} else if (isPlaying) {
@@ -94,7 +94,7 @@ function BaseVideoPlayer({
} else {
playVideo();
}
- }, [isCurrentlyURLSet, isPlaying, pauseVideo, playVideo, updateCurrentlyPlayingURL, url, videoResumeTryNumber]);
+ }, [isCurrentlyURLSet, isPlaying, pauseVideo, playVideo, updateCurrentlyPlayingURL, url, videoResumeTryNumberRef]);
const showPopoverMenu = (event?: GestureResponderEvent | KeyboardEvent) => {
videoPopoverMenuPlayerRef.current = videoPlayerRef.current;
@@ -118,16 +118,16 @@ function BaseVideoPlayer({
// fix for iOS mWeb: preventing iOS native player default behavior from pausing the video when exiting fullscreen
const preventPausingWhenExitingFullscreen = useCallback(
(isVideoPlaying: boolean) => {
- if (videoResumeTryNumber.current === 0 || isVideoPlaying) {
+ if (videoResumeTryNumberRef.current === 0 || isVideoPlaying) {
return;
}
- if (videoResumeTryNumber.current === 1) {
+ if (videoResumeTryNumberRef.current === 1) {
playVideo();
}
// eslint-disable-next-line react-compiler/react-compiler
- videoResumeTryNumber.current -= 1;
+ videoResumeTryNumberRef.current -= 1;
},
- [playVideo, videoResumeTryNumber],
+ [playVideo, videoResumeTryNumberRef],
);
const handlePlaybackStatusUpdate = useCallback(
@@ -186,11 +186,11 @@ function BaseVideoPlayer({
if (videoStateRef.current && (!('isPlaying' in videoStateRef.current) || videoStateRef.current.isPlaying)) {
pauseVideo();
playVideo();
- videoResumeTryNumber.current = 3;
+ videoResumeTryNumberRef.current = 3;
}
}
},
- [isFullScreenRef, onFullscreenUpdate, pauseVideo, playVideo, videoResumeTryNumber, updateVolume, currentVideoPlayerRef],
+ [isFullScreenRef, onFullscreenUpdate, pauseVideo, playVideo, videoResumeTryNumberRef, updateVolume, currentVideoPlayerRef],
);
const bindFunctions = useCallback(() => {
@@ -359,6 +359,11 @@ function BaseVideoPlayer({
playVideo();
}
onVideoLoaded?.(e);
+ const {source} = videoPopoverMenuPlayerRef.current?.props ?? {};
+ if (typeof source === 'number' || !source || source.uri !== sourceURL) {
+ return;
+ }
+ videoPlayerRef.current?.setStatusAsync?.({rate: currentPlaybackSpeed});
}}
onPlaybackStatusUpdate={handlePlaybackStatusUpdate}
onFullscreenUpdate={handleFullscreenUpdate}
diff --git a/src/components/VideoPlayerContexts/PlaybackContext.tsx b/src/components/VideoPlayerContexts/PlaybackContext.tsx
index 0e5e7f993eea..60594c25feb9 100644
--- a/src/components/VideoPlayerContexts/PlaybackContext.tsx
+++ b/src/components/VideoPlayerContexts/PlaybackContext.tsx
@@ -15,7 +15,7 @@ function PlaybackContextProvider({children}: ChildrenProps) {
const [originalParent, setOriginalParent] = useState(null);
const currentVideoPlayerRef = useRef(null);
const {currentReportID} = useCurrentReportID() ?? {};
- const videoResumeTryNumber = useRef(0);
+ const videoResumeTryNumberRef = useRef(0);
const pauseVideo = useCallback(() => {
currentVideoPlayerRef.current?.setStatusAsync?.({shouldPlay: false});
@@ -73,7 +73,7 @@ function PlaybackContextProvider({children}: ChildrenProps) {
);
const resetVideoPlayerData = useCallback(() => {
- videoResumeTryNumber.current = 0;
+ videoResumeTryNumberRef.current = 0;
stopVideo();
setCurrentlyPlayingURL(null);
setSharedElement(null);
@@ -102,7 +102,7 @@ function PlaybackContextProvider({children}: ChildrenProps) {
playVideo,
pauseVideo,
checkVideoPlaying,
- videoResumeTryNumber,
+ videoResumeTryNumberRef,
}),
[
updateCurrentlyPlayingURL,
diff --git a/src/components/VideoPlayerContexts/VideoPopoverMenuContext.tsx b/src/components/VideoPlayerContexts/VideoPopoverMenuContext.tsx
index bfb7e3739d17..bb2b2e24aea4 100644
--- a/src/components/VideoPlayerContexts/VideoPopoverMenuContext.tsx
+++ b/src/components/VideoPlayerContexts/VideoPopoverMenuContext.tsx
@@ -69,8 +69,8 @@ function VideoPopoverMenuContextProvider({children}: ChildrenProps) {
}, [currentPlaybackSpeed, downloadAttachment, translate, updatePlaybackSpeed, isOffline, isLocalFile]);
const contextValue = useMemo(
- () => ({menuItems, videoPopoverMenuPlayerRef, updatePlaybackSpeed, setCurrentPlaybackSpeed}),
- [menuItems, videoPopoverMenuPlayerRef, updatePlaybackSpeed, setCurrentPlaybackSpeed],
+ () => ({menuItems, videoPopoverMenuPlayerRef, currentPlaybackSpeed, updatePlaybackSpeed, setCurrentPlaybackSpeed}),
+ [menuItems, videoPopoverMenuPlayerRef, currentPlaybackSpeed, updatePlaybackSpeed, setCurrentPlaybackSpeed],
);
return {children} ;
}
diff --git a/src/components/VideoPlayerContexts/types.ts b/src/components/VideoPlayerContexts/types.ts
index 85dabf958d0d..5778c321bd3b 100644
--- a/src/components/VideoPlayerContexts/types.ts
+++ b/src/components/VideoPlayerContexts/types.ts
@@ -13,7 +13,7 @@ type PlaybackContext = {
currentlyPlayingURLReportID: string | undefined;
originalParent: View | HTMLDivElement | null;
sharedElement: View | HTMLDivElement | null;
- videoResumeTryNumber: MutableRefObject;
+ videoResumeTryNumberRef: MutableRefObject;
currentVideoPlayerRef: MutableRefObject;
shareVideoPlayerElements: (ref: VideoWithOnFullScreenUpdate | null, parent: View | HTMLDivElement | null, child: View | HTMLDivElement | null, isUploading: boolean) => void;
playVideo: () => void;
@@ -30,6 +30,7 @@ type VolumeContext = {
type VideoPopoverMenuContext = {
menuItems: PopoverMenuItem[];
videoPopoverMenuPlayerRef: MutableRefObject;
+ currentPlaybackSpeed: PlaybackSpeed;
updatePlaybackSpeed: (speed: PlaybackSpeed) => void;
setCurrentPlaybackSpeed: (speed: PlaybackSpeed) => void;
};
diff --git a/src/hooks/useActiveBottomTabRoute.ts b/src/hooks/useActiveBottomTabRoute.ts
deleted file mode 100644
index 434cca0cd815..000000000000
--- a/src/hooks/useActiveBottomTabRoute.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import {useContext} from 'react';
-import ActiveBottomTabRouteContext from '@libs/Navigation/AppNavigator/Navigators/ActiveBottomTabRouteContext';
-
-function useActiveBottomTabRoute() {
- return useContext(ActiveBottomTabRouteContext);
-}
-
-export default useActiveBottomTabRoute;
diff --git a/src/hooks/useActiveCentralPaneRoute.ts b/src/hooks/useActiveCentralPaneRoute.ts
new file mode 100644
index 000000000000..05354e810c3d
--- /dev/null
+++ b/src/hooks/useActiveCentralPaneRoute.ts
@@ -0,0 +1,9 @@
+import {useContext} from 'react';
+import ActiveCentralPaneRouteContext from '@libs/Navigation/AppNavigator/Navigators/ActiveCentralPaneRouteContext';
+import type {AuthScreensParamList, NavigationPartialRoute} from '@libs/Navigation/types';
+
+function useActiveCentralPaneRoute(): NavigationPartialRoute | undefined {
+ return useContext(ActiveCentralPaneRouteContext);
+}
+
+export default useActiveCentralPaneRoute;
diff --git a/src/hooks/useCancellationType.ts b/src/hooks/useCancellationType.ts
new file mode 100644
index 000000000000..bc34f5feea6f
--- /dev/null
+++ b/src/hooks/useCancellationType.ts
@@ -0,0 +1,43 @@
+import {useEffect, useMemo, useRef, useState} from 'react';
+import {useOnyx} from 'react-native-onyx';
+import type {CancellationType} from '@src/CONST';
+import CONST from '@src/CONST';
+import ONYXKEYS from '@src/ONYXKEYS';
+
+function useCancellationType(): CancellationType | undefined {
+ const [cancellationDetails] = useOnyx(ONYXKEYS.NVP_PRIVATE_CANCELLATION_DETAILS);
+
+ const [cancellationType, setCancellationType] = useState();
+
+ // Store initial cancellation details array in a ref for comparison
+ const previousCancellationDetails = useRef(cancellationDetails);
+
+ const memoizedCancellationType = useMemo(() => {
+ const pendingManualCancellation = cancellationDetails?.filter((detail) => detail.cancellationType === CONST.CANCELLATION_TYPE.MANUAL).find((detail) => !detail.cancellationDate);
+
+ // There is a pending manual cancellation - return manual cancellation type
+ if (pendingManualCancellation) {
+ return CONST.CANCELLATION_TYPE.MANUAL;
+ }
+
+ // There are no new items in the cancellation details NVP
+ if (previousCancellationDetails.current?.length === cancellationDetails?.length) {
+ return;
+ }
+
+ // There is a new item in the cancellation details NVP, it has to be an automatic cancellation, as pending manual cancellations are handled above
+ return CONST.CANCELLATION_TYPE.AUTOMATIC;
+ }, [cancellationDetails]);
+
+ useEffect(() => {
+ if (!memoizedCancellationType) {
+ return;
+ }
+
+ setCancellationType(memoizedCancellationType);
+ }, [memoizedCancellationType]);
+
+ return cancellationType;
+}
+
+export default useCancellationType;
diff --git a/src/hooks/usePaginatedReportActions.ts b/src/hooks/usePaginatedReportActions.ts
index b806c0dea95a..918831f27545 100644
--- a/src/hooks/usePaginatedReportActions.ts
+++ b/src/hooks/usePaginatedReportActions.ts
@@ -33,6 +33,7 @@ function usePaginatedReportActions(reportID?: string, reportActionID?: string) {
return {
reportActions,
linkedAction,
+ sortedAllReportActions,
};
}
diff --git a/src/hooks/useResetComposerFocus.ts b/src/hooks/useResetComposerFocus.ts
index e9f88ed93346..25fc578b6706 100644
--- a/src/hooks/useResetComposerFocus.ts
+++ b/src/hooks/useResetComposerFocus.ts
@@ -5,15 +5,15 @@ import type {TextInput} from 'react-native';
export default function useResetComposerFocus(inputRef: MutableRefObject) {
const isFocused = useIsFocused();
- const shouldResetFocus = useRef(false);
+ const shouldResetFocusRef = useRef(false);
useEffect(() => {
- if (!isFocused || !shouldResetFocus.current) {
+ if (!isFocused || !shouldResetFocusRef.current) {
return;
}
inputRef.current?.focus(); // focus input again
- shouldResetFocus.current = false;
+ shouldResetFocusRef.current = false;
}, [isFocused, inputRef]);
- return {isFocused, shouldResetFocus};
+ return {isFocused, shouldResetFocusRef};
}
diff --git a/src/hooks/useReviewDuplicatesNavigation.tsx b/src/hooks/useReviewDuplicatesNavigation.tsx
index f92abe63c852..e14731024c17 100644
--- a/src/hooks/useReviewDuplicatesNavigation.tsx
+++ b/src/hooks/useReviewDuplicatesNavigation.tsx
@@ -41,7 +41,7 @@ function useReviewDuplicatesNavigation(stepNames: string[], currentScreenName: S
Navigation.navigate(ROUTES.TRANSACTION_DUPLICATE_REVIEW_BILLABLE_PAGE.getRoute(threadReportID));
break;
default:
- // Navigation to confirm screen will be done in seperate PR
+ Navigation.navigate(ROUTES.TRANSACTION_DUPLICATE_CONFIRMATION_PAGE.getRoute(threadReportID));
break;
}
};
diff --git a/src/hooks/useSubscriptionPossibleCostSavings.ts b/src/hooks/useSubscriptionPossibleCostSavings.ts
index 059445ce002d..ef92009549fe 100644
--- a/src/hooks/useSubscriptionPossibleCostSavings.ts
+++ b/src/hooks/useSubscriptionPossibleCostSavings.ts
@@ -13,6 +13,10 @@ const POSSIBLE_COST_SAVINGS = {
[CONST.POLICY.TYPE.TEAM]: 1400,
[CONST.POLICY.TYPE.CORPORATE]: 3000,
},
+ [CONST.PAYMENT_CARD_CURRENCY.GBP]: {
+ [CONST.POLICY.TYPE.TEAM]: 800,
+ [CONST.POLICY.TYPE.CORPORATE]: 1400,
+ },
[CONST.PAYMENT_CARD_CURRENCY.NZD]: {
[CONST.POLICY.TYPE.TEAM]: 1600,
[CONST.POLICY.TYPE.CORPORATE]: 3200,
diff --git a/src/hooks/useSubscriptionPrice.ts b/src/hooks/useSubscriptionPrice.ts
index 9279ff94757d..0b71fe62c7c8 100644
--- a/src/hooks/useSubscriptionPrice.ts
+++ b/src/hooks/useSubscriptionPrice.ts
@@ -25,6 +25,16 @@ const SUBSCRIPTION_PRICES = {
[CONST.SUBSCRIPTION.TYPE.PAYPERUSE]: 1400,
},
},
+ [CONST.PAYMENT_CARD_CURRENCY.GBP]: {
+ [CONST.POLICY.TYPE.CORPORATE]: {
+ [CONST.SUBSCRIPTION.TYPE.ANNUAL]: 700,
+ [CONST.SUBSCRIPTION.TYPE.PAYPERUSE]: 1400,
+ },
+ [CONST.POLICY.TYPE.TEAM]: {
+ [CONST.SUBSCRIPTION.TYPE.ANNUAL]: 400,
+ [CONST.SUBSCRIPTION.TYPE.PAYPERUSE]: 800,
+ },
+ },
[CONST.PAYMENT_CARD_CURRENCY.NZD]: {
[CONST.POLICY.TYPE.CORPORATE]: {
[CONST.SUBSCRIPTION.TYPE.ANNUAL]: 1600,
diff --git a/src/languages/en.ts b/src/languages/en.ts
index b431531bc854..b37ad15004e4 100755
--- a/src/languages/en.ts
+++ b/src/languages/en.ts
@@ -366,6 +366,8 @@ export default {
initialValue: 'Initial value',
currentDate: 'Current date',
value: 'Value',
+ downloadFailedTitle: 'Download failed',
+ downloadFailedDescription: "Your download couldn't be completed. Please try again later.",
},
location: {
useCurrent: 'Use current location',
@@ -805,7 +807,7 @@ export default {
reviewDuplicates: 'Review duplicates',
keepAll: 'Keep all',
confirmApprove: 'Confirm approval amount',
- confirmApprovalAmount: "Approve what's not on hold, or approve the entire report.",
+ confirmApprovalAmount: 'Approve only compliant expenses, or approve the entire report.',
confirmApprovalAllHoldAmount: ({transactionCount}: ConfirmHoldExpenseParams) =>
`${Str.pluralize('This expense is', 'These expenses are', transactionCount)} on hold. Do you want to approve anyway?`,
confirmPay: 'Confirm payment amount',
@@ -1240,6 +1242,7 @@ export default {
submissionFrequency: 'Submission frequency',
submissionFrequencyDateOfMonth: 'Date of month',
addApprovalsTitle: 'Add approvals',
+ addApprovalButton: 'Add approval workflow',
approver: 'Approver',
connectBankAccount: 'Connect bank account',
addApprovalsDescription: 'Require additional approval before authorizing a payment.',
@@ -1270,6 +1273,15 @@ export default {
autoReportingFrequencyErrorMessage: "Submission frequency couldn't be changed. Please try again or contact support.",
monthlyOffsetErrorMessage: "Monthly frequency couldn't be changed. Please try again or contact support.",
},
+ workflowsCreateApprovalsPage: {
+ title: 'Add approval workflow',
+ },
+ workflowsEditApprovalsPage: {
+ title: 'Edit approval workflow',
+ },
+ workflowsExpensesFromPage: {
+ title: 'Expenses from',
+ },
workflowsApprovalPage: {
genericErrorMessage: "The approver couldn't be changed. Please try again or contact support.",
},
@@ -1479,6 +1491,7 @@ export default {
title: 'What do you want to do today?',
errorSelection: 'Please make a selection to continue.',
errorContinue: 'Please press continue to get set up.',
+ errorBackButton: 'Please finish the setup questions to start using the app.',
[CONST.ONBOARDING_CHOICES.EMPLOYER]: 'Get paid back by my employer',
[CONST.ONBOARDING_CHOICES.MANAGE_TEAM]: "Manage my team's expenses",
[CONST.ONBOARDING_CHOICES.PERSONAL_SPEND]: 'Track and budget expenses',
@@ -2061,6 +2074,14 @@ export default {
lineItemLevel: 'Line-item level',
reportLevel: 'Report level',
appliedOnExport: 'Not imported into Expensify, applied on export',
+ shareNote: {
+ header: 'Easily share your workspace with other members.',
+ content: {
+ firstPart:
+ 'Share this QR code or copy the link below to make it easy for members to request access to your workspace. All requests to join the workspace will show up in the',
+ secondPart: 'room for your review.',
+ },
+ },
createNewConnection: 'Create new connection',
reuseExistingConnection: 'Reuse existing connection',
existingConnections: 'Existing connections',
@@ -2085,9 +2106,7 @@ export default {
taxesJournalEntrySwitchNote: "QuickBooks Online doesn't support taxes on journal entries. Please change your export option to vendor bill or check.",
exportDescription: 'Configure how Expensify data exports to QuickBooks Online.',
date: 'Export date',
- exportExpenses: 'Export out-of-pocket expenses as',
exportInvoices: 'Export invoices to',
- exportCompany: 'Export company cards as',
exportExpensifyCard: 'Export Expensify Card transactions as',
deepDiveExpensifyCard: 'Expensify Card transactions will automatically export to an "Expensify Card Liability Account" created with',
deepDiveExpensifyCardIntegration: 'our integration.',
@@ -2190,13 +2209,11 @@ export default {
tag: 'Tags',
},
exportDescription: 'Configure how Expensify data exports to Xero.',
- exportCompanyCard: 'Export company card expenses as',
purchaseBill: 'Purchase bill',
- exportDeepDiveCompanyCard: 'Each exported expense posts as a bank transaction to the Xero bank account below, and transaction dates will match the dates on your bank statement.',
+ exportDeepDiveCompanyCard: 'Exported expenses will post as bank transactions to the Xero bank account below, and transaction dates will match the dates on your bank statement.',
bankTransactions: 'Bank transactions',
xeroBankAccount: 'Xero bank account',
xeroBankAccountDescription: 'Choose where expenses will post as bank transactions.',
- exportExpenses: 'Export out-of-pocket expenses as',
exportExpensesDescription: 'Reports will export as a purchase bill with the date and status selected below.',
purchaseBillDate: 'Purchase bill date',
exportInvoices: 'Export invoices as',
@@ -2239,7 +2256,7 @@ export default {
},
},
noAccountsFound: 'No accounts found',
- noAccountsFoundDescription: 'Add the account in Xero and sync the connection again.',
+ noAccountsFoundDescription: 'Please add the account in Xero and sync the connection again.',
},
sageIntacct: {
preferredExporter: 'Preferred exporter',
@@ -2263,19 +2280,16 @@ export default {
},
},
reimbursableExpenses: {
- label: 'Export reimbursable expenses as',
- description: 'Reimbursable expenses will export as expense reports to Sage Intacct. Bills will export as vendor bills.',
+ description: 'Set how out-of-pocket expenses export to Sage Intacct.',
values: {
[CONST.SAGE_INTACCT_REIMBURSABLE_EXPENSE_TYPE.EXPENSE_REPORT]: 'Expense reports',
[CONST.SAGE_INTACCT_REIMBURSABLE_EXPENSE_TYPE.VENDOR_BILL]: 'Vendor bills',
},
},
nonReimbursableExpenses: {
- label: 'Export non-reimbursable expenses as',
- description:
- 'Non-reimbursable expenses will export to Sage Intacct as either credit card transactions or vendor bills and credit the account selected below. Learn more about assigning cards to individual accounts.',
+ description: 'Set how company card purchases export to Sage Intacct.',
values: {
- [CONST.SAGE_INTACCT_NON_REIMBURSABLE_EXPENSE_TYPE.CREDIT_CARD_CHARGE]: 'Credit card transactions',
+ [CONST.SAGE_INTACCT_NON_REIMBURSABLE_EXPENSE_TYPE.CREDIT_CARD_CHARGE]: 'Credit cards',
[CONST.SAGE_INTACCT_NON_REIMBURSABLE_EXPENSE_TYPE.VENDOR_BILL]: 'Vendor bills',
},
},
@@ -2283,27 +2297,25 @@ export default {
defaultVendor: 'Default vendor',
defaultVendorDescription: (isReimbursable: boolean): string =>
`Set a default vendor that will apply to ${isReimbursable ? '' : 'non-'}reimbursable expenses that don't have a matching vendor in Sage Intacct.`,
- exportDescription: 'Configure how data in Expensify gets exported to Sage Intacct.',
+ exportDescription: 'Configure how Expensify data exports to Sage Intacct.',
exportPreferredExporterNote:
'The preferred exporter can be any workspace admin, but must also be a Domain Admin if you set different export accounts for individual company cards in Domain Settings.',
exportPreferredExporterSubNote: 'Once set, the preferred exporter will see reports for export in their account.',
noAccountsFound: 'No accounts found',
- noAccountsFoundDescription: `Add the account in Sage Intacct and sync the connection again.`,
+ noAccountsFoundDescription: `Please add the account in Sage Intacct and sync the connection again.`,
autoSync: 'Auto-sync',
- autoSyncDescription: 'Sync Sage Intacct and Expensify automatically, every day.',
+ autoSyncDescription: 'Expensify will automatically sync with Sage Intacct every day.',
inviteEmployees: 'Invite employees',
inviteEmployeesDescription:
'Import Sage Intacct employee records and invite employees to this workspace. Your approval workflow will default to manager approval and can be furthered configured on the Members page.',
syncReimbursedReports: 'Sync reimbursed reports',
- syncReimbursedReportsDescription: 'When a report is reimbursed using Expensify ACH, the corresponding puchase bill will be created in the Sage Intacct account below.',
+ syncReimbursedReportsDescription: 'Any time a report is paid using Expensify ACH, the corresponding bill payment will be created in the Sage Intacct account below.',
paymentAccount: 'Sage Intacct payment account',
},
netsuite: {
subsidiary: 'Subsidiary',
subsidiarySelectDescription: "Choose the subsidiary in NetSuite that you'd like to import data from.",
exportDescription: 'Configure how Expensify data exports to NetSuite.',
- exportReimbursable: 'Export reimbursable expenses as',
- exportNonReimbursable: 'Export non-reimbursable expenses as',
exportInvoices: 'Export invoices to',
journalEntriesTaxPostingAccount: 'Journal entries tax posting account',
journalEntriesProvTaxPostingAccount: 'Journal entries provincial tax posting account',
@@ -2474,7 +2486,7 @@ export default {
},
import: {
expenseCategories: 'Expense categories',
- expenseCategoriesDescription: 'NetSuite expense categories import into Expensify as categories.',
+ expenseCategoriesDescription: 'Your NetSuite expense categories will import into Expensify as categories.',
crossSubsidiaryCustomers: 'Cross-subsidiary customer/projects',
importFields: {
departments: {
@@ -2607,7 +2619,7 @@ export default {
toggleImportTitleFirstPart: 'Choose how to handle Sage Intacct ',
toggleImportTitleSecondPart: ' in Expensify.',
expenseTypes: 'Expense types',
- expenseTypesDescription: 'Sage Intacct expense types import into Expensify as categories.',
+ expenseTypesDescription: 'Your Sage Intacct expense types will import into Expensify as categories.',
importTaxDescription: 'Import purchase tax rate from Sage Intacct.',
userDefinedDimensions: 'User-defined dimensions',
addUserDefinedDimension: 'Add user-defined dimension',
@@ -2643,6 +2655,10 @@ export default {
collect: 'Collect',
},
expensifyCard: {
+ issueAndManageCards: 'Issue and manage your Expensify Cards',
+ getStartedIssuing: 'Get started by issuing your first virtual or physical card.',
+ disclaimer:
+ 'The Expensify Visa® Commercial Card is issued by The Bancorp Bank, N.A., Member FDIC, pursuant to a license from Visa U.S.A. Inc. and may not be used at all merchants that accept Visa cards. Apple® and the Apple logo® are trademarks of Apple Inc., registered in the U.S. and other countries. App Store is a service mark of Apple Inc. Google Play and the Google Play logo are trademarks of Google LLC.',
issueCard: 'Issue card',
name: 'Name',
lastFour: 'Last 4',
@@ -2662,10 +2678,33 @@ export default {
chooseExistingBank: 'Choose an existing business bank account to pay your Expensify Card balance, or add a new bank account',
accountEndingIn: 'Account ending in',
addNewBankAccount: 'Add a new bank account',
+ settlementAccount: 'Settlement account',
+ settlementAccountDescription: 'Choose an account to pay your Expensify Card balance.',
+ settlementAccountInfoPt1: 'Make sure this account matches your',
+ settlementAccountInfoPt2: 'so Continuous Reconciliation works properly.',
+ reconciliationAccount: 'Reconciliation account',
+ settlementFrequency: 'Settlement frequency',
+ settlementFrequencyDescription: 'Choose how often you’ll pay your Expensify Card balance.',
+ settlementFrequencyInfo: 'If you’d like to switch to monthly settlement, you’ll need to connect your bank account via Plaid and have a positive 90-day balance history.',
+ frequency: {
+ daily: 'Daily',
+ monthly: 'Monthly',
+ },
cardDetails: 'Card details',
virtual: 'Virtual',
physical: 'Physical',
deactivate: 'Deactivate card',
+ changeCardLimit: 'Change card limit',
+ changeLimit: 'Change limit',
+ smartLimitWarning: (limit: string) => `If you change this card’s limit to ${limit}, new transactions will be declined until you approve more expenses on the card.`,
+ monthlyLimitWarning: (limit: string) => `If you change this card’s limit to ${limit}, new transactions will be declined until next month.`,
+ fixedLimitWarning: (limit: string) => `If you change this card’s limit to ${limit}, new transactions will be declined.`,
+ changeCardLimitType: 'Change card limit type',
+ changeLimitType: 'Change limit type',
+ changeCardSmartLimitTypeWarning: (limit: string) =>
+ `If you change this card's limit type to Smart Limit, new transactions will be declined because the ${limit} unapproved limit has already been reached.`,
+ changeCardMonthlyLimitTypeWarning: (limit: string) =>
+ `If you change this card's limit type to Monthly, new transactions will be declined because the ${limit} monthly limit has already been reached.`,
},
categories: {
deleteCategories: 'Delete categories',
@@ -2777,6 +2816,7 @@ export default {
subtitle: "Report fields apply to all spend and can be helpful when you'd like to prompt for extra information.",
disableReportFields: 'Disable report fields',
disableReportFieldsConfirmation: 'Are you sure? Text and date fields will be deleted, and lists will be disabled.',
+ importedFromAccountingSoftware: 'The report fields below are imported from your',
textType: 'Text',
dateType: 'Date',
dropdownType: 'List',
@@ -2849,6 +2889,7 @@ export default {
taxRate: 'Tax rate',
error: {
taxRateAlreadyExists: 'This tax name is already in use.',
+ taxCodeAlreadyExists: 'This tax code is already in use.',
valuePercentageRange: 'Please enter a valid percentage between 0 and 100.',
customNameRequired: 'Custom tax name is required.',
deleteFailureMessage: 'An error occurred while deleting the tax rate. Please try again or ask Concierge for help.',
@@ -2867,6 +2908,8 @@ export default {
enableMultiple: 'Enable rates',
},
importedFromAccountingSoftware: 'The taxes below are imported from your',
+ taxCode: 'Tax code',
+ updateTaxCodeFailureMessage: 'An error occurred while updating the tax code, please try again.',
},
emptyWorkspace: {
title: 'Create a workspace',
@@ -2924,6 +2967,8 @@ export default {
benefit4: 'Customizable limits and spend controls',
addWorkEmail: 'Add work email address',
checkingDomain: "Hang tight! We're still working on enabling your Expensify Cards. Check back here in a few minutes.",
+ issueAndManageCards: 'Issue and manage your Expensify Cards',
+ getStartedIssuing: 'Get started by issuing your first virtual or physical card.',
issueCard: 'Issue card',
issueNewCard: {
whoNeedsCard: 'Who needs a card?',
@@ -2952,6 +2997,11 @@ export default {
limitType: 'Limit type',
name: 'Name',
},
+ deactivateCardModal: {
+ deactivate: 'Deactivate',
+ deactivateCard: 'Deactivate card',
+ deactivateConfirmation: 'Deactivating this card will decline all future transactions and can’t be undone.',
+ },
},
reimburse: {
captureReceipts: 'Capture receipts',
@@ -3157,11 +3207,17 @@ export default {
'The preferred exporter can be any workspace admin, but must also be a Domain Admin if you set different export accounts for individual company cards in Domain Settings.',
exportPreferredExporterSubNote: 'Once set, the preferred exporter will see reports for export in their account.',
exportAs: 'Export as',
+ exportOutOfPocket: 'Export out-of-pocket expenses as',
+ exportCompanyCard: 'Export company card expenses as',
defaultVendor: 'Default vendor',
autoSync: 'Auto-sync',
reimbursedReports: 'Sync reimbursed reports',
cardReconciliation: 'Card reconciliation',
reconciliationAccount: 'Reconciliation account',
+ continuousReconciliation: 'Continuous Reconciliation',
+ saveHoursOnReconciliation:
+ 'Save hours on reconciliation each accounting period by having Expensify continuously reconcile Expensify Card statements and settlements on your behalf.',
+ enableContinuousReconciliation: 'In order to enable Continuous Reconciliation, please enable ',
chooseReconciliationAccount: {
chooseBankAccount: 'Choose the bank account that your Expensify Card payments will be reconciled against.',
accountMatches: 'Make sure this account matches your ',
@@ -3345,11 +3401,31 @@ export default {
reportFields: {
title: 'Report fields',
description: `Report fields let you specify header-level details, distinct from tags that pertain to expenses on individual line items. These details can encompass specific project names, business trip information, locations, and more.`,
- pricing: {
- onlyAvailableOnPlan: 'Report fields are only available on the Control plan, starting at ',
- amount: '$9 ',
- perActiveMember: 'per active member per month.',
- },
+ onlyAvailableOnPlan: 'Report fields are only available on the Control plan, starting at ',
+ },
+ [CONST.POLICY.CONNECTIONS.NAME.NETSUITE]: {
+ title: 'NetSuite',
+ description: `Enjoy automated syncing and reduce manual entries with the Expensify + NetSuite integration. Gain in-depth, realtime financial insights with native and custom segment support, including project and customer mapping.`,
+ onlyAvailableOnPlan: 'Our NetSuite integration is only available on the Control plan, starting at ',
+ },
+ [CONST.POLICY.CONNECTIONS.NAME.SAGE_INTACCT]: {
+ title: 'Sage Intacct',
+ description: `Enjoy automated syncing and reduce manual entries with the Expensify + Sage Intacct integration. Gain in-depth, real-time financial insights with user-defined dimensions, as well as expense coding by department, class, location, customer, and project (job).`,
+ onlyAvailableOnPlan: 'Our Sage Intacct integration is only available on the Control plan, starting at ',
+ },
+ glCodes: {
+ title: 'GL codes',
+ description: `Add GL codes to your categories and tags for easy export of expenses to your accounting and payroll systems.`,
+ onlyAvailableOnPlan: 'GL codes are only available on the Control plan, starting at ',
+ },
+ glAndPayrollCodes: {
+ title: 'GL & Payroll codes',
+ description: `Add GL & Payroll codes to your categories for easy export of expenses to your accounting and payroll systems.`,
+ onlyAvailableOnPlan: 'GL & Payroll codes are only available on the Control plan, starting at ',
+ },
+ pricing: {
+ amount: '$9 ',
+ perActiveMember: 'per active member per month.',
},
note: {
upgradeWorkspace: 'Upgrade your workspace to access this feature, or',
@@ -3505,6 +3581,14 @@ export default {
unhold: 'Unhold',
noOptionsAvailable: 'No options available for the selected group of expenses.',
},
+ offlinePrompt: "You can't take this action right now.",
+ filtersHeader: 'Filters',
+ filters: {
+ date: {
+ before: 'Before',
+ after: 'After',
+ },
+ },
},
genericErrorPage: {
title: 'Uh-oh, something went wrong!',
@@ -3608,7 +3692,7 @@ export default {
type: {
changeField: ({oldValue, newValue, fieldName}: ChangeFieldParams) => `changed ${fieldName} from ${oldValue} to ${newValue}`,
changeFieldEmpty: ({newValue, fieldName}: ChangeFieldParams) => `changed ${fieldName} to ${newValue}`,
- changePolicy: ({fromPolicy, toPolicy}: ChangePolicyParams) => `changed policy from ${fromPolicy} to ${toPolicy}`,
+ changePolicy: ({fromPolicy, toPolicy}: ChangePolicyParams) => `changed workspace from ${fromPolicy} to ${toPolicy}`,
changeType: ({oldType, newType}: ChangeTypeParams) => `changed type from ${oldType} to ${newType}`,
delegateSubmit: ({delegateUser, originalManager}: DelegateSubmitParams) => `sent this report to ${delegateUser} since ${originalManager} is on vacation`,
exportedToCSV: `exported this report to CSV`,
@@ -3630,7 +3714,8 @@ export default {
reimbursementACHCancelled: `canceled the payment`,
reimbursementAccountChanged: `couldn’t process the payment, as the payer changed bank accounts`,
reimbursementDelayed: `processed the payment but it’s delayed by 1-2 more business days`,
- selectedForRandomAudit: `[randomly selected](https://help.expensify.com/articles/expensify-classic/reports/Set-a-random-report-audit-schedule) for review`,
+ selectedForRandomAudit: `randomly selected for review`,
+ selectedForRandomAuditMarkdown: `[randomly selected](https://help.expensify.com/articles/expensify-classic/reports/Set-a-random-report-audit-schedule) for review`,
share: ({to}: ShareParams) => `invited user ${to}`,
unshare: ({to}: UnshareParams) => `removed user ${to}`,
stripePaid: ({amount, currency}: StripePaidParams) => `paid ${currency}${amount}`,
@@ -3930,8 +4015,13 @@ export default {
categoryToKeep: 'Choose which category to keep',
isTransactionBillable: 'Choose if transaction is billable',
keepThisOne: 'Keep this one',
+ confirmDetails: `Confirm the details you're keeping`,
+ confirmDuplicatesInfo: `The duplicate requests you don't keep will be held for the member to delete`,
hold: 'Hold',
},
+ reportViolations: {
+ [CONST.REPORT_VIOLATIONS.FIELD_REQUIRED]: (fieldName: string) => `${fieldName} is required`,
+ },
violationDismissal: {
rter: {
manual: 'marked this receipt as cash.',
@@ -3981,6 +4071,7 @@ export default {
mergedWithCashTransaction: 'matched a receipt to this transaction.',
},
subscription: {
+ authenticatePaymentCard: 'Authenticate payment card',
mobileReducedFunctionalityMessage: 'You can’t make changes to your subscription in the mobile app.',
badge: {
freeTrial: ({numOfDays}) => `Free trial: ${numOfDays} ${numOfDays === 1 ? 'day' : 'days'} left`,
@@ -4051,7 +4142,7 @@ export default {
},
cardSection: {
title: 'Payment',
- subtitle: 'Add a payment card to pay for your Expensify subscription.',
+ subtitle: 'Add a card to pay for your Expensify subscription.',
addCardButton: 'Add payment card',
cardNextPayment: ({nextPaymentDate}) => `Your next payment date is ${nextPaymentDate}.`,
cardEnding: ({cardNumber}) => `Card ending in ${cardNumber}`,
@@ -4143,6 +4234,33 @@ export default {
whatsMainReason: "What's the main reason you're disabling auto-renew?",
renewsOn: ({date}) => `Renews on ${date}.`,
},
+ requestEarlyCancellation: {
+ title: 'Request early cancellation',
+ subtitle: 'What’s the main reason you’re requesting early cancellation?',
+ subscriptionCanceled: {
+ title: 'Subscription canceled',
+ subtitle: 'Your annual subscription has been canceled.',
+ info: 'If you want to keep using your workspace(s) on a pay-per-use basis, you’re all set.',
+ preventFutureActivity: {
+ part1: 'If you’d like to prevent future activity and charges, you must ',
+ link: 'delete your workspace(s)',
+ part2: '. Note that when you delete your workspace(s), you’ll be charged for any outstanding activity that was incurred during the current calendar month.',
+ },
+ },
+ requestSubmitted: {
+ title: 'Request submitted',
+ subtitle: {
+ part1: 'Thanks for letting us know you’re interested in canceling your subscription. We’re reviewing your request and will be in touch soon via your chat with ',
+ link: 'Concierge',
+ part2: '.',
+ },
+ },
+ acknowledgement: {
+ part1: 'By requesting early cancellation, I acknowledge and agree that Expensify has no obligation to grant such request under the Expensify ',
+ link: 'Terms of Service',
+ part2: ' or other applicable services agreement between me and Expensify and that Expensify retains sole discretion with regard to granting any such request.',
+ },
+ },
},
feedbackSurvey: {
tooLimited: 'Functionality needs improvement',
diff --git a/src/languages/es.ts b/src/languages/es.ts
index 6c5841e2a7d6..54c97e41afb1 100644
--- a/src/languages/es.ts
+++ b/src/languages/es.ts
@@ -156,7 +156,7 @@ export default {
magicCode: 'Código mágico',
twoFactorCode: 'Autenticación de dos factores',
workspaces: 'Espacios de trabajo',
- inbox: 'Bandeja de entrada',
+ inbox: 'Recibidos',
group: 'Grupo',
profile: 'Perfil',
referral: 'Remisión',
@@ -356,6 +356,8 @@ export default {
initialValue: 'Valor inicial',
currentDate: 'Fecha actual',
value: 'Valor',
+ downloadFailedTitle: 'Error en la descarga',
+ downloadFailedDescription: 'No se pudo completar la descarga. Por favor, inténtalo más tarde.',
},
connectionComplete: {
title: 'Conexión completa',
@@ -801,7 +803,7 @@ export default {
reviewDuplicates: 'Revisar duplicados',
keepAll: 'Mantener todos',
confirmApprove: 'Confirmar importe a aprobar',
- confirmApprovalAmount: 'Aprueba lo que no está bloqueado, o aprueba todo el informe.',
+ confirmApprovalAmount: 'Aprueba sólo los gastos conformes, o aprueba todo el informe.',
confirmApprovalAllHoldAmount: ({transactionCount}: ConfirmHoldExpenseParams) =>
`${Str.pluralize('Este gasto está bloqueado', 'Estos gastos están bloqueados', transactionCount)}. ¿Quieres ${Str.pluralize(
'aprobar',
@@ -1249,6 +1251,7 @@ export default {
submissionFrequency: 'Frecuencia de envíos',
submissionFrequencyDateOfMonth: 'Fecha del mes',
addApprovalsTitle: 'Requerir aprobaciones',
+ addApprovalButton: 'Añadir flujo de aprobación',
approver: 'Aprobador',
connectBankAccount: 'Conectar cuenta bancaria',
addApprovalsDescription: 'Requiere una aprobación adicional antes de autorizar un pago.',
@@ -1279,6 +1282,15 @@ export default {
autoReportingFrequencyErrorMessage: 'La frecuencia de envío no pudo ser cambiada. Por favor, inténtelo de nuevo o contacte al soporte.',
monthlyOffsetErrorMessage: 'La frecuencia mensual no pudo ser cambiada. Por favor, inténtelo de nuevo o contacte al soporte.',
},
+ workflowsCreateApprovalsPage: {
+ title: 'Añadir flujo de aprobación',
+ },
+ workflowsEditApprovalsPage: {
+ title: 'Edicion flujo de aprobación',
+ },
+ workflowsExpensesFromPage: {
+ title: 'Gastos de',
+ },
workflowsApprovalPage: {
genericErrorMessage: 'El aprobador no pudo ser cambiado. Por favor, inténtelo de nuevo o contacte al soporte.',
},
@@ -1491,6 +1503,7 @@ export default {
title: '¿Qué quieres hacer hoy?',
errorSelection: 'Por favor selecciona una opción para continuar.',
errorContinue: 'Por favor, haz click en continuar para configurar tu cuenta.',
+ errorBackButton: 'Por favor, finaliza las preguntas de configuración para empezar a utilizar la aplicación.',
[CONST.ONBOARDING_CHOICES.EMPLOYER]: 'Cobrar de mi empresa',
[CONST.ONBOARDING_CHOICES.MANAGE_TEAM]: 'Gestionar los gastos de mi equipo',
[CONST.ONBOARDING_CHOICES.PERSONAL_SPEND]: 'Controlar y presupuestar gastos',
@@ -2096,6 +2109,14 @@ export default {
lineItemLevel: 'Nivel de partida',
reportLevel: 'Nivel de informe',
appliedOnExport: 'No se importa en Expensify, se aplica en la exportación',
+ shareNote: {
+ header: 'Comparte fácilmente tu espacio de trabajo con otros miembros.',
+ content: {
+ firstPart:
+ 'Comparte este código QR o copia el enlace de abajo para facilitar que los miembros soliciten acceso a tu espacio de trabajo. Todas las solicitudes para unirse al espacio de trabajo aparecerán en la sala',
+ secondPart: 'para tu revisión.',
+ },
+ },
createNewConnection: 'Crear una nueva conexión',
reuseExistingConnection: 'Reutilizar la conexión existente',
existingConnections: 'Conexiones existentes',
@@ -2116,9 +2137,7 @@ export default {
taxesJournalEntrySwitchNote: 'QuickBooks Online no permite impuestos en los asientos contables. Por favor, cambia la opción de exportación a factura de proveedor o cheque.',
locationsAdditionalDescription:
'QuickBooks Online no permite lugares en facturas de proveedores o cheques. Como tienes activadas los lugares en tu espacio de trabajo, estas opciones de exportación no están disponibles.',
- exportExpenses: 'Exportar gastos de bolsillo como',
exportInvoices: 'Exportar facturas a',
- exportCompany: 'Exportar tarjetas de empresa como',
exportDescription: 'Configura cómo se exportan los datos de Expensify a QuickBooks Online.',
date: 'Fecha de exportación',
deepDiveExpensifyCard: 'Las transacciones de la Tarjeta Expensify se exportan automáticamente a una "Cuenta de Responsabilidad de la Tarjeta Expensify" creada con',
@@ -2232,14 +2251,12 @@ export default {
tag: 'Etiquetas',
},
exportDescription: 'Configura cómo se exportan los datos de Expensify a Xero.',
- exportCompanyCard: 'Exportar gastos de la tarjeta de empresa como',
purchaseBill: 'Factura de compra',
exportDeepDiveCompanyCard:
'Cada gasto exportado se contabiliza como una transacción bancaria en la cuenta bancaria de Xero que selecciones a continuación. Las fechas de las transacciones coincidirán con las fechas de el extracto bancario.',
bankTransactions: 'Transacciones bancarias',
xeroBankAccount: 'Cuenta bancaria de Xero',
xeroBankAccountDescription: 'Elige dónde se contabilizarán los gastos como transacciones bancarias.',
- exportExpenses: 'Exportar gastos por cuenta propia como',
exportExpensesDescription: 'Los informes se exportarán como una factura de compra utilizando la fecha y el estado que seleccione a continuación',
purchaseBillDate: 'Fecha de la factura de compra',
exportInvoices: 'Exportar facturas como',
@@ -2308,19 +2325,16 @@ export default {
},
},
reimbursableExpenses: {
- label: 'Gastos reembolsables de exportación como',
- description: 'Los gastos reembolsables se exportarán como informes de gastos a Sage Intacct. Las facturas se exportarán como facturas de proveedores.',
+ description: 'Establece cómo se exportan los gastos por cuenta propia a Sage Intacct.',
values: {
[CONST.SAGE_INTACCT_REIMBURSABLE_EXPENSE_TYPE.EXPENSE_REPORT]: 'Informes de gastos',
[CONST.SAGE_INTACCT_REIMBURSABLE_EXPENSE_TYPE.VENDOR_BILL]: 'Facturas de proveedores',
},
},
nonReimbursableExpenses: {
- label: 'Exportar gastos no reembolsables como',
- description:
- 'Los gastos no reembolsables se exportarán a Sage Intacct como transacciones de tarjetas de crédito o facturas de proveedores y se abonarán en la cuenta seleccionada a continuación. Más información sobre la asignación de tarjetas a cuentas individuales.',
+ description: 'Establece cómo se exportan las compras con tarjeta de empresa a Sage Intacct.',
values: {
- [CONST.SAGE_INTACCT_NON_REIMBURSABLE_EXPENSE_TYPE.CREDIT_CARD_CHARGE]: 'Transacciones con tarjeta de crédito',
+ [CONST.SAGE_INTACCT_NON_REIMBURSABLE_EXPENSE_TYPE.CREDIT_CARD_CHARGE]: 'Tarjetas de crédito',
[CONST.SAGE_INTACCT_NON_REIMBURSABLE_EXPENSE_TYPE.VENDOR_BILL]: 'Facturas de proveedores',
},
},
@@ -2348,8 +2362,6 @@ export default {
subsidiary: 'Subsidiaria',
subsidiarySelectDescription: 'Elige la subsidiaria de NetSuite de la que deseas importar datos.',
exportDescription: 'Configura cómo se exportan los datos de Expensify a NetSuite.',
- exportReimbursable: 'Exportar gastos reembolsables como',
- exportNonReimbursable: 'Exportar gastos no reembolsables como',
exportInvoices: 'Exportar facturas a',
journalEntriesTaxPostingAccount: 'Cuenta de registro de impuestos de asientos contables',
journalEntriesProvTaxPostingAccount: 'Cuenta de registro de impuestos provinciales de asientos contables',
@@ -2692,6 +2704,10 @@ export default {
collect: 'Recolectar',
},
expensifyCard: {
+ issueAndManageCards: 'Emitir y gestionar Tarjetas Expensify',
+ getStartedIssuing: 'Empieza emitiendo tu primera tarjeta virtual o física.',
+ disclaimer:
+ 'La tarjeta comercial Expensify Visa® es emitida por The Bancorp Bank, N.A., miembro de la FDIC, en virtud de una licencia de Visa U.S.A. Inc. y no puede utilizarse en todos los comercios que aceptan tarjetas Visa. Apple® y el logotipo de Apple® son marcas comerciales de Apple Inc. registradas en EE.UU. y otros países. App Store es una marca de servicio de Apple Inc. Google Play y el logotipo de Google Play son marcas comerciales de Google LLC.',
issueCard: 'Emitir tarjeta',
name: 'Nombre',
lastFour: '4 últimos',
@@ -2706,16 +2722,41 @@ export default {
'A la hora de calcular tu límite restante, tenemos en cuenta una serie de factores: su antigüedad como cliente, la información relacionada con tu negocio que nos facilitaste al darte de alta y el efectivo disponible en tu cuenta bancaria comercial. Tu límite restante puede fluctuar a diario.',
cashBack: 'Reembolso',
cashBackDescription: 'El saldo de devolución se basa en el gasto mensual realizado con la tarjeta Expensify en tu espacio de trabajo.',
- issueNewCard: '',
+ issueNewCard: 'Emitir nueva tarjeta',
finishSetup: 'Terminar configuración',
chooseBankAccount: 'Elegir cuenta bancaria',
chooseExistingBank: 'Elige una cuenta bancaria comercial existente para pagar el saldo de su Tarjeta Expensify o añade una nueva cuenta bancaria.',
accountEndingIn: 'Cuenta terminada en',
addNewBankAccount: 'Añadir nueva cuenta bancaria',
+ settlementAccount: 'Cuenta de liquidación',
+ settlementAccountDescription: 'Elige una cuenta para pagar el saldo de tu Tarjeta Expensify.',
+ settlementAccountInfoPt1: 'Asegúrate de que esta cuenta coincide con tu',
+ settlementAccountInfoPt2: 'para que Reconciliación Continua funcione correctamente.',
+ reconciliationAccount: 'Cuenta de conciliación',
+ settlementFrequency: 'Frecuencia de liquidación',
+ settlementFrequencyDescription: 'Elige con qué frecuencia pagarás el saldo de tu Tarjeta Expensify',
+ settlementFrequencyInfo:
+ 'Si deseas cambiar a la liquidación mensual, deberás conectar tu cuenta bancaria a través de Plaid y tener un historial de saldo positivo en los últimos 90 días.',
+ frequency: {
+ daily: 'Cada día',
+ monthly: 'Mensual',
+ },
cardDetails: 'Datos de la tarjeta',
virtual: 'Virtual',
physical: 'Física',
deactivate: 'Desactivar tarjeta',
+ changeCardLimit: 'Modificar el límite de la tarjeta',
+ changeLimit: 'Modificar límite',
+ smartLimitWarning: (limit: string) =>
+ `Si cambias el límite de esta tarjeta a ${limit}, las nuevas transacciones serán rechazadas hasta que apruebes antiguos gastos de la tarjeta.`,
+ monthlyLimitWarning: (limit: string) => `Si cambias el límite de esta tarjeta a ${limit}, las nuevas transacciones serán rechazadas hasta el próximo mes.`,
+ fixedLimitWarning: (limit: string) => `Si cambias el límite de esta tarjeta a ${limit}, se rechazarán las nuevas transacciones.`,
+ changeCardLimitType: 'Modificar el tipo de límite de la tarjeta',
+ changeLimitType: 'Modificar el tipo de límite',
+ changeCardSmartLimitTypeWarning: (limit: string) =>
+ `Si cambias el tipo de límite de esta tarjeta a Límite inteligente, las nuevas transacciones serán rechazadas porque ya se ha alcanzado el límite de ${limit} no aprobado.`,
+ changeCardMonthlyLimitTypeWarning: (limit: string) =>
+ `Si cambias el tipo de límite de esta tarjeta a Mensual, las nuevas transacciones serán rechazadas porque ya se ha alcanzado el límite de ${limit} mensual.`,
},
categories: {
deleteCategories: 'Eliminar categorías',
@@ -2827,6 +2868,7 @@ export default {
subtitle: 'Los campos de informe se aplican a todos los gastos y pueden ser útiles cuando quieras solicitar información adicional.',
disableReportFields: 'Desactivar campos de informe',
disableReportFieldsConfirmation: 'Estás seguro? Se eliminarán los campos de texto y fecha y se desactivarán las listas.',
+ importedFromAccountingSoftware: 'Campos de informes importadas desde',
textType: 'Texto',
dateType: 'Fecha',
dropdownType: 'Lista',
@@ -2899,6 +2941,7 @@ export default {
taxReclaimableOn: 'Impuesto recuperable en',
error: {
taxRateAlreadyExists: 'Ya existe un impuesto con este nombre.',
+ taxCodeAlreadyExists: 'Ya existe un código de impuesto con este nombre.',
customNameRequired: 'El nombre del impuesto es obligatorio.',
valuePercentageRange: 'Por favor, introduce un porcentaje entre 0 y 100.',
deleteFailureMessage: 'Se ha producido un error al intentar eliminar la tasa de impuesto. Por favor, inténtalo más tarde.',
@@ -2917,6 +2960,8 @@ export default {
enableMultiple: 'Activar tasas',
},
importedFromAccountingSoftware: 'Impuestos importadas desde',
+ taxCode: 'Código de impuesto',
+ updateTaxCodeFailureMessage: 'Se produjo un error al actualizar el código tributario, inténtelo nuevamente.',
},
emptyWorkspace: {
title: 'Crea un espacio de trabajo',
@@ -3147,11 +3192,17 @@ export default {
'Puede ser cualquier administrador del espacio de trabajo, pero debe ser un administrador de dominio si configura diferentes cuentas de exportación para tarjetas de empresa individuales en la configuración del dominio.',
exportPreferredExporterSubNote: 'Una vez configurado, el exportador preferido verá los informes para exportar en tu cuenta.',
exportAs: 'Exportar cómo',
+ exportOutOfPocket: ' Exportar gastos por cuenta propia como',
+ exportCompanyCard: 'Exportar gastos de la tarjeta de empresa como',
defaultVendor: 'Proveedor predeterminado',
autoSync: 'Autosincronización',
reimbursedReports: 'Sincronizar informes reembolsados',
cardReconciliation: 'Conciliación de tarjetas',
reconciliationAccount: 'Cuenta de conciliación',
+ continuousReconciliation: 'Conciliación continua',
+ saveHoursOnReconciliation:
+ 'Ahorra horas de conciliación en cada período contable haciendo que Expensify concilie continuamente los extractos y liquidaciones de la Tarjeta Expensify en tu nombre.',
+ enableContinuousReconciliation: 'Para activar la Conciliación Continua, activa la ',
chooseReconciliationAccount: {
chooseBankAccount: 'Elige la cuenta bancaria con la que se conciliarán los pagos de tu Tarjeta Expensify.',
accountMatches: 'Asegúrate de que esta cuenta coincide con ',
@@ -3173,6 +3224,8 @@ export default {
addWorkEmail: 'Añadir correo electrónico de trabajo',
checkingDomain: '¡Un momento! Estamos todavía trabajando para habilitar tu Tarjeta Expensify. Vuelve aquí en unos minutos.',
issueCard: 'Emitir tarjeta',
+ issueAndManageCards: 'Emitir y gestionar Tarjetas Expensify',
+ getStartedIssuing: 'Empieza emitiendo tu primera tarjeta virtual o física.',
issueNewCard: {
whoNeedsCard: '¿Quién necesita una tarjeta?',
findMember: 'Buscar miembro',
@@ -3200,6 +3253,11 @@ export default {
limitType: 'Tipo de limite',
name: 'Nombre',
},
+ deactivateCardModal: {
+ deactivate: 'Desactivar',
+ deactivateCard: 'Desactivar tarjeta',
+ deactivateConfirmation: 'Al desactivar esta tarjeta, se rechazarán todas las transacciones futuras y no se podrá deshacer.',
+ },
},
reimburse: {
captureReceipts: 'Captura recibos',
@@ -3399,17 +3457,37 @@ export default {
reportFields: {
title: 'Los campos',
description: `Los campos de informe permiten especificar detalles a nivel de cabecera, distintos de las etiquetas que pertenecen a los gastos en partidas individuales. Estos detalles pueden incluir nombres de proyectos específicos, información sobre viajes de negocios, ubicaciones, etc.`,
- pricing: {
- onlyAvailableOnPlan: 'Los campos de informe sólo están disponibles en el plan Control, a partir de ',
- amount: '$9 ',
- perActiveMember: 'por miembro activo al mes.',
- },
+ onlyAvailableOnPlan: 'Los campos de informe sólo están disponibles en el plan Control, a partir de ',
+ },
+ [CONST.POLICY.CONNECTIONS.NAME.NETSUITE]: {
+ title: 'NetSuite',
+ description: `Disfruta de la sincronización automática y reduce las entradas manuales con la integración Expensify + NetSuite. Obtén información financiera en profundidad y en tiempo real con la compatibilidad nativa y personalizada con segmentos, incluida la asignación de proyectos y clientes.`,
+ onlyAvailableOnPlan: 'Nuestra integración NetSuite sólo está disponible en el plan Control, a partir de ',
+ },
+ [CONST.POLICY.CONNECTIONS.NAME.SAGE_INTACCT]: {
+ title: 'Sage Intacct',
+ description: `Disfruta de una sincronización automatizada y reduce las entradas manuales con la integración Expensify + Sage Intacct. Obtén información financiera en profundidad y en tiempo real con dimensiones definidas por el usuario, así como codificación de gastos por departamento, clase, ubicación, cliente y proyecto (trabajo).`,
+ onlyAvailableOnPlan: 'Nuestra integración Sage Intacct sólo está disponible en el plan Control, a partir de ',
+ },
+ glCodes: {
+ title: 'Códigos de libro mayor',
+ description: `Añada códigos de libro mayor a sus categorías para exportar fácilmente los gastos a sus sistemas de contabilidad y nómina.`,
+ onlyAvailableOnPlan: 'Los códigos de libro mayor solo están disponibles en el plan Control, a partir de ',
+ },
+ glAndPayrollCodes: {
+ title: 'Códigos de libro mayor y nómina',
+ description: `Añada códigos de libro mayor y nómina a sus categorías para exportar fácilmente los gastos a sus sistemas de contabilidad y nómina.`,
+ onlyAvailableOnPlan: 'Los códigos de libro mayor y nómina solo están disponibles en el plan Control, a partir de ',
},
note: {
upgradeWorkspace: 'Mejore su espacio de trabajo para acceder a esta función, o',
learnMore: 'más información',
aboutOurPlans: 'sobre nuestros planes y precios.',
},
+ pricing: {
+ amount: '$9 ',
+ perActiveMember: 'por miembro activo al mes.',
+ },
upgradeToUnlock: 'Desbloquear esta función',
completed: {
headline: 'Has mejorado tu espacio de trabajo.',
@@ -3545,7 +3623,7 @@ export default {
screenShareRequest: 'Expensify te está invitando a compartir la pantalla',
},
search: {
- selectMultiple: 'Seleccionar múltiples',
+ selectMultiple: 'Seleccionar varios',
resultsAreLimited: 'Los resultados de búsqueda están limitados.',
searchResults: {
emptyResults: {
@@ -3560,6 +3638,14 @@ export default {
unhold: 'Desbloquear',
noOptionsAvailable: 'No hay opciones disponibles para el grupo de gastos seleccionado.',
},
+ offlinePrompt: 'No puedes realizar esta acción ahora mismo.',
+ filtersHeader: 'Filtros',
+ filters: {
+ date: {
+ before: 'Antes de',
+ after: 'Después de',
+ },
+ },
},
genericErrorPage: {
title: '¡Oh-oh, algo salió mal!',
@@ -3664,7 +3750,7 @@ export default {
type: {
changeField: ({oldValue, newValue, fieldName}: ChangeFieldParams) => `cambió ${fieldName} de ${oldValue} a ${newValue}`,
changeFieldEmpty: ({newValue, fieldName}: ChangeFieldParams) => `cambió ${fieldName} a ${newValue}`,
- changePolicy: ({fromPolicy, toPolicy}: ChangePolicyParams) => `cambió policy de ${fromPolicy} a ${toPolicy}`,
+ changePolicy: ({fromPolicy, toPolicy}: ChangePolicyParams) => `cambió el espacio de trabajo de ${fromPolicy} a ${toPolicy}`,
changeType: ({oldType, newType}: ChangeTypeParams) => `cambió type de ${oldType} a ${newType}`,
delegateSubmit: ({delegateUser, originalManager}: DelegateSubmitParams) => `envié este informe a ${delegateUser} ya que ${originalManager} está de vacaciones`,
exportedToCSV: `exportó este informe a CSV`,
@@ -3686,7 +3772,8 @@ export default {
reimbursementACHCancelled: `canceled the payment`,
reimbursementAccountChanged: `no se pudo procesar el pago porque el pagador cambió de cuenta bancaria`,
reimbursementDelayed: `procesó el pago pero se retrasó entre 1 y 2 días hábiles más`,
- selectedForRandomAudit: `[seleccionado al azar](https://help.expensify.com/articles/expensify-classic/reports/Set-a-random-report-audit-schedule) para revisión`,
+ selectedForRandomAudit: `seleccionado al azar para revisión`,
+ selectedForRandomAuditMarkdown: `[seleccionado al azar](https://help.expensify.com/articles/expensify-classic/reports/Set-a-random-report-audit-schedule) para revisión`,
share: ({to}: ShareParams) => `usuario invitado ${to}`,
unshare: ({to}: UnshareParams) => `usuario eliminado ${to}`,
stripePaid: ({amount, currency}: StripePaidParams) => `pagado ${currency}${amount}`,
@@ -4449,8 +4536,13 @@ export default {
categoryToKeep: 'Elige qué categoría quieres conservar',
isTransactionBillable: 'Elige si la transacción es facturable',
keepThisOne: 'Mantener éste',
+ confirmDetails: 'Confirma los detalles que conservas',
+ confirmDuplicatesInfo: 'Los duplicados que no conserves se guardarán para que el usuario los elimine',
hold: 'Bloqueado',
},
+ reportViolations: {
+ [CONST.REPORT_VIOLATIONS.FIELD_REQUIRED]: (fieldName: string) => `${fieldName} es obligatorio`,
+ },
violationDismissal: {
rter: {
manual: 'marcó el recibo como pagado en efectivo.',
@@ -4500,6 +4592,7 @@ export default {
mergedWithCashTransaction: 'encontró un recibo para esta transacción.',
},
subscription: {
+ authenticatePaymentCard: 'Autenticar tarjeta de pago',
mobileReducedFunctionalityMessage: 'No puedes hacer cambios en tu suscripción en la aplicación móvil.',
badge: {
freeTrial: ({numOfDays}) => `Prueba gratuita: ${numOfDays === 1 ? `queda 1 día` : `quedan ${numOfDays} días`}`,
@@ -4572,7 +4665,7 @@ export default {
},
cardSection: {
title: 'Pago',
- subtitle: 'Añade una tarjeta de pago para abonar tu suscripción a Expensify',
+ subtitle: 'Añade una tarjeta para pagar tu suscripción a Expensify.',
addCardButton: 'Añade tarjeta de pago',
cardNextPayment: ({nextPaymentDate}) => `Tu próxima fecha de pago es ${nextPaymentDate}.`,
cardEnding: ({cardNumber}) => `Tarjeta terminada en ${cardNumber}`,
@@ -4664,6 +4757,33 @@ export default {
whatsMainReason: '¿Cuál es la razón principal por la que deseas desactivar la auto-renovación?',
renewsOn: ({date}) => `Se renovará el ${date}.`,
},
+ requestEarlyCancellation: {
+ title: 'Solicitar cancelación anticipada',
+ subtitle: '¿Cuál es la razón principal por la que solicitas la cancelación anticipada?',
+ subscriptionCanceled: {
+ title: 'Suscripción cancelada',
+ subtitle: 'Tu suscripción anual ha sido cancelada.',
+ info: 'Ya puedes seguir utilizando tu(s) espacio(s) de trabajo en la modalidad de pago por uso.',
+ preventFutureActivity: {
+ part1: 'Si quieres evitar actividad y cargos futuros, debes ',
+ link: 'eliminar tu(s) espacio(s) de trabajo.',
+ part2: ' Ten en cuenta que cuando elimines tu(s) espacio(s) de trabajo, se te cobrará cualquier actividad pendienteque se haya incurrido durante el mes en curso.',
+ },
+ },
+ requestSubmitted: {
+ title: 'Solicitud enviada',
+ subtitle: {
+ part1: 'Gracias por hacernos saber que deseas cancelar tu suscripción. Estamos revisando tu solicitud y nos comunicaremos contigo en breve a través de tu chat con ',
+ link: 'Concierge',
+ part2: '.',
+ },
+ },
+ acknowledgement: {
+ part1: 'Al solicitar la cancelación anticipada, reconozco y acepto que Expensify no tiene ninguna obligación de conceder dicha solicitud en virtud de las ',
+ link: 'Condiciones de Servicio',
+ part2: ' de Expensify u otro acuerdo de servicios aplicable entre Expensify y yo, y que Expensify se reserva el derecho exclusivo a conceder dicha solicitud.',
+ },
+ },
},
feedbackSurvey: {
tooLimited: 'Hay que mejorar la funcionalidad',
diff --git a/src/libs/API/parameters/ApproveMoneyRequestParams.ts b/src/libs/API/parameters/ApproveMoneyRequestParams.ts
index fc6528047f22..521226aeeff2 100644
--- a/src/libs/API/parameters/ApproveMoneyRequestParams.ts
+++ b/src/libs/API/parameters/ApproveMoneyRequestParams.ts
@@ -2,6 +2,16 @@ type ApproveMoneyRequestParams = {
reportID: string;
approvedReportActionID: string;
full?: boolean;
+ optimisticHoldReportID?: string;
+ optimisticHoldActionID?: string;
+ /**
+ * Stringified JSON object with type of following structure:
+ * Array<{
+ * optimisticReportActionID: string;
+ * oldReportActionID: string;
+ * }>
+ */
+ optimisticHoldReportExpenseActionIDs?: string;
};
export default ApproveMoneyRequestParams;
diff --git a/src/libs/API/parameters/CancelBillingSubscriptionParams.ts b/src/libs/API/parameters/CancelBillingSubscriptionParams.ts
new file mode 100644
index 000000000000..252a7420d27d
--- /dev/null
+++ b/src/libs/API/parameters/CancelBillingSubscriptionParams.ts
@@ -0,0 +1,8 @@
+import type {FeedbackSurveyOptionID} from '@src/CONST';
+
+type CancelBillingSubscriptionParams = {
+ cancellationReason: FeedbackSurveyOptionID;
+ cancellationNote: string;
+};
+
+export default CancelBillingSubscriptionParams;
diff --git a/src/libs/API/parameters/CompleteSplitBillParams.ts b/src/libs/API/parameters/CompleteSplitBillParams.ts
index a1731d32fcc4..67ca011b70d9 100644
--- a/src/libs/API/parameters/CompleteSplitBillParams.ts
+++ b/src/libs/API/parameters/CompleteSplitBillParams.ts
@@ -10,6 +10,7 @@ type CompleteSplitBillParams = {
splits: string;
taxCode?: string;
taxAmount?: number;
+ billable?: boolean;
};
export default CompleteSplitBillParams;
diff --git a/src/libs/API/parameters/ExportSearchItemsToCSVParams.ts b/src/libs/API/parameters/ExportSearchItemsToCSVParams.ts
new file mode 100644
index 000000000000..979a7b99886f
--- /dev/null
+++ b/src/libs/API/parameters/ExportSearchItemsToCSVParams.ts
@@ -0,0 +1,10 @@
+import type {SearchQuery} from '@src/types/onyx/SearchResults';
+
+type ExportSearchItemsToCSVParams = {
+ query: SearchQuery;
+ reportIDList: string[];
+ transactionIDList: string[];
+ policyIDs: string[];
+};
+
+export default ExportSearchItemsToCSVParams;
diff --git a/src/libs/API/parameters/OpenPolicyReportFieldsPageParams.ts b/src/libs/API/parameters/OpenPolicyReportFieldsPageParams.ts
new file mode 100644
index 000000000000..80d5d1f1aa07
--- /dev/null
+++ b/src/libs/API/parameters/OpenPolicyReportFieldsPageParams.ts
@@ -0,0 +1,5 @@
+type OpenPolicyReportFieldsPageParams = {
+ policyID: string;
+};
+
+export default OpenPolicyReportFieldsPageParams;
diff --git a/src/libs/API/parameters/PayMoneyRequestParams.ts b/src/libs/API/parameters/PayMoneyRequestParams.ts
index 229cb0b8c98e..3ad98429b75c 100644
--- a/src/libs/API/parameters/PayMoneyRequestParams.ts
+++ b/src/libs/API/parameters/PayMoneyRequestParams.ts
@@ -7,6 +7,16 @@ type PayMoneyRequestParams = {
paymentMethodType: PaymentMethodType;
full: boolean;
amount?: number;
+ optimisticHoldReportID?: string;
+ optimisticHoldActionID?: string;
+ /**
+ * Stringified JSON object with type of following structure:
+ * Array<{
+ * optimisticReportActionID: string;
+ * oldReportActionID: string;
+ * }>
+ */
+ optimisticHoldReportExpenseActionIDs?: string;
};
export default PayMoneyRequestParams;
diff --git a/src/libs/API/parameters/TransactionMergeParams.ts b/src/libs/API/parameters/TransactionMergeParams.ts
new file mode 100644
index 000000000000..9e2516e2637f
--- /dev/null
+++ b/src/libs/API/parameters/TransactionMergeParams.ts
@@ -0,0 +1,17 @@
+type TransactionMergeParams = {
+ transactionID: string;
+ transactionIDList: string[];
+ created: string;
+ merchant: string;
+ amount: number;
+ currency: string;
+ category: string;
+ comment: string;
+ billable: boolean;
+ reimbursable: boolean;
+ tag: string;
+ receiptID: number;
+ reportID: string;
+};
+
+export default TransactionMergeParams;
diff --git a/src/libs/API/parameters/UpdateExpensifyCardLimitParams.ts b/src/libs/API/parameters/UpdateExpensifyCardLimitParams.ts
new file mode 100644
index 000000000000..d64094185a79
--- /dev/null
+++ b/src/libs/API/parameters/UpdateExpensifyCardLimitParams.ts
@@ -0,0 +1,7 @@
+type UpdateExpensifyCardLimitParams = {
+ authToken: string;
+ cardID: number;
+ limit: number;
+};
+
+export default UpdateExpensifyCardLimitParams;
diff --git a/src/libs/API/parameters/UpdatePolicyTaxCodeParams.ts b/src/libs/API/parameters/UpdatePolicyTaxCodeParams.ts
new file mode 100644
index 000000000000..9218b0223a2c
--- /dev/null
+++ b/src/libs/API/parameters/UpdatePolicyTaxCodeParams.ts
@@ -0,0 +1,8 @@
+type UpdatePolicyTaxCodeParams = {
+ policyID: string;
+ oldTaxCode: string;
+ newTaxCode: string;
+ taxID: string;
+};
+
+export default UpdatePolicyTaxCodeParams;
diff --git a/src/libs/API/parameters/VerifySetupIntentParams.ts b/src/libs/API/parameters/VerifySetupIntentParams.ts
new file mode 100644
index 000000000000..60138f607ad4
--- /dev/null
+++ b/src/libs/API/parameters/VerifySetupIntentParams.ts
@@ -0,0 +1,5 @@
+type VerifySetupIntentParams = {
+ accountID: number;
+ isVerifying: boolean;
+};
+export default VerifySetupIntentParams;
diff --git a/src/libs/API/parameters/index.ts b/src/libs/API/parameters/index.ts
index ac040752f0d0..997eb415a848 100644
--- a/src/libs/API/parameters/index.ts
+++ b/src/libs/API/parameters/index.ts
@@ -1,6 +1,7 @@
export type {default as ActivatePhysicalExpensifyCardParams} from './ActivatePhysicalExpensifyCardParams';
export type {default as AddNewContactMethodParams} from './AddNewContactMethodParams';
export type {default as AddPaymentCardParams} from './AddPaymentCardParams';
+export type {default as VerifySetupIntentParams} from './VerifySetupIntentParams';
export type {default as AddPersonalBankAccountParams} from './AddPersonalBankAccountParams';
export type {default as RestartBankAccountSetupParams} from './RestartBankAccountSetupParams';
export type {default as AddSchoolPrincipalParams} from './AddSchoolPrincipalParams';
@@ -196,6 +197,7 @@ export type {default as CreatePolicyTaxParams} from './CreatePolicyTaxParams';
export type {default as OpenPolicyWorkflowsPageParams} from './OpenPolicyWorkflowsPageParams';
export type {default as OpenPolicyDistanceRatesPageParams} from './OpenPolicyDistanceRatesPageParams';
export type {default as OpenPolicyTaxesPageParams} from './OpenPolicyTaxesPageParams';
+export type {default as OpenPolicyReportFieldsPageParams} from './OpenPolicyReportFieldsPageParams';
export type {default as EnablePolicyTaxesParams} from './EnablePolicyTaxesParams';
export type {default as OpenPolicyMoreFeaturesPageParams} from './OpenPolicyMoreFeaturesPageParams';
export type {default as CreatePolicyDistanceRateParams} from './CreatePolicyDistanceRateParams';
@@ -221,6 +223,7 @@ export type {default as UpdatePolicyConnectionConfigParams} from './UpdatePolicy
export type {default as UpdateManyPolicyConnectionConfigurationsParams} from './UpdateManyPolicyConnectionConfigurationsParams';
export type {default as RemovePolicyConnectionParams} from './RemovePolicyConnectionParams';
export type {default as RenamePolicyTaxParams} from './RenamePolicyTaxParams';
+export type {default as UpdatePolicyTaxCodeParams} from './UpdatePolicyTaxCodeParams';
export type {default as CompleteGuidedSetupParams} from './CompleteGuidedSetupParams';
export type {default as DismissTrackExpenseActionableWhisperParams} from './DismissTrackExpenseActionableWhisperParams';
export type {default as ConvertTrackedExpenseToRequestParams} from './ConvertTrackedExpenseToRequestParams';
@@ -233,6 +236,7 @@ export type {default as SearchParams} from './Search';
export type {default as SendInvoiceParams} from './SendInvoiceParams';
export type {default as PayInvoiceParams} from './PayInvoiceParams';
export type {default as MarkAsCashParams} from './MarkAsCashParams';
+export type {default as TransactionMergeParams} from './TransactionMergeParams';
export type {default as UpdateSubscriptionTypeParams} from './UpdateSubscriptionTypeParams';
export type {default as SignUpUserParams} from './SignUpUserParams';
export type {default as UpdateSubscriptionAutoRenewParams} from './UpdateSubscriptionAutoRenewParams';
@@ -256,7 +260,10 @@ export type {default as RemoveWorkspaceReportFieldListValueParams} from './Remov
export type {default as OpenPolicyExpensifyCardsPageParams} from './OpenPolicyExpensifyCardsPageParams';
export type {default as RequestExpensifyCardLimitIncreaseParams} from './RequestExpensifyCardLimitIncreaseParams';
export type {default as UpdateNetSuiteGenericTypeParams} from './UpdateNetSuiteGenericTypeParams';
+export type {default as CancelBillingSubscriptionParams} from './CancelBillingSubscriptionParams';
export type {default as UpdateNetSuiteCustomFormIDParams} from './UpdateNetSuiteCustomFormIDParams';
export type {default as UpdateSageIntacctGenericTypeParams} from './UpdateSageIntacctGenericTypeParams';
export type {default as UpdateNetSuiteCustomersJobsParams} from './UpdateNetSuiteCustomersJobsParams';
export type {default as CopyExistingPolicyConnectionParams} from './CopyExistingPolicyConnectionParams';
+export type {default as ExportSearchItemsToCSVParams} from './ExportSearchItemsToCSVParams';
+export type {default as UpdateExpensifyCardLimitParams} from './UpdateExpensifyCardLimitParams';
diff --git a/src/libs/API/types.ts b/src/libs/API/types.ts
index a8f51b6673d7..70a0e91aba10 100644
--- a/src/libs/API/types.ts
+++ b/src/libs/API/types.ts
@@ -31,9 +31,12 @@ const WRITE_COMMANDS = {
REPORT_VIRTUAL_EXPENSIFY_CARD_FRAUD: 'ReportVirtualExpensifyCardFraud',
REQUEST_REPLACEMENT_EXPENSIFY_CARD: 'RequestReplacementExpensifyCard',
ACTIVATE_PHYSICAL_EXPENSIFY_CARD: 'ActivatePhysicalExpensifyCard',
+ UPDATE_EXPENSIFY_CARD_LIMIT: 'UpdateExpensifyCardLimit',
CHRONOS_REMOVE_OOO_EVENT: 'Chronos_RemoveOOOEvent',
MAKE_DEFAULT_PAYMENT_METHOD: 'MakeDefaultPaymentMethod',
ADD_PAYMENT_CARD: 'AddPaymentCard',
+ ADD_PAYMENT_CARD_GBP: 'AddPaymentCardGBP',
+ VERIFY_SETUP_INTENT: 'User_VerifySetupIntent',
TRANSFER_WALLET_BALANCE: 'TransferWalletBalance',
DELETE_PAYMENT_CARD: 'DeletePaymentCard',
UPDATE_PRONOUNS: 'UpdatePronouns',
@@ -207,6 +210,7 @@ const WRITE_COMMANDS = {
DELETE_POLICY_TAXES: 'DeletePolicyTaxes',
UPDATE_POLICY_TAX_VALUE: 'UpdatePolicyTaxValue',
RENAME_POLICY_TAX: 'RenamePolicyTax',
+ UPDATE_POLICY_TAX_CODE: 'UpdatePolicyTaxCode',
CREATE_POLICY_DISTANCE_RATE: 'CreatePolicyDistanceRate',
REQUEST_WORKSPACE_OWNER_CHANGE: 'RequestWorkspaceOwnerChange',
ADD_BILLING_CARD_AND_REQUEST_WORKSPACE_OWNER_CHANGE: 'AddBillingCardAndRequestPolicyOwnerChange',
@@ -228,6 +232,7 @@ const WRITE_COMMANDS = {
SEND_INVOICE: 'SendInvoice',
PAY_INVOICE: 'PayInvoice',
MARK_AS_CASH: 'MarkAsCash',
+ TRANSACTION_MERGE: 'Transaction_Merge',
UPDATE_SUBSCRIPTION_TYPE: 'UpdateSubscriptionType',
SIGN_UP_USER: 'SignUpUser',
UPDATE_SUBSCRIPTION_AUTO_RENEW: 'UpdateSubscriptionAutoRenew',
@@ -295,6 +300,7 @@ const WRITE_COMMANDS = {
UPDATE_SAGE_INTACCT_SYNC_REIMBURSEMENT_ACCOUNT_ID: 'UpdateSageIntacctSyncReimbursementAccountID',
CONNECT_POLICY_TO_NETSUITE: 'ConnectPolicyToNetSuite',
CLEAR_OUTSTANDING_BALANCE: 'ClearOutstandingBalance',
+ CANCEL_BILLING_SUBSCRIPTION: 'CancelBillingSubscriptionNewDot',
UPDATE_SAGE_INTACCT_ENTITY: 'UpdateSageIntacctEntity',
UPDATE_SAGE_INTACCT_BILLABLE: 'UpdateSageIntacctBillable',
UPDATE_SAGE_INTACCT_DEPARTMENT_MAPPING: 'UpdateSageIntacctDepartmentsMapping',
@@ -312,6 +318,7 @@ const WRITE_COMMANDS = {
UPDATE_SAGE_INTACCT_NON_REIMBURSABLE_EXPENSES_CREDIT_CARD_CHARGE_EXPORT_DEFAULT_VENDOR: 'UpdateSageIntacctNonreimbursableExpensesCreditCardChargeExportDefaultVendor',
UPDATE_SAGE_INTACCT_NON_REIMBURSABLE_EXPENSES_EXPORT_ACCOUNT: 'UpdateSageIntacctNonreimbursableExpensesExportAccount',
UPDATE_SAGE_INTACCT_NON_REIMBURSABLE_EXPENSES_EXPORT_VENDOR: 'UpdateSageIntacctNonreimbursableExpensesExportVendor',
+ EXPORT_SEARCH_ITEMS_TO_CSV: 'ExportSearchToCSV',
} as const;
type WriteCommand = ValueOf;
@@ -334,8 +341,11 @@ type WriteCommandParameters = {
[WRITE_COMMANDS.REPORT_VIRTUAL_EXPENSIFY_CARD_FRAUD]: Parameters.ReportVirtualExpensifyCardFraudParams;
[WRITE_COMMANDS.REQUEST_REPLACEMENT_EXPENSIFY_CARD]: Parameters.RequestReplacementExpensifyCardParams;
[WRITE_COMMANDS.ACTIVATE_PHYSICAL_EXPENSIFY_CARD]: Parameters.ActivatePhysicalExpensifyCardParams;
+ [WRITE_COMMANDS.UPDATE_EXPENSIFY_CARD_LIMIT]: Parameters.UpdateExpensifyCardLimitParams;
[WRITE_COMMANDS.MAKE_DEFAULT_PAYMENT_METHOD]: Parameters.MakeDefaultPaymentMethodParams;
[WRITE_COMMANDS.ADD_PAYMENT_CARD]: Parameters.AddPaymentCardParams;
+ [WRITE_COMMANDS.ADD_PAYMENT_CARD_GBP]: Parameters.AddPaymentCardParams;
+ [WRITE_COMMANDS.VERIFY_SETUP_INTENT]: Parameters.VerifySetupIntentParams;
[WRITE_COMMANDS.DELETE_PAYMENT_CARD]: Parameters.DeletePaymentCardParams;
[WRITE_COMMANDS.UPDATE_PRONOUNS]: Parameters.UpdatePronounsParams;
[WRITE_COMMANDS.UPDATE_DISPLAY_NAME]: Parameters.UpdateDisplayNameParams;
@@ -515,6 +525,7 @@ type WriteCommandParameters = {
[WRITE_COMMANDS.REQUEST_WORKSPACE_OWNER_CHANGE]: Parameters.RequestWorkspaceOwnerChangeParams;
[WRITE_COMMANDS.ADD_BILLING_CARD_AND_REQUEST_WORKSPACE_OWNER_CHANGE]: Parameters.AddBillingCardAndRequestWorkspaceOwnerChangeParams;
[WRITE_COMMANDS.RENAME_POLICY_TAX]: Parameters.RenamePolicyTaxParams;
+ [WRITE_COMMANDS.UPDATE_POLICY_TAX_CODE]: Parameters.UpdatePolicyTaxCodeParams;
[WRITE_COMMANDS.SET_POLICY_DISTANCE_RATES_UNIT]: Parameters.SetPolicyDistanceRatesUnitParams;
[WRITE_COMMANDS.SET_POLICY_DISTANCE_RATES_DEFAULT_CATEGORY]: Parameters.SetPolicyDistanceRatesDefaultCategoryParams;
[WRITE_COMMANDS.ENABLE_DISTANCE_REQUEST_TAX]: Parameters.SetPolicyDistanceRatesDefaultCategoryParams;
@@ -522,6 +533,7 @@ type WriteCommandParameters = {
[WRITE_COMMANDS.MARK_AS_EXPORTED]: Parameters.MarkAsExportedParams;
[WRITE_COMMANDS.REQUEST_EXPENSIFY_CARD_LIMIT_INCREASE]: Parameters.RequestExpensifyCardLimitIncreaseParams;
[WRITE_COMMANDS.CLEAR_OUTSTANDING_BALANCE]: null;
+ [WRITE_COMMANDS.CANCEL_BILLING_SUBSCRIPTION]: Parameters.CancelBillingSubscriptionParams;
[WRITE_COMMANDS.UPDATE_POLICY_CONNECTION_CONFIG]: Parameters.UpdatePolicyConnectionConfigParams;
[WRITE_COMMANDS.UPDATE_MANY_POLICY_CONNECTION_CONFIGS]: Parameters.UpdateManyPolicyConnectionConfigurationsParams;
@@ -542,6 +554,7 @@ type WriteCommandParameters = {
[WRITE_COMMANDS.SEND_INVOICE]: Parameters.SendInvoiceParams;
[WRITE_COMMANDS.PAY_INVOICE]: Parameters.PayInvoiceParams;
[WRITE_COMMANDS.MARK_AS_CASH]: Parameters.MarkAsCashParams;
+ [WRITE_COMMANDS.TRANSACTION_MERGE]: Parameters.TransactionMergeParams;
[WRITE_COMMANDS.UPDATE_SUBSCRIPTION_TYPE]: Parameters.UpdateSubscriptionTypeParams;
[WRITE_COMMANDS.SIGN_UP_USER]: Parameters.SignUpUserParams;
[WRITE_COMMANDS.UPDATE_SUBSCRIPTION_AUTO_RENEW]: Parameters.UpdateSubscriptionAutoRenewParams;
@@ -630,6 +643,7 @@ type WriteCommandParameters = {
[WRITE_COMMANDS.UPDATE_SAGE_INTACCT_PROJECTS_MAPPING]: Parameters.UpdateSageIntacctGenericTypeParams<'mapping', SageIntacctMappingValue>;
[WRITE_COMMANDS.UPDATE_SAGE_INTACCT_SYNC_TAX_CONFIGURATION]: Parameters.UpdateSageIntacctGenericTypeParams<'enabled', boolean>;
[WRITE_COMMANDS.UPDATE_SAGE_INTACCT_USER_DIMENSION]: Parameters.UpdateSageIntacctGenericTypeParams<'dimensions', string>;
+ [WRITE_COMMANDS.EXPORT_SEARCH_ITEMS_TO_CSV]: Parameters.ExportSearchItemsToCSVParams;
};
const READ_COMMANDS = {
@@ -670,6 +684,7 @@ const READ_COMMANDS = {
OPEN_POLICY_CATEGORIES_PAGE: 'OpenPolicyCategoriesPage',
OPEN_POLICY_TAGS_PAGE: 'OpenPolicyTagsPage',
OPEN_POLICY_TAXES_PAGE: 'OpenPolicyTaxesPage',
+ OPEN_POLICY_REPORT_FIELDS_PAGE: 'OpenPolicyReportFieldsPage',
OPEN_POLICY_EXPENSIFY_CARDS_PAGE: 'OpenPolicyExpensifyCardsPage',
OPEN_WORKSPACE_INVITE_PAGE: 'OpenWorkspaceInvitePage',
OPEN_DRAFT_WORKSPACE_REQUEST: 'OpenDraftWorkspaceRequest',
@@ -681,6 +696,7 @@ const READ_COMMANDS = {
OPEN_POLICY_INITIAL_PAGE: 'OpenPolicyInitialPage',
SEARCH: 'Search',
OPEN_SUBSCRIPTION_PAGE: 'OpenSubscriptionPage',
+ OPEN_DRAFT_DISTANCE_EXPENSE: 'OpenDraftDistanceExpense',
} as const;
type ReadCommand = ValueOf;
@@ -723,6 +739,7 @@ type ReadCommandParameters = {
[READ_COMMANDS.OPEN_POLICY_CATEGORIES_PAGE]: Parameters.OpenPolicyCategoriesPageParams;
[READ_COMMANDS.OPEN_POLICY_TAGS_PAGE]: Parameters.OpenPolicyTagsPageParams;
[READ_COMMANDS.OPEN_POLICY_TAXES_PAGE]: Parameters.OpenPolicyTaxesPageParams;
+ [READ_COMMANDS.OPEN_POLICY_REPORT_FIELDS_PAGE]: Parameters.OpenPolicyReportFieldsPageParams;
[READ_COMMANDS.OPEN_WORKSPACE_INVITE_PAGE]: Parameters.OpenWorkspaceInvitePageParams;
[READ_COMMANDS.OPEN_DRAFT_WORKSPACE_REQUEST]: Parameters.OpenDraftWorkspaceRequestParams;
[READ_COMMANDS.OPEN_POLICY_WORKFLOWS_PAGE]: Parameters.OpenPolicyWorkflowsPageParams;
@@ -734,6 +751,7 @@ type ReadCommandParameters = {
[READ_COMMANDS.OPEN_POLICY_INITIAL_PAGE]: Parameters.OpenPolicyInitialPageParams;
[READ_COMMANDS.SEARCH]: Parameters.SearchParams;
[READ_COMMANDS.OPEN_SUBSCRIPTION_PAGE]: null;
+ [READ_COMMANDS.OPEN_DRAFT_DISTANCE_EXPENSE]: null;
};
const SIDE_EFFECT_REQUEST_COMMANDS = {
@@ -745,7 +763,7 @@ const SIDE_EFFECT_REQUEST_COMMANDS = {
OPEN_OLD_DOT_LINK: 'OpenOldDotLink',
OPEN_REPORT: 'OpenReport',
RECONNECT_APP: 'ReconnectApp',
- ADD_PAYMENT_CARD_GBR: 'AddPaymentCardGBP',
+ ADD_PAYMENT_CARD_GBP: 'AddPaymentCardGBP',
REVEAL_EXPENSIFY_CARD_DETAILS: 'RevealExpensifyCardDetails',
SWITCH_TO_OLD_DOT: 'SwitchToOldDot',
TWO_FACTOR_AUTH_VALIDATE: 'TwoFactorAuth_Validate',
@@ -762,7 +780,7 @@ type SideEffectRequestCommandParameters = {
[SIDE_EFFECT_REQUEST_COMMANDS.JOIN_POLICY_VIA_INVITE_LINK]: Parameters.JoinPolicyInviteLinkParams;
[SIDE_EFFECT_REQUEST_COMMANDS.RECONNECT_APP]: Parameters.ReconnectAppParams;
[SIDE_EFFECT_REQUEST_COMMANDS.GENERATE_SPOTNANA_TOKEN]: Parameters.GenerateSpotnanaTokenParams;
- [SIDE_EFFECT_REQUEST_COMMANDS.ADD_PAYMENT_CARD_GBR]: Parameters.AddPaymentCardParams;
+ [SIDE_EFFECT_REQUEST_COMMANDS.ADD_PAYMENT_CARD_GBP]: Parameters.AddPaymentCardParams;
[SIDE_EFFECT_REQUEST_COMMANDS.ACCEPT_SPOTNANA_TERMS]: null;
[SIDE_EFFECT_REQUEST_COMMANDS.TWO_FACTOR_AUTH_VALIDATE]: Parameters.ValidateTwoFactorAuthParams;
};
diff --git a/src/libs/Accessibility/blurActiveElement/index.native.ts b/src/libs/Accessibility/blurActiveElement/index.native.ts
new file mode 100644
index 000000000000..fe84de5dd2bd
--- /dev/null
+++ b/src/libs/Accessibility/blurActiveElement/index.native.ts
@@ -0,0 +1,3 @@
+const blurActiveElement = () => {};
+
+export default blurActiveElement;
diff --git a/src/libs/Accessibility/blurActiveElement/index.ts b/src/libs/Accessibility/blurActiveElement/index.ts
new file mode 100644
index 000000000000..71040ea24623
--- /dev/null
+++ b/src/libs/Accessibility/blurActiveElement/index.ts
@@ -0,0 +1,8 @@
+const blurActiveElement = () => {
+ if (!(document.activeElement instanceof HTMLElement)) {
+ return;
+ }
+ document.activeElement.blur();
+};
+
+export default blurActiveElement;
diff --git a/src/libs/BankAccountUtils.ts b/src/libs/BankAccountUtils.ts
index d3c5bb4998a8..c781ccab3f33 100644
--- a/src/libs/BankAccountUtils.ts
+++ b/src/libs/BankAccountUtils.ts
@@ -5,5 +5,9 @@ import type * as OnyxTypes from '@src/types/onyx';
function getDefaultCompanyWebsite(session: OnyxEntry, user: OnyxEntry): string {
return user?.isFromPublicDomain ? 'https://' : `https://www.${Str.extractEmailDomain(session?.email ?? '')}`;
}
-// eslint-disable-next-line import/prefer-default-export
-export {getDefaultCompanyWebsite};
+
+function getLastFourDigits(bankAccountNumber: string): string {
+ return bankAccountNumber ? bankAccountNumber.slice(-4) : '';
+}
+
+export {getDefaultCompanyWebsite, getLastFourDigits};
diff --git a/src/libs/CardUtils.ts b/src/libs/CardUtils.ts
index 1f90513ad29d..a5dfe69bf40e 100644
--- a/src/libs/CardUtils.ts
+++ b/src/libs/CardUtils.ts
@@ -6,7 +6,8 @@ import CONST from '@src/CONST';
import type {TranslationPaths} from '@src/languages/types';
import type {OnyxValues} from '@src/ONYXKEYS';
import ONYXKEYS from '@src/ONYXKEYS';
-import type {Card, CardList} from '@src/types/onyx';
+import type {BankAccountList, Card, CardList} from '@src/types/onyx';
+import {isEmptyObject} from '@src/types/utils/EmptyObject';
import * as Localize from './Localize';
let allCards: OnyxValues[typeof ONYXKEYS.CARD_LIST] = {};
@@ -158,6 +159,13 @@ function getTranslationKeyForLimitType(limitType: ValueOf) {
+ if (!bankAccountsList || isEmptyObject(bankAccountsList)) {
+ return [];
+ }
+ return Object.values(bankAccountsList).filter((bankAccount) => bankAccount?.accountData?.type === CONST.BANK_ACCOUNT.TYPE.BUSINESS && bankAccount?.accountData?.allowDebit);
+}
+
export {
isExpensifyCard,
isCorporateCard,
@@ -171,4 +179,5 @@ export {
hasDetectedFraud,
getMCardNumberString,
getTranslationKeyForLimitType,
+ getEligibleBankAccountsForCard,
};
diff --git a/src/libs/EmojiUtils.ts b/src/libs/EmojiUtils.ts
index 007a892c048e..4be2edc5c128 100644
--- a/src/libs/EmojiUtils.ts
+++ b/src/libs/EmojiUtils.ts
@@ -1,5 +1,4 @@
import {Str} from 'expensify-common';
-import memoize from 'lodash/memoize';
import Onyx from 'react-native-onyx';
import type {OnyxEntry} from 'react-native-onyx';
import * as Emojis from '@assets/emojis';
@@ -11,6 +10,7 @@ import type {ReportActionReaction, UsersReactions} from '@src/types/onyx/ReportA
import type IconAsset from '@src/types/utils/IconAsset';
import type EmojiTrie from './EmojiTrie';
import type {SupportedLanguage} from './EmojiTrie';
+import memoize from './memoize';
type HeaderIndice = {code: string; index: number; icon: IconAsset};
type EmojiSpacer = {code: string; spacer: boolean};
@@ -41,9 +41,32 @@ Onyx.connect({
emoji = {...emoji, ...findEmojiByCode(item.code)};
}
const emojiWithSkinTones = Emojis.emojiCodeTableWithSkinTones[emoji.code];
+ if (!emojiWithSkinTones) {
+ return undefined;
+ }
return {...emojiWithSkinTones, count: item.count, lastUpdatedAt: item.lastUpdatedAt};
})
.filter((emoji): emoji is FrequentlyUsedEmoji => !!emoji) ?? [];
+
+ // On AddComment API response, each variant of the same emoji (with different skin tones) is
+ // treated as a separate entry due to unique emoji codes for each variant.
+ // So merge duplicate emojis, sum their counts, and use the latest lastUpdatedAt timestamp, then sort accordingly.
+ const frequentlyUsedEmojiCodesToObjects = new Map();
+ frequentlyUsedEmojis.forEach((emoji) => {
+ const existingEmoji = frequentlyUsedEmojiCodesToObjects.get(emoji.code);
+ if (existingEmoji) {
+ existingEmoji.count += emoji.count;
+ existingEmoji.lastUpdatedAt = Math.max(existingEmoji.lastUpdatedAt, emoji.lastUpdatedAt);
+ } else {
+ frequentlyUsedEmojiCodesToObjects.set(emoji.code, emoji);
+ }
+ });
+ frequentlyUsedEmojis = Array.from(frequentlyUsedEmojiCodesToObjects.values()).sort((a, b) => {
+ if (a.count !== b.count) {
+ return b.count - a.count;
+ }
+ return b.lastUpdatedAt - a.lastUpdatedAt;
+ });
},
});
@@ -73,42 +96,45 @@ const getLocalizedEmojiName = (name: string, lang: OnyxEntry): string =>
/**
* Get the unicode code of an emoji in base 16.
*/
-const getEmojiUnicode = memoize((input: string) => {
- if (input.length === 0) {
- return '';
- }
+const getEmojiUnicode = memoize(
+ (input: string) => {
+ if (input.length === 0) {
+ return '';
+ }
- if (input.length === 1) {
- return input
- .charCodeAt(0)
- .toString()
- .split(' ')
- .map((val) => parseInt(val, 10).toString(16))
- .join(' ');
- }
+ if (input.length === 1) {
+ return input
+ .charCodeAt(0)
+ .toString()
+ .split(' ')
+ .map((val) => parseInt(val, 10).toString(16))
+ .join(' ');
+ }
- const pairs = [];
-
- // Some Emojis in UTF-16 are stored as a pair of 2 Unicode characters (e.g. Flags)
- // The first char is generally between the range U+D800 to U+DBFF called High surrogate
- // & the second char between the range U+DC00 to U+DFFF called low surrogate
- // More info in the following links:
- // 1. https://docs.microsoft.com/en-us/windows/win32/intl/surrogates-and-supplementary-characters
- // 2. https://thekevinscott.com/emojis-in-javascript/
- for (let i = 0; i < input.length; i++) {
- if (input.charCodeAt(i) >= 0xd800 && input.charCodeAt(i) <= 0xdbff) {
- // high surrogate
- if (input.charCodeAt(i + 1) >= 0xdc00 && input.charCodeAt(i + 1) <= 0xdfff) {
- // low surrogate
- pairs.push((input.charCodeAt(i) - 0xd800) * 0x400 + (input.charCodeAt(i + 1) - 0xdc00) + 0x10000);
+ const pairs = [];
+
+ // Some Emojis in UTF-16 are stored as a pair of 2 Unicode characters (e.g. Flags)
+ // The first char is generally between the range U+D800 to U+DBFF called High surrogate
+ // & the second char between the range U+DC00 to U+DFFF called low surrogate
+ // More info in the following links:
+ // 1. https://docs.microsoft.com/en-us/windows/win32/intl/surrogates-and-supplementary-characters
+ // 2. https://thekevinscott.com/emojis-in-javascript/
+ for (let i = 0; i < input.length; i++) {
+ if (input.charCodeAt(i) >= 0xd800 && input.charCodeAt(i) <= 0xdbff) {
+ // high surrogate
+ if (input.charCodeAt(i + 1) >= 0xdc00 && input.charCodeAt(i + 1) <= 0xdfff) {
+ // low surrogate
+ pairs.push((input.charCodeAt(i) - 0xd800) * 0x400 + (input.charCodeAt(i + 1) - 0xdc00) + 0x10000);
+ }
+ } else if (input.charCodeAt(i) < 0xd800 || input.charCodeAt(i) > 0xdfff) {
+ // modifiers and joiners
+ pairs.push(input.charCodeAt(i));
}
- } else if (input.charCodeAt(i) < 0xd800 || input.charCodeAt(i) > 0xdfff) {
- // modifiers and joiners
- pairs.push(input.charCodeAt(i));
}
- }
- return pairs.map((val) => parseInt(String(val), 10).toString(16)).join(' ');
-});
+ return pairs.map((val) => parseInt(String(val), 10).toString(16)).join(' ');
+ },
+ {monitoringName: 'getEmojiUnicode'},
+);
/**
* Function to remove Skin Tone and utf16 surrogates from Emoji
diff --git a/src/libs/Firebase/index.native.ts b/src/libs/Firebase/index.native.ts
index bf8551954671..75884bed59b6 100644
--- a/src/libs/Firebase/index.native.ts
+++ b/src/libs/Firebase/index.native.ts
@@ -1,7 +1,8 @@
/* eslint-disable no-unused-vars */
+import crashlytics from '@react-native-firebase/crashlytics';
import perf from '@react-native-firebase/perf';
import * as Environment from '@libs/Environment/Environment';
-import type {StartTrace, StopTrace, TraceMap} from './types';
+import type {Log, StartTrace, StopTrace, TraceMap} from './types';
const traceMap: TraceMap = {};
@@ -46,7 +47,12 @@ const stopTrace: StopTrace = (customEventName) => {
delete traceMap[customEventName];
};
+const log: Log = (action: string) => {
+ crashlytics().log(action);
+};
+
export default {
startTrace,
stopTrace,
+ log,
};
diff --git a/src/libs/Firebase/index.ts b/src/libs/Firebase/index.ts
index 8698a841db4a..13e354ec61a6 100644
--- a/src/libs/Firebase/index.ts
+++ b/src/libs/Firebase/index.ts
@@ -1,10 +1,12 @@
-import type {StartTrace, StopTrace} from './types';
+import type {Log, StartTrace, StopTrace} from './types';
/** Web does not use Firebase for performance tracing */
const startTrace: StartTrace = () => {};
const stopTrace: StopTrace = () => {};
+const log: Log = () => {};
export default {
startTrace,
stopTrace,
+ log,
};
diff --git a/src/libs/Firebase/types.ts b/src/libs/Firebase/types.ts
index 1a1d4959740a..0ca4cb1a701a 100644
--- a/src/libs/Firebase/types.ts
+++ b/src/libs/Firebase/types.ts
@@ -7,5 +7,6 @@ type Trace = {
type TraceMap = Record;
type StartTrace = (customEventName: string) => void;
type StopTrace = (customEventName: string) => void;
+type Log = (action: string) => void;
-export type {StartTrace, StopTrace, TraceMap};
+export type {StartTrace, StopTrace, TraceMap, Log};
diff --git a/src/libs/HttpUtils.ts b/src/libs/HttpUtils.ts
index a826c668be12..a8ef8a90dffe 100644
--- a/src/libs/HttpUtils.ts
+++ b/src/libs/HttpUtils.ts
@@ -174,7 +174,7 @@ function xhr(command: string, data: Record, type: RequestType =
}
function cancelPendingRequests(command: AbortCommand = ABORT_COMMANDS.All) {
- const controller = abortControllerMap.get(command) ?? abortControllerMap.get(ABORT_COMMANDS.All);
+ const controller = abortControllerMap.get(command);
controller?.abort();
diff --git a/src/libs/LocaleDigitUtils.ts b/src/libs/LocaleDigitUtils.ts
index 156e58c59033..a024276819c1 100644
--- a/src/libs/LocaleDigitUtils.ts
+++ b/src/libs/LocaleDigitUtils.ts
@@ -1,8 +1,8 @@
-import _ from 'lodash';
import type {ValueOf} from 'type-fest';
import type CONST from '@src/CONST';
import type {TranslationPaths} from '@src/languages/types';
import * as Localize from './Localize';
+import memoize from './memoize';
import * as NumberFormatUtils from './NumberFormatUtils';
type Locale = ValueOf;
@@ -13,28 +13,31 @@ const INDEX_DECIMAL = 10;
const INDEX_MINUS_SIGN = 11;
const INDEX_GROUP = 12;
-const getLocaleDigits = _.memoize((locale: Locale): string[] => {
- const localeDigits = [...STANDARD_DIGITS];
- for (let i = 0; i <= 9; i++) {
- localeDigits[i] = NumberFormatUtils.format(locale, i);
- }
- NumberFormatUtils.formatToParts(locale, 1000000.5).forEach((part) => {
- switch (part.type) {
- case 'decimal':
- localeDigits[INDEX_DECIMAL] = part.value;
- break;
- case 'minusSign':
- localeDigits[INDEX_MINUS_SIGN] = part.value;
- break;
- case 'group':
- localeDigits[INDEX_GROUP] = part.value;
- break;
- default:
- break;
+const getLocaleDigits = memoize(
+ (locale: Locale): string[] => {
+ const localeDigits = [...STANDARD_DIGITS];
+ for (let i = 0; i <= 9; i++) {
+ localeDigits[i] = NumberFormatUtils.format(locale, i);
}
- });
- return localeDigits;
-});
+ NumberFormatUtils.formatToParts(locale, 1000000.5).forEach((part) => {
+ switch (part.type) {
+ case 'decimal':
+ localeDigits[INDEX_DECIMAL] = part.value;
+ break;
+ case 'minusSign':
+ localeDigits[INDEX_MINUS_SIGN] = part.value;
+ break;
+ case 'group':
+ localeDigits[INDEX_GROUP] = part.value;
+ break;
+ default:
+ break;
+ }
+ });
+ return localeDigits;
+ },
+ {monitoringName: 'getLocaleDigits'},
+);
/**
* Gets the locale digit corresponding to a standard digit.
diff --git a/src/libs/Middleware/SaveResponseInOnyx.ts b/src/libs/Middleware/SaveResponseInOnyx.ts
index ffe4f8a9bea9..f895542df481 100644
--- a/src/libs/Middleware/SaveResponseInOnyx.ts
+++ b/src/libs/Middleware/SaveResponseInOnyx.ts
@@ -5,7 +5,12 @@ import type Middleware from './types';
// If we're executing any of these requests, we don't need to trigger our OnyxUpdates flow to update the current data even if our current value is out of
// date because all these requests are updating the app to the most current state.
-const requestsToIgnoreLastUpdateID: string[] = [WRITE_COMMANDS.OPEN_APP, SIDE_EFFECT_REQUEST_COMMANDS.RECONNECT_APP, SIDE_EFFECT_REQUEST_COMMANDS.GET_MISSING_ONYX_MESSAGES];
+const requestsToIgnoreLastUpdateID: string[] = [
+ WRITE_COMMANDS.OPEN_APP,
+ SIDE_EFFECT_REQUEST_COMMANDS.RECONNECT_APP,
+ WRITE_COMMANDS.CLOSE_ACCOUNT,
+ SIDE_EFFECT_REQUEST_COMMANDS.GET_MISSING_ONYX_MESSAGES,
+];
const SaveResponseInOnyx: Middleware = (requestResponse, request) =>
requestResponse.then((response = {}) => {
diff --git a/src/libs/Navigation/AppNavigator/AuthScreens.tsx b/src/libs/Navigation/AppNavigator/AuthScreens.tsx
index 0e40fa4d4037..476bdc999bc3 100644
--- a/src/libs/Navigation/AppNavigator/AuthScreens.tsx
+++ b/src/libs/Navigation/AppNavigator/AuthScreens.tsx
@@ -4,7 +4,9 @@ import type {OnyxEntry} from 'react-native-onyx';
import Onyx, {withOnyx} from 'react-native-onyx';
import type {ValueOf} from 'type-fest';
import OptionsListContextProvider from '@components/OptionListContextProvider';
+import useActiveWorkspace from '@hooks/useActiveWorkspace';
import useOnboardingLayout from '@hooks/useOnboardingLayout';
+import usePermissions from '@hooks/usePermissions';
import useStyleUtils from '@hooks/useStyleUtils';
import useThemeStyles from '@hooks/useThemeStyles';
import useWindowDimensions from '@hooks/useWindowDimensions';
@@ -19,6 +21,7 @@ import type {AuthScreensParamList, CentralPaneName, CentralPaneScreensParamList}
import NetworkConnection from '@libs/NetworkConnection';
import * as Pusher from '@libs/Pusher/pusher';
import PusherConnectionManager from '@libs/PusherConnectionManager';
+import * as ReportUtils from '@libs/ReportUtils';
import * as SessionUtils from '@libs/SessionUtils';
import ConnectionCompletePage from '@pages/ConnectionCompletePage';
import NotFoundPage from '@pages/ErrorPage/NotFoundPage';
@@ -82,7 +85,7 @@ function shouldOpenOnAdminRoom() {
return url ? new URL(url).searchParams.get('openOnAdminRoom') === 'true' : false;
}
-function getCentralPaneScreenInitialParams(screenName: CentralPaneName): Partial> {
+function getCentralPaneScreenInitialParams(screenName: CentralPaneName, initialReportID?: string): Partial> {
if (screenName === SCREENS.SEARCH.CENTRAL_PANE) {
return {sortBy: CONST.SEARCH.TABLE_COLUMNS.DATE, sortOrder: CONST.SEARCH.SORT_ORDER.DESC};
}
@@ -90,6 +93,7 @@ function getCentralPaneScreenInitialParams(screenName: CentralPaneName): Partial
if (screenName === SCREENS.REPORT) {
return {
openOnAdminRoom: shouldOpenOnAdminRoom() ? true : undefined,
+ reportID: initialReportID,
};
}
@@ -197,15 +201,28 @@ function AuthScreens({session, lastOpenedPublicRoomID, initialLastUpdateIDApplie
const {isSmallScreenWidth} = useWindowDimensions();
const {shouldUseNarrowLayout} = useOnboardingLayout();
const screenOptions = getRootNavigatorScreenOptions(isSmallScreenWidth, styles, StyleUtils);
+ const {canUseDefaultRooms} = usePermissions();
+ const {activeWorkspaceID} = useActiveWorkspace();
const onboardingModalScreenOptions = useMemo(() => screenOptions.onboardingModalNavigator(shouldUseNarrowLayout), [screenOptions, shouldUseNarrowLayout]);
const onboardingScreenOptions = useMemo(
() => getOnboardingModalScreenOptions(isSmallScreenWidth, styles, StyleUtils, shouldUseNarrowLayout),
[StyleUtils, isSmallScreenWidth, shouldUseNarrowLayout, styles],
);
- const isInitialRender = useRef(true);
+ let initialReportID: string | undefined;
+ const isInitialRender = useRef(true);
if (isInitialRender.current) {
Timing.start(CONST.TIMING.HOMEPAGE_INITIAL_RENDER);
+
+ const currentURL = getCurrentUrl();
+ if (currentURL) {
+ initialReportID = new URL(currentURL).pathname.match(CONST.REGEX.REPORT_ID_FROM_PATH)?.at(1);
+ }
+
+ if (!initialReportID) {
+ initialReportID = ReportUtils.findLastAccessedReport(!canUseDefaultRooms, shouldOpenOnAdminRoom(), activeWorkspaceID)?.reportID;
+ }
+
isInitialRender.current = false;
}
@@ -471,7 +488,7 @@ function AuthScreens({session, lastOpenedPublicRoomID, initialLastUpdateIDApplie
diff --git a/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx b/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx
index c92fc139e943..c90a070a6a27 100644
--- a/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx
+++ b/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx
@@ -20,6 +20,7 @@ import type {
ReportSettingsNavigatorParamList,
RoomInviteNavigatorParamList,
RoomMembersNavigatorParamList,
+ SearchAdvancedFiltersParamList,
SearchReportParamList,
SettingsNavigatorParamList,
SignInNavigatorParamList,
@@ -217,11 +218,16 @@ const SettingsModalStackNavigator = createModalStackNavigator require('../../../../pages/settings/Profile/CustomStatus/SetTimePage').default,
[SCREENS.SETTINGS.SUBSCRIPTION.SIZE]: () => require('../../../../pages/settings/Subscription/SubscriptionSize').default,
[SCREENS.SETTINGS.SUBSCRIPTION.DISABLE_AUTO_RENEW_SURVEY]: () => require('../../../../pages/settings/Subscription/DisableAutoRenewSurveyPage').default,
+ [SCREENS.SETTINGS.SUBSCRIPTION.REQUEST_EARLY_CANCELLATION]: () => require('../../../../pages/settings/Subscription/RequestEarlyCancellationPage').default,
[SCREENS.WORKSPACE.RATE_AND_UNIT]: () => require('../../../../pages/workspace/reimburse/WorkspaceRateAndUnitPage/InitialPage').default,
[SCREENS.WORKSPACE.RATE_AND_UNIT_RATE]: () => require('../../../../pages/workspace/reimburse/WorkspaceRateAndUnitPage/RatePage').default,
[SCREENS.WORKSPACE.RATE_AND_UNIT_UNIT]: () => require('../../../../pages/workspace/reimburse/WorkspaceRateAndUnitPage/UnitPage').default,
[SCREENS.WORKSPACE.INVITE]: () => require('../../../../pages/workspace/WorkspaceInvitePage').default,
- [SCREENS.WORKSPACE.WORKFLOWS_APPROVER]: () => require('../../../../pages/workspace/workflows/WorkspaceWorkflowsApproverPage').default,
+ [SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_NEW]: () => require('../../../../pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsCreatePage').default,
+ [SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_EDIT]: () => require('../../../../pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsEditPage').default,
+ [SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_EXPENSES_FROM]: () =>
+ require('../../../../pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsExpensesFromPage').default,
+ [SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_APPROVER]: () => require('../../../../pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsApproverPage').default,
[SCREENS.WORKSPACE.INVITE_MESSAGE]: () => require('../../../../pages/workspace/WorkspaceInviteMessagePage').default,
[SCREENS.WORKSPACE.WORKFLOWS_PAYER]: () => require('../../../../pages/workspace/workflows/WorkspaceWorkflowsPayerPage').default,
[SCREENS.WORKSPACE.NAME]: () => require('../../../../pages/workspace/WorkspaceNamePage').default,
@@ -411,9 +417,16 @@ const SettingsModalStackNavigator = createModalStackNavigator require('../../../../pages/workspace/taxes/NamePage').default,
[SCREENS.WORKSPACE.TAX_VALUE]: () => require('../../../../pages/workspace/taxes/ValuePage').default,
[SCREENS.WORKSPACE.TAX_CREATE]: () => require('../../../../pages/workspace/taxes/WorkspaceCreateTaxPage').default,
+ [SCREENS.WORKSPACE.TAX_CODE]: () => require('../../../../pages/workspace/taxes/WorkspaceTaxCodePage').default,
[SCREENS.WORKSPACE.EXPENSIFY_CARD_ISSUE_NEW]: () => require('../../../../pages/workspace/card/issueNew/IssueNewCardPage').default,
+ [SCREENS.WORKSPACE.EXPENSIFY_CARD_SETTINGS]: () => require('../../../../pages/workspace/expensifyCard/WorkspaceCardSettingsPage').default,
+ [SCREENS.WORKSPACE.EXPENSIFY_CARD_SETTINGS_ACCOUNT]: () => require('../../../../pages/workspace/expensifyCard/WorkspaceSettlementAccountPage').default,
+ [SCREENS.WORKSPACE.EXPENSIFY_CARD_SETTINGS_FREQUENCY]: () => require('../../../../pages/workspace/expensifyCard/WorkspaceSettlementFrequencyPage').default,
[SCREENS.WORKSPACE.EXPENSIFY_CARD_BANK_ACCOUNT]: () => require('../../../../pages/workspace/expensifyCard/WorkspaceExpensifyCardBankAccounts').default,
[SCREENS.WORKSPACE.EXPENSIFY_CARD_DETAILS]: () => require('../../../../pages/workspace/expensifyCard/WorkspaceExpensifyCardDetailsPage').default,
+ [SCREENS.WORKSPACE.EXPENSIFY_CARD_NAME]: () => require('../../../../pages/workspace/expensifyCard/WorkspaceEditCardNamePage').default,
+ [SCREENS.WORKSPACE.EXPENSIFY_CARD_LIMIT]: () => require('../../../../pages/workspace/expensifyCard/WorkspaceEditCardLimitPage').default,
+ [SCREENS.WORKSPACE.EXPENSIFY_CARD_LIMIT_TYPE]: () => require('../../../../pages/workspace/expensifyCard/WorkspaceEditCardLimitTypePage').default,
[SCREENS.SETTINGS.SAVE_THE_WORLD]: () => require('../../../../pages/TeachersUnite/SaveTheWorldPage').default,
[SCREENS.SETTINGS.SUBSCRIPTION.CHANGE_PAYMENT_CURRENCY]: () => require('../../../../pages/settings/PaymentCard/ChangeCurrency').default,
[SCREENS.SETTINGS.SUBSCRIPTION.CHANGE_BILLING_CURRENCY]: () => require('../../../../pages/settings/Subscription/PaymentCard/ChangeBillingCurrency').default,
@@ -488,6 +501,7 @@ const TransactionDuplicateStackNavigator = createModalStackNavigator require('../../../../pages/TransactionDuplicate/ReviewTaxCode').default,
[SCREENS.TRANSACTION_DUPLICATE.BILLABLE]: () => require('../../../../pages/TransactionDuplicate/ReviewBillable').default,
[SCREENS.TRANSACTION_DUPLICATE.REIMBURSABLE]: () => require('../../../../pages/TransactionDuplicate/ReviewReimbursable').default,
+ [SCREENS.TRANSACTION_DUPLICATE.CONFIRMATION]: () => require('../../../../pages/TransactionDuplicate/Confirmation').default,
});
const SearchReportModalStackNavigator = createModalStackNavigator({
@@ -495,6 +509,12 @@ const SearchReportModalStackNavigator = createModalStackNavigator require('../../../../pages/Search/SearchHoldReasonPage').default,
});
+const SearchAdvancedFiltersModalStackNavigator = createModalStackNavigator({
+ [SCREENS.SEARCH.ADVANCED_FILTERS_RHP]: () => require('../../../../pages/Search/SearchAdvancedFiltersPage').default,
+ [SCREENS.SEARCH.ADVANCED_FILTERS_DATE_RHP]: () => require('../../../../pages/Search/SearchFiltersDatePage').default,
+ [SCREENS.SEARCH.ADVANCED_FILTERS_TYPE_RHP]: () => require('../../../../pages/Search/SearchFiltersTypePage').default,
+});
+
const RestrictedActionModalStackNavigator = createModalStackNavigator({
[SCREENS.RESTRICTED_ACTION_ROOT]: () => require('../../../../pages/RestrictedAction/Workspace/WorkspaceRestrictedActionPage').default,
});
@@ -529,4 +549,5 @@ export {
TransactionDuplicateStackNavigator,
SearchReportModalStackNavigator,
RestrictedActionModalStackNavigator,
+ SearchAdvancedFiltersModalStackNavigator,
};
diff --git a/src/libs/Navigation/AppNavigator/Navigators/ActiveBottomTabRouteContext.ts b/src/libs/Navigation/AppNavigator/Navigators/ActiveBottomTabRouteContext.ts
deleted file mode 100644
index ce55da8e4bde..000000000000
--- a/src/libs/Navigation/AppNavigator/Navigators/ActiveBottomTabRouteContext.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import React from 'react';
-import type {BottomTabScreensParamList, NavigationPartialRoute} from '@libs/Navigation/types';
-
-const ActiveBottomTabRouteContext = React.createContext | undefined>(undefined);
-
-export default ActiveBottomTabRouteContext;
diff --git a/src/libs/Navigation/AppNavigator/Navigators/ActiveCentralPaneRouteContext.ts b/src/libs/Navigation/AppNavigator/Navigators/ActiveCentralPaneRouteContext.ts
new file mode 100644
index 000000000000..6f37126584a2
--- /dev/null
+++ b/src/libs/Navigation/AppNavigator/Navigators/ActiveCentralPaneRouteContext.ts
@@ -0,0 +1,6 @@
+import React from 'react';
+import type {AuthScreensParamList, NavigationPartialRoute} from '@libs/Navigation/types';
+
+const ActiveCentralPaneRouteContext = React.createContext | undefined>(undefined);
+
+export default ActiveCentralPaneRouteContext;
diff --git a/src/libs/Navigation/AppNavigator/Navigators/BottomTabNavigator.tsx b/src/libs/Navigation/AppNavigator/Navigators/BottomTabNavigator.tsx
index 372c1ce478cc..30e8d4c668c6 100644
--- a/src/libs/Navigation/AppNavigator/Navigators/BottomTabNavigator.tsx
+++ b/src/libs/Navigation/AppNavigator/Navigators/BottomTabNavigator.tsx
@@ -2,15 +2,13 @@ import {useNavigationState} from '@react-navigation/native';
import type {StackNavigationOptions} from '@react-navigation/stack';
import React from 'react';
import createCustomBottomTabNavigator from '@libs/Navigation/AppNavigator/createCustomBottomTabNavigator';
-import getTopmostBottomTabRoute from '@libs/Navigation/getTopmostBottomTabRoute';
import getTopmostCentralPaneRoute from '@libs/Navigation/getTopmostCentralPaneRoute';
-import type {BottomTabNavigatorParamList, BottomTabScreensParamList, NavigationPartialRoute, RootStackParamList} from '@libs/Navigation/types';
-import {isBottomTabName} from '@libs/NavigationUtils';
+import type {BottomTabNavigatorParamList, CentralPaneName, NavigationPartialRoute, RootStackParamList} from '@libs/Navigation/types';
import SidebarScreen from '@pages/home/sidebar/SidebarScreen';
import SearchPageBottomTab from '@pages/Search/SearchPageBottomTab';
import SCREENS from '@src/SCREENS';
import type ReactComponentModule from '@src/types/utils/ReactComponentModule';
-import ActiveBottomTabRouteContext from './ActiveBottomTabRouteContext';
+import ActiveCentralPaneRouteContext from './ActiveCentralPaneRouteContext';
const loadInitialSettingsPage = () => require('../../../../pages/settings/InitialSettingsPage').default;
const Tab = createCustomBottomTabNavigator();
@@ -21,22 +19,9 @@ const screenOptions: StackNavigationOptions = {
};
function BottomTabNavigator() {
- const activeRoute = useNavigationState | undefined>((state) => {
- if (!state) {
- return undefined;
- }
- let route: NavigationPartialRoute | undefined;
- for (const selector of [getTopmostBottomTabRoute, getTopmostCentralPaneRoute]) {
- const selectedRoute = selector(state);
- if (isBottomTabName(selectedRoute?.name)) {
- route = selectedRoute as NavigationPartialRoute;
- }
- }
-
- return route;
- });
+ const activeRoute = useNavigationState | undefined>(getTopmostCentralPaneRoute);
return (
-
+
-
+
);
}
diff --git a/src/libs/Navigation/AppNavigator/Navigators/OnboardingModalNavigator.tsx b/src/libs/Navigation/AppNavigator/Navigators/OnboardingModalNavigator.tsx
index 29a2205b2e37..61adcd77da76 100644
--- a/src/libs/Navigation/AppNavigator/Navigators/OnboardingModalNavigator.tsx
+++ b/src/libs/Navigation/AppNavigator/Navigators/OnboardingModalNavigator.tsx
@@ -4,9 +4,11 @@ import {View} from 'react-native';
import {useOnyx} from 'react-native-onyx';
import NoDropZone from '@components/DragAndDrop/NoDropZone';
import FocusTrapForScreens from '@components/FocusTrap/FocusTrapForScreen';
+import useDisableModalDismissOnEscape from '@hooks/useDisableModalDismissOnEscape';
import useKeyboardShortcut from '@hooks/useKeyboardShortcut';
import useOnboardingLayout from '@hooks/useOnboardingLayout';
import useThemeStyles from '@hooks/useThemeStyles';
+import hasCompletedGuidedSetupFlowSelector from '@libs/hasCompletedGuidedSetupFlowSelector';
import OnboardingModalNavigatorScreenOptions from '@libs/Navigation/AppNavigator/OnboardingModalNavigatorScreenOptions';
import Navigation from '@libs/Navigation/Navigation';
import type {OnboardingModalNavigatorParamList} from '@libs/Navigation/types';
@@ -26,15 +28,11 @@ function OnboardingModalNavigator() {
const styles = useThemeStyles();
const {shouldUseNarrowLayout} = useOnboardingLayout();
const [hasCompletedGuidedSetupFlow] = useOnyx(ONYXKEYS.NVP_ONBOARDING, {
- selector: (onboarding) => {
- // onboarding is an array for old accounts and accounts created from olddot
- if (Array.isArray(onboarding)) {
- return true;
- }
- return onboarding?.hasCompletedGuidedSetupFlow;
- },
+ selector: hasCompletedGuidedSetupFlowSelector,
});
+ useDisableModalDismissOnEscape();
+
useEffect(() => {
if (!hasCompletedGuidedSetupFlow) {
return;
diff --git a/src/libs/Navigation/AppNavigator/Navigators/RightModalNavigator.tsx b/src/libs/Navigation/AppNavigator/Navigators/RightModalNavigator.tsx
index 6b83c1997693..44355cbbe955 100644
--- a/src/libs/Navigation/AppNavigator/Navigators/RightModalNavigator.tsx
+++ b/src/libs/Navigation/AppNavigator/Navigators/RightModalNavigator.tsx
@@ -6,6 +6,7 @@ import NoDropZone from '@components/DragAndDrop/NoDropZone';
import useStyleUtils from '@hooks/useStyleUtils';
import useThemeStyles from '@hooks/useThemeStyles';
import useWindowDimensions from '@hooks/useWindowDimensions';
+import {abandonReviewDuplicateTransactions} from '@libs/actions/Transaction';
import {isSafari} from '@libs/Browser';
import ModalNavigatorScreenOptions from '@libs/Navigation/AppNavigator/ModalNavigatorScreenOptions';
import * as ModalStackNavigators from '@libs/Navigation/AppNavigator/ModalStackNavigators';
@@ -19,7 +20,7 @@ type RightModalNavigatorProps = StackScreenProps();
-function RightModalNavigator({navigation}: RightModalNavigatorProps) {
+function RightModalNavigator({navigation, route}: RightModalNavigatorProps) {
const styles = useThemeStyles();
const styleUtils = useStyleUtils();
const {isSmallScreenWidth} = useWindowDimensions();
@@ -51,6 +52,19 @@ function RightModalNavigator({navigation}: RightModalNavigatorProps) {
{
+ if (
+ // @ts-expect-error There is something wrong with a types here and it's don't see the params list
+ navigation.getState().routes.find((routes) => routes.name === NAVIGATORS.RIGHT_MODAL_NAVIGATOR)?.params?.screen ===
+ SCREENS.RIGHT_MODAL.TRANSACTION_DUPLICATE ||
+ route.params?.screen !== SCREENS.RIGHT_MODAL.TRANSACTION_DUPLICATE
+ ) {
+ return;
+ }
+ abandonReviewDuplicateTransactions();
+ },
+ }}
id={NAVIGATORS.RIGHT_MODAL_NAVIGATOR}
>
+
diff --git a/src/libs/Navigation/AppNavigator/createCustomBottomTabNavigator/BottomTabBar/index.tsx b/src/libs/Navigation/AppNavigator/createCustomBottomTabNavigator/BottomTabBar.tsx
similarity index 69%
rename from src/libs/Navigation/AppNavigator/createCustomBottomTabNavigator/BottomTabBar/index.tsx
rename to src/libs/Navigation/AppNavigator/createCustomBottomTabNavigator/BottomTabBar.tsx
index f244342c28ae..b09529fceaa2 100644
--- a/src/libs/Navigation/AppNavigator/createCustomBottomTabNavigator/BottomTabBar/index.tsx
+++ b/src/libs/Navigation/AppNavigator/createCustomBottomTabNavigator/BottomTabBar.tsx
@@ -1,8 +1,7 @@
-import {useNavigation, useNavigationState} from '@react-navigation/native';
+import {useNavigation} from '@react-navigation/native';
import React, {memo, useCallback, useEffect} from 'react';
import {NativeModules, View} from 'react-native';
-import type {OnyxEntry} from 'react-native-onyx';
-import {withOnyx} from 'react-native-onyx';
+import {useOnyx} from 'react-native-onyx';
import Icon from '@components/Icon';
import * as Expensicons from '@components/Icon/Expensicons';
import {PressableWithFeedback} from '@components/Pressable';
@@ -13,9 +12,9 @@ import useTheme from '@hooks/useTheme';
import useThemeStyles from '@hooks/useThemeStyles';
import * as Session from '@libs/actions/Session';
import interceptAnonymousUser from '@libs/interceptAnonymousUser';
-import getTopmostBottomTabRoute from '@libs/Navigation/getTopmostBottomTabRoute';
-import getTopmostCentralPaneRoute from '@libs/Navigation/getTopmostCentralPaneRoute';
-import Navigation from '@libs/Navigation/Navigation';
+import linkingConfig from '@libs/Navigation/linkingConfig';
+import getAdaptedStateFromPath from '@libs/Navigation/linkingConfig/getAdaptedStateFromPath';
+import Navigation, {navigationRef} from '@libs/Navigation/Navigation';
import type {RootStackParamList, State} from '@libs/Navigation/types';
import {isCentralPaneName} from '@libs/NavigationUtils';
import {getChatTabBrickRoad} from '@libs/WorkspacesSettingsUtils';
@@ -30,17 +29,17 @@ import type {Route} from '@src/ROUTES';
import ROUTES from '@src/ROUTES';
import SCREENS from '@src/SCREENS';
-type PurposeForUsingExpensifyModalOnyxProps = {
- isLoadingApp: OnyxEntry;
+type BottomTabBarProps = {
+ selectedTab: string | undefined;
};
-type PurposeForUsingExpensifyModalProps = PurposeForUsingExpensifyModalOnyxProps;
-function BottomTabBar({isLoadingApp = false}: PurposeForUsingExpensifyModalProps) {
+function BottomTabBar({selectedTab}: BottomTabBarProps) {
const theme = useTheme();
const styles = useThemeStyles();
const {translate} = useLocalize();
const navigation = useNavigation();
const {activeWorkspaceID} = useActiveWorkspace();
+ const [isLoadingApp] = useOnyx(ONYXKEYS.IS_LOADING_APP);
useEffect(() => {
const navigationState = navigation.getState() as State | undefined;
@@ -57,31 +56,24 @@ function BottomTabBar({isLoadingApp = false}: PurposeForUsingExpensifyModalProps
return;
}
- Welcome.isOnboardingFlowCompleted({onNotCompleted: () => Navigation.navigate(ROUTES.ONBOARDING_ROOT)});
+ Welcome.isOnboardingFlowCompleted({
+ onNotCompleted: () => {
+ const {adaptedState} = getAdaptedStateFromPath(ROUTES.ONBOARDING_ROOT, linkingConfig.config);
+ navigationRef.resetRoot(adaptedState);
+ },
+ });
+
// eslint-disable-next-line react-compiler/react-compiler, react-hooks/exhaustive-deps
}, [isLoadingApp]);
- // Parent navigator of the bottom tab bar is the root navigator.
- const currentTabName = useNavigationState((state) => {
- const topmostCentralPaneRoute = getTopmostCentralPaneRoute(state);
-
- if (topmostCentralPaneRoute && topmostCentralPaneRoute.name === SCREENS.SEARCH.CENTRAL_PANE) {
- return SCREENS.SEARCH.CENTRAL_PANE;
- }
-
- const topmostBottomTabRoute = getTopmostBottomTabRoute(state);
- return topmostBottomTabRoute?.name ?? SCREENS.HOME;
- });
-
const chatTabBrickRoad = getChatTabBrickRoad(activeWorkspaceID);
-
const navigateToChats = useCallback(() => {
- if (currentTabName === SCREENS.HOME) {
+ if (selectedTab === SCREENS.HOME) {
return;
}
- const route = activeWorkspaceID ? (`/w/${activeWorkspaceID}/home` as Route) : ROUTES.HOME;
+ const route = activeWorkspaceID ? (`/w/${activeWorkspaceID}/${ROUTES.HOME}` as Route) : ROUTES.HOME;
Navigation.navigate(route);
- }, [activeWorkspaceID, currentTabName]);
+ }, [activeWorkspaceID, selectedTab]);
return (
@@ -96,7 +88,7 @@ function BottomTabBar({isLoadingApp = false}: PurposeForUsingExpensifyModalProps
@@ -109,10 +101,10 @@ function BottomTabBar({isLoadingApp = false}: PurposeForUsingExpensifyModalProps
{
- if (currentTabName === SCREENS.SEARCH.BOTTOM_TAB || currentTabName === SCREENS.SEARCH.CENTRAL_PANE) {
+ if (selectedTab === SCREENS.SEARCH.BOTTOM_TAB) {
return;
}
- interceptAnonymousUser(() => Navigation.navigate(ROUTES.SEARCH.getRoute(CONST.SEARCH.TAB.ALL)));
+ interceptAnonymousUser(() => Navigation.navigate(ROUTES.SEARCH_CENTRAL_PANE.getRoute(CONST.SEARCH.TAB.ALL)));
}}
role={CONST.ROLE.BUTTON}
accessibilityLabel={translate('common.search')}
@@ -122,14 +114,14 @@ function BottomTabBar({isLoadingApp = false}: PurposeForUsingExpensifyModalProps
-
+
@@ -139,8 +131,4 @@ function BottomTabBar({isLoadingApp = false}: PurposeForUsingExpensifyModalProps
BottomTabBar.displayName = 'BottomTabBar';
-export default withOnyx({
- isLoadingApp: {
- key: ONYXKEYS.IS_LOADING_APP,
- },
-})(memo(BottomTabBar));
+export default memo(BottomTabBar);
diff --git a/src/libs/Navigation/AppNavigator/createCustomBottomTabNavigator/BottomTabBar/index.website.tsx b/src/libs/Navigation/AppNavigator/createCustomBottomTabNavigator/BottomTabBar/index.website.tsx
deleted file mode 100644
index 556365b473c3..000000000000
--- a/src/libs/Navigation/AppNavigator/createCustomBottomTabNavigator/BottomTabBar/index.website.tsx
+++ /dev/null
@@ -1,146 +0,0 @@
-import {useNavigation, useNavigationState} from '@react-navigation/native';
-import React, {useCallback, useEffect} from 'react';
-import {View} from 'react-native';
-import type {OnyxEntry} from 'react-native-onyx';
-import {withOnyx} from 'react-native-onyx';
-import type {TupleToUnion} from 'type-fest';
-import Icon from '@components/Icon';
-import * as Expensicons from '@components/Icon/Expensicons';
-import {PressableWithFeedback} from '@components/Pressable';
-import Tooltip from '@components/Tooltip';
-import useActiveBottomTabRoute from '@hooks/useActiveBottomTabRoute';
-import useActiveWorkspace from '@hooks/useActiveWorkspace';
-import useLocalize from '@hooks/useLocalize';
-import useTheme from '@hooks/useTheme';
-import useThemeStyles from '@hooks/useThemeStyles';
-import * as Session from '@libs/actions/Session';
-import interceptAnonymousUser from '@libs/interceptAnonymousUser';
-import getTopmostBottomTabRoute from '@libs/Navigation/getTopmostBottomTabRoute';
-import getTopmostCentralPaneRoute from '@libs/Navigation/getTopmostCentralPaneRoute';
-import Navigation from '@libs/Navigation/Navigation';
-import type {RootStackParamList, State} from '@libs/Navigation/types';
-import {isCentralPaneName, isHomeTabName, isSearchTabName, isSettingTabName} from '@libs/NavigationUtils';
-import {getChatTabBrickRoad} from '@libs/WorkspacesSettingsUtils';
-import BottomTabAvatar from '@pages/home/sidebar/BottomTabAvatar';
-import BottomTabBarFloatingActionButton from '@pages/home/sidebar/BottomTabBarFloatingActionButton';
-import variables from '@styles/variables';
-import * as Welcome from '@userActions/Welcome';
-import CONST from '@src/CONST';
-import NAVIGATORS from '@src/NAVIGATORS';
-import ONYXKEYS from '@src/ONYXKEYS';
-import type {Route} from '@src/ROUTES';
-import ROUTES from '@src/ROUTES';
-import SCREENS from '@src/SCREENS';
-
-type PurposeForUsingExpensifyModalOnyxProps = {
- isLoadingApp: OnyxEntry;
-};
-type PurposeForUsingExpensifyModalProps = PurposeForUsingExpensifyModalOnyxProps;
-
-function BottomTabBar({isLoadingApp = false}: PurposeForUsingExpensifyModalProps) {
- const theme = useTheme();
- const styles = useThemeStyles();
- const {translate} = useLocalize();
- const navigation = useNavigation();
- const HOME_SCREENS = [SCREENS.HOME, SCREENS.REPORT];
- const {activeWorkspaceID: contextActiveWorkspaceID} = useActiveWorkspace();
- const activeWorkspaceID = sessionStorage.getItem(CONST.SESSION_STORAGE_KEYS.ACTIVE_WORKSPACE_ID) ?? contextActiveWorkspaceID;
-
- useEffect(() => {
- const navigationState = navigation.getState() as State | undefined;
- const routes = navigationState?.routes;
- const currentRoute = routes?.[navigationState?.index ?? 0];
- // When we are redirected to the Settings tab from the OldDot, we don't want to call the Welcome.show() method.
- // To prevent this, the value of the bottomTabRoute?.name is checked here
- if (!!(currentRoute && currentRoute.name !== NAVIGATORS.BOTTOM_TAB_NAVIGATOR && !isCentralPaneName(currentRoute.name)) || Session.isAnonymousUser()) {
- return;
- }
-
- Welcome.isOnboardingFlowCompleted({onNotCompleted: () => Navigation.navigate(ROUTES.ONBOARDING_ROOT)});
- // eslint-disable-next-line react-compiler/react-compiler, react-hooks/exhaustive-deps
- }, [isLoadingApp]);
-
- // Parent navigator of the bottom tab bar is the root navigator.
- const currentTabName = useNavigationState((state) => {
- const topmostCentralPaneRoute = getTopmostCentralPaneRoute(state);
-
- if (topmostCentralPaneRoute && topmostCentralPaneRoute.name === SCREENS.SEARCH.CENTRAL_PANE) {
- return SCREENS.SEARCH.CENTRAL_PANE;
- }
-
- const topmostBottomTabRoute = getTopmostBottomTabRoute(state);
- return topmostBottomTabRoute?.name ?? SCREENS.HOME;
- });
-
- const activeBottomTabRoute = useActiveBottomTabRoute();
- const chatTabBrickRoad = getChatTabBrickRoad(activeWorkspaceID);
-
- const navigateToChats = useCallback(() => {
- if (currentTabName === SCREENS.HOME) {
- return;
- }
- const route = activeWorkspaceID ? (`/w/${activeWorkspaceID}/home` as Route) : ROUTES.HOME;
- Navigation.navigate(route);
- }, [activeWorkspaceID, currentTabName]);
-
- return (
-
-
-
-
- ) ? theme.iconMenu : theme.icon}
- width={variables.iconBottomBar}
- height={variables.iconBottomBar}
- />
- {chatTabBrickRoad && (
-
- )}
-
-
-
-
- {
- if (isSearchTabName(activeBottomTabRoute?.name)) {
- return;
- }
- interceptAnonymousUser(() => Navigation.navigate(ROUTES.SEARCH.getRoute(CONST.SEARCH.TAB.ALL)));
- }}
- role={CONST.ROLE.BUTTON}
- accessibilityLabel={translate('common.search')}
- wrapperStyle={styles.flex1}
- style={styles.bottomTabBarItem}
- >
-
-
-
-
-
-
-
-
-
-
- );
-}
-
-BottomTabBar.displayName = 'BottomTabBar';
-
-export default withOnyx({
- isLoadingApp: {
- key: ONYXKEYS.IS_LOADING_APP,
- },
-})(BottomTabBar);
diff --git a/src/libs/Navigation/AppNavigator/createCustomBottomTabNavigator/TopBar.tsx b/src/libs/Navigation/AppNavigator/createCustomBottomTabNavigator/TopBar.tsx
index 81022842a03d..ebfa3fb1d7c9 100644
--- a/src/libs/Navigation/AppNavigator/createCustomBottomTabNavigator/TopBar.tsx
+++ b/src/libs/Navigation/AppNavigator/createCustomBottomTabNavigator/TopBar.tsx
@@ -61,7 +61,7 @@ function TopBar({breadcrumbLabel, activeWorkspaceID, shouldDisplaySearch = true}
Navigation.navigate(ROUTES.CHAT_FINDER))}
>
-
+
);
diff --git a/src/libs/Navigation/AppNavigator/createCustomStackNavigator/CustomRouter.ts b/src/libs/Navigation/AppNavigator/createCustomStackNavigator/CustomRouter.ts
index a1768df5e0d6..5b3cefb63a2d 100644
--- a/src/libs/Navigation/AppNavigator/createCustomStackNavigator/CustomRouter.ts
+++ b/src/libs/Navigation/AppNavigator/createCustomStackNavigator/CustomRouter.ts
@@ -1,13 +1,16 @@
-import type {RouterConfigOptions, StackNavigationState} from '@react-navigation/native';
-import {getPathFromState, StackRouter} from '@react-navigation/native';
+import type {CommonActions, RouterConfigOptions, StackActionType, StackNavigationState} from '@react-navigation/native';
+import {findFocusedRoute, getPathFromState, StackRouter} from '@react-navigation/native';
import type {ParamListBase} from '@react-navigation/routers';
import getIsNarrowLayout from '@libs/getIsNarrowLayout';
+import * as Localize from '@libs/Localize';
import getTopmostBottomTabRoute from '@libs/Navigation/getTopmostBottomTabRoute';
import getTopmostCentralPaneRoute from '@libs/Navigation/getTopmostCentralPaneRoute';
import linkingConfig from '@libs/Navigation/linkingConfig';
import getAdaptedStateFromPath from '@libs/Navigation/linkingConfig/getAdaptedStateFromPath';
import type {NavigationPartialRoute, RootStackParamList, State} from '@libs/Navigation/types';
-import {isCentralPaneName} from '@libs/NavigationUtils';
+import {isCentralPaneName, isOnboardingFlowName} from '@libs/NavigationUtils';
+import * as Welcome from '@userActions/Welcome';
+import CONST from '@src/CONST';
import NAVIGATORS from '@src/NAVIGATORS';
import SCREENS from '@src/SCREENS';
import type {ResponsiveStackNavigatorRouterOptions} from './types';
@@ -97,6 +100,23 @@ function compareAndAdaptState(state: StackNavigationState) {
}
}
+function shouldPreventReset(state: StackNavigationState, action: CommonActions.Action | StackActionType) {
+ if (action.type !== CONST.NAVIGATION_ACTIONS.RESET || !action?.payload) {
+ return false;
+ }
+ const currentFocusedRoute = findFocusedRoute(state);
+ const targetFocusedRoute = findFocusedRoute(action?.payload);
+
+ // We want to prevent the user from navigating back to a non-onboarding screen if they are currently on an onboarding screen
+ if (isOnboardingFlowName(currentFocusedRoute?.name) && !isOnboardingFlowName(targetFocusedRoute?.name)) {
+ Welcome.setOnboardingErrorMessage(Localize.translateLocal('onboarding.purpose.errorBackButton'));
+ // We reset the URL as the browser sets it in a way that doesn't match the navigation state
+ // eslint-disable-next-line no-restricted-globals
+ history.replaceState({}, '', getPathFromState(state, linkingConfig.config));
+ return true;
+ }
+}
+
function CustomRouter(options: ResponsiveStackNavigatorRouterOptions) {
const stackRouter = StackRouter(options);
@@ -107,6 +127,12 @@ function CustomRouter(options: ResponsiveStackNavigatorRouterOptions) {
const state = stackRouter.getRehydratedState(partialState, {routeNames, routeParamList, routeGetIdList});
return state;
},
+ getStateForAction(state: StackNavigationState, action: CommonActions.Action | StackActionType, configOptions: RouterConfigOptions) {
+ if (shouldPreventReset(state, action)) {
+ return state;
+ }
+ return stackRouter.getStateForAction(state, action, configOptions);
+ },
};
}
diff --git a/src/libs/Navigation/AppNavigator/index.tsx b/src/libs/Navigation/AppNavigator/index.tsx
index f8b14781a5ec..787ede6c14f2 100644
--- a/src/libs/Navigation/AppNavigator/index.tsx
+++ b/src/libs/Navigation/AppNavigator/index.tsx
@@ -2,9 +2,10 @@ import React, {lazy, memo, Suspense, useContext, useEffect} from 'react';
import {NativeModules} from 'react-native';
import {InitialURLContext} from '@components/InitialURLContextProvider';
import Navigation from '@libs/Navigation/Navigation';
+import lazyRetry from '@src/utils/lazyRetry';
-const AuthScreens = lazy(() => import('./AuthScreens'));
-const PublicScreens = lazy(() => import('./PublicScreens'));
+const AuthScreens = lazy(() => lazyRetry(() => import('./AuthScreens')));
+const PublicScreens = lazy(() => lazyRetry(() => import('./PublicScreens')));
type AppNavigatorProps = {
/** If we have an authToken this is true */
diff --git a/src/libs/Navigation/Navigation.ts b/src/libs/Navigation/Navigation.ts
index 6f803ae1e497..10301e0a99b3 100644
--- a/src/libs/Navigation/Navigation.ts
+++ b/src/libs/Navigation/Navigation.ts
@@ -144,10 +144,6 @@ function getActiveRoute(): string {
return '';
}
- if (currentRoute?.path) {
- return currentRoute.path;
- }
-
const routeFromState = getPathFromState(navigationRef.getRootState(), linkingConfig.config);
if (routeFromState) {
diff --git a/src/libs/Navigation/NavigationRoot.tsx b/src/libs/Navigation/NavigationRoot.tsx
index 63792be4f79f..0ef9968bea56 100644
--- a/src/libs/Navigation/NavigationRoot.tsx
+++ b/src/libs/Navigation/NavigationRoot.tsx
@@ -1,18 +1,23 @@
import type {NavigationState} from '@react-navigation/native';
import {DefaultTheme, findFocusedRoute, NavigationContainer} from '@react-navigation/native';
import React, {useContext, useEffect, useMemo, useRef} from 'react';
+import {useOnyx} from 'react-native-onyx';
import HybridAppMiddleware from '@components/HybridAppMiddleware';
import {ScrollOffsetContext} from '@components/ScrollOffsetContextProvider';
import useActiveWorkspace from '@hooks/useActiveWorkspace';
import useCurrentReportID from '@hooks/useCurrentReportID';
import useTheme from '@hooks/useTheme';
import useWindowDimensions from '@hooks/useWindowDimensions';
+import Firebase from '@libs/Firebase';
import {FSPage} from '@libs/Fullstory';
+import hasCompletedGuidedSetupFlowSelector from '@libs/hasCompletedGuidedSetupFlowSelector';
import Log from '@libs/Log';
import {getPathFromURL} from '@libs/Url';
import {updateLastVisitedPath} from '@userActions/App';
import CONST from '@src/CONST';
+import ONYXKEYS from '@src/ONYXKEYS';
import type {Route} from '@src/ROUTES';
+import ROUTES from '@src/ROUTES';
import AppNavigator from './AppNavigator';
import getPolicyIDFromState from './getPolicyIDFromState';
import linkingConfig from './linkingConfig';
@@ -76,26 +81,44 @@ function NavigationRoot({authenticated, lastVisitedPath, initialUrl, onReady}: N
const currentReportIDValue = useCurrentReportID();
const {isSmallScreenWidth} = useWindowDimensions();
const {setActiveWorkspaceID} = useActiveWorkspace();
+ const [user] = useOnyx(ONYXKEYS.USER);
- const initialState = useMemo(
- () => {
- if (!lastVisitedPath) {
- return undefined;
- }
+ const [hasCompletedGuidedSetupFlow] = useOnyx(ONYXKEYS.NVP_ONBOARDING, {
+ selector: hasCompletedGuidedSetupFlowSelector,
+ });
- const path = initialUrl ? getPathFromURL(initialUrl) : null;
-
- // For non-nullable paths we don't want to set initial state
- if (path) {
- return;
- }
+ const initialState = useMemo(() => {
+ if (!user || user.isFromPublicDomain) {
+ return;
+ }
- const {adaptedState} = getAdaptedStateFromPath(lastVisitedPath, linkingConfig.config);
+ // If the user haven't completed the flow, we want to always redirect them to the onboarding flow.
+ // We also make sure that the user is authenticated.
+ if (!hasCompletedGuidedSetupFlow && authenticated) {
+ const {adaptedState} = getAdaptedStateFromPath(ROUTES.ONBOARDING_ROOT, linkingConfig.config);
return adaptedState;
- },
+ }
+
+ // If there is no lastVisitedPath, we can do early return. We won't modify the default behavior.
+ if (!lastVisitedPath) {
+ return undefined;
+ }
+
+ const path = initialUrl ? getPathFromURL(initialUrl) : null;
+
+ // If the user opens the root of app "/" it will be parsed to empty string "".
+ // If the path is defined and different that empty string we don't want to modify the default behavior.
+ if (path) {
+ return;
+ }
+
+ // Otherwise we want to redirect the user to the last visited path.
+ const {adaptedState} = getAdaptedStateFromPath(lastVisitedPath, linkingConfig.config);
+ return adaptedState;
+
+ // The initialState value is relevant only on the first render.
// eslint-disable-next-line react-compiler/react-compiler, react-hooks/exhaustive-deps
- [],
- );
+ }, []);
// https://reactnavigation.org/docs/themes
const navigationTheme = useMemo(
@@ -127,6 +150,9 @@ function NavigationRoot({authenticated, lastVisitedPath, initialUrl, onReady}: N
if (!state) {
return;
}
+ const currentRoute = navigationRef.getCurrentRoute();
+ Firebase.log(`[NAVIGATION] screen: ${currentRoute?.name}, params: ${JSON.stringify(currentRoute?.params ?? {})}`);
+
const activeWorkspaceID = getPolicyIDFromState(state as NavigationState);
// Performance optimization to avoid context consumers to delay first render
setTimeout(() => {
diff --git a/src/libs/Navigation/getTopmostFullScreenRoute.ts b/src/libs/Navigation/getTopmostFullScreenRoute.ts
index 25c74ea0ce6b..fcc28ce76926 100644
--- a/src/libs/Navigation/getTopmostFullScreenRoute.ts
+++ b/src/libs/Navigation/getTopmostFullScreenRoute.ts
@@ -13,18 +13,16 @@ function getTopmostFullScreenRoute(state: State): Navigation
return;
}
- if (!!topmostFullScreenRoute.params && 'screen' in topmostFullScreenRoute.params) {
- return {name: topmostFullScreenRoute.params.screen as FullScreenName, params: topmostFullScreenRoute.params.params};
- }
+ if (topmostFullScreenRoute.state) {
+ // There will be at least one route in the fullscreen navigator.
+ const {name, params} = topmostFullScreenRoute.state.routes.at(-1) as NavigationPartialRoute;
- if (!topmostFullScreenRoute.state) {
- return;
+ return {name, params};
}
- // There will be at least one route in the fullscreen navigator.
- const {name, params} = topmostFullScreenRoute.state.routes.at(-1) as NavigationPartialRoute;
-
- return {name, params};
+ if (!!topmostFullScreenRoute.params && 'screen' in topmostFullScreenRoute.params) {
+ return {name: topmostFullScreenRoute.params.screen as FullScreenName, params: topmostFullScreenRoute.params.params};
+ }
}
export default getTopmostFullScreenRoute;
diff --git a/src/libs/Navigation/linkTo/index.ts b/src/libs/Navigation/linkTo/index.ts
index ddef2b1411b3..d5a72db3a304 100644
--- a/src/libs/Navigation/linkTo/index.ts
+++ b/src/libs/Navigation/linkTo/index.ts
@@ -141,7 +141,7 @@ export default function linkTo(navigation: NavigationContainerRef> =
[SCREENS.SETTINGS.ABOUT]: [SCREENS.SETTINGS.APP_DOWNLOAD_LINKS],
[SCREENS.SETTINGS.SAVE_THE_WORLD]: [SCREENS.I_KNOW_A_TEACHER, SCREENS.INTRO_SCHOOL_PRINCIPAL, SCREENS.I_AM_A_TEACHER],
[SCREENS.SETTINGS.TROUBLESHOOT]: [SCREENS.SETTINGS.CONSOLE],
- [SCREENS.SEARCH.CENTRAL_PANE]: [SCREENS.SEARCH.REPORT_RHP, SCREENS.SEARCH.TRANSACTION_HOLD_REASON_RHP],
+ [SCREENS.SEARCH.CENTRAL_PANE]: [SCREENS.SEARCH.REPORT_RHP, SCREENS.SEARCH.TRANSACTION_HOLD_REASON_RHP, SCREENS.SEARCH.ADVANCED_FILTERS_RHP],
[SCREENS.SETTINGS.SUBSCRIPTION.ROOT]: [
SCREENS.SETTINGS.SUBSCRIPTION.ADD_PAYMENT_CARD,
SCREENS.SETTINGS.SUBSCRIPTION.SIZE,
SCREENS.SETTINGS.SUBSCRIPTION.DISABLE_AUTO_RENEW_SURVEY,
+ SCREENS.SETTINGS.SUBSCRIPTION.REQUEST_EARLY_CANCELLATION,
SCREENS.SETTINGS.SUBSCRIPTION.CHANGE_BILLING_CURRENCY,
SCREENS.SETTINGS.SUBSCRIPTION.CHANGE_PAYMENT_CURRENCY,
],
diff --git a/src/libs/Navigation/linkingConfig/FULL_SCREEN_TO_RHP_MAPPING.ts b/src/libs/Navigation/linkingConfig/FULL_SCREEN_TO_RHP_MAPPING.ts
index 9bb6e817f0d8..c27ccaab5176 100755
--- a/src/libs/Navigation/linkingConfig/FULL_SCREEN_TO_RHP_MAPPING.ts
+++ b/src/libs/Navigation/linkingConfig/FULL_SCREEN_TO_RHP_MAPPING.ts
@@ -2,14 +2,7 @@ import type {FullScreenName} from '@libs/Navigation/types';
import SCREENS from '@src/SCREENS';
const FULL_SCREEN_TO_RHP_MAPPING: Partial> = {
- [SCREENS.WORKSPACE.PROFILE]: [
- SCREENS.WORKSPACE.NAME,
- SCREENS.WORKSPACE.ADDRESS,
- SCREENS.WORKSPACE.CURRENCY,
- SCREENS.WORKSPACE.DESCRIPTION,
- SCREENS.WORKSPACE.SHARE,
- SCREENS.WORKSPACE.UPGRADE,
- ],
+ [SCREENS.WORKSPACE.PROFILE]: [SCREENS.WORKSPACE.NAME, SCREENS.WORKSPACE.ADDRESS, SCREENS.WORKSPACE.CURRENCY, SCREENS.WORKSPACE.DESCRIPTION, SCREENS.WORKSPACE.SHARE],
[SCREENS.WORKSPACE.REIMBURSE]: [SCREENS.WORKSPACE.RATE_AND_UNIT, SCREENS.WORKSPACE.RATE_AND_UNIT_RATE, SCREENS.WORKSPACE.RATE_AND_UNIT_UNIT],
[SCREENS.WORKSPACE.MEMBERS]: [
SCREENS.WORKSPACE.INVITE,
@@ -21,7 +14,10 @@ const FULL_SCREEN_TO_RHP_MAPPING: Partial> = {
SCREENS.WORKSPACE.OWNER_CHANGE_ERROR,
],
[SCREENS.WORKSPACE.WORKFLOWS]: [
- SCREENS.WORKSPACE.WORKFLOWS_APPROVER,
+ SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_NEW,
+ SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_EDIT,
+ SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_EXPENSES_FROM,
+ SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_APPROVER,
SCREENS.WORKSPACE.WORKFLOWS_AUTO_REPORTING_FREQUENCY,
SCREENS.WORKSPACE.WORKFLOWS_AUTO_REPORTING_MONTHLY_OFFSET,
SCREENS.WORKSPACE.WORKFLOWS_PAYER,
@@ -127,6 +123,7 @@ const FULL_SCREEN_TO_RHP_MAPPING: Partial> = {
SCREENS.WORKSPACE.TAX_EDIT,
SCREENS.WORKSPACE.TAX_NAME,
SCREENS.WORKSPACE.TAX_VALUE,
+ SCREENS.WORKSPACE.TAX_CODE,
],
[SCREENS.WORKSPACE.TAGS]: [
SCREENS.WORKSPACE.TAGS_SETTINGS,
@@ -162,7 +159,17 @@ const FULL_SCREEN_TO_RHP_MAPPING: Partial> = {
SCREENS.WORKSPACE.REPORT_FIELDS_EDIT_VALUE,
SCREENS.WORKSPACE.REPORT_FIELDS_EDIT_INITIAL_VALUE,
],
- [SCREENS.WORKSPACE.EXPENSIFY_CARD]: [SCREENS.WORKSPACE.EXPENSIFY_CARD_ISSUE_NEW, SCREENS.WORKSPACE.EXPENSIFY_CARD_BANK_ACCOUNT, SCREENS.WORKSPACE.EXPENSIFY_CARD_DETAILS],
+ [SCREENS.WORKSPACE.EXPENSIFY_CARD]: [
+ SCREENS.WORKSPACE.EXPENSIFY_CARD_ISSUE_NEW,
+ SCREENS.WORKSPACE.EXPENSIFY_CARD_BANK_ACCOUNT,
+ SCREENS.WORKSPACE.EXPENSIFY_CARD_SETTINGS,
+ SCREENS.WORKSPACE.EXPENSIFY_CARD_SETTINGS_ACCOUNT,
+ SCREENS.WORKSPACE.EXPENSIFY_CARD_SETTINGS_FREQUENCY,
+ SCREENS.WORKSPACE.EXPENSIFY_CARD_DETAILS,
+ SCREENS.WORKSPACE.EXPENSIFY_CARD_NAME,
+ SCREENS.WORKSPACE.EXPENSIFY_CARD_LIMIT,
+ SCREENS.WORKSPACE.EXPENSIFY_CARD_LIMIT_TYPE,
+ ],
};
export default FULL_SCREEN_TO_RHP_MAPPING;
diff --git a/src/libs/Navigation/linkingConfig/config.ts b/src/libs/Navigation/linkingConfig/config.ts
index beed9f1cca92..4ce867884e32 100644
--- a/src/libs/Navigation/linkingConfig/config.ts
+++ b/src/libs/Navigation/linkingConfig/config.ts
@@ -1,9 +1,11 @@
-/* eslint-disable @typescript-eslint/naming-convention */
import type {LinkingOptions} from '@react-navigation/native';
import type {RootStackParamList} from '@navigation/types';
import NAVIGATORS from '@src/NAVIGATORS';
import ROUTES from '@src/ROUTES';
+import type {Screen} from '@src/SCREENS';
import SCREENS from '@src/SCREENS';
+import type {RouteConfig} from './createNormalizedConfigs';
+import createNormalizedConfigs from './createNormalizedConfigs';
// Moved to a separate file to avoid cyclic dependencies.
const config: LinkingOptions['config'] = {
@@ -51,7 +53,7 @@ const config: LinkingOptions['config'] = {
exact: true,
},
[SCREENS.SETTINGS.WORKSPACES]: ROUTES.SETTINGS_WORKSPACES,
- [SCREENS.SEARCH.CENTRAL_PANE]: ROUTES.SEARCH.route,
+ [SCREENS.SEARCH.CENTRAL_PANE]: ROUTES.SEARCH_CENTRAL_PANE.route,
[SCREENS.SETTINGS.SAVE_THE_WORLD]: ROUTES.SETTINGS_SAVE_THE_WORLD,
[SCREENS.SETTINGS.SUBSCRIPTION.ROOT]: ROUTES.SETTINGS_SUBSCRIPTION,
@@ -292,6 +294,9 @@ const config: LinkingOptions['config'] = {
[SCREENS.SETTINGS.SUBSCRIPTION.DISABLE_AUTO_RENEW_SURVEY]: {
path: ROUTES.SETTINGS_SUBSCRIPTION_DISABLE_AUTO_RENEW_SURVEY,
},
+ [SCREENS.SETTINGS.SUBSCRIPTION.REQUEST_EARLY_CANCELLATION]: {
+ path: ROUTES.SETTINGS_SUBSCRIPTION_REQUEST_EARLY_CANCELLATION,
+ },
[SCREENS.WORKSPACE.CURRENCY]: {
path: ROUTES.WORKSPACE_PROFILE_CURRENCY.route,
},
@@ -463,12 +468,30 @@ const config: LinkingOptions['config'] = {
[SCREENS.WORKSPACE.SHARE]: {
path: ROUTES.WORKSPACE_PROFILE_SHARE.route,
},
+ [SCREENS.WORKSPACE.EXPENSIFY_CARD_LIMIT]: {
+ path: ROUTES.WORKSPACE_EXPENSIFY_CARD_LIMIT.route,
+ },
[SCREENS.WORKSPACE.EXPENSIFY_CARD_ISSUE_NEW]: {
path: ROUTES.WORKSPACE_EXPENSIFY_CARD_ISSUE_NEW.route,
},
+ [SCREENS.WORKSPACE.EXPENSIFY_CARD_NAME]: {
+ path: ROUTES.WORKSPACE_EXPENSIFY_CARD_NAME.route,
+ },
+ [SCREENS.WORKSPACE.EXPENSIFY_CARD_LIMIT_TYPE]: {
+ path: ROUTES.WORKSPACE_EXPENSIFY_CARD_LIMIT_TYPE.route,
+ },
[SCREENS.WORKSPACE.EXPENSIFY_CARD_BANK_ACCOUNT]: {
path: ROUTES.WORKSPACE_EXPENSIFY_CARD_BANK_ACCOUNT.route,
},
+ [SCREENS.WORKSPACE.EXPENSIFY_CARD_SETTINGS]: {
+ path: ROUTES.WORKSPACE_EXPENSIFY_CARD_SETTINGS.route,
+ },
+ [SCREENS.WORKSPACE.EXPENSIFY_CARD_SETTINGS_FREQUENCY]: {
+ path: ROUTES.WORKSPACE_EXPENSIFY_CARD_SETTINGS_FREQUENCY.route,
+ },
+ [SCREENS.WORKSPACE.EXPENSIFY_CARD_SETTINGS_ACCOUNT]: {
+ path: ROUTES.WORKSPACE_EXPENSIFY_CARD_SETTINGS_ACCOUNT.route,
+ },
[SCREENS.WORKSPACE.EXPENSIFY_CARD_DETAILS]: {
path: ROUTES.WORKSPACE_EXPENSIFY_CARD_DETAILS.route,
},
@@ -484,8 +507,17 @@ const config: LinkingOptions['config'] = {
[SCREENS.WORKSPACE.INVITE]: {
path: ROUTES.WORKSPACE_INVITE.route,
},
- [SCREENS.WORKSPACE.WORKFLOWS_APPROVER]: {
- path: ROUTES.WORKSPACE_WORKFLOWS_APPROVER.route,
+ [SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_NEW]: {
+ path: ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_NEW.route,
+ },
+ [SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_EDIT]: {
+ path: ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_EDIT.route,
+ },
+ [SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_EXPENSES_FROM]: {
+ path: ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_EXPENSES_FROM.route,
+ },
+ [SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_APPROVER]: {
+ path: ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_APPROVER.route,
},
[SCREENS.WORKSPACE.INVITE_MESSAGE]: {
path: ROUTES.WORKSPACE_INVITE_MESSAGE.route,
@@ -678,6 +710,12 @@ const config: LinkingOptions['config'] = {
taxID: (taxID: string) => decodeURIComponent(taxID),
},
},
+ [SCREENS.WORKSPACE.TAX_CODE]: {
+ path: ROUTES.WORKSPACE_TAX_CODE.route,
+ parse: {
+ taxID: (taxID: string) => decodeURIComponent(taxID),
+ },
+ },
[SCREENS.WORKSPACE.TAX_NAME]: {
path: ROUTES.WORKSPACE_TAX_NAME.route,
parse: {
@@ -897,6 +935,10 @@ const config: LinkingOptions['config'] = {
path: ROUTES.TRANSACTION_DUPLICATE_REVIEW_BILLABLE_PAGE.route,
exact: true,
},
+ [SCREENS.TRANSACTION_DUPLICATE.CONFIRMATION]: {
+ path: ROUTES.TRANSACTION_DUPLICATE_CONFIRMATION_PAGE.route,
+ exact: true,
+ },
},
},
[SCREENS.RIGHT_MODAL.SPLIT_DETAILS]: {
@@ -962,6 +1004,13 @@ const config: LinkingOptions['config'] = {
[SCREENS.SEARCH.TRANSACTION_HOLD_REASON_RHP]: ROUTES.TRANSACTION_HOLD_REASON_RHP.route,
},
},
+ [SCREENS.RIGHT_MODAL.SEARCH_ADVANCED_FILTERS]: {
+ screens: {
+ [SCREENS.SEARCH.ADVANCED_FILTERS_RHP]: ROUTES.SEARCH_ADVANCED_FILTERS,
+ [SCREENS.SEARCH.ADVANCED_FILTERS_DATE_RHP]: ROUTES.SEARCH_ADVANCED_FILTERS_DATE,
+ [SCREENS.SEARCH.ADVANCED_FILTERS_TYPE_RHP]: ROUTES.SEARCH_ADVANCED_FILTERS_TYPE,
+ },
+ },
[SCREENS.RIGHT_MODAL.RESTRICTED_ACTION]: {
screens: {
[SCREENS.RESTRICTED_ACTION_ROOT]: ROUTES.RESTRICTED_ACTION.route,
@@ -1026,4 +1075,28 @@ const config: LinkingOptions['config'] = {
},
};
+const normalizedConfigs = Object.keys(config.screens)
+ .map((key) =>
+ createNormalizedConfigs(
+ key,
+ config.screens,
+ [],
+ config.initialRouteName
+ ? [
+ {
+ initialRouteName: config.initialRouteName,
+ parentScreens: [],
+ },
+ ]
+ : [],
+ [],
+ ),
+ )
+ .flat()
+ .reduce((acc, route) => {
+ acc[route.screen as Screen] = route;
+ return acc;
+ }, {} as Record);
+
+export {normalizedConfigs};
export default config;
diff --git a/src/libs/Navigation/linkingConfig/createNormalizedConfigs.ts b/src/libs/Navigation/linkingConfig/createNormalizedConfigs.ts
new file mode 100644
index 000000000000..9e21c7d073cb
--- /dev/null
+++ b/src/libs/Navigation/linkingConfig/createNormalizedConfigs.ts
@@ -0,0 +1,135 @@
+/* eslint-disable @typescript-eslint/no-unsafe-assignment */
+
+/* eslint-disable @typescript-eslint/default-param-last */
+
+/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */
+
+/* eslint-disable no-param-reassign */
+
+/* eslint-disable @typescript-eslint/no-unsafe-argument */
+
+/* eslint-disable @typescript-eslint/no-non-null-assertion */
+
+/* eslint-disable @typescript-eslint/no-unsafe-member-access */
+
+/* eslint-disable @typescript-eslint/no-explicit-any */
+
+/* eslint-disable @typescript-eslint/ban-types */
+// THOSE FUNCTIONS ARE COPIED FROM react-navigation/core IN ORDER TO AVOID PATCHING
+// THAT'S THE REASON WHY ESLINT IS DISABLED
+import type {PathConfigMap} from '@react-navigation/native';
+
+type ParseConfig = Record any>;
+
+type RouteConfig = {
+ screen: string;
+ regex?: RegExp;
+ path: string;
+ pattern: string;
+ routeNames: string[];
+ parse?: ParseConfig;
+};
+
+type InitialRouteConfig = {
+ initialRouteName: string;
+ parentScreens: string[];
+};
+
+const joinPaths = (...paths: string[]): string =>
+ ([] as string[])
+ .concat(...paths.map((p) => p.split('/')))
+ .filter(Boolean)
+ .join('/');
+
+const createConfigItem = (screen: string, routeNames: string[], pattern: string, path: string, parse?: ParseConfig): RouteConfig => {
+ // Normalize pattern to remove any leading, trailing slashes, duplicate slashes etc.
+ pattern = pattern.split('/').filter(Boolean).join('/');
+
+ const regex = pattern
+ ? new RegExp(
+ `^(${pattern
+ .split('/')
+ .map((it) => {
+ if (it.startsWith(':')) {
+ return `(([^/]+\\/)${it.endsWith('?') ? '?' : ''})`;
+ }
+
+ return `${it === '*' ? '.*' : escape(it)}\\/`;
+ })
+ .join('')})`,
+ )
+ : undefined;
+
+ return {
+ screen,
+ regex,
+ pattern,
+ path,
+ // The routeNames array is mutated, so copy it to keep the current state
+ routeNames: [...routeNames],
+ parse,
+ };
+};
+
+const createNormalizedConfigs = (
+ screen: string,
+ routeConfig: PathConfigMap,
+ routeNames: string[] = [],
+ initials: InitialRouteConfig[],
+ parentScreens: string[],
+ parentPattern?: string,
+): RouteConfig[] => {
+ const configs: RouteConfig[] = [];
+
+ routeNames.push(screen);
+
+ parentScreens.push(screen);
+
+ // @ts-expect-error: we can't strongly typecheck this for now
+ const config = routeConfig[screen];
+
+ if (typeof config === 'string') {
+ // If a string is specified as the value of the key(e.g. Foo: '/path'), use it as the pattern
+ const pattern = parentPattern ? joinPaths(parentPattern, config) : config;
+
+ configs.push(createConfigItem(screen, routeNames, pattern, config));
+ } else if (typeof config === 'object') {
+ let pattern: string | undefined;
+
+ // if an object is specified as the value (e.g. Foo: { ... }),
+ // it can have `path` property and
+ // it could have `screens` prop which has nested configs
+ if (typeof config.path === 'string') {
+ if (config.exact && config.path === undefined) {
+ throw new Error("A 'path' needs to be specified when specifying 'exact: true'. If you don't want this screen in the URL, specify it as empty string, e.g. `path: ''`.");
+ }
+
+ pattern = config.exact !== true ? joinPaths(parentPattern || '', config.path || '') : config.path || '';
+
+ configs.push(createConfigItem(screen, routeNames, pattern!, config.path, config.parse));
+ }
+
+ if (config.screens) {
+ // property `initialRouteName` without `screens` has no purpose
+ if (config.initialRouteName) {
+ initials.push({
+ initialRouteName: config.initialRouteName,
+ parentScreens,
+ });
+ }
+
+ Object.keys(config.screens).forEach((nestedConfig) => {
+ const result = createNormalizedConfigs(nestedConfig, config.screens as PathConfigMap, routeNames, initials, [...parentScreens], pattern ?? parentPattern);
+
+ configs.push(...result);
+ });
+ }
+ }
+
+ routeNames.pop();
+
+ return configs;
+};
+
+export type {RouteConfig};
+export default createNormalizedConfigs;
diff --git a/src/libs/Navigation/linkingConfig/getAdaptedStateFromPath.ts b/src/libs/Navigation/linkingConfig/getAdaptedStateFromPath.ts
index 547b766e1ce5..322253266296 100644
--- a/src/libs/Navigation/linkingConfig/getAdaptedStateFromPath.ts
+++ b/src/libs/Navigation/linkingConfig/getAdaptedStateFromPath.ts
@@ -1,5 +1,6 @@
import type {NavigationState, PartialState, Route} from '@react-navigation/native';
import {findFocusedRoute, getStateFromPath} from '@react-navigation/native';
+import pick from 'lodash/pick';
import type {TupleToUnion} from 'type-fest';
import {isAnonymousUser} from '@libs/actions/Session';
import getIsNarrowLayout from '@libs/getIsNarrowLayout';
@@ -10,16 +11,17 @@ import * as ReportConnection from '@libs/ReportConnection';
import CONST from '@src/CONST';
import NAVIGATORS from '@src/NAVIGATORS';
import ONYXKEYS from '@src/ONYXKEYS';
+import type {Screen} from '@src/SCREENS';
import SCREENS from '@src/SCREENS';
import CENTRAL_PANE_TO_RHP_MAPPING from './CENTRAL_PANE_TO_RHP_MAPPING';
-import config from './config';
+import config, {normalizedConfigs} from './config';
import extractPolicyIDsFromState from './extractPolicyIDsFromState';
import FULL_SCREEN_TO_RHP_MAPPING from './FULL_SCREEN_TO_RHP_MAPPING';
import getMatchingBottomTabRouteForState from './getMatchingBottomTabRouteForState';
import getMatchingCentralPaneRouteForState from './getMatchingCentralPaneRouteForState';
import replacePathInNestedState from './replacePathInNestedState';
-const RHP_SCREENS_OPENED_FROM_LHN = [SCREENS.SETTINGS.SHARE_CODE, SCREENS.SETTINGS.PROFILE.STATUS] as const;
+const RHP_SCREENS_OPENED_FROM_LHN = [SCREENS.SETTINGS.SHARE_CODE, SCREENS.SETTINGS.PROFILE.STATUS, SCREENS.SETTINGS.PREFERENCES.PRIORITY_MODE] satisfies Screen[];
type RHPScreenOpenedFromLHN = TupleToUnion;
@@ -59,12 +61,8 @@ const addPolicyIDToRoute = (route: NavigationPartialRoute, policyID?: string) =>
};
function createBottomTabNavigator(route: NavigationPartialRoute, policyID?: string): NavigationPartialRoute {
- const routesForBottomTabNavigator: Array> = [{name: SCREENS.HOME, params: {policyID}}];
-
- if (route.name !== SCREENS.HOME) {
- // If the generated state requires tab other than HOME, we need to insert it.
- routesForBottomTabNavigator.push(addPolicyIDToRoute(route, policyID) as NavigationPartialRoute);
- }
+ const routesForBottomTabNavigator: Array> = [];
+ routesForBottomTabNavigator.push(addPolicyIDToRoute(route, policyID) as NavigationPartialRoute);
return {
name: NAVIGATORS.BOTTOM_TAB_NAVIGATOR,
@@ -94,6 +92,14 @@ function createFullScreenNavigator(route?: NavigationPartialRoute | undefined {
// Check for backTo param. One screen with different backTo value may need diferent screens visible under the overlay.
@@ -127,18 +133,18 @@ function getMatchingRootRouteForRHPRoute(route: NavigationPartialRoute): Navigat
// Check for CentralPaneNavigator
for (const [centralPaneName, RHPNames] of Object.entries(CENTRAL_PANE_TO_RHP_MAPPING)) {
if (RHPNames.includes(route.name)) {
- const params = {...route.params};
- if (centralPaneName === SCREENS.SEARCH.CENTRAL_PANE) {
- delete (params as Record)?.reportID;
- }
- return {name: centralPaneName as CentralPaneName, params};
+ const paramsFromRoute = getParamsFromRoute(centralPaneName);
+
+ return {name: centralPaneName as CentralPaneName, params: pick(route.params, paramsFromRoute)};
}
}
// Check for FullScreenNavigator
for (const [fullScreenName, RHPNames] of Object.entries(FULL_SCREEN_TO_RHP_MAPPING)) {
if (RHPNames.includes(route.name)) {
- return createFullScreenNavigator({name: fullScreenName as FullScreenName, params: route.params});
+ const paramsFromRoute = getParamsFromRoute(fullScreenName);
+
+ return createFullScreenNavigator({name: fullScreenName as FullScreenName, params: pick(route.params, paramsFromRoute)});
}
}
@@ -168,11 +174,6 @@ function getAdaptedState(state: PartialState
const attachmentsScreen = state.routes.find((route) => route.name === SCREENS.ATTACHMENTS);
const featureTrainingModalNavigator = state.routes.find((route) => route.name === NAVIGATORS.FEATURE_TRANING_MODAL_NAVIGATOR);
- if (isNarrowLayout) {
- metainfo.isFullScreenNavigatorMandatory = false;
- metainfo.isCentralPaneAndBottomTabMandatory = false;
- }
-
if (rhpNavigator) {
// Routes
// - matching bottom tab
diff --git a/src/libs/Navigation/switchPolicyID.ts b/src/libs/Navigation/switchPolicyID.ts
index 19626a400b9d..78b550f36303 100644
--- a/src/libs/Navigation/switchPolicyID.ts
+++ b/src/libs/Navigation/switchPolicyID.ts
@@ -84,7 +84,7 @@ export default function switchPolicyID(navigation: NavigationContainerRef>;
const action: StackNavigationAction = getActionFromState(stateFromPath, linkingConfig.config);
diff --git a/src/libs/Navigation/types.ts b/src/libs/Navigation/types.ts
index c273b2db6a10..fadce5727fce 100644
--- a/src/libs/Navigation/types.ts
+++ b/src/libs/Navigation/types.ts
@@ -661,17 +661,42 @@ type SettingsNavigatorParamList = {
policyID: string;
taxID: string;
};
+ [SCREENS.WORKSPACE.TAX_CODE]: {
+ policyID: string;
+ taxID: string;
+ };
[SCREENS.WORKSPACE.EXPENSIFY_CARD_ISSUE_NEW]: {
policyID: string;
};
[SCREENS.WORKSPACE.EXPENSIFY_CARD_BANK_ACCOUNT]: {
policyID: string;
};
+ [SCREENS.WORKSPACE.EXPENSIFY_CARD_SETTINGS]: {
+ policyID: string;
+ };
+ [SCREENS.WORKSPACE.EXPENSIFY_CARD_SETTINGS_ACCOUNT]: {
+ policyID: string;
+ };
+ [SCREENS.WORKSPACE.EXPENSIFY_CARD_SETTINGS_FREQUENCY]: {
+ policyID: string;
+ };
[SCREENS.WORKSPACE.EXPENSIFY_CARD_DETAILS]: {
policyID: string;
cardID: string;
backTo?: Routes;
};
+ [SCREENS.WORKSPACE.EXPENSIFY_CARD_NAME]: {
+ policyID: string;
+ cardID: string;
+ };
+ [SCREENS.WORKSPACE.EXPENSIFY_CARD_LIMIT]: {
+ policyID: string;
+ cardID: string;
+ };
+ [SCREENS.WORKSPACE.EXPENSIFY_CARD_LIMIT_TYPE]: {
+ policyID: string;
+ cardID: string;
+ };
} & ReimbursementAccountNavigatorParamList;
type NewChatNavigatorParamList = {
@@ -1059,11 +1084,11 @@ type RightModalNavigatorParamList = {
[SCREENS.RIGHT_MODAL.TRAVEL]: NavigatorScreenParams;
[SCREENS.RIGHT_MODAL.SEARCH_REPORT]: NavigatorScreenParams;
[SCREENS.RIGHT_MODAL.RESTRICTED_ACTION]: NavigatorScreenParams